{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue?661e","webpack:///./src/components/contingent/ContingentBox.vue?7f0e","webpack:///./src/views/Property.vue?7f71","webpack:///./src/components/misc/FinDocPrepaymentsModal.vue?dbfd","webpack:///./src/components/finances/PaymentSlipModalForm.vue?a59a","webpack:///./src/components/property/LocationInput.vue?464e","webpack:///./src/store/modules/notifications.ts","webpack:///./src/store/modules/auth.ts","webpack:///./src/store/modules/language.ts","webpack:///./src/store/modules/globalFilters.ts","webpack:///./src/store/modules/codebooks.ts","webpack:///./src/store/modules/appParams.ts","webpack:///./src/store/modules/calendar.ts","webpack:///./src/store/modules/documents.ts","webpack:///./src/store/modules/businessUnit.ts","webpack:///./src/store/modules/reports.ts","webpack:///./src/components/contingent/ContingentTypes.ts","webpack:///./src/store/modules/contingent.ts","webpack:///./src/store/modules/reservation.ts","webpack:///./src/store/modules/reservations.ts","webpack:///./src/store/modules/maintenance.ts","webpack:///./src/store/modules/cashRegister.ts","webpack:///./src/store/modules/appAppearance.ts","webpack:///./src/store/index.ts","webpack:///./src/components/messages/templates/NotificationTemplateForm.vue?7271","webpack:///./src/components/GuestReservationHistoryTableMobileTile.vue?1016","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesTable.vue?eb08","webpack:///./src/components/misc/RatingInput.vue?f905","webpack:///./src/components/misc/RatingInput.vue","webpack:///./src/components/misc/RatingInput.vue?d886","webpack:///./src/components/misc/RatingInput.vue?f718","webpack:///./src/components/finances/BulkInvoiceGeneration/BulkInvoiceGenerationModal.vue?5c4c","webpack:///./src/components/misc/DeferredAutocompleteWrapper.vue?8214","webpack:///./src/components/misc/DeferredAutocompleteWrapper.vue","webpack:///./src/components/misc/DeferredAutocompleteWrapper.vue?4471","webpack:///./src/components/misc/DeferredAutocompleteWrapper.vue?4fb4","webpack:///./src/components/calendar/RatePlanSelectModal.vue?9715","webpack:///./src/components/calendar/RatePlanSelectModal.vue","webpack:///./src/components/calendar/RatePlanSelectModal.vue?1d0e","webpack:///./src/components/calendar/RatePlanSelectModal.vue?9557","webpack:///./src/shared/sortHelperFunctions.ts","webpack:///./src/components/GuestReviewTable.vue?1a21","webpack:///./src/components/misc/RequireRole.vue","webpack:///./src/components/misc/RequireRole.vue?f1fb","webpack:///./src/components/misc/RequireRole.vue?77b1","webpack:///./src/components/misc/RichTextEditor.vue?c3bc","webpack:///./src/components/finances/PagedFinancesTable.vue?e64f","webpack:///./src/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue?db64","webpack:///./src/components/misc/FormalCurrencyDisplay.vue?3776","webpack:///./src/components/misc/FormalCurrencyDisplay.vue","webpack:///./src/components/misc/FormalCurrencyDisplay.vue?872c","webpack:///./src/components/misc/FormalCurrencyDisplay.vue?5f79","webpack:///./src/components/property/PropertiesGrid.vue?4ece","webpack:///./src/components/credit-card/CreditCardInfoModal.vue?8746","webpack:///./src/components/credit-card/CreditCardInfoModal.vue","webpack:///./src/components/credit-card/CreditCardInfoModal.vue?f96f","webpack:///./src/components/credit-card/CreditCardInfoModal.vue?ceda","webpack:///./src/components/calendar/CalendarEditor.vue?66e8","webpack:///./src/components/calendar/CalendarEditor.vue","webpack:///./src/components/calendar/CalendarEditor.vue?0bdb","webpack:///./src/components/calendar/CalendarEditor.vue?2615","webpack:///./src/components/misc/LoadingOverlay.vue?f859","webpack:///./src/components/misc/LoadingOverlay.vue","webpack:///./src/components/misc/LoadingOverlay.vue?5485","webpack:///./src/components/misc/LoadingOverlay.vue?241d","webpack:///./src/components/reservation-form/ReservationModal.vue?fe5b","webpack:///./src/shared/enums/identificationDocumentTypes.type.ts","webpack:///./src/components/reservation-form/check-in/CheckInModalForm.vue?4559","webpack:///./src/components/reservation-form/check-in/OcrData.ts","webpack:///./src/components/reservation-form/check-in/CheckInGuestCard.vue?73c4","webpack:///./src/components/reservation-form/check-in/CheckInGuestCard.vue","webpack:///./src/components/reservation-form/check-in/CheckInGuestCard.vue?a11f","webpack:///./src/components/reservation-form/check-in/CheckInGuestCard.vue?9f09","webpack:///./src/components/reservation-form/check-in/ScannerDebug.vue?dba6","webpack:///./src/components/reservation-form/check-in/ScannerDebug.vue","webpack:///./src/components/reservation-form/check-in/ScannerDebug.vue?42fd","webpack:///./src/components/reservation-form/check-in/ScannerDebug.vue?f6bb","webpack:///./src/components/reservation-form/check-in/CheckInModalForm.vue","webpack:///./src/components/reservation-form/check-in/CheckInModalForm.vue?5e7f","webpack:///./src/components/reservation-form/check-in/CheckInModalForm.vue?ec5a","webpack:///./src/components/reservation-form/check-out/CheckOutModalForm.vue?c019","webpack:///./src/components/reservation-form/check-out/CheckOutGuestCard.vue?0c09","webpack:///./src/components/reservation-form/check-out/CheckOutGuestCard.vue","webpack:///./src/components/reservation-form/check-out/CheckOutGuestCard.vue?183e","webpack:///./src/components/reservation-form/check-out/CheckOutGuestCard.vue?5197","webpack:///./src/components/reservation-form/check-out/CheckOutModalForm.vue","webpack:///./src/components/reservation-form/check-out/CheckOutModalForm.vue?6866","webpack:///./src/components/reservation-form/check-out/CheckOutModalForm.vue?f85f","webpack:///./src/components/reservation-form/ReservationFormInfo.vue?7a86","webpack:///./src/components/reservation-form/ReservationFormInfo.vue","webpack:///./src/components/reservation-form/ReservationFormInfo.vue?38f8","webpack:///./src/components/reservation-form/ReservationFormInfo.vue?0e5d","webpack:///./src/components/finances/PaymentsTable.vue?6755","webpack:///./src/components/finances/PaymentsTable.vue","webpack:///./src/components/finances/PaymentsTable.vue?beac","webpack:///./src/components/finances/PaymentsTable.vue?236d","webpack:///./src/components/reservation-form/payment-link/SendPaymentLinkDialog.vue?3391","webpack:///./src/components/reservation-form/payment-link/SendPaymentLinkDialog.vue","webpack:///./src/components/reservation-form/payment-link/SendPaymentLinkDialog.vue?9cc7","webpack:///./src/components/reservation-form/payment-link/SendPaymentLinkDialog.vue?e7be","webpack:///./src/components/reservation-form/ReservationModal.vue","webpack:///./src/components/reservation-form/ReservationModal.vue?edc5","webpack:///./src/components/reservation-form/ReservationModal.vue?35fe","webpack:///./src/components/generic-pms-table/GenericPMSTableSelectionBucket.vue?7863","webpack:///./src/views/auth/ForgottenPassword.vue?5e56","webpack:///./src/shared/models/vReservation.ts","webpack:///./src/components/finances/FinancialDocumentReservationSummary.vue?69db","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue?bca2","webpack:///./src/components/numbers/NumericInputImproved.vue?79b7","webpack:///./src/components/numbers/NumericInputImproved.vue","webpack:///./src/components/numbers/NumericInputImproved.vue?afe9","webpack:///./src/components/numbers/NumericInputImproved.vue?1396","webpack:///./src/components/reservation-form/check-in/CheckInOutEditForm.vue?ce64","webpack:///./src/components/reservation-form/check-in/CheckInOutEditForm.vue","webpack:///./src/components/reservation-form/check-in/CheckInOutEditForm.vue?ba22","webpack:///./src/components/reservation-form/check-in/CheckInOutEditForm.vue?f3e6","webpack:///./src/components/misc/TableCellUnitTypeDisplay.vue?61a5","webpack:///./src/components/misc/TableCellUnitTypeDisplay.vue","webpack:///./src/components/misc/TableCellUnitTypeDisplay.vue?c824","webpack:///./src/components/misc/TableCellUnitTypeDisplay.vue?a990","webpack:///./src/shared/saveFile.ts","webpack:///./src/components/reservation-form/ReservationFormUnitTileMobile.vue?f584","webpack:///./src/components/messages/ConversationPanel.vue?8072","webpack:///./src/views/PropertiesAndUnits.vue?d927","webpack:///./src/components/property/PropertiesTiles.vue?b2dc","webpack:///./src/components/property/PropertyTile.vue?75bb","webpack:///./src/components/property/PropertyTile.vue","webpack:///./src/components/property/PropertyTile.vue?5921","webpack:///./src/components/property/PropertyTile.vue?307b","webpack:///./src/components/property/PropertiesTiles.vue","webpack:///./src/components/property/PropertiesTiles.vue?1802","webpack:///./src/components/property/PropertiesTiles.vue?85a6","webpack:///./src/components/property/PropertiesGrid.vue?e213","webpack:///./src/components/property/PropertiesGrid.vue","webpack:///./src/components/property/PropertiesGrid.vue?ff09","webpack:///./src/components/property/PropertiesGrid.vue?1004","webpack:///./src/views/PropertiesAndUnits.vue","webpack:///./src/views/PropertiesAndUnits.vue?2d5c","webpack:///./src/views/PropertiesAndUnits.vue?150f","webpack:///./src/components/property/PropertiesTiles.vue?6cc2","webpack:///./src/components/misc/RichTextEditor.vue?5022","webpack:///./src/components/misc/RichTextEditorStyleModifier.ts","webpack:///./src/components/misc/RichTextEditor.vue","webpack:///./src/components/misc/RichTextEditor.vue?f91a","webpack:///./src/components/misc/RichTextEditor.vue?28e4","webpack:///./src/components/reservation-form/ReservationFormPaymentForm.vue?555d","webpack:///./src/components/reservation-form/ReservationFormPaymentForm.vue","webpack:///./src/components/reservation-form/ReservationFormPaymentForm.vue?a46e","webpack:///./src/components/reservation-form/ReservationFormPaymentForm.vue?889f","webpack:///./src/assets/images/flags/en-GB.png","webpack:///./src/components/misc/DateField.vue?ab61","webpack:///./src/components/messages/MessagesTable.vue?76d9","webpack:///./src/components/misc/DateField.vue?f3d4","webpack:///src/components/misc/DateField.vue","webpack:///./src/components/misc/DateField.vue?31a4","webpack:///./src/components/misc/DateField.vue","webpack:///./src/components/property/AccomodationUnitTypeDescriptions.vue?d746","webpack:///./src/shared/dateFormatUtils.ts","webpack:///./src/components/reservation-form/UnitSelectionModal.vue?4501","webpack:///./src/components/reservation-form/UnitSelectionModal.vue","webpack:///./src/components/reservation-form/UnitSelectionModal.vue?7042","webpack:///./src/components/reservation-form/UnitSelectionModal.vue?bd0c","webpack:///./src/components/advanced-search/AvailabilitySearchResults.vue?a93c","webpack:///./src/components/advanced-search/SpecialOfferDrawer.vue?86e8","webpack:///./src/components/advanced-search/SpecialOfferDrawer.vue","webpack:///./src/components/advanced-search/SpecialOfferDrawer.vue?7e82","webpack:///./src/components/advanced-search/SpecialOfferDrawer.vue?2c8c","webpack:///./src/components/advanced-search/AvailabilitySearchResults.vue","webpack:///./src/components/advanced-search/AvailabilitySearchResults.vue?cc14","webpack:///./src/components/advanced-search/AvailabilitySearchResults.vue?408f","webpack:///./src/assets/images/nokumo-text-light-blue.svg","webpack:///./src/shared/models/priceCalculationMethods.ts","webpack:///./src/views/Messages.vue?5432","webpack:///./src/components/reservation-form/ReservationFormUnitForm.vue?35c6","webpack:///./src/components/property/AccomodationUnitForm.vue?b9ae","webpack:///./src/components/CustomerForm.vue?e2e6","webpack:///./src/views/Reservations.vue?8768","webpack:///./src/components/misc/SelectedItemsTable.vue?7515","webpack:///./src/components/misc/SelectedItemsTable.vue","webpack:///./src/components/misc/SelectedItemsTable.vue?49ed","webpack:///./src/components/misc/SelectedItemsTable.vue?dbc7","webpack:///./src/views/AccomodationUnitType.vue?02a0","webpack:///./src/components/generic-pms-table/SortableHeadersTable.vue?9942","webpack:///./src/components/messages/ConversationPanelWhatsApp.vue?63dc","webpack:///./src/components/finances/MultipleReservationsInvoice/MultipleReservationsInvoice.vue?01b2","webpack:///./src/components/calendar/CalendarEditor.vue?804e","webpack:///./src/components/misc/ScrollLoader.vue?39f0","webpack:///./src/components/misc/ScrollLoader.vue","webpack:///./src/components/misc/ScrollLoader.vue?1d3e","webpack:///./src/components/misc/ScrollLoader.vue?7341","webpack:///./src/components/advanced-search/components/AvailabilitySearchForm.vue?02d6","webpack:///./src/components/RatePlanForm.vue?bedb","webpack:///./src/components/misc/SelectedItemsTable.vue?b1eb","webpack:///./src/components/property/OtasIframe.vue?85c8","webpack:///./src/components/reservation-form/ReservationForm.vue?f2de","webpack:///./src/components/reservation-form/ReservationFormHolder.vue?296c","webpack:///./src/components/CustomerFormMobile.vue?823a","webpack:///./src/components/CustomerFormMobile.vue","webpack:///./src/components/CustomerFormMobile.vue?195c","webpack:///./src/components/CustomerFormMobile.vue?0ceb","webpack:///./src/components/misc/CustomerLookupMobile.vue?a523","webpack:///./src/components/misc/CustomerLookupMobile.vue","webpack:///./src/components/misc/CustomerLookupMobile.vue?0661","webpack:///./src/components/misc/CustomerLookupMobile.vue?41be","webpack:///./src/components/GuestReservationHistoryTable.vue?3af3","webpack:///./src/components/GuestReservationHistoryTable.vue","webpack:///./src/components/GuestReservationHistoryTable.vue?fdf8","webpack:///./src/components/GuestReservationHistoryTable.vue?562f","webpack:///./src/components/GuestReservationHistoryTableMobile.vue?012d","webpack:///./src/components/GuestReservationHistoryTableMobileTile.vue?1dfe","webpack:///./src/components/GuestReservationHistoryTableMobileTile.vue","webpack:///./src/components/GuestReservationHistoryTableMobileTile.vue?62d8","webpack:///./src/components/GuestReservationHistoryTableMobileTile.vue?6743","webpack:///./src/components/GuestReservationHistoryTableMobile.vue","webpack:///./src/components/GuestReservationHistoryTableMobile.vue?2766","webpack:///./src/components/GuestReservationHistoryTableMobile.vue?3f29","webpack:///./src/components/reservation-form/ReservationFormHolder.vue","webpack:///./src/components/reservation-form/ReservationFormHolder.vue?bf4b","webpack:///./src/components/reservation-form/ReservationFormHolder.vue?fea6","webpack:///./src/components/reservation-form/ReservationFormStayPeriod.vue?b533","webpack:///./src/components/credit-card/PaymentGatewayTransactionLogModal.vue?0d0c","webpack:///./src/components/credit-card/PaymentGatewayTransactionLogModal.vue","webpack:///./src/components/credit-card/PaymentGatewayTransactionLogModal.vue?099a","webpack:///./src/components/credit-card/PaymentGatewayTransactionLogModal.vue?d4b4","webpack:///./src/components/reservation-form/ReservationFormStayPeriod.vue","webpack:///./src/components/reservation-form/ReservationFormStayPeriod.vue?94f4","webpack:///./src/components/reservation-form/ReservationFormStayPeriod.vue?adb3","webpack:///./src/components/reservation-form/ReservationFormUnits.vue?ca1a","webpack:///./src/components/reservation-form/functions.ts","webpack:///./src/components/reservation-form/ReservationFormUnitTile.vue?c770","webpack:///./src/components/reservation-form/ReservationFormUnitGuests.vue?aae5","webpack:///./src/components/reservation-form/ReservationFormUnitGuests.vue","webpack:///./src/components/reservation-form/ReservationFormUnitGuests.vue?f1ed","webpack:///./src/components/reservation-form/ReservationFormUnitGuests.vue?4555","webpack:///./src/components/reservation-form/ReservationFormUnitFields.vue?1778","webpack:///./src/components/reservation-form/ReservationFormUnitFields.vue","webpack:///./src/components/reservation-form/ReservationFormUnitFields.vue?f20b","webpack:///./src/components/reservation-form/ReservationFormUnitFields.vue?e5ff","webpack:///./src/components/reservation-form/ReservationFormUnitAddOnServices.vue?9d81","webpack:///./src/components/reservation-form/ReservationFormUnitAddOnServices.vue","webpack:///./src/components/reservation-form/ReservationFormUnitAddOnServices.vue?5a3d","webpack:///./src/components/reservation-form/ReservationFormUnitAddOnServices.vue?4172","webpack:///./src/components/reservation-form/ServiceTypeSelectModal.vue?98a0","webpack:///./src/components/reservation-form/ServiceTypeSelectModal.vue","webpack:///./src/components/reservation-form/ServiceTypeSelectModal.vue?3b8d","webpack:///./src/components/reservation-form/ServiceTypeSelectModal.vue?a72f","webpack:///./src/components/reservation-form/ReservationFormUnitTile.vue","webpack:///./src/components/reservation-form/ReservationFormUnitTile.vue?4238","webpack:///./src/components/reservation-form/ReservationFormUnitTile.vue?b216","webpack:///./src/components/reservation-form/ReservationFormUnitTileMobile.vue?32c7","webpack:///./src/components/reservation-form/ReservationFormUnitTileMobile.vue","webpack:///./src/components/reservation-form/ReservationFormUnitTileMobile.vue?2d9f","webpack:///./src/components/reservation-form/ReservationFormUnitTileMobile.vue?1f61","webpack:///./src/components/reservation-form/ReservationFormUnitForm.vue?60d5","webpack:///./src/components/reservation-form/ReservationFormUnitForm.vue","webpack:///./src/components/reservation-form/ReservationFormUnitForm.vue?e5fe","webpack:///./src/components/reservation-form/ReservationFormUnitForm.vue?199c","webpack:///./src/components/advanced-search/AvailabilitySearchReservationForm.vue?94f3","webpack:///./src/components/advanced-search/AvailabilitySearchReservationForm.vue","webpack:///./src/components/advanced-search/AvailabilitySearchReservationForm.vue?73ef","webpack:///./src/components/advanced-search/AvailabilitySearchReservationForm.vue?e2a0","webpack:///./src/components/reservation-form/copy-guests/CopyGuestsDialog.vue?010f","webpack:///./src/components/reservation-form/copy-guests/CopyGuestsDialog.vue","webpack:///./src/components/reservation-form/copy-guests/CopyGuestsDialog.vue?4fb5","webpack:///./src/components/reservation-form/copy-guests/CopyGuestsDialog.vue?a136","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModal.vue?243a","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModal.vue","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModal.vue?9225","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModal.vue?b34b","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue?ceb8","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue?8416","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue?6ed7","webpack:///./src/components/reservation-form/ReservationFormUnits.vue","webpack:///./src/components/reservation-form/ReservationFormUnits.vue?0679","webpack:///./src/components/reservation-form/ReservationFormUnits.vue?6e63","webpack:///./src/components/reservation-form/ReservationFormPrice.vue?5d80","webpack:///./src/components/reservation-form/ReservationFormPrice.vue","webpack:///./src/components/reservation-form/ReservationFormPrice.vue?906c","webpack:///./src/components/reservation-form/ReservationFormPrice.vue?e90f","webpack:///./src/components/reservation-form/ReservationForm.vue","webpack:///./src/components/reservation-form/ReservationForm.vue?9ae1","webpack:///./src/components/reservation-form/ReservationForm.vue?e1f6","webpack:///./src/components/reservation-form/ReservationFormPrice.vue?f418","webpack:///./src/shared/models/agencyFee.ts","webpack:///./src/components/property/TimeInput.vue?98a9","webpack:///./src/views/Reservations.vue?5b29","webpack:///./src/components/ReservationsTable.vue?93ad","webpack:///./src/components/ReservationsTable.vue","webpack:///./src/components/ReservationsTable.vue?6974","webpack:///./src/components/ReservationsTable.vue?d348","webpack:///./src/views/Reservations.vue","webpack:///./src/views/Reservations.vue?d8f4","webpack:///./src/views/Reservations.vue?022f","webpack:///./src/shared/models/vCustomer.ts","webpack:///./src/components/finances/FinancialDocumentFormParts/models.ts","webpack:///./src/components/reservation-form/check-out/CheckOutGuestCard.vue?dfd8","webpack:///./src/components/maintenance/MaintenanceGridTile.vue?fcf7","webpack:///./src/components/finances/FinancialDocumentFormParts/AdvancePicker.vue?a9dd","webpack:///./src/components/ReservationsTableMobile.vue?4f60","webpack:///./src/components/property/PropertyFormAgencyFeeSelection.vue?1144","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingInvoice.vue?af7f","webpack:///./src/components/misc/NumericInput.vue?ef0b","webpack:///./src/components/misc/NumericInput.vue","webpack:///./src/components/misc/NumericInput.vue?e20c","webpack:///./src/components/misc/NumericInput.vue?b025","webpack:///./src/components/reservation-form/check-out/CheckOutModalForm.vue?7c83","webpack:///./src/views/ReservationsMobile.vue?a584","webpack:///./src/components/messages/MessagesTable.vue?5a76","webpack:///./src/components/messages/ConversationPanel.vue?62e9","webpack:///./src/components/messages/ConversationPanel.vue","webpack:///./src/components/messages/ConversationPanel.vue?33f5","webpack:///./src/components/messages/ConversationPanel.vue?85ac","webpack:///./src/components/messages/ConversationPanelWhatsApp.vue?f08a","webpack:///./src/components/messages/ConversationPanelWhatsApp.vue","webpack:///./src/components/messages/ConversationPanelWhatsApp.vue?f440","webpack:///./src/components/messages/ConversationPanelWhatsApp.vue?bf07","webpack:///./src/components/messages/MessagesTable.vue","webpack:///./src/components/messages/MessagesTable.vue?e39c","webpack:///./src/components/messages/MessagesTable.vue?84b1","webpack:///./src/views/Settings/NotificationTemplates.vue?5d07","webpack:///./src/components/contingent/ContingentSettingsForm.vue?8674","webpack:///./src/components/calendar/CalendarBoxRow.vue?7436","webpack:///./src/components/calendar/CalendarBoxRow.vue","webpack:///./src/components/calendar/CalendarBoxRow.vue?5337","webpack:///./src/components/calendar/CalendarBoxRow.vue?e444","webpack:///./src/components/misc/NoData.vue?4dd9","webpack:///./src/components/advanced-search/SpecialOfferDrawer.vue?0ab6","webpack:///./src/components/misc/NumericPicker.vue?4628","webpack:///./src/components/misc/NumericPicker.vue","webpack:///./src/components/misc/NumericPicker.vue?5cb9","webpack:///./src/components/misc/NumericPicker.vue?5abf","webpack:///./src/components/ReservationTableMobileTile.vue?5aa3","webpack:///./src/components/photo-editor/PhotoTile.vue?d2e2","webpack:///./src/assets/images/no-image-icon-23488.png","webpack:///./src/components/documents/DocumentSettingsForm.vue?1f5f","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesTable.vue?8548","webpack:///./src/views/Finances.vue?92c5","webpack:///./src/shared/models/enums.type.ts","webpack:///./src/components/messages/templates/NotificationTemplatesTable.vue?5420","webpack:///./src/components/finances/FinancialDocumentModalForm.vue?250f","webpack:///./src/components/misc/FormDescription.vue?b78b","webpack:///./src/components/misc/FormDescription.vue","webpack:///./src/components/misc/FormDescription.vue?7f90","webpack:///./src/components/misc/FormDescription.vue?fef0","webpack:///./src/shared/roles.ts","webpack:///./src/components/misc/TableCellUnitTypeDisplay.vue?fad4","webpack:///./src/components/misc/TimeField.vue?806d","webpack:///./src/components/misc/TimeField.vue","webpack:///./src/components/misc/TimeField.vue?34a2","webpack:///./src/components/misc/TimeField.vue?f1cc","webpack:///./src/components/misc/FinDocPrepaymentsModal.vue?1eff","webpack:///./src/components/misc/FinDocPrepaymentsModal.vue","webpack:///./src/components/misc/FinDocPrepaymentsModal.vue?116e","webpack:///./src/components/misc/FinDocPrepaymentsModal.vue?dfaf","webpack:///./src/components/reservation-form/ReservationModal.vue?4d19","webpack:///./src/components/CustomerForm.vue?a288","webpack:///./src/components/CustomerForm.vue","webpack:///./src/components/CustomerForm.vue?38dd","webpack:///./src/components/CustomerForm.vue?b04c","webpack:///./src/components/misc/DeferredAutocompleteWrapper.vue?73cb","webpack:///./src/assets/images/flags/hr-HR.png","webpack:///./src/components/finances/FinancialDocumentFormParts/LineItems.vue?2ead","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue?0277","webpack:///./src/components/reservation-form/ReservationFormStayPeriod.vue?6d50","webpack:///./src/components/misc/DeferredAutocomplete.vue?466f","webpack:///./src/components/generic-pms-table/SortableTableDirective.ts","webpack:///./src/components/GuestReservationHistoryTableMobile.vue?165d","webpack:///./src/components/finances/PagedFinancesTable.vue?8ea1","webpack:///./src/components/finances/CashiersReport/CashiersReportExportModal.vue","webpack:///./src/components/finances/CashiersReport/CashiersReportExportModal.vue?ceb5","webpack:///./src/components/finances/CashiersReport/CashiersReportExportModal.vue?0785","webpack:///./src/components/finances/CashiersReport/CashiersReportExportModal.vue?5fbf","webpack:///./src/components/finances/PaymentsReport/PaymentsReport.vue?e588","webpack:///./src/components/finances/PaymentsReport/PaymentsReport.vue","webpack:///./src/components/finances/PaymentsReport/PaymentsReport.vue?16b6","webpack:///./src/components/finances/PaymentsReport/PaymentsReport.vue?db3b","webpack:///./src/components/finances/BulkInvoiceGeneration/BulkInvoiceGenerationModal.vue?023d","webpack:///./src/components/generic-pms-table/GenericPMSTableSelectionBucket.vue?38dc","webpack:///./src/components/generic-pms-table/GenericPMSTableSelectionBucket.vue","webpack:///./src/components/generic-pms-table/GenericPMSTableSelectionBucket.vue?66c5","webpack:///./src/components/generic-pms-table/GenericPMSTableSelectionBucket.vue?7dd2","webpack:///./src/components/finances/BulkInvoiceGeneration/BulkInvoiceGenerationModal.vue","webpack:///./src/components/finances/BulkInvoiceGeneration/BulkInvoiceGenerationModal.vue?de34","webpack:///./src/components/finances/BulkInvoiceGeneration/BulkInvoiceGenerationModal.vue?1346","webpack:///./src/components/finances/PaymentSlipModalForm.vue?9c40","webpack:///./src/components/finances/PaymentSlipModalForm.vue","webpack:///./src/components/finances/PaymentSlipModalForm.vue?76cd","webpack:///./src/components/finances/PaymentSlipModalForm.vue?24bc","webpack:///./src/components/finances/PagedFinancesTable.vue","webpack:///./src/components/finances/PagedFinancesTable.vue?27d4","webpack:///./src/components/finances/PagedFinancesTable.vue?7e00","webpack:///./src/components/reservation-form/check-in/CheckinTypes.ts","webpack:///./src/components/property/PropertyTile.vue?d583","webpack:///./src/components/ReservationsTable.vue?a92e","webpack:///./src/components/misc/LangPicker.vue?f85d","webpack:///./src/components/misc/LangPicker.vue","webpack:///./src/components/misc/LangPicker.vue?177c","webpack:///./src/components/misc/LangPicker.vue?8514","webpack:///./src/components/finances/FinancialDocumentPaymentsModal.vue?09b9","webpack:///./src/components/property/AccomodationUnitTable.vue?5df8","webpack:///./src/views/EVisitors.vue?b968","webpack:///./src/components/misc/RichTextEditor.vue?d7c6","webpack:///./src/components/property/official-rates/OfficialRatesFormNew.vue?83f4","webpack:///./src/assets/images/flags sync nonrecursive \\.png$","webpack:///./src/components/reservation-form/check-in/CheckInModalForm.vue?cbb9","webpack:///./src/components/property/official-rates/OfficialRatesOBRules.vue?04d5","webpack:///./src/components/reservation-form/check-in/CheckInGuestCard.vue?233f","webpack:///./src/components/misc/CustomerLookup.vue?3808","webpack:///./src/shared/currencyConversionService.ts","webpack:///./src/components/numbers/numberFormatUtils.ts","webpack:///./src/components/calendar/TimeTrackNav.vue?c55a","webpack:///./src/views/auth/_AuthLayout.vue?34f1","webpack:///./src/components/messages/MessageForm.vue?44b8","webpack:///./src/components/messages/MessageForm.vue","webpack:///./src/components/messages/MessageForm.vue?8128","webpack:///./src/components/messages/MessageForm.vue?555c","webpack:///./src/components/reservation-form/types.ts","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeForm.vue?92a8","webpack:///./src/components/finances/PaymentsReport/PaymentsReport.vue?8651","webpack:///./src/store/modules/financial.ts","webpack:///./src/components/reservation-form/payment-link/SendPaymentLinkDialog.vue?bb43","webpack:///./src/components/reservation-form/check-in/eVisitorFacilityService.ts","webpack:///./src/components/CustomerFormMobile.vue?574d","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue?5018","webpack:///./src/components/finances/InvoiceRoutingModal/models.ts","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingInvoice.vue?5a15","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingInvoice.vue","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingInvoice.vue?f9ca","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingInvoice.vue?2555","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue?d0bf","webpack:///./src/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue?c828","webpack:///./src/views/Settings/DocumentSettings.vue?ba96","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue?1e4d","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeForm.vue?2f89","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeForm.vue","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeForm.vue?10c8","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeForm.vue?0946","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue?1a86","webpack:///./src/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue?f19c","webpack:///./src/components/reservation-form/check-in/CheckInService.ts","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModal.vue?59e1","webpack:///./src/components/finances/FinancialDocumentFormParts/TaxRecap.vue?d108","webpack:///./src/components/AddOnServicesAndFeesForm.vue?6d40","webpack:///./src/shared/models/addOnService.ts","webpack:///./src/components/AddOnServicesAndFeesForm.vue","webpack:///./src/components/AddOnServicesAndFeesForm.vue?377f","webpack:///./src/components/AddOnServicesAndFeesForm.vue?35b9","webpack:///./src/shared/models/availability.ts","webpack:///./src/components/misc/WorkingCurrencyDisplay.vue?681f","webpack:///./src/components/misc/WorkingCurrencyDisplay.vue","webpack:///./src/components/misc/WorkingCurrencyDisplay.vue?9db2","webpack:///./src/components/misc/WorkingCurrencyDisplay.vue?ec51","webpack:///./src/views/auth/Signin.vue?3596","webpack:///./src/assets/images/no-image-icon-23485.png","webpack:///./src/components/property/DescriptionsTiles.vue?deb0","webpack:///./src/components/advanced-search/components/AvailabilitySearchForm.vue?0510","webpack:///./src/components/advanced-search/components/AvailabilitySearchForm.vue","webpack:///./src/components/advanced-search/components/AvailabilitySearchForm.vue?ed91","webpack:///./src/components/advanced-search/components/AvailabilitySearchForm.vue?e9b4","webpack:///./src/components/property/official-rates/OfficialRatesOBAndLOSRules.vue?00d6","webpack:///./src/components/advanced-search/AvailabilitySearchResultsMobile.vue?8999","webpack:///./src/components/advanced-search/AvailabilitySearchResultsMobile.vue","webpack:///./src/components/advanced-search/AvailabilitySearchResultsMobile.vue?e7bb","webpack:///./src/components/advanced-search/AvailabilitySearchResultsMobile.vue?9706","webpack:///./src/components/property/AccomodationUnitTypeForm.vue?ecff","webpack:///./src/components/generic-pms-table/GenericPMSTableMenu.vue?4fc0","webpack:///./src/components/generic-pms-table/GenericPMSTableMenu.vue","webpack:///./src/components/generic-pms-table/GenericPMSTableMenu.vue?9eb7","webpack:///./src/components/generic-pms-table/GenericPMSTableMenu.vue?5fc6","webpack:///./src/components/GuestReservationHistoryTable.vue?1ff9","webpack:///./src/components/finances/PaymentsTable.vue?7a6f","webpack:///./src/components/property/AccomodationUnitTypeTiles.vue?28c9","webpack:///./src/components/reservation-form/check-out/CheckOutModalForm.vue?db37","webpack:///./src/views/GuestReviews.vue?3192","webpack:///./src/shared/models/ratePlanModel.ts","webpack:///./src/components/misc/NumericPicker.vue?23a8","webpack:///./src/components/calendar/CalendarTypes.ts","webpack:///./src/components/RatePlanFormAddOnServices.vue?6403","webpack:///./src/components/generic-pms-table/GenericPMSTableMenu.vue?1539","webpack:///./src/components/property/AmenitiesSelection.vue?3f9e","webpack:///./src/components/misc/CurrencyDisplay.vue?5a98","webpack:///./src/components/misc/CurrencyDisplay.vue","webpack:///./src/components/misc/CurrencyDisplay.vue?b2bf","webpack:///./src/components/misc/CurrencyDisplay.vue?23a2","webpack:///./src/components/misc/ColorPicker.vue?6f9b","webpack:///./src/components/misc/ColorPicker.vue","webpack:///./src/components/misc/ColorPicker.vue?e26b","webpack:///./src/components/misc/ColorPicker.vue?005b","webpack:///./src/components/credit-card/PaymentGatewayTransactionLogModal.vue?6be5","webpack:///./src/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue?1137","webpack:///./src/components/GuestReservationHistoryTable.vue?0eb3","webpack:///./src/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue?701c","webpack:///./src/components/finances/FinancialDocumentFormParts/PriceSummary.vue?d9cf","webpack:///./src/components/RatePlanForm.vue?0379","webpack:///./src/components/EVisitorTable.vue?4497","webpack:///./src/components/AddOnServicesAndFeesForm.vue?3518","webpack:///./src/components/calendar/BoxDayTrack.vue?e9d7","webpack:///./src/components/calendar/BoxDayTrack.vue","webpack:///./src/components/calendar/BoxDayTrack.vue?a1b7","webpack:///./src/components/calendar/BoxDayTrack.vue?94e6","webpack:///./src/views/PropertiesAndUnits.vue?1a3e","webpack:///./src/components/reservation-form/check-in/CheckInOutEditForm.vue?3ad0","webpack:///./src/assets/images/logo-colored.svg","webpack:///./src/components/property/AddOnServicesTable.vue?b9b5","webpack:///./src/components/contingent/TimeTrackNav.vue?c898","webpack:///./src/components/calendar/TimeTrackNav.vue?9897","webpack:///./src/components/calendar/TimeTrackNav.vue","webpack:///./src/components/calendar/TimeTrackNav.vue?c0cb","webpack:///./src/components/calendar/TimeTrackNav.vue?e3fd","webpack:///./src/components/calendar/Settings.vue?9130","webpack:///./src/components/calendar/Settings.vue","webpack:///./src/components/calendar/Settings.vue?8294","webpack:///./src/components/calendar/Settings.vue?0696","webpack:///./src/components/contingent/TimeTrackNav.vue?81cb","webpack:///./src/components/contingent/TimeTrackNav.vue","webpack:///./src/components/contingent/TimeTrackNav.vue?3ea5","webpack:///./src/components/contingent/TimeTrackNav.vue?8688","webpack:///./src/components/contingent/Settings.vue?fcee","webpack:///./src/components/contingent/ContingentSettingsForm.vue?f13e","webpack:///./src/components/contingent/ContingentSettingsForm.vue","webpack:///./src/components/contingent/ContingentSettingsForm.vue?5b65","webpack:///./src/components/contingent/ContingentSettingsForm.vue?1050","webpack:///./src/components/contingent/Settings.vue","webpack:///./src/components/contingent/Settings.vue?5b8c","webpack:///./src/components/contingent/Settings.vue?5e0d","webpack:///./src/views/Contingent.vue?a17b","webpack:///./src/components/contingent/ContingentBox.vue?751b","webpack:///./src/components/contingent/ContingentBox.vue","webpack:///./src/components/contingent/ContingentBox.vue?7c64","webpack:///./src/components/contingent/ContingentBox.vue?b232","webpack:///./src/views/Contingent.vue","webpack:///./src/components/property/types.ts","webpack:///./src/views/Contingent.vue?f9f2","webpack:///./src/views/Contingent.vue?cbf4","webpack:///./src/views/Property.vue?f10d","webpack:///./src/components/property/PropertyForm.vue?bcbd","webpack:///./src/components/property/TimeInput.vue?bc78","webpack:///./src/components/property/TimeInput.vue","webpack:///./src/components/property/TimeInput.vue?51be","webpack:///./src/components/property/TimeInput.vue?17c6","webpack:///./src/components/property/LocationInput.vue?aa9b","webpack:///./src/components/property/LocationInput.vue","webpack:///./src/components/property/LocationInput.vue?0d5f","webpack:///./src/components/property/LocationInput.vue?ff8a","webpack:///./src/components/property/AddOnServicesTable.vue?69a9","webpack:///./src/components/property/AddOnServicesTable.vue","webpack:///./src/components/property/AddOnServicesTable.vue?b398","webpack:///./src/components/property/AddOnServicesTable.vue?df98","webpack:///./src/components/property/EVisitorFacilitiesTable.vue?c487","webpack:///./src/components/property/EVisitorFacilitiesTable.vue","webpack:///./src/components/property/EVisitorFacilitiesTable.vue?e4d0","webpack:///./src/components/property/EVisitorFacilitiesTable.vue?27b8","webpack:///./src/components/property/AmenitiesSelection.vue?f448","webpack:///./src/shared/models/amenities.ts","webpack:///./src/components/property/AmenitiesSelection.vue","webpack:///./src/components/property/AmenitiesSelection.vue?9046","webpack:///./src/components/property/AmenitiesSelection.vue?99e8","webpack:///./src/components/property/DescriptionsTiles.vue?b5e6","webpack:///./src/components/property/DescriptionsTiles.vue","webpack:///./src/components/property/DescriptionsTiles.vue?32fe","webpack:///./src/components/property/DescriptionsTiles.vue?0801","webpack:///./src/components/property/PoisTiles.vue?4601","webpack:///./src/components/property/PoisTiles.vue","webpack:///./src/components/property/PoisTiles.vue?5aae","webpack:///./src/components/property/PoisTiles.vue?9930","webpack:///./src/components/property/Otas.vue?0978","webpack:///./src/components/property/OtasIframe.vue?afd7","webpack:///./src/components/property/OtasIframe.vue","webpack:///./src/components/property/OtasIframe.vue?e1d0","webpack:///./src/components/property/OtasIframe.vue?869c","webpack:///./src/components/property/Otas.vue","webpack:///./src/components/property/Otas.vue?40ff","webpack:///./src/components/property/Otas.vue?93b7","webpack:///./src/components/property/AccomodationUnitTypeTiles.vue?2a4a","webpack:///./src/components/property/AccomodationUnitTypeTile.vue?3bf2","webpack:///./src/components/property/AccomodationUnitTypeTile.vue","webpack:///./src/components/property/AccomodationUnitTypeTile.vue?d6bc","webpack:///./src/components/property/AccomodationUnitTypeTile.vue?e19c","webpack:///./src/components/property/AccomodationUnitTypeTiles.vue","webpack:///./src/components/property/AccomodationUnitTypeTiles.vue?146e","webpack:///./src/components/property/AccomodationUnitTypeTiles.vue?0858","webpack:///./src/components/photo-editor/PhotoEditor.vue?86e8","webpack:///./src/components/photo-editor/PhotoTile.vue?21b6","webpack:///./src/components/photo-editor/PhotoTile.vue","webpack:///./src/components/photo-editor/PhotoTile.vue?2a42","webpack:///./src/components/photo-editor/PhotoTile.vue?9686","webpack:///./src/components/photo-editor/PhotoForm.vue?ddcf","webpack:///./src/components/photo-editor/types.ts","webpack:///./src/components/photo-editor/PhotoForm.vue","webpack:///./src/components/photo-editor/PhotoForm.vue?9e43","webpack:///./src/components/photo-editor/PhotoForm.vue?cdda","webpack:///./src/components/photo-editor/SortablePhotosDirective.ts","webpack:///./src/components/photo-editor/PhotoEditor.vue","webpack:///./src/components/photo-editor/PhotoEditor.vue?829e","webpack:///./src/components/photo-editor/PhotoEditor.vue?89b9","webpack:///./src/components/property/PropertyOwner.vue?5143","webpack:///./src/components/property/PropertyOwner.vue","webpack:///./src/components/property/PropertyOwner.vue?64db","webpack:///./src/components/property/PropertyOwner.vue?d3cd","webpack:///./src/components/property/official-rates/OfficialRatesExportForOwners.vue?fe32","webpack:///./src/components/property/official-rates/OfficialRatesExportForOwners.vue","webpack:///./src/components/property/official-rates/OfficialRatesExportForOwners.vue?248a","webpack:///./src/components/property/official-rates/OfficialRatesExportForOwners.vue?31d0","webpack:///./src/components/property/PropertyFormAgencyFeeSelection.vue?61d8","webpack:///./src/components/property/PropertyFormAgencyFeeSelection.vue","webpack:///./src/components/property/PropertyFormAgencyFeeSelection.vue?6745","webpack:///./src/components/property/PropertyFormAgencyFeeSelection.vue?65c1","webpack:///./src/components/property/PropertyForm.vue","webpack:///./src/components/property/PropertyForm.vue?4dd7","webpack:///./src/components/property/PropertyForm.vue?3ea5","webpack:///./src/views/Property.vue","webpack:///./src/views/Property.vue?a57c","webpack:///./src/views/Property.vue?7413","webpack:///./src/views/AccomodationUnitType.vue?00e2","webpack:///./src/components/property/AccomodationUnitTypeForm.vue?79ae","webpack:///./src/shared/models/accomodationUnitTypeViewModel.ts","webpack:///./src/components/property/AccomodationUnitTable.vue?c3ff","webpack:///./src/components/property/AccomodationUnitForm.vue?fcad","webpack:///./src/components/property/AccomodationUnitForm.vue","webpack:///./src/components/property/AccomodationUnitForm.vue?f44e","webpack:///./src/components/property/AccomodationUnitForm.vue?7485","webpack:///./src/components/property/AccomodationUnitTable.vue","webpack:///./src/components/property/AccomodationUnitTable.vue?ae4f","webpack:///./src/components/property/AccomodationUnitTable.vue?c03c","webpack:///./src/components/property/AccomodationUnitTypeDescriptions.vue?2e41","webpack:///./src/components/property/AccomodationUnitTypeDescriptions.vue","webpack:///./src/components/property/AccomodationUnitTypeDescriptions.vue?fb08","webpack:///./src/components/property/AccomodationUnitTypeDescriptions.vue?e7ee","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesTable.vue?d1a9","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesForm.vue?7a9d","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesForm.vue","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesForm.vue?6968","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesForm.vue?90e5","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesTable.vue","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesTable.vue?62b2","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesTable.vue?bced","webpack:///./src/components/property/AccomodationUnitTypeTranslations.vue?4583","webpack:///./src/components/property/AccomodationUnitTypeTranslations.vue","webpack:///./src/components/property/AccomodationUnitTypeTranslations.vue?73c0","webpack:///./src/components/property/AccomodationUnitTypeTranslations.vue?32e4","webpack:///./src/components/property/official-rates/OfficialRatesTable.vue?8bd6","webpack:///./src/components/property/official-rates/OfficialRatesFormNew.vue?588a","webpack:///./src/components/property/official-rates/OfficialRatesOBRules.vue?3b02","webpack:///./src/components/property/official-rates/OfficialRatesOBRules.vue","webpack:///./src/components/property/official-rates/OfficialRatesOBRules.vue?aa73","webpack:///./src/components/property/official-rates/OfficialRatesOBRules.vue?0a42","webpack:///./src/components/property/official-rates/OfficialRatesLOSRules.vue?00d1","webpack:///./src/components/property/official-rates/OfficialRatesLOSRules.vue","webpack:///./src/components/property/official-rates/OfficialRatesLOSRules.vue?d964","webpack:///./src/components/property/official-rates/OfficialRatesLOSRules.vue?3d59","webpack:///./src/components/property/official-rates/OfficialRatesOBAndLOSRules.vue?4be0","webpack:///./src/components/property/official-rates/types.ts","webpack:///./src/components/property/official-rates/OfficialRatesOBAndLOSRules.vue","webpack:///./src/components/property/official-rates/OfficialRatesOBAndLOSRules.vue?9272","webpack:///./src/components/property/official-rates/OfficialRatesOBAndLOSRules.vue?94b8","webpack:///./src/components/property/official-rates/OfficialRatesFormPrices.vue?a81c","webpack:///./src/components/property/official-rates/OfficialRatesFormPrices.vue","webpack:///./src/components/property/official-rates/OfficialRatesFormPrices.vue?07ad","webpack:///./src/components/property/official-rates/OfficialRatesFormPrices.vue?8d24","webpack:///./src/components/property/official-rates/OfficialRatesArrivalsDepartures.vue?7397","webpack:///./src/components/property/official-rates/OfficialRatesArrivalsDepartures.vue","webpack:///./src/components/property/official-rates/OfficialRatesFormNew.vue","webpack:///./src/components/property/official-rates/OfficialRatesArrivalsDepartures.vue?bc9f","webpack:///./src/components/property/official-rates/OfficialRatesArrivalsDepartures.vue?4703","webpack:///./src/components/property/official-rates/OfficialRatesFormNew.vue?6cc8","webpack:///./src/components/property/official-rates/OfficialRatesFormNew.vue?e082","webpack:///./src/components/property/official-rates/OfficialRatesTable.vue","webpack:///./src/components/property/official-rates/OfficialRatesTable.vue?9121","webpack:///./src/components/property/official-rates/OfficialRatesTable.vue?800c","webpack:///./src/components/property/AccomodationUnitTypeRatePlanOverrides.vue?e907","webpack:///./src/components/property/AccomodationUnitTypeRatePlanOverrides.vue","webpack:///./src/components/property/AccomodationUnitTypeRatePlanOverrides.vue?1fe3","webpack:///./src/components/property/AccomodationUnitTypeRatePlanOverrides.vue?543d","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesTable.vue?01aa","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesForm.vue?d1c0","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesForm.vue","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesForm.vue?7c0b","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesForm.vue?391a","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesTable.vue","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesTable.vue?9395","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesTable.vue?e499","webpack:///./src/components/property/official-rates/OfficialRatesExportForGuests.vue?49e1","webpack:///./src/components/property/official-rates/OfficialRatesExportForGuests.vue","webpack:///./src/components/property/official-rates/OfficialRatesExportForGuests.vue?a83a","webpack:///./src/components/property/official-rates/OfficialRatesExportForGuests.vue?c8ec","webpack:///./src/components/property/AccomodationUnitTypeForm.vue","webpack:///./src/components/property/AccomodationUnitTypeForm.vue?418c","webpack:///./src/components/property/AccomodationUnitTypeForm.vue?eb4c","webpack:///./src/views/AccomodationUnitType.vue","webpack:///./src/views/AccomodationUnitType.vue?3386","webpack:///./src/views/AccomodationUnitType.vue?1618","webpack:///./src/views/RatePlans.vue?4fec","webpack:///./src/components/RatePlansTiles.vue?bfce","webpack:///./src/components/RatePlanForm.vue?a8ea","webpack:///./src/components/misc/HTMLPreviewModal.vue?b0ca","webpack:///./src/components/misc/HTMLPreviewModal.vue","webpack:///./src/components/misc/HTMLPreviewModal.vue?640e","webpack:///./src/components/misc/HTMLPreviewModal.vue?f53f","webpack:///./src/components/RatePlanFormAddOnServices.vue?c93b","webpack:///./src/components/RatePlanFormAddOnServices.vue","webpack:///./src/components/RatePlanFormAddOnServices.vue?b7bd","webpack:///./src/components/RatePlanFormAddOnServices.vue?859d","webpack:///./src/components/RatePlanForm.vue","webpack:///./src/components/RatePlanForm.vue?d725","webpack:///./src/components/RatePlanForm.vue?b23a","webpack:///./src/components/RatePlansTiles.vue","webpack:///./src/components/RatePlansTiles.vue?7ae3","webpack:///./src/components/RatePlansTiles.vue?a530","webpack:///./src/views/RatePlans.vue","webpack:///./src/views/RatePlans.vue?dca2","webpack:///./src/views/RatePlans.vue?5c56","webpack:///./src/views/Finances.vue?8e90","webpack:///./src/views/Finances.vue","webpack:///./src/views/Finances.vue?93b6","webpack:///./src/views/Finances.vue?5655","webpack:///./src/views/Customers.vue?dcee","webpack:///./src/components/CustomersTable.vue?0382","webpack:///./src/components/CustomersTable.vue","webpack:///./src/components/CustomersTable.vue?8d55","webpack:///./src/components/CustomersTable.vue?8158","webpack:///./src/views/Customers.vue","webpack:///./src/views/Customers.vue?a0fe","webpack:///./src/views/Customers.vue?3cdc","webpack:///./src/views/EVisitors.vue?a9be","webpack:///./src/views/EVisitors.vue","webpack:///./src/views/EVisitors.vue?6480","webpack:///./src/views/EVisitors.vue?34ba","webpack:///./src/views/auth/_AuthLayout.vue?33f3","webpack:///./src/views/auth/_AuthLayout.vue","webpack:///./src/views/auth/_AuthLayout.vue?833e","webpack:///./src/views/auth/_AuthLayout.vue?1e42","webpack:///./src/views/auth/Signin.vue?91d1","webpack:///./src/views/auth/Signin.vue","webpack:///./src/views/auth/Signin.vue?8340","webpack:///./src/views/auth/Signin.vue?b774","webpack:///./src/views/auth/ResetPassword.vue?07ad","webpack:///./src/shared/models/token.ts","webpack:///./src/views/auth/ResetPassword.vue","webpack:///./src/views/auth/ResetPassword.vue?d674","webpack:///./src/views/auth/ResetPassword.vue?43b6","webpack:///./src/views/auth/ForgottenPassword.vue?1e2a","webpack:///./src/views/auth/ForgottenPassword.vue","webpack:///./src/views/auth/ForgottenPassword.vue?70f0","webpack:///./src/views/auth/ForgottenPassword.vue?08e1","webpack:///./src/views/Messages.vue?5b1f","webpack:///./src/views/Messages.vue","webpack:///./src/views/Messages.vue?9986","webpack:///./src/views/Messages.vue?e19b","webpack:///./src/views/Settings/NotificationTemplates.vue?533d","webpack:///./src/components/messages/templates/NotificationTemplatesTable.vue?87ac","webpack:///./src/components/messages/templates/NotificationTemplatesTable.vue","webpack:///./src/components/messages/templates/NotificationTemplatesTable.vue?689c","webpack:///./src/components/messages/templates/NotificationTemplatesTable.vue?2541","webpack:///./src/views/Settings/NotificationTemplates.vue","webpack:///./src/views/Settings/NotificationTemplates.vue?9566","webpack:///./src/views/Settings/NotificationTemplates.vue?f555","webpack:///./src/components/messages/templates/NotificationTemplateForm.vue?ae18","webpack:///./src/components/messages/templates/NotificationTemplateTranslations.vue?b4a3","webpack:///./src/components/messages/templates/NotificationTemplateVariables.vue?e2b6","webpack:///./src/components/messages/templates/NotificationTemplateVariables.vue","webpack:///./src/components/messages/templates/NotificationTemplateVariables.vue?67aa","webpack:///./src/components/messages/templates/NotificationTemplateVariables.vue?4278","webpack:///./src/components/messages/templates/NotificationTemplateTranslations.vue","webpack:///./src/components/messages/templates/NotificationTemplateTranslations.vue?49b2","webpack:///./src/components/messages/templates/NotificationTemplateTranslations.vue?d170","webpack:///./src/components/messages/templates/types.ts","webpack:///./src/shared/models/notificationSchedulesTriggerDate.ts","webpack:///./src/components/messages/schedules/NotificationScheduleForm.vue?1ddd","webpack:///./src/components/messages/schedules/types.ts","webpack:///./src/components/messages/schedules/NotificationScheduleForm.vue","webpack:///./src/components/messages/schedules/NotificationScheduleForm.vue?0f47","webpack:///./src/components/messages/schedules/NotificationScheduleForm.vue?330d","webpack:///./src/components/messages/templates/NotificationTemplateForm.vue","webpack:///./src/components/messages/templates/NotificationTemplateForm.vue?fcb3","webpack:///./src/components/messages/templates/NotificationTemplateForm.vue?b7fb","webpack:///./src/views/Settings/DocumentSettings.vue?8541","webpack:///./src/components/documents/DocumentSettingsForm.vue?3bac","webpack:///./src/components/documents/DocumentSettingsForm.vue","webpack:///./src/components/documents/DocumentSettingsForm.vue?322b","webpack:///./src/components/documents/DocumentSettingsForm.vue?d9ef","webpack:///./src/views/Settings/DocumentSettings.vue","webpack:///./src/views/Settings/DocumentSettings.vue?b390","webpack:///./src/views/Settings/DocumentSettings.vue?ddb3","webpack:///./src/views/GuestReviews.vue?586d","webpack:///./src/components/GuestReviewTable.vue?112e","webpack:///./src/components/GuestReviewForm.vue?c5b8","webpack:///./src/shared/models/guestReview.ts","webpack:///./src/components/GuestReviewForm.vue","webpack:///./src/components/GuestReviewForm.vue?3a32","webpack:///./src/components/GuestReviewForm.vue?fd72","webpack:///./src/components/GuestReviewTable.vue","webpack:///./src/components/GuestReviewTable.vue?6f34","webpack:///./src/components/GuestReviewTable.vue?4ee9","webpack:///./src/views/GuestReviews.vue","webpack:///./src/views/GuestReviews.vue?77c6","webpack:///./src/views/GuestReviews.vue?38cc","webpack:///./src/views/Maintenance.vue?b4d9","webpack:///./src/components/maintenance/MaintenanceGrid.vue?6a86","webpack:///./src/components/maintenance/MaintenanceGridTile.vue?5287","webpack:///./src/components/maintenance/MaintenanceGridTile.vue","webpack:///./src/components/maintenance/MaintenanceGridTile.vue?fad0","webpack:///./src/components/maintenance/MaintenanceGridTile.vue?cb97","webpack:///./src/components/maintenance/MaintenanceGrid.vue","webpack:///./src/components/maintenance/MaintenanceGrid.vue?00e3","webpack:///./src/components/maintenance/MaintenanceGrid.vue?78c4","webpack:///./src/views/Maintenance.vue","webpack:///./src/views/Maintenance.vue?b6b6","webpack:///./src/views/Maintenance.vue?be98","webpack:///./src/router/policyGuard.ts","webpack:///./src/router/layoutSwitcher.ts","webpack:///./src/router/index.ts","webpack:///./src/components/property/PoisTiles.vue?287e","webpack:///./src/components/advanced-search/AvailabilitySearchResultsMobile.vue?5e4d","webpack:///./src/views/Customers.vue?2bd5","webpack:///./src/App.vue?b5e6","webpack:///./src/components/reservation-form/ReservationFormUnitGuests.vue?e0cb","webpack:///./src/components/misc/MobileFilterModal.vue?5f9b","webpack:///./src/components/misc/MobileFilterModal.vue","webpack:///./src/components/misc/MobileFilterModal.vue?d3a0","webpack:///./src/components/misc/MobileFilterModal.vue?2927","webpack:///./src/mixins/GlobalFilterSensitiveMixin.ts","webpack:///./src/components/reservation-form/eVisitor/MultipleGuestsEditForm.vue?7c86","webpack:///./src/components/advanced-search/SpecialOfferDrawer.vue?5e15","webpack:///./src/components/calendar/BoxTimeTrack.vue?7644","webpack:///./src/components/calendar/TimeTrackDayTrack.vue?641a","webpack:///./src/components/calendar/TimeTrackDayTrack.vue","webpack:///./src/components/calendar/TimeTrackDayTrack.vue?c922","webpack:///./src/components/calendar/TimeTrackDayTrack.vue?e4a1","webpack:///./src/components/calendar/BoxTimeTrack.vue","webpack:///./src/components/calendar/BoxTimeTrack.vue?2e54","webpack:///./src/components/calendar/BoxTimeTrack.vue?27f1","webpack:///./src/components/misc/ColorPicker.vue?d02b","webpack:///./src/components/property/AccomodationUnitTypeTranslations.vue?b1c2","webpack:///./src/components/eVisitor/forms/ETurizemReportForm.vue?929d","webpack:///./src/store/modules/dashboard.ts","webpack:///./src/components/reservation-form/ReservationFormUnitFields.vue?85cb","webpack:///./src/views/RatePlans.vue?2994","webpack:///./src/components/property/AccomodationUnitTypeRatePlanOverrides.vue?eb72","webpack:///./src/components/misc/RichTextEditor.vue?7952","webpack:///./src/components/RatePlansTiles.vue?841f","webpack:///./src/components/reservation-form/ReservationFormUnits.vue?6db6","webpack:///./src/shared/commonFunctions.ts","webpack:///./src/components/property/PropertyOwner.vue?49ab","webpack:///./src/components/misc/NoData.vue?f0b9","webpack:///./src/components/misc/NoData.vue","webpack:///./src/components/misc/NoData.vue?8acc","webpack:///./src/components/misc/NoData.vue?ea9c","webpack:///./src/components/contingent/ContingentBox.vue?9df8","webpack:///./src/components/property/official-rates/OfficialRatesTable.vue?ed26","webpack:///./src/components/property/Otas.vue?7d4b","webpack:///./src/components/CustomersTable.vue?8e33","webpack:///./src/components/reservation-form/check-in/CheckInModalForm.vue?6694","webpack:///./src/views/ReservationsMobile.vue?436e","webpack:///./src/components/ReservationsTableMobile.vue?0d4c","webpack:///./src/components/ReservationTableMobileTile.vue?fa3f","webpack:///./src/components/ReservationTableMobileTile.vue","webpack:///./src/components/ReservationTableMobileTile.vue?6f43","webpack:///./src/components/ReservationTableMobileTile.vue?9670","webpack:///./src/components/ReservationsTableMobile.vue","webpack:///./src/components/ReservationsTableMobile.vue?91a9","webpack:///./src/components/ReservationsTableMobile.vue?2b62","webpack:///./src/views/ReservationsMobile.vue","webpack:///./src/views/ReservationsMobile.vue?8f93","webpack:///./src/views/ReservationsMobile.vue?e04d","webpack:///./src/components/reservation-form/ReservationForm.vue?6a7c","webpack:///./src/components/messages/MessageForm.vue?fa6f","webpack:///./src/components/generic-pms-table/ResizableTableDirective.ts","webpack:///./src/components/generic-pms-table/SortableHeadersTable.vue","webpack:///./src/components/generic-pms-table/SortableHeadersTable.vue?f809","webpack:///./src/components/generic-pms-table/SortableHeadersTable.vue?aeab","webpack:///./src/components/property/AccomodationUnitTypeOBCategoriesForm.vue?bcd7","webpack:///./src/components/reservation-form/check-in/ScannerDebug.vue?86a1","webpack:///./src/components/photo-editor/PhotoForm.vue?5e4f","webpack:///./src/components/misc/MoreLessSelect.vue?f443","webpack:///./src/components/misc/MoreLessSelect.vue","webpack:///./src/components/misc/MoreLessSelect.vue?7170","webpack:///./src/components/misc/MoreLessSelect.vue?bf7d","webpack:///./src/App.vue?bfe9","webpack:///./src/App.vue","webpack:///./src/App.vue?c82e","webpack:///./src/App.vue?a8d2","webpack:///./src/plugins/vuetify.ts","webpack:///./src/plugins/axios.ts","webpack:///./src/plugins/vue2-google-maps.ts","webpack:///./src/registerServiceWorker.ts","webpack:///./src/main.ts","webpack:///./src/components/property/official-rates/OfficialRatesLOSRules.vue?4d08","webpack:///./src/components/EVisitorTable.vue?e857","webpack:///./src/components/reservation-form/eVisitor/MultipleGuestsEditForm.vue?6a82","webpack:///./src/components/reservation-form/eVisitor/MultipleGuestsEditForm.vue","webpack:///./src/components/reservation-form/eVisitor/MultipleGuestsEditForm.vue?a627","webpack:///./src/components/reservation-form/eVisitor/MultipleGuestsEditForm.vue?67c4","webpack:///./src/components/eVisitor/EVisitorReportDialog.vue?4d99","webpack:///./src/components/eVisitor/forms/EVisitorReportForm.vue?3b36","webpack:///./src/components/eVisitor/forms/EVisitorReportForm.vue","webpack:///./src/components/eVisitor/forms/EVisitorReportForm.vue?a9c7","webpack:///./src/components/eVisitor/forms/EVisitorReportForm.vue?e03b","webpack:///./src/components/eVisitor/forms/ETurizemReportForm.vue?67f0","webpack:///./src/components/eVisitor/forms/ETurizemReportForm.vue","webpack:///./src/components/eVisitor/forms/ETurizemReportForm.vue?ebf1","webpack:///./src/components/eVisitor/forms/ETurizemReportForm.vue?12ed","webpack:///./src/components/eVisitor/EVisitorReportDialog.vue","webpack:///./src/components/eVisitor/EVisitorReportDialog.vue?8ee7","webpack:///./src/components/eVisitor/EVisitorReportDialog.vue?0bdb","webpack:///./src/components/EVisitorTable.vue","webpack:///./src/components/EVisitorTable.vue?4d39","webpack:///./src/components/EVisitorTable.vue?a082","webpack:///./src/components/eVisitor/EVisitorReportDialog.vue?8eab","webpack:///./src/components/calendar/inputs/PriceInput.vue?0b11","webpack:///./src/components/calendar/inputs/PriceInput.vue","webpack:///./src/components/calendar/inputs/PriceInput.vue?36e1","webpack:///./src/components/calendar/inputs/PriceInput.vue?67e0","webpack:///./src/components/misc/DeferredAutocomplete.vue?7e97","webpack:///./src/components/misc/DeferredAutocomplete.vue","webpack:///./src/components/misc/DeferredAutocomplete.vue?fae8","webpack:///./src/components/misc/DeferredAutocomplete.vue?7f69","webpack:///./src/components/misc/CustomerLookup.vue?19a6","webpack:///./src/components/misc/CustomerLookup.vue","webpack:///./src/components/misc/CustomerLookup.vue?0475","webpack:///./src/components/misc/CustomerLookup.vue?16fd","webpack:///./src/shared/models/appParam.ts","webpack:///./src/components/finances/FinancialDocumentModalForm.vue?012c","webpack:///./src/components/finances/FinancialDocumentReservationSummary.vue?9cd7","webpack:///./src/components/finances/FinancialDocumentReservationSummary.vue","webpack:///./src/components/finances/FinancialDocumentReservationSummary.vue?9ddd","webpack:///./src/components/finances/FinancialDocumentReservationSummary.vue?b3cd","webpack:///./src/components/finances/FinancialDocumentFormParts/BasicInfo.vue?b859","webpack:///./src/components/finances/FinancialDocumentPaymentMeansAdditionalDetailsModal.vue?2dee","webpack:///./src/components/finances/FinancialDocumentPaymentMeansAdditionalDetailsModal.vue","webpack:///./src/components/finances/FinancialDocumentPaymentMeansAdditionalDetailsModal.vue?1779","webpack:///./src/components/finances/FinancialDocumentPaymentMeansAdditionalDetailsModal.vue?529c","webpack:///./src/components/finances/FinancialDocumentFormParts/BasicInfo.vue","webpack:///./src/components/finances/FinancialDocumentFormParts/BasicInfo.vue?e088","webpack:///./src/components/finances/FinancialDocumentFormParts/BasicInfo.vue?14e7","webpack:///./src/components/finances/FinancialDocumentFormParts/ClientInfo.vue?2c88","webpack:///./src/components/finances/FinancialDocumentFormParts/ClientInfo.vue","webpack:///./src/components/finances/FinancialDocumentFormParts/ClientInfo.vue?1411","webpack:///./src/components/finances/FinancialDocumentFormParts/ClientInfo.vue?b7b1","webpack:///./src/components/finances/FinancialDocumentFormParts/LineItems.vue?ffde","webpack:///./src/components/finances/MultipleReservationsInvoice/MultipleReservationsInvoice.vue?7ad1","webpack:///./src/components/finances/MultipleReservationsInvoice/MultipleReservationsInvoice.vue","webpack:///./src/components/finances/MultipleReservationsInvoice/MultipleReservationsInvoice.vue?2806","webpack:///./src/components/finances/MultipleReservationsInvoice/MultipleReservationsInvoice.vue?9574","webpack:///./src/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue?8a4f","webpack:///./src/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue","webpack:///./src/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue?c6de","webpack:///./src/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue?7c10","webpack:///./src/components/finances/FinancialDocumentFormParts/LineItems.vue","webpack:///./src/components/finances/FinancialDocumentFormParts/LineItems.vue?f409","webpack:///./src/components/finances/FinancialDocumentFormParts/LineItems.vue?171b","webpack:///./src/components/finances/FinancialDocumentFormParts/PriceSummary.vue?f497","webpack:///./src/components/finances/FinancialDocumentFormParts/AdvancePicker.vue?c3a7","webpack:///./src/components/finances/FinancialDocumentFormParts/AdvancePicker.vue","webpack:///./src/components/finances/FinancialDocumentFormParts/AdvancePicker.vue?7e51","webpack:///./src/components/finances/FinancialDocumentFormParts/AdvancePicker.vue?a83b","webpack:///./src/components/finances/FinancialDocumentFormParts/TaxRecap.vue?7497","webpack:///./src/components/finances/FinancialDocumentFormParts/TaxRecap.vue","webpack:///./src/components/finances/FinancialDocumentFormParts/TaxRecap.vue?7f19","webpack:///./src/components/finances/FinancialDocumentFormParts/TaxRecap.vue?eb4f","webpack:///./src/components/finances/FinancialDocumentFormParts/PriceSummary.vue","webpack:///./src/components/finances/FinancialDocumentFormParts/PriceSummary.vue?50a2","webpack:///./src/components/finances/FinancialDocumentFormParts/PriceSummary.vue?bd78","webpack:///./src/components/finances/FinancialDocumentPaymentsModal.vue?aee3","webpack:///./src/components/finances/FinancialDocumentPaymentsModal.vue","webpack:///./src/components/finances/FinancialDocumentPaymentsModal.vue?8099","webpack:///./src/components/finances/FinancialDocumentPaymentsModal.vue?9fd3","webpack:///./src/components/finances/FinancialDocumentModalForm.vue","webpack:///./src/components/finances/FinancialDocumentModalForm.vue?c141","webpack:///./src/components/finances/FinancialDocumentModalForm.vue?efdc","webpack:///./src/components/misc/MoreLessSelect.vue?041f","webpack:///./src/shared/models/agencyWorkModel.ts","webpack:///./src/components/messages/templates/NotificationTemplateTranslations.vue?65f0","webpack:///./src/components/maintenance/MaintenanceGrid.vue?6689","webpack:///./src/shared/models/eVisitor.ts","webpack:///./src/components/reservation-form/ReservationFormPaymentForm.vue?0400","webpack:///./src/components/misc/CustomerLookupMobile.vue?e5e7","webpack:///./src/components/messages/templates/NotificationTemplateVariables.vue?930a","webpack:///./src/components/finances/FinancialDocumentFormParts/functions.ts","webpack:///./src/components/messages/types.ts","webpack:///./src/App.vue?ddc8","webpack:///./src/components/GuestReviewForm.vue?e045","webpack:///./src/components/misc/MobileFilterModal.vue?ecb0","webpack:///./src/components/calendar/CalendarBoxRow.vue?05db","webpack:///./src/components/misc/DateTimeOffsetField.vue?8092","webpack:///./src/components/misc/DateTimeOffsetField.vue","webpack:///./src/components/misc/DateTimeOffsetField.vue?1c50","webpack:///./src/components/misc/DateTimeOffsetField.vue?73fc","webpack:///./src/components/property/AccomodationUnitTypeLOSCategoriesForm.vue?7ab3","webpack:///./src/components/advanced-search/AvailabilitySearchReservationForm.vue?c137","webpack:///./src/components/messages/schedules/NotificationScheduleForm.vue?9d2b","webpack:///./src/components/reservation-form/ReservationFormUnitAddOnServices.vue?fd5d","webpack:///./src/components/advanced-search/AvailabilitySearchResults.vue?455b","webpack:///./src/components/misc/RightDrawer.vue?bd7f","webpack:///./src/components/misc/RightDrawer.vue","webpack:///./src/components/misc/RightDrawer.vue?dab3","webpack:///./src/components/misc/RightDrawer.vue?3075","webpack:///./src/components/calendar/Settings.vue?ed67","webpack:///./src/components/property/PropertyForm.vue?ed9b","webpack:///./src/components/calendar/BoxDayTrack.vue?bce8","webpack:///./src/components/reservation-form/ReservationFormHolder.vue?a8da","webpack:///./src/components/calendar/BoxTimeTrack.vue?fbaa","webpack:///./src/components/calendar/TimeTrackDayTrack.vue?07fe","webpack:///./src/components/reservation-form/ReservationFormInfo.vue?9d1e","webpack:///./src/components/property/EVisitorFacilitiesTable.vue?2e88","webpack:///./src/components/reservation-form/ReservationFormUnitTile.vue?f96e","webpack:///./src/components/misc/RatingInput.vue?be45","webpack:///./src/assets/images/flags/sl-SI.png","webpack:///./src/components/photo-editor/PhotoEditor.vue?62f7","webpack:///./src/shared/handleBrokenRuleAdapter.ts","webpack:///./src/components/property/official-rates/OfficialRatesExportForOwners.vue?7899","webpack:///./src/plugins/i18n.ts"],"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","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","notifications","allNotificationMessages","state","idx","actions","showNotification","notification","commit","existing","id","find","timeoutId","notificationCopy","closeNotification","mutations","addNotification","removeNotification","filter","x","getters","sid","tid","utid","exp","tname","roles","accessToken","refreshToken","availableTenants","this","storedUserResolved","storedUserResolvedDefferedCB","storageKey","businessUnitStorageKey","cashRegisterStorageKey","tryExtractClaims","authResponse","claims","ready","isSignedIn","serverData","loadState","stored","localStorage","getItem","parsed","JSON","parse","saveState","stringified","stringify","setItem","removeItem","forgottenPassword","_","payload","response","axios","post","resetEmailSent","errors","catch","brokenRules","resetPassword","dispatch","res","username","password","signout","root","checkIfFirstSignin","router","query","signin","authHandle","authCall","finally","refresh","refreshGlobalFilters","tenantId","refreshToTenant","currentTenantId","preferredTenantId","setStoredResolved","setData","Date","now","setAuthHandle","store","loaded","syncAuthState","ev","oldTenantId","userId","oldValue","newValue","currentRoute","path","includes","addEventListener","namespaced","savedDataString","savedData","language","i18n","locale","textResource","navigator","languages","some","y","setLocaleMessage","inited","supportedLanguages","map","supportedLanguage","sp","split","languageCode","cultureCode","getTextResource","tr","keys","getLocaleMessage","fallbackLocale","setLanguage","refreshLanguages","cookie","mergeLocaleMessage","setLanguages","initialState","properties","filteredProperties","showDeletedProperties","refreshFilter","rootGetters","replaceCurrent","currentCount","params","$count","$skip","$orderby","count","dbData","gfilter","propertiesIds","selected","indexOf","propertyId","propertyGlobalFilter","status","param","reset","assign","setProperties","addProperties","setFilter","setShowDeletedProperties","arrivalOrganizationTypes","cityTaxCategories","countries","categories","currencies","taxRates","priceCalculationMethods","cardTypes","poiTypes","amenities","amenityGroups","propertyTypes","pricingModels","bedTypes","cancelationPolicies","prepaymentPolicies","roomTypes","photoTags","distributionChannelTypes","otas","salesChannels","reservationStatuses","paymentMeans","financialDocumentTypes","financialDocumentStatuses","identificationDocumentTypes","ownerPricingModels","unitsOfMeasure","textResourceKey","messageSourceTypes","notificationTemplateAttachments","notificationTemplateRecipients","notificationTemplateVariables","notificationSchedulesOffsets","notificationSchedulesTriggerDates","accomodationUnitStatuses","agencyWorkModels","vatCategoriesForPrepayments","demandChangingEventStatus","serviceTypes","arrivalReasons","guestReviewStatuses","availabilityChangelogEventTypes","ratePlansPromoCodeApplicationMethods","transactionTypes","transactionDescriptions","reservationBillingStatuses","eVisitorFacilityStatuses","a","amenityGroupName","g","amenityGroupId","amenitySortOrder","sortOrder","groupedAmenities","otasWithInactive","salesChannelsWithInactive","refresharrivalOrganizationTypes","refreshCityTaxCategories","refreshCountries","refreshCategories","refreshCurrencies","refreshTaxRates","refreshPriceCalculationMethods","refreshCardTypes","refreshPoiTypes","refreshAmenitiesAndGroups","$top","reses","groups","refreshPropertyTypes","refreshPricingModels","refreshBedTypes","refreshCancelationPolicies","refreshPrepaymentPolicies","refreshRoomTypes","refreshPhotoTags","refreshDistributionChannelTypes","refreshOtas","refreshSalesChannels","refreshReservationStatuses","refreshPaymentMeans","refreshFinancialDocumentTypes","refreshFinancialDocumentStatuses","refreshIdentificationDocumentTypes","refreshOwnerPricingModels","refreshMessageSourceTypes","refreshNotificationTemplateAttachments","refreshNotificationTemplateRecipients","refreshNotificationTemplateVariables","refreshNotificationSchedulesOffsets","refreshNotificationSchedulesTriggerDates","refreshAccomodationUnitStatuses","refreshAgencyWorkModels","refreshVATCategoriesForPrepayments","refreshDemandChangingEventStatus","refreshServiceTypes","refreshArrivalReasons","refreshGuestReviewStatuses","refreshAvailabilityChangelogEventTypes","refreshRatePlansPromoCodeApplicationMethods","refreshTransactiontypes","refreshTransactiontypeDescriptions","refreshReservationBillingStatuses","refreshEVisitorFacilityStatuses","setarrivalOrganizationTypes","setCityTaxCategories","setCountries","setCategories","setCurrencies","setTaxRates","setPriceCalculationMethods","setCardTypes","setPoiTypes","setAmenitiesAndGroups","setPropertyTypes","setPricingModels","setBedTypes","setCancelationPolicies","setPrepaymentPolicies","setRoomTypes","setPhotoTags","setDistributionChannelTypes","setOtas","setSalesChannels","setReservationStatuses","setPaymentMeans","setFinancialDocumentTypes","setFinancialDocumentStatuses","setOwnerPricingModels","setIdentificationDocumentTypes","setMessageSourceTypes","setNotificationTemplateAttachments","setNotificationTemplateRecipients","setNotificationTemplateVariables","setNotificationSchedulesOffsets","setNotificationSchedulesTriggerDates","setAccomodationUnitStatuses","setAgencyWorkModels","setVATCategoriesForPrepayments","setDemandChangingEventStatus","setServiceTypes","setArrivalReasons","setGuestReviewStatuses","setAvailabilityChangelogEventTypes","setRatePlansPromoCodeApplicationMethods","setTransactionTypes","setTransactionDescriptions","setReservationBillingStatuses","setEVisitorFacilityStatuses","appParams","tenantPaysVat","tenantUsesInputPrice","tenantAutoEmailsFrom","tenantIsFiscalizationObligor","tenantPaymentGatewayIntegrationId","tenantEVisitorIntegrationId","tenantWhatsAppIntegrationEnabled","typeId","tenantCustomer","countryId","workingCurrency","rootState","val","TenantWorkingCurrency","formalCurrency","TenantFormalCurrency","multiCurrencyInvoices","EnableMultiCurrencyInvoices","reservationFormBlankPriceOption","ReservationFormBlankPriceOption","reservationShowRatePlanPopup","ReservationShowRatePlanPopup","showOwnerPriceOffset","ShowOwnerPriceOffset","reservationShowHolderInfo","ReservationShowHolderInfo","reservationShowGuestInfo","ReservationShowGuestInfo","checkOutOnEVisitorState","CheckOutOnEVisitorState","checkInOnEVisitorState","CheckInEVisitorState","statusToCheckedOutState","StatusToCheckedOutState","statusToCheckedInState","StatusToCheckedInState","lineItemDistributionStrategy","TenantLineItemDistributionStrategy","ignoreAccomodationTextResource","TenantIgnoreDocTypePrefixOnAccommodation","unitRenderTypeLineOne","TenantUnitLineRenderLineOne","unitRenderTypeLineTwo","TenantUnitLineRenderLineTwo","reservationHideArrivalDeparture","ReservationHideArrivalDeparture","reservationHideDeposit","ReservationHideDeposit","reservationHideDiscount","ReservationHideDiscount","reservationTenantUsesServiceTypes","ReservationTenantUsesServiceTypes","reservationEVisitorCollapseExpandHideFacilityInfo","ReservationEVisitorCollapseExpandHideFacilityInfo","tenantUsesPropertiesAsBusinessUnits","TenantUsesPropertiesAsBusinessUnits","routePrepaymentsForOwnNameAndOtherInvoice","RoutePrepaymentsForOwnNameAndOtherInvoice","routeInvoicesForOwnNameAndOtherInvoice","RouteInvoicesForOwnNameAndOtherInvoice","calculateWithEVisitorDates","ReservationEVisitorCalculateCTWithEVisitorDates","showRegistrationFormButton","ShowRegistrationFormButton","showCopyGuestsButton","ShowCopyGuestsButton","showAOSPeriodColumn","ShowAOSPeriodColumn","tenantGeneratesOwnersInvoices","TenantGeneratesOwnersInvoices","tenantGeneratesDeliveryNotes","TenantGeneratesDeliveryNotes","tenantUsesOfficialRates","TenantUsesOfficialRates","allowOfficialRatesInWorkingCurrency","AllowOfficialRatesInWorkingCurrency","officialRatesUseSeasonNames","OfficialRatesUseSeasonNames","officialRatesDateFromDefaultsToPlus1Day","OfficialRatesDateFromDefaultsToPlus1Day","tenantUsesAvailabilityBlockerCalculations","TenantUsesAvailabilityBlockerCalculations","tenantUsesLazyLoadedCalendar","TenantUsesLazyLoadedCalendar","disableCustomAddOnServiceLineItems","DisableCustomAddOnServiceLineItems","tenantShowAddOnServiceDiscount","TenantShowAddOnServiceDiscount","tenantExportsSEPA","TenantExportsSEPA","tenantExportsOwnersInvoices","TenantExportsOwnersInvoices","tenantExportsAgencyCommissionInvoices","TenantExportsAgencyCommissionInvoices","tenantExportsGuestInvoices","TenantExportsGuestInvoices","tenantHasAgencyCommissionForPrepayments","TenantHasAgencyCommissionForPrepayments","tenantOfficialRateDefaultCurrencyId","TenantOfficialRateDefaultCurrency","tenantUsesInstalments","TenantUsesInstalments","showUnpaidPrepaymentsModal","ShowUnpaidPrepaymentsModal","tenantUsesAvailabilityChangelog","TenantUsesAvailabilityChangelog","childrenAffectPAXRatePlanSelection","ChildrenAffectPAXRatePlanSelection","tenantEVisitorIntegration","integrationName","HR","SL","None","enableOwnersPartAOSOwnerInvoices","EnableOwnersPartAOSOwnerInvoices","showOwnersReservationOnDashboard","ShowOwnersReservationOnDashboard","tenantIsAllowedToAsyncBulkGenerateInvoices","AsyncBulkInvoiceGeneration","calendarOBLOSCategoriesApplicationAllowed","CalendarOBLOSCategoriesApplicationAllowed","calendarRelatedRatesPriceUpdateTypeDefault","CalendarRelatedRatesPriceUpdateTypeDefault","calendarRelatedRatesRestrictionsUpdateTypeDefault","CalendarRelatedRatesRestrictionsUpdateTypeDefault","businessUnitShowCadastralInfo","BusinessUnitShowCadastralInfo","businessUnitShowDates","BusinessUnitShowDates","cashRegisterFeatureFlag","CashRegisterEnable","automaticRelatedAdvanceInvoiceCancellingDefault","AutomaticRelatedAdvanceInvoiceCancellingDefault","tenantCanEditPAXCategories","TenantCanEditPAXCategories","tenantAutomaticPAXCategoriesAreIndividual","TenantAutomaticPAXCategoriesAreIndividual","tenantCanEditLOSCategories","TenantCanEditLOSCategories","tenantOBRsUseRelativePricing","TenantOBRsUseRelativePricing","showPAXSuffixInRatePlanName","showLOSSuffixInRatePlanName","reservationsGridFiltersByDate","ReservationsGridFiltersByDate","isCardTypeRequiredForCardPaymentMeans","CardTypeRequiredForCardPaymentMeans","allow0InputPriceForOfficialRate","Allow0InputPriceForOfficialRate","asyncRatePlanAvailabiltyUpdateThresholdSize","AsyncRatePlanAvailabiltyUpdateThresholdSize","tenantUsesAgencyFees","TenantUsesAgencyFees","automaticallyChangeReservationStatusToConfirmed","AutomaticallyChangeReservationStatusToConfirmed","refreshAppParams","updateAppParams","model","put","setAppParams","setTenantPaysVat","setTenantUsesInputPrice","setTenantTypeId","setTenantAutoEmailsFrom","setTenantIsFiscalizationObligor","setTenantCustomer","setTenantCountryId","setTenantPaymentGatewayIntegrationId","setTenantEVisitorIntegration","setTenantWhatsAppIntegrationEnabled","defaultSettings","numOfDays","rowHeight","showUnits","showRatePlans","autoExpandRatePlans","showOBRatePlans","showRestrictions","showRatePlanFields","showListRatePlans","isForAvailabilitySearchCalendar","showInputPrice","reservationColoringBy","_settings","saved","loading","hierarchy","reservationsAndUnits","loadingAvailabilityAndReservationsForPropertyIds","currentDay","local","availabilityTimelineOpenOnClick","settingsOpen","calendarNeedsRefresh","settings","months","nonOBRatePlans","propertiesWithBlockedDatesCalculationInProgress","leftEdgeDay","rightEdgeDay","availabilities","reservations","blockedAvailabilities","isBlockedAvailabilitiesCheckRunning","getBlockedAvailabilities","usesLazyLoadedCalendar","propertyIds","join","from","toISO","substring","to","isLoading","startOf","availabilitiesAndReservations","setEdgeDays","setMonths","goToDay","toggleAvailabilityTimelineOpenOnClick","openSettings","closeSettings","updateSettings","setCalendarNeedsRefresh","refreshNonOBRatePlans","fetchHierarchy","propertiesPromise","accomodationUnitTypeIds","accomodationUnitsPromise","units","unitTypes","shortName","ut","uti","baseBedsCapacity","extraBedsCapacity","config","cell","h","ratePlansHeight","ratePlans","rp","ratePlanId","parentId","parentRatePlanId","currencyId","currencyCode","isDerived","isSpecialOrPackageOffer","isDefault","derivedFrom","minPersons","maxPersons","minStay","maxStay","u","statusId","maintenanceAssignedToTenantUserId","note","hl","resetAviailabilityAndReservations","removeAvailabilitiesForProperties","addAvailabilities","fetchAviailabilityAndReservations","availabilitiesPromise","toISODate","reservationsPromise","startBlockedAvailabilitiesCheck","startBlockedAvailabilitiesCheckForUnitTypes","left","right","setDay","settingsMenu","findIndex","setLoadingHierarchy","setLoadingReservationsAndUnits","setNonOBRatePlans","removeReservationsIntersectingPeriod","fromCorrected","UTC","toJSDate","getFullYear","getMonth","getDate","toCorrected","toISOString","f","departureDate","arrivalDate","unitIds","flatMap","accomodationUnitId","removeAvailabilities","unitTypeIds","unitTypeId","old","fresh","ratePlansAccomodationUnitTypeId","date","mergeAvailabilitiesAndReservations","setLoadingAvailabilityAndReservationsForPropertyIds","addPropertiesToListForChecking","newIds","mergeBlockedAvailabilities","calculationInProgress","propertiesWithoutCalculationsInprogress","blockedDates","ignoreRefresh","loadedOn","hasLogo","financialDocumentHeader","financialDocumentFooter","financialDocumentPaymentInstructions","nonFinancialDocumentHeader","documentKeyInfoTemplate","documentHouseRulesTemplate","isLoaded","saveModel","refreshModel","loadPromise","setModel","streetName","houseNumber","houseNumberAppendix","city","cityPostalName","postalCodeId","cadastralNumber","buildingNumber","buildingSectionNumber","validFrom","validTo","isHeadquarters","isVirtual","isRegistered","ownerCustomerId","isOwnerBusinessUnit","timeZoneId","shouldBeLinkedToFiscalizationService","isLinkedToFiscalizatioService","storedData","activeBusinessUnit","availableBusinessUnits","allBusinessUnits","businessUnitStorage","refreshBusinessUnits","shouldGetAll","setBusinessUnit","setBusinessUnitFromStorage","businessUnitId","clearBusinessUnits","setAvailableBusinessUnits","setAllBusinessUnits","setActiveBusinessUnit","businessUnit","accomodationUnitTypes","refreshAccomodationUnitTypes","setAccomodationUnitTypes","representationDate","expanded","height","selectedRatePlan","showPrice","reduce","acc","offset","daysData","occupied","available","occupancyPercentage","demandData","ratePlanData","isOBSpecific","initializedOnly","price","basePriceDifference","dateSpan","dataFormat","showPriceDifference","selectedPropertyId","selectedRatePlanId","contingentData","refreshRatePlans","contingentDataPromise","dd","ded","rpd","setRatePlans","setContingentData","guestsUnchanged","setGuestsUnchanged","dateFilterApplied","setDateFilterApplied","maintenanceTeam","refreshMaintenanceTeam","setMaintenanceTeam","businessUnitStatus","isLinkedToFiscalizationService","activeCashRegister","availableCashRegisters","allCashRegisters","cashRegisterStorage","refreshCashRegisters","setActiveCashRegister","removeActiveCashRegister","setCashRegisterFromStorage","cashRegisterId","clearCashRegisters","setAvailableCashRegisters","setAllCashRegisters","cashRegister","colorCodeHex","currentRequest","distributionChannelTypeColors","salesChannelColors","otaColors","calendarColorSettings","reservationStatusColors","reservationDistributionChannelColors","reservationOtaColors","reservationSalesChannelColors","colorBasedOn","useReservationColorOverride","colors","modelWrapper","refreshCalendarColorSettings","savedSettings","updateCalendarColorSettings","setCalendarColorSettings","use","theme","drawerCollapsed","showMenu","showGrid","customBreadcrumbs","showDatePicker","pwaInstallEvent","Store","isLightTheme","isDarkTheme","canInstallPWA","setTheme","toggleTheme","setShowMenu","setShowGrid","setDrawerCollapsed","setShowDatePicker","setCustomBreadcrumbs","setPwaInstallEvent","auth","globalFilters","codebooks","calendar","financial","documents","reports","contingent","dashboard","reservation","maintenance","appAppearance","plugins","render","_vm","_h","$createElement","_c","_self","attrs","rules","on","$event","staticClass","class","$vuetify","dark","_v","_s","label","disabled","readonly","dense","change","staticRenderFns","$emit","default","component","VInput","VRating","items","clearable","outlined","hideDetails","autocomplete","defferedAutocomplete","debounce","fetch","concat","components","DeferredAutocomplete","callback","$$v","internalOpen","expression","ref","preventDefault","submit","arguments","$t","availableRatePlans","required","scopedSlots","_u","fn","item","getRateName","updateOtherUnits","_e","form","resetValidation","autoPriceRecalculation","rate","paxSuffix","losSuffix","CurrencyDisplay","VBtn","VCard","VCardActions","VCardText","VCardTitle","VCheckbox","VDialog","VForm","VList","VListItem","VSelect","formatOrderby","sortby","asc","formatOrderbyArray","requiredPolicies","policies","policy","conditionalRender","myRoles","requiredRoles","role","exists","myRole","$slots","$n","style","currency","isoCode","currencyDisplay","buttonType","_g","_b","open","iframe","formValid","showPassword","slot","staticStyle","cardToken","sessionToken","serviceCodeToken","reservationId","immediate","VIcon","VSpacer","VTextField","VTooltip","pos","closeable","menu","width","breakpoint","mobile","isMobile","unitType","ratePlan","field","unitName","unit","fromUI","toUI","$tc","nights","subtitle","contingentMode","priceRule","maxDecimals","stopPropagation","priceInput","valid","text","hasOBRules","relatedRatePlansPriceUpdateType","RelatedRatePlansPriceUpdateTypeEnum","DontUpdate","ApplyChange","ApplyOBLOSCategories","unitStatusInput","unitMaintenanceAssignedToTenantUserId","v","textInput","booleanInput","quantityRule","onErrorUpdate","pick","quantityInput","mustBePositive","numberInput","_n","hasDerived","relatedRatePlansRestrictionsUpdateType","RelatedRatePlansRestrictionsUpdateTypeEnum","UpdateOBSpecificOnly","UpdateDerivedOnly","UpdateDerivedAndOBSpecific","submitting","close","test","diff","days","toString","fromISO","countDecimals","max","separator","Intl","NumberFormat","internalLanguage","format","replace","num","decimalSeparator","$d","originalValue","contingentSelectedRows","tenantUserId","original","isNumber","exec","flat","percentage","subtraction","addition","number","total","valueCurrency","submitPrice","submitContingentPrice","submitQuantity","submitInputPrice","submitUnitStatus","submitRestriction","extracted","prefix","numeric","substr","isSet","asyncBulkEditStarted","$store","color","isAbsolute","numberValue","booleanValue","calendarUnitRemark","month","year","fromDate","day","toDate","index","element","rowDates","getRowDates","mergeContingentResponseData","dayData","originalPrice","NumericPicker","DateField","VCardSubtitle","VCol","VMenu","VOverlay","VProgressCircular","VRadio","VRadioGroup","VRow","VTextarea","internalLoading","minDelay","VFadeTransition","IdentificationDocumentTypesEnum","_k","keyCode","closeModal","isOpen","isOwnerLevel3","setReservationColor","reservationModel","$set","isPartnerAgency","salesChannelName","otaName","otareservationId","menuOpen","isMenuValid","maxLength","changedOtaReservationId","submitOtaReservationId","$refs","save","isSaving","fkey","isLoadingOrSaving","tab","eVisitorServiceName","eVisitorIntegration","localAvailabilities","period","localRestrictions","tenantReservationTags","isOverbooked","isNotAvailable","refreshReservation","loadReservation","checkInSingleUnit","checkOutSingleUnit","tagsChanged","xsOnly","hasSavedCreditCard","customerId","paymentMeansId","invoiceStatusId","formStateUnchanged","markReservationStatusAsOverriden","paymentSaved","checkCancellationPolicies","confirmMarkedAsManuallyOverriden","cancellationConfirmDialog","cancellationConfirmed","messagesDirection","newMessageFormOpen","customer","telephoneNumber","openWhatsAppConversation","newMessageBase","newMessageType","newMessageRecipients","refreshMessagesTable","isEvisitorDialogOpen","confirmEvisitorStayUpdate","reservationIsReadonly","shouldUpdateOnEvisitor","reservationStatusEnum","Confirmed","cancelReservation","isReservationOnHoldAndUnitCheckedInOut","confirmReservation","partialConfirmReservation","reservationPutOnHold","partialHoldReservation","markAsCheckedIn","noShowReservation","markAsConfirmed","markUnitsAsOnHold","returnToCheckedIn","markAsCheckedOut","canResetStatus","resetReservationStatus","hasAccomodationUnitTypes","openCheckOut","generateOffer","agencyWorkModelId","agencyWorkModelsEnum","OtherNameAndOtherInvoice","generateCommissionInvoice","generateAdvanceInvoice","generateGuestInvoice","generateDeliveryNote","accUnitsEligibleForOwnersInvoice","generateOwnersInvoice","openCheckIn","showPaymentLinkButton","openPayByLink","invoiceRoutingOpen","invoiceRoutingDefaults","invoiceRoutingIsForCancellation","customerName","customerIdentificationNumber","cardTypeId","invoiceRoutingFinancialDocumentTypeId","reloadFinancialTable","invoiceEditingOpen","finDocId","deleteDocOnClose","isCheckInOpen","isCheckInLoading","checkedInCustomersOnAccUnitTypes","scrollId","singleUnit","checkInModalSaved","isCheckOutOpen","checkOutCustomersOnAccUnitTypes","checkOutModalSaved","checkOutModalFailed","unitSelectionUnits","unitSelectionModalOpen","unitSelectionModalAction","payByLink","payByLinkResult","currencyIsoCode","reservationStatusDisplay","otaid","reservationOtaDisplay","reservationHolderName","eVisitorSyncAmount","internalValue","_l","aut","reservationAccUnitTypeId","isOverTheAllocated","displayCount","refInFor","shake","allGuestsFlat","firstGuestOrganizationTypeId","eVisitorCheck","eVisitorFacilityService","holderSelected","removeGuest","eVisitorArrivalOrganizationTypeId","onDirty","addGuest","scanFail","debug","updateStatusLabel","updateResStatus","eVisitorIntegrationName","debugData","findCountry","ocrCountry","term","toUpperCase","found","mrzCodeOverride","isoThreeLetterCode","getIdentificationDocumentType","eVisitorIntegrationId","docTypeName","IdCard_HR_eVisitor","Passport_HR_eVisitor","IdCard_SL_eTurizem","Passport_SL_eTurizem","IdCard_None","Passport_None","assignToReservationCheckInCustomerData","values","identificationDocumentTypeId","docType","sex","genderId","docNumber","identificationDocumentNumber","nationality","countryOfBirthId","citizenshipId","issuingState","countryOfResidenceId","forename","firstName","secondName","middleName","surname","lastName","dateOfBirth","isDirty","isEmpty","guest","eVisitorIsCheckedIn","eVisitorCheckinResult","success","setDirty","email","eVisitStar","eVisitorRequired","isReservationHolder","reservationHolderFlagClicked","eVisitorIntegrationEnum","cities","isCitiesLoading","citiesSearch","setCTCategory","gender","eVisitorOpen","expandOnError","eVisitorPaymentCategoryId","dateTimesOrder","checkInDate","checkOutDate","facilityOpen","address","postalCodeAndCity","facilityPropertyId","sortedEVisitorFacilities","eVisitorFacilityIdOnProperty","eVisitorFacilityPropertyId","accountName","facility","numberOfFilledBeds","numberOfBeds","isCheckedIn","deleteItem","loadCities","Expanded","Hidden","allUserProperties","eVisitorIsCheckedOut","sortBy","fieldName","eVisitorFacilities","eVisitorFacilityId","defaultFacilities","defaultForAccomodationUnitsIds","activeFacilities","alreadyDirty","baseline","numberOfCheckedInBeds","selectedOnForm","allGuests","loadGroup","group","findGroup","facilities","getEffectiveEVisitorPaymentCategoryId","eVisitorCheckInDate","eVisitorExpectedCheckoutDate","debouncedCitySearch","search","$orderBy","selectedProperty","propertyCityName","trim","Lokalac","countriesList","_countries","englishName","requiredIfDirty","requiredIfEVisitor","requiredGender","shouldValidate","hasFacility","allAreSet","eVisitorCheckInTime","eVisitorExpectedCheckoutTime","evt","fun","TimeField","VAlert","VAutocomplete","VExpansionPanel","VExpansionPanelContent","VExpansionPanels","VListItemContent","VListItemSubtitle","VListItemTitle","downloadJson","copy","paste","descriptor","raw","timestamp","events","location","hostname","copyTextToClipboard","stringy","blob","Blob","saveFile","getTextFromClipboard","textArea","top","position","body","focus","select","execCommand","clipboard","fallbackCopyTextToClipboard","writeText","readText","VDivider","VExpansionPanelHeader","VToolbar","VToolbarTitle","retryAttempt","connection","connected","start","isDayStay","parseInt","guests","emptyGuest","prefilMiscCustomerData","guestsByFacility","groupBy","initialCheckedInGuestCountOnFacility","k","thisPropId","facilityProperyIds","distinctFacilityProperyIds","uniq","propId","Osobno","guestsForSync","progress","_identificationDocumentTypes","_cityTaxCategories","_arrivalReasons","_arrivalOrganizationTypes","stopping","stop","scrollableRef","$el","querySelector","fakeIds","minFakeId","findScrollableRef","$nextTick","scrollTop","scrollHeight","clientHeight","isReservationHolderCheckedIn","isLegalEntity","guestId","formRef","validate","guestsWithMissingFacility","forEach","cards","guestCards","card","cloneDeep","nullEmpty","trimmed","eVisitorCheckoutDate","eVisitorCheckoutTime","sendData","checkInToEVisitor","singleUnitId","withUrl","configureLogging","build","onclose","otherCounter","newEvent","toJSON","last","debugIdCounter","eventIdCounter","isValid","beginShake","beginScanfail","addDescriptorEvent","currentTab","messageDocType","toLowerCase","sameCustomerByDocNumber","displayName","assignCustomerData","emptyCount","empty","prom","startedPromise","warn","hasScanIssues","toISOTime","accUnitType","expectedDepartureTime","propertyCheckOutTime","CheckInGuestCard","ScannerDebug","TableCellUnitTypeDisplay","VContainer","VFooter","VProgressLinear","VTab","VTabItem","VTabs","guestStatusDescriptionTR","guestEVisitorStatusDescriptionTR","unitDisplayFull","isEqual","isCheckedOut","requiredIfCheckedAndEVisitor","checked","deep","every","areStaysTypesMixed","copyForEVisitor","changeReservationStatusToCheckedOut","localize","guestIds","CheckOutGuestCard","numberOfSelectedUnits","selectedUnits","numberOfUnits","occupancy","availableOccupancy","numberOfGuests","numberOfSituatedGuests","allocated","numberOfAdults","numberOfChildren","allowedOccupancy","headers","list","options","loadedSettings","exportToExcel","rowDoubleClick","header","filters","paymentDate","doc","$i","referenceDocument","assignedAmount","amount","referenceDocumentInternalIdentifier","paymentMeansTextResourceKey","isOnlinePayment","remainingAmount","proxy","canCreateFinDocs","openItemDetails","newPayment","hasCreditCard","paymentFormOpen","paymentModel","paymentFormPaymentId","reservationStatusId","load","financialDocumentModalOpen","financialDocumentId","autoDeleteDocument","invoiceRoutingReservationId","invoiceRoutingCustomerId","invoiceRoutingCustomerName","invoiceRoutingCustomerOib","invoiceRoutingPaymentMeansId","invoiceRoutingCardTypeId","financialDocumentTypesEnum","RacunZaPredujam","page","itemsPerPage","sortDesc","groupDesc","multiSort","mustSort","$data","_loadedSettings","active","exportHeaders","cashRegisterFeature","sortable","debouncedLoad","queryParams","responseType","filename","paymentId","invoiceRoutingCheck","isRoutingNeeded","customerOib","showOwnerDetails","defaultToPropertyBusinessUnit","locked","messages","fiscalized","paid","showMessages","formatSuccessMessages","th","endsWith","fiscalizationFailed","ownersInvoicesCreationFailed","ownersInvoicesLockingFailed","reservationCustomerId","reservationPaymentMeans","financialDocumentStatusId","referencedDocuments","financialDocuments","fd","submessages","deleteItemConfirm","delete","SortableHeadersTable","CreditCardInfoModal","ReservationFormPaymentForm","NoData","FinancialDocumentModalForm","InvoiceRoutingModal","RequireRole","VSimpleCheckbox","payByLinkModel","prepayments","prepayment","prepaymentFieldValue","payByLinkAmount","prepaymentsTotalAmount","totalDueAmount","totalPrice","copyTemplate","sendPayByLinkEmail","getPayByLinkEmail","isPossibleToChargeCreditCard","directChargeAvailable","chargeCreditCardConfirmation","preauthorizeAvailable","preauthorizeCard","WSPay","NokumoPay","exactValue","sum","selectedServices","isCityTax","dayPrices","serviceTypeId","includesCityTax","ssum","currencyConversionService","convertCurrency","grossPrice","Math","round","Number","EPSILON","dsum","discountPercent","mergedCityTaxPrice","totalUnitPrices","totalServicePrice","payments","payment","totalPaidAmount","dueDate","paymentMeansName","reservationHolderId","ReservationSendByLinkRequestViewModels","ReservationSendByLinkRequestViewModel","chargeCreditCard","Hold","Boolean","changeReservationStatusToConfirmed","chargeCreditCardModels","successes","errorMessage","preauthorizeCreditCardModels","NumericInput","Racun","holder","eMail","recipients","propertyOwner","unitOwner","propertyManager","uniqBy","NewMessage","Monri","distributionChannelTypeId","OwnersReservation","messagesTable","phoneNumber","financialSettings","refreshSettings","reservationPeriod","salesChannel","salesChannelId","scrolledFlag","elem","getElementById","scrollIntoView","behavior","tags","padWithEmptyCards","instance","NoShow","reservationAccUnitTypeCheckOutDate","reservationAccUnitTypeCheckOutTime","reservationAccUnitTypeAllocated","propertyName","checkOutTimeUntil","accomodationUnitTypeName","accomodationUnitName","reservationAccUnitTypeAllocatedMax","maxOccupancy","missingAllcoated","Array","guestEVisitorStatuses","ids","paymentsTableRef","eVisitorIntegrationGetter","allSucceded","eVisitorTableRef","checkInReservationUpdate","calendarReload","CheckedIn","nowDate","nowTime","newGuest","internalForm","getReservationTags","initialStateParam","ReservationInitialState","restrictions","holdDurationParam","ReservationDefaultHoldDuration","optionExpirationDate","setDate","historicArrivalDate","historicDepartureDate","reservationForm","stayPeriodFromUnits","pricePerNight","userSetPricePerNightManually","deposit","damageDeposit","depositCurrency","depositCurrencyId","sort","b","addOnServiceId","noOverbookingMessage","noNotAvailableMessage","originalUnitTypesReservationWasOpenedWith","tempArrival","tempDeparture","arrival","departure","mergedCityTaxAmount","mergedCityTaxPricePerDay","dprice","currentDayPrices","ratePlanAccomodationUnitTypeId","occupancyBasedRuleId","originalUnits","financialTableRef","totalCityTaxPrice","first","numberOfNights","childrenAges","ca","overrides","updateStayOnEvisitor","updateCheckedOutOnEvisitor","isReservationValid","saveReservation","requestModel","guestUpdateResult","dp","serviceDateFrom","serviceDateTo","serviceRange","isFunction","hasChanges","getOwnPropertyNames","handleCodes","adapter","handleBrokenRuleAdapter","formatBrokenRuleNames","isOverriding","overrideRules","isSuccessful","guestsWithErrors","guestName","isHandleBrokenRuleResult","handled","unhandled","br","updateCheckedIn","updateCheckedOut","line","toDateString","isEVisitorCheckedIn","ownerIds","ownerId","workModelIds","OwnNameAndOtherInvoice","vats","vatCategoryForPrepayments","documentTypeId","differentModelOrTaxCategory","areAllSameVATCategoryForPrepayments","areAllInOwnNameAndOtherInvoice","OTA","PartnerAgency","el","generateCancellationInvoice","markAsManuallyOverriden","reservationIds","ManuallyOverriden","warnings","closeForm","closeFinDocForm","finDocForm","forceSplit","areAllSameProperty","areAllSameAgencyWorkModel","areAllSameOwner","shouldRouteDocumentsForDifferentOwners","culture","documentId","showFinDocWarnings","Otpremnica","reservationUnitIds","documentIds","accUnitsEligibleForCommissionInvoice","isInvoicedForOwner","ownerIsLegalEntity","identificationNumber","totalOwnerFee","owner","inputPrice","discountInputPercent","bookingDate","CheckedOut","markUnitsAsCheckedIn","markUnitsAsCheckedOut","markUnitsAsConfirmed","markUnitsAsHold","cancelReservationConfirmed","minDate","toMillis","noShowUnits","Canceled","statusToResetToId","resetUnitsStatus","otaReservationId","fromCalendar","minArrivalDate","getTime","maxDepartureDate","fromJSDate","ReservationForm","ReservationFormInfo","FinancesTable","PaymentsTable","CheckInModalForm","CheckOutModalForm","EVisitorTable","MessagesTable","MessageForm","UnitSelectionModal","SendPaymentLinkDialog","ColorPicker","LoadingOverlay","VTabsItems","icon","min","suffix","reverse","placeholder","valueChanged","blurHandler","focusHandler","inputCheck","_t","showTooltip","fullValue","internalModel","decimalPlaces","displayDecimalPlaces","internalDisplayDecimalPlaces","decimals","minimumFractionDigits","maximumFractionDigits","parts","inputField","hasError","validateInput","currentFirstChar","separators","actionKey","isActionKey","plusOrMinus","isSelectCopyPaste","ctrlKey","isNumeric","thousands","selectionStart","selectionEnd","clearSelection","remaining","hasErrors","isNaN","forComparison","negativeZeroCheck","freshFormated","formatDisplay","valueAsInteger","emptyReturn","formatOnFocus","hasFocus","roundOnBlur","transform","defaultToZeroWhenEmpty","maxValue","isExclusive","minValue","initialCheckInCustomerData","checkInCustomerData","isFormValid","changePendingMessage","checkStatus","submitCheckInDisabled","checkIn","checkInEVisitorLabel","submitDisabled","checkOut","checkOutEVisitorLabel","updateEVisitorCheckIn","revertEVisitorCheckIn","revertEVisitorCheckOut","saving","customerNameAndReservation","onDateOfBirthChange","eVisitorRequiredBool","checkInOutStatusText","reasonOpen","reasonFormValid","reasonTitle","reason","reasonAction","changedWithEVisitorNotSynced","checkInCustomerDataId","explicitCheckinButtonNames","requiredForEVisitor","Neprijavljen","eVisitorCheckOutTimeViewField","reservationPropertyId","defaultArrivalDate","defaultDepartureDate","defaultDepartureTime","checkoutTime","refreshNumberOfFilledBeds","assertFormValidity","saveCustomerData","nullIfEmpty","checkOutTime","setGuestCheckedIn","Prijavljen","confirmCheckIn","confirmCheckOut","isErrorHandled","Odjavljen","reasonForm","revertEVisitorCheckInConfirm","revertEVisitorCheckOutConfirm","action","padStart","age","years","DijeteDo12","Dijete12Do18","Turist","Exemption_ChildUpTo7_SL_eTurizem","HalfPayment_PersonAged7To18_SL_eTurizem","FullPayment_NoException_SL_eTurizem","setEvisitorPaymentCategoryIdWithoutDirty","RightDrawer","VCombobox","noHighlightOnProperty","lightenPropertyColor","light","emphasizedLine","deEmphasizedLine","unitStatus","accomodationUnitStatus","renderTemplateTypeLineOne","renderTemplateTypeLineTwo","renderProps","unitTypeName","Clean","toReturn","url","URL","createObjectURL","download","click","revokeObjectURL","sensitiveKey","displayBody","loadMore","tileTransition","editProperty","deleteProperty","addProperty","imageSrc","category","typeTextResourceKey","togglePublish","loadingIndicator","imageUrl","reader","FileReader","readAsDataURL","isAvailableViaBookingEngine","categoryId","Empty","VImg","VSkeletonLoader","VSwitch","isNavigationFailure","clear","firstLoad","clearAndLoad","done","$http","fetcher","$router","failure","deletePropertyConfirm","ScrollLoader","PropertyTile","sortedPropertyTypes","isAvailable","categoryTextResourceKey","ownerName","ownerAddress","availableOnBookingEngine","filtersForParams","localeCompare","initLoaded","VListItemIcon","PropertiesTiles","PropertiesGrid","mixins","GlobalFilterSensitiveMixin","placeholderText","toolbar","directives","rawName","checkForErrors","levels","multiplier","node","parseFloat","import","Attributor","Style","IndentStyle","scope","Scope","BLOCK","whitelist","AlignStyle","register","Block","tagName","sizeStyle","align","indent","background","rte","arr","children","buttons","tool","className","tooltip","tooltips","title","textComponent","editor","errorBucket","editorToolbar","defaultToolbar","VueEditor","initialPayment","reservationHolder","lookupOpen","isFinancialDocumentCancelled","negative","positive","allowedCurrencies","isPaymentHistoric","cardTypeIsRequired","changeReservationStatus","previousDocuments","documentType","documentInternalIdentifier","documentNumberComplete","issueDate","totalDueAmountAltCurrency","altCurrency","filterPrefil","unpaidPrepaymentsModalOpen","unpaidPrepayments","createOrUpdate","storedSettings","historicCurrency","loadPayment","getCustomer","getPreviousDocuments","setDefaultDocument","setDefaultCurrency","generateAdvanceInvoiceChecked","createAdvanceInvoiceFactors","hasSelectedDocToAssign","KreditnaKartica","BankovnaKartica","paymentMeanBaseId","cardTypeDisplay","Storno","allowAssignmentToFinDoc","statusIdsExcluded","documentTypeIdsExcluded","Function","rightDrawer","clickOverlay","isCurrencyHistoric","legalEntityName","issuePaidInvoice","update","NumericInputImproved","CustomerLookup","FinDocPrepaymentsModal","DateTimeOffsetField","offsetY","offsetX","origin","nudgeLeft","isDisabled","editable","up","down","button","confirm","range","formatedValue","hint","autofocus","appendIcon","dateFormat","handleFieldInput","handleBlur","keydown","pickerType","pickerDate","dateSelected","monthSelected","yearSelected","nativeOn","focusDatepicker","disableConfirm","confirmDatePicker","closeDatePicker","disableConfirmOnDatePicker","differenceInDays","date1","date2","props","String","customIcon","show","shouldBeConfirmed","display","btn","activePicker","manualConfirm","internalStringValue","confirmed","computed","fieldDisabled","selfDisabled","watch","handler","toggleMenu","methods","luxObj","emit","datePicker","clamp","modified","move","tableDate","VDatePicker","formatLocaleDate","formated","setLocale","toFormat","parseLocaleDate","stringDate","explained","fromFormatExplain","normalizedFormat","tokens","literal","normalizedInput","fromFormat","parseStringToDateJS","temp","d1","set","hour","d2","differenceInYears","getAge","stringToday","floor","formatDateTimeAccordingToTimeZoneOrUTC","timeZone","minute","second","hour12","utcToLocal","getHours","getMinutes","getSeconds","DateTimeFormat","getDateTimeOffsetString","$index","selectedIds","selectAllUnits","isAllSelected","accept","translatedHeaders","highlightSelectedItem","confirmSelectionLabel","hasResults","confirmSelection","mdAndUp","getMaxOccupancy","getNumberOfAvailableUnits","totalNumberOfUnits","getPriceRange","isExpanded","accomodationUnitTypeId","vertical","smAndDown","getRateColorClasses","openSpecialOfferDrawer","isNonRefundable","includesBreakfast","getNumberOfPersons","getPrice","getAveragePricePerNight","getNumberOfTimesAvailabilityIsSelected","availabilitySelectionChange","isDetailsOpen","detailsItem","specialOfferDrawerOpen","specialOfferId","ratePlanTranslation","translation","subtitleTranslation","domProps","descriptionTranslation","loadDetails","details","selectedAvailabilities","timesSelected","timesTaken","takenAvailabilities","timesFreedUp","freedAvailabilities","numberOfAvailableUnits","ratesPrices","rates","currencyEnum","EUR","currencyISO3","wantedAmount","timesAlreadySelected","deselectAvailability","selectAvailability","_selectedAvailabilities","numberOfOccupants","GetFirstIndexInArray","GetCountInArray","evenOdd","lightDark","ratePlanName","AccomodationUnitTypeDrawer","MoreLessSelect","SpecialOfferDrawer","VDataTable","VSubheader","CalculationMethods","tableLoadingInternal","areAllSelected","selectAll","isResident","totalAmount","financialDocumentNumber","financialDocumentIdentifier","financialDocumentInternalIdentifier","arrivalOrDeparture","forSepa","forProperty","setFiscalNumberAsMain","ownerHeaders","propertyHeaders","reservationHeaders","setsFiscalAsMain","forOwner","propertyItems","ownerItems","finDocItems","financialDocumentNumberComplete","selectedOwners","selectedProperties","selectedFinDocItems","selectedFinDocs","onScroll","evt3rdArg","arg","passive","removeEventListener","newEl","oldEl","loadOffset","md","mdOnly","periodSet","selectedUnit","stayPeriodChanged","isLoadingChanged","closed","remarksOpen","toggleRemarks","tenantTags","maxCharacters","tenantTypeId","isAllowedGuestHistory","onInputLostFocus","guestHistoryOpen","openOnClick","isAllowedToEditEmail","hasPhoneNumber","customerFormOpen","isAllowedToSeeTelephoneNumber","phonehref","smshref","whatsapphref","edited","initialCustomer","Required","Name","radioGroupRow","LegalEntityName","BusinessId","Email","TelephoneNumber","StreetName","HouseNumber","PostalCode","City","IdentificationDocumentNumber","loadCustomer","prefill","innerWidth","setUpRules","Remarks","submitToServer","confirmOverrideNotification","handleSuccess","messageTextResource","filterModalOpen","selectCustomer","countryOfResidenceName","updateFilter","customerFormPrefilData","newCustomerCreated","excludeIds","loadImmediately","names","nameFilter","eMailFilter","telephoneNumberFilter","resetFilters","MobileFilterModal","CustomerFormMobile","serviceTypeName","arrivalOrDepartureDate","tenantUsesServiceType","setupHeaders","ReservationModal","changeSortOrder","scrollEl","getMoreReservations","reservationDateUI","currencyCodeUI","sortAsc","getReservations","numberOfItems","unitsWrapper","string","charAt","GuestReservationHistoryTableMobileTile","selectedCustomer","businessId","salesChannelDefault","defaultCustomerId","CustomerForm","CustomerLookupMobile","GuestReservationHistoryTable","GuestReservationHistoryTableMobile","allowedDistributionChannelTypes","distributionChannelsChanged","specificOtaRequired","otaChanged","salesChannelChanged","bookingDateMaxDate","bookingDateBeforeArrival","bookingDateNotAfterArival","bookingDateBeforeOptionExpiration","bookingDateNotAfterOptionExpiration","stayPeriodDatesText","synchronizeStayPeriodDates","stayDateChanged","internalPeriod","allowedReservationStatues","optionExpirationMaxDate","optionExpiration","optionExpirationBeforeArrival","optionExpirationNotAfterArrival","isCancelledWithinFreeCancellationPeriod","mustBeWholeNumber","numberOfPets","formatTimezoneFromUtcToLocal","timeStamp","transactionKind","description","unformatedTimeZone","stayPeriodDates","Agency","types","isTenantTypeAgency","channel","WalkIn","calculateOTACommssion","OTAConversion","channelCommissionPercent","channelCommission","pickedSalesChannel","commissionPercent","calculateChannelCommission","defaultRatePlanId","isManualSalesChannelChanged","customerFromSalesChannel","client","setReservationHolderOnSalesChannelChange","servicePriceWithoutTax","getOtaCommissionPercentage","otaCommissionData","percent","ownerPaysOTACommission","calculateInputPrices","inputPriceWasManuallyChanged","inputPriceBeforeCommission","numberOfDays","isFinite","otaId","optionExpDate","FormDescription","PaymentGatewayTransactionLogModal","notifyUnitForm","editUnit","deleteUnit","isFromCalendar","isFromAvailabilitySearch","openCopyGuestsDialog","changeRatePlanFromSalesChannel","changeServiceTypes","clearRestrictions","recalculateAgencyFees","descriptionTextResource","isAllowedToAddUnitsViaAvailabilitySearch","availabilitySearchOpen","editFormOpen","unitToEdit","unitChangesSaved","copyGuestsOpen","copyGuestsToUnitId","closeSearch","availabilitySearchPrefil","availabilitySearchRestrictions","availabilitySearchSelection","unitSelectionFilter","ownerIdsForUnitSelection","selectedUnitIds","addSelectedUnits","getUnitOwnerIds","uniqueOwners","accomodationUnitOptions","addOnServiceNeedsRange","serviceCalculationMethodId","rangeCalculationMethods","PerNight","PerPersonPerNight","PerChildPerNight","PerAdultPerNight","PerDay","addOnServiceDaysInPeriod","startDate","endDate","service","periods","endingDate","calculationMethodId","currentDate","servicePeriods","serviceDays","dateInPeriod","originalTimezoneOffset","getTimezoneOffset","postAddTimezoneOffset","timezoneOffsetDiff","setHours","calculateAddOnServiceQuantity","calculateWithEVisitorStayDates","adultNights","childNights","numberOfTaxableChildren","startIsOfTypeDate","endIsOfTypeDate","eVisitorCheckOutDate","pricesAreSeasonal","isEditedManually","PerStay","decimalQuantity","PerPerson","PerAdultPerson","defaultQuantity","calculateAgencyFees","propertyFee","totalPriceWithoutDiscount","totalPriceWithDiscount","fee","priceIsAbsolute","agencyFeeId","Manual","addOnServicesFormOpen","unitLineOne","unitCurrencyId","unitLineTwo","getStatusColor","getStatusIcon","manuallyChangedRatePlan","ratePlanLockSuffix","openRatePlanSelect","everyServiceTypeIsTheSame","openServiceTypeSelect","canEditPrices","pricePerNightInput","everyDayPriceIsTheSame","discountInput","inputPricePerNight","showDiscount","exportingRegistrationForm","exportRegistrationFormClickHandler","servicesListChanged","warning","exportRegistrationFormDialogShown","exportRegistrationFormDialogYes","exportRegistrationFormDialogNo","ratePlanSelectOpen","changeRatePlanFromModal","serviceTypeSelectOpen","selectedServiceType","changeServiceType","hasWarning","maxNumberOfAdults","updateChildren","childrenAgesValid","child","saveGuestPlaceholder","deleteGuestPlaceholder","checkedIn","checkedOut","checkedInEVisitor","checkedOutEVisitor","isEVisitorCheckedOut","isRoomHolder","getGuestName","getCountryOfResidence","updateGuests","reservationsAccUnitTypeGuestId","editGuest","removingGuest","unitCheckIn","unitCheckOut","customerLookupFilterPrefil","editGuestId","editOpen","guestDepartureTime","guestUpdated","pop","customers","menuShown","setFirstGuestAsRoomHolder","today","setFullYear","stringDate18YearsAgo","adults","skip","unitDepartureTime","propertyCheckoutTimeUntil","words","initials","country","guestPlaceholder","CheckInOutEditForm","VAvatar","VBadge","showArrivalDeparture","showDeposit","noNegativeNumbers","WorkingCurrencyDisplay","itemsForTable","getRowClass","openEditForm","getServiceName","needsRange","requiredDateRange","itemRangeChanged","getUnitOfMeasure","grossUnitPrice","taxRateDisplay","taxRateId","toFixed","setGrossPrice","priceCalculationMethodDisplay","addFormOpen","remove","serviceQuantityEdited","selectedToAdd","pagingText","filteredItems","addItem","positiveDiscount","setDiscount","editFormValid","applyEdit","anyFormOpen","editModel","filtered","addItemsArray","lower","higher","reAddCityTax","availableServices","availableServicesCopy","getDefaultQuantity","addOnServiceQuantityFactors","childCityTaxService","alreadyExists","childServiceToAdd","services","convertServiceCurrency","resetServiceCurrency","netUnitPrice","originalServiceCurrency","showAddOnServiceDiscount","canEditAddons","allowedHeaders","uom","unitOfMeasureId","priceCalculationMethodId","pcm","taxRate","totalGrossPrice","priceFactor","discountFactor","isForDrawer","taxRateFactor","stayLength","numAdults","numChildren","numTaxableChildren","numPersons","toAdd","removeZeroQuantityCityTax","adjustPeriodizedItems","reAddSeasonPrices","itemToAdd","defaultDate","itemsToAdd","periodizeService","isBookingFee","bookingFeeManuallyRemoved","nonPeriodizedItem","periodizedItem","periodizedStartInUnitStayDate","periodizedEndInUnitStayDate","determineDate","maxDate","setItemRange","plus","dates","nonLocalAdultGuestCheckInDates","nonLocalChildrenGuestCheckInDates","nonLocalAdultGuestCheckOutDates","nonLocalChildrenGuestCheckOutDates","adultCheckInDates","childrenCheckInDates","isArray","seasonalPricesQuantityForAOSRange","isOTASpecific","forceFalseIsEdited","numberOfNonTaxableAdults","unitStayDates","calculationMethodIds","manuallyEditedServices","availableTaxes","isAddedAutomatically","add","accommodationPrice","servicesPrice","accomodationBookingFee","addOnServicesBookingFee","bookingFeeServiceBase","accomodationBookingFeeFactor","addOnServiceBookingFeeFactor","bookingFeeTaxRateFactor","bookingFeePriceGross","bookingFeesFactors","bookingFeePriceNet","quantity","availableServiceTypes","comission","numberOfPeople","currentMainRatePlanId","obRatePlan","ratePlanOptions","changeRatePlan","inputPriceRecalculationOnly","isChannexIdPresent","unitNumberOfAdultsChanged","suma","totalInputPrice","dayPrice","recalculateDayPricesWithCityTax","hasCommonOwner","allUnits","allOwners","unitsByOwner","exportRegistrationForm","reservationFormBlankPrice","blankPrices","ext","isAllowedOnlyInputPrices","ownerAddOnServicesPrice","totalDayPrices","standaloneRatePlans","derivedRatePlans","sortedRatePlans","standaloneRatePlan","derivedRates","derivedRate","mergeAllBookingFeesIntoSingleItem","serviceTypeIds","defaultServiceTypeId","NeedsCleaning","NeedsRepair","CleaningInProgress","RepairInProgress","ReservationFormUnitGuests","ReservationFormUnitFields","ReservationFormUnitAddOnServices","RatePlanSelectModal","ServiceTypeSelectModal","VChip","commissionPerNight","previousCommissionPerNight","normalizedValue","formalToWorkingConversionRate","totalServicesPrice","addSeasonalAOS","netPrice","initialUnit","setAccUnit","setRatePlanEventHandler","ratePlanAccUnitTypeId","clampPercentage","isTenantAgency","averagePricePerNight","agencyMarginAmount","agencyMarginPercentageNumber","ownerPriceWithoutDiscountOrFee","usesInputPrice","averageInputPricePerNight","totalOwnerPrice","totalAgencyFeesWithOtaIfPaid","appliedAgencyFees","dayPriceDisplay","requiredAllowedZero","priceForNightInput","serviceTypeRule","firstDayPriceServiceTypeIdChanged","inputPriceChanged","_unit","specificUnit","maintenanceStaffRemarks","specialOfferServices","common","baseAmount","agencyFeesTotal","getUnitDayPrices","accomodationUnitTypesIds","ratePlanPrices","currentPrices","isServiceTypeDayStay","isDayRest","currentServiceTypeId","currentPriceIncludeCityTax","serviceTypeIncludesCityTax","pricesToSet","freshIncludesCityTax","alreadyIncludesCityTax","mergedCityTax","unitId","autoSave","setRatePlan","isMulti","plan","losCategoryId","paxCategoryId","setSpecialOfferServices","recalculatePrices","match","isIncludedInPrice","ownerFeeWithoutDiscount","marginAmount","searchFormModel","updateRestrictions","resetResultsAndSearch","resetResultsAndForm","xs","globalOpenFilter","updateOptions","numberOfBedrooms","numberOfBathrooms","childAges","includeSpecialOffers","setChildAges","resetResults","searched","prefillChanged","cityId","propertyTypeIdsJoined","categoryIdsJoined","amenityIdsJoined","ratesJSON","selectedAmount","AvailabilitySearchResults","AvailabilitySearchResultsMobile","AvailabilitySearchForm","mustHaveReservation","sourceReservationId","copyAllGuests","totalGuests","sourceUnits","copyFromUnitId","copyGuests","targetReservationAccUnitId","reservationUnitId","sourceReservationAccUnitId","propertyChanged","selectedPropertyName","loadingUnits","filteredUnits","selectUnit","areAllUnitsSelected","accommodationUnitNameFilter","accommodationUnitTypeNameFilter","ignoreRestrictionsChanged","ignoreRestrictions","selectedPropertyNameValue","availabilityFilter","loadUnits","accommodationUnitName","accommodationUnitTypeName","accommodationUnitId","selectedIndex","isSelected","showTakenUnits","availability","correspondigSalesChannel","stayPeriodAndUnits","checkAvailability","checkOverbooking","getUnitsDayPrices","calculateMultipleUnits","unitForm","originalCount","changedCount","getSpecialOfferServices","ratePlanMappings","matchingMapping","editedIdx","freshUnitInstance","allocatedAdults","allocatedChildren","allocatedUnits","allocatedChildrenAges","numOfUnits","preventLessThanZero","searchArrivalDate","searchDepartureDate","selection","accommodationUnitTypeId","channelId","numberOfAddedUnits","totalAdults","totalChildren","assignedChildrenAges","numOfPersonsToAssign","currentRestrictions","leftoverAdults","leftoverChildren","leftoverChildrenAges","additionalServicesToAdd","changeCustomerForCalendarRatePlan","self","unitAvailabilities","accommodationUnitIds","getDistinct","arrivalDates","departureDates","resAccUnitType","propertyAgencyFees","ReservationFormUnitTile","ReservationFormUnitTileMobile","ReservationFormUnitForm","AvailabilitySearchReservationForm","CopyGuestsDialog","SimpleAvailabilitySearchModal","SimpleAvailabilitySearchModalMobile","policiesDialog","isFullyInvoiced","invoiceStatus","DistributionChannelTypesEnum","policiesLoading","overriding","hasOverrides","clearOverrides","addPolicy","cancelation","noExistingDates","deletePolicy","cancelationPenalties","penalty","cancelationFrom","cancelationTo","prepaymentFees","isBookingOnArrivalDate","feeDueDate","getPrepaymentPaymentStatus","invoiced","ownerTotalPrice","ownerAccPrice","ownerAOSPrice","agencyMarginPercentage","otaFee","agencyFee","cityTax","formalCurrencyIsoCode","otherFees","checkForSuspiciousCancellations","hasPrepaymentOverride","hasCancelationOverride","isCancellationAmountBiggerAndFromDateLater","effectiveFrom","submitOverride","cFormValid","cancelationOverrideForm","pFormValid","prepaymentOverrideForm","prepaymentsList","cancelationsList","until","effectiveUntil","reqModel","minutes","isCancelation","startingDate","setUTCHours","tax","isFee","amountToInvoice","FullyInvoiced","feeIndex","totalOfPrevious","totalPaid","totalPaidByGuest","uniqueTags","tt","uV","ReservationFormHolder","ReservationFormStayPeriod","ReservationFormUnits","ReservationFormPrice","AgencyFeeModel","AgencyFeesPropertyRequest","allowedToModifyReservations","expandedRow","serviceArrivalPeriod","serviceDeparturePeriod","statuses","statusStyle","reservationInvoiceStatusTextResourceKey","cancelationDate","otachannelName","distributionChannelName","otaChannelComission","getSortedTags","getTagsAsArray","propertyStaffRemarks","saveRemark","guestRemarks","remarksForOwner","generalMaintenanceStaffRemarks","unitMaintenanceStaffRemarks","ownerLevel3CanEdit","isOwnerLevel1","openMessages","isAllowedToExportReservations","reservationFormOpen","reservationFormId","cancellationDate","arrivalDateFromPeriod","arrivalDateToPeriod","departureDateFromPeriod","departureDateToPeriod","reservationGuestName","isFilteredByDate","reservationTags","reservationInvoiceStatusIds","reservationsTags","getTags","showHolderInfo","isAllowedToSeePhoneNumber","showGuestInfo","isOwner","isAllowedToSeePrices","isAllowedDistributionOrSalesChannel","dialogValid","editDialog","reservationGuestPlaceholder","idUniq","scrollToTop","isAllowedToSeeGuestRemarks","isAllowedToSeeOwnerRemarks","isAllowedToSeePropertyStaffRemarks","isAllowedToSeeUnitMaintenanceRemarks","isAllowedToSeeGeneralMaintenanceStaffRemarks","customerRole","ArrivalDate","customerFilterData","tagSeparator","scrollableWrapper","dataTable","Element","classes","VEditDialog","breadcrumbs","ReservationsTable","beforeRouteEnter","next","vm","that","roleName","CustomerModel","FinDocViewModel","FinDocBasicInfoViewModel","FinDocClientInfoViewModel","FinDocLineItemViewModel","enumToArray","messageSourceTypeEnum","isAutomatic","sourceTypeId","getParticipants","messageAttachments","getSubject","isRead","isResolved","openConversation","markAsRead","markAsResolved","reply","replyToAll","forward","deleteConfirm","conversationPanelOpen","conversationPanelMessageId","conversationPanelWhatsAppOpen","conversationPanelPhoneNumber","conversationPanelCustomerName","conversationPanelCustomerId","subject","getRecipients","attachment","downloadAttachment","getAttachmentIcon","mimeType","initialLoadDone","downloadingAttachment","messageId","bodyReplacement","replaceAll","RegExp","parentMessage","getOldestParent","getMessageList","recipientType","messageRecipients","isCc","isBcc","parentMessageId","oldestParent","blockFreeFormMessages","templateId","composing","newMessage","templateLoading","send","filteredTemplates","onTemplateChange","loadTemplates","setMessageReceiverInterval","clearMessageReceiverInterval","templates","sourceTypeIds","WhatsApp","messageInterval","setInterval","clearInterval","lastMessageDate","hours","abs","onlyNewMessages","uri","encodeURIComponent","scrollTo","notificationTemplateId","templateLanguage","participants","Reply","tableName","direction","computedFilters","routeQueryParams","$route","participantAddresses","unshift","suppressNotification","conversationPanel","openNewMessagesForm","ReplyToAll","Forward","reOpenConversationPanel","alert","GenericPMSTableMenu","ConversationPanel","ConversationPanelWhatsApp","SortableTable","hideHeader","isNameRow","isProperty","componentKey","small","backgroundColor","subtractClick","addClick","numericBox","zeroEmpty","addToInternalModel","step","reg","newVal","DashboardPeriodEnum","ReservationsGridDefaultFilterByEnum","CurrencyEnum","CustomerTypeEnum","CategoriesEnum","PaymentMeansEnum","FinancialDocumentTypesEnum","FinancialDocumentStatusEnum","UnitsOfMesureEnum","ReservationStatusEnum","PriceCalculationMethodsEnum","AccomodationUnitStatusEnum","TaxRatesEnum","LineItemDistributionStrategy","ReservationEVisitorCollapseExpandHideInfoEnum","TenantTypesEnum","ReservationGuestDisplayType","GuestReviewStatusEnum","OTAChannels","OwnerContractExportType","OfficialRatesExportType","RatePlansPromoCodeApplicationMethodsEnum","InvoiceDefaultDeliveryDateEnum","OwnerPricingModelEnum","DistributionChannelEnum","TenantCountryEnum","PaymentGatewayIntegrationEnum","TransactiontypeEnum","InvoiceStatusEnum","EVisitorIntegrationEnum","EVisitorIntegrationNameEnum","RolesEnum","extractRoles","userHasAnyRole","userIsPartOfMaintenanceTeam","maintenanceTeamRoles","MaintenanceTeamMember","MaintenanceTeamLeader","userCanCreateFinancialDocuments","policyChecker","SysAdmin","TenantAdmin","AccomodationUnitAdmin","StatisticsAnalyst","PropertyOwnerLevel3","PropertyOwnerLevel3a","ReceptionistLevel2","PropertyOwnerLevel1","ReceptionistLevel1","PropertyManagerLevel1","PropertyOwnerLevel1a","PropertyOwnerLevel2","ExternalWebSiteAdmin","onBlur","handleKeypress","timeRegex","applyFormatingOnLoad","formatted","maxHours","minHour","zeroDigit","newMinutes","cancellation","distributionChannel","getCurrencyCode","selectedPrepayments","setPrepaymentsStatus","createDownPayment","prepaymentIds","isPaid","fromPaymentTable","fromDashboard","autoClose","BankAccountNumber","VatId","ExternalCustomerCode","_languages","isForOwner","isForPropertyManager","watchClass","targetNode","classToWatch","lastClassState","classList","contains","observer","MutationObserver","mutationsList","mutation","attributeName","currentClassState","observe","attributes","directive","inserted","binding","querySelectorAll","draggableEl","CashiersReportExportTypeEnum","issueDatePeriod","dueDatePeriod","statusIds","statusTextResourceKey","allowedFinancialDocumentTypes","documentTypeIds","documentTypeTextResourceKey","isFiscalized","valueIsEffectively0","totalWithVat","totalWithVatAltCurrency","vat","vatAltCurrency","totalWithoutVat","totalWithoutVatAltCurrency","paymentMeansIds","allCashRegistersSorted","cashRegisterIds","downloadPdfDocument","edit","fiscalize","cancel","createNew","openErpExport","exportForSepa","invoiceExportOpen","skey","taxReportOpen","openPaymentsReport","openCashiersReportExport","openbulkInvoiceGenerationModal","chargeCancellationDisabled","chargeCancellationLoading","disableMarkAsManuallyOverriden","markAsOverridenLoading","exportErpOpen","yesterday","exportErpDates","filteredBusinessUnits","selectAllBusinessUnits","checkedAllBusinessUnits","checkedSomeBusinessUnits","exportBusinessUnitIds","erpExportDisabled","exportERP","exportErpResultsOpen","erpExportResults","renderAsHtml","sepaExportErrorOpen","sepaExportMessage","vDialogMaxWidth","filterByOwner","exportPeriod","invoiceExportDocumentTypes","selectAllDocumentTypes","checkedAllDocumentTypes","checkedSomeDocumentTypes","documentTypeIdsForInvoiceExport","propertiesForExport","selectAllProperties","checkedAllProperties","checkedSomeProperties","propertyIdsForExport","selectAllPaymentMeans","checkedAllPaymentMeans","checkedSomePaymentMeans","paymentMeansIdsForInvoiceExport","ExportDownloadTypeEnum","exportDownloadType","exportInProgress","disableInvoiceExport","exportInvoices","exportSepaOpen","selectedItemsTableLoading","exportPeriodForSepa","SEPAFilterEnum","loadForSepa","finDocFilterType","otaOrSalesChannel","selectedFinDocsForSepa","finDocsForSepa","fetchSEPAOrderNumber","sepaOrder","ExportSEPATypeEnum","sepaExportType","disableSepaExport","exportSepa","cancelSEPAPaymentsDialogOpen","cancelSEPAPaymentsLoading","cancelSEPAFilenameValidation","cancelSEPAPaymentsFilenameChanged","cancelSEPAPaymentsFilename","requiredValue","cancelSEPAPaymentsDate","cancelSEPAPaymentsOrderNumber","cancelSEPAPaymentsConfirmation","closeCancelSEPAPaymentsDialog","exportPeriodForTaxRecap","ReportDateTypeEnum","reportDateType","ReportDownloadTypeEnum","reportDownloadType","disableTaxRecapExportButton","generateReport","editingOpen","newDocumentTypeId","paymentSlipFormOpen","paymentSlipModel","paymentsReportOpen","cashiersReportExportOpen","bulkInvoiceGenerationModalOpen","dateRange","timeFrom","timeTo","sortedCashRegistries","cashiersReportExportTypeEnum","exportType","exporting","exportCashiersReport","PDF","timeFromSplit","timeToSplit","dateTimeFrom","dateTimeTo","required0Allowed","startingAmount","cashBalance","cashTotal","correctCurrencyToDisplay","transactionAccountsTotal","cardsTotal","onlineTransactionsTotal","otherTotal","filteredList","documentIdentifier","cardType","downloadExport","cashiersReportStartingAmount","cash","Novcanice","historicCurrencyEndDate","TransakcijskiRacun","OnlineServisZaPlacanje","dateFrom","dateTo","results","cardPayments","grouped","groupTotal","onlineTransactions","filtersForRequest","FormalCurrencyDisplay","selectingAll","selectedForBucket","bucketShortDescription","selectionFilters","selectionFilterFunction","clearSelectionFilters","selectionArrivalPeriod","selectionDeparturePeriod","areAllReservationsSelected","selectAllReservations","openInternalModal","internalModalOpen","isBulkInvoiceGenerationFormValid","deliveryDateCannotBeGreaterThanIssueDateIfInvoice","dueDateCannotBeLessThanIssueDate","businessUnits","cashRegistersForBusinessUnit","cashRegistersForBusinessUnitBackup","generatingInvoices","confirmGeneration","internalSelected","shortDescription","itemKey","slotData","filterFunction","firstSortable","deliveryDate","preferReservationPaymentMeans","advanceInvoicesCancellationBackupBusinessUnitId","advanceInvoicesCancellationBackupCashRegisterId","clearGrid","selectedItems","selectionFilter","toLocaleLowerCase","totalSelectedValueInWorkingCurrency","initialListSize","cardPaymentMeansIds","generate","GenericPMSTableSelectionBucket","transactionDescriptionsForDocumentType","Uplatnica","currencyItems","submitDraft","editingModel","current","transactionTypeId","Deposit","Isplatnica","Withdrawal","tableCustomer","newCustomer","isTableCustomer","fiscalNumber","sleep","assertSubmitValidity","refreshModelData","formvalid","transactionDate","transactionTime","transactionDescriptionId","additionalTransactionNote","additionalNoteForTransaction","synced","transactionDateTime","issueTime","newModel","documentNumber","transactionAmount","ExportTypeEnum","issueDateFrom","issueDateTo","dueDateFrom","dueDateTo","SinglePDF","WithDuePayment","defaultPeriod","reservationmodalIgnoredHeaders","refreshDocumentTypes","refreshDocumentStatuses","refreshProperties","debouncedSepaLoad","startOfPastMonth","toLocaleDateString","endOfPastMonth","usePropertyFilter","openPaymentSlip","openDocument","autoDelete","fromDateErpExport","toDateErpExport","FromDate","ToDate","businessUnitIds","fileResult","fileName","messageDictionary","messageToShow","entries","stringValue","ownersIds","finDocTypeIds","paymentMeanIds","finDocs","refreshSepa","dateType","downloadType","loadAllOwners","emptyProperty","cleanSepaFilters","OneOrderPerFinancialDocument","customerTypeId","Owner","filterOwnersForOwnerInvoices","unitLevelOwners","prop","isOwnerEligibleForIssuingOwnersInvoices","uLOwner","sepaOrderNumber","withoutFileType","orderNumber","isIsoDate","cancelSEPAPayments","sortedActveCashRegisters","sortedDeletedCashRegisters","checkedAll","checkedSome","VlasnikovRacun","RacunZaProviziju","CashiersReportExportModal","PaymentsReport","SelectedItemsTable","BulkInvoiceGenerationModal","PaymentSlipModalForm","VListItemAction","eVisitorArrivalOrganizationTypesEnum","CheckStatusEnum","eVisitorCityTaxPaymentCategoriesEnum","SetCheckedInCustomers","changeReservationStatusToCheckedIn","CheckedInCustomersOnAccUnitType","ServerReservationCheckInCustomerData","ReservationCheckInCustomerData","effective","singleLine","lan","languageChange","imgSrc","hideLabels","flagImages","lang","webpackContext","req","webpackContextResolve","currencyConversionServiceFactory","fromCurrencyId","toCurrencyId","workingToFormalConversionRate","historicConversionRate","getSeparators","thousandSeparator","parseLocaleNumber","stringNumber","formatLocaleNumber","isNegative","decimalCorrector","autoCalculatePrice","isInputPriceChanged","officialRateInternal","ownerPayoutPercent","uniqueKey","rule","getPriceRule","newPrice","calculateNewPrice","priceToReturn","officialRateRules","autoCalculateAbsolutePrice","priceChange","obr","priceReference","getRecalculatedAmount","autoCalculatePriceWhenRelative","propertyOwnerPayoutPercent","calculatePrice","officialRate","userChangedInputPrice","changeKey","isMain","initialMessage","isSending","sendingDisabled","sendMessage","sourceTypes","sourceTypeDisabled","internalRecipients","getItemValue","recipientsRequired","emails","phone","recipientsChanged","getItemText","recipientsArray","isSMSOrWhatsApp","onPickFile","onFilesPicked","file","deleteAttachments","baseMessageBody","UIzradi","baseMessageType","baseMessage","startsWith","isMsgSent","uploadedFiles","EMail","isReplyOrForward","attachmentsIds","forwarded","formatSubject","formatRecipients","recipient","SMS","getReservationDocuments","refreshSourceTypes","additionalRecipients","loadingTemplate","attachedDocumentIds","attachmentDocumentsIds","recipientsIds","bodyToReturn","recipientEmail","recipientSMS","maped","excludeDocumentStatues","fileInput","files","formData","FormData","append","attachmentName","RichTextEditor","OwnerModel","ReservationCustomerModel","ReservationGuestUpdateFeedbackModel","ReservationModel","ReservationAccUnitModel","GuestModel","ReservationRequestModel","isOTACollect","expectedArrivalTime","PaymentModel","PaymentSlipModel","PayByLinkInfoModel","StayItemsNameSegments","paysVat","multiCurrency","bePaymentsInFormalCurrency","primaryLanguage","secondaryLanguage","outOfScopeTaxRate","exemptTaxRate","standardTaxRate","accomodationUnitTypesTaxRate","downpaymentItemsDefaultTaxRate","invoiceDueDays","offerExpirationDays","showServicePeriod","enableServicePeriodEditing","showPaymentSummary","generatePaymentReferenceNumber","fiscalizeOffers","fiscalizeDeliveryNotes","isFiscalizationObligor","usesExternalFiscalizationService","isLinkedToExternalFiscalizationService","numbering","offer","downPayment","invoice","notes","legalData","offerStayItemsNameSegments","PropertyName","AccomodationUnitTypeName","downPaymentStayItemsNameSegments","invoiceStayItemsNameSegments","invoicesDefaultDeliveryDate","isOutOfScope","isStandard","isTaxExempt","EVisitorFacility","eVisitorFacilityServiceFactory","facCount","originDocumentTypeId","setDrag","dropped","itemName","getUnitOfMeasureName","getTaxRateName","separateByUnit","separateByType","invoices","dragIn","dragOut","removeInvoice","addItems","addInvoiceOrDeliveryNote","disableSubmit","titleItems","internalInvoice","titleId","customerMustBeSelected","unselect","openCustomerLookup","customerLookupOpen","lookupHeaders","dragEnter","dragOver","dragLeave","groupedByPropertyId","groupedByOwnerId","groupedByWorkModel","groupedByVatCategoryForPrepayments","vatCategoryForPrepaymentsId","isStayCancellation","entered","check","dataTransfer","currentTarget","allItems","isAssigned","newInvoice","fillInvoiceDefaults","loadItems","routingType","isForCancellation","lineItem","originalTaxRateId","setTaxRatesForPrepaymentInvoice","defaultName","defaultOib","defaultPaymentMeansId","defaultCardTypeId","clearData","removedItems","anyErrors","basicInfo","businessUnitid","li","lineItems","resAccUnitTypeAddOnServiceId","consumptionTaxRate","taxExemptionReasonFromAOS","isGroupedStayLineItem","ownerPaysVAT","ownerIsResident","ownerVatId","taxExemptionReason","groupedByUnit","groupedByType","InvoiceRoutingInvoice","propertyStreetName","propertyHouseNumber","squareSize","propertyAmenities","accomodationUnitTypeAmenities","Star2","Star3","propertyCategoryId","RatingInput","AccomodationUnitTypeForm","getRuleIgnoreAdapter","defaultAdapter","settlement","loadReservationCustomers","combined","messageKey","defaults","initialService","accUnitId","isCityTaxChanged","isFoodAndBeveragesChanged","positiveButNotRequired","seasonPrice","untilDateAfterFromDate","dateUntil","validateDates","fromDateBeforeUntilDate","zeroOrPositive","getNetPriceWithConsumptionTax","removeSeasonPrice","addSeasonPrice","showTaxExemptionReason","unitsOfMeasureSelectable","isTenantAnAgency","removeTranslation","addTranslation","loadingProperties","selectProperty","areAllPropertiesSelected","addressFilter","postalCodeFilter","loadService","tenantcountryId","sorted","seasonPrices","containsPerNightMethods","loadProperties","isFoodAndBeverages","AOSTaxRatesForExemption","checkForDuplicateTranslations","conTaxFactor","translations","duplicatesArray","ownerPayoutAmountSeason","ownerPayoutAmount","ownerPayoutIsAbsoluteSeason","AvailabilitySearchModel","SelectedAvailability","array","dateRangeText","NoNegativeNumbers","WholeNumbersOnly","numberOfUnitsChanged","updateChildAges","citiesFetch","ignoreUnitTypeCountSwitchKey","uniqueAmenities","uT","ignoreUnitTypeCount","DeferredAutocompleteWrapper","PriceInput","rpIndex","isGlobalSearch","selectAccommodation","filterPrefill","internalOpenFilter","closingFilterModal","tooltipKey","tootipPosition","sheet","unitsCount","missingUnitsCount","missingUnits","missingOccupancy","gotSelected","searchRestrictions","positionX","positionY","clientX","clientY","VBottomSheet","applySettings","resetToDefaultSettings","column","localExpandedRow","columns","resertWidths","onColumnsChange","tableSettings","_options","saveSettings","localColumns","_columns","_expandedRow","loadSettingsOnTableChange","loadSettings","defaultColumns","defaultOptions","defaultExpandedRow","userTableSettings","storedColumn","ac","resetWidths","RatePlanTypeFilterEnum","RatePlanChangedFields","RatePlanModel","RatePlanTranslation","CalendarPropertyView","unitTypesToDisplay","merge","propertyCount","showOBRules","showInputPrices","highlightPeriod","labelHeight","w","getUnitsToDisplay","highlightPeriodStart","highlightPeriodEnd","CalendarUnitTypeView","unitsToDisplay","ds","ownerQuantity","availabilityOnDay","isBlocked","reservationsForUnit","calculateOverbooking","unitsHeight","selectedAndExpandedRates","obRatePlansHeight","hi","CalendarRatePlanAccomodationUnitTypeView","groupSelected","applyOBLOSCategories","unitTypeAvailabilities","expandLeft","numOfRows","baseHeight","obRules","CalendarUnitView","tempReservations","hideReservationIds","maxReservationsInDay","allReservations","reservationsOnDay","reservationUniqueIndexes","Set","reservationIndex","hasOverbookingOnDate","has","ratePlanFields","textResourceShort","isRestriction","hasPreview","internalColor","acceptColor","clearColor","$scopedSlots","preview","VColorPicker","selectable","openTimelineOnClick","onMouseDown","onDblClick","onClick","dayClass","selectedMobile","startIdx","emptySlots","ceil","isContingent","identifier","fromFormatted","toAssignedMonth","toFormatted","firstDay","isToday","highlight","highlightStart","highlightEnd","weekend","weekday","formatedSelectedArray","mobileSelected","isForReservations","getBoundingClientRect","getMouseEventOffsetX","tlx","pageX","tly","pageY","getMouseEventOffsetY","end","topLeft","bottomRight","clicked","firstClick","mouseDown","startOffset","startPoint","endPoint","calcSelection","onMouseMove","onMouseUp","bottom","startDay","endDay","navLeft","dateFieldModel","navToday","navRight","navRightBtn","HTMLElement","blur","navLeftBtn","minus","navTodayBtn","openAvailabilityTimelineOnClick","tenantUsesAvailabilityChangelogParam","datePickerType","activeDatePicker","formatDateForPicker","settingsList","currentUserId","currentSettings","weeks","possibleDateSpans","dataFormatOptions","nonDerivedRatePlans","updateListRatePlanSettings","refreshSelectedRatePlan","ContingentSettingsForm","modifiers","dragging","row","toggleExpand","getRowName","getRowStartDate","getRowEndDate","shownRatePlan","boxDayStartIdx","hasAvailability","demandChangingEvent","getPriceRowIdentifier","allowedToModifyCalendar","checkSelection","single","priceDifference","hasAvailiabilityTotalRow","totalOccupied","totalAvailable","averageOccupancyPercentage","internalSettingsOpen","selectDatePeriod","LEFT_W","_cell","_config","preload","appliesTo","demandEventStatuses","rAcc","fullBox","firstDateMonth","secondDateMonth","monthLong","daysToDisplay","boxDayStart","initialNavTo","internalCurrentDay","navTo","calculateOffsets","endOf","setBounds","_day","getFrom","getTo","sanitizeDate","propertyIdForHierarchy","rows","propName","goTo","clientWidth","cellw","scrollLeft","getPriceEditorType","orderedSelectDatePeriod","selectedRows","ratePlanTrack","indexes","selectFirstClick","checkIfIsSameCell","getSelectedRows","openPriceEditor","selectedRow","dateEndIndex","occ","av","highestDemand","statusName","CalendarBoxRow","BoxTimeTrack","BoxDayTrack","CalendarEditor","dragscroll","Resize","Scroll","ContingentBox","beforeRouteLeave","PropertyOtaStatusEnum","serviceAdded","internalDisable","internalTab","internalAdd","ownerForm","useLocationAsKeyPickup","keyPickupLocation","keyPickupLocationPostalCodeId","keyPickupLocationCityId","keyPickupLocationStreetName","keyPickupLocationHouseNumber","checkInTimeFrom","checkInTimeUntil","checkOutTimeFrom","quietTime1From","quietTime1Until","quietTime2From","quietTime2Until","cutOffTime","cutOffDaysHasValue","requiredWith0Allowed","cutOffDays","mustBePositiveEmptyOrZero","propertyOwnerFormActive","removeWorkModelAndCategorizationInfo","propertyManagerFormActive","internalAgencyWorkModels","agencyCommissionPercentForPrepayments","ownerPricingModelId","agencyFees","translatedAgencyFeeHeaders","agencyFeePriceManuallyChanged","getPriceCalculationMethodText","deleteAgencyFee","selectedAgencyFees","addAgencyFeesOpen","isPropertyLevelAmenity","addOnServices","otasRef","openOtasIframe","fullSyncLoading","fullSync","exportOfficialRatesForOwnerOpen","generateOwnerContractOpen","ownerContractExportTypes","ownerContractExportType","submitOwnerContractGeneration","addAgencyFee","loadAgencyFees","lat","latitude","lng","longitude","keyPickupLocationLatitude","keyPickupLocationLongitude","timeOptions","selectTo","selectFrom","singleValue","requiredRule","fromInternal","toInternal","internalStreetName","internalHouseNumber","countryItems","internalCountryId","postalFetch","internalPostalCodeId","cityFetch","internalCityId","setMarkerToCoordinates","coordinates","center","zoom","setMarker","internalMarker","markerClicked","noCountry","hasCountry","setPlace","slotProps","listeners","skipMarkerWatch","mapRef","$mapPromise","panTo","setZoom","latLng","place","geometry","isById","isBySearch","translateID","removeService","formOpen","pickableItems","pickedServices","servicesFormOpen","excludeBookingFee","automaticallySetServices","autoInternalServices","applyToAllProperties","internalServices","mergeToAccommodationWhenInvoicing","changed","AddOnServicesAndFeesForm","autoCheckout","editFacility","removeFacility","passwordLoading","clearFakePass","fetchPassword","removeConfirm","user","defaultNumberOfExtraBeds","numberOfBedsIndex","amenityItems","multiSearch","toggle","textToTranslate","userShouldSetIsFreeAttribute","translatedSelectItems","userShouldSetIsOnSiteAttribute","userShouldSetEmphasizeOnBEAttribute","groupable","isAccomodationUnitTypeLevelAmenity","amenityModels","amenityId","finalList","isFree","isOnSite","emphasizeOnBookingPortal","defaultEmphasizeOnBE","selectItems","desc","langTr","fillCardText","initialForm","submiting","descriptions","deleteConfirmed","toRemove","shortPropertyDescription","poi","typeTr","poiTypeId","distanceInMeters","walkingTimeInMinutes","drivingDistanceInMinutes","sortedPoiTypes","pois","otaUpdateLoading","OTAChannelsEnum","GoogleVacationRentals","propertyOTAStatusEnum","Active","ota","getValue","getColor","enableSwitch","getMessage","allowedToModifyOTAs","KroatiDe","openKroatiDeSetupModal","Atraveo","openAtraveoSetupModal","otaUpdated","updateOta","unitTypesForOTASetup","standardRatePlans","standardAndDerivedRatePlans","kroatiDeSyncModalOpen","otasIframeIsOpen","atraveoSetupModalOpen","atraveoId","closeAtraveoSetupModal","kroatiDeSetupModalOpen","wholeNumbersOnly","submitUnitsForOTASetup","closeKroatiDeSetupModal","kroatiDeSyncYearList","yearToSync","kroatiDeSyncResult","isSuccess","officialRateName","errorTextResourceKey","submitKroatiDeSync","iframeOpen","iframeUrl","loadIframe","loadUnitTypesForOTASetup","idApiKey","endpoint","Deactivated","debouncedUpdate","paymentCollectByOTA","paymentCollectCommission","ActivationPending","DeactivationPending","loadUnitsForOTASetup","unitsForOTASetup","loadingUnitsForOTASetup","loadingUnitTypesForOTASetup","accomodationUnits","kroatiDeId","kroatiDeSyncInProgress","OtasIframe","basePrice","askForRemove","AccomodationUnitTypeTile","onEnd","onSortEnd","photo","ignoreDragForUpload","deletePhoto","filesToUpload","dropFile","uploading","photoFormOpen","photoForForm","getPhotos","editPhoto","getTagText","tagIds","refreshTags","initialPhoto","simpleForm","loadingPhoto","loadPhoto","tempEndpoint","photos","photosTmp","originItem","oldIndex","targetItem","newIndex","originIndex","targetIndex","saveOrder","inputRef","lastElementChild","firstElementChild","imageTypeRegex","deletePhotoConfirm","PhotoTile","PhotoForm","SortablePhotos","VFileInput","updateCustomerVATStatusLoading","labelOwnerManager","customerFetch","searchValue","openCustomerForm","clientInfoData","showCustomerData","sortedCountries","postalCode","updateCustomerVATStatus","formCustomerId","setCustomerAndLoad","internalActive","loadCustomerData","labelType","customerVATStatus","oib","countryName","owners","fullName","atLeastOneSelected","ownersAddOnServices","selectedOwnersAddOnServices","exportTypes","officialRatesExportType","officialRatesYear","getSpecialNote","specialNote","officialRateExportForOwnerShouldSaveSpecialNote","officialRateExportShouldBeLandscape","exportOfficialRates","InputPrice","InputAndOutputPrice","loadSpecialNotes","getOwners","getOwnersAddOnServices","specialNotes","accUnitTypeId","exportBody","ownerAddOnServiceIds","saveSpecialNote","isLandscape","getExportBody","areAllAgencyFeesSelected","selectAgencyFees","agencyFeesToAdd","popupForReservationUpdate","manualMethod","method","agencyFeeheaders","unselected","addSelectedAgencyFeesToProperty","updateReservations","fees","agencyFeesProperty","Resident","NonResident","LegalEntity","originalKeyPickup","workModel","ownerPricingModelEnum","Relative","mustBeZeroOrPositive","OwnNameAndOwnInvoice","rootForm","ownerFormValid","ownerFormRef","acceptsOnlyCash","cardTypeIds","invalidInputs","inputs","categorizationDate","categorizationClass","categorizationNumber","back","isAgencyFeeDeletion","deleteAgencyFeeConfirm","TimeInput","LocationInput","AddOnServicesTable","EVisitorFacilitiesTable","AmenitiesSelection","DescriptionsTiles","PoisTiles","AccomodationUnitTypeTiles","PhotoEditor","Otas","PropertyOwner","OfficialRatesExportForOwners","PropertyFormAgencyFeeSelection","VSheet","VSlideXTransition","notifySuccess","propertyForm","resetFormModel","generateOwnerContract","freshTenantParts","oldTenantParts","freshTenant","oldTenant","PropertyForm","AbsoluteSame","noChanges","checkForChanges","isSubmitting","isBasicFormValid","isUnitsFormValid","isAmenitiesFormValid","isLayoutFormValid","isTranslationsFormValid","isDescriptionsFormValid","isPhotosFormValid","isLOSCategoriesFormValid","isPAXCategoriesFormValid","requiredAllowed0","inRange","handleMouseClick","baseInputPrice","propertyOwnerId","propertyOwnerPricingModelId","room","roomIndex","sortedRoomTypes","bed","bedIndex","beds","addBed","rooms","addRoom","propertyIsAvailableViaBookingEngine","addBtn","openApiKeySelection","copyiCalendarLink","checkApiKeys","hasOwners","exportOfficialRatesForGuestsOpen","apiCredentialsHeaders","accomodationUnitFormOpen","accomodationUnit","initialAccomodationUnit","wholeNumber","cityTaxItems","evisitorFacilities","loadPropertyEVisitoryFacilities","ownerPriceOffset","ownerDoesCleaning","ownerDoesCheckin","ownerDoesCheckout","loadApiCredentials","loadAccomodationUnit","propertyAgencyWorkModel","propertyVATCategory","propertyOwnerPriceOffset","propertyAgencyCommissionPercentForPrepayments","propertyOwnerDoesCheckin","propertyOwnerDoesCheckout","propertyOwnerDoesCleaning","propertyCategorizationNumber","propertyCategorizationClass","propertyCategorizationDate","setDefaultOwner","paysCityTax","ClipboardItem","write","fetchICalLink","AccomodationUnitForm","shortenDescription","accUnitTypeDescription","paxCategories","inputPriceDifferenceData","outputPriceDifferenceData","updateCategoryId","initialModel","isSaveDisabled","internalCategoryId","templateList","selectTemplate","selectedTemplate","oneOrPositive","minLowerThanMax","defaultChanged","removeCategory","inputPriceDifferenceIsAbsolute","greaterThanMinus100","inputPriceDifference","requiredIfDifferenceTypeEntered","requiredIfPriceEntered","priceDifferenceItems","outputPriceDifferenceIsAbsolute","outputPriceDifference","addCategory","obCategoryTemplateItems","noDefaultCategory","loadOBCategoryTemplates","existingCategories","priceDifferenceIsAbsolute","AccomodationUnitTypeOBCategoriesForm","nameTranslation","dateFromPeriod","dateToPeriod","ratePlanDisplay","serviceTypeDisplay","selectedCurrencyDisplay","noDeparturesDisplay","noArrivalsDisplay","addOfficialRate","selectedOfficialRate","initialOfficialRate","saveDialogOpen","dkey","updateTypeEnum","updateType","validPeriod","ratePlansForOfficialRate","ratePlanSelectDisabled","showPAXCategories","showLOSCategories","officialRateRulesGroupingEnum","grouping","toggleExpandCollapse","tenantUsesOfficialRateRules","derivedRatePlansForRestrictionUpdate","ratePlansForUpdate","ratePlanIdsToUpdateChanged","derivedRatePlansFromSelected","savingInternal","automaticCalculationModal","isBaseRule","getRuleHeader","isPricingModelRelative","formatPrice","automaticCalculation","minimumStay","undefinedOrPositive","maximumStay","minBookableBeforeCheckin","maxBookableBeforeCheckin","baseCategory","calculateAutomaticAbsolutePrice","autoCalculateAutomaticRelativePrice","autoCalculateAllPrices","autoCalculateFromInputPrice","autoCalculateFromOutputPrice","isDefaultPAXCategory","paxInputPricePart","paxOutputPricePart","obInputPriceDifference","obInputPriceDifferenceIsAbsolute","obOutputPriceDifference","obOutputPriceDifferenceIsAbsolute","isDefaultLOSCategory","losInputPricePart","losOutputPricePart","losInputPriceDifference","losInputPriceDifferenceIsAbsolute","losOutputPriceDifference","losOutputPriceDifferenceIsAbsolute","OfficialRateRulesGroupingEnum","ByOccupancy","getGroupHeader","getGroupRules","rowKey","rulesGroups","mapped","accomodationUnitTypesLOSCategoryId","accomodationUnitTypesPAXCategoryId","noSales","ByLengthOfStay","inputPriceSum","outputPriceSum","inputPriceKey","priceKey","someArrivals","allArrivals","toggleArrivals","someDepartures","allDepartures","toggleDepartures","noArrivalsMonday","noArrivalsTuesday","noArrivalsWednesday","noArrivalsThursday","noArrivalsFriday","noArrivalsSaturday","noArrivalsSunday","noDeparturesMonday","noDeparturesTuesday","noDeparturesWednesday","noDeparturesThursday","noDeparturesFriday","noDeparturesSaturday","noDeparturesSunday","UpdateTypeEnum","loadRatePlans","officialRateId","loadOfficialRate","losCategories","los","pax","derivedRatePlanIdsToUpdateRestrictions","accUnitTypeRatePlans","ratePlanIdsToUpdate","periodValid","utr","OBAndLOSRules","pricesAreFilled","hasValidInputPrice","RestrictionsAndPrices","automaticFillingOfPrices","updatePrices","Prices","Restrictions","requestedAt","currentDatetime","asyncUpdateStarted","OfficialRatesOBRules","OfficialRatesLOSRules","OfficialRatesOBAndLOSRules","OfficialRatesFormPrices","OfficialRatesArrivalsDepartures","seasonName","dateFromStart","dateFromEnd","dateToStart","dateToEnd","tenantUsesServiceTypes","OfficialRatesFormNew","accUnitTypeShownOnBE","deleteRatePlan","getRatePlanFullName","updateRatePlan","bookingEnginePriceOffsetPlaceholder","ratePlanIdToAdd","addRatePlan","ratePlanType","All","allRatePlans","ratePlanUnitTypes","firstTimeLoad","bookingEnginePriceOffset","deleteRatePlanConfirm","losCategoryTemplateItems","loadLOSCategoryTemplates","AccomodationUnitTypeLOSCategoriesForm","selectedYear","ratePlansForExport","requiredArray","selectedRatePlans","languageChanged","firstLanguageCultureCode","secondLanguageCultureCode","firstLanguageSpecialNote","secondLanguageSpecialNote","saveSpecialNotes","separateBySections","size","ratePlanIds","OutputPrice","ratePlansTab","sanitizeNumberInputValuesOnModel","basicFormValid","formBasic","basicAmenitiesValid","formAmenities","basicLayoutValid","formLayout","basicTranslationsValid","formTranslations","basicDescriptionsValid","formPhotos","basicPhotosValid","basicUnitsValid","formUnits","basicLOSCategoriesValid","formLOSCategories","basicPAXCategoriesValid","formPAXCategories","unitsRef","addUnit","propertyAgencyWorkModelId","propertyVATCategoryForPrepaymentsId","translationsRef","photosRef","losCategoriesRef","paxCategoriesRef","emptyAllowed","AccomodationUnitTable","AccomodationUnitTypeDescriptions","AccomodationUnitTypeOBCategoriesTable","AccomodationUnitTypeTranslations","OfficialRatesTable","AccomodationUnitTypeRatePlanOverrides","AccomodationUnitTypeLOSCategoriesTable","OfficialRatesExportForGuests","accomodationUnitTypeForm","filterOptions","parentRatePlanName","getStatusText","numberOfCancelationPolicies","numberOfPrepaymentPolicies","counts","getIncludesText","accUnits","numberOfAccomodationUnitTypesRatePlanIsAppliedTo","numberOfPropertiesPlanIsAppliedTo","editRatePlan","isSpecialOffer","createDerivedRatePlan","formRatePlanId","formParentRatePlanId","initialRatePlan","submitConfirm","selectedUnitTypesCount","ratePlanAccUnitTypesWithObRulesCount","changedFields","priceDiffType","GreaterThanMinus100","priceDiffChanged","canEditAppliesToAllAUT","OneOrGreater","minStayChanged","maxStayChanged","minBookableChanged","maxBookableChanged","currenciesForSelect","RequiredArray","FromDateBeforeUntilDate","bookableFrom","bookableUntil","arrivalDateFrom","arrivalDateUntil","hasPhoto","photoSrc","openPhotoForm","deletePhotoConfirmation","addPhoto","dropPhoto","servicesPanelOpened","expandedTranslation","openPreview","previewHtml","translatedUnitTypeHeaders","filteredUnitTypes","areAllUnitTypeselected","selectAllUnitTypes","unitTypesFilter","selectedUnitTypes","promoCode","initialPromoCodePrice","onPriceChanged","promoCodeCheckboxesErrors","showPromoCode","removePromoCode","addPromoCode","translatedHeadersObr","groupedOccupancyBasedRules","occupancyBasedRulesFilter","occupancyBasedRules","openInternal","calculationMethods","getCalculationMethod","thresholds","addServices","allServices","addOnServiceName","guestCanChangeQuantity","unitTypeHeaders","filterable","TenantUsesBookingFees","ApplyRatePlansToAllAccomodationUnitTypes","appliesToAllAccomodationUnitTypes","OTAs","ratePlanOtas","missing","loadOTAs","loadNonDerivedRatePlans","promoCodeValid","isForAccommodation","isForService","MustBeNegativeAbsolute","NotEqual","LessOrEqual","maxSellableNights","maxSellableReservations","internalParentRatePlanId","loadParent","createDerived","applyRatePlansToAllAccomodationUnitTypes","loadAccomodationUnitTypes","selectUnitTypeRange","availableUnitTypes","formatInitialPromoCodePrice","parentRatePlan","translationsLength","existingOBRs","ratePlanAccomodationUnitTypes","currentOBRs","minBookable","maxBookable","priceDiff","showSaveAndUpdateButton","updateExistingAvailability","sanitizeRatePlanModel","requestRatePlanModel","areNewAUTsSelected","initialSelectedUnitTypes","promoPriceDiffChange","applicationMethodId","OnlyWithCode","photoInputRef","savingPhoto","initialSelectedAUTs","selectedAUTs","existingAUTIds","newAUTIds","occupancyBasedRulesHeaders","paxlosCombinations","existingRules","selectedUnitsIds","allRules","rput","servicesPanel","HTMLPreviewModal","RatePlanFormAddOnServices","VExpandTransition","Normal","ActiveOffers","AllOffers","deleting","includesLunch","includesDinner","isExpired","isDeactivated","RatePlanForm","RatePlansTiles","openModal","reservationModalOpen","reservationExists","refreshAll","identificationDocumentTypeStyle","remarks","openReservationsTab","customerFormCustomerId","custmerType","ReservationHolder","Guest","CustomersTable","openReservation","notCheckedInTable","checkedInTable","checkedOutTable","meta","LangPicker","VApp","showErrors","showPassword1","PasswordsMustMatch","repeatedPassword","showPassword2","urlStringified","str","padEnd","atob","queryToken","token","expires","isDraft","getSourceTypeNames","getLanguageName","getRecipientNames","recipientIds","editTemplate","addTemplate","recipientId","NotificationTemplatesTable","useSimpleVariables","template","activeSorceTypes","attachments","isUnchanged","scheduleOpen","notificationScheduleId","translationsDrawerOpen","testDialogOpen","checkClose","isTestFormValid","notificationTestModel","emailFormat","sendingTest","submitNotificationTest","scheduleCreated","scheduleDeleted","internalTemplate","variableFilter","dragStart","htmlPreviewSimple","htmlPreview","variables","refreshVariables","NotificationTemplateVariables","NotificationSchedulesTriggerDateEnum","deleteSchedule","isActive","offsets","beforeAfter","notNull","allowedTriggerDates","distributionChannelTypeIds","scheduleId","selectedOnly","refreshOffsets","triggerDates","refreshTriggerDates","notImplementedTriggers","OfferExpirationDate","InvoiceDueDate","AdvanceInvoicePaymentDate","ReservationPaymentDate","saveSuccess","loadTemplate","refreshRecipients","refreshAttachments","initialTemplate","translationsForm","testForm","NotificationTemplateTranslations","NotificationScheduleForm","isLocked","oldModel","cleanedModel","cleanPaymentInstructions","parser","DOMParser","textContent","parseFromString","documentElement","DocumentSettingsForm","reviewSubmitDate","reviewApprovalDate","guestReviewFormOpen","guestReviewId","initialReview","review","oneToTen","reviewId","loadReview","_properties","cleanlinessScore","locationScore","valueForMoneyScore","facilitiesScore","staffScore","comfortScore","wifiScore","validateScores","Submitted","Approved","Removed","GuestReviewForm","GuestReviewTable","editingItem","editingModalOpen","isInitialLoadDone","sortOptions","sortPrefil","maintenanceTeamMembers","closeEditModal","saveChanges","accomodationUnitStatusEnum","statusIcon","statusResourceKey","assignedMaintenanceTeamMemberName","nextArrivalDate","source","OnDate","userIsMaintenanceTeamLeader","reservationUnitRemark","reservationRemark","editedItem","filtersNotChanged","isDone","MaintenanceGridTile","MaintenanceGrid","policyGuard","matched","poly","BREAKPOINTS","LABELS","VALUES","Infinity","responsiveRoute","screenWidth","matchIndex","counter","info","routes","requiresSignin","crumbs","ReservationsMobile","completedFilter","PropertiesAndUnits","link","redirect","RatePlans","DocumentSettings","base","beforeEach","race","filterType","dateRangeDates","availabilitySearchModel","loadingCities","citiesSearchInput","propertyTypeFilter","ownerFilter","showEmail","arrivalDatePeriod","departureDatePeriod","searchCities","globalFilterOpen","debouncedSearchCities","includeOnlyWholeProperties","fromPrice","toPrice","distanceToBeach","distanceToCityCenter","petsAllowed","globalPropertiesFilterKey","dayW","weekdayShort","monthShort","currentISO","calculateWidths","interval","refs","navMenu","navMenuCollapsed","widths","TimeTrackDayTrack","DashboardKPITablesState","needsRefresh","departuresNeedRefresh","showOwnersReservations","setNeedsRefresh","setDeparturesNeedRefresh","setShowOwnersReservations","dashboardAccUnitStatuses","capitalize","cleanUpPhoneNumber","cleanUpLeadingZeroes","appendPrefixIfMissing","errorText","errorHint","customError","customHint","fpNum","sortByOrder","refreshMobileTable","currentSortField","option","applyReservationsGridFilter","isReservationsGridFilteredByDate","tabName","tabDate","editItem","renderReservationModalMobile","showComponent","free","availableQuantity","totalQuantity","occu","occupiedQuantity","isAllowedToSeeOwnerPrices","translatedStatus","reservationCancellationDate","expirationDate","otaInfo","isAllowedToModifyDistributionChannel","getHourAndMinute","phoneHref","smsHref","whatsAppHref","firstGuestName","firstGuestTelephoneNumber","reservationHolderTelephoneNumber","resId","time","ReservationTableMobileTile","ComponentRenderOverlay","ReservationModalMobile","elementDate","firstUpper","weekdayLong","resetLoadMore","reservationFilters","initialSortOrder","transformItems","isCompletedFilter","ReservationsTableMobile","targetHeaderElement","targetHeaderElementInitialWidth","nextHeaderElement","nextHeaderElementInitialWidth","startingPos","startingTransformation","draggedTransformation","mousedragFn","mouseupFn","cancelBubble","tmpHeaders","mousedown","MouseEvent","touches","parentElement","nextElementSibling","minWidth","xdiff","targetWidth","nextHeaderWidth","componentUpdated","vnode","nextTick","onmousedown","ontouchstart","onclick","context","resizeHandleOfLastHeader","translateHeaders","headersTmp","$listeners","hasExportToExcel","genericPMSTableMenuListeners","$attrs","$props","activeHeaders","sortTheHeaders","ResizableTable","subtractDisabled","subtract","addDisabled","dismissInstall","install","updateInfoMessage","refreshButtonDisabled","refreshApp","$on","$cookies","showPWAInstallBanner","promptInstall","updateAvailable","once","serviceWorker","refreshing","reload","refreshButtonDisabledTimer","deferredPrompt","updateExists","displayPWAInstallPopup","registration","detail","waiting","postMessage","userChoice","choiceResult","outcome","prompt","VBanner","vuetify","icons","iconfont","locales","hr","en","themes","primary","lighten1","lighten2","secondary","darken1","accent","black","lighten3","darken2","api","baseURL","Accept","setupUseInterceptors","interceptors","Authorization","fullPath","GoogleApiKey","libraries","installComponents","registered","afterEach","cached","updatefound","updated","dispatchEvent","CustomEvent","offline","productionTip","App","$mount","checkInSelected","arrivalTime","departureTime","eVisitorPaymentCategories","eVisitorPaymentCategory","eVisitorArrivalOrganizationTypes","eVisitorArrivalOrganizationType","getCountryName","genders","getGenderText","eVisitorStatuses","eVisitorStatusId","isMarkedFailed","hasBackendErrors","eVisitorValidationMessages","isSelfCheckIn","checkInDisabled","checkOutDisabled","checkOutSelected","multipleEditDisabled","openMultipleEdit","anySelected","allSelectedAreCheckedIn","allSelectedAreCheckedOut","selfCheckInModalOpen","copyLink","itemId","callRefresh","resetFeedbackErrorsFor","multipleEditOpen","multipleEditIds","multipleEditFormType","anySelectedIsCheckedIn","initial","checkInTime","isHReVisitor","requiredIfAllSelectedAreNotCheckedIn","submitSave","isForCheckOut","modalOpen","modalTitle","modalMessage","modalAdditionalMessage","confirmAction","dialogOpen","reportType","reportDate","exportReport","EVisitorReportTypeEnum","Monthly","itemsJson","refreshFactors","additionalMessage","modalCallback","Yearly","tempDate","tempYear","previousMonth","setMonth","formComponent","successTextResourceKey","showModal","allowedExportTypes","EVisitorReportForm","ETurizemReportForm","eVisitorFacilityName","paymentCategoryId","arrivalOrganizationTypeId","updateDateFieldModel","refreshPaymentCategories","refreshArrivalOrganizationTypes","generateSelfCheckInLink","setUpHeaders","NotCheckedIn","standaloneHeaders","tenantUsesSelfCheckIn","reservationTabHeaders","dashboardFilter","oldCheckinFeedbackOrEmpty","checkinFeedbackErrors","oldCheckoutFeedbackOrEmpty","checkoutFeedbackErrors","queryFilters","isFromMainGrid","statusOfFirstSelected","reservationUpdate","er","revert","selfCheckInLinks","TenantUsesSelfCheckIn","MultipleGuestsEditForm","EVisitorReportDialog","disableRules","placeholderHint","onInput","isInputFocused","formatHint","decimalPart","forPromoCode","lastPriceChange","valueAppendCurrencyForDisplay","rackRatePriceChange","toEmit","forRackRates","addOn","changesOriginalPrice","smAndUp","multiple","defaultHeaders","combinedFilters","onlyLegalEntities","onlyOwners","AppParamTypesEnum","AppParamsEnum","fiscalNumberIsMain","finDocModel","documentStatus","extraOptions","automaticallyCancelRelatedAdvanceInvoices","isCancellation","hasTaxExemption","hasTaxRecapError","showActionButtons","showFiscalizeCheckbox","changedShowOwnerDetails","hasLineItems","lockConfirmation","openPaymentModal","paymentsForFinDocDialogOpen","paymentsList","workingCurrencyId","workingCurrencyISO3","formalCurrencyId","formalCurrencyISO3","saveLockAndMarkAsPaid","autoAdvanceInvoiceCancellationDetailsDialogOpen","autoAdvanceInvoiceCancellationDetailsDialogIsValid","autoAdvanceInvoiceCancellationBackupBusinessUnitId","autoAdvanceInvoiceCancellationBackupCashRegisterId","autoAdvanceInvoiceCancellationDetailsDialogContinue","finDocCreateResponseDialogOpen","finDocCreateResponseDialogData","originalDocumentId","originalDocumentIdentifier","originalDocumentInternalIdentifier","stornoCreationFailed","stornoLockFailed","stornoFiscalizationFailed","stornoPaymentsFailed","closeAutoCancellationDialog","isReservationFound","reservationSummary","accommodationTotalPrice","accommodationTotalInputPrice","accommodationTotalMargin","getPercentage","accommodationTotalMarginPercent","addOnServicesTotalPrice","addOnServicesTotalInputPrice","addOnServicesTotalMargin","addOnServicesTotalMarginPercent","totalMargin","totalMarginPercent","userChangedDates","servicePeriodTextResource","finDocModelInternal","servicePeriod","sortedBusinessUnits","allowBusinessUnitEditForCancellation","issuePlace","paymentMeansCols","paymentMeansChanged","paymentMeansEnum","Ostalo","paymentMeansAdditionalDetails","totalToPay","conversionRate","referenceNumber","showCardTypeSelection","deliveryDateTextResource","deliveryDateMax","isFiscalNumberMain","referenceDocumentChanged","buttonColor","mustBeZero","invoiceUnpaidTotalRounded","getPaymentMeanBaseId","internalDetails","addDetail","rounded","amountDue","amountDueRounded","invoiceUnpaidTotal","syncDetails","referenceDocumentTypeId","documentStatusId","cols","summary","toPayWithoutAdvance","toPay","bu","servicePeriodFromDate","servicePeriodToDate","refDoc","referenceDocumentId","Zakljucen","Placen","Storniran","cloneAvailableBusinessUnits","FinancialDocumentPaymentMeansAdditionalDetailsModal","clientInfo","customerSearchHeaders","requiredForLegalEntity","selectedCopy","isSearchingServices","onAddOnServicesSearchInputChanged","onItemNameKeyDown","onSelectedServiceChanged","showNoAddOnServiceItems","requiredNoZero","calculateLineItem","itemTaxRateChanged","netUnitPriceAlt","calculateLineItemDiscount","netPriceAlt","isInvoice","multipleReservationsInvoicingOpen","multipleDocumentsInvoicingOpen","propertyIdForMultipleReservationsInvoicing","mergeExistingReservations","mergeExistingInvoices","addToInvoice","refreshAddOnServicesTranslations","reservationAccUnitTypeIds","accUnitTypes","officialRatesExist","officialRates","or","addOnServicesTranslations","areAllInvoicesSelected","selectAllInvoices","loadingMultipleDocuments","issueDateFromPeriod","issueDateToPeriod","excludedDocumentIds","excludeMultiDocumentInvoices","excludeContainedInLockedMultiDocInvoices","clientName","excludedDocs","existingLineItems","financialDocumentIds","searchAddOnServices","taxExempt","userInput","resetTaxExemption","itemNumber","newLineItem","sourceFinancialDocumentId","isMultiDocInvoice","removeAllDocumentItems","debouncedSearchAddOnServices","disableLineItemChange","incomingFrom","servicePeriodFrom","incomingTo","servicePeriodTo","refreshClientInfo","defaultBusinessUnitId","newRelatedAdvanceInvoices","unassignedAdvanceInvoices","relatedAdvanceInvoices","newLineItems","allSameClient","someDifferent","currentServicePeriodFrom","currentServicePeriodTo","originalTotalPrice","newItem","getMultiDocumentLineItemName","sourceLineItemId","isExchangeRateDifference","originalDiscountAmount","addedDiscountAmount","discountAmount","totalDiscount","finalPrice","missingTaxExemptions","missingNotes","taxRatesGetter","MultipleReservationsInvoice","MultipleDocumentsInvoice","gross","net","advance","advancePickerOpen","discount","automaticallyCancelRelatedAdvanceInvoicesInternal","hasTaxRecapErrorInternal","allAdvances","formatDocName","typeName","hasErrorInternal","workingCurrencyCode","taxRecap","taxRateTextResourceKey","recapItems","originDocumentIdentifier","recapItem","invalid","hasBaseAmountError","originDocumentIssueDate","originDocumentTotalWithVat","hasTaxAmountError","taxAmount","removeRelatedAdvanceInvoices","toggleAutomaticCancellationOfRelatedAdvanceInvoices","calculateTaxRecap","AdvancePicker","TaxRecap","amountChanged","cannotBeMoreThanRemaining","amountToAsign","paymentColsSize","cardColsSize","internalPayments","addPayment","showBottomInfoBox","dueAmount","totalAssignedAmount","amountLeftToAssign","alreadyPaidForFinDoc","shouldShowCardType","mustBeEqualToTotal","totalAssigned","amountsAreValid","fiscalizeOfferDeliveryNote","createOwnersInvoicesCheckbox","Ponuda","internalDeleteOnClose","deleteDraftOnClose","internalDocumentId","defaultRate","outOfScopeOrDefaultRate","lineItemsForOwnersInvoice","canCreateOwnersInvoices","Dospio","saveActionType","autoAdvanceInvoiceCancellationDetailsDialogAction","skipAutoAdvanceInvoiceCancellationBackups","isForPDF","canAutomaticallyCancelRelatedAdvanceInvoices","checkResponse","openAutoAdvanceInvoiceCancellationDetails","advanceInvoiceCancellationResults","isTaxRecap","lockDocument","lock","createOwnersInvoices","fiscalizeOfferOrDeliveryNote","shouldFiscalize","Cek","amountPaid","financiaDoumentId","paymentTime","paymentsForRequest","unassignedPayments","accomodationTaxRateId","outOfScopeTaxRateId","stayLineItems","FinancialDocumentReservationSummary","BasicInfo","ClientInfo","LineItems","PriceSummary","FinancialDocumentPaymentsModal","AgencyWorkModelsEnum","EVisitorStatusEnum","EVisitorModel","clearTaxExemption","cityTaxExemption","stayNotPayingTaxExemption","tenantNotPayingTaxExemption","exchangeRateDifferenceExemption","fillInvoiceEditingTaxExemptionReason","stayVATRatesForExemption","consumptionTaxRateFactor","totalTaxRateFactor","calculateLineItemAltCurrency","grossUnitPriceAlt","grossPriceAlt","getPriceSummary","itemsCopy","advanceCopy","MessageSourceTypeEnum","BaseMessageTypeEnum","NewMessageModel","dateSize","_dateLabel","internalValidation","datePart","timeSize","_timeLabel","timePart","dateInternal","timeInternal","dateTime","zone","toLocal","localISO","setValue","newDateTime","toUTC","dateLabel","timeLabel","sizes","sm","isUndefined","watched","isWatchMode","internalSaving","dirty","VNavigationDrawer","axiosInstance","isResponseTypeBlob","jsonMimeType","dataType","isBlob","defaultLanguage","$i18n","leading","trailing","dateTimeFormats","fractionalSecondDigits","pluralizationRules","choice","doesntEndWith11","endsWith1"],"mappings":"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,EAYAC,EASAC,EAQAC,EASAC,EAYAC,EAQAC,EAgBAC,EAKAC,EAMAC,EAQAC,EAKAC,EAMAC,EAuBAC,EAMAC,EAMAC,EAKAC,EAKAC,EAMAC,EAYAC,EAKAC,EAQAC,EAKAC,EASAC,EAMAC,EAlQZ,+5BAAY9B,GACV,wBACA,8BACA,8CACA,0CACA,gCACA,kCACA,gCACA,gDACA,8BACA,gCACA,mCACA,2BACA,+BACA,2DACA,mDACA,mCACA,6CAjBF,CAAYA,MAAmB,KAoB/B,SAAYC,GACV,oCACA,wCAFF,CAAYA,MAAmC,KAK/C,SAAYC,GACV,oBACA,oBACA,oBACA,oBACA,oBACA,oBANF,CAAYA,MAAY,KASxB,SAAYC,GACV,gDACA,wBACA,wBAHF,CAAYA,MAAgB,KAM5B,SAAYC,GACV,wBACA,wBACA,wBACA,wBACA,wBALF,CAAYA,MAAc,KAQ1B,SAAYC,GACV,gCACA,kDACA,0DACA,4CACA,4CACA,oBACA,0BAPF,CAAYA,MAAgB,KAU5B,SAAYC,GACV,wBACA,0BACA,4CACA,0BACA,kCACA,0CACA,8CACA,gCACA,kCATF,CAAYA,MAA0B,KAYtC,SAAYC,GACV,4BACA,gCACA,0BACA,0BACA,gCACA,4BANF,CAAYA,MAA2B,KASvC,SAAYC,GACV,oBACA,oBACA,0BACA,oBACA,oBALF,CAAYA,MAAiB,KAQ7B,SAAYC,GACV,sBACA,gCACA,8BACA,gCACA,kCACA,0BANF,CAAYA,MAAqB,KASjC,SAAYC,GACV,4BACA,8BACA,gDACA,gCACA,0CACA,0BACA,8CACA,8CACA,0BATF,CAAYA,MAA2B,KAYvC,SAAYC,GACV,wBACA,wCACA,oCACA,kDACA,8CALF,CAAYA,MAA0B,KAQtC,SAAYC,GACV,gCACA,gCACA,wCACA,gCACA,8BACA,oDACA,kCACA,kCACA,gCACA,mDACA,+BACA,+BACA,+CAbF,CAAYA,MAAY,KAgBxB,SAAYC,GACV,sCACA,4CAFF,CAAYA,MAA4B,KAKxC,SAAYC,GACV,gCACA,8BACA,0BAHF,CAAYA,MAA6C,KAMzD,SAAYC,GACV,sCACA,0BAC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","file":"js/app.c51336af.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 CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\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// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\":\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\",\"CalendarMobile\":\"CalendarMobile\",\"Calendar~_DefaultLayout~_MobileLayout\":\"Calendar~_DefaultLayout~_MobileLayout\",\"Calendar\":\"Calendar\",\"_DefaultLayout~_MobileLayout\":\"_DefaultLayout~_MobileLayout\",\"_DefaultLayout\":\"_DefaultLayout\",\"_MobileLayout\":\"_MobileLayout\",\"Home\":\"Home\",\"HomeMobile\":\"HomeMobile\",\"Reports~ReportsMobile\":\"Reports~ReportsMobile\",\"Reports\":\"Reports\",\"ReportsMobile\":\"ReportsMobile\"}[chunkId]||chunkId) + \".\" + {\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\":\"4eb80c83\",\"CalendarMobile\":\"dad01623\",\"Calendar~_DefaultLayout~_MobileLayout\":\"710afff1\",\"Calendar\":\"a42668cd\",\"_DefaultLayout~_MobileLayout\":\"0467221e\",\"_DefaultLayout\":\"cf5d4a63\",\"_MobileLayout\":\"dce8c0b4\",\"Home\":\"1d3b63a0\",\"HomeMobile\":\"cb8f9a94\",\"Reports~ReportsMobile\":\"5e0de62d\",\"Reports\":\"802fd3ff\",\"ReportsMobile\":\"bbb785e4\",\"chunk-0760b604\":\"c00dcabb\",\"chunk-089e9ece\":\"ca5f852c\",\"chunk-0c3cb437\":\"4e8840b1\",\"chunk-0cf93cc2\":\"6b2ad0be\",\"chunk-121b5ce7\":\"8922dda4\",\"chunk-12e25786\":\"32080f1f\",\"chunk-203814a6\":\"1b6c3983\",\"chunk-2d0c5547\":\"660b3c37\",\"chunk-2d21d0e1\":\"202f090b\",\"chunk-473f559c\":\"1ae28d3c\",\"chunk-522e7abc\":\"b3c7c064\",\"chunk-63a5456f\":\"86f315a7\",\"chunk-83b3d568\":\"2ce3a245\",\"chunk-9f1c0858\":\"4678c00d\",\"chunk-c35eece8\":\"af253134\",\"chunk-cadc4a46\":\"89f28325\",\"chunk-ce30ea92\":\"123bc523\",\"chunk-dc8349f8\":\"d7f5dabf\",\"chunk-dd9f89e4\":\"e4261253\"}[chunkId] + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\":1,\"CalendarMobile\":1,\"Calendar~_DefaultLayout~_MobileLayout\":1,\"_DefaultLayout~_MobileLayout\":1,\"_DefaultLayout\":1,\"_MobileLayout\":1,\"Home\":1,\"HomeMobile\":1,\"Reports~ReportsMobile\":1,\"Reports\":1,\"ReportsMobile\":1,\"chunk-0760b604\":1,\"chunk-089e9ece\":1,\"chunk-0c3cb437\":1,\"chunk-0cf93cc2\":1,\"chunk-121b5ce7\":1,\"chunk-12e25786\":1,\"chunk-203814a6\":1,\"chunk-473f559c\":1,\"chunk-522e7abc\":1,\"chunk-63a5456f\":1,\"chunk-83b3d568\":1,\"chunk-9f1c0858\":1,\"chunk-c35eece8\":1,\"chunk-cadc4a46\":1,\"chunk-ce30ea92\":1,\"chunk-dc8349f8\":1,\"chunk-dd9f89e4\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\":\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\",\"CalendarMobile\":\"CalendarMobile\",\"Calendar~_DefaultLayout~_MobileLayout\":\"Calendar~_DefaultLayout~_MobileLayout\",\"Calendar\":\"Calendar\",\"_DefaultLayout~_MobileLayout\":\"_DefaultLayout~_MobileLayout\",\"_DefaultLayout\":\"_DefaultLayout\",\"_MobileLayout\":\"_MobileLayout\",\"Home\":\"Home\",\"HomeMobile\":\"HomeMobile\",\"Reports~ReportsMobile\":\"Reports~ReportsMobile\",\"Reports\":\"Reports\",\"ReportsMobile\":\"ReportsMobile\"}[chunkId]||chunkId) + \".\" + {\"Calendar~CalendarMobile~_DefaultLayout~_MobileLayout\":\"c09e412d\",\"CalendarMobile\":\"1a51a912\",\"Calendar~_DefaultLayout~_MobileLayout\":\"65eecc9c\",\"Calendar\":\"31d6cfe0\",\"_DefaultLayout~_MobileLayout\":\"149b7873\",\"_DefaultLayout\":\"a1f2267f\",\"_MobileLayout\":\"a3cfe607\",\"Home\":\"a9efb3af\",\"HomeMobile\":\"35f7f707\",\"Reports~ReportsMobile\":\"8e0e13bf\",\"Reports\":\"ad896e3c\",\"ReportsMobile\":\"9eea5586\",\"chunk-0760b604\":\"3e4b0fa2\",\"chunk-089e9ece\":\"4ceb4f27\",\"chunk-0c3cb437\":\"fb29a86a\",\"chunk-0cf93cc2\":\"822738ed\",\"chunk-121b5ce7\":\"908b3088\",\"chunk-12e25786\":\"3272809e\",\"chunk-203814a6\":\"554aa0e1\",\"chunk-2d0c5547\":\"31d6cfe0\",\"chunk-2d21d0e1\":\"31d6cfe0\",\"chunk-473f559c\":\"9549ee9c\",\"chunk-522e7abc\":\"45f74dd4\",\"chunk-63a5456f\":\"37adfe04\",\"chunk-83b3d568\":\"fdfec7fc\",\"chunk-9f1c0858\":\"ee7f5c8e\",\"chunk-c35eece8\":\"32edfb5d\",\"chunk-cadc4a46\":\"ba996cc3\",\"chunk-ce30ea92\":\"8e0a034f\",\"chunk-dc8349f8\":\"9dae1ed1\",\"chunk-dd9f89e4\":\"f808ddfb\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\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--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceRoutingModal.vue?vue&type=style&index=0&id=6e5a9fbb&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentBox.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Property.vue?vue&type=style&index=0&id=3ed93b49&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinDocPrepaymentsModal.vue?vue&type=style&index=0&id=d409b4c8&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentSlipModalForm.vue?vue&type=style&index=0&id=9b93f8ee&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationInput.vue?vue&type=style&index=0&id=033a81df&scoped=true&lang=css&\"","import { GetterTree, ActionTree, MutationTree } from \"vuex\";\n\nconst state = {\n notifications: [] as Notification[],\n};\n\nconst getters: GetterTree = {\n allNotificationMessages: (state) => state.notifications,\n};\n\nlet idx = 0;\nconst actions: ActionTree = {\n showNotification({ commit, state }, notification: Notification) {\n // if there is an existing notification with the same ID then clear its timeout and remove it\n const existing = notification.id ? state.notifications.find(e => e.id === notification.id) : null;\n if (existing) {\n if (existing.timeoutId) {\n clearTimeout(existing.timeoutId);\n }\n commit(\"removeNotification\", existing);\n }\n\n const notificationCopy = { idx: idx++, ...notification };\n if (notificationCopy.timeout) {\n notificationCopy.timeoutId = setTimeout(() => {\n commit(\"removeNotification\", notificationCopy);\n }, notificationCopy.timeout);\n }\n\n commit(\"addNotification\", notificationCopy);\n },\n closeNotification({ commit }, notification: Notification) {\n commit(\"removeNotification\", notification);\n }\n};\nconst mutations: MutationTree = {\n addNotification: (state, notification) => {\n state.notifications = [...state.notifications, notification];\n },\n removeNotification: (state, notification) => {\n state.notifications = (state.notifications as Notification[]).filter(\n (x) => x != notification\n );\n },\n};\n\nexport interface Notification {\n id?: number | string;\n idx?: number;\n color: \"success\" | \"info\" | \"warning\" | \"error\";\n message: string;\n submessages: string[];\n timeout: number;\n localize?: boolean;\n actions?: { text: string; fun: () => boolean }[];\n timeoutId?: number;\n}\n\nexport default {\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport jwtDecode from \"jwt-decode\";\nimport {\n GetterTree,\n ActionTree,\n MutationTree,\n Commit,\n Dispatch,\n Store,\n} from \"vuex\";\nimport { BrokenRule } from \"@/shared/models/apiErrors\";\nimport router from \"@/router\";\n\nexport interface JwtClaims {\n sid: string;\n tid: string;\n utid: string;\n exp: number;\n name: string;\n tname: string;\n roles: string;\n}\n\nexport interface Tenant {\n id: string;\n name: string;\n}\n\nexport interface AuthResponse {\n accessToken: string;\n refreshToken: string;\n availableTenants: Tenant[];\n}\n\nexport interface AuthSuccess {\n isSignedIn: boolean;\n errors: BrokenRule[];\n}\n\nexport interface ForgottenPasswordResponse {\n resetEmailSent: boolean;\n errors: BrokenRule[];\n}\n\nexport class AuthState {\n constructor() {\n this.storedUserResolved = new Promise(\n (x) => (this.storedUserResolvedDefferedCB = x)\n );\n }\n\n storedUserResolvedDefferedCB?: (value?: void | PromiseLike) => void;\n storedUserResolved: Promise;\n\n isSignedIn = false;\n\n claims?: JwtClaims = {\n sid: \"\",\n tid: \"\",\n utid: \"\",\n exp: 0,\n name: \"\",\n tname: \"\",\n roles: \"\",\n };\n\n serverData?: AuthResponse = {\n accessToken: \"\",\n refreshToken: \"\",\n availableTenants: [],\n };\n\n authHandle?: Promise;\n}\n\nconst storageKey = \"pms.u\";\nconst businessUnitStorageKey = \"pms.bu\";\nconst cashRegisterStorageKey = \"pms.cr\";\n\nfunction tryExtractClaims(authResponse?: AuthResponse): JwtClaims | undefined {\n if (!authResponse || !authResponse.accessToken) {\n return;\n }\n\n try {\n const claims = jwtDecode(authResponse.accessToken) as JwtClaims;\n return claims;\n } catch {\n /* empty */\n }\n}\n\nconst state = new AuthState();\n\nconst getters: GetterTree = {\n ready: (s) => s.storedUserResolved,\n isSignedIn: (s) => s.isSignedIn,\n accessToken: (s) => (s.serverData ? s.serverData.accessToken : undefined),\n availableTenants: (s) => (s.serverData ? s.serverData.availableTenants : []),\n claims: (s) => s.claims,\n};\n\nfunction loadState(): AuthResponse | undefined {\n const stored = localStorage.getItem(storageKey);\n\n if (stored) {\n try {\n const parsed = JSON.parse(stored) as AuthResponse;\n return parsed;\n } catch {\n /* empty */\n }\n }\n\n return;\n}\n\nfunction saveState({ serverData }: { serverData?: AuthResponse }) {\n const stringified = JSON.stringify(serverData);\n\n if (serverData) {\n if (localStorage.getItem(storageKey) != stringified) {\n localStorage.setItem(storageKey, stringified);\n }\n } else {\n localStorage.removeItem(storageKey);\n }\n}\n\nconst actions: ActionTree = {\n forgottenPassword(_, payload): Promise {\n const response = Vue.axios.post(\"/auth/ForgottenPassword\", payload).then(() => {\n return { resetEmailSent: true, errors: [] };\n }).catch((errors) => {\n return { resetEmailSent: false, errors: (errors.data.brokenRules as BrokenRule[]) || [] };\n });\n\n return response;\n },\n resetPassword({ dispatch }, payload): Promise {\n const response = Vue.axios.post(\"/auth/ResetPassword\", payload).then(res => {\n return dispatch(\"signin\", { username: res.data, password: payload.password });\n }).catch(errors => {\n return {\n isSignedIn: false,\n errors: (errors.data.brokenRules as BrokenRule[]) || [],\n };\n });\n\n return response;\n },\n signout({ commit }): Promise {\n Vue.axios.post(\"auth/SignOut\").then(() => {\n commit(\"setData\", undefined);\n saveState({ serverData: undefined });\n });\n\n commit(\"calendar/reset\", null, { root: true });\n commit(\"contingent/reset\", null, { root: true });\n commit(\"businessUnit/reset\", null, { root: true });\n commit(\"cashRegister/reset\", null, { root: true });\n\n return Promise.resolve({ isSignedIn: false, errors: [] });\n },\n checkIfFirstSignin({ dispatch }, payload) {\n const response = Vue.axios.post(\"/auth/IsFirstSignin\", payload).then(res => {\n if (!res.data) {\n return dispatch(\"signin\", payload);\n }\n else {\n router.push({ name: \"Reset password\", query: { \"token\": res.data } });\n return { isSignedIn: false, errors: [] };\n }\n }).catch(errors => {\n return {\n isSignedIn: false,\n errors: (errors.data.brokenRules as BrokenRule[]) || [],\n };\n })\n\n return response;\n },\n signin(\n {\n state,\n commit,\n dispatch,\n }: { state: AuthState; commit: Commit; dispatch: Dispatch },\n payload\n ): Promise {\n if (state.authHandle) {\n return state.authHandle;\n }\n\n const authCall = Vue.axios\n .post(\"/auth/Signin\", payload)\n .then((response) => {\n commit(\"setData\", response.data);\n saveState({ serverData: response.data });\n\n // call all the lists that need to be refreshed\n // on signin here\n dispatch(\"appParams/refreshAppParams\", undefined, { root: true });\n dispatch(\"globalFilters/refreshFilter\", undefined, { root: true });\n dispatch(\"financial/refreshModel\", undefined, { root: true });\n dispatch(\"reports/refreshAccomodationUnitTypes\", undefined, { root: true });\n\n return { isSignedIn: true, errors: [] };\n })\n .catch((errors) => {\n commit(\"setData\", undefined);\n saveState({ serverData: undefined });\n return {\n isSignedIn: false,\n errors: (errors.data.brokenRules as BrokenRule[]) || [],\n };\n })\n .finally(() => commit(\"setAuthHandle\", undefined));\n\n commit(\"setAuthHandle\", authCall);\n\n return authCall;\n },\n refresh({\n state,\n dispatch,\n }: { state: AuthState; dispatch: Dispatch }, refreshGlobalFilters = true): Promise {\n if (!state.claims) {\n return Promise.resolve({ isSignedIn: false, errors: [] });\n }\n\n return dispatch(\"refreshToTenant\", { tenantId: +state.claims.tid, refreshGlobalFilters: refreshGlobalFilters });\n },\n refreshToTenant(\n {\n state,\n commit,\n dispatch,\n }: { state: AuthState; commit: Commit; dispatch: Dispatch },\n { tenantId, refreshGlobalFilters = true }\n ): Promise {\n if (!state.serverData) {\n return Promise.resolve({ isSignedIn: false, errors: [] });\n }\n\n if (state.authHandle) {\n return state.authHandle;\n }\n\n let currentTenantId: number | null = null;\n if (state.claims) {\n currentTenantId = +state.claims.tid;\n }\n\n const authCall = Vue.axios\n .post(\"/auth/Refresh\", {\n refreshToken: state.serverData.refreshToken,\n preferredTenantId: tenantId,\n })\n .then(({ data }: { data: AuthResponse }) => {\n commit(\"setData\", data);\n saveState({ serverData: data });\n\n // call all the lists that need to be refreshed\n // on tenant change here\n dispatch(\"appParams/refreshAppParams\", undefined, { root: true });\n dispatch(\"reports/refreshAccomodationUnitTypes\", undefined, { root: true });\n\n if (refreshGlobalFilters || currentTenantId != tenantId) {\n dispatch(\"globalFilters/refreshFilter\", undefined, { root: true });\n }\n\n return { isSignedIn: true, errors: [] };\n })\n .catch(({ data: { brokenRules } }) => {\n return {\n isSignedIn: false,\n errors: (brokenRules as BrokenRule[]) || [],\n };\n })\n .finally(() => commit(\"setAuthHandle\", undefined));\n\n commit(\"setAuthHandle\", authCall);\n\n return authCall;\n },\n};\n\nconst mutations: MutationTree = {\n setStoredResolved: (state: AuthState) => {\n if (state.storedUserResolvedDefferedCB) {\n state.storedUserResolvedDefferedCB();\n }\n },\n setData: (state: AuthState, payload?: AuthResponse) => {\n if (!payload) {\n state.serverData = {\n accessToken: \"\",\n refreshToken: \"\",\n availableTenants: [],\n };\n state.claims = undefined;\n state.isSignedIn = false;\n } else {\n state.serverData = { ...state.serverData, ...payload };\n state.claims = tryExtractClaims(payload);\n state.isSignedIn = (state.claims?.exp || 0) * 1000 > Date.now();\n }\n },\n setAuthHandle: (state: AuthState, payload?: Promise) => {\n state.authHandle = payload;\n },\n};\n\nexport const AuthPlugin = (store: Store) => {\n const loaded = loadState();\n if (loaded) {\n store.commit(\"auth/setData\", loaded);\n\n setTimeout(() => {\n store\n .dispatch(\"auth/refresh\")\n .then(() => store.commit(\"auth/setStoredResolved\"));\n }, 0);\n } else {\n store.commit(\"auth/setStoredResolved\");\n }\n\n async function syncAuthState(ev: StorageEvent): Promise {\n // when tenant is changed in another tab/window\n if (ev.key == storageKey) {\n const loaded = loadState();\n\n const oldTenantId = state.claims?.tid ?? 0;\n store.commit('auth/setData', loaded);\n const tenantId = state.claims?.tid ?? 0;\n const userId = state.claims?.sid ?? 0;\n\n if ((ev.oldValue && !ev.newValue) || (oldTenantId !== tenantId)) {\n // reset vuex store state\n store.commit(\"appParams/reset\");\n store.commit(\"calendar/reset\");\n store.commit(\"codebooks/reset\");\n store.commit(\"contingent/reset\");\n store.commit(\"documents/reset\");\n store.commit(\"financial/reset\");\n store.commit(\"reports/reset\");\n }\n\n if (ev.oldValue && !ev.newValue) {\n router.push({ name: \"Signin\" });\n return;\n }\n\n if (oldTenantId !== tenantId) {\n store.dispatch(\"appParams/refreshAppParams\");\n store.dispatch(\"reports/refreshAccomodationUnitTypes\");\n\n const promises = [];\n promises.push(store.dispatch(\"globalFilters/refreshFilter\"));\n promises.push(store.dispatch(\"financial/refreshModel\"));\n promises.push(store.dispatch(\"businessUnit/refreshBusinessUnits\"));\n promises.push(store.dispatch(\"cashRegister/refreshCashRegisters\"));\n await Promise.all(promises);\n \n await store.dispatch(\"businessUnit/setBusinessUnitFromStorage\", {\n tenantId,\n userId,\n });\n \n await store.dispatch(\"cashRegister/setCashRegisterFromStorage\", {\n tenantId,\n userId,\n });\n\n if (router.currentRoute.path != \"/dashboard\") {\n await router.push({ path: \"/dashboard\" }).catch((err) => {\n //ignore vuex err regarding navigating to the page they are already on\n if (err.name != \"NavigationDuplicated\") {\n console.error(err);\n }\n });\n }\n }\n }\n\n // when business unit is changed in another tab/window\n if (ev.key == businessUnitStorageKey) {\n const tenantId = state.claims?.tid ?? 0;\n const userId = state.claims?.sid ?? 0;\n await store.dispatch(\"businessUnit/setBusinessUnitFromStorage\", {\n tenantId,\n userId,\n });\n }\n \n // when cash register is changed in another tab/window\n if (ev.key == cashRegisterStorageKey) {\n const tenantId = state.claims?.tid ?? 0;\n const userId = state.claims?.sid ?? 0;\n await store.dispatch(\"cashRegister/setCashRegisterFromStorage\", {\n tenantId,\n userId,\n });\n }\n \n //globalfilter change\n if (ev.key?.includes(\"_gfilter\")) {\n const promises = [];\n promises.push(store.dispatch(\"globalFilters/refreshFilter\"));\n Promise.all(promises);\n }\n }\n\n addEventListener(\"storage\", syncAuthState);\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport i18n, { supportedLanguages, defaultLanguage } from \"@/plugins/i18n\";\nimport { GetterTree, ActionTree, MutationTree } from \"vuex\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { ListModel } from \"@/shared/models/listModel\";\n\nconst savedDataString = localStorage.getItem('app.language');\nconst savedData = savedDataString\n ? JSON.parse(savedDataString) as { language: string | null; textResource: ({ [key: string]: string } | null) }\n : { language: i18n.locale, textResource: {} as { [key: string]: string } };\n\nconst locale = savedData.language\n || navigator.languages.find(x => supportedLanguages.some(y => y === x))\n || i18n.locale;\ni18n.setLocaleMessage(locale, savedData.textResource || {});\ni18n.locale = locale;\n\nconst state = {\n inited: false,\n languages: [] as LanguageView[]\n};\n\nconst getters: GetterTree = {\n inited: (s) => s.inited,\n language: () => i18n.locale,\n supportedLanguages: () => {\n return (state.languages?.map(e => {\n const supportedLanguage = supportedLanguages.find(sp => sp.split('-')[0] === e.languageCode)\n return {\n ...e,\n cultureCode: supportedLanguage ?? \"\"\n } as LanguageView\n }) ?? []).filter(e => e.cultureCode)\n }\n};\n\nconst actions: ActionTree = {\n async getTextResource({ dispatch }): Promise<{ [key: string]: string }> {\n const tr = Object.keys(i18n.getLocaleMessage(i18n.locale));\n return tr.length > 0\n ? Promise.resolve(tr)\n : await dispatch('setLanguage', i18n.fallbackLocale);\n },\n async setLanguage({ commit }, language: string | null): Promise<{ [key: string]: string }> {\n if (language) {\n return Vue.axios\n .get<{ [key: string]: string }>(`system/GetTextResource?culture=${language}`)\n .then(x => {\n commit('setLanguage', { language, textResource: x.data });\n return x.data;\n })\n } else {\n commit('setLanguage', { language: null, textResource: null });\n return Promise.resolve({});\n }\n },\n refreshLanguages({ commit }) {\n Vue.axios.get>(\"codebooks/languages\").then((res) => {\n commit(\"setLanguages\", res.data.result);\n });\n }\n};\nconst mutations: MutationTree = {\n setLanguage: (state, payload: { language: string | null; textResource: { [key: string]: string } | null }) => {\n if (payload.language) {\n localStorage.setItem('app.language', JSON.stringify(payload));\n document.cookie = `.AspNetCore.Culture=${payload.language}; path=/`\n i18n.mergeLocaleMessage(payload.language, payload.textResource || {});\n i18n.locale = payload.language;\n } else {\n localStorage.removeItem('app.language');\n document.cookie = `.AspNetCore.Culture=${defaultLanguage}; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`\n }\n state.inited = true;\n },\n setLanguages: (state, value: LanguageView[]) => {\n state.languages = value.slice();\n }\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations\n};\n","import { GetterTree, ActionTree, MutationTree } from \"vuex\";\nimport { ListModel } from \"../../shared/models/listModel\";\nimport Vue from \"vue\";\n\nconst initialState = {\n inited: false,\n properties: [] as GlobalFilterProperty[],\n filteredProperties: [] as GlobalFilterProperty[],\n showDeletedProperties: false\n};\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n inited: (state) => state.inited,\n properties: (state) => state.inited ? state.properties : [],\n filteredProperties: (state) => state.inited ? state.filteredProperties : [],\n showDeletedProperties: (state) => state.inited ? state.showDeletedProperties : false\n};\nconst actions: ActionTree = {\n refreshFilter({ commit, rootGetters, dispatch, state }, replaceCurrent = true) {\n const utid = rootGetters[\"auth/claims\"]?.utid;\n\n const currentCount = state.properties.length;\n Vue.axios.get>(\"/globalFilters/GetPropertiesForGlobalFilter\", {\n params: {\n $count: true,\n $skip: replaceCurrent ? 0 : currentCount,\n $orderby: \"propertyId\",\n }\n }).then(res => {\n if (replaceCurrent) {\n commit(\"setProperties\", res.data.result);\n }\n else {\n commit(\"addProperties\", res.data.result);\n }\n\n if (res.data.count && state.properties.length < res.data.count) {\n dispatch(\"refreshFilter\", false);\n }\n else {\n Vue.axios.get(\"/globalFilters/GetDbSavedPropertiesForGlobalFilter\")\n .then((dbData) => {\n const gfilter = JSON.parse(localStorage.getItem(`pms.utid_${utid}_gfilter`) || \"{}\");\n const propertiesIds = gfilter.propertiesIds;\n let selected: GlobalFilterProperty[] = [];\n\n let showDeletedProperties = gfilter.showDeletedProperties ?? dbData.data.showDeletedProperties;\n if (propertiesIds && propertiesIds.length > 0) {\n selected = state.properties.filter(e => propertiesIds.indexOf(e.propertyId) != -1)\n } \n else if (dbData.data.propertyGlobalFilter && dbData.data.propertyGlobalFilter.length > 0) {\n selected = state.properties.filter(e => dbData.data.propertyGlobalFilter.indexOf(e.propertyId) != -1);\n }\n else {\n selected = state.properties;\n showDeletedProperties = false;\n }\n\n if (!showDeletedProperties){\n selected = selected.filter(x => x.status);\n }\n\n const param = { propertiesIds: selected.map(e => e.propertyId), showDeletedProperties: showDeletedProperties };\n\n Vue.axios.post(\"/globalFilters/SetGlobalPropertiesFilter\", param).then(() => {\n commit(\"setFilter\", selected);\n commit(\"setShowDeletedProperties\", showDeletedProperties);\n localStorage.setItem(`pms.utid_${utid}_gfilter`, JSON.stringify(param));\n });\n }); \n }\n });\n }\n};\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setProperties: (state, value) => {\n state.properties = value.slice();\n },\n addProperties: (state, value) => {\n state.properties.push(...value);\n },\n setFilter: (state, value) => {\n state.filteredProperties = value.slice();\n state.inited = true;\n },\n setShowDeletedProperties: (state, value) => {\n state.showDeletedProperties = value;\n }\n};\n\nexport interface UnitLevelOwners {\n id: number;\n name: string;\n propertyId: number;\n isOwnerEligibleForIssuingOwnersInvoices: boolean;\n}\n\nexport interface GlobalFilterProperty {\n propertyId: number;\n name: string;\n propertyType: string;\n shortName: string;\n address: string;\n postalCodeAndCity: string;\n ownerId?: number;\n ownerName: string;\n status: boolean;\n isOwnerEligibleForIssuingOwnersInvoices: boolean;\n unitLevelOwners: UnitLevelOwners[];\n}\n\nexport interface GlobalFilterDbSavedSettings {\n propertyGlobalFilter: number[];\n showDeletedProperties: boolean;\n}\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations\n};","import Vue from \"vue\";\nimport { Country } from \"@/shared/models/country\";\nimport { Category } from \"@/shared/models/category\";\nimport { GetterTree, ActionTree, MutationTree } from \"vuex\";\nimport { ListModel } from \"../../shared/models/listModel\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { PropertyType } from \"@/shared/models/propertyType\";\nimport { PricingModel } from \"@/shared/models/pricingModel\";\nimport { AmenityGroup, AmenityView } from \"@/shared/models/amenities\";\nimport { Currency } from '@/shared/models/currency';\nimport { TaxRateView } from '@/shared/models/taxRates';\nimport { PriceCalculationMethodView } from '@/shared/models/priceCalculationMethods';\nimport { PoiTypeView } from '@/shared/models/poiType';\nimport { LanguageView } from '@/shared/models/languages';\nimport { BedType } from '@/shared/models/bedType';\nimport { CancelationPolicy } from '@/shared/models/cancelationPolicy';\nimport { PrepaymentPolicy } from '@/shared/models/prepaymentPolicy';\nimport { RoomType } from '@/shared/models/roomType';\nimport { PhotoTag } from \"@/shared/models/photoTag\";\nimport { DistributionChannelType } from \"@/shared/models/distributionChannelType\";\nimport { Ota } from \"@/shared/models/ota\";\nimport { ReservationStatus } from '@/shared/models/reservationStatus';\nimport { ReservationBillingStatus } from '@/shared/models/reservationStatus';\nimport { PaymentMean } from '@/shared/models/paymentMean';\nimport { FinancialDocumentType } from '@/shared/models/financialDocumentType';\nimport { FinancialDocumentStatus } from '@/shared/models/financialDocumentStatus';\nimport { UnitOfMeasureView } from \"@/shared/models/unitOfMeasure\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { CityTaxCategory } from \"@/shared/models/cityTaxCategory\";\nimport { ArrivalOrganizationType } from \"@/shared/models/arrivalOrganizationType\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport { OwnerPricingModel } from \"@/shared/models/ownerPricingModel\";\nimport { MessageSourceType } from \"@/shared/models/messageSourceType\";\nimport { NotificationTemplateAttachment } from \"@/shared/models/notificationTemplateAttachment\";\nimport { NotificationTemplateRecipient } from \"@/shared/models/notificationTemplateRecipient\";\nimport { TemplateVariable } from \"@/components/messages/templates/types\";\nimport { NotificationSchedulesOffset } from \"@/shared/models/notificationSchedulesOffset\";\nimport { NotificationSchedulesTriggerDate } from \"@/shared/models/notificationSchedulesTriggerDate\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport { AgencyWorkModel } from \"@/shared/models/agencyWorkModel\";\nimport { VATCategoryForPrepayments } from \"@/shared/models/vatCategoryForPrepayments\";\nimport { DemandChangingEventStatus } from \"@/shared/models/demandChangingEvent\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { ArrivalReason } from \"@/shared/models/arrivalReason\";\nimport { GuestReviewStatus } from \"@/shared/models/guestReview\";\nimport { AvailabilityChangelogEventType } from \"@/shared/models/availabilityChangelogEventType\";\nimport { RatePlansPromoCodeApplicationMethod } from \"@/shared/models/ratePlansPromoCodeApplicationMethod\"\nimport { TransactionType } from \"@/shared/models/transactionType\"\nimport { TransactionDescription } from \"@/shared/models/transactionDescriptionCodebooks\"\nimport { EVisitorFacilityStatus } from \"@/shared/models/eVisitorFacilityStatus\";\n\nconst initialState = {\n arrivalOrganizationTypes: [] as ArrivalOrganizationType[],\n cityTaxCategories: [] as CityTaxCategory[],\n countries: [] as Country[],\n languages: [] as LanguageView[],\n categories: [] as Category[],\n currencies: [] as Currency[],\n taxRates: [] as TaxRateView[],\n priceCalculationMethods: [] as PriceCalculationMethodView[],\n cardTypes: [] as CardType[],\n poiTypes: [] as PoiTypeView[],\n amenities: [] as AmenityView[],\n amenityGroups: [] as AmenityGroup[],\n propertyTypes: [] as PropertyType[],\n pricingModels: [] as PricingModel[],\n bedTypes: [] as BedType[],\n cancelationPolicies: [] as CancelationPolicy[],\n prepaymentPolicies: [] as PrepaymentPolicy[],\n roomTypes: [] as RoomType[],\n photoTags: [] as PhotoTag[],\n distributionChannelTypes: [] as DistributionChannelType[],\n otas: [] as Ota[],\n salesChannels: [] as SalesChannelView[],\n reservationStatuses: [] as ReservationStatus[],\n paymentMeans: [] as PaymentMean[],\n financialDocumentTypes: [] as FinancialDocumentType[],\n financialDocumentStatuses: [] as FinancialDocumentStatus[],\n identificationDocumentTypes: [] as IdentificationDocumentType[],\n ownerPricingModels: [] as OwnerPricingModel[],\n unitsOfMeasure: [\n { id: 1, name: \"kom\", textResourceKey: \"t.UnitsOfMeasure.pcs\" },\n { id: 2, name: \"kpl\", textResourceKey: \"t.UnitsOfMeasure.cpl\" },\n { id: 3, name: \"usluga\", textResourceKey: \"t.UnitsOfMeasure.service\" },\n { id: 4, name: \"sat\", textResourceKey: \"t.UnitsOfMeasure.hour\" },\n { id: 5, name: \"dan\", textResourceKey: \"t.UnitsOfMeasure.day\" },\n { id: 6, name: \"m2\", textResourceKey: \"t.UnitsOfMeasure.m2\" },\n { id: 7, name: \"set\", textResourceKey: \"t.UnitsOfMeasure.set\" },\n ] as UnitOfMeasureView[], // this doesn't need to be loaded from server...\n messageSourceTypes: [] as MessageSourceType[],\n notificationTemplateAttachments: [] as NotificationTemplateAttachment[],\n notificationTemplateRecipients: [] as NotificationTemplateRecipient[],\n notificationTemplateVariables: [] as TemplateVariable[],\n notificationSchedulesOffsets: [] as NotificationSchedulesOffset[],\n notificationSchedulesTriggerDates: [] as NotificationSchedulesTriggerDate[],\n accomodationUnitStatuses: [] as AccomodationUnitStatus[],\n agencyWorkModels: [] as AgencyWorkModel[],\n vatCategoriesForPrepayments: [] as VATCategoryForPrepayments[],\n demandChangingEventStatus: [] as DemandChangingEventStatus[],\n serviceTypes: [] as ServiceType[],\n arrivalReasons: [] as ArrivalReason[],\n guestReviewStatuses: [] as GuestReviewStatus[],\n availabilityChangelogEventTypes: [] as AvailabilityChangelogEventType[],\n ratePlansPromoCodeApplicationMethods: [] as RatePlansPromoCodeApplicationMethod[],\n transactionTypes: [] as TransactionType[],\n transactionDescriptions: [] as TransactionDescription[],\n reservationBillingStatuses: [] as ReservationBillingStatus[],\n eVisitorFacilityStatuses: [] as EVisitorFacilityStatus[]\n};\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n arrivalOrganizationTypes: (state) => state.arrivalOrganizationTypes,\n cityTaxCategories: (state) => state.cityTaxCategories,\n countries: (state) => state.countries,\n languages: (state) => state.languages,\n categories: (state) => state.categories,\n currencies: (state) => state.currencies,\n taxRates: (state) => state.taxRates,\n priceCalculationMethods: (state) => state.priceCalculationMethods,\n cardTypes: (state) => state.cardTypes,\n poiTypes: (state) => state.poiTypes,\n propertyTypes: (state) => state.propertyTypes,\n pricingModels: (state) => state.pricingModels,\n bedTypes: (state) => state.bedTypes,\n cancelationPolicies: (state) => state.cancelationPolicies,\n prepaymentPolicies: (state) => state.prepaymentPolicies,\n roomTypes: (state) => state.roomTypes,\n amenities: (state) =>\n state.amenities.map((a) => ({\n ...a,\n amenityGroupName: state.amenityGroups.find((g) => g.id == a.amenityGroupId)?.textResourceKey,\n amenitySortOrder: state.amenityGroups.find((g) => g.id == a.amenityGroupId)?.sortOrder\n })),\n groupedAmenities: (state) =>\n state.amenityGroups.map((g) => ({\n ...g,\n amenities: state.amenities.filter((a) => a.amenityGroupId === g.id),\n })),\n photoTags: (state) => state.photoTags,\n distributionChannelTypes: (state) => state.distributionChannelTypes,\n otas: (state) => state.otas.filter(x => x.status),\n otasWithInactive: (state) => state.otas,\n salesChannels: (state) => state.salesChannels.filter(x => x.status),\n salesChannelsWithInactive: (state) => state.salesChannels,\n reservationStatuses: (state) => state.reservationStatuses,\n paymentMeans: (state) => state.paymentMeans,\n financialDocumentTypes: (state) => state.financialDocumentTypes,\n financialDocumentStatuses: (state) => state.financialDocumentStatuses,\n identificationDocumentTypes: (state) => state.identificationDocumentTypes,\n unitsOfMeasure: (state) => state.unitsOfMeasure,\n ownerPricingModels: (state) => state.ownerPricingModels,\n messageSourceTypes: (state) => state.messageSourceTypes,\n notificationTemplateAttachments: (state) => state.notificationTemplateAttachments,\n notificationTemplateRecipients: (state) => state.notificationTemplateRecipients,\n notificationTemplateVariables: (state) => state.notificationTemplateVariables,\n notificationSchedulesOffsets: (state) => state.notificationSchedulesOffsets,\n notificationSchedulesTriggerDates: (state) => state.notificationSchedulesTriggerDates,\n accomodationUnitStatuses: (state) => state.accomodationUnitStatuses,\n agencyWorkModels: (state) => state.agencyWorkModels,\n vatCategoriesForPrepayments: (state) => state.vatCategoriesForPrepayments,\n demandChangingEventStatus: (state) => state.demandChangingEventStatus,\n serviceTypes: (state) => state.serviceTypes,\n arrivalReasons: (state) => state.arrivalReasons,\n guestReviewStatuses: (state) => state.guestReviewStatuses,\n availabilityChangelogEventTypes: (state) => state.availabilityChangelogEventTypes,\n ratePlansPromoCodeApplicationMethods: (state) => state.ratePlansPromoCodeApplicationMethods,\n transactionTypes: (state) => state.transactionTypes,\n transactionDescriptions: (state) => state.transactionDescriptions,\n reservationBillingStatuses: (state) => state.reservationBillingStatuses,\n eVisitorFacilityStatuses: (state) => state.eVisitorFacilityStatuses\n};\n\nconst actions: ActionTree = {\n refresharrivalOrganizationTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/arrivalOrganizationTypes\")\n .then((res) => {\n commit(\"setarrivalOrganizationTypes\", res.data.result);\n });\n },\n refreshCityTaxCategories({ commit }) {\n return Vue.axios\n .get>(\"codebooks/cityTaxCategories\")\n .then((res) => {\n commit(\"setCityTaxCategories\", res.data.result);\n });\n },\n refreshCountries({ commit }) {\n return Vue.axios\n .get>(\"codebooks/countries\")\n .then((res) => {\n commit(\"setCountries\", res.data.result);\n });\n },\n refreshLanguages({ commit }) {\n return Vue.axios\n .get>(\"codebooks/languages\")\n .then((res) => {\n commit(\"setLanguages\", res.data.result);\n });\n },\n refreshCategories({ commit }) {\n return Vue.axios\n .get>(\"codebooks/propertyCategories\")\n .then((res) => {\n commit(\"setCategories\", res.data.result);\n });\n },\n refreshCurrencies({ commit }) {\n return Vue.axios\n .get>(\"codebooks/currencies\")\n .then((res) => {\n commit(\"setCurrencies\", res.data.result);\n });\n },\n refreshTaxRates({ commit }) {\n return Vue.axios\n .get>(\"codebooks/taxRates\")\n .then((res) => {\n commit(\"setTaxRates\", res.data.result);\n });\n },\n refreshPriceCalculationMethods({ commit }) {\n return Vue.axios\n .get>(\"codebooks/priceCalculationMethods\")\n .then((res) => {\n commit(\"setPriceCalculationMethods\", res.data.result);\n });\n },\n refreshCardTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/cardTypes\")\n .then((res) => {\n commit(\"setCardTypes\", res.data.result);\n });\n },\n refreshPoiTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/poiTypes\", {\n params: {\n $orderby: \"name asc\"\n }\n })\n .then((res) => {\n commit(\"setPoiTypes\", res.data.result);\n });\n },\n refreshAmenitiesAndGroups({ commit }) {\n return Promise.all([\n Vue.axios.get>(\"codebooks/amenities\", {\n params: {\n $top: 1000,\n $orderby: \"name asc\"\n }\n }),\n Vue.axios.get>(\"codebooks/amenityGroups\", {\n params: {\n $top: 1000,\n $orderby: \"name asc\"\n }\n }),\n ]).then((reses) => {\n commit(\"setAmenitiesAndGroups\", {\n amenities: reses[0].data.result,\n groups: reses[1].data.result,\n });\n });\n },\n refreshPropertyTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/propertyTypes\")\n .then((res) => {\n commit(\"setPropertyTypes\", res.data.result);\n });\n },\n refreshPricingModels({ commit }) {\n return Vue.axios\n .get>(\"codebooks/pricingModels\")\n .then((res) => {\n commit(\"setPricingModels\", res.data.result);\n });\n },\n refreshBedTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/bedTypes\")\n .then((res) => {\n commit(\"setBedTypes\", res.data.result);\n });\n },\n refreshCancelationPolicies({ commit }) {\n return Vue.axios\n .get>(\"codebooks/cancelationPolicies\")\n .then((res) => {\n commit(\"setCancelationPolicies\", res.data.result);\n });\n },\n refreshPrepaymentPolicies({ commit }) {\n return Vue.axios\n .get>(\"codebooks/prepaymentPolicies\")\n .then((res) => {\n commit(\"setPrepaymentPolicies\", res.data.result);\n });\n },\n refreshRoomTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/roomTypes\")\n .then((res) => {\n commit(\"setRoomTypes\", res.data.result);\n });\n },\n refreshPhotoTags({ commit }) {\n return Vue.axios\n .get>(\"codebooks/photoTags\", {\n params: {\n $orderby: \"name asc\"\n }\n })\n .then((res) => {\n commit(\"setPhotoTags\", res.data.result);\n });\n },\n refreshDistributionChannelTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/distributionChannelTypes\")\n .then((res) => {\n commit(\"setDistributionChannelTypes\", res.data.result);\n });\n },\n refreshOtas({ commit }) {\n return Vue.axios\n .get>(\"codebooks/otas\", {\n params: {\n $orderby: \"name asc\"\n }\n })\n .then((res) => {\n commit(\"setOtas\", res.data.result);\n });\n },\n refreshSalesChannels({ commit }) {\n return Vue.axios\n .get>(\"codebooks/salesChannels\")\n .then((res) => {\n commit(\"setSalesChannels\", res.data.result);\n });\n },\n refreshReservationStatuses({ commit }) {\n return Vue.axios\n .get>(\"codebooks/reservationStatuses\")\n .then((res) => {\n commit(\"setReservationStatuses\", res.data.result);\n });\n },\n refreshPaymentMeans({ commit }) {\n return Vue.axios\n .get>(\"codebooks/paymentMeans\")\n .then((res) => {\n commit(\"setPaymentMeans\", res.data.result);\n });\n },\n refreshFinancialDocumentTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/financialDocumentTypes\")\n .then((res) => {\n commit(\"setFinancialDocumentTypes\", res.data.result);\n });\n },\n refreshFinancialDocumentStatuses({ commit }) {\n return Vue.axios\n .get>(\"codebooks/financialDocumentStatuses\")\n .then((res) => {\n commit(\"setFinancialDocumentStatuses\", res.data.result);\n });\n },\n refreshIdentificationDocumentTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/identificationDocumentTypes\")\n .then((res) => {\n commit(\"setIdentificationDocumentTypes\", res.data.result);\n });\n },\n refreshOwnerPricingModels({ commit }) {\n return Vue.axios\n .get>(\"codebooks/ownerPricingModels\")\n .then((res) => {\n commit(\"setOwnerPricingModels\", res.data.result);\n });\n },\n refreshMessageSourceTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/messageSourceTypes\")\n .then((res) => {\n commit(\"setMessageSourceTypes\", res.data.result);\n });\n },\n refreshNotificationTemplateAttachments({ commit }) {\n return Vue.axios\n .get>(\"codebooks/notificationTemplateAttachments\")\n .then((res) => {\n commit(\"setNotificationTemplateAttachments\", res.data.result);\n });\n },\n refreshNotificationTemplateRecipients({ commit }) {\n return Vue.axios\n .get>(\"codebooks/notificationTemplateRecipients\")\n .then((res) => {\n commit(\"setNotificationTemplateRecipients\", res.data.result);\n });\n },\n refreshNotificationTemplateVariables({ commit }) {\n return Vue.axios\n .get>(\"notificationTemplates/getVariables\")\n .then((res) => {\n commit(\"setNotificationTemplateVariables\", res.data.result);\n });\n },\n refreshNotificationSchedulesOffsets({ commit }) {\n return Vue.axios\n .get>(\"codebooks/notificationSchedulesOffsets\")\n .then((res) => {\n commit(\"setNotificationSchedulesOffsets\", res.data.result);\n });\n },\n refreshNotificationSchedulesTriggerDates({ commit }) {\n return Vue.axios\n .get>(\"codebooks/notificationSchedulesTriggerDates\")\n .then((res) => {\n commit(\"setNotificationSchedulesTriggerDates\", res.data.result);\n });\n },\n refreshAccomodationUnitStatuses({ commit }) {\n return Vue.axios\n .get>(\"codebooks/accomodationUnitStatuses\")\n .then((res) => {\n commit(\"setAccomodationUnitStatuses\", res.data.result);\n });\n },\n refreshAgencyWorkModels({ commit }) {\n return Vue.axios\n .get>(\"codebooks/agencyWorkModels\")\n .then((res) => {\n commit(\"setAgencyWorkModels\", res.data.result);\n });\n },\n refreshVATCategoriesForPrepayments({ commit }) {\n return Vue.axios\n .get>(\"codebooks/vatCategoriesForPrepayments\")\n .then((res) => {\n commit(\"setVATCategoriesForPrepayments\", res.data.result)\n });\n },\n refreshDemandChangingEventStatus({ commit }) {\n return Vue.axios\n .get>(\"codebooks/demandChangingEventStatus\")\n .then((res) => {\n commit(\"setDemandChangingEventStatus\", res.data.result)\n });\n },\n refreshServiceTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/serviceTypes\")\n .then((res) => {\n commit(\"setServiceTypes\", res.data.result)\n });\n },\n refreshArrivalReasons({ commit }) {\n return Vue.axios\n .get>(\"codebooks/arrivalReasons\")\n .then((res) => {\n commit(\"setArrivalReasons\", res.data.result)\n });\n },\n refreshGuestReviewStatuses({ commit }) {\n return Vue.axios\n .get>(\"codebooks/guestReviewStatuses\")\n .then((res) => {\n commit(\"setGuestReviewStatuses\", res.data.result);\n });\n },\n refreshAvailabilityChangelogEventTypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/availabilityChangelogEventTypes\")\n .then((res) => {\n commit(\"setAvailabilityChangelogEventTypes\", res.data.result);\n });\n },\n refreshRatePlansPromoCodeApplicationMethods({ commit }) {\n return Vue.axios.get>(\"codebooks/ratePlansPromoCodeApplicationMethods\")\n .then((res) => {\n commit(\"setRatePlansPromoCodeApplicationMethods\", res.data.result);\n })\n },\n refreshTransactiontypes({ commit }) {\n return Vue.axios\n .get>(\"codebooks/transactionTypes\")\n .then((res) => {\n commit(\"setTransactionTypes\", res.data.result);\n });\n },\n refreshTransactiontypeDescriptions({ commit }) {\n return Vue.axios\n .get>(\"codebooks/transactionDescriptions\")\n .then((res) => {\n commit(\"setTransactionDescriptions\", res.data.result);\n });\n },\n refreshReservationBillingStatuses({ commit }) {\n return Vue.axios\n .get>(\"codebooks/reservationBillingStatuses\")\n .then((res) => {\n commit(\"setReservationBillingStatuses\", res.data.result);\n });\n },\n refreshEVisitorFacilityStatuses({ commit }) {\n return Vue.axios\n .get>(\"codebooks/eVisitorFacilityStatuses\")\n .then((res) => {\n commit(\"setEVisitorFacilityStatuses\", res.data.result);\n })\n }\n};\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setarrivalOrganizationTypes: (state, value) => {\n state.arrivalOrganizationTypes = value.slice();\n },\n setCityTaxCategories: (state, value) => {\n state.cityTaxCategories = value.slice();\n },\n setCountries: (state, value) => {\n state.countries = value.slice();\n },\n setLanguages: (state, value) => {\n state.languages = value.slice();\n },\n setCategories: (state, value) => {\n state.categories = value.slice();\n },\n setCurrencies: (state, value) => {\n state.currencies = value.slice();\n },\n setTaxRates: (state, value) => {\n state.taxRates = value.slice();\n },\n setPriceCalculationMethods: (state, value) => {\n state.priceCalculationMethods = value.slice();\n },\n setCardTypes: (state, value) => {\n state.cardTypes = value.slice();\n },\n setPoiTypes: (state, value) => {\n state.poiTypes = value.slice();\n },\n setAmenitiesAndGroups: (\n state,\n value: { amenities: AmenityView[]; groups: AmenityGroup[] }\n ) => {\n state.amenities = value.amenities.slice();\n state.amenityGroups = value.groups.slice();\n },\n setPropertyTypes: (state, value) => {\n state.propertyTypes = value.slice();\n },\n setPricingModels: (state, value) => {\n state.pricingModels = value.slice();\n },\n setBedTypes: (state, value) => {\n state.bedTypes = value.slice();\n },\n setCancelationPolicies: (state, value) => {\n state.cancelationPolicies = value.slice();\n },\n setPrepaymentPolicies: (state, value) => {\n state.prepaymentPolicies = value.slice();\n },\n setRoomTypes: (state, value) => {\n state.roomTypes = value.slice();\n },\n setPhotoTags: (state, value) => {\n state.photoTags = value.slice();\n },\n setDistributionChannelTypes: (state, value) => {\n state.distributionChannelTypes = value.slice();\n },\n setOtas: (state, value) => {\n state.otas = value.slice();\n },\n setSalesChannels: (state, value) => {\n state.salesChannels = value.slice();\n },\n setReservationStatuses: (state, value) => {\n state.reservationStatuses = value.slice();\n },\n setPaymentMeans: (state, value) => {\n state.paymentMeans = value.slice();\n },\n setFinancialDocumentTypes: (state, value) => {\n state.financialDocumentTypes = value.slice();\n },\n setFinancialDocumentStatuses: (state, value) => {\n state.financialDocumentStatuses = value.slice();\n },\n setOwnerPricingModels: (state, value) => {\n state.ownerPricingModels = value.slice();\n },\n setIdentificationDocumentTypes: (state, value) => {\n state.identificationDocumentTypes = value.slice();\n },\n setMessageSourceTypes: (state, value) => {\n state.messageSourceTypes = value.slice();\n },\n setNotificationTemplateAttachments: (state, value) => {\n state.notificationTemplateAttachments = value.slice();\n },\n setNotificationTemplateRecipients: (state, value) => {\n state.notificationTemplateRecipients = value.slice();\n },\n setNotificationTemplateVariables: (state, value) => {\n state.notificationTemplateVariables = value.slice();\n },\n setNotificationSchedulesOffsets: (state, value) => {\n state.notificationSchedulesOffsets = value.slice();\n },\n setNotificationSchedulesTriggerDates: (state, value) => {\n state.notificationSchedulesTriggerDates = value.slice();\n },\n setAccomodationUnitStatuses: (state, value) => {\n state.accomodationUnitStatuses = value.slice();\n },\n setAgencyWorkModels: (state, value) => {\n state.agencyWorkModels = value.slice();\n },\n setVATCategoriesForPrepayments: (state, value) => {\n state.vatCategoriesForPrepayments = value.slice();\n },\n setDemandChangingEventStatus: (state, value) => {\n state.demandChangingEventStatus = value.slice();\n },\n setServiceTypes: (state, value) => {\n state.serviceTypes = value.slice();\n },\n setArrivalReasons: (state, value) => {\n state.arrivalReasons = value.slice();\n },\n setGuestReviewStatuses: (state, value) => {\n state.guestReviewStatuses = value.slice();\n },\n setAvailabilityChangelogEventTypes: (state, value) => {\n state.availabilityChangelogEventTypes = value.slice();\n },\n setRatePlansPromoCodeApplicationMethods: (state, value) => {\n state.ratePlansPromoCodeApplicationMethods = value.slice();\n },\n setTransactionTypes: (state, value) => {\n state.transactionTypes = value.slice();\n },\n setTransactionDescriptions: (state, value) => {\n state.transactionDescriptions = value.slice();\n },\n setReservationBillingStatuses: (state, value) => {\n state.reservationBillingStatuses = value.slice();\n },\n setEVisitorFacilityStatuses: (state, value) => {\n state.eVisitorFacilityStatuses = value.slice();\n }\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","import { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport { GetterTree, ActionTree, MutationTree } from \"vuex\";\nimport { isNumber } from \"lodash/fp\";\nimport Vue from \"vue\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { TenantCustomerModel } from \"@/shared/models/tenantCustomer\";\nimport { EVisitorIntegrationEnum, EVisitorIntegrationNameEnum } from \"@/shared/models/enums.type\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\nexport interface UpdateAppParamsModel {\n params: UpdateAppParamModel[];\n}\n\nexport interface UpdateAppParamModel {\n appParamId: number;\n value: string;\n}\n\nconst initialState = {\n appParams: [] as AppParam[],\n tenantPaysVat: false,\n tenantUsesInputPrice: false,\n tenantAutoEmailsFrom: \"\",\n tenantIsFiscalizationObligor: true,\n tenantPaymentGatewayIntegrationId: 0,\n tenantEVisitorIntegrationId: 0,\n tenantWhatsAppIntegrationEnabled: false,\n typeId: null,\n tenantCustomer: null as TenantCustomerModel | null,\n countryId: null,\n};\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n appParams: (state) => state.appParams,\n workingCurrency: (state, getters, rootState, rootGetters) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.TenantWorkingCurrency\n )?.value;\n if (isNumber(val)) {\n const currencies = rootGetters[\"codebooks/currencies\"] as Currency[];\n return currencies.find((x) => x.id === val);\n }\n },\n formalCurrency: (state, getters, rootState, rootGetters) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.TenantFormalCurrency\n )?.value;\n if (isNumber(val)) {\n const currencies = rootGetters[\"codebooks/currencies\"] as Currency[];\n return currencies.find((x) => x.id === val);\n }\n },\n multiCurrencyInvoices: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.EnableMultiCurrencyInvoices\n )?.value;\n return val;\n },\n tenantPaysVat: (state) => state.tenantPaysVat,\n tenantIsFiscalizationObligor: (state) => state.tenantIsFiscalizationObligor,\n tenantUsesInputPrice: (state) => state.tenantUsesInputPrice,\n tenantAutoEmailsFrom: (state) => state.tenantAutoEmailsFrom,\n reservationFormBlankPriceOption: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.ReservationFormBlankPriceOption\n )?.value;\n return val;\n },\n reservationShowRatePlanPopup: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.ReservationShowRatePlanPopup\n )?.value;\n return val;\n },\n showOwnerPriceOffset: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.ShowOwnerPriceOffset\n )?.value;\n return val;\n },\n reservationShowHolderInfo: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.ReservationShowHolderInfo\n )?.value;\n return val;\n },\n reservationShowGuestInfo: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.ReservationShowGuestInfo\n )?.value;\n return val;\n },\n checkOutOnEVisitorState: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.CheckOutOnEVisitorState\n )?.value;\n return val;\n },\n checkInOnEVisitorState: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.CheckInEVisitorState\n )?.value;\n return val;\n },\n statusToCheckedOutState: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.StatusToCheckedOutState\n )?.value;\n return val;\n },\n statusToCheckedInState: (state) => {\n const val = state.appParams.find(\n (x) => x.id === AppParamsEnum.StatusToCheckedInState\n )?.value;\n return val;\n },\n lineItemDistributionStrategy: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.TenantLineItemDistributionStrategy\n )?.value;\n\n return val;\n },\n ignoreAccomodationTextResource: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.TenantIgnoreDocTypePrefixOnAccommodation\n )?.value;\n\n return val;\n },\n unitRenderTypeLineOne: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.TenantUnitLineRenderLineOne\n )?.value;\n\n return val;\n },\n unitRenderTypeLineTwo: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.TenantUnitLineRenderLineTwo\n )?.value;\n\n return val;\n },\n reservationHideArrivalDeparture: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.ReservationHideArrivalDeparture\n )?.value;\n\n return val;\n },\n reservationHideDeposit: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.ReservationHideDeposit\n )?.value;\n\n return val;\n },\n reservationHideDiscount: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.ReservationHideDiscount\n )?.value;\n\n return val;\n },\n reservationTenantUsesServiceTypes: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.ReservationTenantUsesServiceTypes\n )?.value;\n\n return val;\n },\n reservationEVisitorCollapseExpandHideFacilityInfo: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.ReservationEVisitorCollapseExpandHideFacilityInfo\n )?.value;\n\n return val;\n },\n tenantUsesPropertiesAsBusinessUnits: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.TenantUsesPropertiesAsBusinessUnits\n )?.value;\n\n return val;\n },\n routePrepaymentsForOwnNameAndOtherInvoice: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.RoutePrepaymentsForOwnNameAndOtherInvoice\n )?.value;\n\n return val;\n },\n routeInvoicesForOwnNameAndOtherInvoice: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.RouteInvoicesForOwnNameAndOtherInvoice\n )?.value;\n\n return val;\n },\n calculateWithEVisitorDates: (state) => {\n const val = state.appParams.find(\n x => x.id === AppParamsEnum.ReservationEVisitorCalculateCTWithEVisitorDates\n )?.value;\n\n return val;\n },\n typeId: (state) => state.typeId,\n countryId: (state) => state.countryId,\n showRegistrationFormButton: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ShowRegistrationFormButton)?.value;\n },\n showCopyGuestsButton: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ShowCopyGuestsButton)?.value;\n },\n showAOSPeriodColumn: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ShowAOSPeriodColumn)?.value;\n },\n tenantCustomer: (state) => {\n return state.tenantCustomer;\n },\n tenantGeneratesOwnersInvoices: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantGeneratesOwnersInvoices)?.value;\n },\n tenantGeneratesDeliveryNotes: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantGeneratesDeliveryNotes)?.value;\n },\n tenantUsesOfficialRates: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantUsesOfficialRates)?.value;\n },\n allowOfficialRatesInWorkingCurrency: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.AllowOfficialRatesInWorkingCurrency)?.value;\n },\n officialRatesUseSeasonNames: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.OfficialRatesUseSeasonNames)?.value;\n },\n officialRatesDateFromDefaultsToPlus1Day: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.OfficialRatesDateFromDefaultsToPlus1Day)?.value;\n },\n tenantUsesAvailabilityBlockerCalculations: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantUsesAvailabilityBlockerCalculations)?.value;\n },\n tenantUsesLazyLoadedCalendar: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantUsesLazyLoadedCalendar)?.value;\n },\n disableCustomAddOnServiceLineItems: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.DisableCustomAddOnServiceLineItems)?.value;\n },\n tenantShowAddOnServiceDiscount: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantShowAddOnServiceDiscount)?.value;\n },\n tenantExportsSEPA: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantExportsSEPA)?.value;\n },\n tenantExportsOwnersInvoices: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantExportsOwnersInvoices)?.value;\n },\n tenantExportsAgencyCommissionInvoices: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantExportsAgencyCommissionInvoices)?.value;\n },\n tenantExportsGuestInvoices: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantExportsGuestInvoices)?.value;\n },\n tenantHasAgencyCommissionForPrepayments: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantHasAgencyCommissionForPrepayments)?.value;\n },\n tenantOfficialRateDefaultCurrencyId: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantOfficialRateDefaultCurrency)?.value;\n },\n tenantUsesInstalments: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantUsesInstalments)?.value;\n },\n showUnpaidPrepaymentsModal: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ShowUnpaidPrepaymentsModal)?.value;\n },\n tenantUsesAvailabilityChangelog: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantUsesAvailabilityChangelog)?.value;\n },\n childrenAffectPAXRatePlanSelection: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ChildrenAffectPAXRatePlanSelection)?.value;\n },\n tenantPaymentGatewayIntegrationId: (state) => {\n return state.tenantPaymentGatewayIntegrationId;\n },\n tenantEVisitorIntegration: (state) => {\n let integrationName = \"\";\n switch (state.tenantEVisitorIntegrationId) {\n case EVisitorIntegrationEnum.HR: {\n integrationName = EVisitorIntegrationNameEnum.HR;\n break;\n }\n case EVisitorIntegrationEnum.SL: {\n integrationName = EVisitorIntegrationNameEnum.SL;\n break;\n }\n default: {\n integrationName = EVisitorIntegrationNameEnum.None;\n }\n }\n\n return {\n id: state.tenantEVisitorIntegrationId,\n name: integrationName\n } as EVisitorIntegrationModel;\n },\n enableOwnersPartAOSOwnerInvoices: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.EnableOwnersPartAOSOwnerInvoices)?.value;\n },\n showOwnersReservationOnDashboard: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ShowOwnersReservationOnDashboard)?.value;\n },\n tenantIsAllowedToAsyncBulkGenerateInvoices: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.AsyncBulkInvoiceGeneration)?.value;\n },\n calendarOBLOSCategoriesApplicationAllowed: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.CalendarOBLOSCategoriesApplicationAllowed)?.value;\n },\n calendarRelatedRatesPriceUpdateTypeDefault: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.CalendarRelatedRatesPriceUpdateTypeDefault)?.value;\n },\n calendarRelatedRatesRestrictionsUpdateTypeDefault: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.CalendarRelatedRatesRestrictionsUpdateTypeDefault)?.value;\n },\n businessUnitShowCadastralInfo: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.BusinessUnitShowCadastralInfo)?.value;\n },\n businessUnitShowDates: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.BusinessUnitShowDates)?.value;\n },\n cashRegisterFeatureFlag: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.CashRegisterEnable)?.value;\n },\n automaticRelatedAdvanceInvoiceCancellingDefault: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.AutomaticRelatedAdvanceInvoiceCancellingDefault)?.value;\n },\n tenantCanEditPAXCategories: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantCanEditPAXCategories)?.value;\n },\n tenantAutomaticPAXCategoriesAreIndividual: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantAutomaticPAXCategoriesAreIndividual)?.value;\n },\n tenantCanEditLOSCategories: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantCanEditLOSCategories)?.value;\n },\n tenantOBRsUseRelativePricing: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantOBRsUseRelativePricing)?.value;\n },\n showPAXSuffixInRatePlanName: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantCanEditPAXCategories)?.value ||\n state.appParams.find(x => x.id === AppParamsEnum.TenantAutomaticPAXCategoriesAreIndividual)?.value\n },\n showLOSSuffixInRatePlanName: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantCanEditLOSCategories)?.value\n },\n reservationsGridFiltersByDate: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.ReservationsGridFiltersByDate)?.value\n },\n isCardTypeRequiredForCardPaymentMeans: (state) => {\n return state.appParams.find(x => x.id == AppParamsEnum.CardTypeRequiredForCardPaymentMeans)?.value;\n },\n allow0InputPriceForOfficialRate: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.Allow0InputPriceForOfficialRate)?.value\n },\n asyncRatePlanAvailabiltyUpdateThresholdSize: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.AsyncRatePlanAvailabiltyUpdateThresholdSize)?.value\n },\n tenantUsesAgencyFees: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.TenantUsesAgencyFees)?.value\n },\n automaticallyChangeReservationStatusToConfirmed: (state) => {\n return state.appParams.find(x => x.id === AppParamsEnum.AutomaticallyChangeReservationStatusToConfirmed)?.value\n },\n tenantWhatsAppIntegrationEnabled: (state) => state.tenantWhatsAppIntegrationEnabled,\n};\n\nconst actions: ActionTree = {\n refreshAppParams({ commit }) {\n Vue.axios.get(\"AppParams\").then((res) => {\n commit(\"setAppParams\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantPaysVatParam\").then((res) => {\n commit(\"setTenantPaysVat\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantUsesInputPrice\").then((res) => {\n commit(\"setTenantUsesInputPrice\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantTypeId\").then((res) => {\n commit(\"setTenantTypeId\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantAutoEmailsFrom\").then((res) => {\n commit(\"setTenantAutoEmailsFrom\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantIsFiscalizationObligor\").then((res) => {\n commit(\"setTenantIsFiscalizationObligor\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantCustomer\").then((res) => {\n commit(\"setTenantCustomer\", res.data);\n }).catch(() => {\n commit(\"setTenantCustomer\", null);\n });\n Vue.axios.get(\"AppParams/GetTenantCountryId\").then((res) => {\n commit(\"setTenantCountryId\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantPaymentGatewayIntegration\").then((res) => {\n commit(\"setTenantPaymentGatewayIntegrationId\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantEVisitorIntegration\").then((res) => {\n commit(\"setTenantEVisitorIntegration\", res.data);\n });\n Vue.axios.get(\"AppParams/GetTenantWhatsAppIntegration\").then((res) => {\n commit(\"setTenantWhatsAppIntegrationEnabled\", res.data);\n });\n },\n updateAppParams: async ({ dispatch }, model: UpdateAppParamsModel) => {\n await Vue.axios.put(\"appParams/UpdateParams\", model);\n dispatch(\"refreshAppParams\");\n dispatch(\"financial/refreshModel\", undefined, { root: true });\n },\n};\n\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setAppParams: (state, value) => {\n state.appParams = value.slice();\n },\n setTenantPaysVat: (state, value) => {\n state.tenantPaysVat = value;\n },\n setTenantUsesInputPrice: (state, value) => {\n state.tenantUsesInputPrice = value;\n },\n setTenantTypeId: (state, value) => {\n state.typeId = value;\n },\n setTenantAutoEmailsFrom: (state, value) => {\n state.tenantAutoEmailsFrom = value;\n },\n setTenantIsFiscalizationObligor: (state, value) => {\n state.tenantIsFiscalizationObligor = value;\n },\n setTenantCustomer: (state, value) => {\n state.tenantCustomer = value;\n },\n setTenantCountryId: (state, value) => {\n state.countryId = value;\n },\n setTenantPaymentGatewayIntegrationId: (state, value) => {\n state.tenantPaymentGatewayIntegrationId = value;\n },\n setTenantEVisitorIntegration: (state, value) => {\n state.tenantEVisitorIntegrationId = value;\n },\n setTenantWhatsAppIntegrationEnabled: (state, value) => {\n state.tenantWhatsAppIntegrationEnabled = value;\n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","import { DateTime } from \"luxon\";\nimport { GetterTree, ActionTree, MutationTree, Commit } from \"vuex\";\nimport {\n CalendarBoxConfig,\n CalendarPropertyView,\n CalendarRatePlanAccomodationUnitTypeView,\n CalendarUnitTypeView,\n CalendarUnitView,\n RatePlan,\n ratePlanFields,\n} from \"@/components/calendar/CalendarTypes\";\nimport Vue from \"vue\";\nimport { isArray, isEmpty } from \"lodash\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport * as _ from \"lodash\";\nimport router from \"@/router\";\n\n// #region types\nexport type CalendarNumOfDays = \"week\" | \"two-weeks\" | \"month\" | \"max\";\nexport type CalendarRowHeight = \"small\" | \"standard\" | \"big\";\nexport type ReservationLineOption =\n | \"reservationHolderName\"\n | \"totalPrice\"\n | \"otachannelName\"\n | \"optionExpirationDate\"\n | \"numberOfNights\";\nexport type CalendarColorByOptions = \"status\" | \"salesChannel\";\nexport type CalendarSettings = {\n numOfDays: CalendarNumOfDays;\n rowHeight: CalendarRowHeight;\n showUnits: boolean;\n showRatePlans: boolean;\n autoExpandRatePlans: boolean;\n showOBRatePlans: boolean;\n showRestrictions: boolean;\n showRatePlanFields: string[];\n showListRatePlans: number[];\n userId: number;\n isForAvailabilitySearchCalendar: boolean;\n showInputPrice: boolean;\n tenantId: number;\n reservationColoringBy: CalendarColorByOptions;\n};\n\nexport type BlockedAvailabilitiesModel = {\n propertyId: number;\n calculationInProgress: boolean;\n blockedAvailabilities: BlockedAvailabilityModel[];\n}\n\nexport type BlockedAvailabilityModel = {\n unitTypeId: number;\n //ratePlanId: number;\n date: string;\n ratePlansAccomodationUnitTypeId: number;\n}\n\nexport const defaultSettings = {\n numOfDays: \"month\",\n rowHeight: \"small\",\n showUnits: true,\n showRatePlans: false,\n autoExpandRatePlans: false,\n showOBRatePlans: false,\n showRestrictions: false,\n showRatePlanFields: ratePlanFields.map((x) => x.key),\n showListRatePlans: [],\n userId: 0,\n isForAvailabilitySearchCalendar: false,\n showInputPrice: false,\n tenantId: 0,\n reservationColoringBy: \"status\"\n} as CalendarSettings;\n// #endregion\n\nconst storageKey = \"calendar.settings\";\n\nlet _settings: CalendarSettings[] = [defaultSettings];\nconst saved = localStorage.getItem(storageKey);\nif (saved) {\n try {\n _settings = JSON.parse(saved) as CalendarSettings[];\n } catch {\n localStorage.removeItem(\"calendar.settings\");\n }\n if (isEmpty(_settings) || !isArray(_settings)) {\n localStorage.removeItem(\"calendar.settings\");\n _settings = [defaultSettings];\n }\n}\n\nconst initialState = {\n loading: { hierarchy: false, reservationsAndUnits: false },\n loadingAvailabilityAndReservationsForPropertyIds: [] as number[],\n currentDay: DateTime.local(),\n availabilityTimelineOpenOnClick: false,\n settingsOpen: false,\n calendarNeedsRefresh: false,\n settings: _settings,\n properties: [] as CalendarPropertyView[],\n months: \"\",\n nonOBRatePlans: [] as RatePlan[],\n propertiesWithBlockedDatesCalculationInProgress: [] as number[],\n leftEdgeDay: DateTime.local(),\n rightEdgeDay: DateTime.local(),\n availabilities: [] as any[],\n reservations: [] as any[],\n blockedAvailabilities: [] as BlockedAvailabilityModel[]\n};\n\nlet isBlockedAvailabilitiesCheckRunning = false;\n\nfunction getBlockedAvailabilities(state: typeof initialState, commit: Commit, usesLazyLoadedCalendar: boolean) {\n isBlockedAvailabilitiesCheckRunning = true;\n\n const propertyIds = state.propertiesWithBlockedDatesCalculationInProgress.join(',');\n const from = state.leftEdgeDay.toISO().substring(0, 10);\n const to = state.rightEdgeDay.toISO().substring(0, 10);\n\n Vue.axios.get(\n \"calendar/GetBlockedAvailabilities\",\n {\n params: {\n from: from,\n to: to,\n propertyIds: propertyIds\n },\n }\n ).then(res => {\n commit(\"mergeBlockedAvailabilities\", {\n blockedAvailabilities: res.data,\n usesLazyLoadedCalendar: usesLazyLoadedCalendar\n });\n\n if (router && router.currentRoute && router.currentRoute.name === \"Calendar\" && state.propertiesWithBlockedDatesCalculationInProgress.length !== 0) {\n setTimeout(() => {\n getBlockedAvailabilities(state, commit, usesLazyLoadedCalendar);\n }, 5000);\n }\n else {\n isBlockedAvailabilitiesCheckRunning = false;\n }\n });\n}\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n isLoading: (s) => s.loading.hierarchy || s.loading.reservationsAndUnits || (s.loadingAvailabilityAndReservationsForPropertyIds && s.loadingAvailabilityAndReservationsForPropertyIds.length > 0),\n loadingAvailabilityAndReservationsForPropertyIds: (s) => s.loadingAvailabilityAndReservationsForPropertyIds,\n currentDay: (s) => s.currentDay.startOf(\"day\"),\n availabilityTimelineOpenOnClick: (s) => s.availabilityTimelineOpenOnClick,\n settingsOpen: (s) => s.settingsOpen,\n settings: (s) => s.settings,\n calendarNeedsRefresh: (s) => s.calendarNeedsRefresh,\n properties: (s) => s.properties,\n months: (s) => s.months,\n nonOBRatePlans: (s) => s.nonOBRatePlans,\n propertiesWithBlockedDatesCalculationInProgress: (s) => s.propertiesWithBlockedDatesCalculationInProgress,\n availabilitiesAndReservations: (s) => {\n return {\n availabilities: s.availabilities,\n reservations: s.reservations,\n blockedAvailabilities: s.blockedAvailabilities\n }\n }\n};\n\nconst actions: ActionTree = {\n setEdgeDays: ({ commit }, payload: { left: DateTime; right: DateTime }) => {\n commit(\"setEdgeDays\", payload);\n },\n setMonths: ({ commit }, payload: string) => {\n commit(\"setMonths\", payload);\n },\n goToDay: ({ commit }, payload: DateTime) => {\n commit(\"setDay\", payload.startOf(\"day\"));\n },\n toggleAvailabilityTimelineOpenOnClick: ({ commit }, payload: boolean) => {\n commit(\"toggleAvailabilityTimelineOpenOnClick\", payload);\n },\n openSettings: ({ commit }) => {\n commit(\"settingsMenu\", true);\n },\n closeSettings: ({ commit }) => {\n commit(\"settingsMenu\", false);\n },\n updateSettings: ({ commit }, payload: CalendarSettings) => {\n commit(\"updateSettings\", payload);\n },\n setCalendarNeedsRefresh({ commit }, payload: boolean) {\n commit(\"setCalendarNeedsRefresh\", payload);\n },\n refreshNonOBRatePlans({ commit }) {\n return Vue.axios\n .get>(\"/calendar/getListNonOBRatePlans\")\n .then((res) => {\n commit(\"setNonOBRatePlans\", res.data.result);\n });\n },\n fetchHierarchy: async (\n { commit },\n payload: { config: CalendarBoxConfig; accomodationUnitTypeIds?: number[] }\n ): Promise => {\n commit(\"setLoadingHierarchy\", true);\n\n try {\n const propertiesPromise = Vue.axios.get(\n \"calendar/properties\",\n {\n params: {\n accomodationUnitTypeIds: payload.accomodationUnitTypeIds?.join(',')\n }\n }\n );\n\n const accomodationUnitsPromise = Vue.axios.get(\n \"calendar/units\",\n {\n params: {\n accomodationUnitTypeIds: payload.accomodationUnitTypeIds?.join(',')\n }\n }\n );\n\n const [property, units] = await Promise.all([\n propertiesPromise,\n accomodationUnitsPromise\n ]);\n const data = property.data\n .filter((p) => p.unitTypes.length > 0)\n .map(\n (p) =>\n new CalendarPropertyView(\n p.id,\n p.name,\n p.shortName,\n true,\n p.unitTypes.map(\n (ut, uti) =>\n new CalendarUnitTypeView(\n ut.id,\n ut.name,\n ut.baseBedsCapacity,\n ut.extraBedsCapacity,\n true,\n payload.config.cell.h,\n payload.config.cell.h * uti,\n ut.ratePlansHeight,\n ut.ratePlans\n // sort by parentId/Id, then by derived status, then by id\n // keeps everything rate plans sorted by ID with derived plans grouped under their parent\n // moved to server-side sorting\n // .sort((a, b) => (a.parentRatePlanId ? a.parentRatePlanId : a.id) > (b.parentRatePlanId ? b.parentRatePlanId : b.id) ? 1\n // : (a.parentRatePlanId ? a.parentRatePlanId : a.id) < (b.parentRatePlanId ? b.parentRatePlanId : b.id) ? -1\n // : (a.parentRatePlanId == b.parentRatePlanId && a.isOBSpecific && b.isOBSpecific \n // && ((a.numberOfPersons ?? 0) > (b.numberOfPersons ?? 0))) ? 1\n // : (a.parentRatePlanId == b.parentRatePlanId && a.isOBSpecific && b.isOBSpecific \n // && ((a.numberOfPersons ?? 0) < (b.numberOfPersons ?? 0))) ? -1\n // : (a.parentRatePlanId == b.parentRatePlanId && a.isOBSpecific && b.isOBSpecific \n // && ((a.minStay ?? 0) > (b.minStay ?? 0))) ? 1\n // : (a.parentRatePlanId == b.parentRatePlanId && a.isOBSpecific && b.isOBSpecific \n // && ((a.minStay ?? 0) < (b.minStay ?? 0))) ? -1\n // : a.isDerived && !b.isDerived ? 1\n // : !a.isDerived && b.isDerived ? -1\n // : a.id > b.id ? 1\n // : a.id < b.id ? -1\n // : 0)\n .map(\n (rp) =>\n new CalendarRatePlanAccomodationUnitTypeView(\n rp.id,\n rp.ratePlanId,\n rp.parentId,\n rp.parentRatePlanId,\n //rp.grandparentRatePlanId,\n rp.name,\n rp.currencyId,\n rp.currencyCode,\n rp.isDerived,\n rp.isSpecialOrPackageOffer,\n rp.isDefault,\n rp.derivedFrom,\n false,\n payload.config.cell.h,\n 0,\n [],\n rp.minPersons,\n rp.maxPersons,\n rp.minStay,\n rp.maxStay,\n false\n )\n ),\n units.data\n .filter((u) => u.typeId === ut.id)\n .map(\n (u) =>\n new CalendarUnitView(\n u.id,\n u.typeId,\n u.statusId,\n u.maintenanceAssignedToTenantUserId,\n u.name,\n u.shortName,\n u.note,\n payload.config.cell.hl,\n []\n )\n ),\n []\n )\n ),\n [],\n payload.config.cell\n )\n );\n\n commit(\"setProperties\", data);\n return data;\n } finally {\n commit(\"setLoadingHierarchy\", false);\n }\n },\n resetAviailabilityAndReservations: ({ commit }) =>\n commit(\"resetAviailabilityAndReservations\"),\n removeAvailabilitiesForProperties: ({ commit }, propertyIds: number[]) => {\n commit(\"removeAvailabilities\", propertyIds);\n },\n addAvailabilities: ({ commit }, payload: any[]) => {\n commit(\"addAvailabilities\", payload);\n },\n fetchAviailabilityAndReservations: async (\n { commit, dispatch },\n payload: { from: DateTime; to: DateTime; propertyIds: number[]; accomodationUnitTypeIds?: number[] }\n ): Promise<[any[], any[]]> => {\n if (payload.propertyIds.length > 0) {\n commit(\"setLoadingAvailabilityAndReservationsForPropertyIds\", payload.propertyIds);\n }\n else {\n commit(\"setLoadingReservationsAndUnits\", true);\n }\n\n try {\n const availabilitiesPromise = Vue.axios.get(\n \"calendar/availability\",\n {\n params: {\n from: payload.from.toISODate(),\n to: payload.to.toISODate(),\n propertyIds: payload.propertyIds?.join(','),\n accomodationUnitTypeIds: payload.accomodationUnitTypeIds?.join(',')\n },\n }\n );\n const reservationsPromise = Vue.axios.get(\n \"calendar/reservations\",\n {\n params: {\n from: payload.from.toISODate(),\n to: payload.to.toISODate(),\n propertyIds: payload.propertyIds?.join(','),\n accomodationUnitTypeIds: payload.accomodationUnitTypeIds?.join(',')\n },\n }\n );\n\n const [availabilities, reservations] = await Promise.all([\n availabilitiesPromise,\n reservationsPromise,\n ]);\n\n commit(\"removeReservationsIntersectingPeriod\", {\n from: payload.from,\n to: payload.to,\n propertyIds: payload.propertyIds\n });\n commit(\"mergeAvailabilitiesAndReservations\", {\n availabilities: availabilities.data,\n reservations: reservations.data,\n propertyIds: payload.propertyIds\n });\n\n dispatch(\"startBlockedAvailabilitiesCheck\", payload.propertyIds);\n\n return [availabilities.data, reservations.data];\n } finally {\n commit(\"setLoadingReservationsAndUnits\", false);\n }\n },\n startBlockedAvailabilitiesCheck: async (\n { commit, rootGetters, state },\n payload: number[]\n ) => {\n // skip blocked availabilities querying if tenant doesn't use availability blocker calculations\n if (rootGetters['appParams/tenantUsesAvailabilityBlockerCalculations']) {\n commit(\"addPropertiesToListForChecking\", payload);\n\n if (!isBlockedAvailabilitiesCheckRunning) {\n const usesLazyLoadedCalendar = rootGetters['appParams/tenantUsesLazyLoadedCalendar'] as boolean;\n getBlockedAvailabilities(state, commit, usesLazyLoadedCalendar);\n }\n }\n },\n startBlockedAvailabilitiesCheckForUnitTypes: async (\n { dispatch, state },\n payload: number[]\n ) => {\n dispatch(\"startBlockedAvailabilitiesCheck\", state.properties.filter(x => x.unitTypes.some(ut => payload.includes(ut.id))).map(x => x.id));\n }\n};\n\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setEdgeDays: (state, payload: { left: DateTime; right: DateTime }) => { state.leftEdgeDay = payload.left; state.rightEdgeDay = payload.right; },\n setMonths: (state, payload: string) => (state.months = payload),\n setDay: (state, payload: DateTime) => (state.currentDay = payload),\n toggleAvailabilityTimelineOpenOnClick: (state, payload: boolean) => (state.availabilityTimelineOpenOnClick = payload),\n settingsMenu: (state, payload: boolean) => (state.settingsOpen = payload),\n setCalendarNeedsRefresh: (state, payload: boolean) => (state.calendarNeedsRefresh = payload),\n updateSettings: (state, payload: CalendarSettings) => {\n const x = state.settings?.findIndex(x => x.userId == payload.userId && x.tenantId == payload.tenantId && (x.isForAvailabilitySearchCalendar ?? false) == payload.isForAvailabilitySearchCalendar);\n if (x !== undefined && x !== -1) {\n state.settings?.splice(x, 1, payload);\n }\n else {\n state.settings?.push(payload);\n }\n\n const stringified = JSON.stringify(state.settings);\n const saved = localStorage.getItem(storageKey);\n if (stringified != saved) {\n localStorage.setItem(storageKey, stringified);\n }\n },\n setLoadingHierarchy: (state, payload: boolean) => {\n state.loading.hierarchy = payload;\n },\n setLoadingReservationsAndUnits: (state, payload: boolean) => {\n state.loading.reservationsAndUnits = payload;\n },\n setProperties: (state, payload: CalendarPropertyView[]) => {\n state.properties = payload;\n },\n setNonOBRatePlans: (state, value) => {\n state.nonOBRatePlans = value;\n },\n resetAviailabilityAndReservations: (state) => {\n state.availabilities = [];\n state.reservations = [];\n },\n removeReservationsIntersectingPeriod: (\n state,\n payload: { from: DateTime; to: DateTime; propertyIds: number[] }\n ) => {\n const fromCorrected = new Date(Date.UTC(payload.from.toJSDate().getFullYear(), payload.from.toJSDate().getMonth(), payload.from.toJSDate().getDate()));\n const toCorrected = new Date(Date.UTC(payload.to.toJSDate().getFullYear(), payload.to.toJSDate().getMonth(), payload.to.toJSDate().getDate()));\n const [f, t] = [fromCorrected, toCorrected].map(x => x.toISOString()).map(x => x.substring(0, 10))\n\n // for normal loading, remove all reservations intersecting the queried period for refreshing\n if (payload.propertyIds.length == 0) {\n state.reservations = [...state.reservations.filter(x => (x.departureDate.substring(0, 10) < f || x.arrivalDate.substring(0, 10) > t))];\n }\n // for lazy loading, remove reservations intersecting the queried period only for properties being loaded\n else {\n const unitIds = state.properties.filter(x => payload.propertyIds?.includes(x.id)).flatMap(x => x.unitTypes.flatMap(e => e.units)).map(x => x.id);\n state.reservations = [...state.reservations.filter(x => !unitIds.includes(x.accomodationUnitId) || (x.departureDate.substring(0, 10) < f || x.arrivalDate.substring(0, 10) > t))];\n }\n },\n removeAvailabilities: (state, propertyIds: number[]) => {\n const unitTypeIds = state.properties.filter(x => propertyIds.includes(x.id)).flatMap(x => x.unitTypes).map(x => x.id);\n state.availabilities = [...state.availabilities.filter(x => !unitTypeIds.includes(x.unitTypeId))];\n },\n addAvailabilities: (state, payload: any[]) => {\n const old = [...state.availabilities];\n const fresh = [...payload];\n state.availabilities = _.uniqBy([...fresh, ...old], x => `${x.unitTypeId}_${x.ratePlansAccomodationUnitTypeId}_${x.date.substring(0, 10)}`);\n },\n mergeAvailabilitiesAndReservations: (\n state,\n payload: { availabilities: any[]; reservations: any[]; propertyIds: number[] }\n ) => {\n const old = [...state.availabilities];\n const fresh = [...payload.availabilities];\n\n state.availabilities = _.uniqBy([...fresh, ...old], x => `${x.unitTypeId}_${x.ratePlansAccomodationUnitTypeId}_${x.date.substring(0, 10)}`);\n state.reservations = [...payload.reservations, ...state.reservations];\n\n state.loadingAvailabilityAndReservationsForPropertyIds = [...state.loadingAvailabilityAndReservationsForPropertyIds.filter(x => !payload.propertyIds.includes(x))];\n },\n setLoadingAvailabilityAndReservationsForPropertyIds: (state, payload: number[]) => {\n state.loadingAvailabilityAndReservationsForPropertyIds = [...state.loadingAvailabilityAndReservationsForPropertyIds, ...payload];\n },\n addPropertiesToListForChecking: (state, payload: number[]) => {\n const newIds = payload.filter(x => !state.propertiesWithBlockedDatesCalculationInProgress.includes(x))\n state.propertiesWithBlockedDatesCalculationInProgress = [...state.propertiesWithBlockedDatesCalculationInProgress, ...newIds];\n },\n mergeBlockedAvailabilities: (state, payload: { blockedAvailabilities: BlockedAvailabilitiesModel[]; usesLazyLoadedCalendar: boolean }) => {\n state.propertiesWithBlockedDatesCalculationInProgress = payload.blockedAvailabilities.filter(x => x.calculationInProgress)\n .map(x => x.propertyId).slice();\n\n const propertiesWithoutCalculationsInprogress = payload.blockedAvailabilities.filter(x => !x.calculationInProgress);\n\n // if tenant doesn't use lazy loaded calendar then we need to keep the blockers saved\n if (!payload.usesLazyLoadedCalendar) {\n const fresh = propertiesWithoutCalculationsInprogress.flatMap(e => e.blockedAvailabilities);\n const old = state.blockedAvailabilities ?? [];\n state.blockedAvailabilities = _.uniqBy([...fresh, ...old], x => `${x.unitTypeId}_${x.ratePlansAccomodationUnitTypeId}_${x.date.substring(0, 10)}`);\n }\n\n for (const p of state.properties) {\n const blockedDates = propertiesWithoutCalculationsInprogress.find(x => x.propertyId === p.id);\n if (blockedDates) {\n p.mergeBlockedAvailabilities(blockedDates.blockedAvailabilities);\n }\n }\n }\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","import { ActionTree, GetterTree, MutationTree } from \"vuex\";\nimport Vue from \"vue\";\n\nlet ignoreRefresh = false;\n\nconst initialState = {\n loadedOn: 0, // ms since epoch, as Date.now()\n model: {\n tenantId: 0,\n hasLogo: false,\n financialDocumentHeader: \"\",\n financialDocumentFooter: \"\",\n financialDocumentPaymentInstructions: \"\",\n nonFinancialDocumentHeader: \"\",\n documentKeyInfoTemplate: \"\",\n documentHouseRulesTemplate: \"\"\n },\n};\n\nconst state = { ...initialState };\n\nexport type DocumentSettingsType = typeof state.model;\n\nconst getters: GetterTree = {\n loadedOn: (state) => state.loadedOn,\n isLoaded: (state) => state.loadedOn > 0,\n settings: (state) => state.loadedOn > 0 ? state.model : undefined,\n};\n\nconst actions: ActionTree = {\n saveModel: async ({ commit }, model) => {\n ignoreRefresh = true;\n\n try {\n await Vue.axios.put(\"DocumentSettings\", model);\n commit(\"setModel\", model);\n } finally {\n ignoreRefresh = false;\n }\n },\n refreshModel: async ({ commit }) => {\n // in case it's already loading, this will stop making another call\n if (ignoreRefresh) {\n return;\n }\n\n ignoreRefresh = true;\n\n try {\n const loadPromise = Vue.axios\n .get(\"DocumentSettings\")\n .then((x) => x.data);\n const res = await loadPromise;\n commit(\"setModel\", res);\n } finally {\n ignoreRefresh = false;\n }\n },\n};\n\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setModel: (state, value: typeof state.model) => {\n state.loadedOn = Date.now();\n state.model = value;\n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","import Vue from \"vue\";\nimport {\n GetterTree,\n ActionTree,\n MutationTree\n} from \"vuex\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { ListModel } from \"@/shared/models/listModel\";\n\nexport class BusinessUnitStorage {\n tenantId = 0;\n userId = 0;\n businessUnitId = 0;\n}\n\nexport class BusinessUnitState {\n activeBusinessUnit?: BusinessUnit = {\n id: 0,\n tenantId: 0,\n name: \"\",\n code: \"\",\n streetName: \"\",\n houseNumber: \"\",\n houseNumberAppendix: \"\",\n city: \"\",\n cityPostalName: \"\",\n postalCodeId: null,\n cadastralNumber: \"\",\n buildingNumber: \"\",\n buildingSectionNumber: \"\",\n validFrom: \"\",\n validTo: \"\",\n note: \"\",\n status: false,\n isHeadquarters: false,\n isVirtual: false,\n isRegistered: false,\n ownerCustomerId: null,\n isOwnerBusinessUnit: false,\n timeZoneId: \"\",\n shouldBeLinkedToFiscalizationService: false,\n isLinkedToFiscalizatioService: false\n };\n\n availableBusinessUnits?: BusinessUnit[] = [];\n allBusinessUnits?: BusinessUnit[] = [];\n\n storedData?: BusinessUnitStorage[] = [];\n}\n\nconst storageKey = \"pms.bu\";\n\nconst initialState = new BusinessUnitState();\n\nconst state = { ...initialState };\n\nfunction saveState() {\n const stringified = JSON.stringify(state.storedData);\n if (state.storedData && localStorage.getItem(storageKey) != stringified) {\n localStorage.setItem(storageKey, stringified);\n }\n}\n\nconst getters: GetterTree = {\n activeBusinessUnit: (state) => state.activeBusinessUnit,\n availableBusinessUnits: (state) => state.availableBusinessUnits,\n allBusinessUnits: (state) => state.allBusinessUnits,\n businessUnitStorage: (state) => state.storedData,\n};\n\nconst actions: ActionTree = {\n refreshBusinessUnits({ commit }) {\n return Vue.axios\n .get>(`/businessUnits`, {\n params: {\n shouldGetAll: true,\n },\n })\n .then(\n ({ data }) =>\n (commit(\"setAvailableBusinessUnits\", data.result?.filter((x) => x.status)),\n (commit(\"setAllBusinessUnits\", data.result))),\n );\n },\n setBusinessUnit({commit}, payload ) {\n commit(\"setActiveBusinessUnit\", payload);\n },\n async setBusinessUnitFromStorage({dispatch} ,payload) {\n const stored = localStorage.getItem(storageKey);\n if((state.availableBusinessUnits?.length ?? 0) === 0) {\n await dispatch(\"refreshBusinessUnits\", payload.tenantId);\n }\n if (stored) {\n try {\n const parsed = JSON.parse(stored) as BusinessUnitStorage[];\n state.storedData = parsed;\n const id = parsed.find(x => x.userId == payload.userId && x.tenantId == payload.tenantId)?.businessUnitId;\n state.activeBusinessUnit = state.availableBusinessUnits?.find(x => x.id == id);\n } catch {\n /* empty */\n }\n }\n else {\n state.storedData = [];\n state.activeBusinessUnit = undefined;\n }\n },\n clearBusinessUnits({commit}) {\n commit(\"clearBusinessUnits\");\n },\n};\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setAvailableBusinessUnits: (state, value) => {\n state.availableBusinessUnits = value.slice();\n },\n setAllBusinessUnits: (state, value) => {\n state.allBusinessUnits = value.slice();\n },\n setActiveBusinessUnit: (state, value) => {\n state.activeBusinessUnit = value.businessUnit;\n const data = {\n tenantId: value.tenantId,\n userId: value.userId,\n businessUnitId: value.businessUnit.id\n } as BusinessUnitStorage;\n const x = state.storedData?.findIndex(x => x.userId == data.userId && x.tenantId == data.tenantId);\n if(x !== undefined && x !== -1)\n {\n state.storedData?.splice(x, 1, data);\n }\n else\n {\n state.storedData?.push(data);\n }\n saveState();\n },\n clearBusinessUnits: (state) => {\n state.availableBusinessUnits = [];\n }\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};","import { ListModel } from \"@/shared/models/listModel\";\nimport { AccomodationUnitTypeForReportFilter } from \"@/shared/models/reportModels\";\nimport Vue from \"vue\";\nimport { ActionTree, GetterTree, MutationTree } from \"vuex\";\n\nconst initialState = {\n accomodationUnitTypes: [] as AccomodationUnitTypeForReportFilter[],\n};\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n accomodationUnitTypes: (state) => state.accomodationUnitTypes,\n};\n\nconst actions: ActionTree = {\n refreshAccomodationUnitTypes({ commit }) {\n return Vue.axios\n .get>(\"AccomodationUnitTypes/GetForReportsFilter\")\n .then((res) => {\n commit(\"setAccomodationUnitTypes\", res.data.result);\n });\n },\n};\n\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setAccomodationUnitTypes: (state, value) => {\n state.accomodationUnitTypes = value.slice();\n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};","export type ContingentWindow = {\n w: number;\n h: number;\n l: number;\n};\n\nexport type ContingentBoxConfigCell = {\n w: number;\n h: number;\n hl: number;\n};\n\nexport type ContingentBoxConfig = {\n cell: ContingentBoxConfigCell;\n preload: number;\n};\n\nexport type ContingentExpandableRow = {\n id: number;\n name: string;\n expanded: boolean;\n height: number;\n offset: number;\n};\n\nexport type ContingentDataRequest = {\n from: Date;\n to: Date;\n propertyId: number;\n cell: ContingentBoxConfigCell;\n}\n\nexport type ContingentRowIdentifier = {\n month: number;\n unitType: number;\n ratePlan: ContingentRatePlanView | null;\n}\n\nexport class ContingentMonthView implements ContingentExpandableRow {\n height: number;\n offset = 0;\n name = \"\";\n\n constructor(\n public id: number,\n public representationDate: string,\n public expanded: boolean,\n public unitTypes: ContingentUnitTypeView[],\n c: ContingentBoxConfigCell\n ) {\n this.id = id;\n this.unitTypes = unitTypes;\n this.height = c.h + unitTypes.length * c.h;\n }\n\n h(\n c: ContingentBoxConfigCell,\n selectedRatePlan: number,\n showPrice: boolean,\n ) {\n return (\n 48 +\n (this.expanded\n ? 48 + this.unitTypes.reduce(\n (acc, x) =>\n acc + x.h(c, selectedRatePlan, showPrice),\n 0\n )\n : 0)\n );\n }\n}\n\nexport class ContingentUnitTypeView implements ContingentExpandableRow {\n constructor(\n public id: number,\n public name: string,\n public expanded: boolean,\n public height: number,\n public offset: number,\n public daysData: ContingentDaysDataView[],\n public ratePlans: ContingentRatePlanView[]\n ) {\n this.id = id;\n this.name = name;\n this.daysData = daysData;\n this.ratePlans = ratePlans;\n }\n\n h(\n c: ContingentBoxConfigCell,\n selectedRatePlan: number,\n showPrice: boolean,\n ) {\n return c.h + (\n showPrice &&\n this.expanded && \n this.ratePlans.length > 0 &&\n this.ratePlans.map((x) => x.id).includes(selectedRatePlan) ? c.h : 0);\n }\n}\n\nexport class ContingentDaysDataView {\n constructor(\n date: string,\n occupied: number,\n available: number,\n occupancyPercentage: number,\n demandData: ContingentDemandDataView[]\n ) {\n this.date = date;\n this.occupied = occupied;\n this.available = available;\n this.occupancyPercentage = occupancyPercentage;\n this.demandData = demandData;\n }\n\n date = \"\";\n occupied = 0;\n available = 0;\n occupancyPercentage = 0;\n demandData: ContingentDemandDataView[] = [];\n}\n\nexport class ContingentDemandDataView {\n constructor(\n name: string,\n statusId: number,\n ) {\n this.name = name;\n this.statusId = statusId;\n }\n\n name = \"\";\n statusId = 0;\n}\n\nexport class ContingentRatePlanView {\n constructor(\n id: number,\n name: string,\n currencyCode: string,\n ratePlanData: ContingentRatePlanDataView[],\n public isOBSpecific: boolean,\n ) {\n this.id = id;\n this.name = name;\n this.currencyCode = currencyCode;\n this.ratePlanData = ratePlanData;\n }\n\n id = 0;\n name = \"\";\n currencyCode = \"\";\n ratePlanData: ContingentRatePlanDataView[] = [];\n}\n\nexport class ContingentRatePlanDataView {\n constructor(\n date: string,\n initializedOnly: boolean,\n price: number,\n basePriceDifference: number,\n ) {\n this.date = date;\n this.initializedOnly = initializedOnly;\n this.basePriceDifference = basePriceDifference;\n this.price = price;\n }\n\n date = \"\";\n initializedOnly = true;\n basePriceDifference = 0;\n price = 0;\n}\n","import { isArray, isEmpty } from \"lodash\";\nimport { DateTime } from \"luxon\";\nimport { GetterTree, ActionTree, MutationTree } from \"vuex\";\nimport Vue from \"vue\";\nimport { RatePlan } from \"@/components/calendar/CalendarTypes\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport * as _ from 'lodash';\nimport { ContingentDataRequest, \n ContingentDaysDataView, \n ContingentDemandDataView, \n ContingentMonthView, \n ContingentRatePlanDataView, \n ContingentRatePlanView, \n ContingentUnitTypeView \n} from \"@/components/contingent/ContingentTypes\";\n\nexport type ContingentDateSpans = \"week\" | \"month\" | \"year\";\nexport type ContingentDataFormat = \"number\" | \"percentage\";\nexport type ContingentSettings = {\n dateSpan: ContingentDateSpans;\n dataFormat: ContingentDataFormat;\n showPrice: boolean;\n showPriceDifference: boolean;\n selectedPropertyId: number;\n selectedRatePlanId: number | null;\n userId: number;\n tenantId: number;\n};\n\nexport const defaultSettings = {\n dateSpan: \"month\",\n dataFormat: \"percentage\",\n showPrice: false,\n showPriceDifference: false,\n selectedPropertyId: 0,\n selectedRatePlanId: null,\n userId: 0,\n tenantId: 0,\n} as ContingentSettings;\n\nlet _settings: ContingentSettings[] = [defaultSettings];\nconst saved = localStorage.getItem(\"contingent.settings\");\nif (saved) {\n try {\n _settings = JSON.parse(saved) as ContingentSettings[];\n } catch {\n localStorage.removeItem(\"contingent.settings\");\n }\n if(isEmpty(_settings) || !isArray(_settings))\n {\n localStorage.removeItem(\"contingent.settings\");\n _settings = [defaultSettings];\n }\n}\n\nconst initialState = {\n loading: { hierarchy: false },\n currentDay: DateTime.local(),\n settingsOpen: false,\n settings: _settings,\n months: \"\",\n ratePlans: [] as RatePlan[],\n contingentData: [] as ContingentUnitTypeView[],\n};\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n isLoading: (s) => s.loading.hierarchy,\n currentDay: (s) => s.currentDay,\n settingsOpen: (s) => s.settingsOpen,\n settings: (s) => s.settings,\n ratePlans: (s) => s.ratePlans,\n months: (s) => s.months,\n contingentData: (s) => s.contingentData,\n};\n\nconst actions: ActionTree = {\n setMonths: ({ commit }, payload: string) => {\n commit(\"setMonths\", payload);\n },\n goToDay: ({ commit }, payload: DateTime) => {\n commit(\"setDay\", payload);\n },\n openSettings: ({ commit }) => {\n commit(\"settingsMenu\", true);\n },\n closeSettings: ({ commit }) => {\n commit(\"settingsMenu\", false);\n },\n updateSettings: ({ commit }, payload: ContingentSettings) => {\n commit(\"updateSettings\", payload);\n },\n refreshRatePlans({ commit }) {\n return Vue.axios\n .get>(\"/calendar/getListRatePlans\")\n .then((res) => {\n commit(\"setRatePlans\", res.data.result);\n });\n },\n fetchHierarchy: async (\n { commit },\n payload: ContingentDataRequest\n ): Promise => {\n commit(\"setLoadingHierarchy\", true);\n\n try {\n const contingentDataPromise = Vue.axios.get(\n \"ContigentOverview\", {params: payload}\n );\n\n const [contingentData] = await Promise.all([\n contingentDataPromise,\n ]);\n\n const data = _.map(contingentData.data, \n (m) => new ContingentMonthView (\n m.id,\n m.representationDate,\n true,\n _.map(m.unitTypes, \n (ut, uti) => new ContingentUnitTypeView (\n ut.id,\n ut.name,\n true,\n payload.cell.h,\n payload.cell.h * uti,\n _.map(ut.daysData,\n (dd) => new ContingentDaysDataView (\n dd.date,\n dd.occupied,\n dd.available,\n dd.occupancyPercentage,\n dd.demandData ? dd.demandData.map(\n (ded) => new ContingentDemandDataView (\n ded.name,\n ded.statusId\n )\n ) : [],\n )\n ),\n _.has(ut, 'ratePlans') ? _.map(ut.ratePlans, \n (rp) => new ContingentRatePlanView (\n rp.id,\n rp.name,\n rp.currencyCode,\n _.map(rp.ratePlanData,\n (rpd) => new ContingentRatePlanDataView (\n rpd.date,\n rpd.initializedOnly,\n rpd.price,\n rpd.basePriceDifference,\n )\n ),\n rp.isOBSpecific\n )\n ) : [],\n )\n ),\n payload.cell\n )\n );\n\n commit(\"setContingentData\", data);\n return data;\n } finally {\n commit(\"setLoadingHierarchy\", false);\n }\n },\n};\n\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setMonths: (state, payload: string) => (state.months = payload),\n setDay: (state, payload: DateTime) => (state.currentDay = payload),\n settingsMenu: (state, payload: boolean) => (state.settingsOpen = payload),\n updateSettings: (state, payload: ContingentSettings) => {\n const x = state.settings?.findIndex(x => x.userId == payload.userId);\n if(x !== undefined && x !== -1)\n {\n state.settings?.splice(x, 1, payload);\n }\n else\n {\n state.settings?.push(payload);\n }\n localStorage.setItem(\"contingent.settings\", JSON.stringify(state.settings));\n },\n setLoadingHierarchy: (state, payload: boolean) => {\n state.loading.hierarchy = payload;\n },\n setRatePlans: (state, value) => {\n state.ratePlans = value;\n },\n setContingentData: (state, value) => {\n state.contingentData = value;\n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};","import { GetterTree, ActionTree, MutationTree } from \"vuex\";\n\nexport class ReservationModalState {\n guestsUnchanged = true;\n}\n\nconst initialState = new ReservationModalState();\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n guestsUnchanged: (s) => s.guestsUnchanged,\n};\nconst actions: ActionTree = {\n setGuestsUnchanged({commit}, payload: boolean) {\n commit(\"setGuestsUnchanged\", payload);\n },\n};\nconst mutations: MutationTree = {\n setGuestsUnchanged: (state, value: boolean) => {\n state.guestsUnchanged = value;\n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations\n};\n","import { GetterTree, ActionTree, MutationTree } from \"vuex\";\n\nexport class ReservationsModalState {\n dateFilterApplied = true\n}\n\nconst initialState = {\n dateFilterApplied: true\n}\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n dateFilterApplied: (s) => s.dateFilterApplied,\n};\n\nconst actions: ActionTree = {\n setDateFilterApplied({commit}, payload: boolean) {\n commit(\"setDateFilterApplied\", payload);\n },\n};\n\nconst mutations: MutationTree = {\n setDateFilterApplied: (state, value: boolean) => {\n state.dateFilterApplied = value;\n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations\n};\n","import { MaintenanceTeamMember } from \"@/components/calendar/CalendarTypes\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport Vue from \"vue\";\nimport { ActionTree, GetterTree, MutationTree } from \"vuex\";\n\nconst initialState = {\n\n maintenanceTeam: [] as MaintenanceTeamMember[]\n};\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n maintenanceTeam: s => s.maintenanceTeam\n};\n\nconst actions: ActionTree = {\n refreshMaintenanceTeam({ commit }) {\n return Vue.axios\n .get>(\"/maintenance/getMaintenanceTeamMembers\")\n .then((res) => {\n commit(\"setMaintenanceTeam\", res.data.result);\n });\n },\n}\n\nconst mutations: MutationTree = {\n setMaintenanceTeam: (state, value) => {\n state.maintenanceTeam = value.slice();\n },\n}\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};","import Vue from \"vue\";\nimport {\n GetterTree,\n ActionTree,\n MutationTree\n} from \"vuex\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport { ListModel } from \"@/shared/models/listModel\";\n\nexport class CashRegisterStorage {\n tenantId = 0;\n userId = 0;\n cashRegisterId = 0;\n}\n\nexport class CashRegisterState {\n activeCashRegister?: CashRegisterModel = {\n id: 0,\n name: \"\",\n businessUnitId: 0,\n currencyId: 0,\n status: false,\n businessUnitStatus: true,\n isLinkedToFiscalizationService: false,\n shouldBeLinkedToFiscalizationService: false\n };\n\n allCashRegisters?: CashRegisterModel[] = [];\n\n availableCashRegisters?: CashRegisterModel[] = [];\n\n storedData?: CashRegisterStorage[] = [];\n}\n\nconst storageKey = \"pms.cr\";\n\nconst initialState = new CashRegisterState();\n\nconst state = { ...initialState };\n\nfunction saveState() {\n const stringified = JSON.stringify(state.storedData);\n if (state.storedData && localStorage.getItem(storageKey) != stringified) {\n localStorage.setItem(storageKey, stringified);\n }\n}\n\nconst getters: GetterTree = {\n activeCashRegister: (state) => state.activeCashRegister,\n availableCashRegisters: (state) => state.availableCashRegisters,\n allCashRegisters: (state) => state.allCashRegisters,\n cashRegisterStorage: (state) => state.storedData,\n};\n\nconst actions: ActionTree = {\n refreshCashRegisters({ commit }) {\n return Vue.axios\n .get>(\n `/cashRegisters`\n )\n .then(\n ({ data }) =>\n (commit(\"setAvailableCashRegisters\", data.result.filter(x => x.status)),\n (commit(\"setAllCashRegisters\", data.result))),\n );\n },\n setActiveCashRegister({commit}, payload ) {\n commit(\"setActiveCashRegister\", payload);\n },\n removeActiveCashRegister({commit}) {\n commit(\"removeActiveCashRegister\");\n },\n async setCashRegisterFromStorage({dispatch} ,payload) {\n const stored = localStorage.getItem(storageKey);\n if((state.availableCashRegisters?.length ?? 0) === 0) {\n await dispatch(\"refreshCashRegisters\", payload.tenantId);\n }\n if (stored) {\n try {\n const parsed = JSON.parse(stored) as CashRegisterStorage[];\n state.storedData = parsed;\n const id = parsed.find(x => x.userId == payload.userId && x.tenantId == payload.tenantId)?.cashRegisterId;\n state.activeCashRegister = state.availableCashRegisters?.find(x => x.id == id);\n } catch {\n /* empty */\n }\n }\n else {\n state.storedData = [];\n state.activeCashRegister = undefined;\n }\n },\n clearCashRegisters({commit}) {\n commit(\"clearCashRegisters\");\n },\n};\nconst mutations: MutationTree = {\n reset: (state) => {\n Object.assign(state, initialState);\n },\n setAvailableCashRegisters: (state, value) => {\n state.availableCashRegisters = value.slice();\n },\n setAllCashRegisters: (state, value) => {\n state.allCashRegisters = value.slice();\n },\n setActiveCashRegister: (state, value) => {\n state.activeCashRegister = value.cashRegister;\n const data = {\n tenantId: value.tenantId,\n userId: value.userId,\n cashRegisterId: value.cashRegister.id,\n } as CashRegisterStorage;\n const x = state.storedData?.findIndex(x => x.userId == data.userId && x.tenantId == data.tenantId);\n if(x !== undefined && x !== -1)\n {\n state.storedData?.splice(x, 1, data);\n }\n else\n {\n state.storedData?.push(data);\n }\n saveState();\n },\n removeActiveCashRegister: (state) => {\n state.activeCashRegister = undefined;\n },\n clearCashRegisters: (state) => {\n state.availableCashRegisters = [];\n }\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};","import { ActionTree, GetterTree, MutationTree } from \"vuex\"\nimport Vue from \"vue\"\n\nexport class ChannelColor {\n id: number\n name: string\n colorCodeHex: string\n\n constructor(\n id: number,\n name: string,\n colorCodeHex: string\n ) {\n this.id = id\n this.name = name\n this.colorCodeHex = colorCodeHex\n }\n}\n\n// new stuff\nexport interface ColorRule {\n id: number;\n colorCodeHex: string;\n}\n\n// new stuff\nexport interface CalendarColorSettings {\n reservationStatusColors?: ColorRule[];\n reservationDistributionChannelColors?: ColorRule[];\n reservationOtaColors?: ColorRule[];\n reservationSalesChannelColors?: ColorRule[];\n\n colorBasedOn?: CalendarColorByOptions;\n useReservationColorOverride?: boolean;\n}\n\n// new stuff\nexport type CalendarColorByOptions = \"status\" | \"distributionChannel\";\n\nlet ignoreRefresh = false\nlet currentRequest: Promise | undefined = undefined\n\nconst initialState = {\n loadedOn: 0,\n model: {\n distributionChannelTypeColors: [new ChannelColor(0, \"\", \"\")],\n salesChannelColors: [new ChannelColor(0, \"\", \"\")],\n otaColors: [new ChannelColor(0, \"\", \"\")]\n },\n\n // new stuff\n calendarColorSettings: {\n reservationStatusColors: [],\n reservationDistributionChannelColors: [],\n reservationOtaColors: [],\n reservationSalesChannelColors: [],\n colorBasedOn: \"status\",\n useReservationColorOverride: true\n } as CalendarColorSettings\n}\n\nconst state = { ...initialState }\n\nexport type ReservationColorsByChannelType = typeof state.model\n\nconst getters: GetterTree = {\n loadedOn: (state) => state.loadedOn,\n isLoaded: (state) => state.loadedOn > 0,\n colors: (state) => state.loadedOn > 0 ? state.model : undefined,\n calendarColorSettings: (state) => state.calendarColorSettings\n}\n\nconst actions: ActionTree = {\n saveModel: async ({ commit }, model) => {\n ignoreRefresh = true\n\n const modelWrapper = { colors: model }\n\n try {\n await Vue.axios.post(\"ApplicationAppearance/setreservationcolors\", modelWrapper)\n commit(\"setModel\", modelWrapper)\n } finally {\n ignoreRefresh = false\n }\n },\n refreshModel: async ({ commit }) => {\n if (ignoreRefresh) {\n return currentRequest\n }\n\n ignoreRefresh = true\n\n try {\n const loadPromise = Vue.axios\n .get(\"ApplicationAppearance\")\n .then((x) => x.data)\n currentRequest = loadPromise\n const res = await loadPromise\n commit(\"setModel\", res)\n } finally {\n currentRequest = undefined\n ignoreRefresh = false\n }\n },\n\n // new stuff\n refreshCalendarColorSettings({ commit, rootGetters }) {\n return Vue.axios\n .get(\"calendar/GetCalendarColorSettings\")\n .then((res) => {\n const utid = rootGetters[\"auth/claims\"]?.utid;\n const savedSettings = JSON.parse(localStorage.getItem(`pms.utid_${utid}_calendar_color_settings`) || \"{}\");\n commit(\"setCalendarColorSettings\", {\n value: {\n ...savedSettings,\n ...res.data\n }, utid: utid\n });\n });\n },\n updateCalendarColorSettings: ({ commit, rootGetters }, payload: CalendarColorSettings) => {\n const utid = rootGetters[\"auth/claims\"]?.utid;\n commit(\"setCalendarColorSettings\", { value: payload, utid: utid });\n },\n}\n\nconst mutations: MutationTree = {\n reset: () => {\n Object.assign(state, initialState)\n },\n setModel: (state, value: typeof state.model) => {\n state.loadedOn = Date.now()\n state.model = value\n },\n\n // new stuff\n setCalendarColorSettings: (state, payload: { value: CalendarColorSettings, utid: any }) => {\n state.calendarColorSettings = {\n ...state.calendarColorSettings,\n ...payload.value\n }\n\n localStorage.setItem(`pms.utid_${payload.utid}_calendar_color_settings`, JSON.stringify(state.calendarColorSettings));\n },\n}\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n}","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport notifications from \"./modules/notifications\";\nimport auth, { AuthPlugin } from \"./modules/auth\";\nimport language from \"./modules/language\";\nimport globalFilters from \"./modules/globalFilters\";\nimport codebooks from \"./modules/codebooks\";\nimport appParams from \"./modules/appParams\";\nimport calendar from \"./modules/calendar\";\nimport financial from \"./modules/financial\";\nimport documents from \"./modules/documents\";\nimport businessUnit from \"./modules/businessUnit\";\nimport { BeforeInstallPromptEvent } from \"vue-pwa-install\"\nimport reports from \"./modules/reports\";\nimport contingent from \"./modules/contingent\";\nimport dashboard from \"./modules/dashboard\";\nimport reservation from \"./modules/reservation\";\nimport reservations from \"./modules/reservations\"\nimport maintenance from \"./modules/maintenance\";\nimport cashRegister from \"./modules/cashRegister\";\nimport appAppearance from \"./modules/appAppearance\";\n\nVue.use(Vuex);\n\ntype Theme = \"light\" | \"dark\";\n\nconst state: {\n theme: Theme;\n drawerCollapsed: boolean;\n showMenu: boolean;\n showGrid: boolean;\n customBreadcrumbs?: string[];\n showDatePicker: boolean;\n pwaInstallEvent: BeforeInstallPromptEvent|null|undefined;\n} = {\n theme:\n (localStorage.getItem(\"app.theme\") || 0) === \"dark\" ? \"dark\" : \"light\",\n drawerCollapsed: true,\n showMenu: true,\n showGrid: true,\n customBreadcrumbs: undefined,\n showDatePicker: true,\n pwaInstallEvent: undefined,\n};\n\nexport default new Vuex.Store({\n state: state,\n getters: {\n isLightTheme: (s) => s.theme === \"light\",\n isDarkTheme: (s) => s.theme !== \"light\",\n showMenu: (s) => s.showMenu,\n showGrid: (s) => s.showGrid,\n drawerCollapsed: (s) => s.drawerCollapsed,\n customBreadcrumbs: (s) => s.customBreadcrumbs,\n showDatePicker: (s) => s.showDatePicker,\n pwaInstallEvent: (s) => s.pwaInstallEvent,\n canInstallPWA: (s) => s.pwaInstallEvent !== undefined && s.pwaInstallEvent !== null\n },\n actions: {\n setTheme({ commit }, payload: Theme) {\n commit(\"setTheme\", payload);\n },\n toggleTheme({ commit, state }) {\n commit(\"setTheme\", state.theme === \"light\" ? \"dark\" : \"light\");\n },\n setShowMenu({ commit }, value) {\n commit(\"setShowMenu\", value);\n },\n setShowGrid({ commit }, value) {\n commit(\"setShowGrid\", value);\n },\n setDrawerCollapsed({ commit }, value) {\n commit(\"setDrawerCollapsed\", value);\n },\n setShowDatePicker({ commit }, value) {\n commit(\"setShowDatePicker\", value);\n },\n setCustomBreadcrumbs({ commit }, value) {\n commit(\"setCustomBreadcrumbs\", value);\n },\n setPwaInstallEvent({ commit }, payload: BeforeInstallPromptEvent) {\n commit(\"setPwaInstallEvent\", payload);\n }\n },\n mutations: {\n setTheme(state, payload: Theme) {\n localStorage.setItem(\"app.theme\", payload);\n state.theme = payload;\n },\n setShowMenu(state, payload: boolean) {\n state.showMenu = payload;\n },\n setShowGrid(state, payload: boolean) {\n state.showGrid = payload;\n },\n setDrawerCollapsed(state, payload: boolean) {\n state.drawerCollapsed = payload;\n },\n setShowDatePicker(state, payload: boolean) {\n state.showDatePicker = payload;\n },\n setCustomBreadcrumbs(state, payload: string[] | undefined) {\n state.customBreadcrumbs = payload;\n },\n setPwaInstallEvent(state, payload: BeforeInstallPromptEvent) {\n state.pwaInstallEvent = payload;\n }\n },\n modules: {\n notifications,\n auth,\n globalFilters,\n language,\n codebooks,\n appParams,\n calendar,\n financial,\n documents,\n businessUnit,\n reports,\n contingent,\n dashboard,\n reservation,\n reservations,\n maintenance,\n cashRegister,\n appAppearance\n },\n plugins: [AuthPlugin],\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateForm.vue?vue&type=style&index=0&id=8c5de70e&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTableMobileTile.vue?vue&type=style&index=0&id=c2edd3b2&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeLOSCategoriesTable.vue?vue&type=style&index=0&id=59aad598&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-input',{attrs:{\"value\":_vm.value,\"rules\":_vm.rules},on:{\"update:error\":function($event){_vm.error = $event}}},[_c('div',{staticClass:\"rating-input-slotted\"},[_c('label',{class:{\n 'v-label': true,\n 'theme--dark': _vm.$vuetify.theme.dark,\n 'theme--light': !_vm.$vuetify.theme.dark,\n 'error--text': _vm.error,\n }},[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]),_c('v-rating',{attrs:{\"color\":_vm.disabled ? 'grey' : 'primary',\"small\":\"\",\"background-color\":\"rgba(128,128,128,0.5)\",\"value\":_vm.value,\"readonly\":_vm.readonly,\"dense\":_vm.dense,\"clearable\":\"\"},on:{\"input\":_vm.change}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class RatingInput extends Vue {\n @Prop() readonly?: boolean;\n @Prop() disabled?: boolean;\n @Prop() value?: number;\n @Prop({ default: \"\" }) label?: string;\n @Prop({ default: () => [] }) rules?: ((val: any) => boolean | any)[];\n @Prop({ default: false }) dense?: boolean;\n\n error = false;\n\n change(val: number) {\n this.$emit(\"input\", val)\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingInput.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatingInput.vue?vue&type=template&id=026e8620&scoped=true&\"\nimport script from \"./RatingInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatingInput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatingInput.vue?vue&type=style&index=0&id=026e8620&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 \"026e8620\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VInput } from 'vuetify/lib/components/VInput';\nimport { VRating } from 'vuetify/lib/components/VRating';\ninstallComponents(component, {VInput,VRating})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BulkInvoiceGenerationModal.vue?vue&type=style&index=0&id=89fdf75a&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('DeferredAutocomplete',{attrs:{\"label\":_vm.label,\"value\":_vm.value,\"items\":_vm.items,\"isLoading\":_vm.isLoading,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly,\"rules\":_vm.rules,\"clearable\":_vm.clearable,\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"prefill\":_vm.autocomplete,\"search\":function($event){_vm.defferedAutocomplete($event);_vm.$emit('search', $event);},\"clear\":function($event){return _vm.$emit('clear')},\"blur\":function($event){return _vm.$emit('blur')},\"keydown\":function($event){return _vm.$emit('keydown', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport DeferredAutocomplete, {\n DefferedAutocompleteItem,\n} from \"./DeferredAutocomplete.vue\";\nimport _ from \"lodash\";\n\nexport type DefferedAutocompleteFetcherFn = (\n val: { id: number } | { search: string }\n) => Promise;\n\n@Component({\n components: {\n DeferredAutocomplete,\n },\n})\nexport default class DeferredAutocompleteWrapper extends Vue {\n @Prop() readonly value?: number;\n @Prop() label?: string;\n @Prop({ default: false }) disabled?: boolean;\n @Prop() fetch?: DefferedAutocompleteFetcherFn;\n @Prop() readonly?: boolean;\n @Prop() rules?: ((v: any) => boolean)[];\n @Prop({ default: false }) clearable?: boolean;\n\n @Prop({ default: false }) outlined?: boolean;\n @Prop({ default: false }) dense?: boolean;\n @Prop({ default: false }) hideDetails?: boolean;\n\n isLoading = false;\n items: DefferedAutocompleteItem[] = [];\n\n defferedAutocomplete = _.debounce(this.autocomplete, 300);\n autocomplete(val: { id: number } | { search: string }) {\n if (!this.fetch) return;\n this.isLoading = true;\n this.fetch(val).then((res) => {\n if (!res.some((x) => x.id === this.value)) {\n res = res.concat(this.items.filter((x) => x.id === this.value));\n }\n this.items = res;\n this.isLoading = false;\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeferredAutocompleteWrapper.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeferredAutocompleteWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeferredAutocompleteWrapper.vue?vue&type=template&id=ff0d6682&scoped=true&\"\nimport script from \"./DeferredAutocompleteWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeferredAutocompleteWrapper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeferredAutocompleteWrapper.vue?vue&type=style&index=0&id=ff0d6682&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 \"ff0d6682\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('Choose rate plan')))]),_c('v-card-text',[_c('v-list',[_c('v-list-item',[_c('v-select',{attrs:{\"items\":_vm.availableRatePlans,\"item-text\":\"name\",\"item-value\":\"id\",\"rules\":[_vm.required],\"label\":_vm.$t('Rate plan')},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.currencyCode)?_c('span',[_vm._v(_vm._s(_vm.getRateName(item))+\" (\"+_vm._s(item.currencyCode)+\")\")]):_c('span',[_vm._v(_vm._s(_vm.getRateName(item))+\" (\"),_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId}}),_vm._v(\")\")],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.currencyCode)?_c('span',[_vm._v(_vm._s(_vm.getRateName(item))+\" (\"+_vm._s(item.currencyCode)+\")\")]):_c('span',[_vm._v(_vm._s(_vm.getRateName(item))+\" (\"),_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId}}),_vm._v(\")\")],1)]}}]),model:{value:(_vm.ratePlansAccomodationUnitTypeId),callback:function ($$v) {_vm.ratePlansAccomodationUnitTypeId=$$v},expression:\"ratePlansAccomodationUnitTypeId\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\",\"disabled\":!_vm.ratePlansAccomodationUnitTypeId}},[_vm._v(_vm._s(_vm.$t('Confirm')))]),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t('Cancel')))]),(_vm.showApllyToAllCheckbox)?_c('v-checkbox',{staticClass:\"ml-4\",attrs:{\"label\":_vm.$t('Reservation.RatePlanUpdate.UpdateAllUnits')},model:{value:(_vm.updateOtherUnits),callback:function ($$v) {_vm.updateOtherUnits=$$v},expression:\"updateOtherUnits\"}}):_vm._e()],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Ref, Vue, Watch } from 'vue-property-decorator';\nimport CurrencyDisplay from '@/components/misc/CurrencyDisplay.vue'\nimport { CalendarRatePlanAccomodationUnitTypeView } from './CalendarTypes';\nimport { Getter } from 'vuex-class';\n\n@Component({\n components: {\n CurrencyDisplay\n }\n})\nexport default class RatePlanSelectModal extends Vue {\n @PropSync('open') internalOpen?: boolean;\n @Prop() availableRatePlans?: CalendarRatePlanAccomodationUnitTypeView[];\n @Prop() showApllyToAllCheckbox?: boolean;\n\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n \n @Ref('form') form?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n @Watch('$route') \n routeChanged() {\n this.internalOpen = false;\n }\n\n @Watch('open') \n onOpenChanged() {\n this.form?.resetValidation();\n this.ratePlansAccomodationUnitTypeId = 0;\n }\n\n required(value: string) {\n return value ? true : this.$t(\"Validation.Required\")\n }\n\n ratePlansAccomodationUnitTypeId = 0;\n updateOtherUnits = false;\n\n submit() {\n this.internalOpen = false;\n\n this.$emit(\"ratePlanSelected\", { ratePlansAccomodationUnitTypeId: this.ratePlansAccomodationUnitTypeId , updateOtherUnits: this.updateOtherUnits, autoPriceRecalculation: false });\n }\n\n getRateName(rate: any) {\n let paxSuffix = \"\";\n let losSuffix = \"\";\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rate.minPersons === rate.maxPersons\n ? `, ${rate.minPersons} pax`\n : `, ${rate.minPersons}-${rate.maxPersons} pax`;\n }\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rate.maxStay === 0\n ? `, ${rate.minStay}+ LOS`\n : rate.minStay === rate.maxStay\n ? `, ${rate.minStay} LOS`\n : `, ${rate.minStay}-${rate.maxStay} LOS`;\n }\n return `${rate.name}${paxSuffix}${losSuffix}`;\n }\n \n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanSelectModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanSelectModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlanSelectModal.vue?vue&type=template&id=36a00d8e&scoped=true&\"\nimport script from \"./RatePlanSelectModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlanSelectModal.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 \"36a00d8e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDialog,VForm,VList,VListItem,VSelect})\n","export function formatOrderby(sortby?: string, asc?: boolean): string | null {\n if (sortby) {\n return `${sortby} ${asc ? \"asc\" : \"desc\"}`;\n }\n\n return null;\n}\n\nexport function formatOrderbyArray(sortby: string[], asc: boolean[]): string | null {\n return !sortby || sortby.length == 0\n ? null\n : sortby.map((x, idx) => formatOrderby(sortby[idx], asc[idx])).join(\",\");\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviewTable.vue?vue&type=style&index=0&id=1aed249e&scoped=true&lang=css&\"","\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { RolesEnum, policyChecker, extractRoles } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component\nexport default class RequireRole extends Vue {\n @Prop()\n policy?: string;\n @Prop()\n policies?: string[];\n @Prop()\n role?: string;\n @Prop()\n roles?: string[];\n\n @Getter(\"auth/claims\")\n claims?: JwtClaims;\n\n render() {\n const requiredPolicies = this.policies ?? [];\n if (this.policy) {\n requiredPolicies.push(this.policy);\n }\n\n if (requiredPolicies.length > 0) {\n return this.conditionalRender(requiredPolicies.some((x) => policyChecker(x)(this.claims)));\n } else {\n const myRoles = extractRoles(this.claims);\n const requiredRoles = this.roles ?? [];\n if (this.role) {\n requiredRoles.push(this.role);\n }\n\n const exists =\n requiredRoles.length === 0 ||\n myRoles.some((myRole) =>\n requiredRoles.some((r) => RolesEnum[myRole] === r)\n );\n\n return this.conditionalRender(exists);\n }\n }\n\n conditionalRender(x: boolean) {\n return x ? this.$slots.default : undefined;\n }\n}\n","var render, staticRenderFns\nimport script from \"./RequireRole.vue?vue&type=script&lang=ts&\"\nexport * from \"./RequireRole.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 \"4b7162e6\",\n null\n \n)\n\nexport default component.exports","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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequireRole.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequireRole.vue?vue&type=script&lang=ts&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=style&index=2&id=b6bd6d04&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PagedFinancesTable.vue?vue&type=style&index=0&id=fc753fb8&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleDocumentsInvoice.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.formalCurrency && _vm.value !== undefined)?_c('span',[_vm._v(_vm._s(_vm.$n(_vm.value, { style: \"currency\", currency: _vm.formalCurrency.isoCode, currencyDisplay: \"code\", })))]):(_vm.formalCurrency)?_c('span',[_vm._v(_vm._s(_vm.formalCurrency.isoCode))]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\n\n// ? this component is a helper to display currency set on tenant\n// ? as to avoid all the ceremony of actions and getters\n\n@Component\nexport default class FormalCurrencyDisplay extends Vue {\n @Prop() value?: number;\n\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise<\n void\n >;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n }\n\n @Getter(\"appParams/formalCurrency\") formalCurrency?: Currency;\n}\n\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormalCurrencyDisplay.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormalCurrencyDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormalCurrencyDisplay.vue?vue&type=template&id=702824ba&scoped=true&\"\nimport script from \"./FormalCurrencyDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormalCurrencyDisplay.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 \"702824ba\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesGrid.vue?vue&type=style&index=0&id=b266d3c4&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"400\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.buttonType == 'button')?_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(_vm._s(_vm.$t(\"CreditCardDetails\")))]):_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.open = true}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fas fa-credit-card\")])],1)]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"CreditCardDetails\"))+\" \")])]}}]),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',{attrs:{\"light\":\"\"}},[(!_vm.iframe)?_c('v-card-text',[_c('v-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit()}},model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.required],\"label\":_vm.$t('Password') + '*',\"type\":_vm.showPassword ? 'text' : 'password',\"tabindex\":\"1\",\"outlined\":\"\",\"color\":\"#2790e5\",\"autofocus\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}},[_c('template',{slot:\"append\"},[_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":function($event){_vm.showPassword = !_vm.showPassword}}},[(_vm.showPassword)?_c('v-icon',[_vm._v(\"fa-eye-slash\")]):_c('v-icon',[_vm._v(\"fa-eye\")])],1)])],2)],1)],1):_vm._e(),(_vm.iframe)?_c('v-card-text',[_c('iframe',{staticStyle:{\"border\":\"0\"},attrs:{\"height\":\"306\",\"scrolling\":\"no\",\"src\":(\"https://pci.channex.io/api/v1/show_card?card_token=\" + _vm.cardToken + \"&session_token=\" + _vm.sessionToken + \"&service_code_token=\" + _vm.serviceCodeToken)}})]):_vm._e(),_c('v-card-actions',[(!_vm.iframe)?_c('v-btn',{attrs:{\"disabled\":!_vm.formValid,\"loading\":_vm.loading,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"ShowCreditCardDetails\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.open = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\n\n@Component\nexport default class CreditCardInfoModal extends Vue {\n @Prop({ default: \"icon\" }) buttonType?: \"icon\" | \"button\";\n @Prop({ default: 0 }) reservationId?: number;\n\n open = false;\n\n formValid = false;\n password = \"\";\n showPassword = false;\n loading = false;\n\n iframe = false;\n cardToken = \"\";\n sessionToken = \"\";\n serviceCodeToken = \"\";\n\n submit() {\n this.loading = true;\n Vue.axios\n .post(\"/channex/ViewCreditCard\", {\n password: this.password,\n reservationId: this.reservationId,\n })\n .then((res) => {\n this.cardToken = res.data.cardToken;\n this.sessionToken = res.data.sessionToken;\n this.serviceCodeToken = res.data.serviceCodeToken;\n this.iframe = true;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n // reset everything when closing the modal\n @Watch(\"open\", { immediate: true })\n openWatch(fresh: boolean, old: boolean) {\n if (old && !fresh) {\n this.formValid = false;\n this.password = \"\";\n this.showPassword = false;\n this.loading = false;\n\n this.iframe = false;\n this.cardToken = \"\";\n this.sessionToken = \"\";\n this.serviceCodeToken = \"\";\n }\n }\n\n required(value: string) {\n return !!value || this.$t(\"Validation.Required\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreditCardInfoModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreditCardInfoModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreditCardInfoModal.vue?vue&type=template&id=4c17cebc&scoped=true&\"\nimport script from \"./CreditCardInfoModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreditCardInfoModal.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 \"4c17cebc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VForm,VIcon,VSpacer,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{key:_vm.key,attrs:{\"position-x\":_vm.pos.x,\"position-y\":_vm.pos.y,\"close-on-content-click\":false,\"close-on-click\":_vm.closeable},model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.form),callback:function ($$v) {_vm.form=$$v},expression:\"form\"}},[_c('v-card',{style:({ width: _vm.$vuetify.breakpoint.mobile ? '300px' : '480px' })},[_c('v-card-title',{class:{ mobile: _vm.isMobile },staticStyle:{\"word-break\":\"break-word\"}},[(_vm.mode === 'quantity')?_c('span',[_vm._v(_vm._s(_vm.$t(\"Set quantity for {unitType}\", { unitType: _vm.unitType && _vm.unitType.name, })))]):_vm._e(),(_vm.mode === 'price')?_c('span',[_vm._v(_vm._s(_vm.$t(\"Adjust price for {ratePlan} on {unitType}\", { unitType: _vm.unitType && _vm.unitType.name, ratePlan: _vm.ratePlan && _vm.ratePlan.name, })))]):_vm._e(),(_vm.contingentMode)?_c('span',[_vm._v(_vm._s(_vm.$t(\"Adjust price for selected period and units\")))]):_vm._e(),(\n _vm.mode === 'numberRestriction' ||\n _vm.mode === 'booleanRestriction' ||\n _vm.mode === 'inputPrice'\n )?_c('span',[_vm._v(_vm._s(_vm.$t(\"Set {field} for {ratePlan} on {unitType}\", { unitType: _vm.unitType && _vm.unitType.name, ratePlan: _vm.ratePlan && _vm.ratePlan.name, field: _vm.field && _vm.$t(_vm.field.textResource), })))]):_vm._e(),(_vm.mode === 'unitStatus')?_c('span',[_vm._v(_vm._s(_vm.$t(\"Set status for {unitName} of {unitType}\", { unitName: _vm.unit && _vm.unit.name, unitType: _vm.unitType && _vm.unitType.name, })))]):_vm._e()]),(_vm.isMobile)?_c('v-card-subtitle',{staticClass:\"mobile\"},[(_vm.mode !== 'unitStatus')?_c('div',[_c('DateField',{staticClass:\"mb-3\",attrs:{\"label\":_vm.$t('From'),\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":true},model:{value:(_vm.fromUI),callback:function ($$v) {_vm.fromUI=$$v},expression:\"fromUI\"}}),_c('DateField',{staticClass:\"mb-2\",attrs:{\"label\":_vm.$t('To'),\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":true},model:{value:(_vm.toUI),callback:function ($$v) {_vm.toUI=$$v},expression:\"toUI\"}}),_c('div',[_vm._v(_vm._s(_vm.$tc(\"{count} of nights\", _vm.nights, { count: _vm.nights })))])],1):_vm._e()]):_c('v-card-subtitle',[_c('div',[_vm._v(_vm._s(_vm.subtitle))]),(_vm.mode != 'unitStatus')?_c('div',[_c('div',[_vm._v(_vm._s(_vm.$tc(\"{count} of nights\", _vm.nights, { count: _vm.nights })))])]):_vm._e()]),(_vm.mode === 'price' || _vm.mode === 'inputPrice' || _vm.contingentMode)?_c('v-card-text',[_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",class:{ 'mobile-price-input': _vm.isMobile },attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.priceRule, _vm.maxDecimals],\"reverse\":\"\",\"autofocus\":\"\"},on:{\"keydown\":function($event){$event.stopPropagation();}},model:{value:(_vm.priceInput),callback:function ($$v) {_vm.priceInput=$$v},expression:\"priceInput\"}})],1),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('span',{class:{ 'red--text': !_vm.price.valid }},[_vm._v(_vm._s(_vm.price.text))])])],1),_c('v-row',[_c('v-col',[_c('span',[_vm._v(_vm._s(_vm.$t(\"Calendar.PriceEditor.Hint\")))]),(_vm.hasOBRules && !_vm.tenantOBRsUseRelativePricing)?_c('v-radio-group',{attrs:{\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.Hint')},model:{value:(_vm.relatedRatePlansPriceUpdateType),callback:function ($$v) {_vm.relatedRatePlansPriceUpdateType=$$v},expression:\"relatedRatePlansPriceUpdateType\"}},[_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansPriceUpdateTypeEnum.DontUpdate,\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.NoUpdate')}}),_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansPriceUpdateTypeEnum.ApplyChange,\"label\":_vm.$t('Calendar.RelatedRatePlansPriceUpdateType.ApplyUpdate')}}),(\n !_vm.tenantOBRsUseRelativePricing &&\n _vm.calendarOBLOSCategoriesApplicationAllowed\n )?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansPriceUpdateTypeEnum.ApplyOBLOSCategories,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansPriceUpdateType.ApplyCategories'\n )}}):_vm._e()],1):_vm._e()],1)],1)],1):(_vm.mode === 'unitStatus')?_c('v-card-text',[_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",class:{ 'mobile-price-input': _vm.isMobile },attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.accomodationUnitStatuses,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"hide-details\":\"\"},model:{value:(_vm.unitStatusInput),callback:function ($$v) {_vm.unitStatusInput=$$v},expression:\"unitStatusInput\"}})],1),_c('v-col',{staticClass:\"d-flex align-center\",class:{ 'mobile-price-input': _vm.isMobile },attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.maintenanceTeam,\"item-value\":\"tenantUserId\",\"item-text\":\"name\",\"hide-details\":\"\",\"clearable\":\"\",\"label\":_vm.$t('AccommodationUnit.AssignedMaintenanceTeamMember')},model:{value:(_vm.unitMaintenanceAssignedToTenantUserId),callback:function ($$v) {_vm.unitMaintenanceAssignedToTenantUserId=$$v},expression:\"unitMaintenanceAssignedToTenantUserId\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-textarea',{attrs:{\"counter\":1024,\"rules\":[\n function (v) { return (v || '').length <= 1024 ||\n _vm.$t('AccommodationUnit.NoteLengthErrorMessage'); } ],\"label\":_vm.$t('AccommodationUnit.Note')},model:{value:(_vm.textInput),callback:function ($$v) {_vm.textInput=$$v},expression:\"textInput\"}})],1)],1)],1):_c('v-card-text',[(_vm.mode === 'booleanRestriction')?_c('v-checkbox',{staticClass:\"ml-2\",attrs:{\"autofocus\":\"\"},model:{value:(_vm.booleanInput),callback:function ($$v) {_vm.booleanInput=$$v},expression:\"booleanInput\"}}):_vm._e(),(_vm.mode === 'quantity')?_c('NumericPicker',{attrs:{\"mode\":\"relative\",\"rules\":[_vm.quantityRule],\"autofocus\":\"\",\"isMobile\":_vm.isMobile},on:{\"update:error\":function($event){return _vm.onErrorUpdate(_vm.pick, $event)},\"keydown\":function($event){$event.stopPropagation();}},model:{value:(_vm.quantityInput),callback:function ($$v) {_vm.quantityInput=$$v},expression:\"quantityInput\"}}):_vm._e(),(_vm.mode === 'numberRestriction')?_c('NumericPicker',{attrs:{\"rules\":[_vm.mustBePositive],\"autofocus\":\"\",\"isMobile\":_vm.isMobile},on:{\"update:error\":function($event){return _vm.onErrorUpdate(_vm.pick, $event)},\"keydown\":function($event){$event.stopPropagation();}},model:{value:(_vm.numberInput),callback:function ($$v) {_vm.numberInput=_vm._n($$v)},expression:\"numberInput\"}}):_vm._e(),(_vm.hasOBRules || _vm.hasDerived)?_c('v-row',[_c('v-col',[_c('v-radio-group',{attrs:{\"label\":_vm.$t('Calendar.RelatedRatePlansRestrictionsUpdateType.Hint')},model:{value:(_vm.relatedRatePlansRestrictionsUpdateType),callback:function ($$v) {_vm.relatedRatePlansRestrictionsUpdateType=$$v},expression:\"relatedRatePlansRestrictionsUpdateType\"}},[_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.NoUpdate'\n )}}),(_vm.hasOBRules)?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.UpdateOBSpecificOnly,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.UpdateOBLOS'\n )}}):_vm._e(),(_vm.hasDerived)?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.UpdateDerivedOnly,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.UpdateDerived'\n )}}):_vm._e(),(_vm.hasOBRules && _vm.hasDerived)?_c('v-radio',{attrs:{\"value\":_vm.RelatedRatePlansRestrictionsUpdateTypeEnum.UpdateDerivedAndOBSpecific,\"label\":_vm.$t(\n 'Calendar.RelatedRatePlansRestrictionsUpdateType.UpdateDerivedAndOBLOS'\n )}}):_vm._e()],1)],1)],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"card-buttons\"},[_c('v-btn',{class:{ mobile: _vm.isMobile },attrs:{\"depressed\":\"\",\"color\":\"primary\",\"type\":\"submit\",\"disabled\":!_vm.form && !_vm.submitting}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-spacer'),_c('v-btn',{class:{ mobile: _vm.isMobile },attrs:{\"depressed\":\"\"},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1),(_vm.submitting)?_c('v-overlay',{attrs:{\"absolute\":\"\",\"color\":\"primary\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}})],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport {\n CalendarUnitTypeView,\n CalendarRatePlanAccomodationUnitTypeView,\n CalendarUnitView,\n MaintenanceTeamMember,\n RelatedRatePlansPriceUpdateTypeEnum,\n RelatedRatePlansRestrictionsUpdateTypeEnum,\n} from \"./CalendarTypes\";\nimport { DateTime } from \"luxon\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport _ from \"lodash\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport {\n ContingentRatePlanDataView,\n ContingentRatePlanView,\n ContingentRowIdentifier,\n} from \"../contingent/ContingentTypes\";\nimport {\n parseLocaleNumber,\n formatLocaleNumber,\n} from \"@/components/numbers/numberFormatUtils\";\n\nexport type CalendarEditorMode =\n | \"price\"\n | \"inputPrice\"\n | \"numberRestriction\"\n | \"booleanRestriction\"\n | \"quantity\"\n | \"unitStatus\"\n | \"contingentPriceMonthYear\"\n | \"contingentPriceWeek\";\n\n@Component({ components: { NumericPicker, DateField } })\nexport default class CalendarEditor extends Vue {\n @Prop() isMobile?: boolean;\n\n key = 0;\n menu = false;\n form = false;\n submitting = false;\n mode: CalendarEditorMode = \"quantity\";\n\n unitType: CalendarUnitTypeView | null = null;\n unit: CalendarUnitView | null = null;\n ratePlan:\n | CalendarRatePlanAccomodationUnitTypeView\n | ContingentRatePlanView\n | null = null;\n field: {\n key: string;\n type: \"number\" | \"boolean\";\n textResource: string;\n } | null = null;\n\n from = DateTime.local();\n to = DateTime.local();\n\n hasOBRules = false;\n hasDerived = false;\n\n RelatedRatePlansPriceUpdateTypeEnum = RelatedRatePlansPriceUpdateTypeEnum;\n RelatedRatePlansRestrictionsUpdateTypeEnum =\n RelatedRatePlansRestrictionsUpdateTypeEnum;\n\n relatedRatePlansPriceUpdateType =\n RelatedRatePlansPriceUpdateTypeEnum.ApplyOBLOSCategories;\n relatedRatePlansRestrictionsUpdateType =\n RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate;\n\n pos: { x: number; y: number } = { x: 0, y: 0 };\n originalValue: any = null;\n\n contingentSelectedRows: ContingentRowIdentifier[] | null = null;\n\n closeable = false;\n\n get contingentMode() {\n return (\n this.mode === \"contingentPriceMonthYear\" ||\n this.mode === \"contingentPriceWeek\"\n );\n }\n\n get nights() {\n return this.to.diff(this.from, \"days\").days + 1;\n }\n\n get fromUI() {\n return this.from.toString();\n }\n\n set fromUI(val) {\n this.from = DateTime.fromISO(val);\n }\n\n get toUI() {\n return this.to.toString();\n }\n\n set toUI(val) {\n this.to = DateTime.fromISO(val);\n }\n\n priceRule = (v: string) => !v || /^(\\+|-)?([\\d,.]+)(%)?$/.test(v);\n quantityRule = (v: string) => !v || /^\\s*(\\+|-)?([^+-]+)$/.test(v);\n\n mustBePositive(v: any) {\n return +v >= 0 ? true : this.$t(\"Validation.MustBePositive\");\n }\n\n maxDecimals(value: any) {\n if (value !== undefined) {\n //remove '%' so it's not counted as a number for max decimal check\n if (value.toString().slice(-1) === \"%\") {\n value = value.toString().slice(0, -1);\n } \n return !(this.countDecimals(value) > 2)\n ? true\n : this.$t(\"Validation.MaxDecimals{max}\", {\n max: 2,\n });\n } else {\n return true;\n }\n }\n\n get decimalSeparator() {\n const separator = Intl.NumberFormat(this.internalLanguage)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n return separator;\n }\n\n countDecimals(num: number) {\n return num.toString().split(this.decimalSeparator)[1]?.length || 0;\n }\n\n get subtitle() {\n if (this.from && this.to) {\n if (this.from.toISODate() !== this.to.toISODate()) {\n return this.$t(\"From {from} to {to}\", {\n from: this.$d(this.from.toJSDate()),\n to: this.$d(this.to.toJSDate()),\n });\n } else {\n return this.$t(\"On {date}\", {\n date: this.$d(this.from.toJSDate()),\n });\n }\n }\n\n return \"\";\n }\n\n public open(\n unitType: CalendarUnitTypeView | null,\n unit: CalendarUnitView | null,\n ratePlan:\n | CalendarRatePlanAccomodationUnitTypeView\n | ContingentRatePlanView\n | null,\n field: {\n key: string;\n type: \"number\" | \"boolean\";\n textResource: string;\n } | null,\n mode: CalendarEditorMode,\n from: DateTime,\n to: DateTime,\n pos: { x: number; y: number },\n originalValue: any,\n contingentSelectedRows: ContingentRowIdentifier[] | null,\n hasOBRules: boolean,\n hasDerived: boolean\n ) {\n this.key++;\n this.mode = mode;\n\n this.unitType = unitType;\n this.unit = unit;\n this.ratePlan = ratePlan;\n this.field = field;\n\n this.from = from;\n this.to = to;\n\n this.hasOBRules = hasOBRules;\n this.hasDerived = hasDerived;\n\n this.pos = pos;\n this.originalValue = originalValue;\n\n this.contingentSelectedRows = contingentSelectedRows;\n\n if (\n this.mode === \"price\" ||\n this.mode === \"inputPrice\" ||\n this.contingentMode\n ) {\n this.priceInput = formatLocaleNumber(\n this.originalValue,\n 2,\n this.internalLanguage\n );\n } else if (this.mode === \"booleanRestriction\") {\n this.booleanInput = this.originalValue;\n } else if (this.mode === \"quantity\") {\n this.quantityInput = this.originalValue;\n } else if (this.mode === \"unitStatus\") {\n this.unitStatusInput = this.originalValue.statusId;\n this.unitMaintenanceAssignedToTenantUserId =\n this.originalValue.tenantUserId;\n this.textInput = unit?.note || \"\";\n } else {\n this.numberInput = this.originalValue;\n }\n\n if (\n (this.mode === \"price\" || this.mode === \"inputPrice\") &&\n !this.contingentMode\n ) {\n // don't mess with restrictions when updating prices\n this.relatedRatePlansRestrictionsUpdateType =\n RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate;\n\n // non-OB tenants should always apply the change to OB rates\n if (this.tenantOBRsUseRelativePricing) {\n this.relatedRatePlansPriceUpdateType =\n RelatedRatePlansPriceUpdateTypeEnum.ApplyChange;\n }\n // for others get the default\n else {\n this.relatedRatePlansPriceUpdateType =\n this.calendarOBLOSCategoriesApplicationAllowed &&\n this.calendarRelatedRatesPriceUpdateTypeDefault\n ? this.calendarRelatedRatesPriceUpdateTypeDefault ??\n RelatedRatePlansPriceUpdateTypeEnum.DontUpdate\n : RelatedRatePlansPriceUpdateTypeEnum.DontUpdate;\n }\n } else if (!this.contingentMode) {\n // don't mess with price when updating restrictions\n this.relatedRatePlansPriceUpdateType =\n RelatedRatePlansPriceUpdateTypeEnum.DontUpdate;\n\n // get the default for restrictions\n this.relatedRatePlansRestrictionsUpdateType =\n this.calendarRelatedRatesRestrictionsUpdateTypeDefault ??\n RelatedRatePlansRestrictionsUpdateTypeEnum.DontUpdate;\n }\n\n this.menu = true;\n this.closeable = false;\n setTimeout(() => {\n // this is a hack, otherwise, it's closed immediately for some\n // bizzare reason on vuetify's side\n this.closeable = true;\n }, 350);\n }\n\n quantityInput: string | null = null;\n numberInput: number | null = null;\n booleanInput: boolean | null = null;\n priceInput: string | null = null;\n unitStatusInput: number | null = null;\n unitMaintenanceAssignedToTenantUserId: number | null = null;\n textInput: string | null = null;\n\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Action(\"codebooks/refreshAccomodationUnitStatuses\")\n refreshAccomodationUnitStatuses?: () => Promise;\n @Getter(\"codebooks/accomodationUnitStatuses\")\n accomodationUnitStatuses?: AccomodationUnitStatus[];\n\n @Getter(\"maintenance/maintenanceTeam\")\n maintenanceTeam?: MaintenanceTeamMember[];\n @Action(\"maintenance/refreshMaintenanceTeam\")\n refreshMaintenanceTeam?: () => Promise;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Getter(\"appParams/calendarOBLOSCategoriesApplicationAllowed\")\n calendarOBLOSCategoriesApplicationAllowed?: boolean;\n @Getter(\"appParams/calendarRelatedRatesPriceUpdateTypeDefault\")\n calendarRelatedRatesPriceUpdateTypeDefault?: number;\n @Getter(\"appParams/calendarRelatedRatesRestrictionsUpdateTypeDefault\")\n calendarRelatedRatesRestrictionsUpdateTypeDefault?: number;\n\n @Action(\"calendar/startBlockedAvailabilitiesCheckForUnitTypes\")\n startBlockedAvailabilitiesCheckForUnitTypes?: (\n payload: number[]\n ) => Promise;\n\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n\n if (\n (this.accomodationUnitStatuses?.length ?? 0) === 0 &&\n this.refreshAccomodationUnitStatuses\n ) {\n this.refreshAccomodationUnitStatuses();\n }\n\n if (\n (this.maintenanceTeam?.length ?? 0) === 0 &&\n this.refreshMaintenanceTeam\n ) {\n this.refreshMaintenanceTeam();\n }\n }\n\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n @Getter(\"language/language\") language?: string;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get price() {\n if (\n this.mode === \"price\" ||\n this.mode === \"inputPrice\" ||\n this.contingentMode\n ) {\n const original = !_.isNumber(this.originalValue)\n ? 0\n : +this.originalValue;\n\n const groups = this.priceInput\n ? /^(\\+|-)?([\\d,.]+)(%)?$/.exec(this.priceInput ?? \"\")\n : [\"\", \"\", \"0\", \"\"]; // default to 0;\n\n if (groups) {\n const flat = [...groups];\n const percentage = flat[3] === \"%\";\n const subtraction = flat[1] === \"-\";\n const addition = flat[1] === \"+\";\n const number = parseLocaleNumber(flat[2], this.internalLanguage);\n\n let total = original;\n let tr = \"\";\n\n if (percentage) {\n if (addition) {\n total += (original * number) / 100;\n tr = \"Calendar.PriceEditor.Percentage.Add\";\n } else if (subtraction) {\n total -= (original * number) / 100;\n tr = \"Calendar.PriceEditor.Percentage.Sub\";\n } else {\n total = (original * number) / 100;\n tr = \"Calendar.PriceEditor.Percentage.Set\";\n }\n } else {\n if (addition) {\n total += number;\n tr = \"Calendar.PriceEditor.Absolute.Add\";\n } else if (subtraction) {\n total -= number;\n tr = \"Calendar.PriceEditor.Absolute.Sub\";\n } else {\n total = number;\n tr = \"Calendar.PriceEditor.Absolute.Set\";\n }\n }\n\n let valueCurrency = number.toString();\n if (this.ratePlan) {\n try {\n // prettier-ignore\n valueCurrency = this.$n(number, { style: \"currency\", currency: this.ratePlan.currencyCode, currencyDisplay: \"code\" })\n } catch {\n /* ignore */\n }\n }\n\n const res = {\n value: number,\n total,\n valueCurrency,\n percentage,\n addition,\n subtraction,\n };\n\n return {\n ...res,\n valid: true,\n text: this.$t(tr, res),\n };\n }\n }\n\n return {\n valid: false,\n value: this.originalValue,\n total: this.originalValue,\n percentage: false,\n addition: false,\n subtraction: false,\n text: this.$t(\"Calendar.PriceEditor.Invalid\"),\n };\n }\n\n public close() {\n this.menu = false;\n this.$emit(\"closed\");\n }\n\n @Watch(\"menu\")\n menuChanged(fresh: boolean, old?: boolean) {\n if (fresh !== old) {\n this.$emit(fresh ? \"open\" : \"closed\");\n }\n }\n\n private submit() {\n if (this.mode === \"price\") {\n this.submitPrice();\n } else if (this.contingentMode) {\n this.submitContingentPrice();\n } else if (this.mode === \"quantity\") {\n this.submitQuantity();\n } else if (this.mode === \"inputPrice\") {\n this.submitInputPrice();\n } else if (this.mode === \"unitStatus\") {\n this.submitUnitStatus();\n } else {\n this.submitRestriction();\n }\n }\n\n private submitQuantity() {\n const val = this.quantityInput ?? \"\";\n\n const extracted = /^\\s*(\\+|-)?([^+-]+)$/.exec(val);\n\n let [prefix, numeric] = [\"+\", 0];\n if (extracted) {\n prefix = extracted[1] ?? \"\";\n numeric = extracted[2] ? +extracted[2] : 0;\n }\n\n this.submitting = true;\n this.axios\n .put(\"/calendar/SetUnitTypeQuantity\", {\n unitTypeId: this.unitType?.id,\n from: this.from?.toISODate()?.substr(0, 10),\n to: this.to?.toISODate()?.substr(0, 10),\n value: +numeric,\n isSet: prefix === \"\",\n addition: prefix === \"+\",\n subtraction: prefix === \"-\",\n })\n .then((res) => {\n if (res && res.data && res.data.asyncBulkEditStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async bulk edit started\"),\n timeout: 30000,\n });\n } else {\n this.$emit(\"calendarReload\", {\n from: this.from,\n to: this.to,\n });\n }\n this.close();\n })\n .finally(() => (this.submitting = false));\n }\n private submitPrice() {\n this.submitting = true;\n this.axios\n .put(\"/calendar/AdjustAvailabilityPrice\", {\n unitTypeId: this.unitType?.id,\n ratePlanId: this.ratePlan?.id,\n from: this.from?.toISODate()?.substr(0, 10),\n to: this.to?.toISODate()?.substr(0, 10),\n value: this.price.value,\n isAbsolute: !this.price.percentage,\n addition: this.price.addition,\n subtraction: this.price.subtraction,\n relatedRatePlansPriceUpdateType: this.relatedRatePlansPriceUpdateType,\n relatedRatePlansRestrictionsUpdateType:\n this.relatedRatePlansRestrictionsUpdateType,\n })\n .then((res) => {\n if (res && res.data && res.data.asyncBulkEditStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async bulk edit started\"),\n timeout: 30000,\n });\n } else {\n this.$emit(\"calendarReload\", {\n from: this.from,\n to: this.to,\n });\n }\n this.close();\n })\n .finally(() => (this.submitting = false));\n }\n private submitRestriction() {\n const val = this.numberInput ? +this.numberInput : 0;\n this.submitting = true;\n this.axios\n .put(\"/calendar/SetAvailabilityRestriction\", {\n unitTypeId: this.unitType?.id,\n ratePlanId: this.ratePlan?.id,\n from: this.from?.toISODate()?.substr(0, 10),\n to: this.to?.toISODate()?.substr(0, 10),\n field: this.field?.key,\n numberValue: this.mode === \"numberRestriction\" ? val : null,\n booleanValue:\n this.mode === \"booleanRestriction\" ? this.booleanInput : null,\n relatedRatePlansPriceUpdateType: this.relatedRatePlansPriceUpdateType,\n relatedRatePlansRestrictionsUpdateType:\n this.relatedRatePlansRestrictionsUpdateType,\n })\n .then((res) => {\n if (res && res.data && res.data.asyncBulkEditStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async bulk edit started\"),\n timeout: 30000,\n });\n } else {\n this.$emit(\"calendarReload\", {\n from: this.from,\n to: this.to,\n });\n }\n this.close();\n })\n .finally(() => (this.submitting = false));\n }\n\n private submitInputPrice() {\n this.submitting = true;\n this.axios\n .put(\"/calendar/SetAvailabilityRestriction\", {\n unitTypeId: this.unitType?.id,\n ratePlanId: this.ratePlan?.id,\n from: this.from?.toISODate()?.substr(0, 10),\n to: this.to?.toISODate()?.substr(0, 10),\n field: this.field?.key,\n numberValue: this.price.value,\n isAbsolute: !this.price.percentage,\n addition: this.price.addition,\n subtraction: this.price.subtraction,\n relatedRatePlansPriceUpdateType: this.relatedRatePlansPriceUpdateType,\n relatedRatePlansRestrictionsUpdateType:\n this.relatedRatePlansRestrictionsUpdateType,\n })\n .then((res) => {\n if (res && res.data && res.data.asyncBulkEditStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async bulk edit started\"),\n timeout: 30000,\n });\n } else {\n this.$emit(\"calendarReload\", {\n from: this.from,\n to: this.to,\n });\n }\n this.close();\n })\n .finally(() => (this.submitting = false));\n }\n\n private submitUnitStatus() {\n this.submitting = true;\n this.axios\n .put(\"/maintenance/AccomodationUnitStatusUpdate\", {\n id: this.unit?.id,\n statusId: this.unitStatusInput,\n maintenanceAssignedToTenantUserId:\n this.unitMaintenanceAssignedToTenantUserId,\n calendarUnitRemark: this.textInput,\n })\n .then(() => {\n if (this.unit?.id) {\n if (this.unitStatusInput) {\n this.unit.statusId = this.unitStatusInput;\n this.unit.maintenanceAssignedToTenantUserId =\n this.unitMaintenanceAssignedToTenantUserId;\n }\n\n if (this.textInput != null && this.textInput != undefined) {\n this.unit.note = this.textInput;\n }\n }\n this.close();\n })\n .finally(() => (this.submitting = false));\n }\n\n getRowDates(month: number) {\n const year = this.from.year;\n const fromDate = DateTime.local(year, month, this.from.day);\n const toDate = DateTime.local(year, month, this.to.day);\n return [fromDate, toDate];\n }\n\n private submitContingentPrice() {\n if (this.contingentSelectedRows) {\n for (let index = 0; index < this.contingentSelectedRows.length; index++) {\n const element = this.contingentSelectedRows[index];\n const rowDates =\n this.mode === \"contingentPriceMonthYear\"\n ? this.getRowDates(element.month)\n : [this.from, this.to];\n if (element.ratePlan) {\n this.submitting = true;\n this.axios\n .put(\"/calendar/AdjustAvailabilityPrice\", {\n unitTypeId: element.unitType,\n ratePlanId: element.ratePlan.id,\n from: rowDates[0].toISODate()?.substr(0, 10),\n to: rowDates[1].toISODate()?.substr(0, 10),\n value: this.price.value,\n isAbsolute: !this.price.percentage,\n addition: this.price.addition,\n subtraction: this.price.subtraction,\n })\n .then((res) => {\n if (res && res.data) {\n this.mergeContingentResponseData(res.data, element);\n }\n this.close();\n })\n .finally(() => (this.submitting = false));\n }\n }\n }\n }\n\n @Action(\"calendar/addAvailabilities\") addAvailabilities?: (\n payload: any[]\n ) => void;\n\n private mergeResponseData(data: any[]) {\n if (this.unitType && data && data.length > 0 && this.addAvailabilities) {\n this.addAvailabilities(data);\n }\n }\n\n private mergeContingentResponseData(\n data: any[],\n element: ContingentRowIdentifier\n ) {\n if (element.ratePlan && data && data.length > 0) {\n for (const a of data) {\n if (a.ratePlanId == element.ratePlan.id) {\n const dayData = element.ratePlan.ratePlanData.find(\n (x) => x.date.substring(0, 10) == a.date.substring(0, 10)\n );\n if (dayData) {\n const originalPrice =\n dayData.price / (1 + dayData.basePriceDifference / 100);\n dayData.price = a.price;\n dayData.basePriceDifference =\n ((dayData.price - originalPrice) / originalPrice) * 100;\n } else {\n element.ratePlan.ratePlanData.push({\n date: a.date,\n price: a.price,\n } as ContingentRatePlanDataView);\n }\n }\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarEditor.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarEditor.vue?vue&type=template&id=5c701d77&scoped=true&\"\nimport script from \"./CalendarEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarEditor.vue?vue&type=style&index=0&id=5c701d77&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 \"5c701d77\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCheckbox,VCol,VForm,VMenu,VOverlay,VProgressCircular,VRadio,VRadioGroup,VRow,VSelect,VSpacer,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-fade-transition',[(_vm.loading || _vm.internalLoading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\n\n@Component\nexport default class LoadingOverlay extends Vue {\n @Prop({ default: false }) loading?: boolean;\n @Prop() minDelay?: number | null;\n\n internalLoading = false;\n\n @Watch(\"loading\")\n loadingStarted(fresh: boolean) {\n if (fresh) {\n this.internalLoading = true;\n setTimeout(() => {\n this.internalLoading = false;\n }, this.minDelay ?? 550);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingOverlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoadingOverlay.vue?vue&type=template&id=30eeb4ee&scoped=true&\"\nimport script from \"./LoadingOverlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoadingOverlay.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 \"30eeb4ee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VFadeTransition,VOverlay,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-fade-transition',[_c('LoadingOverlay',{staticClass:\"loading-overlay\",attrs:{\"loading\":_vm.isLoading}})],1),_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"tile\":\"\",\"height\":\"100vh\"}},[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[(!_vm.isOwnerLevel3)?_c('ColorPicker',{on:{\"input\":function($event){return _vm.setReservationColor()}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"color-picker-trigger\",style:(_vm.colorPickerStyle)},on),[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"small\":\"\",\"icon\":\"\"}},on),[_c('v-icon',{attrs:{\"small\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'}},[_vm._v(\" fas fa-brush \")])],1)]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.CalendarColor.Hint\"))+\" \")])],1)]}}],null,false,2101981065),model:{value:(_vm.reservationModel.colorCodeHex),callback:function ($$v) {_vm.$set(_vm.reservationModel, \"colorCodeHex\", $$v)},expression:\"reservationModel.colorCodeHex\"}}):_vm._e(),(!_vm.isOwnerLevel3)?_c('div',{staticClass:\"color-picker-placeholder\"}):_vm._e(),(!_vm.reservationModel.id)?_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.New\"))+\" \")]):_vm._e(),(!!_vm.reservationModel.id)?_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Edit\"))+\" \"+_vm._s(_vm.reservationModel.id)+\" \")]):_vm._e(),(!!_vm.reservationModel.id)?_c('div',{staticClass:\"d-flex align-center form-title\"},[(_vm.showOtaReservationId)?_c('div',{staticClass:\"ml-8 form-subtitle\"},[(!_vm.isPartnerAgency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.otaName)+\" \")]):_c('div',[_vm._v(\" \"+_vm._s(_vm.salesChannelName)+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.reservationModel.otareservationId)+\" \"),(_vm.isPartnerAgency)?_c('v-menu',{ref:\"menu\",attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(_vm.isPartnerAgency)?_c('v-icon',_vm._g({attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary',\"x-small\":\"\"}},on),[_vm._v(\"fas fa-pen \")]):_vm._e()]}}],null,false,1774038451),model:{value:(_vm.menuOpen),callback:function ($$v) {_vm.menuOpen=$$v},expression:\"menuOpen\"}},[_c('v-card',[_c('v-form',{model:{value:(_vm.isMenuValid),callback:function ($$v) {_vm.isMenuValid=$$v},expression:\"isMenuValid\"}},[_c('v-card-title',[_c('span',[_vm._v(_vm._s(_vm.$t(\"ChangeOtaReservationId\")))])]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.maxLength(64)]},model:{value:(_vm.changedOtaReservationId),callback:function ($$v) {_vm.changedOtaReservationId=$$v},expression:\"changedOtaReservationId\"}})],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isMenuValid},on:{\"click\":function($event){return _vm.submitOtaReservationId()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-btn',{on:{\"click\":function($event){return _vm.$refs.menu.save()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1):_vm._e()],1)]):_vm._e()]):_vm._e(),_c('v-spacer'),_c('ReservationFormInfo',{attrs:{\"reservation\":_vm.reservationModel}}),_c('v-btn',{attrs:{\"icon\":\"\",\"loading\":_vm.isSaving},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.isLoadingOrSaving},model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Reservation.BasicInfo\")))]),(_vm.isAllowedToReadEVisitor)?_c('v-tab',{attrs:{\"disabled\":!_vm.reservationModel.id}},[_vm._v(_vm._s(_vm.$t(\"Reservation.EVisitor\", { eVisitorServiceName: _vm.eVisitorIntegration.name, })))]):_vm._e(),(_vm.isAllowedToReadFinancialDocuments)?_c('v-tab',{attrs:{\"disabled\":!_vm.reservationModel.id}},[_vm._v(_vm._s(_vm.$t(\"Reservation.Receipts\")))]):_vm._e(),(_vm.isAllowedToReadPayments)?_c('v-tab',{attrs:{\"disabled\":!_vm.reservationModel.id}},[_vm._v(_vm._s(_vm.$t(\"Reservation.Payments\")))]):_vm._e(),(_vm.isAllowedToReadMessages)?_c('v-tab',{attrs:{\"disabled\":!_vm.reservationModel.id}},[_vm._v(_vm._s(_vm.$t(\"Messages\")))]):_vm._e()],1),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.isLoading,\"top\":\"\"}}),_c('v-tabs-items',{staticClass:\"tab-items\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{staticClass:\"tab-item\",attrs:{\"eager\":\"\"}},[_c('ReservationForm',{ref:\"reservationForm\",attrs:{\"reservation\":_vm.reservationModel,\"availabilities\":_vm.localAvailabilities,\"period\":_vm.period,\"restrictions\":_vm.localRestrictions,\"isLoadingOrSaving\":_vm.isLoadingOrSaving,\"isMobile\":false,\"tenantTags\":_vm.tenantReservationTags},on:{\"overbooked\":function($event){_vm.isOverbooked = $event},\"notAvailable\":function($event){_vm.isNotAvailable = $event},\"refreshReservation\":_vm.refreshReservation,\"removeGuestStart\":function($event){_vm.isLoading = true},\"removeGuestEnd\":function($event){$event == true ? _vm.refreshReservation() : (_vm.isLoading = false)},\"updateGuest\":function($event){_vm.reservationModel.id && _vm.loadReservation(_vm.reservationModel.id)},\"checkInUnit\":function($event){return _vm.checkInSingleUnit($event)},\"checkOutUnit\":function($event){return _vm.checkOutSingleUnit($event)},\"isLoadingChanged\":function($event){_vm.isLoading = $event},\"tagsChanged\":function($event){return _vm.tagsChanged($event)}}})],1),_c('v-tab-item',{staticClass:\"tab-item pa-3\",attrs:{\"disabled\":!_vm.reservationModel.id}},[_c('v-card',{attrs:{\"height\":\"100%\"}},[(!!_vm.reservationModel.id)?_c('EVisitorTable',{ref:\"eVisitorTable\",staticClass:\"fill-height\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : '',attrs:{\"reservationId\":_vm.reservationModel.id,\"tableName\":\"evisitors_reservation\"},on:{\"refresh\":function($event){_vm.reservationModel.id && _vm.loadReservation(_vm.reservationModel.id)}}}):_vm._e()],1)],1),_c('v-tab-item',{staticClass:\"tab-item pa-3\"},[_c('v-card',[(!!_vm.reservationModel.id)?_c('FinancesTable',{ref:\"financestable\",staticClass:\"finances-table\",attrs:{\"type\":\"reservationmodal\",\"reservationId\":_vm.reservationModel.id,\"hasCreditCard\":_vm.reservationModel.hasSavedCreditCard,\"reservationCustomerId\":_vm.reservationModel.customerId,\"reservationPaymentMeansId\":_vm.reservationModel.paymentMeansId,\"invoiceStatusId\":_vm.reservationModel.invoiceStatusId,\"chargeCancellationDisabled\":!_vm.formStateUnchanged,\"chargeCancellationLoading\":_vm.isSaving,\"markAsOverridenLoading\":_vm.markReservationStatusAsOverriden},on:{\"saved\":function($event){return _vm.refreshReservation()},\"paid\":_vm.paymentSaved,\"chargeCancellation\":_vm.checkCancellationPolicies,\"paymentSaved\":_vm.paymentSaved,\"markAsManuallyOverriden\":_vm.confirmMarkedAsManuallyOverriden}}):_vm._e(),_c('v-dialog',{attrs:{\"max-width\":\"400\",\"persistent\":\"\"},model:{value:(_vm.cancellationConfirmDialog),callback:function ($$v) {_vm.cancellationConfirmDialog=$$v},expression:\"cancellationConfirmDialog\"}},[_c('v-card',[_c('v-card-text',[_vm._v(_vm._s(_vm.$t(\"Reservation.Cancellation.FreeConfirmMessage\")))]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"red darken-1\",\"text\":\"\"},on:{\"click\":function($event){_vm.cancellationConfirmDialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":_vm.cancellationConfirmed}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Confirm\"))+\" \")])],1)],1)],1)],1)],1),_c('v-tab-item',{staticClass:\"tab-item pa-3\"},[_c('v-card',[(!!_vm.reservationModel.id)?_c('PaymentsTable',{ref:\"paymentstable\",staticClass:\"payments-table\",attrs:{\"type\":\"reservationmodal\",\"reservationId\":_vm.reservationModel.id,\"reservationStatusId\":_vm.reservationModel.statusId,\"hasCreditCard\":_vm.reservationModel.hasSavedCreditCard,\"reservationCustomerId\":_vm.reservationModel.customerId,\"reservationPaymentMeansId\":_vm.reservationModel.paymentMeansId},on:{\"saved\":_vm.paymentSaved}}):_vm._e()],1)],1),_c('v-tab-item',{staticClass:\"tab-item pa-3\"},[_c('v-card',{attrs:{\"height\":\"100%\"}},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.messagesDirection),callback:function ($$v) {_vm.messagesDirection=$$v},expression:\"messagesDirection\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.All\"))+\" \")]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.Inbound\"))+\" \")]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.Outbound\"))+\" \")])],1),(_vm.reservationModel.id)?_c('MessagesTable',{ref:\"messagesTable\",attrs:{\"direction\":_vm.messagesDirection,\"reservationId\":_vm.reservationModel.id,\"tableName\":'reservationMessages'}}):_vm._e(),_c('div',{staticClass:\"table-buttons\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.newMessageFormOpen = !_vm.newMessageFormOpen}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Message.New\"))+\" \")]),(_vm.tenantWhatsAppIntegrationEnabled)?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.reservationModel.customer.telephoneNumber},on:{\"click\":function($event){return _vm.openWhatsAppConversation()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Message.NewWhatsApp\"))+\" \")]):_vm._e()],1),(_vm.reservationModel.id)?_c('MessageForm',{attrs:{\"open\":_vm.newMessageFormOpen,\"baseMessage\":_vm.newMessageBase,\"baseMessageType\":_vm.newMessageType,\"recipients\":_vm.newMessageRecipients},on:{\"update:open\":function($event){_vm.newMessageFormOpen=$event},\"messageSent\":_vm.refreshMessagesTable}}):_vm._e()],1)],1)],1)],1),_c('div',{staticClass:\"dialog-actions\"},[_c('v-dialog',{attrs:{\"max-width\":\"900\"},model:{value:(_vm.isEvisitorDialogOpen),callback:function ($$v) {_vm.isEvisitorDialogOpen=$$v},expression:\"isEvisitorDialogOpen\"}},[_c('v-card',[_c('v-card-text',[_c('v-row',{staticClass:\"evisitor-update-modal-text-wrapper\",attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-col',{staticClass:\"evisitor-update-modal-text-box\",attrs:{\"md\":\"4\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"Reservation.EvisitorUpdate.UpdateCheckInOnly.Description\", { eVisitorServiceName: _vm.eVisitorIntegration.name } ))+\" \")])]),_c('v-col',{staticClass:\"evisitor-update-modal-text-box\",attrs:{\"md\":\"4\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"Reservation.EvisitorUpdate.UpdateCheckInAndCheckedOut.Description\", { eVisitorServiceName: _vm.eVisitorIntegration.name } ))+\" \")])]),_c('v-col',{staticClass:\"evisitor-update-modal-text-box\",attrs:{\"md\":\"4\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.EvisitorUpdate.DontUpdate.Description\", { eVisitorServiceName: _vm.eVisitorIntegration.name, }))+\" \")])])],1),_c('v-row',{staticClass:\"evisitor-update-modal-buttons-wrapper\",attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-col',{staticClass:\"evisitor-update-modal-text-box\",attrs:{\"md\":\"4\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.confirmEvisitorStayUpdate(true, false)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.EvisitorUpdate.UpdateCheckedInOnly\", { eVisitorServiceName: _vm.eVisitorIntegration.name, }))+\" \")])],1),_c('v-col',{staticClass:\"evisitor-update-modal-text-box\",attrs:{\"md\":\"4\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.confirmEvisitorStayUpdate(true, true)}}},[_vm._v(\" \"+_vm._s(_vm.$t( \"Reservation.EvisitorUpdate.UpdateCheckedInAndCheckedOut\", { eVisitorServiceName: _vm.eVisitorIntegration.name } ))+\" \")])],1),_c('v-col',{staticClass:\"evisitor-update-modal-text-box\",attrs:{\"md\":\"4\"}},[_c('v-btn',{attrs:{\"color\":\"red darken-1\",\"text\":\"\"},on:{\"click\":function($event){return _vm.confirmEvisitorStayUpdate(false, false)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.EvisitorUpdate.DontUpdate\", { eVisitorServiceName: _vm.eVisitorIntegration.name, }))+\" \")])],1)],1)],1)],1)],1)],1),(!_vm.isOwnerLevel3)?_c('v-footer',{staticClass:\"footer\",attrs:{\"elevation\":\"8\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isLoadingOrSaving || !_vm.formValid,\"loading\":_vm.isSaving},on:{\"click\":function($event){_vm.shouldUpdateOnEvisitor\n ? (_vm.isEvisitorDialogOpen = true)\n : _vm.submit([], false, false)}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-spacer'),(\n !!_vm.reservationModel.id &&\n _vm.reservationModel.statusId !== 5 &&\n !_vm.isLoading\n )?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"loading\":_vm.isSaving}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.ResetStatus\"))+\" \")])]}}],null,false,450556909)},[_c('v-list',[(\n _vm.reservationModel.statusId == 1 &&\n !_vm.isReservationOnHoldAndUnitCheckedInOut\n )?_c('v-list-item',{on:{\"click\":function($event){return _vm.confirmReservation()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.GenerateConfirmation\")))])],1):_vm._e(),(\n _vm.reservationModel.statusId == 1 &&\n _vm.isReservationOnHoldAndUnitCheckedInOut\n )?_c('v-list-item',{on:{\"click\":function($event){return _vm.partialConfirmReservation()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.PartialConfirmOnHold\")))])],1):_vm._e(),(_vm.reservationModel.statusId == 1)?_c('v-list-item',{on:{\"click\":function($event){return _vm.cancelReservation()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.CancelReservation\")))])],1):_vm._e(),(_vm.canPutOnHold)?_c('v-list-item',{on:{\"click\":function($event){return _vm.reservationPutOnHold()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.PutOnHold\")))])],1):_vm._e(),(_vm.isReservationConfirmedAndUnitCheckInOut)?_c('v-list-item',{on:{\"click\":function($event){return _vm.partialHoldReservation()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.PartialHoldConfirmed\")))])],1):_vm._e(),(_vm.canMarkAsCheckedIn)?_c('v-list-item',{on:{\"click\":function($event){return _vm.markAsCheckedIn()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.MarkAsCheckedIn\")))])],1):_vm._e(),(_vm.reservationModel.statusId == 2)?_c('v-list-item',{on:{\"click\":function($event){return _vm.cancelReservation()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.CancelReservation\")))])],1):_vm._e(),(_vm.canNoShow)?_c('v-list-item',{on:{\"click\":function($event){return _vm.noShowReservation()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.NoShowReservation\")))])],1):_vm._e(),(_vm.canMarkAsConfirmed)?_c('v-list-item',{on:{\"click\":function($event){return _vm.markAsConfirmed()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.BackToConfirmed\")))])],1):_vm._e(),(_vm.isReservationOnHoldAndUnitCheckedInOut)?_c('v-list-item',{on:{\"click\":function($event){return _vm.markUnitsAsOnHold()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.BackToHold\")))])],1):_vm._e(),(_vm.canReturnToCheckedIn)?_c('v-list-item',{on:{\"click\":function($event){return _vm.returnToCheckedIn()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.BackToCheckedIn\")))])],1):_vm._e(),(_vm.canMarkAsCheckedOut)?_c('v-list-item',{on:{\"click\":function($event){return _vm.markAsCheckedOut()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.MarkAsCheckedOut\")))])],1):_vm._e(),(_vm.canResetStatus(1))?_c('v-list-item',{on:{\"click\":function($event){return _vm.resetReservationStatus(1)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.BackToHold\")))])],1):_vm._e(),(_vm.canResetStatus(2))?_c('v-list-item',{on:{\"click\":function($event){return _vm.resetReservationStatus(2)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservation.BackToConfirmed\")))])],1):_vm._e()],1)],1):_vm._e(),(!!_vm.reservationModel.id && _vm.reservationModel.statusId == 5)?_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isSaving},on:{\"click\":function($event){return _vm.returnToCheckedIn()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.BackToCheckedIn\"))+\" \")]):_vm._e(),(!!_vm.reservationModel.id && _vm.reservationModel.statusId === 5)?_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading || _vm.isSaving,\"disabled\":_vm.isLoading || !_vm.formStateUnchanged || !_vm.hasAccomodationUnitTypes},on:{\"click\":function($event){return _vm.openCheckOut(null)}}},[_vm._v(_vm._s(_vm.$t(\"Reservation.CheckoutGuests\")))]):_vm._e(),(!!_vm.reservationModel.id && !_vm.isLoading)?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.formStateUnchanged,\"loading\":_vm.isSaving},on:{\"click\":_vm.generateOffer}},[_vm._v(_vm._s(_vm.$t(\"Reservation.GenerateOffer\"))+\" \")]):_vm._e(),(!!_vm.reservationModel.id)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"disabled\":!_vm.formStateUnchanged,\"loading\":_vm.isSaving}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"Create invoice\"))+\" \")])]}}],null,false,3231506352)},[_c('v-list',[(\n _vm.reservationModel.accomodationUnitTypes.some(\n function (u) { return u.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OtherNameAndOtherInvoice; }\n )\n )?_c('v-list-item',{on:{\"click\":function($event){return _vm.generateCommissionInvoice([])}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"CommisionInvoice\")))])],1):_vm._e(),_c('v-list-item',{on:{\"click\":_vm.generateAdvanceInvoice}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"DownPayment\")))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.generateGuestInvoice(false)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Invoice\")))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.generateGuestInvoice(true)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Invoices\")))])],1),(_vm.tenantGeneratesDeliveryNotes)?_c('v-list-item',{on:{\"click\":function($event){return _vm.generateDeliveryNote(false)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"DeliveryNote\")))])],1):_vm._e(),(_vm.tenantGeneratesDeliveryNotes)?_c('v-list-item',{on:{\"click\":function($event){return _vm.generateDeliveryNote(true)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"DeliveryNotes\")))])],1):_vm._e(),(\n _vm.tenantGeneratesOwnersInvoices &&\n _vm.accUnitsEligibleForOwnersInvoice.length\n )?_c('v-list-item',{on:{\"click\":function($event){return _vm.generateOwnersInvoice([])}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"OwnersInvoice\")))])],1):_vm._e()],1)],1):_vm._e(),(\n !!_vm.reservationModel.id &&\n (_vm.reservationModel.statusId === 2 || _vm.reservationModel.statusId === 4)\n )?_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading || _vm.isSaving,\"disabled\":_vm.isLoading || !_vm.formStateUnchanged || !_vm.hasAccomodationUnitTypes},on:{\"click\":function($event){return _vm.openCheckIn(true, null)}}},[_vm._v(_vm._s(_vm.$t(\"Reservation.CheckinGuests\")))]):_vm._e(),(_vm.canCheckOutGuests)?_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading || _vm.isSaving,\"disabled\":_vm.isLoading || !_vm.formStateUnchanged || !_vm.hasAccomodationUnitTypes},on:{\"click\":function($event){return _vm.openCheckOut(null)}}},[_vm._v(_vm._s(_vm.$t(\"Reservation.CheckoutGuests\")))]):_vm._e(),(!!_vm.reservationModel.id && _vm.showPaymentLinkButton)?_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading || _vm.isSaving,\"disabled\":_vm.isLoading || !_vm.hasAccomodationUnitTypes},on:{\"click\":function($event){return _vm.openPayByLink()}}},[_vm._v(_vm._s(_vm.$t(\"Reservation.Billing\")))]):_vm._e()],1):_c('v-footer',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isLoadingOrSaving || _vm.reservationIsReadonly,\"loading\":_vm.isSaving},on:{\"click\":function($event){_vm.shouldUpdateOnEvisitor\n ? (_vm.isEvisitorDialogOpen = true)\n : _vm.submit([], false, false)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-spacer'),(\n !_vm.reservationIsReadonly &&\n _vm.reservationModel.statusId == _vm.reservationStatusEnum.Confirmed &&\n !!_vm.reservationModel.id\n )?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isLoadingOrSaving,\"loading\":_vm.isSaving},on:{\"click\":function($event){return _vm.cancelReservation()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.CancelReservation\"))+\" \")]):_vm._e()],1),_c('InvoiceRoutingModal',{attrs:{\"open\":_vm.invoiceRoutingOpen,\"reservationId\":_vm.invoiceRoutingDefaults.reservationId,\"isForCancellation\":_vm.invoiceRoutingIsForCancellation,\"defaultCustomerId\":_vm.invoiceRoutingDefaults.customerId,\"defaultName\":_vm.invoiceRoutingDefaults.customerName,\"defaultOib\":_vm.invoiceRoutingDefaults.customerIdentificationNumber,\"defaultPaymentMeansId\":_vm.invoiceRoutingDefaults.paymentMeansId,\"defaultCardTypeId\":_vm.invoiceRoutingDefaults.cardTypeId,\"originDocumentTypeId\":_vm.invoiceRoutingFinancialDocumentTypeId},on:{\"update:open\":function($event){_vm.invoiceRoutingOpen=$event},\"saved\":_vm.reloadFinancialTable}}),_c('FinancialDocumentModalForm',{ref:\"finDocForm\",attrs:{\"open\":_vm.invoiceEditingOpen,\"documentId\":_vm.finDocId,\"deleteOnClose\":_vm.deleteDocOnClose,\"reservationStatusId\":_vm.reservationModel.statusId},on:{\"update:open\":function($event){_vm.invoiceEditingOpen=$event},\"update:documentId\":function($event){_vm.finDocId=$event},\"update:document-id\":function($event){_vm.finDocId=$event},\"update:deleteOnClose\":function($event){_vm.deleteDocOnClose=$event},\"update:delete-on-close\":function($event){_vm.deleteDocOnClose=$event},\"refresh\":_vm.reloadFinancialTable,\"refreshReservation\":function($event){return _vm.refreshReservation()}}}),_c('CheckInModalForm',{attrs:{\"open\":_vm.isCheckInOpen,\"loading\":_vm.isCheckInLoading || _vm.isLoading,\"value\":_vm.checkedInCustomersOnAccUnitTypes,\"reservation\":_vm.reservationModel,\"scrollId\":_vm.scrollId,\"singleUnit\":_vm.singleUnit},on:{\"update:open\":function($event){_vm.isCheckInOpen=$event},\"saved\":_vm.checkInModalSaved}}),_c('CheckOutModalForm',{attrs:{\"open\":_vm.isCheckOutOpen,\"value\":_vm.checkOutCustomersOnAccUnitTypes,\"reservation\":_vm.reservationModel,\"singleUnit\":_vm.singleUnit},on:{\"update:open\":function($event){_vm.isCheckOutOpen=$event},\"saved\":_vm.checkOutModalSaved,\"fail\":_vm.checkOutModalFailed}}),_c('UnitSelectionModal',{attrs:{\"units\":_vm.unitSelectionUnits,\"open\":_vm.unitSelectionModalOpen,\"action\":_vm.unitSelectionModalAction},on:{\"update:open\":function($event){_vm.unitSelectionModalOpen=$event}}}),_c('SendPaymentLinkDialog',{attrs:{\"open\":_vm.payByLink,\"reservationModel\":_vm.reservationModel,\"payByLinkModel\":_vm.payByLinkResult,\"serviceTypes\":_vm.serviceTypes,\"currencyId\":_vm.currencyId,\"currencyIsoCode\":_vm.currencyIsoCode},on:{\"update:open\":function($event){_vm.payByLink=$event},\"refresh\":function($event){return _vm.refreshReservation()}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// only the important ones for now, feel free to add more as needed/wanted\nexport enum IdentificationDocumentTypesEnum {\n IdCard_HR_eVisitor = 1,\n Passport_HR_eVisitor = 2,\n IdCard_SL_eTurizem = 38,\n Passport_SL_eTurizem = 41,\n IdCard_None = 44,\n Passport_None = 45\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"content-class\":\"check-in__modal\",\"eager\":false},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal.apply(null, arguments)}},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-fade-transition',[(_vm.isLoading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('v-toolbar',{staticClass:\"check-in__modal__toolbar\"},[_c('v-toolbar-title',{staticClass:\"d-flex flex-row align-center\"},[_c('div',[_vm._v(_vm._s(_vm.$t(\"Check in guests\")))]),(_vm.reservation)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservation.id))])]):_vm._e(),(_vm.reservation)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservationStatusDisplay))])]):_vm._e(),(_vm.reservation && _vm.reservation.otaid)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservationOtaDisplay))])]):_vm._e(),(_vm.reservation && _vm.reservation.otaid)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservation.otareservationId))])]):_vm._e(),(_vm.reservation)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservationHolderName))])]):_vm._e()]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeModal}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1),_c('v-progress-linear',{attrs:{\"absolute\":\"\",\"bottom\":\"\",\"color\":\"white\",\"value\":_vm.eVisitorSyncAmount}})],1),_c('v-form',{ref:\"form\",attrs:{\"disabled\":_vm.isLoading}},[(_vm.internalValue.length > 0)?_c('v-tabs',{ref:\"tabs\",attrs:{\"vertical\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_vm._l((_vm.internalValue),function(aut){return _c('v-tab',{key:aut.reservationAccUnitTypeId,attrs:{\"active-class\":\"check-in__modal__tab--active\"}},[_c('span',{staticClass:\"mt-3 mb-3\"},[_c('TableCellUnitTypeDisplay',{attrs:{\"item\":aut}}),_c('span',{class:{'warning--text': aut.isOverTheAllocated()}},[_vm._v(_vm._s(aut.displayCount()))])],1)])}),_vm._l((_vm.internalValue),function(aut,i){return _c('v-tab-item',{key:aut.reservationAccUnitTypeId,attrs:{\"eager\":true,\"value\":i}},[(_vm.open)?_c('v-container',[_vm._l((aut.guests),function(g){return _c('CheckInGuestCard',{key:g.id,ref:\"guestCards\",refInFor:true,class:{ shake: _vm.shake },attrs:{\"allGuests\":_vm.allGuestsFlat,\"guest\":g,\"selectedPropertyId\":aut.propertyId,\"accomodationUnitId\":aut.accomodationUnitId,\"firstGuestOrganizationTypeId\":_vm.firstGuestOrganizationTypeId,\"eVisitorCheck\":_vm.eVisitorCheck,\"eVisitorFacilityService\":_vm.eVisitorFacilityService,\"unitStatus\":_vm.reservationStatusDisplay},on:{\"reservation-holder-select\":function($event){return _vm.holderSelected(g)},\"delete\":function($event){return _vm.removeGuest(aut, g)},\"organizationTypeIdChanged\":function($event){g.eVisitorArrivalOrganizationTypeId = $event},\"dirty\":function($event){return _vm.onDirty(aut, g)}}})}),_c('v-card',{staticClass:\"add-guest-card\",class:{ shake: _vm.shake },attrs:{\"height\":\"120px\"},on:{\"click\":function($event){return _vm.addGuest(aut)}}},[_c('v-icon',{class:{ 'red-fade': _vm.scanFail, shake: _vm.shake },attrs:{\"x-large\":\"\"}},[_vm._v(\" fal fa-plus \")])],1)],2):_vm._e()],1)})],2):_vm._e()],1),_c('v-footer',{staticClass:\"footer\",attrs:{\"elevation\":\"8\"}},[(_vm.connected)?_c('v-tooltip',{attrs:{\"absolute\":\"\",\"attach\":\"\",\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-icon',{class:{ 'red-fade': _vm.scanFail, shake: _vm.shake }},[_vm._v(\"fas fa-check-circle\")])],1)]}}],null,false,1484966195)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Scanner service connected\")))])]):_vm._e(),(_vm.connected)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.debug = !_vm.debug}}},[_c('v-icon',[_vm._v(\"fas fa-bug\")])],1):_vm._e(),_c('v-spacer'),_c('v-checkbox',{staticClass:\"mx-1 my-0\",attrs:{\"label\":_vm.updateStatusLabel,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.updateResStatus),callback:function ($$v) {_vm.updateResStatus=$$v},expression:\"updateResStatus\"}}),_c('v-checkbox',{staticClass:\"mx-1 my-0\",attrs:{\"label\":_vm.$t('Register on eVisitor', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.eVisitorCheck),callback:function ($$v) {_vm.eVisitorCheck=$$v},expression:\"eVisitorCheck\"}}),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"color\":\"primary\",\"disabled\":_vm.isLoading,\"loading\":_vm.isLoading},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))])],1),_c('scanner-debug',{attrs:{\"open\":_vm.debug,\"data\":_vm.debugData},on:{\"update:open\":function($event){_vm.debug=$event},\"clear\":function($event){_vm.debugData = []},\"pasted\":function($event){_vm.debugData = $event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { EVisitorIntegrationEnum } from \"@/shared/models/enums.type\";\nimport { ReservationCheckInCustomerData } from \"./CheckinTypes\";\nimport { Country } from \"@/shared/models/country\";\nimport { IdentificationDocumentTypesEnum } from \"@/shared/enums/identificationDocumentTypes.type\";\n\nexport interface OcrData {\n line1: string | null;\n line2: string | null;\n line3: string | null;\n\n docId: string | null;\n docType: \"IDENTITY CARD\" | \"PASSPORT\";\n docNumber: string | null;\n\n surname: string | null;\n forename: string | null;\n secondName: string | null;\n forenames: string | null;\n\n dateOfBirth: string;\n expiryDate: string;\n\n issuingState: string | null;\n nationality: string | null;\n\n sex: \"Male\" | \"Female\";\n\n optionalData1: string | null;\n optionalData2: string | null;\n\n checkDigitValid: boolean;\n\n isValid: boolean;\n}\n\n/**\n * Finds nokumo country. Handles override\n * @param ocrCountry ISO3, but in some cases might be different (e.g. 'D' instead of 'DEU')\n * @param countries nokumo countries to match against\n */\nfunction findCountry(\n ocrCountry: string | null | undefined,\n countries: Country[]\n): Country | undefined {\n if (!ocrCountry) return undefined;\n\n const term = ocrCountry.toUpperCase();\n\n let found = countries.find((x) => term === x.mrzCodeOverride?.toUpperCase());\n\n if (!found) {\n found = countries.find((x) => term === x.isoThreeLetterCode?.toUpperCase());\n }\n\n return found;\n}\n\nexport function getIdentificationDocumentType(eVisitorIntegrationId: number, docTypeName: \"IDENTITY CARD\" | \"PASSPORT\"): number | null {\n // (borna) this... I don't know, I feel like there should be a better way but I can't think of it at the moment\n switch (eVisitorIntegrationId) {\n case EVisitorIntegrationEnum.HR: {\n if (docTypeName === \"IDENTITY CARD\") {\n return IdentificationDocumentTypesEnum.IdCard_HR_eVisitor;\n } else if (docTypeName === \"PASSPORT\") {\n return IdentificationDocumentTypesEnum.Passport_HR_eVisitor;\n }\n break;\n }\n case EVisitorIntegrationEnum.SL: {\n if (docTypeName === \"IDENTITY CARD\") {\n return IdentificationDocumentTypesEnum.IdCard_SL_eTurizem;\n } else if (docTypeName === \"PASSPORT\") {\n return IdentificationDocumentTypesEnum.Passport_SL_eTurizem;\n }\n break;\n }\n default: {\n if (docTypeName === \"IDENTITY CARD\") {\n return IdentificationDocumentTypesEnum.IdCard_None;\n } else if (docTypeName === \"PASSPORT\") {\n return IdentificationDocumentTypesEnum.Passport_None;\n }\n break;\n }\n }\n\n return null;\n}\n\nexport function assignToReservationCheckInCustomerData(\n target: ReservationCheckInCustomerData,\n values: OcrData,\n countries: Country[],\n eVisitorIntegrationId: number\n) {\n if (!values) return;\n\n target.identificationDocumentTypeId = getIdentificationDocumentType(eVisitorIntegrationId, values.docType);\n\n if (values.sex === \"Male\") {\n target.genderId = 1; // Male\n } else if (values.sex === \"Female\") {\n target.genderId = 2; // Female\n }\n\n if (values.docNumber) {\n target.identificationDocumentNumber = values.docNumber;\n }\n\n if (values.nationality) {\n const found = findCountry(values.nationality, countries);\n\n if (found) {\n target.countryOfBirthId = found.id;\n target.citizenshipId = found.id;\n }\n }\n\n if (values.issuingState) {\n const found = findCountry(values.issuingState, countries);\n\n if (found) {\n target.countryOfResidenceId = found.id;\n }\n }\n\n if (values.forename) {\n target.firstName = values.forename;\n }\n if (values.secondName) {\n target.middleName = values.secondName;\n }\n if (values.surname) {\n target.lastName = values.surname;\n }\n\n if (values.dateOfBirth) {\n target.dateOfBirth = values.dateOfBirth.substr(0, 10);\n }\n\n target.isDirty = true;\n target.isEmpty = false;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"mb-4\",attrs:{\"disabled\":_vm.guest.eVisitorIsCheckedIn}},[(_vm.guest.eVisitorCheckinResult)?_c('v-alert',{attrs:{\"type\":_vm.guest.eVisitorCheckinResult.success ? 'success' : 'error'}},[_vm._v(\" \"+_vm._s(_vm.guest.eVisitorCheckinResult.message)+\" \")]):(_vm.guest.hasScanIssues)?_c('v-alert',{attrs:{\"type\":\"warning\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Scan input may contain errors. Please verify the contents.\"))+\" \")]):_vm._e(),_c('div',{staticClass:\"check-in__card__container pa-4\"},[_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('First name') + '*',\"rules\":_vm.rules.firstName},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.firstName),callback:function ($$v) {_vm.$set(_vm.guest, \"firstName\", $$v)},expression:\"guest.firstName\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Middle name')},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.middleName),callback:function ($$v) {_vm.$set(_vm.guest, \"middleName\", $$v)},expression:\"guest.middleName\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Last name') + '*',\"rules\":_vm.rules.lastName},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.lastName),callback:function ($$v) {_vm.$set(_vm.guest, \"lastName\", $$v)},expression:\"guest.lastName\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Email'),\"rules\":_vm.rules.email},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.eMail),callback:function ($$v) {_vm.$set(_vm.guest, \"eMail\", $$v)},expression:\"guest.eMail\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Telephone number'),\"rules\":_vm.rules.telephoneNumber,\"placeholder\":\"+385 99 1111 222\"},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.guest, \"telephoneNumber\", $$v)},expression:\"guest.telephoneNumber\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('DateField',{attrs:{\"label\":_vm.$t('Date of birth') + _vm.eVisitStar('dateOfBirth'),\"max\":new Date().toISOString().substr(0, 10),\"activePicker\":\"YEAR\",\"editable\":true,\"rules\":_vm.rules.eVisitorRequired},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.guest, \"dateOfBirth\", $$v)},expression:\"guest.dateOfBirth\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Reservation holder'),\"input-value\":_vm.guest.isReservationHolder},on:{\"click\":_vm.reservationHolderFlagClicked}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Identification document number') +\n _vm.eVisitStar('identificationDocumentNumber'),\"rules\":_vm.rules.identificationDocumentNumber},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.identificationDocumentNumber),callback:function ($$v) {_vm.$set(_vm.guest, \"identificationDocumentNumber\", $$v)},expression:\"guest.identificationDocumentNumber\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Identification document type') +\n _vm.eVisitStar('identificationDocumentTypeId'),\"items\":_vm.identificationDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"rules\":_vm.rules.eVisitorRequired},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.identificationDocumentTypeId),callback:function ($$v) {_vm.$set(_vm.guest, \"identificationDocumentTypeId\", $$v)},expression:\"guest.identificationDocumentTypeId\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of residence') + _vm.eVisitStar('countryOfResidenceId'),\"items\":_vm.countries,\"item-value\":\"id\",\"rules\":_vm.rules.eVisitorRequired},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.guest, \"countryOfResidenceId\", $$v)},expression:\"guest.countryOfResidenceId\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[(_vm.guest.countryOfResidenceId === 1)?_c('v-autocomplete',{attrs:{\"label\":_vm.$t('City') + _vm.eVisitStar('city'),\"rules\":_vm.rules.city.concat( (_vm.eVisitorIntegration.id === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) ),\"items\":_vm.cities,\"loading\":_vm.isCitiesLoading,\"search-input\":_vm.citiesSearch,\"auto-select-first\":true,\"item-text\":\"name\",\"item-value\":\"name\",\"return-object\":false},on:{\"update:searchInput\":function($event){_vm.citiesSearch=$event},\"update:search-input\":function($event){_vm.citiesSearch=$event},\"input\":_vm.setDirty,\"change\":_vm.setCTCategory},model:{value:(_vm.guest.city),callback:function ($$v) {_vm.$set(_vm.guest, \"city\", $$v)},expression:\"guest.city\"}}):_c('v-text-field',{attrs:{\"label\":_vm.$t('City') + _vm.eVisitStar('city'),\"rules\":_vm.rules.city.concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) )},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.city),callback:function ($$v) {_vm.$set(_vm.guest, \"city\", $$v)},expression:\"guest.city\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of citizenship') + _vm.eVisitStar('citizenshipId'),\"items\":_vm.countries,\"item-value\":\"id\",\"rules\":[].concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) )},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.citizenshipId),callback:function ($$v) {_vm.$set(_vm.guest, \"citizenshipId\", $$v)},expression:\"guest.citizenshipId\"}})],1),_c('div',{staticClass:\"check-in__card__input\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of birth') + _vm.eVisitStar('countryOfBirthId'),\"items\":_vm.countries,\"item-value\":\"id\",\"rules\":[].concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) )},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.countryOfBirthId),callback:function ($$v) {_vm.$set(_vm.guest, \"countryOfBirthId\", $$v)},expression:\"guest.countryOfBirthId\"}})],1),_c('div',{staticClass:\"check-in__card__input check-in__card__input--last\"},[_c('v-radio-group',{attrs:{\"row\":\"\",\"rules\":_vm.rules.gender},model:{value:(_vm.guest.genderId),callback:function ($$v) {_vm.$set(_vm.guest, \"genderId\", $$v)},expression:\"guest.genderId\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('Male').substr(0, 1),\"value\":1}}),_c('v-radio',{attrs:{\"label\":_vm.$t('Female').substr(0, 1),\"value\":2}}),_c('span',[_vm._v(_vm._s(_vm.eVisitStar(\"genderId\")))])],1)],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.eVisitorOpen = _vm.eVisitorOpen === -1 ? 0 : -1}}},[(_vm.eVisitorOpen === 0)?_c('v-icon',[_vm._v(\"fa fa-caret-up\")]):_c('v-icon',[_vm._v(\"fa fa-caret-down\")])],1)],1),_c('v-expansion-panels',{attrs:{\"flat\":\"\"},model:{value:(_vm.eVisitorOpen),callback:function ($$v) {_vm.eVisitorOpen=$$v},expression:\"eVisitorOpen\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-content',{staticClass:\"padding-fix\",attrs:{\"eager\":true}},[_c('div',{staticClass:\"check-in__card__container\"},[_c('div',{staticClass:\"check-in__card__input\"},[_c('v-select',{attrs:{\"label\":_vm.$t('City tax category') +\n _vm.eVisitStar('eVisitorPaymentCategoryId'),\"items\":_vm.cityTaxCategories,\"rules\":_vm.rules.eVisitorRequired,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); }},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.eVisitorPaymentCategoryId),callback:function ($$v) {_vm.eVisitorPaymentCategoryId=$$v},expression:\"eVisitorPaymentCategoryId\"}})],1),(\n _vm.arrivalOrganizationTypes && _vm.arrivalOrganizationTypes.length > 0\n )?_c('div',{staticClass:\"check-in__card__input\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Arrival organisation type') +\n _vm.eVisitStar('eVisitorArrivalOrganizationTypeId'),\"items\":_vm.arrivalOrganizationTypes,\"rules\":_vm.rules.eVisitorRequired,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); }},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.eVisitorArrivalOrganizationTypeId),callback:function ($$v) {_vm.eVisitorArrivalOrganizationTypeId=$$v},expression:\"eVisitorArrivalOrganizationTypeId\"}})],1):_vm._e(),_c('div',{staticClass:\"check-in__card__input check-in__card__input--date\"},[_c('DateField',{attrs:{\"label\":_vm.$t('Check-in date') + _vm.eVisitStar('checkInDate'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"outlined\":\"\"},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.checkInDate),callback:function ($$v) {_vm.checkInDate=$$v},expression:\"checkInDate\"}})],1),_c('div',{staticClass:\"check-in__card__input check-in__card__input--date\"},[_c('DateField',{attrs:{\"label\":_vm.$t('Check-out date') + _vm.eVisitStar('checkOutDate'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"outlined\":\"\"},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.checkOutDate),callback:function ($$v) {_vm.checkOutDate=$$v},expression:\"checkOutDate\"}})],1),_c('div',{staticClass:\"check-in__card__input check-in__card__input--time\"},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-in time') + _vm.eVisitStar('eVisitorCheckInTime'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"range\":\"\",\"outlined\":\"\"},on:{\"input\":_vm.setDirty,\"update:error\":_vm.expandOnError},model:{value:(_vm.guest.eVisitorCheckInTime),callback:function ($$v) {_vm.$set(_vm.guest, \"eVisitorCheckInTime\", $$v)},expression:\"guest.eVisitorCheckInTime\"}})],1),_c('div',{staticClass:\"check-in__card__input check-in__card__input--time\"},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-out time') +\n _vm.eVisitStar('eVisitorExpectedCheckoutTime'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"range\":\"\",\"outlined\":\"\"},on:{\"input\":_vm.setDirty,\"update:error\":_vm.expandOnError},model:{value:(_vm.guest.eVisitorExpectedCheckoutTime),callback:function ($$v) {_vm.$set(_vm.guest, \"eVisitorExpectedCheckoutTime\", $$v)},expression:\"guest.eVisitorExpectedCheckoutTime\"}})],1),_c('v-spacer'),(_vm.renderFacilityInfo)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.facilityOpen = _vm.facilityOpen === -1 ? 0 : -1}}},[(_vm.facilityOpen === 0)?_c('v-icon',[_vm._v(\"fa fa-caret-up\")]):_c('v-icon',[_vm._v(\"fa fa-caret-down\")])],1):_vm._e()],1)])],1)],1),_c('v-expansion-panels',{attrs:{\"flat\":\"\"},model:{value:(_vm.facilityOpen),callback:function ($$v) {_vm.facilityOpen=$$v},expression:\"facilityOpen\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-content',{staticClass:\"padding-fix\",attrs:{\"eager\":true}},[_c('div',{staticClass:\"check-in__card__container\"},[_c('div',{staticClass:\"check-in__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Street name'),\"rules\":_vm.rules.streetName},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.streetName),callback:function ($$v) {_vm.$set(_vm.guest, \"streetName\", $$v)},expression:\"guest.streetName\"}})],1),_c('div',{staticClass:\"check-in__card__input check-in__card__input--house-number\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('House number'),\"rules\":_vm.rules.houseNumber},on:{\"input\":_vm.setDirty},model:{value:(_vm.guest.houseNumber),callback:function ($$v) {_vm.$set(_vm.guest, \"houseNumber\", $$v)},expression:\"guest.houseNumber\"}})],1),(_vm.arrivalReasons && _vm.arrivalReasons.length > 0)?_c('div',{staticClass:\"check-in__card__input check-in__card__input--arrival-reason\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Arrival reason'),\"items\":_vm.arrivalReasons,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"clearable\":\"\"},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.guest.arrivalReasonId),callback:function ($$v) {_vm.$set(_vm.guest, \"arrivalReasonId\", $$v)},expression:\"guest.arrivalReasonId\"}})],1):_vm._e(),(_vm.renderFacilityInfo)?_c('div',{staticClass:\"check-in__card__input bold-label\"},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property') + _vm.eVisitStar('propertyId'),\"items\":_vm.properties,\"rules\":_vm.rules.eVisitorRequired,\"disabled\":_vm.guest.eVisitorIsCheckedIn,\"item-value\":\"propertyId\",\"item-text\":\"name\"},on:{\"change\":_vm.setCTCategory,\"update:error\":_vm.expandOnError},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.name)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(item.address)+\", \"+_vm._s(item.postalCodeAndCity)+\" \")])],1)],1)]}}],null,false,3275397695),model:{value:(_vm.facilityPropertyId),callback:function ($$v) {_vm.facilityPropertyId=$$v},expression:\"facilityPropertyId\"}})],1):_vm._e(),(_vm.renderFacilityInfo)?_c('div',{staticClass:\"check-in__card__input bold-label\"},[_c('v-select',{attrs:{\"label\":_vm.$t('eVisitor facility', {eVisitorServiceName: _vm.eVisitorIntegrationName}) + _vm.eVisitStar('eVisitorFacilityId'),\"items\":_vm.sortedEVisitorFacilities,\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.eVisitorFacilityIdOnProperty(\n _vm.guest.eVisitorFacilityPropertyId\n )] ),\"disabled\":_vm.guest.eVisitorIsCheckedIn,\"item-value\":\"id\",\"item-text\":function (x) { return (x.accountName ? x.accountName : x.facility); },\"item-disabled\":function (x) { return !x.status; }},on:{\"update:error\":_vm.expandOnError},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.accountName ? item.accountName : item.facility)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.numberOfFilledBeds(item))+\" / \"+_vm._s(item.numberOfBeds)+\" \")])],1)],1)]}}],null,false,450072088),model:{value:(_vm.guest.eVisitorFacilityId),callback:function ($$v) {_vm.$set(_vm.guest, \"eVisitorFacilityId\", $$v)},expression:\"guest.eVisitorFacilityId\"}})],1):_vm._e()])])],1)],1),(!_vm.guest.isCheckedIn)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\",\"absolute\":\"\",\"right\":\"\",\"top\":\"\",\"color\":\"error\"},on:{\"click\":_vm.deleteItem}},[_c('v-icon',[_vm._v(\"fal fa-trash\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Country } from \"@/shared/models/country\";\nimport { Getter } from \"vuex-class\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport {\n eVisitorCityTaxPaymentCategoriesEnum,\n ReservationCheckInCustomerData,\n} from \"./CheckinTypes\";\nimport { CityTaxCategory } from \"@/shared/models/cityTaxCategory\";\nimport { ArrivalOrganizationType } from \"@/shared/models/arrivalOrganizationType\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { City } from \"@/shared/models/city\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n ReservationEVisitorCollapseExpandHideInfoEnum,\n} from \"@/shared/models/enums.type\";\nimport {\n EVisitorFacility,\n EVisitorFacilityService,\n} from \"./eVisitorFacilityService\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport _ from \"lodash\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport { ArrivalReason } from \"@/shared/models/arrivalReason\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\n@Component({ components: { DateField, TimeField } })\nexport default class CheckInGuestCard extends Vue {\n @Prop() allGuests?: ReservationCheckInCustomerData[];\n @Prop() guest?: ReservationCheckInCustomerData;\n @Prop() firstGuestOrganizationTypeId?: number | null;\n @Prop() eVisitorCheck?: boolean;\n @Prop() eVisitorFacilityService?: EVisitorFacilityService;\n @Prop() selectedPropertyId?: number;\n @Prop() accomodationUnitId?: number;\n @Prop() unitStatus?: string;\n\n @Getter(\"globalFilters/properties\")\n allUserProperties?: GlobalFilterProperty[];\n\n @Getter(\"codebooks/identificationDocumentTypes\")\n identificationDocumentTypes?: IdentificationDocumentType[];\n\n @Getter(\"codebooks/arrivalReasons\")\n arrivalReasons?: ArrivalReason[];\n\n @Getter(\"appParams/reservationEVisitorCollapseExpandHideFacilityInfo\")\n reservationEVisitorCollapseExpandHideFacilityInfo?: number;\n\n mounted() {\n if (this.guest) {\n this.loadCities(this.guest.city);\n if (!this.guest.isCheckedIn) {\n this.guest.eVisitorFacilityPropertyId = this.selectedPropertyId ?? null;\n }\n }\n }\n\n get renderFacilityInfo() {\n this.facilityOpen =\n this.reservationEVisitorCollapseExpandHideFacilityInfo ==\n ReservationEVisitorCollapseExpandHideInfoEnum.Expanded\n ? 0\n : -1;\n return this.reservationEVisitorCollapseExpandHideFacilityInfo !=\n ReservationEVisitorCollapseExpandHideInfoEnum.Hidden\n ? true\n : false;\n }\n\n get properties() {\n if (!this.allUserProperties) return [] as GlobalFilterProperty[];\n if (this.guest?.eVisitorIsCheckedIn || this.guest?.eVisitorIsCheckedOut) {\n return _.sortBy(this.allUserProperties, (x) => x.name);\n }\n return _.sortBy(\n this.allUserProperties?.filter((x) => x.status !== false),\n (x) => x.name\n );\n }\n\n eVisitorOpen = 0;\n facilityOpen = 0;\n\n eVisitorIntegrationEnum = EVisitorIntegrationEnum;\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n eVisitStar(fieldName: string) {\n if (\n this.eVisitorCheck &&\n this.eVisitorIntegrationId !== EVisitorIntegrationEnum.None\n ) {\n if (this.eVisitorIntegrationId === EVisitorIntegrationEnum.HR) return \"*\";\n if (this.eVisitorIntegrationId === EVisitorIntegrationEnum.SL) {\n const required = [\n \"genderId\",\n \"dateOfBirth\",\n \"countryOfResidenceId\",\n \"identificationDocumentTypeId\",\n \"identificationDocumentNumber\",\n \"eVisitorPaymentCategoryId\",\n \"checkInDate\",\n \"checkOutDate\",\n \"eVisitorCheckInTime\",\n \"eVisitorExpectedCheckoutTime\",\n \"propertyId\",\n \"eVisitorFacilityId\",\n ];\n\n return required.includes(fieldName) ? \"*\" : \"\";\n }\n }\n\n return \"\";\n }\n\n @Watch(\"eVisitorOpen\")\n eVisitorOpenChanged(fresh: number) {\n if (fresh == -1) {\n this.facilityOpen = -1;\n } else if (fresh == 0) {\n this.facilityOpen =\n this.reservationEVisitorCollapseExpandHideFacilityInfo ==\n ReservationEVisitorCollapseExpandHideInfoEnum.Expanded\n ? 0\n : -1;\n }\n }\n\n get sortedEVisitorFacilities() {\n return this.guest?.eVisitorFacilityPropertyId\n ? _.sortBy(\n this.eVisitorFacilities(this.guest.eVisitorFacilityPropertyId),\n (g) => (g.accountName ? g.accountName : g.facility)\n )\n : [];\n }\n\n @Watch(\"sortedEVisitorFacilities\")\n sortedEVisitorFacilitiesChanged(fresh: EVisitorFacility[]) {\n if (fresh.length === 1 && this.guest) {\n this.guest.eVisitorFacilityId = fresh[0].id;\n } else if (this.accomodationUnitId && this.guest) {\n const defaultFacilities = fresh.filter((e) =>\n e.defaultForAccomodationUnitsIds.some(\n (u) => u === this.accomodationUnitId\n )\n );\n if (defaultFacilities.length === 1) {\n this.guest.eVisitorFacilityId = defaultFacilities[0].id;\n } else if (defaultFacilities.length === 0) {\n const activeFacilities = fresh.filter((f) => f.status === true);\n if (activeFacilities.length === 1) {\n this.guest.eVisitorFacilityId = activeFacilities[0].id;\n }\n }\n }\n }\n\n get facilityPropertyId() {\n return this.guest?.eVisitorFacilityPropertyId ?? null;\n }\n set facilityPropertyId(val: number | null) {\n if (this.guest) {\n if (this.guest.eVisitorFacilityPropertyId !== val) {\n this.guest.eVisitorFacilityPropertyId = val;\n this.guest.eVisitorFacilityId = null;\n }\n }\n }\n\n get isEmpty() {\n return this.guest?.isEmpty ?? true;\n }\n get isDirty() {\n return this.guest?.isDirty ?? false;\n }\n setDirty() {\n if (this.guest) {\n const alreadyDirty = this.guest.isDirty;\n\n this.guest.isDirty = true;\n this.guest.isEmpty = false;\n\n if (!alreadyDirty) {\n this.$emit(\"dirty\");\n }\n }\n }\n\n numberOfFilledBeds(facility: EVisitorFacility) {\n const baseline = facility.numberOfCheckedInBeds;\n const selectedOnForm =\n this.allGuests?.filter(\n (x) => x.eVisitorFacilityId === facility.id && !x.eVisitorIsCheckedOut\n )?.length ?? 0;\n\n return baseline + selectedOnForm;\n }\n\n eVisitorFacilities(eVisitorFacilityPropertyId: number) {\n if (!eVisitorFacilityPropertyId) return [];\n\n if (this.eVisitorFacilityService) {\n if (\n !this.eVisitorFacilityService.groups.some(\n (x) => x.propertyId === eVisitorFacilityPropertyId\n )\n ) {\n this.eVisitorFacilityService.loadGroup(eVisitorFacilityPropertyId);\n }\n\n const group = this.eVisitorFacilityService.findGroup(\n eVisitorFacilityPropertyId\n )?.facilities;\n\n return group;\n }\n\n return [];\n }\n\n get eVisitorPaymentCategoryId() {\n return (\n this.guest?.getEffectiveEVisitorPaymentCategoryId(\n this.eVisitorIntegrationId\n ) ?? null\n );\n }\n set eVisitorPaymentCategoryId(val: number | null) {\n if (this.guest) {\n this.setDirty();\n this.guest.eVisitorPaymentCategoryId = val;\n }\n }\n\n get checkInDate() {\n return this.guest?.checkInDate ?? null;\n }\n set checkInDate(val: string | null) {\n if (this.guest) {\n this.setDirty();\n this.guest.checkInDate = this.guest.eVisitorCheckInDate = val ?? null;\n }\n }\n\n get checkOutDate() {\n return this.guest?.checkOutDate ?? null;\n }\n set checkOutDate(val: string | null) {\n if (this.guest) {\n this.setDirty();\n this.guest.checkOutDate = this.guest.eVisitorExpectedCheckoutDate =\n val ?? null;\n }\n }\n\n get eVisitorArrivalOrganizationTypeId() {\n return (\n this.guest?.eVisitorArrivalOrganizationTypeId ??\n this.firstGuestOrganizationTypeId ??\n null\n );\n }\n set eVisitorArrivalOrganizationTypeId(val: number | null) {\n if (this.guest) {\n this.setDirty();\n this.guest.eVisitorArrivalOrganizationTypeId = val;\n this.$emit(\"organizationTypeIdChanged\", val);\n }\n }\n\n isCitiesLoading = false;\n citiesSearch = \"\" as string | null | undefined;\n cities = [] as City[];\n\n @Watch(\"citiesSearch\")\n citiesSearchChanged(\n fresh: string | null | undefined,\n old: string | null | undefined\n ) {\n if (!fresh || fresh === \"\" || fresh === old) return;\n\n this.debouncedCitySearch(fresh);\n }\n\n debouncedCitySearch = _.debounce(this.loadCities, 500);\n\n async loadCities(search: string | null | undefined): Promise {\n this.isCitiesLoading = true;\n\n return this.axios\n .get>(\"/codebooks/cities\", {\n params: {\n name: search,\n $top: 50,\n $skip: 0,\n $orderBy: \"name asc\",\n },\n })\n .then(({ data }) => {\n this.cities = data.result;\n return this.cities;\n })\n .finally(() => {\n this.isCitiesLoading = false;\n this.setCTCategory();\n });\n }\n\n setCTCategory() {\n if (this.guest?.countryOfResidenceId === 1) {\n const selectedProperty = this.properties.find(\n (x) => x.propertyId == this.facilityPropertyId\n );\n if (selectedProperty) {\n const propertyCityName = selectedProperty.postalCodeAndCity\n .split(\",\")[1]\n .trim();\n if (propertyCityName === this.guest.city) {\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.Lokalac;\n }\n }\n }\n }\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"codebooks/countries\") _countries?: Country[];\n get countries() {\n const countriesList =\n this._countries?.map((x) => ({\n id: x.id,\n text: this.language === \"hr-HR\" ? x.name : x.englishName,\n })) ?? [];\n\n return _.sortBy(countriesList, (x) => x.text);\n }\n @Getter(\"codebooks/cityTaxCategories\") cityTaxCategories?: CityTaxCategory[];\n @Getter(\"codebooks/arrivalOrganizationTypes\")\n arrivalOrganizationTypes?: ArrivalOrganizationType[];\n\n get rules() {\n const required = (value: any) => !!value || this.$t(\"Validation.Required\");\n const requiredIfDirty = (value: any) => {\n const r = required(value);\n return this.isDirty ? r : true;\n };\n const requiredIfEVisitor = (value: any) => {\n const r = required(value);\n return !this.isEmpty && this.eVisitorCheck ? r : true;\n };\n const maxLength = (max: number) => (value: string) =>\n !value ||\n value.length <= max ||\n this.$t(\"Validation.MaxLength\", { count: max });\n\n const requiredGender = (value: number) => {\n //only male(1) or female(2) should be accepted for eVisitor\n if (value != 1 && value != 2) {\n value = 0;\n }\n const r = required(value);\n return this.eVisitorCheck ? r : true;\n };\n\n return {\n firstName: [requiredIfDirty, maxLength(50)],\n lastName: [requiredIfDirty, maxLength(50)],\n email: [\n maxLength(100),\n (value: string) =>\n !value ||\n /^$|.+@.+\\..+/.test(value) ||\n this.$t(\"Validation.EmailFormat\"),\n ],\n telephoneNumber: [maxLength(100)],\n city: [maxLength(50)],\n gender: [requiredGender],\n streetName: [maxLength(100)],\n houseNumber: [maxLength(10)],\n identificationDocumentNumber: [maxLength(50), requiredIfEVisitor],\n eVisitorRequired: [requiredIfEVisitor],\n eVisitorFacilityIdOnProperty: (selectedPropertyId: any) => (val: any) => {\n const shouldValidate =\n (this.isDirty || !this.isEmpty) && this.eVisitorCheck;\n const hasFacility = this.eVisitorFacilities(selectedPropertyId)?.some(\n (y) => y.id === val\n );\n\n return !shouldValidate || hasFacility;\n },\n dateTimesOrder: () => {\n // Validation.SetCheckedInCustomers.CheckInDateTimeMustBeLessThanCheckOut\n if (this.guest) {\n const allAreSet =\n this.checkInDate &&\n this.guest.eVisitorCheckInTime &&\n this.checkOutDate &&\n this.guest.eVisitorExpectedCheckoutTime;\n\n if (!allAreSet) {\n // there is required validator for this cases\n return true;\n } else {\n const from =\n this.checkInDate?.substr(0, 10) +\n (this.guest.eVisitorCheckInTime ?? \"00:00\");\n const to =\n this.checkOutDate?.substr(0, 10) +\n (this.guest.eVisitorExpectedCheckoutTime ?? \"00:00\");\n\n return from > to\n ? this.$t(\n \"Validation.SetCheckedInCustomers.CheckInDateTimeMustBeLessThanCheckOut\"\n ).toString()\n : true;\n }\n }\n\n return true;\n },\n };\n }\n\n expandOnError(evt: boolean) {\n if (evt) {\n this.eVisitorOpen = 0; // 0 is the first(only) element\n }\n }\n\n reservationHolderFlagClicked(evt: MouseEvent) {\n this.setDirty();\n evt.stopPropagation();\n evt.preventDefault();\n this.$emit(\"reservation-holder-select\");\n }\n\n deleteItem() {\n const name = `${this.guest?.firstName} ${this.guest?.lastName}`;\n const message =\n this.$t(\"DeleteConfirmation\") +\n (name.trim().length > 0 ? \" \" + name : \"\");\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.$emit(\"delete\");\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInGuestCard.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInGuestCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckInGuestCard.vue?vue&type=template&id=84d71ef2&scoped=true&\"\nimport script from \"./CheckInGuestCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckInGuestCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckInGuestCard.vue?vue&type=style&index=0&id=84d71ef2&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 \"84d71ef2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VAutocomplete,VBtn,VCard,VCheckbox,VExpansionPanel,VExpansionPanelContent,VExpansionPanels,VIcon,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VRadio,VRadioGroup,VSelect,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"tile\":\"\",\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-card',{staticClass:\"scanner-debug\"},[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('div',{staticClass:\"mr-4\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"small\":\"\",\"dark\":\"\",\"color\":\"accent\"},on:{\"click\":_vm.downloadJson}},[_c('v-icon',[_vm._v(\"fal fa-download\")])],1)],1),_c('v-toolbar-title',[_vm._v(\"Scanner debug\")]),_c('div',{staticClass:\"px-4\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.$emit('clear')}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-ban\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":_vm.copy}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-copy\")])],1),(_vm.isDebug)?_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":_vm.paste}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-paste\")])],1):_vm._e()],1),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){_vm.internalOpen = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_vm._l((_vm.data),function(descriptor){return _c('v-card',{key:descriptor.id,staticClass:\"scanner-debug__card\"},[(descriptor.raw && descriptor.raw !== '')?_c('v-expansion-panels',[_c('v-expansion-panel',{class:descriptor.color},[_c('v-expansion-panel-header',{staticClass:\"d-flex flex-row\"},[_vm._v(\" SCAN:\"+_vm._s(descriptor.id)+\" \"),_c('v-spacer'),_vm._v(\" \"+_vm._s(descriptor.timestamp)+\" \")],1),_c('v-expansion-panel-content',[_c('pre',[_vm._v(_vm._s(descriptor.raw))])])],1)],1):_vm._e(),(descriptor.events.length)?_c('div',_vm._l((descriptor.events),function(event){return _c('div',{key:event.id},[_c('v-divider'),_c('div',{staticClass:\"d-flex flex-row px-4\"},[_c('span',[_vm._v(_vm._s(event.name))]),_c('v-spacer'),_c('span',[_vm._v(_vm._s(event.timestamp))])],1)],1)}),0):_vm._e()],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { saveFile } from \"@/shared/saveFile\";\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\n\nexport type RawScanDescriptor = {\n id: number;\n reservationId: number;\n timestamp: string;\n color: string;\n raw: any;\n events: {\n id: number;\n timestamp: string;\n name: string;\n }[];\n};\n\n@Component\nexport default class ScannerDebug extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() data?: RawScanDescriptor[];\n\n get isDebug() {\n // import is for our convinience,\n // it shouldn't show on prod as not to confuse anyone\n return (\n location?.hostname === \"localhost\" ||\n location?.hostname === \"pms.infranet.hr\"\n );\n }\n\n copy() {\n this.copyTextToClipboard(JSON.stringify(this.data))\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"info\",\n message: \"Copied to clipboard.\",\n timeout: 1000,\n });\n })\n .catch((message) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message,\n timeout: 30000,\n });\n });\n }\n\n downloadJson() {\n const stringy = JSON.stringify(this.data)?.toString();\n const blob = new Blob([stringy], { type: \"text/json\" });\n\n saveFile(blob, \"debug.json\");\n }\n\n paste() {\n this.getTextFromClipboard()\n .then((data) => {\n this.$emit(\"pasted\", data);\n this.$store.dispatch(\"showNotification\", {\n color: \"info\",\n message: \"Imported from clipboard.\",\n timeout: 1000,\n });\n })\n .catch((message) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message,\n timeout: 30000,\n });\n });\n }\n\n fallbackCopyTextToClipboard(text: string) {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n document.execCommand(\"copy\");\n return Promise.resolve(\"copy_success\");\n } catch (err) {\n return Promise.reject(err);\n } finally {\n document.body.removeChild(textArea);\n }\n }\n\n async copyTextToClipboard(text: string) {\n if (!navigator.clipboard) {\n await this.fallbackCopyTextToClipboard(text);\n return;\n }\n await navigator.clipboard.writeText(text);\n }\n\n async getTextFromClipboard() {\n // this is for us, developers, so no fallbacks\n // nobody runs an outdated browser i hope\n const stringy = await navigator.clipboard.readText();\n return JSON.parse(stringy);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScannerDebug.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScannerDebug.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScannerDebug.vue?vue&type=template&id=07687634&scoped=true&\"\nimport script from \"./ScannerDebug.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScannerDebug.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ScannerDebug.vue?vue&type=style&index=0&id=07687634&scoped=true&lang=scss&\"\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 \"07687634\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VDialog,VDivider,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSpacer,VToolbar,VToolbarTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport {\n CheckedInCustomersOnAccUnitType,\n eVisitorArrivalOrganizationTypesEnum,\n ReservationCheckInCustomerData,\n SetCheckedInCustomers,\n} from \"./CheckinTypes\";\nimport {\n EVisitorFacilityService,\n eVisitorFacilityServiceFactory,\n} from \"./eVisitorFacilityService\";\nimport {\n OcrData,\n assignToReservationCheckInCustomerData,\n getIdentificationDocumentType,\n} from \"./OcrData\";\nimport CheckInGuestCard from \"./CheckInGuestCard.vue\";\nimport _ from \"lodash\";\nimport { Getter } from \"vuex-class\";\nimport { HubConnection, HubConnectionBuilder, LogLevel } from \"@aspnet/signalr\";\nimport { Country } from \"@/shared/models/country\";\nimport { DateTime } from \"luxon\";\nimport { ReservationModel } from \"../types\";\nimport { ReservationStatus } from \"@/shared/models/reservationStatus\";\nimport { Ota } from \"@/shared/models/ota\";\nimport ScannerDebug, { RawScanDescriptor } from \"./ScannerDebug.vue\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport { ArrivalReason } from \"@/shared/models/arrivalReason\";\nimport TableCellUnitTypeDisplay from \"@/components/misc/TableCellUnitTypeDisplay.vue\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\nimport { IdentificationDocumentTypesEnum } from \"@/shared/enums/identificationDocumentTypes.type\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\n@Component({\n components: { CheckInGuestCard, ScannerDebug, TableCellUnitTypeDisplay },\n})\nexport default class CheckInModalForm extends Vue {\n @PropSync(\"open\", { default: false }) internalOpen?: boolean;\n @PropSync(\"loading\", { default: false }) isLoading?: boolean;\n\n @Prop({ default: null }) scrollId!: string | null;\n @Prop({ default: null }) singleUnit!: number | null;\n\n @Getter(\"appParams/statusToCheckedInState\") statusToCheckedInState?: boolean;\n @Getter(\"appParams/checkInOnEVisitorState\") checkInOnEVisitorState?: boolean;\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n @Watch(\"internalOpen\", { immediate: true })\n internalOpenChanged(fresh: boolean, old: boolean) {\n this.retryAttempt = 0;\n if (fresh && (!this.connection || !this.connected)) {\n this.connected = false;\n this.start();\n }\n\n if (fresh && fresh !== old) {\n this.tab = 0;\n this.updateResStatus = this.statusToCheckedInState ?? false;\n this.eVisitorCheck = this.checkInOnEVisitorState ?? false;\n this.eVisitorFacilityService = null;\n }\n }\n\n @Prop() reservation?: ReservationModel;\n\n internalValue: CheckedInCustomersOnAccUnitType[] = [];\n @Prop() value?: CheckedInCustomersOnAccUnitType[];\n @Watch(\"value\", { immediate: true })\n valueChanged(fresh: CheckedInCustomersOnAccUnitType[]) {\n this.internalValue = fresh ?? [];\n if (!this.internalValue.some((x) => !x.isDayStay)) {\n this.eVisitorCheck = false;\n }\n\n //open acc unit type tab that user clicked on the grid\n //do this only for group reservations\n if (this.scrollId && this.internalValue.length > 1) {\n this.tab = this.internalValue.findIndex(\n (x) => x.reservationAccUnitTypeId == parseInt(this.scrollId ?? \"\")\n );\n }\n\n if (this.singleUnit !== null) {\n this.internalValue = this.internalValue.filter(\n (x) => x.accomodationUnitId == this.singleUnit\n );\n }\n\n for (const aut of this.internalValue) {\n for (const emptyGuest of aut.guests) {\n this.prefilMiscCustomerData(aut, emptyGuest);\n }\n }\n\n const guestsByFacility = _.groupBy(\n this.internalValue.flatMap((x) => x.guests),\n (x) => x.eVisitorFacilityId\n );\n const initialCheckedInGuestCountOnFacility = _.map(\n guestsByFacility,\n (v, k) => ({\n eVisitorFacilityId: +k,\n count: v.filter((x) => !x.eVisitorIsCheckedOut).length,\n })\n );\n\n if (!this.eVisitorFacilityService) {\n this.eVisitorFacilityService = eVisitorFacilityServiceFactory(\n this,\n initialCheckedInGuestCountOnFacility\n );\n }\n\n const thisPropId = this.reservation?.accomodationUnitTypes?.length\n ? this.reservation?.accomodationUnitTypes[0].propertyId ?? 0\n : 0;\n\n const facilityProperyIds = this.internalValue\n .flatMap((x) => x.guests)\n .filter((x) => x.eVisitorFacilityPropertyId)\n .map((x) => x.eVisitorFacilityPropertyId as number);\n\n const distinctFacilityProperyIds = thisPropId\n ? _.uniq([thisPropId, ...facilityProperyIds])\n : _.uniq(facilityProperyIds);\n\n for (const propId of distinctFacilityProperyIds) {\n const promise = this.eVisitorFacilityService?.loadGroup(propId);\n promise.then((x) => {\n if (x && x.length === 1) {\n for (const aut of this.internalValue) {\n for (const emptyGuest of aut.guests.filter(\n (x) =>\n !x.eVisitorFacilityId && x.eVisitorFacilityPropertyId === propId\n )) {\n emptyGuest.eVisitorFacilityId = x[0].id;\n }\n }\n }\n });\n }\n }\n\n tab = 0;\n\n updateResStatus = false;\n\n eVisitorCheck = false;\n\n get reservationId() {\n return this.reservation?.id;\n }\n\n get firstGuestOrganizationTypeId() {\n if (\n this.internalValue &&\n this.internalValue.length > 0 &&\n this.internalValue[0].guests.length > 0\n ) {\n return (\n this.internalValue[0].guests[0].eVisitorArrivalOrganizationTypeId ??\n eVisitorArrivalOrganizationTypesEnum.Osobno\n );\n }\n return eVisitorArrivalOrganizationTypesEnum.Osobno;\n }\n\n get updateStatusLabel() {\n if (this.singleUnit === null) {\n return this.$t(\"Update reservation status to check-in\");\n }\n\n return this.$t(\"Update unit status to check-in\");\n }\n\n get allGuestsFlat() {\n return this.internalValue?.flatMap((x) => x.guests);\n }\n\n get reservationHolderName() {\n return this.reservation?.customer?.name ?? \"\";\n }\n\n get eVisitorSyncAmount() {\n const guestsForSync = this.internalValue\n ?.flatMap((x) => x.guests)\n .filter((x) => !x.eVisitorIsCheckedOut && !x.eVisitorIsCheckedIn)\n .filter((x) => x.isDirty || !x.isEmpty);\n\n const total = guestsForSync.length;\n const progress = guestsForSync.filter(\n (x) => x.eVisitorCheckinResult !== null\n ).length;\n\n if (total === 0) {\n return 0;\n } else {\n return (100 * progress) / total;\n }\n }\n\n @Getter(\"codebooks/otas\") otas?: Ota[];\n get reservationOtaDisplay() {\n const tr = this.otas?.find((x) => x.id === this.reservation?.otaid)?.name;\n return tr ?? \"\";\n }\n\n @Getter(\"codebooks/reservationStatuses\")\n reservationStatuses?: ReservationStatus[];\n get reservationStatusDisplay() {\n const tr = this.reservationStatuses?.find(\n (x) => x.id === this.reservation?.statusId\n )?.textResourceKey;\n return tr ? this.$t(tr) : \"\";\n }\n\n // i just want to load this for children,\n // don't care about this data in any other regard\n @Getter(\"codebooks/identificationDocumentTypes\")\n _identificationDocumentTypes?: IdentificationDocumentType[];\n @Getter(\"codebooks/countries\") _countries?: Country[];\n @Getter(\"codebooks/cityTaxCategories\") _cityTaxCategories?: any[];\n @Getter(\"codebooks/arrivalReasons\") _arrivalReasons?: ArrivalReason[];\n @Getter(\"codebooks/arrivalOrganizationTypes\")\n _arrivalOrganizationTypes?: any[];\n\n eVisitorFacilityService: EVisitorFacilityService | null = null;\n\n mounted() {\n if (\n !this._identificationDocumentTypes ||\n this._identificationDocumentTypes.length == 0\n ) {\n this.$store.dispatch(\"codebooks/refreshIdentificationDocumentTypes\");\n }\n if (!this._countries || this._countries.length == 0) {\n this.$store.dispatch(\"codebooks/refreshCountries\");\n }\n if (!this._countries || this._countries.length == 0) {\n this.$store.dispatch(\"codebooks/refreshCountries\");\n }\n if (!this._cityTaxCategories || this._cityTaxCategories.length == 0) {\n this.$store.dispatch(\"codebooks/refreshCityTaxCategories\");\n }\n if (!this._arrivalReasons || this._arrivalReasons.length == 0) {\n this.$store.dispatch(\"codebooks/refreshArrivalReasons\");\n }\n if (\n !this._arrivalOrganizationTypes ||\n this._arrivalOrganizationTypes.length == 0\n ) {\n this.$store.dispatch(\"codebooks/refresharrivalOrganizationTypes\");\n }\n }\n\n destroyed() {\n this.stopping = true;\n this.connection?.stop().then(() => (this.connected = false));\n }\n\n closeModal() {\n this.internalOpen = false;\n }\n\n findScrollableRef() {\n // prettier-ignore\n const scrollableRef = (this.$refs[\"tabs\"] as Vue)\n ?.$el\n ?.querySelector(\".v-window\");\n\n return scrollableRef;\n }\n\n addGuest(aut: CheckedInCustomersOnAccUnitType) {\n const guest = new ReservationCheckInCustomerData();\n this.prefilMiscCustomerData(aut, guest);\n\n const fakeIds = aut.guests.map((x) => x.id).filter((x) => x < 0);\n const minFakeId = fakeIds.reduce((x, acc) => (x < acc ? x : acc), 0);\n guest.id = minFakeId - 1;\n\n aut.guests.push(guest);\n\n const scrollableRef = this.findScrollableRef();\n if (scrollableRef) {\n this.$nextTick(() => {\n scrollableRef.scrollTop =\n scrollableRef.scrollHeight - scrollableRef.clientHeight;\n });\n }\n }\n removeGuest(\n aut: CheckedInCustomersOnAccUnitType,\n guest: ReservationCheckInCustomerData\n ) {\n aut.guests = aut.guests.filter((x) => x !== guest);\n }\n\n holderSelected(selected: ReservationCheckInCustomerData) {\n const isReservationHolderCheckedIn =\n this.internalValue\n .flatMap((x) => x.guests)\n .find((x) => x.isReservationHolder) !== undefined;\n\n for (const g of this.internalValue\n .flatMap((x) => x.guests)\n .filter((x) => x.isReservationHolder || x === selected)) {\n if (g !== selected) {\n g.isReservationHolder = false;\n } else {\n if (\n g.isReservationHolder === false &&\n !this.reservation?.customer.isLegalEntity &&\n g.guestId === 0\n ) {\n g.guestId = isReservationHolderCheckedIn\n ? 0\n : this.reservation?.customer.id ?? 0;\n }\n g.isReservationHolder = !g.isReservationHolder;\n }\n }\n }\n\n @Ref(\"form\") formRef?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n async submit() {\n const valid = this.formRef?.validate();\n\n if (!valid) {\n if (this.eVisitorCheck) {\n const guestsWithMissingFacility = this.internalValue\n .flatMap((e) => e.guests)\n .filter((e) => !e.eVisitorFacilityId);\n guestsWithMissingFacility.forEach((e) => {\n const cards = this.$refs.guestCards as CheckInGuestCard[];\n const card = cards?.find((x) => x.guest?.id === e.id);\n if (card) {\n // these seem like they should be boolean flags for open/closed, but are actually indexes of opened expansion panels\n card.eVisitorOpen = 0;\n this.$nextTick(() => {\n card.facilityOpen = 0;\n });\n }\n });\n if (guestsWithMissingFacility.length > 0) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"EVisitor.DVI.MissingFacilityId\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 5000,\n });\n }\n }\n\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n const copy = _.cloneDeep(this.internalValue) ?? [];\n\n const nullEmpty = function (val: string | null) {\n const trimmed = val?.trim() ?? \"\";\n return trimmed === \"\" ? null : trimmed;\n };\n\n for (const aut of copy) {\n aut.guests = aut.guests.filter((x) => !x.isEmpty || x.id > 0);\n\n for (const g of aut.guests) {\n g.checkInDate = nullEmpty(g.checkInDate);\n g.checkOutDate = nullEmpty(g.checkOutDate);\n g.dateOfBirth = nullEmpty(g.dateOfBirth);\n g.eVisitorCheckInDate = nullEmpty(g.eVisitorCheckInDate);\n g.eVisitorCheckoutDate = nullEmpty(g.eVisitorCheckoutDate);\n g.eVisitorExpectedCheckoutDate = nullEmpty(\n g.eVisitorExpectedCheckoutDate\n );\n g.eVisitorCheckInTime = nullEmpty(\n g.eVisitorCheckInTime?.substr(0, 5) ?? null\n );\n g.eVisitorCheckoutTime = nullEmpty(\n g.eVisitorCheckoutTime?.substr(0, 5) ?? null\n );\n g.eVisitorExpectedCheckoutTime = nullEmpty(\n g.eVisitorExpectedCheckoutTime?.substr(0, 5) ?? null\n );\n g.eVisitorPaymentCategoryId =\n g.eVisitorPaymentCategoryId ??\n g.getEffectiveEVisitorPaymentCategoryId(this.eVisitorIntegrationId);\n g.eVisitorArrivalOrganizationTypeId =\n g.eVisitorArrivalOrganizationTypeId ??\n this.firstGuestOrganizationTypeId ??\n eVisitorArrivalOrganizationTypesEnum.Osobno;\n g.id = g.id >= 0 ? g.id : 0;\n\n const group = this.eVisitorFacilityService?.findGroup(\n g.eVisitorFacilityPropertyId ?? 0\n );\n if (!group?.facilities.some((x) => x.id === g.eVisitorFacilityId)) {\n g.eVisitorFacilityId = null;\n }\n }\n }\n\n const sendData = new SetCheckedInCustomers(\n this.reservationId ?? 0,\n this.updateResStatus\n );\n sendData.payload = copy;\n\n this.$emit(\"saved\", {\n sendData,\n checkInToEVisitor: this.eVisitorCheck,\n singleUnitId: this.singleUnit,\n });\n }\n\n retryAttempt = 0;\n connection: HubConnection | null = null;\n connected = false;\n startedPromise: Promise | null = null;\n stopping = false;\n shake = false;\n scanFail = false;\n\n beginShake() {\n this.shake = true;\n setTimeout(() => {\n this.shake = false;\n }, 1000);\n }\n\n beginScanfail() {\n this.scanFail = true;\n setTimeout(() => {\n this.scanFail = false;\n }, 1000);\n }\n\n start() {\n const connection = new HubConnectionBuilder()\n .withUrl(`http://localhost:57019/scanner`)\n .configureLogging(LogLevel.Error)\n .build();\n\n connection.onclose(() => {\n // simple retry logic...\n if (!this.stopping) this.start();\n });\n\n let otherCounter = -1;\n connection.on(\"other\", (message: string) => {\n if (!this.internalOpen) {\n return;\n }\n\n const newEvent = {\n id: 0,\n timestamp: DateTime.local().toJSON(),\n name: message,\n };\n\n const last = this.debugData.slice(-1)[0];\n if (last && last.raw == \"\") {\n newEvent.id = (last.events.slice(-1)[0]?.id ?? 0) + 1;\n last.events.push(newEvent);\n } else {\n const descriptor = {\n id: otherCounter--,\n reservationId: this.reservationId,\n timestamp: DateTime.local().toJSON(),\n color: \"gray\",\n raw: \"\",\n events: [\n {\n id: 0,\n timestamp: DateTime.local().toJSON(),\n name: message,\n },\n ],\n } as RawScanDescriptor;\n\n this.debugData.push(descriptor);\n }\n });\n\n connection.on(\"scanned\", (message: OcrData) => {\n if (!this.internalOpen) {\n return;\n }\n\n const descriptor = {\n id: this.debugIdCounter++,\n reservationId: this.reservationId,\n timestamp: DateTime.local().toJSON(),\n color: \"success\",\n raw: message,\n events: [],\n } as RawScanDescriptor;\n\n this.debugData.push(descriptor);\n\n let eventIdCounter = 0;\n function addDescriptorEvent(name: string) {\n descriptor.events.push({\n id: eventIdCounter++,\n timestamp: DateTime.local().toJSON(),\n name,\n });\n }\n\n if (!message?.isValid) {\n this.beginShake();\n this.beginScanfail();\n\n descriptor.color = \"error\";\n addDescriptorEvent(\"INVALID\");\n }\n\n if (this.internalValue) {\n const currentTab = this.internalValue[this.tab];\n\n let messageDocType = null as number | null;\n messageDocType = getIdentificationDocumentType(\n this.eVisitorIntegrationId,\n message.docType\n );\n\n if (\n messageDocType ==\n IdentificationDocumentTypesEnum.IdCard_HR_eVisitor ||\n messageDocType ==\n IdentificationDocumentTypesEnum.IdCard_SL_eTurizem ||\n messageDocType == IdentificationDocumentTypesEnum.IdCard_None\n ) {\n addDescriptorEvent(\"TYPE:IDENTITY CARD\");\n } else if (\n messageDocType ==\n IdentificationDocumentTypesEnum.Passport_HR_eVisitor ||\n messageDocType ==\n IdentificationDocumentTypesEnum.Passport_SL_eTurizem ||\n messageDocType == IdentificationDocumentTypesEnum.Passport_None\n ) {\n addDescriptorEvent(\"TYPE:PASSPORT\");\n } else {\n addDescriptorEvent(\"TYPE:UNKNOWN\");\n }\n\n const issuingState = this._countries?.find(\n (x) =>\n x.isoThreeLetterCode?.toLowerCase() ===\n message.issuingState?.toLowerCase()\n );\n addDescriptorEvent(\"STATE:\" + issuingState?.isoThreeLetterCode);\n\n const sameCustomerByDocNumber = (x: ReservationCheckInCustomerData) =>\n x.identificationDocumentNumber === message.docNumber &&\n x.identificationDocumentTypeId === messageDocType &&\n x.countryOfResidenceId === issuingState?.id;\n\n const existing = currentTab.guests.find(sameCustomerByDocNumber);\n\n if (existing) {\n descriptor.color = \"blue\";\n addDescriptorEvent(\n \"FOUND_EXISTING:\" +\n currentTab.displayName() +\n \"-\" +\n existing.id +\n \"-\" +\n existing.firstName\n );\n this.assignCustomerData(currentTab, existing, message);\n addDescriptorEvent(\"FILLED_EXISTING\");\n return;\n } else {\n addDescriptorEvent(\"FOUND_EXISTING:false\");\n }\n\n const emptyCount = currentTab.guests.filter((x) => x.isEmpty).length;\n if (emptyCount === 0) {\n this.addGuest(currentTab);\n addDescriptorEvent(\"ADD_EMPTY_CARD\");\n }\n\n const empty = currentTab.guests.find((x) => x.isEmpty);\n if (empty) {\n this.assignCustomerData(currentTab, empty, message);\n addDescriptorEvent(\"FILLED_CURENT_TAB_EMPTY_CARD\");\n return;\n }\n }\n });\n\n this.connection = connection;\n\n const prom = (this.startedPromise = connection\n .start()\n .then(() => (this.connected = true))\n .catch((err) => {\n console.warn(\"Failed to connect with hub, retrying...\", err);\n\n this.retryAttempt++;\n\n // prettier-ignore\n return new Promise((resolve, reject) =>\n setTimeout(() => {\n if (this.retryAttempt <= 4 && prom === this.startedPromise) {\n return this.start().then(resolve).catch(reject);\n } else {\n reject('Failed to connect with hub, retry attempts reached')\n }\n }, this.retryAttempt*this.retryAttempt*2000)\n );\n }));\n\n connection.onclose(() => (this.connected = false));\n\n return this.startedPromise;\n }\n\n assignCustomerData(\n aut: CheckedInCustomersOnAccUnitType,\n target: ReservationCheckInCustomerData,\n values: OcrData\n ) {\n assignToReservationCheckInCustomerData(\n target,\n values,\n this._countries ?? [],\n this.eVisitorIntegrationId\n );\n this.prefilMiscCustomerData(aut, target);\n\n target.hasScanIssues = !values?.isValid;\n\n target.isDirty = true;\n target.isEmpty = false;\n }\n\n prefilMiscCustomerData(\n aut: CheckedInCustomersOnAccUnitType,\n target: ReservationCheckInCustomerData\n ) {\n if (!target.eVisitorCheckInDate || target.eVisitorCheckInDate === \"\") {\n target.eVisitorCheckInDate = target.checkInDate = DateTime.local()\n .toISODate()\n .substr(0, 10);\n }\n if (!target.eVisitorCheckInTime || target.eVisitorCheckInTime === \"\") {\n target.eVisitorCheckInTime = DateTime.local().toISOTime().substring(0, 5);\n }\n\n const accUnitType = this.reservation?.accomodationUnitTypes.find(\n (x) => x.id === aut.reservationAccUnitTypeId\n );\n\n if (accUnitType) {\n if (\n !target.eVisitorExpectedCheckoutTime ||\n target.eVisitorExpectedCheckoutTime === \"\"\n ) {\n target.eVisitorExpectedCheckoutTime =\n accUnitType.expectedDepartureTime?.substr(0, 5) ??\n aut.propertyCheckOutTime?.substr(0, 5) ??\n null;\n }\n if (\n !target.eVisitorExpectedCheckoutDate ||\n target.eVisitorExpectedCheckoutDate === \"\"\n ) {\n target.eVisitorExpectedCheckoutDate = target.checkOutDate =\n accUnitType.departureDate?.substr(0, 10) ?? null;\n }\n }\n\n if (!target.eVisitorArrivalOrganizationTypeId)\n if (!target.eVisitorFacilityPropertyId) {\n const propId = this.reservation?.accomodationUnitTypes?.length\n ? this.reservation?.accomodationUnitTypes[0].propertyId ?? null\n : null;\n\n target.eVisitorFacilityPropertyId = propId;\n }\n\n if (!target.eVisitorFacilityId) {\n const group = this.eVisitorFacilityService?.findGroup(\n target.eVisitorFacilityPropertyId ?? 0\n );\n\n if (group?.facilities?.length === 1) {\n target.eVisitorFacilityId = group.facilities[0].id;\n } else if (!target.eVisitorFacilityPropertyId) {\n target.eVisitorFacilityPropertyId = accUnitType?.propertyId ?? null;\n }\n }\n }\n\n onDirty(\n aut: CheckedInCustomersOnAccUnitType,\n guest: ReservationCheckInCustomerData\n ) {\n this.prefilMiscCustomerData(aut, guest);\n }\n\n debug = false;\n debugIdCounter = 0;\n debugData = [] as RawScanDescriptor[];\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInModalForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInModalForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckInModalForm.vue?vue&type=template&id=73bb8e27&scoped=true&\"\nimport script from \"./CheckInModalForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckInModalForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckInModalForm.vue?vue&type=style&index=0&id=73bb8e27&scoped=true&lang=scss&\"\nimport style1 from \"./CheckInModalForm.vue?vue&type=style&index=1&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 \"73bb8e27\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCheckbox,VContainer,VDialog,VFadeTransition,VFooter,VForm,VIcon,VOverlay,VProgressCircular,VProgressLinear,VSpacer,VTab,VTabItem,VTabs,VToolbar,VToolbarTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"content-class\":\"check-out__modal\",\"eager\":false},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal.apply(null, arguments)}},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-toolbar',{staticClass:\"check-out__modal__toolbar\"},[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$t(\"Check out guests\")))]),(_vm.reservation)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservation.id))])]):_vm._e(),(_vm.reservation)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservationStatusDisplay))])]):_vm._e(),(_vm.reservation && _vm.reservation.otaid)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservationOtaDisplay))])]):_vm._e(),(_vm.reservation && _vm.reservation.otaid)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservation.otareservationId))])]):_vm._e(),(_vm.reservation)?_c('div',{staticClass:\"subtitle\"},[_c('div',[_vm._v(_vm._s(_vm.reservationHolderName))])]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeModal}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-form',{ref:\"form\",attrs:{\"disabled\":_vm.isLoading}},[_c('v-container',[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Select all')},model:{value:(_vm.all),callback:function ($$v) {_vm.all=$$v},expression:\"all\"}}),_vm._l((_vm.internalValue),function(g){return _c('CheckOutGuestCard',{key:g.id,attrs:{\"value\":g,\"eVisitorCheck\":_vm.eVisitorCheck},on:{\"input\":function($event){return Object.assign(g, $event)}}})})],2)],1),_c('v-footer',{staticClass:\"footer\",attrs:{\"elevation\":\"8\"}},[_c('v-spacer'),_c('v-checkbox',{staticClass:\"mx-1 my-0\",attrs:{\"label\":_vm.updateStatusLabel,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.updateResStatus),callback:function ($$v) {_vm.updateResStatus=$$v},expression:\"updateResStatus\"}}),_c('v-checkbox',{staticClass:\"mx-1 my-0\",attrs:{\"label\":_vm.$t('Checkout on eVisitor', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.eVisitorCheck),callback:function ($$v) {_vm.eVisitorCheck=$$v},expression:\"eVisitorCheck\"}}),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"color\":\"primary\",\"disabled\":_vm.isLoading,\"loading\":_vm.isLoading},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.guest)?_c('v-card',{staticClass:\"mb-4\"},[_c('div',{staticClass:\"check-out__card__container px-4\"},[(_vm.guest.isCheckedIn)?_c('v-checkbox',{model:{value:(_vm.guest.checked),callback:function ($$v) {_vm.$set(_vm.guest, \"checked\", $$v)},expression:\"guest.checked\"}}):_vm._e(),_c('div',{staticClass:\"check-out__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('First name'),\"disabled\":\"\"},model:{value:(_vm.guest.firstName),callback:function ($$v) {_vm.$set(_vm.guest, \"firstName\", $$v)},expression:\"guest.firstName\"}})],1),_c('div',{staticClass:\"check-out__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Middle name'),\"placeholder\":\" \",\"disabled\":\"\"},model:{value:(_vm.guest.middleName),callback:function ($$v) {_vm.$set(_vm.guest, \"middleName\", $$v)},expression:\"guest.middleName\"}})],1),_c('div',{staticClass:\"check-out__card__input\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Last name'),\"disabled\":\"\"},model:{value:(_vm.guest.lastName),callback:function ($$v) {_vm.$set(_vm.guest, \"lastName\", $$v)},expression:\"guest.lastName\"}})],1),_c('div',{staticClass:\"check-out__card__input\"},[_c('span',{staticClass:\"txt\"},[_vm._v(\"Nokumo: \"+_vm._s(_vm.$t(_vm.guestStatusDescriptionTR(_vm.guest))))]),_c('span',{staticClass:\"txt\"},[_vm._v(\"eVisitor: \"+_vm._s(_vm.$t(_vm.guestEVisitorStatusDescriptionTR(_vm.guest))))])]),_c('div',{staticClass:\"check-out__card__input\"},[_c('span',{staticClass:\"txt\"},[_vm._v(_vm._s(_vm.guest.unitDisplayFull))])]),_c('div',{staticClass:\"check-out__card__input\"},[_c('DateField',{attrs:{\"label\":_vm.$t('Check-out date'),\"rules\":_vm.rules.eVisitorRequired,\"outlined\":\"\"},model:{value:(_vm.guest.eVisitorCheckoutDate),callback:function ($$v) {_vm.$set(_vm.guest, \"eVisitorCheckoutDate\", $$v)},expression:\"guest.eVisitorCheckoutDate\"}})],1),_c('div',{staticClass:\"check-out__card__input\"},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-out time'),\"rules\":_vm.rules.eVisitorRequired,\"outlined\":\"\"},model:{value:(_vm.guest.eVisitorCheckoutTime),callback:function ($$v) {_vm.$set(_vm.guest, \"eVisitorCheckoutTime\", $$v)},expression:\"guest.eVisitorCheckoutTime\"}})],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport _ from \"lodash\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { CheckedOutCustomersOnAccUnitType } from \"./CheckOutModalForm.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\n\n@Component({ components: { DateField, TimeField } })\nexport default class CheckOutGuestCard extends Vue {\n @Prop() eVisitorCheck?: boolean;\n \n guest: CheckedOutCustomersOnAccUnitType | null = null;\n\n @Prop() value?: CheckedOutCustomersOnAccUnitType;\n @Watch(\"value\", { immediate: true, deep: true })\n valueChanged(fresh: CheckedOutCustomersOnAccUnitType) {\n if (_.isEqual(fresh, this.guest)) return;\n this.guest = fresh ? _.cloneDeep(fresh) : null;\n }\n\n @Watch(\"guest\", { deep: true })\n dataChanged(fresh: CheckedOutCustomersOnAccUnitType) {\n this.$emit(\"input\", fresh);\n }\n \n guestStatusDescriptionTR(g: CheckedOutCustomersOnAccUnitType) {\n if(g) {\n if(g.isCheckedOut) return \"Reservation.Guest.CheckedOut\";\n if(g.isCheckedIn) return \"Reservation.Guest.CheckedIn\";\n }\n return \"Reservation.Guest.NotCheckedIn\";\n }\n\n guestEVisitorStatusDescriptionTR(g: CheckedOutCustomersOnAccUnitType) {\n if(g) {\n if(g.eVisitorIsCheckedOut) return \"Reservation.Guest.CheckedOut\";\n if(g.eVisitorIsCheckedIn) return \"Reservation.Guest.CheckedIn\";\n }\n return \"Reservation.Guest.NotCheckedIn\";\n }\n \n get rules() {\n const required = (value: any) => !!value || this.$t(\"Validation.Required\");\n const requiredIfCheckedAndEVisitor = (value: any) => {\n const r = required(value);\n return (this.guest?.checked && this.eVisitorCheck) ? r : true;\n };\n\n return {\n eVisitorRequired: [requiredIfCheckedAndEVisitor],\n };\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutGuestCard.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutGuestCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckOutGuestCard.vue?vue&type=template&id=48e8819e&scoped=true&\"\nimport script from \"./CheckOutGuestCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckOutGuestCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckOutGuestCard.vue?vue&type=style&index=0&id=48e8819e&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 \"48e8819e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCheckbox,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Ota } from \"@/shared/models/ota\";\nimport { ReservationStatus } from \"@/shared/models/reservationStatus\";\nimport _ from \"lodash\";\nimport { Getter } from \"vuex-class\";\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { ServerReservationCheckInCustomerData } from \"../check-in/CheckinTypes\";\nimport { ReservationModel } from \"../types\";\nimport CheckOutGuestCard from \"./CheckOutGuestCard.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\nimport { EVisitorIntegrationNameEnum } from \"@/shared/models/enums.type\";\n\nexport type CheckedOutCustomersOnAccUnitType =\n ServerReservationCheckInCustomerData & {\n checked: boolean;\n unitDisplayFull: string;\n reservationAccUnitTypeId: number;\n isDayStay: boolean;\n };\n\n@Component({ components: { CheckOutGuestCard } })\nexport default class CheckOutModalForm extends Vue {\n @PropSync(\"open\", { default: false }) internalOpen?: boolean;\n\n @Prop() reservation?: ReservationModel;\n @Prop({ default: null }) singleUnit!: number | null;\n\n @Getter(\"appParams/statusToCheckedOutState\")\n statusToCheckedOutState?: boolean;\n @Getter(\"appParams/checkOutOnEVisitorState\")\n checkOutOnEVisitorState?: boolean;\n\n isLoading = false;\n\n internalValue: CheckedOutCustomersOnAccUnitType[] = [];\n @Prop() value?: CheckedOutCustomersOnAccUnitType[];\n @Watch(\"value\", { immediate: true })\n valueChanged(fresh: CheckedOutCustomersOnAccUnitType[]) {\n this.updateResStatus = this.statusToCheckedOutState ?? false;\n this.eVisitorCheck = this.checkOutOnEVisitorState ?? false;\n this.isLoading = false;\n this.internalValue = fresh ? _.cloneDeep(fresh) : [];\n\n if (!this.internalValue.some((x) => !x.isDayStay)) {\n this.eVisitorCheck = false;\n }\n }\n\n updateResStatus = false;\n eVisitorCheck = false;\n\n get all() {\n return (\n this.internalValue\n ?.filter((x) => x.isCheckedIn)\n .every((x) => x.checked) ?? false\n );\n }\n set all(val: boolean) {\n for (const x of this.internalValue.filter((x) => x.isCheckedIn)) {\n x.checked = val;\n }\n }\n\n @Ref(\"form\") formRef?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n get updateStatusLabel() {\n if (this.singleUnit === null) {\n return this.$t(\"Update reservation status to checked-out\");\n }\n return this.$t(\"Update unit status to checked-out\");\n }\n\n async submit() {\n const valid = this.formRef?.validate();\n\n if (!valid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.isLoading = true;\n\n try {\n const nullEmpty = function (val: string | null) {\n const trimmed = val?.trim() ?? \"\";\n return trimmed === \"\" ? null : trimmed;\n };\n\n const copy = this.internalValue\n .filter((x) => x.checked)\n .filter((x) => x.isCheckedIn)\n .map((x) => ({\n id: x.id,\n reservationAccUnitTypeId: x.reservationAccUnitTypeId,\n eVisitorCheckoutDate: nullEmpty(x.eVisitorCheckoutDate),\n eVisitorCheckoutTime: nullEmpty(x.eVisitorCheckoutTime),\n }));\n\n const areStaysTypesMixed =\n this.internalValue.some((x) => x.isDayStay) &&\n this.internalValue.some((x) => !x.isDayStay);\n\n let copyForEVisitor = this.internalValue\n .filter((x) => x.checked)\n .filter((x) => x.isCheckedIn)\n .map((x) => ({\n id: x.id,\n isDayStay: x.isDayStay,\n reservationAccUnitTypeId: x.reservationAccUnitTypeId,\n eVisitorCheckoutDate: nullEmpty(x.eVisitorCheckoutDate),\n eVisitorCheckoutTime: nullEmpty(x.eVisitorCheckoutTime),\n }));\n\n if (areStaysTypesMixed) {\n copyForEVisitor = copyForEVisitor.filter((x) => !x.isDayStay);\n }\n\n const sendData = {\n reservationId: this.reservation?.id ?? 0,\n changeReservationStatusToCheckedOut: this.updateResStatus,\n payload: copy,\n };\n\n await this.axios.post(`reservations/CheckOutGuests`, sendData);\n\n try {\n if (this.eVisitorCheck) {\n if (areStaysTypesMixed) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"EVisitor.DayStaysWillNotBeCheckedOut\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 30000,\n localize: false,\n } as Notification);\n }\n\n await this.axios.post(`reservations/CheckOutGuestsToEVisitor`, {\n reservationId: this.reservation?.id ?? 0,\n payload: copyForEVisitor,\n });\n }\n } catch {\n this.$emit(\"fail\");\n return;\n }\n\n await Vue.axios.post(\n `reservations/ReservationUpdateForMultipleGuestIds`,\n { guestIds: copy.map((x) => x.id) }\n );\n\n this.$emit(\"saved\");\n this.closeModal();\n } catch {\n // not in finally because the happy path is\n // reservation reloading and that's when this modal should close from parent\n // on new value set the flag will be reset\n // reset flag on error only:\n this.isLoading = false;\n }\n }\n\n closeModal() {\n this.internalOpen = false;\n }\n\n get reservationHolderName() {\n return this.reservation?.customer?.name ?? \"\";\n }\n\n @Getter(\"codebooks/otas\") otas?: Ota[];\n get reservationOtaDisplay() {\n const tr = this.otas?.find((x) => x.id === this.reservation?.otaid)?.name;\n return tr ?? \"\";\n }\n\n @Getter(\"codebooks/reservationStatuses\")\n reservationStatuses?: ReservationStatus[];\n get reservationStatusDisplay() {\n const tr = this.reservationStatuses?.find(\n (x) => x.id === this.reservation?.statusId\n )?.textResourceKey;\n return tr ? this.$t(tr) : \"\";\n }\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutModalForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutModalForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckOutModalForm.vue?vue&type=template&id=103c3f08&scoped=true&\"\nimport script from \"./CheckOutModalForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckOutModalForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckOutModalForm.vue?vue&type=style&index=0&id=103c3f08&scoped=true&lang=scss&\"\nimport style1 from \"./CheckOutModalForm.vue?vue&type=style&index=1&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 \"103c3f08\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCheckbox,VContainer,VDialog,VFooter,VForm,VIcon,VSpacer,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex align-center mr-4\"},[_c('div',{staticClass:\"d-flex pr-4\"},[_c('div',{staticClass:\"badge\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_vm._v(\"!\")])]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"font-14 main-info\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[(_vm.numberOfSelectedUnits == 0)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Error.NoUnitsSelected\"))+\" \")]):_vm._e(),(_vm.numberOfSelectedUnits > 0)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Info.SelectedUnitsAndGuests\", { selectedUnits: _vm.numberOfSelectedUnits, units: _vm.reservation.numberOfUnits, occupancy: _vm.availableOccupancy, guests: _vm.numberOfGuests, }))+\" \"+_vm._s(_vm.reservation.numberOfUnits > _vm.numberOfSelectedUnits ? _vm.$t(\"Reservation.Warning.AddUnits\") : \"\")+\" \")]):_vm._e()]),_c('div',{staticClass:\"font-14 white--text\"},[(_vm.numberOfSituatedGuests <= _vm.numberOfGuests)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Info.AllocatedGuests\", { allocated: _vm.numberOfSituatedGuests, left: _vm.numberOfGuests - _vm.numberOfSituatedGuests, }))+\" \")]):_vm._e(),(_vm.numberOfSituatedGuests > _vm.numberOfGuests)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Warning.AllocatedMoreGuestsThanSelected\", { value: _vm.numberOfSituatedGuests - _vm.numberOfGuests, }))+\" \")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { ReservationModel } from \"./types\";\n\n@Component\nexport default class ReservationFormInfo extends Vue {\n @Prop({ default: null }) reservation?: ReservationModel;\n\n get numberOfGuests() {\n return this.reservation\n ? (this.reservation.numberOfAdults ?? 0) +\n (this.reservation.numberOfChildren ?? 0)\n : 0;\n }\n\n get numberOfSelectedUnits() {\n if (this.reservation) {\n return this.reservation.accomodationUnitTypes.length || 0;\n }\n return 0;\n }\n get numberOfSituatedGuests() {\n let numberOfGuests = 0;\n if (this.reservation) {\n for (const unit of this.reservation.accomodationUnitTypes) {\n numberOfGuests += unit.numberOfAdults || 0;\n numberOfGuests += unit.numberOfChildren || 0;\n }\n }\n\n return numberOfGuests;\n }\n\n get availableOccupancy() {\n let availableOccupancy = 0;\n\n if (this.reservation) {\n for (const unit of this.reservation.accomodationUnitTypes) {\n availableOccupancy += unit.allowedOccupancy;\n }\n }\n\n return availableOccupancy;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormInfo.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormInfo.vue?vue&type=template&id=5bd90294&scoped=true&\"\nimport script from \"./ReservationFormInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormInfo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormInfo.vue?vue&type=style&index=0&id=5bd90294&scoped=true&lang=scss&\"\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 \"5bd90294\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"payments\"},[_c('SortableHeadersTable',{staticClass:\"paymentsTable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"payments\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"loaded\":function($event){_vm.loadedSettings = true},\"menu:excel\":_vm.exportToExcel,\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.paymentDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.paymentDate),callback:function ($$v) {_vm.$set(_vm.filters, \"paymentDate\", $$v)},expression:\"filters.paymentDate\"}})]}},{key:\"item.paymentDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.paymentDate), \"long\")))])]}},{key:\"header.referenceDocument\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.referenceDocument),callback:function ($$v) {_vm.$set(_vm.filters, \"referenceDocument\", $$v)},expression:\"filters.referenceDocument\"}})]}},{key:\"item.referenceDocument\",fn:function(ref){\nvar item = ref.item;\nreturn _vm._l((item.financialDocuments),function(doc,$i){return _c('div',{key:$i},[_vm._v(\" \"+_vm._s(doc.referenceDocument)+\" \"+_vm._s(doc.assignedAmount !== item.amount ? (\"(\" + (_vm.$n(doc.assignedAmount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", })) + \")\") : \"\")+\" \")])})}},{key:\"header.referenceDocumentInternalIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.referenceDocumentInternalIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"referenceDocumentInternalIdentifier\", $$v)},expression:\"filters.referenceDocumentInternalIdentifier\"}})]}},{key:\"item.referenceDocumentInternalIdentifier\",fn:function(ref){\nvar item = ref.item;\nreturn _vm._l((item.financialDocuments),function(doc,$i){return _c('div',{key:$i},[_vm._v(\" \"+_vm._s(doc.referenceDocumentInternalIdentifier)+\" \"+_vm._s(doc.assignedAmount !== item.amount ? (\"(\" + (_vm.$n(doc.assignedAmount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", })) + \")\") : \"\")+\" \")])})}},{key:\"item.amount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.amount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"header.paymentMeansId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.paymentMeans,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.filters, \"paymentMeansId\", $$v)},expression:\"filters.paymentMeansId\"}})]}},{key:\"item.paymentMeansId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.paymentMeansTextResourceKey))+\" \")])]}},{key:\"header.cardType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.cardTypes,\"item-text\":\"name\",\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.cardTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"cardTypeId\", $$v)},expression:\"filters.cardTypeId\"}})]}},{key:\"item.isOnlinePayment\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isOnlinePayment,\"disabled\":\"\"}})]}},{key:\"header.remainingAmount\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',[_vm._v(_vm._s(_vm.$t(header.text)))]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" fal fa-info-circle \")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"Payments.RemainingAmountInfoBox\"))+\" \")])]}},{key:\"item.remainingAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.remainingAmount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]},proxy:true},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fas fa-dollar-sign\"}})],1):_vm._e()]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.canCreateFinDocs && item.remainingAmount > 0)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('span',[(!_vm.loading)?_c('v-icon',_vm._g({staticClass:\"mr-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.generateAdvanceInvoice(item.id, item.reservationId)}}},on),[_vm._v(\" fal fa-check-circle \")]):_vm._e(),(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":\"24\"}}):_vm._e()],1)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"Payments.IssuePaidAdvanceInvoice\"))+\" \")])]):_c('span',{staticClass:\"empty-icon-space\"}),_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openItemDetails(item)}}},[_vm._v(\"fal fa-pen\")]),_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteItem(item)}}},[_vm._v(\"fal fa-trash\")])]}}])}),_c('div',{staticClass:\"buttons d-flex\",on:{\"click\":_vm.newPayment}},[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"VPayment.newPayment\"))+\" \")]),(_vm.type === 'reservationmodal' && _vm.reservationId && _vm.hasCreditCard)?_c('CreditCardInfoModal',{attrs:{\"reservationId\":_vm.reservationId,\"buttonType\":\"button\"}}):_vm._e()],1),_c('ReservationFormPaymentForm',{attrs:{\"open\":_vm.paymentFormOpen,\"model\":_vm.paymentModel,\"paymentId\":_vm.paymentFormPaymentId,\"reservationId\":_vm.reservationId,\"reservationStatusId\":_vm.reservationStatusId,\"callback\":_vm.load},on:{\"update:open\":function($event){_vm.paymentFormOpen=$event},\"saved\":function($event){return _vm.$emit('saved')}}}),_c('RequireRole',{attrs:{\"policy\":\"READ_FINANCIAL_DOCUMENTS\"}},[_c('FinancialDocumentModalForm',{attrs:{\"open\":_vm.financialDocumentModalOpen,\"documentId\":_vm.financialDocumentId,\"deleteOnClose\":_vm.autoDeleteDocument},on:{\"update:open\":function($event){_vm.financialDocumentModalOpen=$event},\"update:documentId\":function($event){_vm.financialDocumentId=$event},\"update:document-id\":function($event){_vm.financialDocumentId=$event},\"update:deleteOnClose\":function($event){_vm.autoDeleteDocument=$event},\"update:delete-on-close\":function($event){_vm.autoDeleteDocument=$event}}})],1),_c('InvoiceRoutingModal',{attrs:{\"open\":_vm.invoiceRoutingOpen,\"reservationId\":_vm.invoiceRoutingReservationId,\"isForCancellation\":false,\"defaultCustomerId\":_vm.invoiceRoutingCustomerId,\"defaultName\":_vm.invoiceRoutingCustomerName,\"defaultOib\":_vm.invoiceRoutingCustomerOib,\"defaultPaymentMeansId\":_vm.invoiceRoutingPaymentMeansId,\"defaultCardTypeId\":_vm.invoiceRoutingCardTypeId,\"originDocumentTypeId\":_vm.financialDocumentTypesEnum.RacunZaPredujam},on:{\"update:open\":function($event){_vm.invoiceRoutingOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { SortableTableHeader } from \"../generic-pms-table/SortableTableDirective\";\nimport * as _ from \"lodash\";\nimport { DataOptions } from \"vuetify\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { PaymentQueryViewModel } from \"@/shared/models/payment\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport CreditCardInfoModal from \"@/components/credit-card/CreditCardInfoModal.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport ReservationFormPaymentForm from \"../reservation-form/ReservationFormPaymentForm.vue\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport { PaymentModel } from \"../reservation-form/types\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport FinancialDocumentModalForm from \"./FinancialDocumentModalForm.vue\";\nimport { FinancialDocumentTypesEnum } from \"@/shared/models/enums.type\";\nimport InvoiceRoutingModal from \"@/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { userCanCreateFinancialDocuments } from \"@/shared/roles\";\nimport { CreateAdvanceInvoiceForPaymentsResultModel } from \"./FinancialDocumentFormParts/models\";\n\n@Component({\n components: {\n SortableHeadersTable,\n DateField,\n CreditCardInfoModal,\n ReservationFormPaymentForm,\n NoData,\n FinancialDocumentModalForm,\n InvoiceRoutingModal,\n RequireRole,\n },\n})\nexport default class PaymentsTable extends Vue {\n settingsOpen = false;\n loading = true;\n\n @Prop({ default: \"page\" }) type?: \"page\" | \"reservationmodal\";\n @Prop() reservationId?: number | null;\n @Prop() reservationStatusId?: number | null;\n\n @Watch(\"reservationId\", { immediate: true })\n reservationIdChanged(fresh: number | null) {\n this.filters.reservationId = fresh;\n }\n\n @Prop() hasCreditCard?: boolean;\n @Prop() reservationCustomerId?: number | null;\n @Prop() reservationPaymentMeans?: number | null;\n\n messages: string[] = [];\n\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshCardTypes\")\n refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n financialDocumentTypesEnum = FinancialDocumentTypesEnum;\n\n get canCreateFinDocs() {\n return userCanCreateFinancialDocuments()(this.claims);\n }\n\n async created() {\n const promises = [];\n\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n await Promise.all(promises);\n }\n\n getCurrencyCode(currencyId: number) {\n return this.currencies?.find((x) => x.id == currencyId)?.isoCode;\n }\n\n _loadedSettings = false;\n get loadedSettings() {\n return this.$data._loadedSettings;\n }\n set loadedSettings(val) {\n if (!this.$data._loadedSettings) {\n this.$data._loadedSettings = true;\n this.load();\n }\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"id\"],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!_.isEqual(fresh, old)) {\n this.load();\n }\n }\n\n headers: SortableTableHeader[] = [];\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Watch(\"claims.roles\", { immediate: true })\n rolesWatch() {\n this.headers = [\n {\n text: \"VPayment.paymentDate\",\n value: \"paymentDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"paymentDate\"],\n },\n {\n text: \"VPayment.amount\",\n value: \"amount\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"amount\"],\n },\n {\n text: \"VPayment.paymentMeans\",\n value: \"paymentMeansId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"paymentMeansId\"],\n },\n {\n text: \"VPayment.cardType\",\n value: \"cardType\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"cardType\"],\n },\n {\n text: \"VPayment.onlinePayment\",\n value: \"isOnlinePayment\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"onlinePayment\"],\n },\n {\n text: \"VPayment.RemainingAmount\",\n value: \"remainingAmount\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"RemainingAmount\"],\n },\n // TODO: we should start removing the cash register feature flag, everyone should be using it anyway\n ...(this.cashRegisterFeature\n ? [\n {\n text: \"VPayment.referenceDocumentInternalIdentifier\",\n value: \"referenceDocumentInternalIdentifier\",\n active: true,\n default: false,\n class: \"resize-header\",\n sortable: false,\n exportHeaders: [\"referenceDocumentInternalIdentifier\"],\n },\n ]\n : [\n {\n text: \"VPayment.referenceDocument\",\n value: \"referenceDocument\",\n active: true,\n default: false,\n class: \"resize-header\",\n sortable: false,\n exportHeaders: [\"referenceDocument\"],\n },\n ]),\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n filters = {\n paymentDate: \"\",\n paymentMeansId: null as number | null,\n cardTypeId: null as number | null,\n referenceDocument: \"\",\n referenceDocumentInternalIdentifier: \"\",\n reservationId: null as number | null,\n isOnlinePayment: false as boolean | false,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise> {\n if (!this.loadedSettings) {\n return Promise.resolve({ count: 0, result: [] });\n }\n\n this.loading = true;\n return this.axios\n .get>(`/payments`, {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n };\n }\n\n exportToExcel() {\n this.loading = true;\n\n return this.axios\n .get(\"payments/export/excel\", {\n params: {\n ...this.queryParams,\n $skip: 0,\n $top: null,\n headers: this.headers\n .filter((h) => h.active)\n .flatMap((h) => h.exportHeaders)\n .join(\",\"),\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Payments.xlsx\");\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n paymentFormOpen = false;\n paymentModel = new PaymentModel();\n paymentFormPaymentId: number | null = null;\n\n openItemDetails(item: PaymentQueryViewModel) {\n this.paymentFormPaymentId = item.id;\n this.paymentFormOpen = true;\n }\n\n invoiceRoutingReservationId: number | null = null;\n invoiceRoutingCustomerId: number | null = null;\n invoiceRoutingCustomerName = \"\";\n invoiceRoutingCustomerOib = \"\";\n invoiceRoutingPaymentMeansId: number | null = null;\n invoiceRoutingCardTypeId: number | null = null;\n invoiceRoutingOpen = false;\n invoiceEditingOpen = false;\n financialDocumentId: number | null = null;\n financialDocumentModalOpen = false;\n autoDeleteDocument = false;\n\n async generateAdvanceInvoice(paymentId: number, reservationId: number) {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n const invoiceRoutingCheck = await Vue.axios.post(\n \"financialDocuments/CheckIfPaymentsNeedInvoiceRouting\",\n {\n paymentId: paymentId,\n }\n );\n if (invoiceRoutingCheck.data.isRoutingNeeded) {\n this.invoiceRoutingReservationId = invoiceRoutingCheck.data.reservationId;\n this.invoiceRoutingCustomerId = invoiceRoutingCheck.data.customerId;\n this.invoiceRoutingCustomerName = invoiceRoutingCheck.data.customerName;\n this.invoiceRoutingCustomerOib = invoiceRoutingCheck.data.customerOib;\n this.invoiceRoutingPaymentMeansId =\n invoiceRoutingCheck.data.paymentMeansId;\n this.invoiceRoutingCardTypeId = invoiceRoutingCheck.data.cardTypeId;\n this.invoiceRoutingOpen = true;\n }\n // create a document,lock it and pay\n else {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payments.GeneratingPaidInvoice\"),\n timeout: 5000,\n localize: true,\n });\n\n this.loading = true;\n await Vue.axios\n .post(\"financialDocuments/CreateAdvanceInvoiceForPayments\", {\n paymentId: paymentId,\n reservationId: reservationId,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n showOwnerDetails: true,\n defaultToPropertyBusinessUnit: true,\n })\n .then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payment.SuccessfullyCreatedPaidInvoice\"),\n timeout: 5000,\n localize: true,\n });\n if (res.data.locked)\n this.messages.push(\"FinancialDocument.LockSuccess\");\n if (res.data.fiscalized)\n this.messages.push(\"FinancialDocument.FiscalizationSuccess\");\n if (res.data.paid) { \n this.messages.push(\"FinancialDocument.MarkAsPaidSuccess\");\n }\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PrepaymentDirectCharge.Error.Unknown\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.loading = false;\n this.showMessages();\n this.$emit(\"saved\");\n this.$emit(\"refresh\");\n });\n }\n }\n\n showMessages() {\n this.loading = false;\n const formatSuccessMessages = (x: string[]) =>\n x\n .map((h) => this.$t(h).toString())\n .map((th) => (th.endsWith(\".\") ? th : th + \".\"))\n .join(\" \");\n\n const fiscalizationFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.FiscalizationFailed\"\n );\n\n if (fiscalizationFailed !== -1) {\n this.messages.splice(fiscalizationFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.FiscalizationFailed\"),\n timeout: 5000,\n });\n }\n\n const ownersInvoicesCreationFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n );\n if (ownersInvoicesCreationFailed !== -1) {\n this.messages.splice(ownersInvoicesCreationFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n ),\n timeout: 5000,\n });\n }\n\n const ownersInvoicesLockingFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n );\n if (ownersInvoicesLockingFailed !== -1) {\n this.messages.splice(ownersInvoicesLockingFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n ),\n timeout: 5000,\n });\n }\n\n if (this.messages.length > 0) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: formatSuccessMessages(this.messages),\n timeout: 5000,\n });\n }\n\n this.messages = [];\n\n this.$emit(\"refresh\");\n }\n\n rowDoubleClick(e: MouseEvent, { item }: { item: PaymentQueryViewModel }) {\n this.openItemDetails(item);\n }\n\n newPayment() {\n this.paymentFormPaymentId = null;\n this.paymentModel = new PaymentModel();\n this.paymentModel.customerId = this.reservationCustomerId || null;\n this.paymentModel.paymentMeansId = this.reservationPaymentMeans || null;\n this.paymentModel.financialDocumentId = null;\n this.paymentModel.financialDocumentStatusId = null;\n this.paymentModel.reservationId = this.reservationId ?? null;\n this.paymentFormOpen = true;\n }\n\n deleteItem(item: PaymentQueryViewModel) {\n const referencedDocuments =\n item.financialDocuments && item.financialDocuments.length > 0\n ? this.cashRegisterFeature\n ? item.financialDocuments.map(\n (fd) =>\n fd.referenceDocumentInternalIdentifier +\n (fd.assignedAmount !== item.amount\n ? ` (${this.$n(fd.assignedAmount, {\n style: \"currency\",\n currency: item.currencyCode,\n currencyDisplay: \"code\",\n })})`\n : \"\")\n )\n : item.financialDocuments.map(\n (fd) =>\n fd.referenceDocument +\n (fd.assignedAmount !== item.amount\n ? ` (${this.$n(fd.assignedAmount, {\n style: \"currency\",\n currency: item.currencyCode,\n currencyDisplay: \"code\",\n })})`\n : \"\")\n )\n : [];\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Payment.DeleteConfirmation\"),\n submessages:\n referencedDocuments.length > 0\n ? [\n this.$t(\"Payment.DeleteConfirmation.FinDocs\") + \":\",\n ...referencedDocuments,\n ]\n : [],\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteItemConfirm(item: PaymentQueryViewModel) {\n Vue.axios\n .delete(`/payments/${item.id}`)\n .then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payment.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n if (res.data == true) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payment.ReferenceDocumentStatusToLocked\", {\n // value: this.cashRegisterFeature\n // ? referenceDocumentInternalIdentifier\n // : referenceDocument,\n }),\n timeout: 10000,\n } as Notification);\n }\n })\n .finally(() => {\n this.load();\n this.$emit(\"saved\");\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentsTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentsTable.vue?vue&type=template&id=66a37217&scoped=true&\"\nimport script from \"./PaymentsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PaymentsTable.vue?vue&type=style&index=0&id=66a37217&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 \"66a37217\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular,VSelect,VSimpleCheckbox,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"950\",\"persistent\":\"\",\"no-click-animation\":\"\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-form',[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.PayByLinkTitle\"))+\" \")]),_c('v-card-text',[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"space-between\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[(_vm.payByLinkModel.prepayments.length > 0)?_c('div',[_c('span',{staticClass:\"font-small\"},[_vm._v(_vm._s(_vm.$t(\"PayByLink.Prepayments\")))]),_vm._l((_vm.payByLinkModel.prepayments),function(prepayment,index){return _c('div',{key:'A' + index},[_c('v-text-field',{staticClass:\"mb-4\",attrs:{\"value\":_vm.prepaymentFieldValue(prepayment),\"readonly\":\"\",\"hide-details\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"hide-details\":\"\"},on:{\"click\":function($event){_vm.payByLinkAmount = prepayment.amount}}},[_vm._v(\"fas fa-arrow-right\")])]},proxy:true}],null,true)})],1)})],2):_vm._e(),(_vm.payByLinkModel.prepayments.length > 1)?_c('v-text-field',{staticClass:\"mt-5\",attrs:{\"value\":_vm.$n(_vm.prepaymentsTotalAmount, {\n style: 'currency',\n currency: this.currencyIsoCode,\n currencyDisplay: 'code',\n }),\"readonly\":\"\",\"label\":_vm.$t('PayByLink.TotalPrepaymentAmount'),\"outlined\":false,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){_vm.payByLinkAmount = _vm.prepaymentsTotalAmount}}},[_vm._v(\"fas fa-arrow-right\")])]},proxy:true}],null,false,80150636)}):_vm._e(),_c('v-text-field',{staticClass:\"mt-4\",attrs:{\"value\":_vm.$n(_vm.totalDueAmount, {\n style: 'currency',\n currency: this.currencyIsoCode,\n currencyDisplay: 'code',\n }),\"readonly\":\"\",\"label\":_vm.$t('PayByLink.TotalDueAmount'),\"outlined\":false,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){_vm.payByLinkAmount = _vm.totalDueAmount}}},[_vm._v(\"fas fa-arrow-right\")])]},proxy:true}])}),_c('v-text-field',{attrs:{\"label\":_vm.$t('PayByLink.TotalPrice'),\"value\":_vm.$n(_vm.totalPrice, {\n style: 'currency',\n currency: this.currencyIsoCode,\n currencyDisplay: 'code',\n }),\"readonly\":\"\",\"outlined\":false,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){_vm.payByLinkAmount = _vm.totalPrice}}},[_vm._v(\"fas fa-arrow-right\")])]},proxy:true}])})],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('NumericInput',{attrs:{\"label\":_vm.$t('PayByLink.PaymentAmount')},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})]},proxy:true}]),model:{value:(_vm.payByLinkAmount),callback:function ($$v) {_vm.payByLinkAmount=_vm._n($$v)},expression:\"payByLinkAmount\"}})],1)],1),(_vm.payByLink)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-textarea',{attrs:{\"underlined\":\"\",\"auto-grow\":\"\",\"rows\":\"1\",\"no-resize\":\"\",\"label\":_vm.$t('Reservation.PaymentLink'),\"readonly\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.payByLink),callback:function ($$v) {_vm.payByLink=$$v},expression:\"payByLink\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('span',{staticClass:\"align-copy-button\"},[_c('v-btn',{staticClass:\"resize-copy-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.copyTemplate(_vm.payByLink)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Copy\"))+\" \"),_c('span',{staticClass:\"align-copy-icon\"},[_c('v-icon',{attrs:{\"dense\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-copy\")])],1)])],1)])],1):_vm._e()],1),_c('v-card-actions',[_c('v-btn',{staticClass:\"mh-1\",attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"disabled\":_vm.payByLinkAmount <= 0},on:{\"click\":function($event){return _vm.sendPayByLinkEmail()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.SendPaymentLink\"))+\" \")]),_c('v-btn',{staticClass:\"mh-1\",attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"disabled\":_vm.payByLinkAmount <= 0},on:{\"click\":function($event){return _vm.getPayByLinkEmail()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.ShowPaymentLink\"))+\" \")]),(\n _vm.payByLinkModel.isPossibleToChargeCreditCard &&\n _vm.directChargeAvailable\n )?_c('v-btn',{staticClass:\"mh-1\",attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"disabled\":_vm.payByLinkAmount <= 0},on:{\"click\":function($event){return _vm.chargeCreditCardConfirmation()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.ChargeCreditCard\"))+\" \")]):_vm._e(),(\n _vm.payByLinkModel.isPossibleToChargeCreditCard &&\n _vm.preauthorizeAvailable\n )?_c('v-btn',{staticClass:\"mh-1\",attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"disabled\":_vm.payByLinkAmount <= 0},on:{\"click\":function($event){return _vm.preauthorizeCard()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.PreauthorizeCard\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{staticClass:\"mh-1\",on:{\"click\":function($event){_vm.isOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport * as _ from \"lodash\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport {\n PayByLinkInfoModel,\n PayByLinkPrepayment,\n ReservationModel,\n} from \"../types\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { CurrencyConversionService } from \"@/shared/currencyConversionService\";\nimport { PaymentQueryViewModel } from \"@/shared/models/payment\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\nimport { ChargeCreditCardsResultModel } from \"@/shared/models/chargeCreditCardsResultModel\";\nimport { Getter } from \"vuex-class\";\nimport { PaymentGatewayIntegrationEnum, ReservationStatusEnum } from \"@/shared/models/enums.type\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n CurrencyDisplay,\n NumericInput,\n },\n})\nexport default class SendPaymentLinkDialog extends Vue {\n @PropSync(\"open\") isOpen?: boolean;\n @Prop() reservationModel?: ReservationModel;\n @Prop() payByLinkModel?: PayByLinkInfoModel;\n @Prop() serviceTypes?: ServiceType[];\n @Prop() currencyId?: number;\n @Prop() currencyIsoCode?: string;\n\n currencyConversionService?: CurrencyConversionService;\n\n @Getter(\"appParams/tenantPaymentGatewayIntegrationId\")\n tenantPaymentGatewayIntegrationId?: number;\n\n get directChargeAvailable() {\n return (\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.WSPay ||\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.NokumoPay\n );\n }\n\n get preauthorizeAvailable() {\n return (\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.WSPay ||\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.NokumoPay\n );\n }\n\n payByLinkAmount = 0;\n payByLink = \"\";\n isLoading = false;\n get totalServicePrice() {\n const exactValue =\n this.reservationModel?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter(\n (x) =>\n !x.isCityTax ||\n !this.serviceTypes?.find(\n (x) => x.id == _.first(acc.dayPrices)?.serviceTypeId\n )?.includesCityTax\n )\n .reduce(\n (ssum, s) =>\n ssum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice),\n 0\n ),\n 0\n ) || 0;\n\n return Math.round(exactValue * 100) / 100 + Number.EPSILON;\n }\n\n get totalUnitPrices() {\n const exactValue =\n (this.reservationModel?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n round(\n round(acc.dayPrices.reduce((dsum, d) => dsum + d.price, 0)) *\n (1 - (acc.discountPercent ?? 0) / 100)\n ),\n 0\n ) || 0) + this.mergedCityTaxPrice();\n\n return Math.round(exactValue * 100) / 100 + Number.EPSILON;\n }\n\n mergedCityTaxPrice() {\n return (\n this.reservationModel?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (ssum, s) =>\n this.serviceTypes?.find(\n (x) => x.id == _.first(acc.dayPrices)?.serviceTypeId\n )?.includesCityTax === true\n ? ssum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice)\n : ssum,\n 0\n ),\n 0\n ) || 0\n );\n }\n\n @Watch(\"isOpen\")\n async openWatch(fresh: boolean) {\n if (fresh) {\n this.payByLink = \"\";\n this.payByLinkAmount = 0;\n }\n }\n\n copyTemplate(payByLink: string) {\n navigator.clipboard.writeText(payByLink);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"LinkCopiedToClipboard\"),\n timeout: 5000,\n });\n }\n\n get totalPrice() {\n return this.totalUnitPrices + this.totalServicePrice;\n }\n\n get prepaymentsTotalAmount() {\n return this.payByLinkModel?.prepayments.reduce(\n (sum, prepayment) => sum + prepayment.amount,\n 0\n );\n }\n\n get totalPaidAmount() {\n //TODO: (borna) this is old, but we should probably exclude payments for non-guest financial documents (owners invoices, commission invoices, etc)\n return this.payByLinkModel?.payments.reduce(\n (sum, payment) => sum + (payment.amount ?? 0),\n 0\n );\n }\n\n get totalDueAmount() {\n return this.totalPrice - (this.totalPaidAmount ?? 0);\n }\n\n prepaymentFieldValue(prepayment: PayByLinkPrepayment) {\n return (\n this.$n(prepayment.amount, {\n style: \"currency\",\n currency: this.currencyIsoCode,\n currencyDisplay: \"code\",\n }) +\n \" (\" +\n this.$d(new Date(prepayment.dueDate)) +\n \")\"\n );\n }\n\n paymentFieldValue(payment: PaymentQueryViewModel) {\n return (\n this.$n(payment.amount ?? 0, {\n style: \"currency\",\n currency: this.currencyIsoCode,\n currencyDisplay: \"code\",\n }) +\n \" (\" +\n payment.paymentMeansName +\n \") - \" +\n this.$d(new Date(payment.paymentDate))\n );\n }\n\n sendPayByLinkEmail() {\n const model = [\n {\n reservationId: this.reservationModel?.id,\n reservationHolderId: this.reservationModel?.customerId,\n amount: this.payByLinkAmount,\n currencyId: this.currencyId,\n },\n ];\n this.isLoading = true;\n this.axios\n .post(\"/reservations/SendPayByLink\", {\n ReservationSendByLinkRequestViewModels: model,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Message.SendSuccess\"),\n timeout: 5000,\n localize: true,\n } as Notification);\n })\n .finally(() => {\n this.isLoading = false;\n this.payByLinkAmount = 0;\n this.isOpen = false;\n });\n }\n\n getPayByLinkEmail() {\n const model = {\n reservationId: this.reservationModel?.id,\n reservationHolderId: this.reservationModel?.customerId,\n amount: this.payByLinkAmount,\n currencyId: this.currencyId,\n };\n this.isLoading = true;\n this.axios\n .post(\"/reservations/GetPayByLink\", {\n ReservationSendByLinkRequestViewModel: model,\n })\n .then((res) => {\n this.payByLink = res.data;\n })\n .finally(() => {\n this.isLoading = false;\n });\n }\n\n \n chargeCreditCardConfirmation() {\n const value = this.$n(this.payByLinkAmount, {\n style: \"currency\",\n currency: this.currencyIsoCode,\n currencyDisplay: \"code\",\n });\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Reservation.ChargeCreditCard.Confirmation\", {\n value: value,\n }),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.chargeCreditCard(false);\n return true;\n },\n },\n this.reservationModel?.statusId == ReservationStatusEnum.Hold\n ? { \n text: this.$t(\"YesAndConfirmReservation\"),\n fun: () => {\n this.chargeCreditCard(true);\n return true;\n },\n } \n : null,\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ].filter(Boolean),\n timeout: 30000,\n } as Notification);\n }\n\n chargeCreditCard(confirmReservation: boolean | null = null){\n const model = [\n {\n reservationId: this.reservationModel?.id,\n amount: this.payByLinkAmount,\n currencyId: this.currencyId,\n changeReservationStatusToConfirmed: confirmReservation,\n },\n ];\n this.isLoading = true;\n this.axios\n .post(\"/reservations/ChargeCreditCards\", {\n chargeCreditCardModels: model,\n })\n .then((res) => {\n if (res.data.success) {\n const value = this.$n(this.payByLinkAmount, {\n style: \"currency\",\n currency: this.currencyIsoCode,\n currencyDisplay: \"code\",\n });\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Reservation.ChargeCreditCard.Success\", {\n value: value,\n }),\n timeout: 5000,\n localize: true,\n } as Notification);\n\n if (\n res.data.successes.find(\n (e) =>\n e.reservationId === this.reservationModel?.id && !!e.paymentId\n )\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payment.SaveSuccess\"),\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n\n // close modal on success\n this.payByLinkAmount = 0;\n this.isOpen = false;\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message:\n this.$t(\"Reservation.ChargeCreditCard.Error\") +\n ` ${this.$t(res.data.errors[0].errorMessage)}`,\n timeout: 10000,\n localize: true,\n } as Notification);\n }\n })\n .finally(() => {\n this.isLoading = false; \n this.$emit(\"refresh\");\n });\n }\n\n preauthorizeCreditCardConfirmation() {\n const value = this.$n(this.payByLinkAmount, {\n style: \"currency\",\n currency: this.currencyIsoCode,\n currencyDisplay: \"code\",\n });\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Reservation.PreauthorizeCreditCard.Confirmation\", {\n value: value,\n }),\n actions: [\n {\n text: this.$t(\"Continue\"),\n fun: () => {\n this.preauthorizeCard();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n preauthorizeCard() {\n const model = [\n {\n reservationId: this.reservationModel?.id,\n amount: this.payByLinkAmount,\n currencyId: this.currencyId,\n },\n ];\n this.isLoading = true;\n\n this.axios\n .post(\"/reservations/PreauthorizeCreditCard\", {\n preauthorizeCreditCardModels: model,\n })\n .then((res) => {\n if (res.data.success) {\n const value = this.$n(this.payByLinkAmount, {\n style: \"currency\",\n currency: this.currencyIsoCode,\n currencyDisplay: \"code\",\n });\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Reservation.PreauthorizeCreditCard.Success\", {\n value: value,\n }),\n timeout: 5000,\n localize: true,\n } as Notification);\n\n // close modal on success\n this.payByLinkAmount = 0;\n this.isOpen = false;\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message:\n this.$t(\"Reservation.PreauthorizeCreditCard.Error\") +\n ` ${this.$t(res.data.errors[0].errorMessage)}`,\n timeout: 10000,\n localize: true,\n } as Notification);\n }\n })\n .finally(() => {\n this.isLoading = false;\n });\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendPaymentLinkDialog.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendPaymentLinkDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SendPaymentLinkDialog.vue?vue&type=template&id=337fd699&scoped=true&\"\nimport script from \"./SendPaymentLinkDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SendPaymentLinkDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SendPaymentLinkDialog.vue?vue&type=style&index=0&id=337fd699&scoped=true&lang=scss&\"\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 \"337fd699\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VIcon,VRow,VSpacer,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Ota } from \"@/shared/models/ota\";\nimport {\n ReservationModel,\n SearchRestrictionsModel,\n ReservationRequestModel,\n ReservationAccUnitModel,\n PayByLinkInfoModel,\n ReservationGuestUpdateFeedbackModel,\n} from \"./types\";\nimport ReservationForm from \"./ReservationForm.vue\";\nimport CheckInModalForm from \"./check-in/CheckInModalForm.vue\";\nimport CheckOutModalForm, {\n CheckedOutCustomersOnAccUnitType,\n} from \"./check-out/CheckOutModalForm.vue\";\nimport {\n checkIn,\n checkInToEVisitor,\n loadReservationCustomers,\n} from \"./check-in/CheckInService\";\nimport ReservationFormInfo from \"./ReservationFormInfo.vue\";\nimport FinancialDocumentModalForm from \"@/components/finances/FinancialDocumentModalForm.vue\";\nimport { SelectedAvailability } from \"@/shared/models/availability\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport FinancesTable from \"@/components/finances/PagedFinancesTable.vue\";\nimport PaymentsTable from \"@/components/finances/PaymentsTable.vue\";\nimport { DateTime } from \"luxon\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport _ from \"lodash\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport {\n CheckedInCustomersOnAccUnitType,\n ReservationCheckInCustomerData,\n ServerReservationCheckInCustomerData,\n SetCheckedInCustomers,\n} from \"./check-in/CheckinTypes\";\nimport EVisitorTable from \"@/components/EVisitorTable.vue\";\nimport MessagesTable from \"@/components/messages/MessagesTable.vue\";\nimport {\n DistributionChannelEnum,\n FinancialDocumentTypesEnum,\n PaymentGatewayIntegrationEnum,\n ReservationStatusEnum,\n InvoiceStatusEnum,\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\nimport {\n BaseMessageTypeEnum,\n MessageViewModel,\n Recipient,\n} from \"@/components/messages/types\";\nimport MessageForm from \"@/components/messages/MessageForm.vue\";\nimport { AgencyWorkModelsEnum } from \"@/shared/models/agencyWorkModel\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport UnitSelectionModal from \"./UnitSelectionModal.vue\";\nimport { TenantCustomerModel } from \"@/shared/models/tenantCustomer\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport CurrencyDisplay from \"../misc/CurrencyDisplay.vue\";\nimport NumericInput from \"../misc/NumericInput.vue\";\nimport SendPaymentLinkDialog from \"./payment-link/SendPaymentLinkDialog.vue\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport InvoiceRoutingModal from \"../finances/InvoiceRoutingModal/InvoiceRoutingModal.vue\";\nimport {\n CancellationPolicy,\n GenerateInvoiceResultModel,\n GenerateInvoiceResultModelBulk,\n} from \"../finances/FinancialDocumentFormParts/models\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\nimport ColorPicker from \"@/components/misc/ColorPicker.vue\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\n\nexport interface GenerateCommissionInvoicesResponse {\n successDocumentIds: number[];\n errorUnitIds: number[];\n}\n\n@Component({\n components: {\n ReservationForm,\n ReservationFormInfo,\n FinancesTable,\n PaymentsTable,\n FinancialDocumentModalForm,\n CheckInModalForm,\n CheckOutModalForm,\n EVisitorTable,\n MessagesTable,\n MessageForm,\n UnitSelectionModal,\n CurrencyDisplay,\n SendPaymentLinkDialog,\n NumericInput,\n InvoiceRoutingModal,\n ColorPicker,\n LoadingOverlay,\n },\n})\nexport default class ReservationModal extends Vue {\n @PropSync(\"open\", { default: false }) isOpen?: boolean;\n @Prop({ default: null }) reservationId!: number | null;\n @Prop({ default: null }) scrollId!: string | null;\n\n @Prop({ default: undefined }) availabilities?: SelectedAvailability[];\n @Prop({ default: undefined }) restrictions?: SearchRestrictionsModel;\n\n @Prop({ default: false }) fromCalendar?: boolean;\n\n @Prop({ default: false }) fromPrepaymentDashboard?: boolean;\n\n @Getter(\"appParams/tenantWhatsAppIntegrationEnabled\")\n tenantWhatsAppIntegrationEnabled?: boolean;\n\n @Ref(\"reservationForm\") reservationForm?: ReservationForm;\n\n agencyWorkModelsEnum = AgencyWorkModelsEnum;\n reservationStatusEnum = ReservationStatusEnum;\n\n isMenuValid = false;\n payByLink = false;\n tenantReservationTags: string[] = [];\n\n isEvisitorDialogOpen = false;\n\n messagesDirection = 0;\n newMessageFormOpen = false;\n get newMessageRecipients(): Recipient[] {\n if (this.reservationModel.id) {\n const holder = {\n id: this.reservationModel.customer.id,\n type: \"Reservation holder\",\n name: this.reservationModel.customer.name,\n email: this.reservationModel.customer.eMail,\n telephoneNumber: this.reservationModel.customer.telephoneNumber,\n };\n\n const guests = this.reservationModel.accomodationUnitTypes.flatMap((x) =>\n x.guests.map((g) => ({\n id: g.id,\n type: \"Guest\",\n name: g.name,\n email: g.eMail,\n telephoneNumber: g.telephoneNumber,\n }))\n );\n\n const recipients = [holder, ...guests.filter((g) => !!g.email)];\n\n this.reservationModel.accomodationUnitTypes.forEach((ut) => {\n const propertyOwner = ut.propertyOwner;\n const unitOwner = ut.unitOwner;\n const propertyManager = ut.propertyManager;\n\n if (\n propertyOwner &&\n !recipients.some((r) => r.id === propertyOwner.id)\n ) {\n recipients.push({\n id: propertyOwner.id,\n type: \"Owner\",\n name: propertyOwner.name,\n email: propertyOwner.email,\n telephoneNumber: propertyOwner.telephoneNumber,\n });\n }\n\n if (unitOwner && !recipients.some((r) => r.id === unitOwner.id)) {\n recipients.push({\n id: unitOwner.id,\n type: \"Owner\",\n name: unitOwner.name,\n email: unitOwner.email,\n telephoneNumber: unitOwner.telephoneNumber,\n });\n }\n\n if (\n propertyManager &&\n !recipients.some((r) => r.id === propertyManager.id)\n ) {\n recipients.push({\n id: propertyManager.id,\n type: \"Owner\",\n name: propertyManager.name,\n email: propertyManager.email,\n telephoneNumber: propertyManager.telephoneNumber,\n });\n }\n });\n\n return _.uniqBy(recipients, (x) => x.id);\n }\n\n return [];\n }\n\n get newMessageType() {\n return BaseMessageTypeEnum.NewMessage;\n }\n\n get newMessageBase() {\n return {\n reservationId: this.reservationModel.id,\n customerId: this.reservationModel.customerId,\n } as MessageViewModel;\n }\n\n get showPaymentLinkButton() {\n return (\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.WSPay ||\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.Monri ||\n this.tenantPaymentGatewayIntegrationId ===\n PaymentGatewayIntegrationEnum.NokumoPay\n );\n }\n\n get isAllowedToReadEVisitor() {\n return policyChecker(\"READ_EVISITOR\")(this.claims);\n }\n\n get isAllowedToReadFinancialDocuments() {\n return policyChecker(\"READ_FINANCIAL_DOCUMENTS\")(this.claims);\n }\n\n get isAllowedToReadPayments() {\n return policyChecker(\"READ_PAYMENTS\")(this.claims);\n }\n\n get isAllowedToReadMessages() {\n return policyChecker(\"READ_MESSAGES\")(this.claims);\n }\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n get reservationIsReadonly() {\n if (\n (policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.reservationModel?.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation) ||\n !policyChecker(\"OWNER_LEVEL_3\")(this.claims)\n ) {\n return false;\n }\n return true;\n }\n\n get colorPickerStyle() {\n let style = {};\n if (this.reservationModel.colorCodeHex) {\n // style = {\n // ...style,\n // \"box-shadow\": `${this.reservationModel.colorCodeHex} 44px 0px 0px 0px inset, #ffffffff 46px 0px 0px 0px inset`,\n // };\n style = {\n ...style,\n \"background-color\": `${this.reservationModel.colorCodeHex}`,\n \"border-right\": `#ffffffff 2px solid`,\n };\n }\n return style;\n }\n\n @Ref(\"messagesTable\") messagesTable?: MessagesTable;\n refreshMessagesTable() {\n this.messagesTable?.load();\n }\n\n closeModal() {\n if (!this.isSaving) {\n this.$emit(\"reload\");\n this.isOpen = false;\n }\n }\n\n openWhatsAppConversation() {\n const phoneNumber = this.reservationModel.customer.telephoneNumber;\n\n if (!phoneNumber) {\n return;\n }\n\n this.messagesTable?.openWhatsAppConversation(\n this.reservationModel.customer.id,\n this.reservationModel.customer.name,\n phoneNumber\n );\n }\n\n currencyConversionService?: CurrencyConversionService;\n async created() {\n const promises = [];\n\n if (!this.financialSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n if ((this.otas?.length ?? 0) === 0 && this.refreshOtas) {\n promises.push(this.refreshOtas());\n }\n\n if ((this.appParams?.length ?? 0) === 0 && this.refreshAppParams) {\n promises.push(this.refreshAppParams());\n }\n\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n promises.push(this.refreshServiceTypes());\n }\n\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n promises.push(this.refreshSalesChannels());\n }\n\n await Promise.all(promises);\n\n if (this.financialSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n\n get period() {\n if (\n this.localRestrictions &&\n this.localRestrictions.period &&\n this.localRestrictions.period.length == 2\n ) {\n return this.localRestrictions.period;\n }\n\n if (this.reservationPeriod && this.reservationPeriod.length == 2) {\n return this.reservationPeriod;\n }\n\n return null;\n }\n\n get otaName() {\n const otaName = this.otas?.find(\n (x) => x.id == this.reservationModel?.otaid\n )?.name;\n return otaName ?? \"\";\n }\n\n get salesChannelName() {\n const salesChannel = this.salesChannels?.find(\n (x) => x.id == this.reservationModel?.salesChannelId\n )?.name;\n return salesChannel ?? \"\";\n }\n\n @Watch(\"isLoading\")\n isLoadingChanged() {\n if (this.isLoading === false && this.scrolledFlag === false) {\n this.$nextTick(() => {\n const elem = document.getElementById(this.scrollId ?? \"\");\n if (elem) {\n elem.scrollIntoView({\n behavior: \"auto\",\n });\n this.scrolledFlag = true;\n }\n });\n }\n }\n\n isOverbooked: number[] = [];\n\n isNotAvailable: number[] = [];\n\n tab = 0;\n fkey = 0;\n\n localAvailabilities?: SelectedAvailability[] = [];\n localRestrictions?: SearchRestrictionsModel | null = null;\n\n reservationModel: ReservationModel = new ReservationModel();\n reservationPeriod: Date[] | null = null;\n\n // when updating a reservation and changing arrival or departure date, the new stay period might not cover all days of the original one\n // which causes the calendar to be only partially updated. those original dates are preserved here to make sure the calendar is properly updated\n historicArrivalDate: Date | null = null;\n historicDepartureDate: Date | null = null;\n\n menu = false;\n\n changedOtaReservationId = \"\";\n\n menuOpen = false;\n\n isLoading = false;\n isSaving = false;\n get isLoadingOrSaving() {\n return this.isLoading || this.isSaving;\n }\n\n get hasAccomodationUnitTypes() {\n return (this.reservationModel?.accomodationUnitTypes?.length ?? 0) > 0;\n }\n\n checkInSingleUnit(event: number) {\n this.openCheckIn(true, event);\n }\n checkOutSingleUnit(event: number) {\n this.openCheckOut(event);\n }\n tagsChanged(event: string[]) {\n this.reservationModel.tags = event;\n }\n\n singleUnit: number | null = null;\n isCheckInOpen = false;\n isCheckInLoading = false;\n checkedInCustomersOnAccUnitTypes = [] as CheckedInCustomersOnAccUnitType[];\n async openCheckIn(\n padWithEmptyCards = true,\n singleUnitId: null | number = null\n ) {\n if (!this.hasAccomodationUnitTypes) {\n return;\n }\n\n this.singleUnit = singleUnitId;\n\n const instance = loadReservationCustomers(this.axios);\n\n this.isLoading = true;\n\n try {\n const data = await instance(this.reservationModel.id);\n\n const result = [] as CheckedInCustomersOnAccUnitType[];\n\n const unitTypes = this.reservationModel.accomodationUnitTypes.filter(\n (x) => {\n if (!singleUnitId) {\n return x.statusId != ReservationStatusEnum.NoShow;\n }\n\n return (\n x.accomodationUnitId == singleUnitId &&\n x.statusId != ReservationStatusEnum.NoShow\n );\n }\n );\n\n for (const aut of unitTypes) {\n const allocated = aut.numberOfAdults + aut.numberOfChildren;\n\n let group = data.payload.find(\n (x) => x.reservationAccUnitTypeId === aut.id\n );\n if (!group) {\n group = new CheckedInCustomersOnAccUnitType();\n\n group.reservationAccUnitTypeId = aut.id;\n group.reservationAccUnitTypeCheckOutDate = aut.departureDate ?? null;\n group.reservationAccUnitTypeCheckOutTime =\n aut.expectedDepartureTime ?? null;\n group.guests = [];\n }\n\n group.reservationAccUnitTypeAllocated = allocated;\n group.propertyId = aut.propertyId ?? null;\n group.propertyName = aut.propertyName;\n group.propertyCheckOutTime = aut.checkOutTimeUntil;\n group.accomodationUnitTypeName = aut.accomodationUnitTypeName;\n group.accomodationUnitName = aut.accomodationUnitName;\n group.accomodationUnitId = aut.accomodationUnitId ?? null;\n group.reservationAccUnitTypeAllocatedMax = aut.maxOccupancy;\n\n data.payload.push();\n\n if (padWithEmptyCards) {\n const missingAllcoated = allocated - group.guests.length;\n if (missingAllcoated > 0) {\n const empty = [...Array(missingAllcoated)].map((_, i) => {\n const g = new ReservationCheckInCustomerData();\n g.id = -i;\n return g;\n });\n group.guests.push(...empty);\n }\n }\n\n if (this.guestEVisitorStatuses.length > 0) {\n this.guestEVisitorStatuses.forEach((x) => {\n const guest = group?.guests.find((g) => g.id == x.id);\n if (guest) {\n guest.eVisitorCheckinResult = x.status;\n }\n });\n }\n\n group.isDayStay = aut.arrivalDate == aut.departureDate;\n\n result.push(group);\n }\n\n this.checkedInCustomersOnAccUnitTypes = result;\n this.guestEVisitorStatuses = [];\n } finally {\n this.isLoading = false;\n }\n\n this.isCheckInOpen = true;\n }\n\n get currencyId() {\n const ids =\n this.reservationModel?.accomodationUnitTypes\n .map((x) => x.ratePlan?.currencyId)\n .filter((x) => x != undefined) ?? [];\n if (ids.length > 0) {\n return ids[0];\n }\n\n return this.financialSettings?.workingCurrency.id;\n }\n\n get currencyIsoCode() {\n const currency = this.currencies?.find((x) => x.id == this.currencyId);\n return (\n currency?.isoCode ??\n this.financialSettings?.workingCurrency.isoCode ??\n \"EUR\"\n );\n }\n get workingCurrency() {\n return this.financialSettings?.workingCurrency.id;\n }\n\n payByLinkResult = new PayByLinkInfoModel();\n\n async openPayByLink() {\n this.isLoading = true;\n await Vue.axios\n .post(\"reservations/GetReservationInfoForPayByLink\", {\n reservationId: this.reservationModel.id,\n })\n .then((res) => {\n this.payByLinkResult = res.data;\n });\n this.payByLink = true;\n this.isLoading = false;\n }\n\n @Watch(\"payByLink\")\n payByLinkOpenWatch(fresh: boolean, old: boolean) {\n // refresh the payments table when closing the direct charge modal\n if (!fresh && old) {\n this.paymentsTableRef?.load();\n }\n }\n\n async checkInReservationUpdate(guestIds: number[]) {\n try {\n await Vue.axios.post(\n `reservations/ReservationUpdateForMultipleGuestIds`,\n {\n guestIds: guestIds,\n }\n );\n } finally {\n this.isLoading = false;\n }\n }\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegrationGetter?: EVisitorIntegrationModel;\n\n get eVisitorIntegration() {\n return (\n this.eVisitorIntegrationGetter ??\n ({\n id: EVisitorIntegrationEnum.None,\n name: EVisitorIntegrationNameEnum.None,\n } as EVisitorIntegrationModel)\n );\n }\n\n @Ref(\"eVisitorTable\") eVisitorTableRef?: EVisitorTable;\n\n guestEVisitorStatuses: any[] = [];\n\n async checkInModalSaved(evt: {\n sendData: SetCheckedInCustomers;\n checkInToEVisitor: boolean;\n singleUnitId: number | null;\n }) {\n this.isCheckInLoading = true;\n\n try {\n await checkIn(this.axios)(evt);\n await this.openCheckIn(false, evt.singleUnitId);\n if (evt.checkInToEVisitor) {\n let guests = [] as ReservationCheckInCustomerData[];\n\n if (\n this.checkedInCustomersOnAccUnitTypes?.some((x) => x.isDayStay) &&\n this.checkedInCustomersOnAccUnitTypes?.some((x) => !x.isDayStay)\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"EVisitor.DayStaysWillNotBeCheckedIn\", {\n eVisitorServiceName: this.eVisitorIntegration.name,\n }),\n timeout: 30000,\n localize: false,\n } as Notification);\n\n guests =\n this.checkedInCustomersOnAccUnitTypes\n ?.filter((x) => !x.isDayStay)\n .flatMap((x) => x.guests) ?? [];\n } else {\n guests =\n this.checkedInCustomersOnAccUnitTypes.flatMap((x) => x.guests) ??\n [];\n }\n\n const allSucceded = await checkInToEVisitor(this)(\n guests,\n this.eVisitorIntegration\n );\n\n if (allSucceded) {\n this.guestEVisitorStatuses = [];\n this.isCheckInOpen = false;\n } else {\n guests.forEach((x) => {\n this.guestEVisitorStatuses.push({\n id: x.id,\n status: x.eVisitorCheckinResult,\n });\n });\n\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"EVisitor.CheckIn.SomeErrors\", {\n eVisitorServiceName: this.eVisitorIntegration.name,\n }),\n timeout: 5000,\n localize: false,\n } as Notification);\n }\n\n this.eVisitorTableRef?.load();\n } else {\n this.guestEVisitorStatuses = [];\n this.isCheckInOpen = false;\n }\n\n this.isLoading = true;\n await this.checkInReservationUpdate(\n this.checkedInCustomersOnAccUnitTypes\n ?.flatMap((x) => x.guests)\n .map((x) => x.id)\n );\n await this.loadReservation(this.reservationModel.id);\n } finally {\n this.isCheckInLoading = false;\n this.calendarReload();\n }\n }\n\n isCheckOutOpen = false;\n checkOutCustomersOnAccUnitTypes = [] as CheckedOutCustomersOnAccUnitType[];\n get canCheckOutGuests() {\n return (\n !!this.reservationModel.id &&\n (this.reservationModel.accomodationUnitTypes.some(\n (x) => x.statusId === ReservationStatusEnum.CheckedIn\n ) ||\n this.reservationModel.statusId === ReservationStatusEnum.CheckedIn)\n );\n }\n async openCheckOut(singleUnitId: null | number = null) {\n if (!this.hasAccomodationUnitTypes) {\n return;\n }\n\n this.singleUnit = singleUnitId;\n\n const instance = loadReservationCustomers(this.axios);\n\n this.isLoading = true;\n\n try {\n const data = await instance(this.reservationModel.id);\n\n const result = [] as CheckedOutCustomersOnAccUnitType[];\n\n const nowDate = DateTime.local().toISODate().substr(0, 10);\n const nowTime = DateTime.local().toISOTime().substr(0, 5);\n\n const unitTypes = this.reservationModel.accomodationUnitTypes.filter(\n (x) => {\n if (!singleUnitId) {\n return x.statusId != ReservationStatusEnum.NoShow;\n }\n return (\n x.accomodationUnitId == singleUnitId &&\n x.statusId != ReservationStatusEnum.NoShow\n );\n }\n );\n\n for (const aut of unitTypes) {\n const unitDisplayFull = `${aut.propertyName}, ${aut.accomodationUnitTypeName}, ${aut.accomodationUnitName}`;\n\n for (const g of data.payload\n .filter((p) => p.reservationAccUnitTypeId === aut.id)\n .flatMap((x) => x.guests)) {\n const newGuest = {\n ...new ServerReservationCheckInCustomerData(),\n ...g,\n checked: true,\n unitDisplayFull: unitDisplayFull,\n reservationAccUnitTypeId: aut.id,\n isDayStay: aut.arrivalDate == aut.departureDate,\n };\n\n if (\n !newGuest.eVisitorCheckoutDate ||\n newGuest.eVisitorCheckoutDate === \"\"\n ) {\n newGuest.eVisitorCheckoutDate = newGuest.checkOutDate = nowDate;\n }\n if (\n !newGuest.eVisitorCheckoutTime ||\n newGuest.eVisitorCheckoutTime === \"\"\n ) {\n newGuest.eVisitorCheckoutTime = nowTime;\n }\n\n result.push(newGuest);\n }\n }\n\n this.checkOutCustomersOnAccUnitTypes = result;\n } finally {\n this.isLoading = false;\n }\n\n this.isCheckOutOpen = true;\n }\n\n async checkOutModalSaved() {\n if (this.reservationModel?.id) {\n this.loadReservation(this.reservationModel.id);\n this.eVisitorTableRef?.load();\n this.calendarReload();\n }\n }\n\n async checkOutModalFailed() {\n if (this.reservationModel?.id) {\n this.loadReservation(this.reservationModel.id);\n this.openCheckOut();\n this.calendarReload();\n }\n }\n\n async getReservationTags() {\n const promises = [];\n\n promises.push(\n Vue.axios.get(`reservations/GetTenantReservationTags`)\n );\n\n const [tags] = await Promise.all(promises);\n\n this.tenantReservationTags = tags.data;\n }\n\n @Watch(\"isOpen\")\n async isOpenWatch(fresh: boolean) {\n this.internalForm?.resetValidation();\n\n if (fresh && this.reservationId) {\n this.scrolledFlag = false;\n await this.loadReservation(this.reservationId);\n await this.getReservationTags();\n } else if (fresh) {\n this.formStateUnchanged = false;\n this.setGuestsUnchanged && this.setGuestsUnchanged(false);\n await this.getReservationTags();\n\n if (this.reservationModel) {\n const initialStateParam = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationInitialState\n );\n if (initialStateParam) {\n this.reservationModel.statusId = initialStateParam.value;\n }\n\n this.reservationModel.arrivalDate =\n this.restrictions?.period?.[0] ?? null;\n this.reservationModel.departureDate =\n this.restrictions?.period?.[1] ?? null;\n\n const holdDurationParam = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationDefaultHoldDuration\n );\n if (holdDurationParam) {\n const optionExpirationDate = new Date();\n optionExpirationDate.setDate(\n optionExpirationDate.getDate() + holdDurationParam.value\n );\n this.reservationModel.optionExpirationDate = optionExpirationDate\n .toISOString()\n .substr(0, 10);\n }\n if (policyChecker(\"OWNER_LEVEL_3\")(this.claims)) {\n this.reservationModel.statusId = ReservationStatusEnum.Confirmed;\n this.reservationModel.distributionChannelTypeId =\n DistributionChannelEnum.OwnersReservation;\n }\n }\n\n // ! if this is moved before section handling this.reservationModel\n // ! stuff may break ... yeah ...\n this.localRestrictions = this.restrictions;\n this.localAvailabilities = this.availabilities;\n } else {\n this.tab = 0;\n this.reservationModel = new ReservationModel();\n this.reservationPeriod = null;\n this.localAvailabilities = [];\n this.localRestrictions = null;\n this.formStateUnchanged = false;\n this.historicArrivalDate = null;\n this.historicDepartureDate = null;\n if (this.reservationForm) {\n this.reservationForm.stayPeriodFromUnits = null;\n }\n }\n }\n\n get lineItemAffecting() {\n if (!this.reservationModel) return [];\n\n return this.reservationModel.accomodationUnitTypes\n .map((x) => ({\n accomodationUnitId: x.accomodationUnitId ?? 0,\n pricePerNight: x.pricePerNight ?? 0,\n userSetPricePerNightManually: x.userSetPricePerNightManually,\n discountPercent: x.discountPercent ?? 0,\n deposit: x.damageDeposit ?? 0,\n depositCurrency: x.depositCurrencyId ?? 0,\n selectedServices: [...x.selectedServices].sort(\n (a, b) => a.addOnServiceId - b.addOnServiceId\n ),\n }))\n .sort((a, b) => a.accomodationUnitId - b.accomodationUnitId);\n }\n\n @Watch(\"lineItemAffecting\", { deep: true })\n lineItemAffectingChanged(\n fresh: (typeof ReservationModal.prototype.lineItemAffecting)[],\n old: (typeof ReservationModal.prototype.lineItemAffecting)[]\n ) {\n if (this.isLoading) return;\n\n if (!_.isEqual(fresh, old)) {\n this.formStateUnchanged = false;\n }\n }\n\n formStateUnchanged = false;\n originalUnits = [] as ReservationAccUnitModel[];\n\n noOverbookingMessage = false;\n\n noNotAvailableMessage = false;\n\n @Watch(\"isOverbooked\")\n isOverbookedChanged() {\n if (!_.isEmpty(this.isOverbooked) && !this.noOverbookingMessage) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: \"Reservation.Overbooked\",\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n this.noOverbookingMessage = false;\n }\n\n @Watch(\"isNotAvailable\")\n isNotAvailableChanged() {\n if (!_.isEmpty(this.isNotAvailable) && !this.noNotAvailableMessage) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: \"Reservation.NotAllUnitTypesAvailable\",\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n this.noNotAvailableMessage = false;\n }\n\n @Ref(\"financestable\") financialTableRef?: { load: () => Promise };\n @Ref(\"paymentstable\") paymentsTableRef?: { load: () => Promise };\n async loadReservation(reservationId: number) {\n this.isLoading = true;\n await Vue.axios\n .get(\"reservations/\" + reservationId)\n .then((res) => {\n const fresh = {\n ...new ReservationModel(),\n ...res.data,\n originalUnitTypesReservationWasOpenedWith: _.cloneDeep(\n res.data.accomodationUnitTypes\n ),\n };\n\n if (fresh.arrivalDate && fresh.departureDate) {\n this.reservationPeriod = [];\n const tempArrival = new Date(fresh.arrivalDate);\n const tempDeparture = new Date(fresh.departureDate);\n const arrival = new Date(\n Date.UTC(\n tempArrival.getFullYear(),\n tempArrival.getMonth(),\n tempArrival.getDate()\n )\n );\n const departure = new Date(\n Date.UTC(\n tempDeparture.getFullYear(),\n tempDeparture.getMonth(),\n tempDeparture.getDate()\n )\n );\n\n fresh.arrivalDate = arrival;\n fresh.departureDate = departure;\n\n this.reservationPeriod.push(arrival, departure);\n\n if (\n this.reservationForm &&\n this.reservationForm.stayPeriodFromUnits\n ) {\n this.reservationForm.stayPeriodFromUnits = null;\n }\n\n this.historicArrivalDate = arrival;\n this.historicDepartureDate = departure;\n } else {\n // so this seems to have relied on grandchild's watch\n // or it would break, it's insane way of programming\n fresh.arrivalDate = null;\n fresh.departureDate = null;\n }\n\n this.localRestrictions = null;\n\n for (const unit of fresh.accomodationUnitTypes) {\n unit.dayPrices.forEach((x) => {\n x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(unit);\n });\n if (!unit.userSetPricePerNightManually) {\n unit.pricePerNight = round(\n round(\n unit.dayPrices.reduce((sum, dprice) => sum + dprice.price, 0) ??\n 0\n ) / (unit.dayPrices.length ?? 1)\n );\n }\n\n unit.currentDayPrices = unit.dayPrices.map((x) => {\n return {\n date: x.date,\n price: x.price,\n ratePlanAccomodationUnitTypeId:\n unit.ratePlan?.ratePlansAccomodationUnitTypeId || 0,\n occupancyBasedRuleId: unit.occupancyBasedRuleId,\n };\n });\n }\n\n fresh.accomodationUnitTypes\n .filter((x) => !x.userSetPricePerNightManually)\n .forEach(\n (x) =>\n (x.pricePerNight = round(\n round(\n x.dayPrices.reduce(\n (sum, dprice) =>\n sum + dprice.price + this.mergedCityTaxPricePerDay(x),\n 0\n ) ?? 0\n ) / (x.dayPrices.length ?? 1)\n ))\n );\n\n this.reservationModel = fresh;\n this.formStateUnchanged = true;\n\n this.originalUnits = _.cloneDeep(\n this.reservationModel.accomodationUnitTypes\n );\n\n this.reservationModel.accomodationUnitTypes;\n\n this.financialTableRef?.load();\n })\n .finally(() => {\n this.isLoading = false;\n });\n\n this.setGuestsUnchanged && this.setGuestsUnchanged(true);\n\n if (this.isCheckInOpen) {\n await this.openCheckIn(false, this.singleUnit);\n }\n this.changedOtaReservationId = this.reservationModel.otareservationId;\n }\n\n mergedCityTaxPricePerDay(unit: ReservationAccUnitModel) {\n const currencyId =\n unit.ratePlan?.currencyId ?? this.financialSettings?.workingCurrency.id;\n let totalCityTaxPrice = 0;\n if (unit && unit.selectedServices) {\n totalCityTaxPrice = unit.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (sum, e) =>\n this.serviceTypes?.find(\n (x) => x.id == _.first(unit.dayPrices)?.serviceTypeId\n )?.includesCityTax === true\n ? sum +\n (this.currencyConversionService?.convertCurrency(\n e.grossPrice,\n e.currencyId,\n currencyId ?? e.currencyId\n ) ?? e.grossPrice)\n : sum,\n 0\n );\n }\n\n return (\n totalCityTaxPrice /\n (this.numberOfNights(unit) > 0 ? this.numberOfNights(unit) : 1)\n );\n }\n\n numberOfNights(unit: ReservationAccUnitModel) {\n if (unit.arrivalDate && unit.departureDate) {\n return differenceInDays(\n new Date(unit.arrivalDate),\n new Date(unit.departureDate)\n );\n } else {\n return 0;\n }\n }\n\n formValid = false;\n\n @Ref(\"form\") internalForm?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n isReservationValid() {\n if (!this.reservationModel) {\n return false;\n }\n\n if (!this.reservationModel.customerId) {\n return false;\n }\n\n if (!this.reservationModel.distributionChannelTypeId) {\n return false;\n }\n\n if (\n !this.reservationModel.arrivalDate ||\n !this.reservationModel.departureDate\n ) {\n return false;\n }\n\n if ((this.reservationModel.accomodationUnitTypes?.length ?? 0) == 0) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.NoUnitsSelected\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return false;\n }\n // all units must have a rate plan selected\n if (\n this.reservationModel.accomodationUnitTypes.some((x) => !x.ratePlan?.id)\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.AllUnitsMustHaveRatePlan\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return false;\n }\n // all children ages must be set\n if (\n this.reservationModel.accomodationUnitTypes.some((x) =>\n x.childrenAges.some(\n (ca) => ca == null || ca == undefined || ca.toString() == \"\" || ca < 0\n )\n )\n ) {\n return false;\n }\n\n if (\n this.reservationModel.numberOfUnits &&\n this.reservationModel.numberOfUnits <\n this.reservationModel.accomodationUnitTypes.length\n ) {\n return false;\n }\n\n if (\n this.reservationModel.accomodationUnitTypes.some(\n (x) => !x.dayPrices || x.dayPrices.length === 0\n )\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.AllUnitsMustHaveDayPrices\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return false;\n }\n\n return true;\n }\n\n submit(\n overrides: string[],\n updateStayOnEvisitor: boolean,\n updateCheckedOutOnEvisitor: boolean\n ) {\n this.isSaving = true;\n this.noOverbookingMessage = true;\n this.noNotAvailableMessage = true;\n\n const formValid = this.internalForm?.validate();\n\n if (!formValid || !this.isReservationValid()) {\n //check numberOfUnits on ReservationModel\n if (\n this.reservationModel.numberOfUnits &&\n this.reservationModel.numberOfUnits <\n this.reservationModel.accomodationUnitTypes.length\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Reservation.ToManyUnitsSelected\"),\n timeout: 5000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n //Save reservation\n this.saveReservation(\n overrides,\n updateStayOnEvisitor,\n updateCheckedOutOnEvisitor\n );\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return false;\n },\n },\n ],\n } as Notification);\n }\n this.isSaving = false;\n return;\n } else if (formValid && this.isReservationValid()) {\n this.saveReservation(\n overrides,\n updateStayOnEvisitor,\n updateCheckedOutOnEvisitor\n );\n }\n }\n\n isFunction(x: any) {\n return Object.prototype.toString.call(x) === \"[object Function]\";\n }\n\n saveReservation(\n overrides: string[],\n updateStayOnEvisitor: boolean,\n updateCheckedOutOnEvisitor: boolean\n ) {\n const requestModel = new ReservationRequestModel(this.reservationModel);\n let guestUpdateResult = new ReservationGuestUpdateFeedbackModel();\n\n // set 'hasChanges = false' if there's no changes between the unit that was loaded and the unit being saved\n requestModel.accomodationUnitTypes\n .filter((x) => x.id != 0)\n .forEach((x) => {\n const original = _.cloneDeep(\n this.originalUnits.find((e) => e.id === x.id)\n );\n const fresh = _.cloneDeep(\n this.reservationModel.accomodationUnitTypes.find((e) => e.id === x.id)\n );\n\n // original sometimes doesn't have the 'serviceTypeId' at all which is detected as a difference\n original?.dayPrices.forEach((dp) => {\n if (dp.serviceTypeId === undefined) {\n dp.serviceTypeId = undefined;\n }\n });\n\n // format dates\n original?.selectedServices.forEach((x) => {\n if (x.serviceDateFrom) {\n x.serviceDateFrom = x.serviceDateFrom.substring(0, 10);\n }\n if (x.serviceDateTo) {\n x.serviceDateTo = x.serviceDateTo.substring(0, 10);\n }\n });\n\n fresh?.selectedServices.forEach((x) => {\n if (x.serviceDateFrom) {\n x.serviceDateFrom = x.serviceDateFrom.substring(0, 10);\n }\n if (x.serviceDateTo) {\n x.serviceDateTo = x.serviceDateTo.substring(0, 10);\n }\n\n // remove properties not needed for comparison (ids, serviceRange)\n delete (x as any).idx;\n delete (x as any).serviceRange;\n });\n\n // find differences, ignoring functions and certain properties\n const diff = {};\n for (const key in original) {\n if (\n this.isFunction((original as any)[key as string]) ||\n key === \"ratePlanOptions\" ||\n key === \"accomodationUnitOptions\" ||\n key === \"availableServices\"\n ) {\n continue;\n }\n\n if (!_.isEqual((original as any)[key], (fresh as any)[key])) {\n (diff as any)[key] = {\n o: (original as any)[key],\n f: (fresh as any)[key],\n };\n }\n }\n\n for (const key in fresh) {\n if (\n this.isFunction((fresh as any)[key as string]) ||\n key === \"ratePlanOptions\" ||\n key === \"accomodationUnitOptions\" ||\n key === \"availableServices\"\n ) {\n continue;\n }\n\n if (\n !_.isEqual((original as any)[key], (fresh as any)[key]) &&\n !(diff as any)[key]\n ) {\n (diff as any)[key] = {\n o: (original as any)[key],\n f: (fresh as any)[key],\n };\n }\n }\n\n x.hasChanges = Object.getOwnPropertyNames(diff).length > 0;\n });\n\n const handleCodes = [\n \"Reservation.NotAllUnitTypesAvailable\",\n \"Reservation.Overbooked\",\n ];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n if (requestModel.id) {\n Vue.axios\n .put(\n \"reservations/\" + requestModel.id,\n {\n ...requestModel,\n overrideRules: overrides,\n updateStayOnEvisitor: updateStayOnEvisitor,\n updateCheckedOutOnEvisitor: updateCheckedOutOnEvisitor,\n },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then((res) => {\n guestUpdateResult = res.data;\n this.$emit(\"reservationUpdated\");\n this.loadReservation(requestModel.id);\n this.calendarReload();\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.SaveSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n if (updateStayOnEvisitor === true && guestUpdateResult.isSuccessful) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.SaveSuccess\", {\n eVisitorServiceName: this.eVisitorIntegration.name,\n }),\n timeout: 5000,\n });\n } else if (\n updateStayOnEvisitor === true &&\n !guestUpdateResult.isSuccessful\n ) {\n // This is done in a loop to show each guest error separately. It is much more visible this way instead of one notification\n guestUpdateResult.guestsWithErrors.forEach((guest) => {\n const message = `${guest.guestName} - ${guest.errorMessage}`;\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message:\n this.$t(\"Guest check-in on eVisitor failed\", {\n eVisitorServiceName: this.eVisitorIntegration.name,\n }) + message,\n timeout: 10000,\n });\n });\n }\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(\n x.handled,\n updateStayOnEvisitor,\n updateCheckedOutOnEvisitor\n );\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n if (x.unhandled) {\n if (\n x.unhandled.some(\n (br: string) => br === \"ReservationUpdate.ChangedError\"\n )\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n actions: [\n {\n text: this.$t(\"Reload reservation\"),\n fun: () => {\n this.$emit(\"reservationUpdated\");\n this.loadReservation(requestModel.id);\n this.calendarReload();\n return true;\n },\n },\n ],\n localize: true,\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n }\n }\n this.noOverbookingMessage = false;\n })\n .finally(() => {\n this.isSaving = false;\n this.eVisitorTableRef?.refresh();\n });\n } else {\n Vue.axios\n .post(\n \"reservations\",\n {\n ...requestModel,\n overrideRules: overrides,\n },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then((res) => {\n this.reservationModel.id = res.data;\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.SaveSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.loadReservation(this.reservationModel.id);\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(\n x.handled,\n updateStayOnEvisitor,\n updateCheckedOutOnEvisitor\n );\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n this.noOverbookingMessage = false;\n this.noNotAvailableMessage = false;\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n }\n\n markReservationStatusAsOverriden = false;\n\n confirmEvisitorStayUpdate(\n updateCheckedIn: boolean,\n updateCheckedOut: boolean\n ) {\n this.submit([], updateCheckedIn, updateCheckedOut);\n this.isEvisitorDialogOpen = false;\n }\n\n get beautifiedEvisitorText() {\n const text = this.$t(\"Reservation.UpdateEvisitorStayDates.Info\", {\n eVisitorServiceName: this.eVisitorIntegration.name,\n }) as string;\n\n return text\n .replace(/\\? /g, \"?

\")\n .replace(/\\. /g, \".

\")\n .split(\"\\n\")\n .map((line) => `${line.trim()}`)\n .join(\"
\");\n }\n\n get shouldUpdateOnEvisitor() {\n return (\n (this.historicArrivalDate?.toDateString() !==\n this.reservationModel.arrivalDate?.toDateString() ||\n this.historicDepartureDate?.toDateString() !==\n this.reservationModel.departureDate?.toDateString()) &&\n this.reservationModel.accomodationUnitTypes\n .flatMap((x) => x.guests)\n .some((g) => g.isEVisitorCheckedIn === true)\n );\n }\n\n paymentSaved() {\n this.financialTableRef?.load();\n this.paymentsTableRef?.load();\n this.loadReservation(this.reservationModel.id);\n }\n\n get areAllSameProperty() {\n const propertyIds = this.reservationModel.accomodationUnitTypes.map(\n (x) => x.propertyId\n );\n return (\n propertyIds.length === 0 || propertyIds.every((x) => x === propertyIds[0])\n );\n }\n\n get areAllSameOwner() {\n const ownerIds = this.reservationModel.accomodationUnitTypes.map(\n (x) => x.ownerId\n );\n\n return ownerIds.length === 0 || ownerIds.every((x) => x === ownerIds[0]);\n }\n\n get areAllSameAgencyWorkModel() {\n const workModelIds = this.reservationModel.accomodationUnitTypes.map(\n (x) => x.agencyWorkModelId\n );\n\n return (\n workModelIds.length === 0 ||\n workModelIds.every((x) => x === workModelIds[0])\n );\n }\n\n get areAllInOtherNameAndOtherInvoiceSameOwner() {\n const ownerIds = this.reservationModel.accomodationUnitTypes\n .filter(\n (x) =>\n x.agencyWorkModelId === AgencyWorkModelsEnum.OtherNameAndOtherInvoice\n )\n .map((x) => x.ownerId);\n\n return ownerIds.length === 0 || ownerIds.every((x) => x === ownerIds[0]);\n }\n\n //'u svoje ime i za tuđi račun'\n get areAllInOwnNameAndOtherInvoice() {\n const workModelIds = this.reservationModel.accomodationUnitTypes.map(\n (x) => x.agencyWorkModelId\n );\n\n return (\n workModelIds.length === 0 ||\n workModelIds.every(\n (x) => x === AgencyWorkModelsEnum.OwnNameAndOtherInvoice\n )\n );\n }\n\n get areAllSameVATCategoryForPrepayments() {\n const vats = this.reservationModel.accomodationUnitTypes.map(\n (x) => x.vatCategoryForPrepayments\n );\n return vats.length === 0 || vats.every((x) => x === vats[0]);\n }\n\n shouldRouteDocumentsForDifferentOwners(\n documentTypeId: FinancialDocumentTypesEnum\n ) {\n const differentModelOrTaxCategory =\n !this.areAllSameVATCategoryForPrepayments ||\n !this.areAllInOwnNameAndOtherInvoice;\n if (differentModelOrTaxCategory) return true;\n\n if (documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam)\n return this.routePrepaymentsForOwnNameAndOtherInvoice;\n if (documentTypeId === FinancialDocumentTypesEnum.Racun)\n return this.routeInvoicesForOwnNameAndOtherInvoice;\n }\n\n get showOtaReservationId() {\n return (\n !this.isOwnerLevel3 &&\n ((this.reservationModel.distributionChannelTypeId ==\n DistributionChannelEnum.OTA &&\n this.reservationModel.otareservationId) ||\n (this.reservationModel.distributionChannelTypeId ==\n DistributionChannelEnum.PartnerAgency &&\n this.reservationModel.salesChannelId))\n );\n }\n\n get isPartnerAgency() {\n return (\n this.reservationModel.distributionChannelTypeId ==\n DistributionChannelEnum.PartnerAgency &&\n this.reservationModel.salesChannelId\n );\n }\n\n reloadFinancialTable() {\n this.financialTableRef?.load();\n }\n\n cancellationConfirmDialog = false;\n\n async checkCancellationPolicies() {\n await this.axios\n .get(\n \"/reservations/GetEffectiveCancellationPolicies\",\n {\n params: { reservationId: this.reservationModel.id },\n }\n )\n .then((res) => {\n const amount = _.reduce(\n res.data,\n (sum, el) => {\n return (sum += el.amount);\n },\n 0\n );\n\n if (amount === 0) {\n this.cancellationConfirmDialog = true;\n return;\n }\n\n this.generateCancellationInvoice();\n });\n }\n\n cancellationConfirmed() {\n this.cancellationConfirmDialog = false;\n this.generateCancellationInvoice();\n }\n\n confirmMarkedAsManuallyOverriden() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\n \"ReservationBillingStatus.MarkAsManuallyOverridenConfirm\"\n ),\n actions: [\n {\n text: this.$t(\"Confirm\"),\n fun: () => {\n this.markAsManuallyOverriden(this.reservationModel.id.toString());\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n markAsManuallyOverriden(reservationId: string) {\n this.markReservationStatusAsOverriden = true;\n Vue.axios\n .put(`/reservations/MarkReservationsAsManuallyOverriden`, {\n reservationIds: reservationId,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n \"ReservationBillingStatus.MarkAsManuallyOverridenSuccess\"\n ),\n timeout: 5000,\n } as Notification);\n this.reservationModel.invoiceStatusId =\n InvoiceStatusEnum.ManuallyOverriden;\n })\n .finally(() => {\n this.markReservationStatusAsOverriden = false;\n });\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n // new fin doc generation\n @Ref(\"finDocForm\") finDocForm?: FinancialDocumentModalForm;\n showFinDocWarnings(warnings: string[], closeForm = true) {\n if (warnings && warnings.length > 0) {\n warnings.forEach((e) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: e,\n timeout: 30000,\n localize: true,\n actions: closeForm\n ? [\n {\n text: this.$t(\"Continue\"),\n fun: () => {\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n this.closeFinDocForm();\n return true;\n },\n },\n ]\n : undefined,\n } as Notification);\n });\n }\n }\n closeFinDocForm() {\n if (this.finDocForm) {\n this.finDocForm.close();\n }\n }\n invoiceEditingOpen = false;\n deleteDocOnClose = false;\n finDocId = null as number | null;\n\n async generateGuestInvoice(forceSplit = false) {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n\n if (\n forceSplit ||\n !this.areAllSameProperty ||\n !this.areAllSameAgencyWorkModel ||\n (!this.areAllSameOwner &&\n this.shouldRouteDocumentsForDifferentOwners(\n FinancialDocumentTypesEnum.Racun\n ))\n ) {\n this.invoiceRoutingFinancialDocumentTypeId =\n FinancialDocumentTypesEnum.Racun;\n this.invoiceRoutingIsForCancellation = false;\n this.invoiceRoutingOpen = true;\n return;\n }\n\n this.isLoading = true;\n\n Vue.axios\n .post(\n \"financialDocuments/CreateGuestInvoiceForReservation\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n defaultToPropertyBusinessUnit: true,\n overrideRules: [\n \"FinancialDocument.Validation.MustHaveTaxExemptionReason\",\n ],\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n this.finDocId = res.data.documentId;\n this.showFinDocWarnings(res.data.warnings);\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n })\n .finally(() => (this.isLoading = false));\n }\n\n async generateCancellationInvoice() {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n\n if (\n !this.areAllSameProperty ||\n !this.areAllSameOwner ||\n !this.areAllSameAgencyWorkModel\n ) {\n this.invoiceRoutingFinancialDocumentTypeId =\n FinancialDocumentTypesEnum.Racun;\n this.invoiceRoutingIsForCancellation = true;\n this.invoiceRoutingOpen = true;\n return;\n }\n\n this.isLoading = true;\n\n Vue.axios\n .post(\n \"financialDocuments/CreateGuestInvoiceForReservationCancellation\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n defaultToPropertyBusinessUnit: true,\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n this.finDocId = res.data.documentId;\n this.showFinDocWarnings(res.data.warnings);\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n })\n .finally(() => (this.isLoading = false));\n }\n\n async generateOffer() {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n\n this.isLoading = true;\n\n Vue.axios\n .post(\n \"financialDocuments/CreateOfferForReservation\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n defaultToPropertyBusinessUnit: true,\n overrideRules: [\n \"FinancialDocument.Validation.MustHaveTaxExemptionReason\",\n ],\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n this.finDocId = res.data.documentId;\n this.showFinDocWarnings(res.data.warnings);\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n })\n .finally(() => (this.isLoading = false));\n }\n\n async generateAdvanceInvoice() {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n\n if (\n !this.areAllSameProperty ||\n !this.areAllSameAgencyWorkModel ||\n (!this.areAllSameOwner &&\n this.shouldRouteDocumentsForDifferentOwners(\n FinancialDocumentTypesEnum.RacunZaPredujam\n ))\n ) {\n this.invoiceRoutingFinancialDocumentTypeId =\n FinancialDocumentTypesEnum.RacunZaPredujam;\n this.invoiceRoutingIsForCancellation = false;\n this.invoiceRoutingOpen = true;\n return;\n }\n\n this.isLoading = true;\n\n Vue.axios\n .post(\n \"financialDocuments/CreateAdvanceInvoiceForReservation\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n defaultToPropertyBusinessUnit: true,\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n this.finDocId = res.data.documentId;\n this.showFinDocWarnings(res.data.warnings);\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n })\n .finally(() => (this.isLoading = false));\n }\n\n async generateDeliveryNote(forceSplit = false) {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n\n if (\n forceSplit ||\n !this.areAllSameProperty ||\n !this.areAllSameOwner ||\n !this.areAllSameAgencyWorkModel\n ) {\n this.invoiceRoutingFinancialDocumentTypeId =\n FinancialDocumentTypesEnum.Otpremnica;\n this.invoiceRoutingIsForCancellation = false;\n this.invoiceRoutingOpen = true;\n return;\n }\n\n this.isLoading = true;\n\n Vue.axios\n .post(\n \"financialDocuments/CreateDeliveryNoteForReservation\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n defaultToPropertyBusinessUnit: true,\n overrideRules: [\n \"FinancialDocument.Validation.MustHaveTaxExemptionReason\",\n ],\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n this.finDocId = res.data.documentId;\n this.showFinDocWarnings(res.data.warnings);\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n })\n .finally(() => (this.isLoading = false));\n }\n\n get accUnitsEligibleForCommissionInvoice() {\n return this.reservationModel.accomodationUnitTypes.filter(\n (x) =>\n x.ownerId &&\n x.agencyWorkModelId === AgencyWorkModelsEnum.OtherNameAndOtherInvoice\n // TODO: should something like this be added for commission invoices?\n // !x.isInvoicedForOwner &&\n );\n }\n\n async generateCommissionInvoice(ids: number[]) {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as Notification);\n return;\n }\n\n if (ids.length > 0) {\n this.isLoading = true;\n Vue.axios\n .post(\n \"financialDocuments/CreateCommissionInvoiceForReservationUnits\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n reservationUnitIds: ids,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n defaultToPropertyBusinessUnit: true,\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n if (res.data.documentIds.length === 1) {\n this.finDocId = res.data.documentIds[0];\n this.showFinDocWarnings(res.data.warnings);\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n } else {\n this.showFinDocWarnings(res.data.warnings, false);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Commission invoices created\",\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateCommissionInvoices.Failed\"\n ),\n timeout: 5000,\n });\n })\n .finally(() => (this.isLoading = false));\n } else if (this.accUnitsEligibleForCommissionInvoice.length === 1) {\n this.generateCommissionInvoice([\n this.accUnitsEligibleForCommissionInvoice[0].id,\n ]);\n } else {\n this.unitSelectionUnits = this.accUnitsEligibleForCommissionInvoice;\n this.unitSelectionModalAction = this.generateCommissionInvoice;\n this.unitSelectionModalOpen = true;\n return;\n }\n }\n\n get accUnitsEligibleForOwnersInvoice() {\n return this.reservationModel.accomodationUnitTypes.filter(\n (x) =>\n x.ownerId &&\n x.agencyWorkModelId === AgencyWorkModelsEnum.OwnNameAndOtherInvoice &&\n !x.isInvoicedForOwner &&\n !x.ownerIsLegalEntity\n );\n }\n\n async generateOwnersInvoice(ids: number[]) {\n if (ids.length > 0) {\n this.isLoading = true;\n Vue.axios\n .post(\n \"financialDocuments/CreateOwnersInvoiceForReservationUnits\",\n {\n culture: this.internalLanguage,\n reservationId: this.reservationModel.id,\n reservationUnitIds: ids,\n }\n )\n .then((res) => {\n this.reloadFinancialTable();\n\n if (res.data.length === 1) {\n this.finDocId = res.data[0];\n this.deleteDocOnClose = true;\n this.invoiceEditingOpen = true;\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Owner's invoices created\",\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.CreateOwnersInvoices.Failed\"),\n timeout: 5000,\n });\n })\n .finally(() => (this.isLoading = false));\n } else if (this.accUnitsEligibleForOwnersInvoice.length === 1) {\n this.generateOwnersInvoice([this.accUnitsEligibleForOwnersInvoice[0].id]);\n } else {\n this.unitSelectionUnits = this.accUnitsEligibleForOwnersInvoice;\n this.unitSelectionModalAction = this.generateOwnersInvoice;\n this.unitSelectionModalOpen = true;\n return;\n }\n }\n\n invoiceRoutingOpen = false;\n invoiceRoutingFinancialDocumentTypeId = FinancialDocumentTypesEnum.Racun;\n invoiceRoutingIsForCancellation = false;\n get invoiceRoutingDefaults() {\n return {\n reservationId: this.reservationModel?.id ?? 0,\n customerId: this.reservationModel?.customer?.id ?? null,\n customerName: this.reservationModel?.customer?.name ?? \"\",\n customerIdentificationNumber:\n this.reservationModel?.customer?.identificationNumber ?? \"\",\n paymentMeansId: this.reservationModel?.paymentMeansId ?? null,\n cardTypeId: this.reservationModel?.cardTypeId ?? null,\n };\n }\n\n get totalCommisionPrice() {\n const totalUnitPrices =\n this.reservationModel.accomodationUnitTypes\n .filter(\n (x) =>\n x.agencyWorkModelId ===\n AgencyWorkModelsEnum.OtherNameAndOtherInvoice\n )\n .reduce(\n (sum, acc) =>\n sum +\n round(\n round(acc.dayPrices.reduce((dsum, d) => dsum + d.price, 0)) *\n (1 - (acc.discountPercent ?? 0) / 100)\n ),\n 0\n ) || 0;\n\n const totalOwnerFee =\n this.reservationModel.accomodationUnitTypes\n .filter(\n (x) =>\n x.agencyWorkModelId ===\n AgencyWorkModelsEnum.OtherNameAndOtherInvoice\n )\n .reduce(\n (sum, acc) =>\n sum +\n round(\n round(\n acc.dayPrices.reduce((owner, s) => owner + s.inputPrice, 0)\n ) *\n (1 - (acc.discountInputPercent ?? 0) / 100)\n ),\n 0\n ) || 0;\n\n return totalUnitPrices - totalOwnerFee;\n }\n\n confirmReservation() {\n if (\n this.reservationModel.bookingDate &&\n this.reservationModel.arrivalDate &&\n this.reservationModel.bookingDate.substring(0, 10) >\n this.reservationModel.arrivalDate.toISOString().substring(0, 10)\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.BookingDateMustNotBeAfterArrival\",\n timeout: 5000,\n localize: true,\n } as Notification);\n } else if (\n this.reservationModel.bookingDate &&\n this.reservationModel.optionExpirationDate &&\n this.reservationModel.bookingDate.substring(0, 10) >\n this.reservationModel.optionExpirationDate.substring(0, 10)\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.BookingDateMustNotBeAfterOptionExpiration\",\n timeout: 5000,\n localize: true,\n } as Notification);\n } else if (\n this.reservationModel.optionExpirationDate &&\n this.reservationModel.arrivalDate &&\n this.reservationModel.optionExpirationDate.substring(0, 10) >\n this.reservationModel.arrivalDate.toISOString().substring(0, 10)\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.OptionExpirationMustNotBeAfterArrival\",\n timeout: 5000,\n localize: true,\n } as Notification);\n } else {\n this.isSaving = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/ConfirmReservation\")\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.ConfirmSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n }\n\n partialConfirmReservation() {\n this.isSaving = true;\n Vue.axios\n .put(\n \"reservations/\" + this.reservationModel.id + \"/PartialConfirmFromOnHold\"\n )\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.ConfirmSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n get canPutOnHold() {\n return (\n this.reservationModel.statusId === ReservationStatusEnum.Confirmed &&\n !this.reservationModel.accomodationUnitTypes.some(\n (x) =>\n x.statusId === ReservationStatusEnum.CheckedIn ||\n x.statusId === ReservationStatusEnum.CheckedOut\n )\n );\n }\n reservationPutOnHold() {\n this.isSaving = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/ReservationPutOnHold\")\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.PutOnHoldSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n partialHoldReservation() {\n this.isSaving = true;\n Vue.axios\n .put(\n \"reservations/\" + this.reservationModel.id + \"/PartialHoldFromConfirmed\"\n )\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.PutOnHoldSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n unitSelectionModalOpen = false;\n unitSelectionUnits = [] as ReservationAccUnitModel[];\n unitSelectionModalAction: null | ((ids: number[]) => void) = null;\n\n get canMarkAsCheckedIn() {\n return (\n (this.reservationModel.statusId === ReservationStatusEnum.Confirmed ||\n this.reservationModel.statusId === ReservationStatusEnum.Hold) &&\n this.reservationModel.accomodationUnitTypes.some((x) => !x.statusId)\n );\n }\n get canReturnToCheckedIn() {\n return this.reservationModel.accomodationUnitTypes.some(\n (x) => x.statusId === ReservationStatusEnum.CheckedOut\n );\n }\n markAsCheckedIn() {\n if (this.reservationModel.accomodationUnitTypes.length === 1) {\n this.markUnitsAsCheckedIn([]);\n } else {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter((x) => !x.statusId);\n this.unitSelectionModalAction = this.markUnitsAsCheckedIn;\n this.unitSelectionModalOpen = true;\n }\n }\n returnToCheckedIn() {\n if (this.reservationModel.accomodationUnitTypes.length === 1) {\n this.markUnitsAsCheckedIn([]);\n } else {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter(\n (x) => x.statusId === ReservationStatusEnum.CheckedOut\n );\n this.unitSelectionModalAction = this.markUnitsAsCheckedIn;\n this.unitSelectionModalOpen = true;\n }\n }\n markUnitsAsCheckedIn(ids: number[]) {\n this.isSaving = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/SetCheckedIn\", ids)\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.MarkAsCheckedInSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n get canMarkAsCheckedOut() {\n return (\n this.reservationModel.accomodationUnitTypes.some(\n (x) => x.statusId === ReservationStatusEnum.CheckedIn\n ) || this.reservationModel.statusId === ReservationStatusEnum.CheckedIn\n );\n }\n markAsCheckedOut() {\n if (this.reservationModel.accomodationUnitTypes.length === 1) {\n this.markUnitsAsCheckedOut([]);\n } else {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter(\n (x) => x.statusId === ReservationStatusEnum.CheckedIn\n );\n this.unitSelectionModalAction = this.markUnitsAsCheckedOut;\n this.unitSelectionModalOpen = true;\n }\n }\n\n markUnitsAsCheckedOut(ids: number[]) {\n this.isSaving = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/SetCheckedOut\", ids)\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.MarkAsCheckedOutSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n get canMarkAsConfirmed() {\n return (\n (this.reservationModel.accomodationUnitTypes.some(\n (x) => x.statusId === ReservationStatusEnum.CheckedIn\n ) ||\n this.reservationModel.statusId === ReservationStatusEnum.CheckedIn) &&\n this.reservationModel.statusId != ReservationStatusEnum.Hold\n );\n }\n markAsConfirmed() {\n if (this.reservationModel.accomodationUnitTypes.length === 1) {\n this.markUnitsAsConfirmed([]);\n } else {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter(\n (x) => x.statusId === ReservationStatusEnum.CheckedIn\n );\n this.unitSelectionModalAction = this.markUnitsAsConfirmed;\n this.unitSelectionModalOpen = true;\n }\n }\n\n markUnitsAsConfirmed(ids: number[]) {\n this.isSaving = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/UnsetCheckedIn\", ids)\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.BackToConfirmedSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n get isReservationOnHoldAndUnitCheckedInOut() {\n return (\n this.reservationModel.statusId === ReservationStatusEnum.Hold &&\n this.reservationModel.accomodationUnitTypes.some(\n (x) =>\n x.statusId === ReservationStatusEnum.CheckedIn ||\n x.statusId === ReservationStatusEnum.CheckedOut\n )\n );\n }\n\n get isReservationConfirmedAndUnitCheckInOut() {\n return (\n this.reservationModel.statusId === ReservationStatusEnum.Confirmed &&\n this.reservationModel.accomodationUnitTypes.some(\n (x) =>\n x.statusId === ReservationStatusEnum.CheckedIn ||\n x.statusId === ReservationStatusEnum.CheckedOut\n )\n );\n }\n\n //reset unit status if reservation is 'On-hold' and unit is checked-in\n markUnitsAsOnHold() {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter(\n (x) => x.statusId === ReservationStatusEnum.CheckedIn\n );\n this.unitSelectionModalAction = this.markUnitsAsHold;\n this.unitSelectionModalOpen = true;\n }\n\n markUnitsAsHold(ids: number[]) {\n this.isSaving = true;\n Vue.axios\n .put(\n \"reservations/\" + this.reservationModel.id + \"/UnsetCheckedInToHold\",\n ids\n )\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.BackToHoldSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n cancelReservation() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Reservation.CancelConfirm\"),\n timeout: 5000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.cancelReservationConfirmed();\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n return true;\n },\n },\n ],\n } as Notification);\n }\n\n cancelReservationConfirmed() {\n this.isSaving = true;\n this.noOverbookingMessage = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/CancelReservation\")\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.CancelSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n get reservationIsNoShow() {\n let minDate = \"\";\n if (this.reservationModel.accomodationUnitTypes.length > 0) {\n const units = _.cloneDeep(this.reservationModel.accomodationUnitTypes);\n units.sort(\n (a, b) =>\n DateTime.fromISO(a.arrivalDate).toMillis() -\n DateTime.fromISO(b.arrivalDate).toMillis()\n );\n minDate = units[0].arrivalDate;\n } else {\n return false;\n }\n\n return (\n !!this.reservationModel.id &&\n this.reservationModel.statusId == ReservationStatusEnum.Confirmed &&\n DateTime.local() >= DateTime.fromISO(minDate)\n );\n }\n\n get canNoShow() {\n return (\n this.reservationModel.statusId === ReservationStatusEnum.Confirmed &&\n this.reservationModel.accomodationUnitTypes.some((x) => !x.statusId) &&\n (this.reservationModel.arrivalDate ?? new Date())\n .toISOString()\n .substr(0, 10) <= new Date().toISOString().substr(0, 10)\n );\n }\n\n noShowReservation() {\n if (this.reservationModel.accomodationUnitTypes.length === 1) {\n this.noShowUnits([]);\n } else {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter((x) => !x.statusId);\n this.unitSelectionModalAction = this.noShowUnits;\n this.unitSelectionModalOpen = true;\n }\n }\n\n noShowUnits(ids: number[]) {\n this.isSaving = true;\n Vue.axios\n .put(\"reservations/\" + this.reservationModel.id + \"/NoShowUnits\", ids)\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.NoShowSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n canResetStatus(statusId: number) {\n if (statusId === ReservationStatusEnum.Hold) {\n return (\n this.reservationModel.statusId != ReservationStatusEnum.Hold &&\n this.reservationModel.statusId != ReservationStatusEnum.Confirmed &&\n this.reservationModel.statusId != ReservationStatusEnum.CheckedIn &&\n this.reservationModel.statusId != ReservationStatusEnum.CheckedOut\n );\n }\n\n if (statusId === ReservationStatusEnum.Confirmed) {\n return (\n this.reservationModel.statusId === ReservationStatusEnum.Canceled ||\n (this.reservationModel.statusId != ReservationStatusEnum.Hold &&\n this.reservationModel.accomodationUnitTypes.some(\n (x) => x.statusId === ReservationStatusEnum.NoShow\n ))\n );\n }\n\n return false;\n }\n\n resetReservationStatus(statusId: number) {\n this.statusToResetToId = statusId;\n if (\n this.reservationModel.statusId === ReservationStatusEnum.Canceled ||\n this.reservationModel.accomodationUnitTypes.length === 1\n ) {\n this.resetUnitsStatus([]);\n } else {\n this.unitSelectionUnits =\n this.reservationModel.accomodationUnitTypes.filter(\n (x) => x.statusId === ReservationStatusEnum.NoShow\n );\n this.unitSelectionModalAction = this.resetUnitsStatus;\n this.unitSelectionModalOpen = true;\n }\n }\n\n statusToResetToId = 1;\n resetUnitsStatus(ids: number[]) {\n this.isSaving = true;\n Vue.axios\n .put(\n \"reservations/\" +\n this.reservationModel.id +\n \"/ReservationResetStatus/\" +\n this.statusToResetToId,\n ids\n )\n .then(() => {\n this.calendarReload();\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Reservation.ResetSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.$emit(\"reservationUpdated\");\n this.loadReservation(this.reservationModel.id);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n\n submitOtaReservationId() {\n this.isSaving = true;\n const data = {\n reservationId: this.reservationModel.id,\n otaReservationId: this.changedOtaReservationId,\n };\n\n Vue.axios\n .put(\"reservations/UpdateOtaReservationId\", data)\n .then(() => {\n this.reservationModel.otareservationId = this.changedOtaReservationId;\n this.menuOpen = false;\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Reservation.OtaReservationIdChange.Success\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.isSaving = false;\n });\n }\n @Watch(\"menuOpen\")\n menuOpenChange(fresh: boolean) {\n if (!fresh) {\n this.changedOtaReservationId = this.reservationModel.otareservationId;\n }\n }\n\n maxLength(max: number) {\n return (v: string) =>\n !v || v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n calendarReload() {\n if (\n this.reservationModel.arrivalDate &&\n this.reservationModel.departureDate &&\n this.fromCalendar\n ) {\n const minArrivalDate =\n this.historicArrivalDate &&\n this.historicArrivalDate.getTime() <\n this.reservationModel.arrivalDate.getTime()\n ? this.historicArrivalDate\n : this.reservationModel.arrivalDate;\n\n const maxDepartureDate =\n this.historicDepartureDate &&\n this.historicDepartureDate.getTime() >\n this.reservationModel.departureDate.getTime()\n ? this.historicDepartureDate\n : this.reservationModel.departureDate;\n\n this.$emit(\"calendarReload\", {\n from: DateTime.fromJSDate(minArrivalDate),\n to: DateTime.fromJSDate(maxDepartureDate),\n });\n }\n }\n refreshEVisitorTable() {\n this.eVisitorTableRef?.load();\n }\n\n refreshReservation() {\n this.paymentsTableRef?.load();\n this.eVisitorTableRef?.load();\n this.loadReservation(this.reservationModel.id);\n }\n\n setReservationColor() {\n if (this.reservationModel.id) {\n this.isLoading = true;\n this.axios\n .put(\"reservations/SetReservationColor\", {\n reservationId: this.reservationModel.id,\n colorCodeHex: this.reservationModel.colorCodeHex,\n })\n .then(() => {\n this.calendarReload();\n })\n .finally(() => {\n this.isLoading = false;\n });\n }\n }\n\n @Action(\"codebooks/refreshOtas\") refreshOtas?: () => Promise;\n @Getter(\"codebooks/otasWithInactive\") otas?: Ota[];\n\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\") serviceTypes?: ServiceType[];\n\n @Action(\"appParams/refreshAppParams\") refreshAppParams?: () => Promise;\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n\n @Getter(\"appParams/routePrepaymentsForOwnNameAndOtherInvoice\")\n routePrepaymentsForOwnNameAndOtherInvoice?: boolean;\n @Getter(\"appParams/routeInvoicesForOwnNameAndOtherInvoice\")\n routeInvoicesForOwnNameAndOtherInvoice?: boolean;\n\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n @Getter(\"appParams/tenantCustomer\") tenantCustomer?: TenantCustomerModel;\n @Getter(\"appParams/tenantGeneratesOwnersInvoices\")\n tenantGeneratesOwnersInvoices?: boolean;\n @Getter(\"appParams/tenantGeneratesDeliveryNotes\")\n tenantGeneratesDeliveryNotes?: boolean;\n @Getter(\"appParams/tenantPaysVat\") tenantPaysVat?: boolean;\n @Getter(\"appParams/tenantPaymentGatewayIntegrationId\")\n tenantPaymentGatewayIntegrationId?: number;\n @Getter(\"appParams/tenantUsesOfficialRates\")\n tenantUsesOfficialRates?: boolean;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n // prettier-ignore\n @Getter(\"codebooks/unitsOfMeasure\") unitsOfMeasure?: any[];\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n // prettier-ignore\n @Action(\"codebooks/refreshTaxRates\")refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n // prettier-ignore\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"businessUnit/availableBusinessUnits\")\n availableBusinessUnits?: BusinessUnit[];\n\n @Getter(\"cashRegister/availableCashRegisters\")\n availableCashRegisters?: CashRegisterModel[];\n\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n scrolledFlag = true;\n @Action(\"reservation/setGuestsUnchanged\") setGuestsUnchanged?: (\n payload: boolean\n ) => Promise;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationModal.vue?vue&type=template&id=6aa1adbe&scoped=true&\"\nimport script from \"./ReservationModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationModal.vue?vue&type=style&index=0&id=6aa1adbe&scoped=true&lang=scss&\"\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 \"6aa1adbe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VFadeTransition,VFooter,VForm,VIcon,VList,VListItem,VListItemTitle,VMenu,VProgressLinear,VRow,VSpacer,VTab,VTabItem,VTabs,VTabsItems,VTextField,VToolbar,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPMSTableSelectionBucket.vue?vue&type=style&index=0&id=533df076&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=style&index=0&id=f9e115da&scoped=true&lang=css&\"","export default interface VReservation {\n tenantId: number;\n reservationId: number;\n reservationAccUnitTypeId: number;\n bookingDate: string;\n distributionChannelType: string;\n distributionChannelTypeId?: number;\n otachannelName: string;\n otareservationId: string;\n arrivalDate: string;\n departureDate: string;\n numberOfNights: number;\n expectedArrivalTime: string;\n totalPrice: number;\n currencyCode: string;\n reservationHolderId: number;\n reservationHolderName: string;\n reservationHolderTelephoneNumber: string | null;\n reservationGuestName: string | null;\n reservationGuestPlaceholder: string | null;\n countryOfResidence: string;\n propertyId: number;\n propertyName: string;\n accomodationUnitTypeName: string;\n accomodationUnitName: string;\n numberOfAdults: number;\n numberOfChildren: number;\n modificationDate: string;\n cancelationDate: string;\n optionExpirationDate: string;\n statusId: number;\n statusName: string;\n propertyStaffRemarks: string;\n guestRemarks: string;\n remarksForOwner: string;\n generalMaintenanceStaffRemarks: string;\n unitMaintenanceStaffRemarks: string;\n otaChannelComission: number;\n ownerTotalPrice: number | 0;\n amountToInvoice: number;\n reservationInvoiceStatusTextResourceKey: string;\n}\n\nexport interface DashboardReservationsAdditionalInfo {\n countOfReservations: number;\n countOfReservationUnits: number;\n totalPrice?: number;\n totalPriceOfConfirmed?: number;\n}\n\nexport interface DashboardArrivalsDeparturesKPISummaryViewModel {\n totalReservations: number;\n upcomingReservations: number;\n completedReservations: number;\n totalReservationsUnits: number;\n upcomingReservationsUnits: number;\n completedReservationsUnits: number;\n}\n\nexport const reservationStatuses = [\n {\n id: 1,\n color: \"warning\",\n icon: \"fa-pause-circle\",\n text: \"t.ReservationStatus.Hold\",\n },\n {\n id: 2,\n color: \"success\",\n icon: \"fa-check-circle\",\n text: \"t.ReservationStatus.Confirmed\",\n },\n {\n id: 3,\n color: \"error\",\n icon: \"fa-ban\",\n text: \"t.ReservationStatus.Canceled\",\n },\n {\n id: 4,\n color: \"primary\",\n icon: \"fa-sign-in-alt\",\n text: \"t.ReservationStatus.CheckedIn\",\n },\n {\n id: 5,\n color: \"accent\",\n icon: \"fa-sign-out-alt\",\n text: \"t.ReservationStatus.CheckedOut\",\n },\n {\n id: 6,\n color: \"black\",\n icon: \"fa-map-marker-slash\",\n text: \"t.ReservationStatus.NoShow\",\n },\n];\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentReservationSummary.vue?vue&type=style&index=0&id=18175a70&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeDrawer.vue?vue&type=style&index=0&id=0d14b7d1&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{ref:\"fieldRef\",attrs:{\"label\":_vm.label,\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails,\"rules\":_vm.rules.concat( [_vm.maxDecimals(_vm.value)], [_vm.max(_vm.value)], [_vm.min(_vm.value)]),\"suffix\":_vm.suffix,\"prefix\":_vm.prefix,\"reverse\":_vm.reverse,\"readonly\":_vm.readonly,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},on:{\"input\":_vm.valueChanged,\"blur\":function($event){return _vm.blurHandler()},\"focus\":function($event){return _vm.focusHandler()},\"keydown\":_vm.inputCheck},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_vm._t(\"append\"),(_vm.showTooltip && !_vm.reverse)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,false,743260546)},[_vm._v(\" \"+_vm._s(_vm.fullValue)+\" \")]):_vm._e()]},proxy:true},{key:\"append-outer\",fn:function(){return [_vm._t(\"append-outer\")]},proxy:true},{key:\"prepend\",fn:function(){return [_vm._t(\"prepend\")]},proxy:true},{key:\"prepend-inner\",fn:function(){return [_vm._t(\"prepend-inner\"),(_vm.showTooltip && _vm.reverse)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,false,743260546)},[_vm._v(\" \"+_vm._s(_vm.fullValue)+\" \")]):_vm._e()]},proxy:true}],null,true),model:{value:(_vm.internalModel),callback:function ($$v) {_vm.internalModel=$$v},expression:\"internalModel\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch, Ref } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport {\n round,\n formatLocaleNumber,\n parseLocaleNumber,\n getSeparators,\n} from \"@/components/numbers/numberFormatUtils\";\n\n@Component\nexport default class NumericInputImproved extends Vue {\n @Prop() value?: number | null;\n\n // behavior properties\n // empty field return type\n @Prop({ default: \"null\" }) emptyReturn?: \"null\" | \"undefined\" | \"\";\n // if set to true then the value will be set to 0 instead of emptyReturn on blur if the field is empty\n @Prop({ default: false }) defaultToZeroWhenEmpty?: boolean;\n // number of allowed decimal places, if set to 0 the value is treated as an integer\n @Prop({ default: 2 }) decimalPlaces?: number;\n // number of displayed decimal places, display is rounded to this number of decimal places, does not affect the actual value\n @Prop({ default: null }) displayDecimalPlaces?: number | null;\n // controls if the value should be transformed to positive or negative\n @Prop({ default: \"none\" }) transform?: \"none\" | \"toPositive\" | \"toNegative\";\n // controls if the value is rounded on blur\n @Prop({ default: false }) roundOnBlur?: boolean;\n // forces input validation, preventing input of letters, multiple decimal separators, etc.\n @Prop({ default: false }) validateInput?: boolean;\n // format the field's string value to show the full value instead of the rounded value when the field gains focus\n @Prop({ default: true }) formatOnFocus?: boolean;\n\n // min/max value (for validation only)\n @Prop({\n default: () => {\n return { value: null, isExclusive: false };\n },\n })\n maxValue?: {\n value: number | null;\n isExclusive: boolean;\n };\n @Prop({\n default: () => {\n return { value: null, isExclusive: false };\n },\n })\n minValue?: {\n value: number | null;\n isExclusive: boolean;\n };\n\n // display/design properties\n @Prop() label?: string;\n @Prop({ default: false }) outlined?: boolean;\n @Prop({ default: false }) dense?: boolean;\n @Prop({ default: false }) disabled?: boolean;\n @Prop({ default: false }) readonly?: boolean;\n @Prop({ default: false }) hideDetails?: boolean;\n @Prop({ default: null }) suffix?: string;\n @Prop({ default: null }) prefix?: string;\n @Prop({ default: false }) reverse?: boolean;\n @Prop({ default: null }) placeholder?: string;\n\n // external validation\n @Prop({ default: () => [] }) rules?: any[];\n\n @Getter(\"language/language\") language?: string;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get valueAsInteger() {\n return this.decimalPlaces === 0;\n }\n\n get internalDisplayDecimalPlaces() {\n return this.displayDecimalPlaces ?? this.decimalPlaces;\n }\n\n get showTooltip() {\n return this.decimalPlaces != this.internalDisplayDecimalPlaces;\n }\n\n get fullValue() {\n const decimals = this.countDecimals(this.value ?? 0);\n const fullValue = this.$n(this.value ?? 0, {\n style: \"decimal\",\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n }).toString();\n const parts = [this.prefix ?? \"\", fullValue, this.suffix ?? \"\"];\n if (this.reverse) parts.reverse();\n return parts.filter((e) => !!e).join(\" \");\n }\n\n internalModel = \"\";\n\n @Ref(\"fieldRef\") inputField?: {\n hasError: boolean;\n };\n\n get hasErrors() {\n return this.inputField?.hasError ?? false;\n }\n\n hasFocus = false;\n\n inputCheck(event: KeyboardEvent) {\n if (!this.validateInput) return;\n\n const currentFirstChar = this.internalModel[0];\n const separators = getSeparators(this.internalLanguage);\n const actionKey = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Home\",\n \"End\",\n \"Delete\",\n \"Backspace\",\n \"Tab\",\n ];\n\n const isActionKey = actionKey.includes(event.key);\n const plusOrMinus =\n event.key === \"+\" || event.key === \"-\" || event.key === \"−\";\n const isSelectCopyPaste = /[AaCcVvXxZz]/.test(event.key) && event.ctrlKey;\n const isNumeric = /[0-9]/.test(event.key);\n\n // just go through, nothing special\n if (\n isActionKey ||\n isSelectCopyPaste ||\n isNumeric ||\n event.key === separators.thousands\n ) {\n return;\n }\n\n // only 1 decimal separator allowed\n if (this.decimalPlaces !== 0) {\n if (\n event.key === separators.decimals &&\n !this.internalModel.includes(event.key)\n ) {\n return;\n }\n }\n\n // plus and minus prevent the actual input and flip the value to positive or negative\n if (plusOrMinus) {\n event.preventDefault();\n event.stopPropagation();\n\n const target = event.target as HTMLInputElement;\n\n if (\n event.key === \"+\" &&\n (currentFirstChar === \"-\" || currentFirstChar === \"−\")\n ) {\n if (target.selectionStart != target.selectionEnd && target.selectionStart !== null && target.selectionEnd !== null){\n this.clearSelection(target.selectionStart, target.selectionEnd);\n }\n if (this.internalModel.length > 0) this.internalModel = this.internalModel.substring(1);\n const n = parseLocaleNumber(this.internalModel, this.internalLanguage);\n this.$emit(\"input\", n);\n } else if (\n (event.key === \"-\" || event.key === \"−\") &&\n currentFirstChar !== \"-\" &&\n currentFirstChar !== \"−\"\n ) {\n if (target.selectionStart != target.selectionEnd && target.selectionStart !== null && target.selectionEnd !== null){\n this.clearSelection(target.selectionStart, target.selectionEnd);\n }\n this.internalModel = event.key + this.internalModel;\n const n = parseLocaleNumber(this.internalModel, this.internalLanguage);\n this.$emit(\"input\", n);\n }\n\n return;\n }\n\n // in other cases prevent the input\n event.preventDefault();\n event.stopPropagation();\n }\n\n clearSelection(selectionStart: number, selectionEnd: number){\n let remaining = \"\";\n if (selectionStart > 0) remaining += this.internalModel.substring(0, selectionStart);\n if (selectionEnd < this.internalModel.length - 1) remaining += this.internalModel.substring(selectionEnd);\n this.internalModel = remaining;\n }\n\n @Watch(\"value\", { immediate: true })\n inputValueChanged(fresh: number | null | undefined) {\n // 1 tick delay for validation to run\n this.$nextTick(() => {\n const decimals =\n this.countDecimals(fresh ?? 0) > (this.decimalPlaces ?? 2)\n ? this.countDecimals(fresh ?? 0)\n : this.decimalPlaces ?? 2;\n\n if (this.hasErrors) {\n if (fresh !== null && fresh !== undefined && !Number.isNaN(fresh)) {\n this.formatDisplay(decimals);\n return;\n }\n }\n\n if (Number.isNaN(fresh) || fresh == null || fresh == undefined) {\n this.internalModel = \"\";\n } else {\n const forComparison = formatLocaleNumber(\n parseLocaleNumber(this.internalModel, this.internalLanguage),\n decimals,\n this.internalLanguage\n );\n\n const negativeZeroCheck = formatLocaleNumber(\n -0,\n decimals,\n this.internalLanguage\n );\n const freshFormated = formatLocaleNumber(\n fresh,\n decimals,\n this.internalLanguage\n );\n\n if (\n (freshFormated === forComparison && fresh !== 0) ||\n freshFormated === negativeZeroCheck\n ) {\n this.formatDisplay(this.internalDisplayDecimalPlaces);\n return;\n }\n }\n\n this.formatDisplay(this.internalDisplayDecimalPlaces);\n });\n }\n\n valueChanged() {\n if (this.internalModel === \"-\" || this.internalModel === \"+\") {\n this.$emit(\"input\", -0);\n } else if (this.internalModel != \"\") {\n const n = parseLocaleNumber(this.internalModel, this.internalLanguage);\n\n // round to nearest integer if needed\n if (this.valueAsInteger) {\n this.$emit(\"input\", round(n, 0));\n } else {\n this.$emit(\"input\", n);\n }\n } else {\n this.$emit(\n \"input\",\n this.emptyReturn === \"null\"\n ? null\n : this.emptyReturn === \"undefined\"\n ? undefined\n : \"\"\n );\n }\n }\n\n focusHandler() {\n if (!this.hasErrors && this.formatOnFocus)\n this.formatDisplay(this.decimalPlaces);\n this.hasFocus = true;\n }\n\n blurHandler() {\n this.hasFocus = false;\n this.format();\n this.$emit(\"blur\");\n }\n\n format() {\n if (this.internalModel !== \"\" && (!this.hasErrors || this.roundOnBlur)) {\n // valid number check\n let n = parseLocaleNumber(this.internalModel, this.internalLanguage);\n\n // transform value as needed\n if (\n (n > 0 && this.transform === \"toNegative\") ||\n (n < 0 && this.transform === \"toPositive\")\n ) {\n n *= -1;\n this.$emit(\"input\", round(n, this.decimalPlaces ?? 2));\n } else if (this.roundOnBlur) {\n this.$emit(\"input\", round(n, this.decimalPlaces ?? 2));\n }\n\n this.internalModel = formatLocaleNumber(\n n,\n this.decimalPlaces,\n this.internalLanguage\n );\n\n this.formatDisplay(this.internalDisplayDecimalPlaces);\n }\n\n if (this.internalModel === \"\" && this.defaultToZeroWhenEmpty) {\n this.internalModel = \"0\";\n this.$emit(\"input\", 0);\n }\n }\n\n formatDisplay(decimals: number | undefined) {\n // I don't want my input changing as I'm typing so only do it if the element isn't focused\n if (!this.hasFocus) {\n this.internalModel = formatLocaleNumber(\n this.value,\n decimals,\n this.internalLanguage\n );\n }\n }\n\n // internal validation\n maxDecimals(value: number | null | undefined) {\n if (value === null || value === undefined) return true;\n\n if (value !== undefined) {\n return !(this.countDecimals(value) > (this.decimalPlaces ?? 2))\n ? true\n : this.$t(\"Validation.MaxDecimals{max}\", {\n max: this.decimalPlaces ?? 2,\n });\n } else {\n return true;\n }\n }\n\n countDecimals(num: number) {\n return num.toString().split(\".\")[1]?.length || 0;\n }\n\n max(num: number | null | undefined) {\n if (\n num === null ||\n num === undefined ||\n this.maxValue?.value === null ||\n this.maxValue?.value === undefined\n )\n return true;\n\n const maxValue = this.maxValue.isExclusive\n ? this.maxValue.value - 1 / 10 ** (this.decimalPlaces ?? 0)\n : this.maxValue.value;\n\n if (maxValue < num)\n return this.$t(\"Validation.NumericInput.MaxValue\", {\n max: formatLocaleNumber(\n maxValue,\n this.decimalPlaces,\n this.internalLanguage\n ),\n });\n return true;\n }\n\n min(num: number | null | undefined) {\n if (\n num === null ||\n num === undefined ||\n this.minValue?.value === null ||\n this.minValue?.value === undefined\n )\n return true;\n\n const minValue = this.minValue.isExclusive\n ? this.minValue.value + 1 / 10 ** (this.decimalPlaces ?? 0)\n : this.minValue.value;\n\n if (minValue > num)\n return this.$t(\"Validation.NumericInput.MinValue\", {\n min: formatLocaleNumber(\n minValue,\n this.decimalPlaces,\n this.internalLanguage\n ),\n });\n return true;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericInputImproved.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericInputImproved.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumericInputImproved.vue?vue&type=template&id=564a188f&scoped=true&\"\nimport script from \"./NumericInputImproved.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumericInputImproved.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 \"564a188f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{staticClass:\"global-properties\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialCheckInCustomerData,\"watched\":_vm.checkInCustomerData,\"is-watched-valid\":_vm.isFormValid,\"message\":_vm.changePendingMessage},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"checkInCustomerData-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[(_vm.eVisitorIntegrationId !== _vm.eVisitorIntegrationEnum.None)?_c('v-btn',{attrs:{\"disabled\":_vm.checkStatus !== 1 || !_vm.submitCheckInDisabled},on:{\"click\":_vm.checkIn}},[_vm._v(_vm._s(_vm.$t(_vm.checkInEVisitorLabel, { eVisitorServiceName: _vm.eVisitorIntegrationName, })))]):_vm._e(),(_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"disabled\":_vm.checkStatus !== 2 || !_vm.submitDisabled},on:{\"click\":_vm.checkOut}},[_vm._v(_vm._s(_vm.$t(_vm.checkOutEVisitorLabel, { eVisitorServiceName: _vm.eVisitorIntegrationName, })))]):_vm._e(),(\n _vm.checkStatus === 2 &&\n _vm.eVisitorIntegrationId !== _vm.eVisitorIntegrationEnum.None\n )?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"disabled\":!_vm.submitDisabled && false},on:{\"click\":_vm.updateEVisitorCheckIn}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Edit checkIn\"))+\" \")]):_vm._e(),(\n _vm.checkStatus === 2 &&\n _vm.eVisitorIntegrationId !== _vm.eVisitorIntegrationEnum.None\n )?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"disabled\":!_vm.submitDisabled},on:{\"click\":_vm.revertEVisitorCheckIn}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel checkIn\"))+\" \")]):_vm._e(),(\n _vm.checkStatus === 3 &&\n _vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n )?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"disabled\":!_vm.submitDisabled},on:{\"click\":_vm.revertEVisitorCheckOut}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel checkOut\"))+\" \")]):_vm._e(),_c('v-spacer'),(_vm.checkStatus === 1)?_c('v-btn',{staticClass:\"ml-4\",attrs:{\"color\":\"primary\",\"loading\":_vm.saving},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]):_vm._e(),_c('v-btn',{staticClass:\"ml-2\",on:{\"click\":_vm.closeModal}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"checkInCustomerData-form-title\"},[_vm._v(_vm._s(_vm.$t(\"CheckInCustomer.Editing\", { eVisitorServiceName: _vm.eVisitorIntegrationName, }))+\" - \"+_vm._s(_vm.customerNameAndReservation))])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('First name') + '*',\"rules\":_vm.rules.firstName,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.firstName),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"firstName\", $$v)},expression:\"checkInCustomerData.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Middle name'),\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.middleName),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"middleName\", $$v)},expression:\"checkInCustomerData.middleName\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Last name') + '*',\"rules\":_vm.rules.lastName,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.lastName),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"lastName\", $$v)},expression:\"checkInCustomerData.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Email'),\"rules\":_vm.rules.email,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.eMail),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"eMail\", $$v)},expression:\"checkInCustomerData.eMail\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Telephone number'),\"rules\":_vm.rules.telephoneNumber,\"disabled\":_vm.checkStatus === 3,\"placeholder\":\"+385 99 1111 222\"},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"telephoneNumber\", $$v)},expression:\"checkInCustomerData.telephoneNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-radio-group',{attrs:{\"row\":\"\",\"disabled\":_vm.checkStatus === 3,\"rules\":_vm.rules.gender},model:{value:(_vm.checkInCustomerData.genderId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"genderId\", $$v)},expression:\"checkInCustomerData.genderId\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('Male').substr(0, 1),\"value\":1}}),_c('v-radio',{attrs:{\"label\":_vm.$t('Female').substr(0, 1),\"value\":2}}),_c('span',[_vm._v(_vm._s(_vm.eVisitStar(\"genderId\")))])],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Date of birth') + _vm.eVisitStar('dateOfBirth'),\"max\":new Date().toISOString().substr(0, 10),\"activePicker\":\"YEAR\",\"editable\":true,\"rules\":_vm.rules.eVisitorRequired,\"disabled\":_vm.checkStatus === 3},on:{\"input\":function($event){_vm.setDirty();\n _vm.onDateOfBirthChange();}},model:{value:(_vm.checkInCustomerData.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"dateOfBirth\", $$v)},expression:\"checkInCustomerData.dateOfBirth\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of birth') + _vm.eVisitStar('countryOfBirthId'),\"items\":_vm.countries,\"item-value\":\"id\",\"rules\":[].concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) ),\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.countryOfBirthId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"countryOfBirthId\", $$v)},expression:\"checkInCustomerData.countryOfBirthId\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of citizenship') + _vm.eVisitStar('citizenshipId'),\"items\":_vm.countries,\"item-value\":\"id\",\"rules\":[].concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) ),\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.citizenshipId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"citizenshipId\", $$v)},expression:\"checkInCustomerData.citizenshipId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of residence') + _vm.eVisitStar('countryOfResidenceId'),\"items\":_vm.countries,\"item-value\":\"id\",\"rules\":_vm.rules.eVisitorRequired,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"countryOfResidenceId\", $$v)},expression:\"checkInCustomerData.countryOfResidenceId\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[(_vm.checkInCustomerData.countryOfResidenceId === 1)?_c('v-combobox',{attrs:{\"label\":_vm.$t('City') + _vm.eVisitStar('city'),\"rules\":_vm.rules.city.concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) ),\"items\":_vm.cities,\"loading\":_vm.isCitiesLoading,\"search-input\":_vm.checkInCustomerData.city,\"auto-select-first\":true,\"item-text\":\"name\",\"item-value\":\"name\",\"return-object\":false,\"disabled\":_vm.checkStatus === 3},on:{\"update:searchInput\":function($event){return _vm.$set(_vm.checkInCustomerData, \"city\", $event)},\"update:search-input\":function($event){return _vm.$set(_vm.checkInCustomerData, \"city\", $event)},\"change\":_vm.setCTCategory,\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.city),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"city\", $$v)},expression:\"checkInCustomerData.city\"}}):_c('v-text-field',{attrs:{\"label\":_vm.$t('City') + _vm.eVisitStar('city'),\"rules\":_vm.rules.city.concat( (_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR\n ? _vm.rules.eVisitorRequired\n : []) ),\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.city),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"city\", $$v)},expression:\"checkInCustomerData.city\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Street name'),\"rules\":_vm.rules.streetName,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.streetName),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"streetName\", $$v)},expression:\"checkInCustomerData.streetName\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('House number'),\"rules\":_vm.rules.houseNumber,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.houseNumber),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"houseNumber\", $$v)},expression:\"checkInCustomerData.houseNumber\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Identification document type') +\n _vm.eVisitStar('identificationDocumentTypeId'),\"items\":_vm.identificationDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"rules\":_vm.rules.eVisitorRequired,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.identificationDocumentTypeId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"identificationDocumentTypeId\", $$v)},expression:\"checkInCustomerData.identificationDocumentTypeId\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Identification document number') +\n _vm.eVisitStar('identificationDocumentNumber'),\"rules\":_vm.rules.identificationDocumentNumber,\"disabled\":_vm.checkStatus === 3},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInCustomerData.identificationDocumentNumber),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"identificationDocumentNumber\", $$v)},expression:\"checkInCustomerData.identificationDocumentNumber\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('City tax category') + _vm.eVisitStar('eVisitorPaymentCategoryId'),\"items\":_vm.cityTaxCategories,\"rules\":_vm.rules.eVisitorRequired,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"disabled\":_vm.checkStatus === 3},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.eVisitorPaymentCategoryId),callback:function ($$v) {_vm.eVisitorPaymentCategoryId=$$v},expression:\"eVisitorPaymentCategoryId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Arrival date') + _vm.eVisitStar('checkInDate'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"outlined\":\"\",\"disabled\":_vm.checkStatus === 3},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.checkInDate),callback:function ($$v) {_vm.checkInDate=$$v},expression:\"checkInDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Departure date') + _vm.eVisitStar('checkOutDate'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"outlined\":\"\",\"disabled\":_vm.checkStatus === 3},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.checkOutDate),callback:function ($$v) {_vm.checkOutDate=$$v},expression:\"checkOutDate\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-in time') + _vm.eVisitStar('eVisitorCheckInTime'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"outlined\":\"\",\"disabled\":_vm.checkStatus === 3,\"applyFormatingOnLoad\":true},on:{\"input\":_vm.setDirty,\"update:error\":_vm.expandOnError},model:{value:(_vm.checkInCustomerData.eVisitorCheckInTime),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"eVisitorCheckInTime\", $$v)},expression:\"checkInCustomerData.eVisitorCheckInTime\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-out time') + _vm.eVisitStar('eVisitorCheckOutTimeViewField'),\"rules\":_vm.rules.eVisitorRequired.concat( [_vm.rules.dateTimesOrder()]),\"outlined\":\"\",\"disabled\":_vm.checkStatus === 3,\"applyFormatingOnLoad\":true},on:{\"input\":_vm.setDirty,\"update:error\":_vm.expandOnError},model:{value:(_vm.checkInCustomerData.eVisitorCheckOutTimeViewField),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"eVisitorCheckOutTimeViewField\", $$v)},expression:\"checkInCustomerData.eVisitorCheckOutTimeViewField\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property') + _vm.eVisitStar('propertyId'),\"items\":_vm.properties,\"rules\":_vm.rules.eVisitorRequired,\"item-value\":\"propertyId\",\"item-text\":\"name\",\"disabled\":_vm.checkStatus === 2 || _vm.checkStatus === 3},on:{\"change\":_vm.setCTCategory,\"update:error\":_vm.expandOnError},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.name)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(item.address)+\", \"+_vm._s(item.postalCodeAndCity)+\" \")])],1)],1)]}}]),model:{value:(_vm.propertyId),callback:function ($$v) {_vm.propertyId=$$v},expression:\"propertyId\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('eVisitor facility', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }) + _vm.eVisitStar('eVisitorFacilityId'),\"items\":_vm.sortedEVisitorFacilities,\"rules\":[\n _vm.rules.eVisitorRequiredBool,\n _vm.rules.eVisitorFacilityIdOnProperty(\n _vm.checkInCustomerData.eVisitorFacilityPropertyId\n ) ],\"item-value\":\"id\",\"item-text\":function (x) { return (x.accountName ? x.accountName : x.facility); },\"item-disabled\":function (x) { return !x.status; },\"disabled\":_vm.checkStatus === 2 || _vm.checkStatus === 3},on:{\"update:error\":_vm.expandOnError},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.accountName ? item.accountName : item.facility)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.numberOfFilledBeds(item))+\" / \"+_vm._s(item.numberOfBeds)+\" \")])],1)],1)]}}]),model:{value:(_vm.checkInCustomerData.eVisitorFacilityId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"eVisitorFacilityId\", $$v)},expression:\"checkInCustomerData.eVisitorFacilityId\"}})],1)],1),(\n (_vm.arrivalOrganizationTypes && _vm.arrivalOrganizationTypes.length > 0) ||\n (_vm.arrivalReasons && _vm.arrivalReasons.length > 0)\n )?_c('v-row',[(_vm.arrivalOrganizationTypes && _vm.arrivalOrganizationTypes.length > 0)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Arrival organisation type') +\n _vm.eVisitStar('eVisitorArrivalOrganizationTypeId'),\"items\":_vm.arrivalOrganizationTypes,\"rules\":_vm.rules.eVisitorRequired,\"item-value\":\"id\",\"item-text\":\"name\",\"disabled\":_vm.checkStatus === 3},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.eVisitorArrivalOrganizationTypeId),callback:function ($$v) {_vm.eVisitorArrivalOrganizationTypeId=$$v},expression:\"eVisitorArrivalOrganizationTypeId\"}})],1):_vm._e(),(_vm.arrivalReasons && _vm.arrivalReasons.length > 0)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Arrival reason'),\"items\":_vm.arrivalReasons,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"disabled\":_vm.checkStatus === 3},on:{\"update:error\":_vm.expandOnError},model:{value:(_vm.checkInCustomerData.arrivalReasonId),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"arrivalReasonId\", $$v)},expression:\"checkInCustomerData.arrivalReasonId\"}})],1):_vm._e()],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CheckIn status'),\"disabled\":\"\"},on:{\"input\":_vm.setDirty},model:{value:(_vm.checkInOutStatusText),callback:function ($$v) {_vm.checkInOutStatusText=$$v},expression:\"checkInOutStatusText\"}})],1)],1),(_vm.checkInCustomerData.eVisitorCancelCheckInReason)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('Cancel check-in on eVisitor reason', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }),\"rows\":3,\"readonly\":\"\"},model:{value:(_vm.checkInCustomerData.eVisitorCancelCheckInReason),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"eVisitorCancelCheckInReason\", $$v)},expression:\"checkInCustomerData.eVisitorCancelCheckInReason\"}})],1)],1):_vm._e(),(_vm.checkInCustomerData.eVisitorCancelCheckOutReason)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('Cancel check-out on eVisitor reason', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }),\"rows\":3,\"readonly\":\"\"},model:{value:(_vm.checkInCustomerData.eVisitorCancelCheckOutReason),callback:function ($$v) {_vm.$set(_vm.checkInCustomerData, \"eVisitorCancelCheckOutReason\", $$v)},expression:\"checkInCustomerData.eVisitorCancelCheckOutReason\"}})],1)],1):_vm._e(),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\",\"color\":\"primary\"}})],1),_c('v-dialog',{attrs:{\"max-width\":\"400px\"},model:{value:(_vm.reasonOpen),callback:function ($$v) {_vm.reasonOpen=$$v},expression:\"reasonOpen\"}},[_c('v-form',{ref:\"reasonForm\",model:{value:(_vm.reasonFormValid),callback:function ($$v) {_vm.reasonFormValid=$$v},expression:\"reasonFormValid\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.reasonTitle, { eVisitorServiceName: _vm.eVisitorIntegrationName }))+\" \")]),_c('v-card-text',[_c('v-textarea',{attrs:{\"rules\":_vm.rules.reason,\"rows\":3},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mh-1\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.reasonFormValid,\"loading\":_vm.saving},on:{\"click\":_vm.reasonAction}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-btn',{staticClass:\"mh-1\",on:{\"click\":function($event){_vm.reasonOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport _ from \"lodash\";\nimport { Country } from \"@/shared/models/country\";\nimport {\n CheckStatusEnum,\n eVisitorCityTaxPaymentCategoriesEnum,\n ReservationCheckInCustomerData,\n} from \"./CheckinTypes\";\nimport { CityTaxCategory } from \"@/shared/models/cityTaxCategory\";\nimport { ArrivalOrganizationType } from \"@/shared/models/arrivalOrganizationType\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { City } from \"@/shared/models/city\";\nimport {\n EVisitorFacility,\n EVisitorFacilityService,\n eVisitorFacilityServiceFactory,\n} from \"./eVisitorFacilityService\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport { DateTime } from \"luxon\";\nimport { ArrivalReason } from \"@/shared/models/arrivalReason\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\n@Component({ components: { RightDrawer, DateField, TimeField } })\nexport default class CheckInOutEditForm extends Vue {\n @Prop() checkInCustomerDataId?: number;\n @Prop({ default: false }) open!: boolean;\n @Prop({ default: false }) setGuestCheckedIn!: boolean;\n @Prop({ default: null }) defaultArrivalDate!: string | null;\n @Prop({ default: null }) defaultDepartureDate!: string | null;\n @Prop({ default: null }) defaultDepartureTime!: string | null;\n @Prop({ default: false }) explicitCheckinButtonNames!: boolean;\n\n @Action(\"codebooks/refreshIdentificationDocumentTypes\")\n refreshIdentificationDocumentTypes?: () => Promise;\n @Getter(\"codebooks/identificationDocumentTypes\")\n identificationDocumentTypes?: IdentificationDocumentType[];\n @Action(\"codebooks/refreshArrivalReasons\")\n refreshArrivalReasons?: () => Promise;\n @Getter(\"codebooks/arrivalReasons\") arrivalReasons?: ArrivalReason[];\n\n @Getter(\"language/language\") language?: string;\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") _countries?: Country[];\n get countries() {\n const countriesList =\n this._countries?.map((x) => ({\n id: x.id,\n text: this.language === \"hr-HR\" ? x.name : x.englishName,\n })) ?? [];\n\n return _.sortBy(countriesList, (x) => x.text);\n }\n\n fkey = 0;\n\n @Watch(\"open\", { immediate: true })\n openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n this.changedWithEVisitorNotSynced = false;\n }\n\n if (fresh && this.checkInCustomerDataId) {\n this.load();\n this.initialCheckInCustomerData = new ReservationCheckInCustomerData();\n } else {\n this.checkInCustomerData = new ReservationCheckInCustomerData();\n this.initialCheckInCustomerData = _.cloneDeep(this.checkInCustomerData);\n }\n }\n\n eVisitorCheck = true;\n\n eVisitorFacilityService: EVisitorFacilityService | null = null;\n\n loading = false;\n saving = false;\n\n eVisitorIntegrationEnum = EVisitorIntegrationEnum;\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n get checkInEVisitorLabel() {\n if (this.explicitCheckinButtonNames) {\n return \"Check in on eVisitor\";\n }\n\n return \"Check in\";\n }\n\n get checkOutEVisitorLabel() {\n if (this.explicitCheckinButtonNames) {\n return \"Checkout on eVisitor\";\n }\n\n return \"Check out\";\n }\n\n eVisitStar(fieldName: string) {\n if (\n this.eVisitorCheck &&\n this.eVisitorIntegrationId !== EVisitorIntegrationEnum.None\n ) {\n if (this.eVisitorIntegrationId === EVisitorIntegrationEnum.HR) return \"*\";\n if (this.eVisitorIntegrationId === EVisitorIntegrationEnum.SL) {\n const required = [\n \"genderId\",\n \"dateOfBirth\",\n \"countryOfResidenceId\",\n \"identificationDocumentTypeId\",\n \"identificationDocumentNumber\",\n \"eVisitorPaymentCategoryId\",\n \"checkInDate\",\n \"checkOutDate\",\n \"eVisitorCheckInTime\",\n \"eVisitorCheckOutTimeViewField\",\n \"propertyId\",\n \"eVisitorFacilityId\",\n ];\n\n return required.includes(fieldName) ? \"*\" : \"\";\n }\n }\n\n return \"\";\n }\n\n checkInCustomerData: ReservationCheckInCustomerData =\n new ReservationCheckInCustomerData();\n\n initialCheckInCustomerData: ReservationCheckInCustomerData =\n new ReservationCheckInCustomerData();\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading && !this.saving;\n }\n get submitCheckInDisabled(): boolean {\n return !this.loading && !this.saving;\n }\n\n mounted() {\n this.eVisitorFacilityService = eVisitorFacilityServiceFactory(this);\n }\n\n async created() {\n const promises = [];\n\n if (\n (!this.countries || this.countries.length == 0) &&\n this.refreshCountries\n ) {\n promises.push(this.refreshCountries());\n }\n if (\n (!this.identificationDocumentTypes ||\n this.identificationDocumentTypes.length == 0) &&\n this.refreshIdentificationDocumentTypes\n ) {\n promises.push(this.refreshIdentificationDocumentTypes());\n }\n\n if (\n (this.arrivalReasons?.length ?? 0) === 0 &&\n this.refreshArrivalReasons\n ) {\n promises.push(this.refreshArrivalReasons());\n }\n\n await Promise.all(promises);\n }\n\n get rules() {\n const required = (value: any) => !!value || this.$t(\"Validation.Required\");\n const requiredForEVisitor = (value: any) =>\n !!value ||\n this.$t(\"Validation.eVisitorRequired\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n });\n const requiredIfEVisitor = (value: any) => {\n let r;\n if (this.eVisitorCheck) {\n r = requiredForEVisitor(value);\n } else {\n r = required(value);\n }\n return this.eVisitorCheck ? r : true;\n };\n const maxLength = (max: number) => (value: string) =>\n !value ||\n value.length <= max ||\n this.$t(\"Validation.MaxLength\", { count: max });\n\n const requiredGender = (value: number) => {\n //only male(1) or female(2) should be accepted for eVisitor\n if (value != 1 && value != 2) {\n value = 0;\n }\n const r = required(value);\n return this.eVisitorCheck ? r : true;\n };\n\n return {\n firstName: [required, maxLength(50)],\n lastName: [required, maxLength(50)],\n email: [\n maxLength(100),\n (value: string) =>\n !value ||\n /^$|.+@.+\\..+/.test(value) ||\n this.$t(\"Validation.EmailFormat\"),\n ],\n telephoneNumber: [maxLength(100)],\n streetName: [maxLength(100)],\n houseNumber: [maxLength(10)],\n city: [maxLength(50)],\n identificationDocumentNumber: [maxLength(50), requiredIfEVisitor],\n required: required,\n gender: [requiredGender],\n eVisitorRequired: [requiredIfEVisitor],\n eVisitorRequiredBool: requiredIfEVisitor,\n eVisitorFacilityIdOnProperty: (selectedPropertyId: any) => (val: any) => {\n const shouldValidate =\n this.eVisitorCheck &&\n this.checkStatus === CheckStatusEnum.Neprijavljen;\n const hasFacility = this.eVisitorFacilities(selectedPropertyId)?.some(\n (y) => y.id === val\n );\n return !shouldValidate || hasFacility;\n },\n reason: [\n (v: string) => {\n const r = required(v);\n return this.reasonOpen ? r : true;\n },\n ],\n dateTimesOrder: () => {\n // Validation.SetCheckedInCustomers.CheckInDateTimeMustBeLessThanCheckOut\n if (this.checkInCustomerData) {\n const allAreSet =\n this.checkInDate &&\n this.checkInCustomerData.eVisitorCheckInTime &&\n this.checkOutDate &&\n this.checkInCustomerData.eVisitorExpectedCheckoutTime;\n\n if (!allAreSet) {\n // there is required validator for this cases\n return true;\n } else {\n const from =\n this.checkInDate?.substr(0, 10) +\n (this.checkInCustomerData.eVisitorCheckInTime ?? \"00:00\");\n const to =\n this.checkOutDate?.substr(0, 10) +\n (this.checkInCustomerData.eVisitorCheckOutTimeViewField ??\n this.checkInCustomerData.eVisitorExpectedCheckoutTime ??\n \"00:00\");\n\n return from > to\n ? this.$t(\n \"Validation.SetCheckedInCustomers.CheckInDateTimeMustBeLessThanCheckOut\"\n ).toString()\n : true;\n }\n }\n\n return true;\n },\n };\n }\n\n @Ref(\"form\") form?: { validate: () => boolean };\n\n load() {\n this.loading = true;\n Vue.axios\n .get(\n \"reservations/\" + this.checkInCustomerDataId + \"/getSingleGuest\"\n )\n .then((res) => {\n this.checkInCustomerData = Object.assign(\n new ReservationCheckInCustomerData(),\n res.data\n );\n\n this.checkInCustomerData.isEmpty = false;\n this.eVisitorCheck =\n this.checkInCustomerData.eVisitorIsCheckedIn ?? false;\n\n if (\n this.checkInCustomerData &&\n !this.checkInCustomerData.eVisitorFacilityId &&\n !this.checkInCustomerData.eVisitorFacilityPropertyId\n ) {\n this.checkInCustomerData.eVisitorFacilityPropertyId =\n this.checkInCustomerData.reservationPropertyId;\n this.checkInCustomerData.eVisitorFacilityId = null;\n }\n\n if (\n this.checkInCustomerData &&\n !this.checkInCustomerData.checkInDate &&\n this.defaultArrivalDate !== null\n ) {\n this.checkInCustomerData.checkInDate = this.defaultArrivalDate;\n }\n\n if (\n this.checkInCustomerData &&\n !this.checkInCustomerData.checkOutDate &&\n this.defaultDepartureDate !== null\n ) {\n this.checkInCustomerData.checkOutDate = this.defaultDepartureDate;\n }\n\n if (!this.checkInCustomerData.eVisitorCheckInTime) {\n this.checkInCustomerData.eVisitorCheckInTime = DateTime.local()\n .toISOTime()\n .substring(0, 5);\n }\n\n if (\n !this.checkInCustomerData.eVisitorCheckoutTime &&\n !this.checkInCustomerData.eVisitorExpectedCheckoutTime &&\n this.defaultDepartureTime !== null\n ) {\n const checkoutTime = this.defaultDepartureTime;\n\n this.checkInCustomerData.eVisitorCheckoutTime = checkoutTime;\n this.checkInCustomerData.eVisitorExpectedCheckoutTime = checkoutTime;\n }\n\n this.checkInCustomerData.eVisitorCheckOutTimeViewField = this\n .checkInCustomerData.isCheckedOut\n ? this.checkInCustomerData.eVisitorCheckoutTime\n : this.checkInCustomerData.eVisitorExpectedCheckoutTime;\n\n this.initialCheckInCustomerData = _.cloneDeep(this.checkInCustomerData);\n this.refreshNumberOfFilledBeds();\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n assertFormValidity() {\n const valid = this.form?.validate();\n\n if (!valid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n }\n\n return valid;\n }\n\n async submit() {\n if (this.checkStatus == CheckStatusEnum.Neprijavljen) {\n //this will reset validation to only look at customer validation\n this.eVisitorCheck = false;\n }\n if (this.assertFormValidity()) {\n await this.saveCustomerData();\n await this.checkInReservationUpdate();\n this.load();\n }\n }\n\n changedWithEVisitorNotSynced = false;\n get changePendingMessage() {\n // prettier-ignore\n return this.changedWithEVisitorNotSynced\n ? this.$t(\"Changes not synced with eVisitor. Are you sure you want to close the form?\", {eVisitorServiceName: this.eVisitorIntegrationName})\n : this.$t(\"Changes pending. Are you sure you want to close the form?\");\n }\n\n async checkInReservationUpdate() {\n this.saving = true;\n await Vue.axios\n .post(`reservations/ReservationUpdateForMultipleGuestIds`, {\n guestIds: [this.checkInCustomerData.id],\n })\n .then(() => {\n this.$emit(\"refreshTable\");\n })\n .finally(() => {\n this.saving = false;\n });\n }\n\n async saveCustomerData() {\n this.saving = true;\n\n function nullIfEmpty(x: string | null | undefined) {\n return x === \"\" ? null : x ?? null;\n }\n\n this.checkInCustomerData.eVisitorArrivalOrganizationTypeId =\n this.eVisitorArrivalOrganizationTypeId;\n this.checkInCustomerData.eVisitorFacilityPropertyId = this.propertyId;\n this.checkInCustomerData.eVisitorPaymentCategoryId =\n this.eVisitorPaymentCategoryId;\n this.checkInCustomerData.dateOfBirth = nullIfEmpty(\n this.checkInCustomerData.dateOfBirth\n );\n this.checkInCustomerData.checkInDate = nullIfEmpty(this.checkInDate);\n this.checkInCustomerData.checkOutDate = nullIfEmpty(this.checkOutDate);\n this.checkInCustomerData.eVisitorCheckInTime = nullIfEmpty(\n this.checkInCustomerData.eVisitorCheckInTime\n );\n this.checkInCustomerData.eVisitorCheckoutTime = nullIfEmpty(\n this.checkOutTime\n );\n this.checkInCustomerData.eVisitorExpectedCheckoutDate = nullIfEmpty(\n this.checkInCustomerData.eVisitorExpectedCheckoutDate ?? this.checkOutDate\n );\n this.checkInCustomerData.eVisitorExpectedCheckoutTime = nullIfEmpty(\n this.checkInCustomerData.eVisitorExpectedCheckoutTime\n );\n\n if (this.setGuestCheckedIn) {\n this.checkInCustomerData.isCheckedIn = true;\n }\n\n await Vue.axios\n .post(\"reservations/updateReservationGuest\", this.checkInCustomerData)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"SaveCheckInGuest.SaveSuccess\"),\n timeout: 5000,\n });\n this.checkInCustomerData.isDirty = false;\n\n if (this.checkStatus !== CheckStatusEnum.Prijavljen) {\n // initialCheckInCustomerData should be used to detect changes\n // special case when checkStatus == 2 is that we are still not \"done\"\n // as we need to sync with eVisitor\n this.initialCheckInCustomerData = _.cloneDeep(\n this.checkInCustomerData\n );\n }\n\n this.changedWithEVisitorNotSynced = true;\n\n this.$emit(\"saved\", this.checkInCustomerDataId);\n })\n .finally(() => {\n this.saving = false;\n });\n }\n\n async checkIn() {\n this.eVisitorCheck = true;\n\n if (this.assertFormValidity()) {\n await this.confirmCheckIn();\n await this.checkInReservationUpdate();\n this.load();\n }\n }\n\n async confirmCheckIn() {\n this.checkInCustomerData.eVisitorCheckInDate = this.checkInDate;\n await this.saveCustomerData();\n\n this.saving = true;\n await Vue.axios\n .post(\"reservations/\" + this.checkInCustomerData?.id + \"/checkInGuest\")\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"CheckInGuest.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.changedWithEVisitorNotSynced = false;\n })\n .finally(() => {\n this.saving = false;\n });\n }\n\n async checkOut() {\n if (this.assertFormValidity()) {\n try {\n await this.confirmCheckOut();\n } catch (ex) {\n const isErrorHandled =\n ex?.data?.brokenRules?.length === 1 &&\n (ex.data.brokenRules[0].name ===\n \"EVisitor.CheckOut.AlreadyCheckedOut\" ||\n ex.data.brokenRules[0].name ===\n \"EVisitor.CheckOut.CheckInHasBeenCancelled\");\n if (isErrorHandled) throw ex;\n }\n await this.checkInReservationUpdate();\n this.load();\n }\n }\n\n async confirmCheckOut() {\n this.checkInCustomerData.eVisitorCheckoutDate = this.checkOutDate;\n await this.saveCustomerData();\n\n this.saving = true;\n await Vue.axios\n .post(\"reservations/\" + this.checkInCustomerData?.id + \"/checkOutGuest\")\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"CheckOutGuest.SaveSuccess\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.saving = false;\n });\n }\n\n refreshNumberOfFilledBeds() {\n if (this.propertyId) {\n this.eVisitorFacilityService?.loadGroup(this.propertyId);\n }\n }\n\n numberOfFilledBeds(facility: EVisitorFacility) {\n let baseline = facility.numberOfCheckedInBeds;\n if (baseline > 0) {\n baseline -=\n this.checkInCustomerData.isCheckedIn &&\n this.initialCheckInCustomerData.eVisitorFacilityId == facility.id\n ? 1\n : 0;\n }\n const selectedOnForm =\n this.checkInCustomerData.eVisitorFacilityId == facility.id &&\n !this.checkInCustomerData.eVisitorIsCheckedOut\n ? 1\n : 0;\n\n return baseline + selectedOnForm;\n }\n\n get customerNameAndReservation() {\n return (\n this.checkInCustomerData?.firstName +\n \" \" +\n this.checkInCustomerData?.lastName +\n \" (\" +\n this.checkInCustomerData?.reservationId +\n \")\"\n );\n }\n\n get checkInOutStatusText() {\n if (this.checkStatus == CheckStatusEnum.Prijavljen) {\n return this.$t(\"Reservation.Guest.CheckedIn\");\n } else if (this.checkStatus == CheckStatusEnum.Odjavljen) {\n return this.$t(\"Reservation.Guest.CheckedOut\");\n } else {\n return this.$t(\"Pending\");\n }\n }\n\n //magic numbers: 1 - neprijavljen, 2 - prijavljen, 3 - odjavljen\n get checkStatus() {\n if (\n this.checkInCustomerData?.eVisitorIsCheckedIn &&\n this.checkInCustomerData?.eVisitorIsCheckedOut\n ) {\n return CheckStatusEnum.Odjavljen;\n } else if (\n this.checkInCustomerData?.eVisitorIsCheckedIn &&\n !this.checkInCustomerData?.eVisitorIsCheckedOut\n ) {\n return CheckStatusEnum.Prijavljen;\n } else {\n return CheckStatusEnum.Neprijavljen;\n }\n }\n\n async updateEVisitorCheckIn() {\n await this.confirmCheckIn();\n await this.checkInReservationUpdate();\n this.load();\n }\n\n reason = \"\";\n reasonTitle = \"Cancel check-in on eVisitor reason\";\n reasonOpen = false;\n reasonFormValid = false;\n reasonAction = () => Promise.resolve();\n @Ref(\"reasonForm\") reasonForm?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n revertEVisitorCheckIn() {\n this.reasonForm?.resetValidation();\n this.reason = \"\";\n this.reasonTitle = \"Cancel check-in on eVisitor reason\";\n this.reasonOpen = true;\n this.reasonAction = this.revertEVisitorCheckInConfirm;\n }\n async revertEVisitorCheckInConfirm() {\n await this.reset(\"reservations/cancelEVisitorGuestCheckIn\");\n this.load();\n }\n revertEVisitorCheckOut() {\n this.reasonForm?.resetValidation();\n this.reason = \"\";\n this.reasonTitle = \"Cancel check-out on eVisitor reason\";\n this.reasonOpen = true;\n this.reasonAction = this.revertEVisitorCheckOutConfirm;\n }\n async revertEVisitorCheckOutConfirm() {\n await this.reset(\"reservations/cancelEVisitorGuestCheckOut\");\n this.load();\n }\n async reset(action: string) {\n this.saving = true;\n await Vue.axios\n .post(action, {\n id: this.checkInCustomerData.id,\n reason: this.reason,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.SaveSuccess\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 3000,\n });\n\n this.reasonOpen = false;\n this.refreshNumberOfFilledBeds();\n })\n .finally(() => {\n this.saving = false;\n });\n\n await this.checkInReservationUpdate();\n }\n\n formatDate(date: string | Date) {\n if (!date) return null;\n return this.$d(new Date(date));\n }\n parseDate(date: string) {\n if (!date) return null;\n\n const [month, day, year] = date.split(\"/\");\n return `${year}-${month.padStart(2, \"0\")}-${day.padStart(2, \"0\")}`;\n }\n\n @Getter(\"globalFilters/properties\")\n allUserProperties?: GlobalFilterProperty[];\n\n get properties() {\n if (!this.allUserProperties) return [] as GlobalFilterProperty[];\n if (this.checkStatus === 1) {\n return _.sortBy(\n this.allUserProperties.filter((x) => x.status !== false),\n (x) => x.name\n );\n }\n return _.sortBy(this.allUserProperties, (x) => x.name);\n }\n\n eVisitorOpen = -1;\n\n get isEmpty() {\n return this.checkInCustomerData?.isEmpty ?? true;\n }\n get isDirty() {\n return this.checkInCustomerData?.isDirty ?? false;\n }\n setDirty() {\n if (this.checkInCustomerData) {\n const alreadyDirty = this.checkInCustomerData.isDirty;\n\n this.checkInCustomerData.isDirty = true;\n this.checkInCustomerData.isEmpty = false;\n\n if (!alreadyDirty) {\n this.$emit(\"dirty\");\n }\n }\n }\n\n eVisitorFacilities(eVisitorFacilityPropertyId: number) {\n if (!eVisitorFacilityPropertyId) return [];\n\n if (this.eVisitorFacilityService) {\n if (\n !this.eVisitorFacilityService.groups.some(\n (x) => x.propertyId === eVisitorFacilityPropertyId\n )\n ) {\n this.eVisitorFacilityService.loadGroup(eVisitorFacilityPropertyId);\n }\n\n const group = this.eVisitorFacilityService.findGroup(\n eVisitorFacilityPropertyId\n )?.facilities;\n\n return group;\n }\n\n return [];\n }\n\n get sortedEVisitorFacilities() {\n return this.propertyId\n ? _.sortBy(this.eVisitorFacilities(this.propertyId), (g) =>\n g.accountName ? g.accountName : g.facility\n )\n : [];\n }\n\n @Watch(\"sortedEVisitorFacilities\")\n sortedEVisitorFacilitiesChanged(fresh: EVisitorFacility[]) {\n if (fresh.length === 1) {\n this.checkInCustomerData.eVisitorFacilityId = fresh[0].id;\n this.initialCheckInCustomerData.eVisitorFacilityId = fresh[0].id;\n } else {\n const defaultFacilities = fresh.filter((x) =>\n x.defaultForAccomodationUnitsIds.some(\n (u) => u === this.checkInCustomerData.accomodationUnitId\n )\n );\n if (defaultFacilities.length === 1) {\n this.checkInCustomerData.eVisitorFacilityId = defaultFacilities[0].id;\n this.initialCheckInCustomerData.eVisitorFacilityId =\n defaultFacilities[0].id;\n }\n }\n }\n\n get eVisitorPaymentCategoryId() {\n if (this.checkInCustomerData) {\n return (\n this.checkInCustomerData?.getEffectiveEVisitorPaymentCategoryId(\n this.eVisitorIntegrationId\n ) ?? null\n );\n }\n return 1;\n }\n set eVisitorPaymentCategoryId(val: number | null) {\n if (this.checkInCustomerData) {\n this.setDirty();\n this.checkInCustomerData.eVisitorPaymentCategoryId = val;\n }\n }\n\n get checkInDate() {\n if (this.checkInCustomerData?.eVisitorIsCheckedIn) {\n return this.checkInCustomerData?.eVisitorCheckInDate ?? null;\n } else {\n return this.checkInCustomerData?.checkInDate ?? null;\n }\n }\n set checkInDate(val: string | null) {\n if (this.checkInCustomerData) {\n this.setDirty();\n this.checkInCustomerData.checkInDate =\n this.checkInCustomerData.eVisitorCheckInDate = val ?? null;\n }\n }\n\n get checkOutDate() {\n if (this.checkInCustomerData?.eVisitorIsCheckedOut) {\n return this.checkInCustomerData?.eVisitorCheckoutDate ?? null;\n } else if (this.checkInCustomerData?.eVisitorIsCheckedIn) {\n return this.checkInCustomerData?.eVisitorExpectedCheckoutDate ?? null;\n } else {\n return this.checkInCustomerData?.checkOutDate ?? null;\n }\n }\n set checkOutDate(val: string | null) {\n if (this.checkInCustomerData) {\n this.setDirty();\n this.checkInCustomerData.checkOutDate =\n this.checkInCustomerData.eVisitorCheckoutDate =\n this.checkInCustomerData.eVisitorExpectedCheckoutDate =\n val ?? null;\n }\n }\n\n get checkOutTime() {\n if (this.checkInCustomerData?.eVisitorIsCheckedOut) {\n return this.checkInCustomerData.eVisitorCheckoutTime;\n } else {\n return this.checkInCustomerData?.eVisitorExpectedCheckoutTime ?? null;\n }\n }\n set checkOutTime(val: string | null) {\n if (this.checkInCustomerData) {\n this.setDirty();\n this.checkInCustomerData.eVisitorCheckoutTime =\n this.checkInCustomerData.eVisitorExpectedCheckoutTime = val ?? null;\n }\n }\n\n get eVisitorArrivalOrganizationTypeId() {\n return this.checkInCustomerData?.eVisitorArrivalOrganizationTypeId ?? 1;\n }\n set eVisitorArrivalOrganizationTypeId(val: number | null) {\n if (this.checkInCustomerData) {\n this.setDirty();\n this.checkInCustomerData.eVisitorArrivalOrganizationTypeId = val;\n this.$emit(\"organizationTypeIdChanged\", val);\n }\n }\n\n get propertyId() {\n return this.checkInCustomerData.eVisitorFacilityPropertyId;\n }\n set propertyId(val: number | null) {\n if (this.checkInCustomerData) {\n this.setDirty();\n if (this.checkInCustomerData.eVisitorFacilityPropertyId !== val) {\n this.checkInCustomerData.eVisitorFacilityPropertyId = val;\n this.checkInCustomerData.eVisitorFacilityId = null;\n }\n this.form?.validate();\n }\n }\n\n onDateOfBirthChange() {\n if (this.checkInCustomerData.dateOfBirth) {\n const age = DateTime.local().diff(\n DateTime.fromISO(this.checkInCustomerData.dateOfBirth),\n \"years\"\n ).years;\n\n if (this.eVisitorIntegrationId == EVisitorIntegrationEnum.HR) {\n if (age <= 12) {\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.DijeteDo12;\n } else if (age <= 18) {\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.Dijete12Do18;\n } else if (\n this.eVisitorPaymentCategoryId ===\n eVisitorCityTaxPaymentCategoriesEnum.Dijete12Do18 ||\n this.eVisitorPaymentCategoryId ===\n eVisitorCityTaxPaymentCategoriesEnum.DijeteDo12\n ) {\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.Turist;\n }\n } else if (this.eVisitorIntegrationId == EVisitorIntegrationEnum.SL) {\n if (age <= 7)\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.Exemption_ChildUpTo7_SL_eTurizem;\n else if (age <= 18)\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.HalfPayment_PersonAged7To18_SL_eTurizem;\n else if (\n this.eVisitorPaymentCategoryId ===\n eVisitorCityTaxPaymentCategoriesEnum.Exemption_ChildUpTo7_SL_eTurizem ||\n this.eVisitorPaymentCategoryId ===\n eVisitorCityTaxPaymentCategoriesEnum.HalfPayment_PersonAged7To18_SL_eTurizem\n ) {\n this.eVisitorPaymentCategoryId =\n eVisitorCityTaxPaymentCategoriesEnum.FullPayment_NoException_SL_eTurizem;\n }\n }\n }\n }\n\n isCitiesLoading = false;\n citiesSearch = \"\" as string | null | undefined;\n cities = [] as City[];\n\n @Watch(\"checkInCustomerData.city\")\n citiesSearchChanged(\n fresh: string | null | undefined,\n old: string | null | undefined\n ) {\n if (!fresh || fresh === \"\" || fresh === old) return;\n\n this.debouncedCitySearch(fresh);\n }\n\n debouncedCitySearch = _.debounce(this.loadCities, 500);\n\n async loadCities(search: string | null | undefined): Promise {\n this.isCitiesLoading = true;\n\n this.citiesSearch = search;\n\n return this.axios\n .get>(\"/codebooks/cities\", {\n params: {\n name: this.citiesSearch,\n $top: 50,\n $skip: 0,\n $orderBy: \"name asc\",\n },\n })\n .then(({ data }) => {\n this.cities = data.result;\n return this.cities;\n })\n .finally(() => {\n this.isCitiesLoading = false;\n this.setCTCategory();\n });\n }\n\n setCTCategory() {\n if (\n this.checkInCustomerData?.countryOfResidenceId === 1 &&\n this.eVisitorIntegrationId == EVisitorIntegrationEnum.HR\n ) {\n const selectedProperty = this.properties.find(\n (x) => x.propertyId == this.propertyId\n );\n if (selectedProperty) {\n const propertyCityName = selectedProperty.postalCodeAndCity\n .split(\",\")[1]\n .trim();\n if (propertyCityName === this.checkInCustomerData.city) {\n this.setEvisitorPaymentCategoryIdWithoutDirty(\n eVisitorCityTaxPaymentCategoriesEnum.Lokalac\n );\n }\n }\n }\n }\n\n setEvisitorPaymentCategoryIdWithoutDirty(val: number) {\n if (this.checkInCustomerData) {\n this.checkInCustomerData.eVisitorPaymentCategoryId = val;\n }\n }\n\n @Getter(\"codebooks/cityTaxCategories\") cityTaxCategories?: CityTaxCategory[];\n @Getter(\"codebooks/arrivalOrganizationTypes\")\n arrivalOrganizationTypes?: ArrivalOrganizationType[];\n\n expandOnError(evt: boolean) {\n if (evt) {\n this.eVisitorOpen = 0; // 0 is the first(only) element\n }\n }\n\n closeModal() {\n if (!this.isDirty) {\n this.$emit(\"update:open\", false);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\n \"Changes pending. Are you sure you want to close the form?\"\n ),\n actions: [\n {\n text: this.$t(\"Close\"),\n fun: () => {\n this.$emit(\"update:open\", false);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInOutEditForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInOutEditForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckInOutEditForm.vue?vue&type=template&id=38c32c86&scoped=true&\"\nimport script from \"./CheckInOutEditForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckInOutEditForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckInOutEditForm.vue?vue&type=style&index=0&id=38c32c86&scoped=true&lang=scss&\"\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 \"38c32c86\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VCombobox,VDialog,VForm,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VProgressLinear,VRadio,VRadioGroup,VRow,VSelect,VSpacer,VTextField,VTextarea,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{class:_vm.noHighlightOnProperty ? '' : (_vm.lightenPropertyColor ? 'lightenPropertyColor' : ( _vm.$vuetify.theme.light ? 'secondary--text' : 'primary--text'))},[_vm._v(\" \"+_vm._s(_vm.emphasizedLine)+\" \")]),_c('div',{class:{ 'de-emphasize': _vm.$vuetify.theme.light }},[_vm._v(\" \"+_vm._s(_vm.deEmphasizedLine)+\" \")]),(_vm.renderStatus)?_c('div',{class:'warning--text'},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.unitStatus(_vm.item.accomodationUnitStatus)))+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport {AccomodationUnitStatusEnum} from \"@/shared/models/enums.type\";\nimport {AccomodationUnitStatus} from \"@/shared/models/accomodationUnitStatus\";\nimport {Getter} from \"vuex-class\";\n\n@Component\nexport default class TableCellUnitTypeDisplay extends Vue {\n @Prop({ default: {} }) item: any;\n @Prop({ default: () => [] }) accomodationUnitStatuses!: AccomodationUnitStatus[];\n @Prop({ default: false }) renderStatus!: boolean;\n @Prop({ default: false }) lightenPropertyColor?: boolean;\n\n @Prop({ default: false }) noHighlightOnProperty?: boolean;\n \n @Getter(\"appParams/unitRenderTypeLineOne\") renderTemplateTypeLineOne?: string;\n @Getter(\"appParams/unitRenderTypeLineTwo\") renderTemplateTypeLineTwo?: string;\n \n get emphasizedLine()\n {\n if(this.renderTemplateTypeLineOne === \"\" && this.renderTemplateTypeLineTwo === \"\")\n {\n return this.item.propertyName;\n }\n\n return this.$t(this.renderTemplateTypeLineOne ?? \"\", this.renderProps);\n }\n \n get deEmphasizedLine()\n {\n if(this.renderTemplateTypeLineTwo === \"\" && this.renderTemplateTypeLineOne === \"\")\n {\n return this.item.accomodationUnitTypeName +\n (this.item.accomodationUnitName\n ? \", \" + this.item.accomodationUnitName\n : \"\")\n }\n\n return this.$t(this.renderTemplateTypeLineTwo ?? \"\", this.renderProps);\n }\n \n get renderProps()\n {\n return {\n unitName: this.item.accomodationUnitName,\n unitTypeName: this.item.accomodationUnitTypeName,\n propertyName: this.item.propertyName\n }\n }\n \n unitStatus(value: number){\n //status = 1 -> \"Ready\" - unnecessary to show every time\n if (value !== AccomodationUnitStatusEnum.Clean){\n const toReturn = this.accomodationUnitStatuses?.find(x => x.id == value);\n return toReturn?.textResourceKey;\n }\n return;\n }\n \n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellUnitTypeDisplay.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellUnitTypeDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableCellUnitTypeDisplay.vue?vue&type=template&id=3759947c&scoped=true&\"\nimport script from \"./TableCellUnitTypeDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableCellUnitTypeDisplay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TableCellUnitTypeDisplay.vue?vue&type=style&index=0&id=3759947c&scoped=true&lang=scss&\"\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 \"3759947c\",\n null\n \n)\n\nexport default component.exports","\n export function saveFile(data: Blob, name: string) {\n const a = document.createElement(\"a\");\n document.body.appendChild(a);\n const url = window.URL.createObjectURL(data);\n a.href = url;\n a.download = name;\n a.click();\n setTimeout(() => {\n window.URL.revokeObjectURL(url);\n document.body.removeChild(a);\n }, 0);\n }","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitTileMobile.vue?vue&type=style&index=0&id=2b4daa20&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationPanel.vue?vue&type=style&index=0&id=2ad26a4f&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showGrid)?_c('PropertiesTiles',{key:_vm.sensitiveKey,staticClass:\"properties\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' )}):_vm._e(),(!_vm.showGrid)?_c('PropertiesGrid',{key:_vm.sensitiveKey,class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' )}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.tileTransition)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"}}):_vm._e(),_c('ScrollLoader',{staticClass:\"wrapper\",attrs:{\"loadOffset\":100,\"element\":_vm.displayBody},on:{\"offsetReached\":_vm.loadMore},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('v-row',{ref:\"displayBody\",staticClass:\"displayBody\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Property'),\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.filters.name),callback:function ($$v) {_vm.$set(_vm.filters, \"name\", $$v)},expression:\"filters.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('City'),\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.filters.city),callback:function ($$v) {_vm.$set(_vm.filters, \"city\", $$v)},expression:\"filters.city\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Address'),\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.filters.address),callback:function ($$v) {_vm.$set(_vm.filters, \"address\", $$v)},expression:\"filters.address\"}})],1),_vm._l((_vm.properties),function(property){return _c('v-col',{key:property.id,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('PropertyTile',{attrs:{\"property\":property,\"tileTransition\":_vm.tileTransition},on:{\"edit\":_vm.editProperty,\"delete\":_vm.deleteProperty}})],1)}),(_vm.loading)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"card, article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),(!_vm.loading && (!_vm.properties || _vm.properties.length == 0))?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fas fa-city\"}})],1):_vm._e()],2)]},proxy:true}])}),_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addProperty()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\",\"height\":\"100%\"},on:{\"dblclick\":function($event){return _vm.editProperty(_vm.property.id)}}},[_c('v-img',{attrs:{\"height\":\"200\",\"max-height\":\"200\",\"src\":_vm.imageSrc}},[_c('template',{slot:\"placeholder\"},[_c('v-skeleton-loader',{attrs:{\"loading\":true,\"type\":\"image\"}})],1)],2),_c('v-card-title',[_vm._v(_vm._s(_vm.property.name))]),_c('v-card-subtitle',[_c('v-rating',{attrs:{\"value\":_vm.category,\"readonly\":\"\",\"color\":\"primary\",\"background-color\":\"rgba(128,128,128,0.5)\",\"x-small\":\"\"}})],1),_c('v-card-text',{staticClass:\"text\"},[_c('div',[_vm._v(_vm._s(_vm.property.city))]),_c('div',[_vm._v(_vm._s(_vm.property.address))]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.property.typeTextResourceKey))+\" \")])]),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('div',[_c('div',{staticClass:\"booking-engine-label v-label\",class:_vm.$vuetify.theme.dark ? 'theme--dark' : 'theme--light'},[_vm._v(\" \"+_vm._s(_vm.$t(\"Property.IsAvailableViaBookingEngine\"))+\" \")]),_c('v-switch',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.togglePublish($event, _vm.property)}},model:{value:(_vm.property.isAvailableViaBookingEngine),callback:function ($$v) {_vm.$set(_vm.property, \"isAvailableViaBookingEngine\", $$v)},expression:\"property.isAvailableViaBookingEngine\"}})],1),_c('v-spacer',{staticClass:\"ma-0\"}),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.loadingIndicator,\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.editProperty(_vm.property.id)}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteProperty(_vm.property)}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { PropertyViewModel } from \"@/shared/models/property\";\nimport { CategoriesEnum } from \"@/shared/models/enums.type\";\n\n@Component\nexport default class PropertyTile extends Vue {\n @Prop() property?: PropertyViewModel;\n @Prop() tileTransition?: boolean;\n\n @Watch(\"tileTransition\")\n tileTransitionChanged(fresh: boolean) {\n if (this.loadingIndicator === true && fresh === false) {\n this.loadingIndicator = false;\n }\n }\n\n loadingIndicator = false;\n\n editProperty(propertyId: number) {\n this.loadingIndicator = true;\n this.$emit(\"edit\", propertyId);\n }\n\n deleteProperty(property: PropertyViewModel) {\n this.$emit(\"delete\", property);\n }\n\n imageSrc: any = \"\";\n\n mounted() {\n if (this.property?.imageUrl) {\n Vue.axios\n .get(this.property.imageUrl + \"?width=420&quality=95\", {\n responseType: \"blob\",\n })\n .then((res) => {\n const reader = new FileReader();\n reader.readAsDataURL(res.data);\n reader.onload = () => {\n this.imageSrc = reader.result;\n };\n })\n .catch(() => {\n this.imageSrc = require(\"@/assets/images/no-image-icon-23488.png\");\n });\n } else {\n this.imageSrc = require(\"@/assets/images/no-image-icon-23485.png\");\n }\n }\n\n togglePublish(value: boolean, property: PropertyViewModel) {\n Vue.axios\n .put(\"/properties/SetPropertyBookingEnginePublishStatus/\" + property.id, {\n id: property.id,\n isAvailableViaBookingEngine: value,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.IsAvailableViaBookingEngineSaveSuccess\"),\n timeout: 5000,\n });\n })\n // reset the toggle back to original value in case of errors\n .catch(() => {\n property.isAvailableViaBookingEngine = !value;\n });\n }\n\n get category() {\n if (this.property) {\n if (this.property.categoryId === CategoriesEnum.Empty) {\n return 0;\n }\n return this.property.categoryId + 1;\n }\n return 0;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyTile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertyTile.vue?vue&type=template&id=031ccf3f&scoped=true&\"\nimport script from \"./PropertyTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertyTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertyTile.vue?vue&type=style&index=0&id=031ccf3f&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 \"031ccf3f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRating } from 'vuetify/lib/components/VRating';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VImg,VRating,VSkeletonLoader,VSpacer,VSwitch})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { PropertyViewModel } from \"@/shared/models/property\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nimport PropertyTile from \"./PropertyTile.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport * as _ from \"lodash\";\nimport { Action } from \"vuex-class\";\nimport VueRouter from \"vue-router\";\nconst { isNavigationFailure } = VueRouter\n\n@Component({\n components: {\n ScrollLoader,\n PropertyTile,\n NoData,\n }\n})\nexport default class PropertiesTiles extends Vue {\n properties: PropertyViewModel[] = [];\n loading = false;\n done = false;\n\n tileTransition = false;\n\n displayBody: HTMLElement | null = null;\n\n itemsPerPage = 10;\n\n filters = {\n name: \"\",\n city: \"\",\n address: \"\",\n };\n\n @Watch(\"filters\", { deep: true })\n filtersWatch() {\n this.clearAndLoad();\n }\n\n mounted() {\n this.displayBody = this.$refs.displayBody as HTMLElement;\n this.firstLoad();\n }\n\n clearAndLoad = _.debounce(() => {\n this.clear();\n this.firstLoad();\n }, 500);\n\n clear() {\n this.properties = [];\n // this.count = 0;\n this.done = false;\n }\n\n async fetcher() {\n this.loading = true;\n\n const res = await this.$http\n .get>(\"Properties\", {\n params: {\n $skip: this.properties.length,\n $top: this.itemsPerPage,\n $count: true,\n ...this.filters,\n },\n })\n .then((x) => {\n return x.data;\n });\n\n this.loading = false;\n\n if (res.result.length < this.itemsPerPage) {\n this.done = true;\n }\n\n return res;\n }\n\n async firstLoad() {\n await this.loadMore();\n\n if (this.displayBody) {\n // in case it can fit more than 10 items\n // try fetching a few more times to fill it up\n for (let i = 0; i < 10; i++) {\n if (\n this.displayBody.scrollHeight > 0 &&\n this.displayBody.scrollHeight == this.displayBody.clientHeight &&\n !this.done\n ) {\n await this.loadMore();\n }\n }\n }\n }\n\n async loadMore() {\n if (!this.loading && !this.done) {\n const res = await this.fetcher();\n this.properties.splice(this.properties.length, 0, ...(res.result || []));\n }\n }\n\n addProperty() {\n this.$router.push({ path: \"/properties/new\" });\n }\n\n editProperty(id: number) {\n this.tileTransition = true;\n this.$router.push({ path: `/properties/${id}` }).catch(failure => {\n if (isNavigationFailure(failure)) {\n this.tileTransition = false;\n }\n });\n }\n\n // prettier-ignore\n @Action(\"globalFilters/refreshFilter\") refreshFilter?: (replace?: boolean) => void;\n\n deleteProperty(item: PropertyViewModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Property.DeleteConfirmation\", { value: item?.name }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deletePropertyConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deletePropertyConfirm({ id }: { id: number }) {\n Vue.axios\n .delete(`/properties/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n\n if (this.refreshFilter) {\n this.refreshFilter();\n }\n })\n .finally(() => {\n this.clearAndLoad();\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesTiles.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesTiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertiesTiles.vue?vue&type=template&id=80e1b27c&scoped=true&\"\nimport script from \"./PropertiesTiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertiesTiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertiesTiles.vue?vue&type=style&index=0&id=80e1b27c&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 \"80e1b27c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VOverlay,VRow,VSkeletonLoader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"properties\"},[_c('SortableHeadersTable',{staticClass:\"properties\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.properties.result,\"server-items-length\":_vm.properties.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"properties\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.name\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.name),callback:function ($$v) {_vm.$set(_vm.filters, \"name\", $$v)},expression:\"filters.name\"}})]}},{key:\"header.address\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.address),callback:function ($$v) {_vm.$set(_vm.filters, \"address\", $$v)},expression:\"filters.address\"}})]}},{key:\"header.propertyType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.sortedPropertyTypes,\"outlined\":false,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"multiple\":\"\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.propertyTypes),callback:function ($$v) {_vm.$set(_vm.filters, \"propertyTypes\", $$v)},expression:\"filters.propertyTypes\"}})]}},{key:\"header.category\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.categories,\"outlined\":false,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"multiple\":\"\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.categories),callback:function ($$v) {_vm.$set(_vm.filters, \"categories\", $$v)},expression:\"filters.categories\"}})]}},{key:\"header.isAvailableViaBookingEngine\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.isAvailable,\"item-text\":function (x) { return _vm.$t(x.name); },\"item-value\":\"status\",\"outlined\":false,\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.availableOnBookingEngine),callback:function ($$v) {_vm.$set(_vm.filters, \"availableOnBookingEngine\", $$v)},expression:\"filters.availableOnBookingEngine\"}})]}},{key:\"header.ownerName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.ownerName),callback:function ($$v) {_vm.$set(_vm.filters, \"ownerName\", $$v)},expression:\"filters.ownerName\"}})]}},{key:\"header.ownerAddress\",fn:function(){return [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('OwnerAddress')},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.ownerAddress),callback:function ($$v) {_vm.$set(_vm.filters, \"ownerAddress\", $$v)},expression:\"filters.ownerAddress\"}})]},proxy:true},{key:\"item.address\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.address + ', ' + item.city))])]}},{key:\"item.propertyType\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(item.typeTextResourceKey)))])]}},{key:\"item.category\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(item.categoryTextResourceKey)))])]}},{key:\"item.isAvailableViaBookingEngine\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-switch',{attrs:{\"input-value\":item.isAvailableViaBookingEngine,\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.togglePublish($event, item.id)}}})]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.editProperty(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.deleteProperty(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.properties || _vm.properties.count == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fal fa-fw fa-hand-holding-usd\"}})],1):_vm._e()]},proxy:true}])}),_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addProperty()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { PropertyViewModel } from \"@/shared/models/property\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport * as _ from \"lodash\";\nimport { Action, Getter } from \"vuex-class\";\nimport VueRouter from \"vue-router\";\nimport { DataOptions } from \"vuetify\";\nimport { SortableTableHeader } from \"../generic-pms-table/SortableTableDirective\";\nimport { PropertyType } from \"@/shared/models/propertyType\";\nimport { Category } from \"@/shared/models/category\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nconst { isNavigationFailure } = VueRouter\n\n@Component({\n components: {\n ScrollLoader,\n NoData,\n SortableHeadersTable\n }\n})\nexport default class PropertiesGrid extends Vue {\n @Action(\"codebooks/refreshPropertyTypes\") refreshPropertyTypes?: () => Promise;\n @Getter(\"codebooks/propertyTypes\") propertyTypes?: PropertyType[];\n \n @Action(\"codebooks/refreshCategories\") refreshCategories?: () => Promise;\n @Getter(\"codebooks/categories\") categories?: Category[];\n\n @Getter(\"language/language\") language?: string;\n\n async created() {\n this.displayBody = this.$refs.displayBody as HTMLElement;\n const promises = [];\n\n if ((this.propertyTypes?.length ?? 0) === 0 && this.refreshPropertyTypes) {\n promises.push(this.refreshPropertyTypes());\n }\n if ((this.categories?.length ?? 0) === 0 && this.refreshCategories) {\n promises.push(this.refreshCategories());\n }\n\n await Promise.all(promises);\n }\n\n loading = false;\n settingsOpen = false;\n propertyTypeTextResourceValues: string[] = [];\n\n displayBody: HTMLElement | null = null;\n isAvailable = [{status: true, name: this.$t(\"Yes\")},{status: false, name: this.$t(\"No\")}]\n\n filters = {\n name: \"\",\n address: \"\",\n ownerName: \"\",\n ownerAddress: \"\",\n propertyTypes: [] as number[],\n categories: [] as number[],\n availableOnBookingEngine: null as boolean | null\n };\n\n headers: SortableTableHeader[] = [\n {\n text: \"Property.Name\",\n value: \"name\",\n active: true,\n default: true,\n class: \"resize-header header-name-width\",\n exportHeaders: [],\n },\n {\n text: \"Address\",\n value: \"address\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Property.Type\",\n value: \"propertyType\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Property.Category\",\n value: \"category\",\n active: true,\n default: false,\n class: \"resize-header header-name-width\",\n exportHeaders: [],\n },\n {\n text: \"Property.Owner\",\n value: \"ownerName\",\n active: true,\n default: false,\n class: \"resize-header header-name-width\",\n exportHeaders: [],\n },\n {\n text: \"Property.OwnerAddress\",\n value: \"ownerAddress\",\n active: true,\n default: false,\n class: \"resize-header header-location-width\",\n exportHeaders: [],\n },\n {\n text: \"Property.IsAvailableViaBookingEngine\",\n value: \"isAvailableViaBookingEngine\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n }\n ];\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 25,\n sortBy: [\"name\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == 'category' ? \n [\"categoryTextResourceKey\"] :\n this.options.sortBy[0] == 'propertyType' ? \n [\"typeTextResourceKey\"] :\n this.options.sortBy[0] == 'isAvailableViaBookingEngine' ?\n [\"isAvailableViaBookingEngine\"] : \n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filtersForParams\n };\n }\n \n get filtersForParams() {\n return {\n ...this.filters,\n propertyTypes: this.filters.propertyTypes.join(\",\"),\n categories: this.filters.categories.join(\",\")\n };\n }\n\n get sortedPropertyTypes(){\n return this.propertyTypes?.sort((a,b) => this.$t(a.textResourceKey).toString().localeCompare(this.$t(b.textResourceKey).toString(), this.language)) ?? [];\n }\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.load();\n }\n }\n\n rowDoubleClick(e: MouseEvent, { item }: { item: PropertyViewModel }) {\n this.editProperty(item.id);\n }\n\n properties: ListModel = {\n count: 0,\n result: [],\n };\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/properties\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.properties = res.data;\n return this.properties;\n })\n .finally(() => (this.loading = false));\n }\n\n addProperty() {\n this.$router.push({ path: \"/properties/new\" });\n }\n\n editProperty(id: number) {\n this.loading = true;\n this.$router.push({ path: `/properties/${id}` }).catch(failure => {\n if (isNavigationFailure(failure)) {\n this.loading = false;\n }\n });\n }\n \n togglePublish(value: boolean, id: number){\n Vue.axios.put(\"/properties/SetPropertyBookingEnginePublishStatus/\"+id, { id: id, isAvailableViaBookingEngine: value}).then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.IsAvailableViaBookingEngineSaveSuccess\"),\n timeout: 5000,\n });\n });\n }\n\n @Action(\"globalFilters/refreshFilter\") refreshFilter?: (replace?: boolean) => void;\n deleteProperty(item: PropertyViewModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Property.DeleteConfirmation\", { value: item?.name }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deletePropertyConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deletePropertyConfirm({ id }: { id: number }) {\n Vue.axios\n .delete(`/properties/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n\n if (this.refreshFilter) {\n this.refreshFilter();\n }\n })\n .finally(() => {\n this.load();\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesGrid.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertiesGrid.vue?vue&type=template&id=b266d3c4&scoped=true&\"\nimport script from \"./PropertiesGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertiesGrid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertiesGrid.vue?vue&type=style&index=0&id=b266d3c4&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 \"b266d3c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VSelect,VSwitch,VTextField})\n","\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport PropertiesTiles from \"@/components/property/PropertiesTiles.vue\";\nimport PropertiesGrid from \"@/components/property/PropertiesGrid.vue\";\nimport GlobalFilterSensitiveMixin from '@/mixins/GlobalFilterSensitiveMixin';\nimport { Getter } from \"vuex-class\";\n\n@Component({\n components: {\n PropertiesTiles,\n PropertiesGrid\n },\n mixins: [\n GlobalFilterSensitiveMixin\n ]\n})\nexport default class PropertiesAndUnits extends Vue {\n @Getter(\"showGrid\") showGrid?: boolean;\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesAndUnits.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesAndUnits.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertiesAndUnits.vue?vue&type=template&id=4fdfa342&scoped=true&\"\nimport script from \"./PropertiesAndUnits.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertiesAndUnits.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertiesAndUnits.vue?vue&type=style&index=0&id=4fdfa342&scoped=true&lang=scss&\"\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 \"4fdfa342\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesTiles.vue?vue&type=style&index=0&id=80e1b27c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"de-emphasize mb-1\",class:{ 'error--text': !_vm.isValid }},[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]),(!_vm.isValid)?_c('div',{staticClass:\"de-emphasize mt-2 error--text\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Errors\"))+\": \")]):_vm._e(),_vm._l((_vm.errors),function(error,index){return _c('div',{key:index,staticClass:\"de-emphasize mb-1 ml-8\",class:{ 'error--text': !_vm.isValid }},[_vm._v(\" \"+_vm._s(error)+\" \")])}),_c('VueEditor',{ref:\"rte\",staticClass:\"editor\",class:{ 'show-error': !_vm.isValid, outlined: _vm.outlined },attrs:{\"disabled\":_vm.disabled,\"id\":_vm.id,\"placeholder\":_vm.placeholderText,\"editorToolbar\":_vm.toolbar},model:{value:(_vm.internalModel),callback:function ($$v) {_vm.internalModel=$$v},expression:\"internalModel\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],ref:\"editor\",attrs:{\"rules\":_vm.rules},on:{\"update:error\":_vm.checkForErrors},model:{value:(_vm.internalModel),callback:function ($$v) {_vm.internalModel=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"internalModel\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Quill } from \"vue2-editor\";\n\nconst levels = [1, 2, 3, 4, 5, 6, 7, 8];\nconst multiplier = 3;\n\nclass IndentAttributor extends Quill.import('parchment').Attributor.Style {\n constructor(name: string, style: string, params: any) {\n super(name, style, params);\n }\n \n add(node: any, value: any) {\n\t\treturn super.add(node, `${value * multiplier}em`);\n\t}\n\n\tvalue(node: any) {\n\t\treturn parseFloat(super.value(node)) / multiplier || undefined; // Don't return NaN\n\t}\n}\n\nexport const IndentStyle = new IndentAttributor('indent', 'text-indent', {\n scope: Quill.import('parchment').Scope.BLOCK,\n whitelist: levels.map(value => `${value * multiplier}em`)\n })\n\nexport const AlignStyle = Quill.import('attributors/style/align');","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Prop, Component } from \"vue-property-decorator\";\nimport { VueEditor, Quill } from \"vue2-editor\";\nimport { IndentStyle, AlignStyle } from \"./RichTextEditorStyleModifier\";\n\n//these registers make quill, that is at the base of this text editor, use inline style instead of quill classes\nQuill.register(IndentStyle, true);\nQuill.register(AlignStyle, true);\n\n// use div tag to wrap text by default - reason = it is more consistent\n// and

has a nasty botton margin that is ugly\nconst Block = Quill.import('blots/block');\nBlock.tagName = 'DIV';\nQuill.register(Block, true);\n\nconst sizeStyle = Quill.import('attributors/style/size')\n\n//sizes for all 6 html header tags that were previously available to pick (16px - normalText/h4)\nsizeStyle.whitelist = [ '32px', '24px', '18.7px', '16px', '14px', '12px']\nQuill.register(sizeStyle, true);\n\n@Component({\n components: {\n VueEditor,\n },\n})\nexport default class RichTextEditor extends Vue {\n @Prop() value?: string;\n @Prop({ default: false }) disabled?: boolean;\n @Prop({ default: \"1\" }) id?: string;\n @Prop({ default: \"\" }) placeholderText?: string;\n @Prop() editorToolbar?: any[];\n @Prop({ default: () => [] }) rules?: any[];\n @Prop() label?: string;\n @Prop({ default: false }) outlined?: boolean;\n\n errors: any[] = [];\n\n mounted() {\n const rte = this.$refs.rte as Vue;\n const arr = [].slice.call(rte.$el.children[0].children);\n const buttons = arr.flatMap((x: any) => [].slice.call(x.children));\n buttons\n .filter((x: any) => x.type == \"button\" || x.tagName == \"SPAN\")\n .forEach((x: any) => {\n let tool = x.className.replace(\"ql-\", \"\") as string;\n if (x.value) tool += \"_\" + x.value;\n\n const tooltip = this.tooltips.find((x) => x.key === tool);\n if (tooltip) x.title = tooltip.value;\n });\n }\n\n tooltips = [\n { key: \"bold\", value: this.$t('Bold') },\n { key: \"italic\", value: this.$t('Italic') },\n { key: \"underline\", value: this.$t('Underline') },\n { key: \"strike\", value: this.$t('Strikethrough') },\n { key: \"align\", value: this.$t('Align left') },\n { key: \"align_center\", value: this.$t('Align center') },\n { key: \"align_right\", value: this.$t('Align right') },\n { key: \"align_justify\", value: this.$t('Align justify') },\n { key: \"blockquote\", value: this.$t('Blockquote') },\n { key: \"code-block\", value: this.$t('Code block') },\n { key: \"list_ordered\", value: this.$t('List ordered') },\n { key: \"list_bullet\", value: this.$t('List bullet') },\n { key: \"list_check\", value: this.$t('List check') },\n { key: \"indent_-1\", value: this.$t('Indent -') },\n { key: \"indent_+1\", value: this.$t('Indent +') },\n { key: \"color ql-picker ql-color-picker\", value: this.$t('Color picker') },\n { key: \"background ql-picker ql-color-picker\", value: this.$t('Background color picker') },\n { key: \"link\", value: this.$t('Link') },\n { key: \"clean\", value: this.$t('Clean') },\n ];\n\n checkForErrors() {\n const textComponent = this.$refs.editor as any;\n this.errors = textComponent.errorBucket;\n this.$emit(\"errors\", this.errors);\n }\n\n get isValid() {\n return this.errors.length > 0 ? false : true;\n }\n\n get internalModel() {\n return this.value ?? \"\";\n }\n\n set internalModel(val: string) {\n this.checkForErrors();\n this.$emit(\"input\", val);\n }\n\n get toolbar() {\n return this.editorToolbar === undefined\n ? this.defaultToolbar\n : this.editorToolbar;\n }\n\n defaultToolbar = [\n //editors default value is first choice in select - thats why 'normal' is first\n [{'size': [ '16px', '32px', '24px', '18.7px', '14px', '12px' ]}], \n [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\n [\n { align: \"\" },\n { align: \"center\" },\n { align: \"right\" },\n { align: \"justify\" },\n ],\n [\"blockquote\", \"code-block\"],\n [{ list: \"ordered\" }, { list: \"bullet\" }, { list: \"check\" }],\n [{ indent: \"-1\" }, { indent: \"+1\" }], // outdent/indent\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\n [\"link\"], // removed video and picture because we dont support that\n [\"clean\"], // remove formatting button\n ];\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RichTextEditor.vue?vue&type=template&id=b6bd6d04&scoped=true&\"\nimport script from \"./RichTextEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./RichTextEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RichTextEditor.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./RichTextEditor.vue?vue&type=style&index=1&id=b6bd6d04&scoped=true&lang=css&\"\nimport style2 from \"./RichTextEditor.vue?vue&type=style&index=2&id=b6bd6d04&scoped=true&lang=scss&\"\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 \"b6bd6d04\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('RightDrawer',{ref:\"drawer\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialPayment,\"watched\":_vm.payment,\"is-watched-valid\":true,\"width\":\"960px\"},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.save},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled},on:{\"click\":function($event){return _vm.save(false)}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),(!_vm.paymentId && _vm.canCreateFinDocs)?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled || _vm.payment.financialDocumentId},on:{\"click\":function($event){return _vm.save(true)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Payments.SaveAndIssuePaidAdvanceInvoice\"))+\" \")]):_vm._e(),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[(_vm.payment.id)?_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"VPayment.updatePayment\"))+\" \")]):_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"VPayment.newPayment\"))+\" \")])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VPayment.payer') + '*',\"rules\":[_vm.rules.reservationHolder(_vm.payment.customerId)],\"append-icon\":\"fas fa-search\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }_vm.lookupOpen = true},\"click:append\":function($event){_vm.lookupOpen = true}},model:{value:(_vm.payment.customerName),callback:function ($$v) {_vm.$set(_vm.payment, \"customerName\", $$v)},expression:\"payment.customerName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('VPayment.amount') + '*',\"validateInput\":true,\"rules\":[\n _vm.rules.required,\n _vm.isFinancialDocumentCancelled\n ? _vm.rules.negative(_vm.payment.amount)\n : _vm.rules.positive(_vm.payment.amount) ]},model:{value:(_vm.payment.amount),callback:function ($$v) {_vm.$set(_vm.payment, \"amount\", $$v)},expression:\"payment.amount\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.currency') + '*',\"items\":_vm.allowedCurrencies,\"item-value\":\"id\",\"item-text\":\"isoCode\",\"rules\":[_vm.rules.required],\"clearable\":\"\",\"disabled\":_vm.isPaymentHistoric},model:{value:(_vm.payment.currencyId),callback:function ($$v) {_vm.$set(_vm.payment, \"currencyId\", $$v)},expression:\"payment.currencyId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"rules\":[_vm.rules.required],\"clearable\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}]),model:{value:(_vm.payment.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.payment, \"paymentMeansId\", $$v)},expression:\"payment.paymentMeansId\"}})],1),(_vm.cardTypeDisplay)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"item-value\":\"id\",\"item-text\":\"name\",\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans\n ? [_vm.rules.cardTypeIsRequired]\n : [],\"clearable\":\"\"},model:{value:(_vm.payment.cardTypeId),callback:function ($$v) {_vm.$set(_vm.payment, \"cardTypeId\", $$v)},expression:\"payment.cardTypeId\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('DateTimeOffsetField',{attrs:{\"dateLabel\":_vm.$t('VPayment.paymentDate'),\"timeLabel\":_vm.$t('VPayment.paymentTime'),\"required\":true,\"type\":'utc'},model:{value:(_vm.payment.paymentDate),callback:function ($$v) {_vm.$set(_vm.payment, \"paymentDate\", $$v)},expression:\"payment.paymentDate\"}}),(_vm.confirmReservation)?_c('v-checkbox',{attrs:{\"label\":_vm.$t(\n 't.AppParams.Tenant.AutomaticallyChangeReservationStatusToConfirmed'\n )},model:{value:(_vm.changeReservationStatus),callback:function ($$v) {_vm.changeReservationStatus=$$v},expression:\"changeReservationStatus\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"4\"}},[(_vm.payment.id)?_c('v-checkbox',{attrs:{\"label\":_vm.$t('VPayment.onlinePayment'),\"disabled\":\"\"},model:{value:(_vm.payment.isOnlinePayment),callback:function ($$v) {_vm.$set(_vm.payment, \"isOnlinePayment\", $$v)},expression:\"payment.isOnlinePayment\"}}):_vm._e()],1)],1),(_vm.allowAssignmentToFinDoc)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.referenceDocument'),\"items\":_vm.previousDocuments,\"item-value\":\"financialDocumentId\",\"clearable\":\"\",\"disabled\":!!_vm.paymentId},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.documentType)+\" \"+_vm._s(_vm.cashRegisterFeatureFlag ? item.documentInternalIdentifier : item.documentNumberComplete)+\" (\"+_vm._s(_vm.$d(new Date(item.issueDate)))+\") - \"+_vm._s(_vm.$n(item.totalDueAmountAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"item\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.documentType)+\" \"+_vm._s(_vm.cashRegisterFeatureFlag ? item.documentInternalIdentifier : item.documentNumberComplete)+\" (\"+_vm._s(_vm.$d(new Date(item.issueDate)))+\") - \"+_vm._s(_vm.$n(item.totalDueAmountAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")])]}}],null,false,2937217212),model:{value:(_vm.payment.financialDocumentId),callback:function ($$v) {_vm.$set(_vm.payment, \"financialDocumentId\", $$v)},expression:\"payment.financialDocumentId\"}})],1)],1):_vm._e()],1)],1),_c('CustomerLookup',{attrs:{\"open\":_vm.lookupOpen,\"filterPrefil\":_vm.filterPrefil},on:{\"update:open\":function($event){_vm.lookupOpen=$event},\"selected\":_vm.selected}}),_c('FinDocPrepaymentsModal',{attrs:{\"open\":_vm.unpaidPrepaymentsModalOpen,\"prepayments\":_vm.unpaidPrepayments.result,\"fromPaymentTable\":true},on:{\"update:open\":function($event){_vm.unpaidPrepaymentsModalOpen=$event},\"createOrUpdate\":_vm.createOrUpdate}}),_c('RequireRole',{attrs:{\"policy\":\"READ_FINANCIAL_DOCUMENTS\"}},[_c('FinancialDocumentModalForm',{attrs:{\"open\":_vm.financialDocumentModalOpen,\"documentId\":_vm.financialDocumentId,\"deleteOnClose\":_vm.autoDeleteDocument},on:{\"update:open\":function($event){_vm.financialDocumentModalOpen=$event},\"update:documentId\":function($event){_vm.financialDocumentId=$event},\"update:document-id\":function($event){_vm.financialDocumentId=$event},\"update:deleteOnClose\":function($event){_vm.autoDeleteDocument=$event},\"update:delete-on-close\":function($event){_vm.autoDeleteDocument=$event}}})],1),_c('InvoiceRoutingModal',{attrs:{\"open\":_vm.invoiceRoutingOpen,\"reservationId\":_vm.invoiceRoutingReservationId,\"isForCancellation\":false,\"defaultCustomerId\":_vm.invoiceRoutingCustomerId,\"defaultName\":_vm.invoiceRoutingCustomerName,\"defaultOib\":_vm.invoiceRoutingCustomerOib,\"defaultPaymentMeansId\":_vm.invoiceRoutingPaymentMeansId,\"defaultCardTypeId\":_vm.invoiceRoutingCardTypeId,\"originDocumentTypeId\":_vm.financialDocumentTypesEnum.RacunZaPredujam},on:{\"update:open\":function($event){_vm.invoiceRoutingOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Watch, Vue, Ref } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { PaymentModel } from \"./types\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport VCustomer, { CustomerModel } from \"@/shared/models/vCustomer\";\nimport { VFinancialDocument } from \"@/shared/models/VFinancialDocument\";\nimport {\n FinancialDocumentTypesEnum,\n ReservationStatusEnum,\n} from \"@/shared/models/enums.type\";\nimport { PaymentMeansEnum } from \"@/shared/models/enums.type\";\nimport _ from \"lodash\";\nimport { Prepayment } from \"@/shared/models/prepayment\";\nimport FinDocPrepaymentsModal from \"../misc/FinDocPrepaymentsModal.vue\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport NumericInputImproved from \"../numbers/NumericInputImproved.vue\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport FinancialDocumentModalForm from \"../finances/FinancialDocumentModalForm.vue\";\nimport InvoiceRoutingModal from \"@/components/finances/InvoiceRoutingModal/InvoiceRoutingModal.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { userCanCreateFinancialDocuments } from \"@/shared/roles\";\nimport { CreateAdvanceInvoiceForPaymentsResultModel } from \"../finances/FinancialDocumentFormParts/models\";\nimport DateTimeOffsetField from \"@/components/misc/DateTimeOffsetField.vue\";\n\n@Component({\n components: {\n RightDrawer,\n NumericInputImproved,\n CustomerLookup,\n FinDocPrepaymentsModal,\n FinancialDocumentModalForm,\n InvoiceRoutingModal,\n RequireRole,\n DateTimeOffsetField,\n },\n})\nexport default class ReservationFormPaymentForm extends Vue {\n @Getter(\"appParams/isCardTypeRequiredForCardPaymentMeans\")\n isCardTypeRequiredForCardPaymentMeans?: boolean;\n\n @Prop({ default: false }) open!: boolean;\n @Prop() model?: PaymentModel | null;\n @Prop() paymentId?: number | null;\n @Prop() reservationId?: number | null;\n @Prop() reservationStatusId?: number | null;\n @Prop() callback!: () => any;\n\n @Prop({ default: true }) allowAssignmentToFinDoc?: boolean;\n messages: string[] = [];\n\n fkey = 0;\n saving = false;\n loading = false;\n lookupOpen = false;\n isCurrencyHistoric = false;\n generateAdvanceInvoiceChecked = true;\n\n initialPayment: PaymentModel = new PaymentModel();\n payment: PaymentModel = new PaymentModel();\n changeReservationStatus = false;\n\n mounted() {\n this.changeReservationStatus =\n this.confirmReservation &&\n (this.automaticallyChangeReservationStatusToConfirmed ?? false);\n }\n\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n @Getter(\"appParams/formalCurrency\") formalCurrency?: Currency;\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Getter(\"appParams/showUnpaidPrepaymentsModal\")\n showUnpaidPrepaymentsModal?: boolean;\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeatureFlag?: boolean;\n @Getter(\"appParams/automaticallyChangeReservationStatusToConfirmed\")\n automaticallyChangeReservationStatusToConfirmed?: boolean;\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n financialDocumentTypesEnum = FinancialDocumentTypesEnum;\n\n get allowedCurrencies() {\n if (this.isPaymentHistoric) {\n return [\n this.workingCurrency,\n this.formalCurrency,\n this.storedSettings?.historicCurrency,\n ];\n }\n return [this.workingCurrency, this.formalCurrency];\n }\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n\n if (this.paymentId) {\n await this.loadPayment();\n } else if (this.model) {\n this.payment = _.cloneDeep(this.model);\n }\n\n await this.getCustomer();\n }\n\n this.getPreviousDocuments();\n\n if (!this.paymentId && this.previousDocuments.length === 1) {\n this.setDefaultDocument();\n }\n\n this.setDefaultCurrency();\n\n this.initialPayment = _.cloneDeep(this.payment);\n\n this.generateAdvanceInvoiceChecked =\n fresh &&\n !this.createAdvanceInvoiceFactors.hasSelectedDocToAssign &&\n this.createAdvanceInvoiceFactors.canCreateFinDocs &&\n !this.payment.id;\n }\n\n get createAdvanceInvoiceFactors() {\n return {\n hasSelectedDocToAssign: !!this.payment.financialDocumentId,\n canCreateFinDocs: this.canCreateFinDocs,\n };\n }\n\n @Watch(\"createAdvanceInvoiceFactors\", { immediate: true, deep: true })\n createAdvanceInvoiceFactorsWatch(\n fresh: typeof ReservationFormPaymentForm.prototype.createAdvanceInvoiceFactors\n ) {\n if (fresh.hasSelectedDocToAssign || !fresh.canCreateFinDocs)\n this.generateAdvanceInvoiceChecked = false;\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading && !this.saving;\n }\n\n get cardTypeDisplay() {\n return (\n (this.payment.paymentMeansId &&\n (this.payment.paymentMeansId == PaymentMeansEnum.KreditnaKartica ||\n this.payment.paymentMeansId == PaymentMeansEnum.BankovnaKartica)) ||\n (this.payment.paymentMeanBaseId &&\n (this.payment.paymentMeanBaseId == PaymentMeansEnum.KreditnaKartica ||\n this.payment.paymentMeanBaseId == PaymentMeansEnum.BankovnaKartica))\n );\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n positive: (value: any) => {\n if (value === undefined || value === null || value === \"\") {\n return true;\n }\n return +value > 0 || this.$t(\"Validation.MustBePositive\");\n },\n negative: (value: any) =>\n +value <= 0 || this.$t(\"Validation.MustBeNegative\"),\n reservationHolder: (value: any) =>\n !!value || this.$t(\"Reservation.HolderIsRequired\"),\n cardTypeIsRequired: (value: any) => {\n if (this.cardTypeDisplay) {\n return !!value || this.$t(\"Validation.Required\");\n }\n },\n };\n }\n\n selected(customer: VCustomer) {\n if (this.payment) {\n this.payment.customerId = customer.id;\n this.payment.customerName = customer.name;\n }\n }\n\n get filterPrefil() {\n return {\n name: this.payment?.customerName || \"\",\n };\n }\n\n get confirmReservation() {\n if (\n !this.paymentId &&\n this.reservationStatusId == ReservationStatusEnum.Hold\n ) {\n this.changeReservationStatus =\n this.automaticallyChangeReservationStatusToConfirmed ?? false;\n return true;\n } else {\n this.changeReservationStatus = false;\n return false;\n }\n }\n\n get isFinancialDocumentCancelled() {\n if (this.payment.financialDocumentId) {\n return (\n this.previousDocuments.find(\n (x) => x.financialDocumentId === this.payment.financialDocumentId\n )?.typeId == FinancialDocumentTypesEnum.Storno\n );\n }\n\n return false;\n }\n\n previousDocuments = [] as VFinancialDocument[];\n getPreviousDocuments() {\n if (this.allowAssignmentToFinDoc) {\n this.loading = true;\n const reservationId = this.reservationId;\n const statusIdsExcluded = [1]; // status can not be \"U izradi\"\n const documentTypeIdsExcluded = [2]; // document type can not be \"Ponuda\"\n this.axios\n .get>(\"/financialDocuments\", {\n params: {\n $top: 1000,\n reservationId: reservationId,\n statusIdsExcluded: statusIdsExcluded.join(\",\"),\n documentTypeIdsExcluded: documentTypeIdsExcluded.join(\",\"),\n },\n })\n .then((x) => {\n this.previousDocuments = x.data.result;\n })\n .finally(() => {\n this.loading = false;\n });\n } else {\n this.previousDocuments = [];\n }\n }\n\n setDefaultDocument() {\n this.payment.financialDocumentId =\n this.previousDocuments[0].financialDocumentId;\n this.payment.paymentMeansId = this.previousDocuments[0].paymentMeansId;\n this.payment.cardTypeId = this.previousDocuments[0].cardTypeId;\n }\n\n unpaidPrepayments: ListModel = {\n count: 0,\n result: [],\n };\n\n unpaidPrepaymentsModalOpen = false;\n\n async loadPayment() {\n this.loading = true;\n await Vue.axios\n .get(\"/payments/\" + this.paymentId)\n .then((res) => {\n this.payment = res.data;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n refresh() {\n if (this.callback instanceof Function) {\n this.callback();\n }\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n setDefaultCurrency() {\n if (this.isPaymentHistoric) {\n this.isCurrencyHistoric = true;\n this.payment.currencyId =\n this.storedSettings?.historicCurrency?.id ?? null;\n } else {\n this.payment.currencyId = this.formalCurrency?.id || null;\n }\n }\n\n get isPaymentHistoric() {\n return (\n this.storedSettings?.historicCurrency &&\n this.storedSettings?.historicCurrency.id === this.payment.currencyId &&\n this.payment.currencyId !== this.workingCurrency?.id &&\n this.payment.currencyId !== this.formalCurrency?.id\n );\n }\n\n async getCustomer() {\n this.loading = true;\n if (this.payment.customerId) {\n const id = this.payment.customerId;\n await this.axios\n .get(\"/customers/\" + id)\n .then((res) => {\n this.payment.customerName = res.data.isLegalEntity\n ? res.data.legalEntityName ?? \"\"\n : res.data.firstName + \" \" + res.data.lastName;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n async save(issuePaidInvoice = false) {\n if (this.payment.id) {\n await this.update();\n return;\n } else {\n await this.create(issuePaidInvoice);\n return;\n }\n }\n\n async create(issuePaidInvoice = false) {\n this.loading = true;\n await this.axios\n .post(\"/payments\", {\n ...this.payment,\n changeReservationStatusToConfirmed: this.changeReservationStatus,\n })\n .then((response) => {\n this.initialPayment = _.cloneDeep(this.payment);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: issuePaidInvoice\n ? this.$t(\"Payment.SaveAndGeneratedDoc\")\n : this.$t(\"Payment.SaveSuccess\"),\n timeout: 5000,\n localize: true,\n });\n if (issuePaidInvoice) {\n this.generateAdvanceInvoice(response.data);\n }\n })\n .finally(() => {\n if (!issuePaidInvoice) {\n this.$emit(\"saved\");\n this.$emit(\"update:open\", false);\n this.refresh();\n this.changeReservationStatus =\n this.confirmReservation &&\n (this.automaticallyChangeReservationStatusToConfirmed ?? false);\n }\n });\n }\n\n async update() {\n await this.axios\n .put(\"/payments\", { ...this.payment })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payment.SaveSuccess\"),\n timeout: 5000,\n localize: true,\n });\n })\n .finally(() => {\n this.$emit(\"saved\");\n this.$emit(\"update:open\", false);\n this.refresh();\n });\n }\n\n async createOrUpdate() {\n if (this.payment.id) {\n await this.update();\n return;\n } else {\n await this.create();\n return;\n }\n }\n\n get canCreateFinDocs() {\n return userCanCreateFinancialDocuments()(this.claims);\n }\n\n invoiceRoutingReservationId: number | null = null;\n invoiceRoutingCustomerId: number | null = null;\n invoiceRoutingCustomerName = \"\";\n invoiceRoutingCustomerOib = \"\";\n invoiceRoutingPaymentMeansId: number | null = null;\n invoiceRoutingCardTypeId: number | null = null;\n invoiceRoutingOpen = false;\n invoiceEditingOpen = false;\n financialDocumentId: number | null = null;\n financialDocumentModalOpen = false;\n autoDeleteDocument = false;\n\n async generateAdvanceInvoice(paymentId: number | null) {\n if (!this.activeBusinessUnit || !this.activeCashRegister) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message:\n \"FinancialDocument.CreationValidation.MustSelectBusinessUnitAndCashRegister\",\n timeout: 5000,\n localize: true,\n } as unknown as Notification);\n return;\n }\n\n this.loading = true;\n const invoiceRoutingCheck = await Vue.axios.post(\n \"financialDocuments/CheckIfPaymentsNeedInvoiceRouting\",\n {\n paymentId: paymentId,\n }\n );\n if (invoiceRoutingCheck.data.isRoutingNeeded) {\n this.invoiceRoutingReservationId = invoiceRoutingCheck.data.reservationId;\n this.invoiceRoutingCustomerId = invoiceRoutingCheck.data.customerId;\n this.invoiceRoutingCustomerName = invoiceRoutingCheck.data.customerName;\n this.invoiceRoutingCustomerOib = invoiceRoutingCheck.data.customerOib;\n this.invoiceRoutingPaymentMeansId =\n invoiceRoutingCheck.data.paymentMeansId;\n this.invoiceRoutingCardTypeId = invoiceRoutingCheck.data.cardTypeId;\n this.invoiceRoutingOpen = true;\n this.$emit(\"saved\");\n this.$emit(\"update:open\", false);\n }\n // create a document, lock it and pay it\n else {\n await Vue.axios\n .post(\n \"financialDocuments/CreateAdvanceInvoiceForPayments\",\n {\n paymentId: paymentId,\n reservationId: this.reservationId,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n showOwnerDetails: true,\n defaultToPropertyBusinessUnit: true,\n }\n )\n .then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Payment.SuccessfullyCreatedPaidInvoice\"),\n timeout: 5000,\n localize: true,\n });\n if (res.data.locked)\n this.messages.push(\"FinancialDocument.LockSuccess\");\n if (res.data.fiscalized)\n this.messages.push(\"FinancialDocument.FiscalizationSuccess\");\n if (res.data.paid) {\n this.messages.push(\"FinancialDocument.MarkAsPaidSuccess\");\n }\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PrepaymentDirectCharge.Error.Unknown\"),\n timeout: 5000,\n } as unknown as Notification);\n })\n .finally(() => {\n this.loading = false;\n this.$emit(\"saved\");\n this.$emit(\"update:open\", false);\n this.showMessages();\n this.refresh();\n });\n }\n }\n\n showMessages() {\n this.loading = false;\n const formatSuccessMessages = (x: string[]) =>\n x\n .map((h) => this.$t(h).toString())\n .map((th) => (th.endsWith(\".\") ? th : th + \".\"))\n .join(\" \");\n\n const fiscalizationFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.FiscalizationFailed\"\n );\n\n if (fiscalizationFailed !== -1) {\n this.messages.splice(fiscalizationFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.FiscalizationFailed\"),\n timeout: 5000,\n });\n }\n\n const ownersInvoicesCreationFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n );\n if (ownersInvoicesCreationFailed !== -1) {\n this.messages.splice(ownersInvoicesCreationFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n ),\n timeout: 5000,\n });\n }\n\n const ownersInvoicesLockingFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n );\n if (ownersInvoicesLockingFailed !== -1) {\n this.messages.splice(ownersInvoicesLockingFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n ),\n timeout: 5000,\n });\n }\n\n if (this.messages.length > 0) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: formatSuccessMessages(this.messages),\n timeout: 5000,\n });\n }\n\n this.messages = [];\n\n this.$emit(\"refresh\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormPaymentForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormPaymentForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormPaymentForm.vue?vue&type=template&id=551e1e5d&scoped=true&\"\nimport script from \"./ReservationFormPaymentForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormPaymentForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormPaymentForm.vue?vue&type=style&index=0&id=551e1e5d&scoped=true&lang=scss&\"\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 \"551e1e5d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VForm,VListItem,VListItemContent,VListItemTitle,VProgressLinear,VRow,VSelect,VTextField,VToolbar})\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAByElEQVRYw+2WvUvDUBTFA04u7VTo0sGpf4Ao1L2L4FApdHN01slBcFIEJ0EcFDqqFaGubkJdtIhVKWhBobjZwc5+NMeeSNI0vOTdpmId8uBt7+N3Ts69LwYAY5TTiAAigH8B8Fwo4LPVwvtHB6u7VYxN7cOY3AucpgnU4nFcW0cAqdkD7Z7FjQpeNrdwn0rhrVSCA9BcWsZtIoF2uWwddlV/RXr++NcAJuYOcX5SwUMmg6dczhL71TF7ALysenSGejoNqRtSAIVqPDbbmF447QFwIS9a276A1A0dgJ/q9eINxmeK1po+AHv2uZHP+7oRBBCk2n2XEkDqhgpAoloEIHHDC7CycylSPRCA1427ZNJxg8MN0MhmRaqVAAg53AAhxw9ALRazDvrr6QCM4nKKHvoTWAd1P0OYYZqQhZBBYqAYLAaMQWPgVAAMKIPKwDK4ujdFC8ASYilxsLRYYiw1lpwXgKXJEiUkS5alyxIOelN8AVSq2VzYZNhs2HS8AHbfYLOy3WATC3JDCeCnmu3VXuMHYPcNqRt9ADrV7o1BAO4uqnPDAZCoHhRA6Ub3qXe74QBIVIcB0LnhAEhUDwPg50b0VxwBRACc37+H2GuakEPwAAAAAElFTkSuQmCC\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateField.vue?vue&type=style&index=0&id=74cc00bc&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessagesTable.vue?vue&type=style&index=0&id=204ccb60&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",staticClass:\"date-field\",class:{ 'date-field--readonly': _vm.readonly }},[_c('v-menu',{attrs:{\"transition\":\"slide-y-transition\",\"offset-y\":_vm.offsetY,\"offset-x\":_vm.offsetX,\"origin\":_vm.origin,\"min-width\":\"290px\",\"nudge-left\":_vm.nudgeLeft,\"width\":_vm.width,\"close-on-content-click\":false,\"disabled\":_vm.readonly || _vm.isDisabled,\"attach\":_vm.editable},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_vm._t(\"default\",function(){return [(_vm.btn)?_c('v-btn',_vm._g(_vm._b({attrs:{\"fab\":\"\",\"small\":\"\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }return _vm.up.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }return _vm.down.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.left.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }return _vm.right.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.confirm.apply(null, arguments)}]}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-calendar-alt\")])],1):_c('v-text-field',_vm._g(_vm._b({ref:\"field\",attrs:{\"label\":_vm.label,\"readonly\":!_vm.editable || _vm.range || _vm.readonly,\"disabled\":_vm.disabled,\"value\":_vm.formatedValue,\"no-title\":\"\",\"scrollable\":\"\",\"persistent-hint\":!!_vm.hint,\"hint\":_vm.hint,\"autofocus\":_vm.autofocus,\"clearable\":_vm.clearable,\"append-icon\":_vm.appendIcon,\"outlined\":_vm.outlined,\"hide-details\":_vm.hideDetails,\"dense\":_vm.dense,\"rules\":(_vm.rules || []).concat( [_vm.dateFormat])},on:{\"input\":_vm.handleFieldInput,\"blur\":_vm.handleBlur,\"click:clear\":function($event){return _vm.$emit('input', '')},\"click:append\":function($event){_vm.appendIcon !== 'fa-calendar'\n ? _vm.$emit('click:append', $event)\n : (_vm.showMenu = !_vm.clearable)},\"update:error\":function($event){return _vm.$emit('update:error', $event)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }return _vm.up.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }return _vm.down.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.left.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }return _vm.right.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.confirm.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_vm._t(\"append-outer\")]},proxy:true}],null,true)},'v-text-field',attrs,false),on))]},null,{ on: Object.assign({}, on, {keydown: _vm.keydown}) })]}}],null,true),model:{value:(_vm.showMenu),callback:function ($$v) {_vm.showMenu=$$v},expression:\"showMenu\"}},[_c('v-date-picker',{ref:\"datePicker\",staticClass:\"date-picker\",attrs:{\"no-title\":\"\",\"scrollable\":\"\",\"locale\":_vm.language,\"value\":_vm.value,\"range\":_vm.range,\"min\":_vm.min,\"max\":_vm.max,\"type\":_vm.pickerType,\"first-day-of-week\":1,\"picker-date\":_vm.pickerDate,\"tabindex\":\"-1\",\"width\":_vm.width,\"color\":\"primary\"},on:{\"update:picker-date\":function($event){return _vm.$emit('update:picker-date', $event)},\"click:date\":_vm.dateSelected,\"click:month\":_vm.monthSelected,\"click:year\":_vm.yearSelected,\"change\":function($event){return _vm.$emit('input', $event)}},nativeOn:{\"click\":function($event){return _vm.focusDatepicker.apply(null, arguments)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }return _vm.up.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }return _vm.down.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.left.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }return _vm.right.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.confirm.apply(null, arguments)}]}},[(_vm.range)?[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\",\"sm\":\"6\",\"align\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.disableConfirm,\"color\":\"primary\"},on:{\"click\":_vm.confirmDatePicker}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Confirm\"))+\" \")])],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\",\"sm\":\"6\",\"align\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.closeDatePicker}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)]:(_vm.shouldBeConfirmed)?[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\",\"sm\":\"6\",\"align\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.disableConfirmOnDatePicker,\"color\":\"primary\"},on:{\"click\":_vm.confirmDatePicker}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Confirm\"))+\" \")])],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\",\"sm\":\"6\",\"align\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.closeDatePicker}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)]:_vm._e()],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DateField.vue?vue&type=template&id=74cc00bc&scoped=true&\"\nimport script from \"./DateField.vue?vue&type=script&lang=js&\"\nexport * from \"./DateField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DateField.vue?vue&type=style&index=0&id=74cc00bc&scoped=true&lang=scss&\"\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 \"74cc00bc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VDatePicker,VIcon,VMenu,VRow,VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeDescriptions.vue?vue&type=style&index=0&id=559165f7&scoped=true&lang=css&\"","import { DateTime } from \"luxon\";\nimport { DateTimeFormatOptions } from \"vue-i18n\";\n\nexport function formatLocaleDate(\n date: DateTime | null | undefined,\n locale?: string\n): string {\n // ? if year is more than 4 digits, vuetify datepicker breaks, \n // ? so i'm treating this as invalid value\n if (date && date.year < 10000) {\n const formated = locale\n ? date.setLocale(locale).toFormat(\"D\")\n : date.toFormat(\"D\");\n\n return formated;\n } else {\n return \"\";\n }\n}\n\n/**\n * Parse a localized date to luxon DateTime object.\n * @param {string?} stringDate - the localized string representing the date\n * @param {string} locale - [optional] the locale that the number is represented in. Omit this parameter to use the current locale.\n */\nexport function parseLocaleDate(\n stringDate: string | null | undefined,\n locale?: string\n): DateTime | null {\n if (!stringDate || stringDate === \"\") {\n return null;\n }\n\n const explained = DateTime.fromFormatExplain(\n formatLocaleDate(DateTime.local(), locale),\n \"D\",\n { locale }\n );\n\n // ? format keeps endianess(little, big, ?middle) and all special chars are replaced\n const normalizedFormat = explained.tokens\n .filter((x) => !x.literal)\n .map((x) => x.val)\n .join(\"-\");\n\n const normalizedInput = stringDate\n .replace(/[\\W_]+/g, \"-\")\n .replace(/^-+/, \"\")\n .replace(/-+$/, \"\");\n\n const parsed = DateTime.fromFormat(normalizedInput, normalizedFormat, {\n locale\n });\n\n // ? if year is more than 4 digits, vuetify datepicker breaks, \n // ? so i'm treating this as invalid value\n return parsed.isValid && parsed.year < 10000 ? parsed : null;\n}\n\nexport function parseStringToDateJS(value: string) {\n const temp = new Date(value);\n return new Date(\n Date.UTC(temp.getFullYear(), temp.getMonth(), temp.getDate())\n );\n}\n\nexport function differenceInDays(date1: Date, date2: Date) {\n const d1 = DateTime.fromJSDate(date1).set({ hour: 0 });\n const d2 = DateTime.fromJSDate(date2).set({ hour: 0 });\n const diff = d2.diff(d1, [\"days\"]).days;\n return diff;\n}\n\nexport function differenceInYears(date1: Date, date2: Date) {\n const d1 = DateTime.fromJSDate(date1).set({ hour: 0 });\n const d2 = DateTime.fromJSDate(date2).set({ hour: 0 });\n const diff = d2.diff(d1, [\"years\"]).years;\n return diff;\n}\n\nexport function getAge(dateOfBirth: string | Date) {\n const stringToday = new Date().toISOString().substring(0, 10);\n return Math.floor(\n differenceInYears(\n new Date(dateOfBirth as string),\n new Date(stringToday)\n )\n );\n}\n\nexport function formatDateTimeAccordingToTimeZoneOrUTC(date: Date, locale: string, timeZone?: string) {\n const options = {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n hour12: false,\n timeZone: timeZone || (timeZone != \"\") ? timeZone : \"Etc/UTC\",\n } as DateTimeFormatOptions;\n \n const utcToLocal = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));\n\n return new Intl.DateTimeFormat(locale, options).format(utcToLocal);\n}\n\nexport function getDateTimeOffsetString(date: Date): string{\n return DateTime.fromJSDate(date).toFormat(\"yyyy-MM-dd'T'HH:mm:ssZZZ\");\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-card',[(_vm.title)?_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e(),_c('v-card-text',_vm._l((_vm.units),function(unit,$index){return _c('v-checkbox',{key:$index,staticClass:\"mt-0 mb-2\",attrs:{\"multiple\":\"\",\"value\":unit.id,\"label\":unit.propertyName +\n ', ' +\n unit.accomodationUnitTypeName +\n ', ' +\n unit.accomodationUnitName,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.selectedIds),callback:function ($$v) {_vm.selectedIds=$$v},expression:\"selectedIds\"}})}),1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.selectAllUnits}},[_vm._v(\" \"+_vm._s(_vm.isAllSelected ? _vm.$t(\"Deselect All\") : _vm.$t(\"Select all\"))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.selectedIds || _vm.selectedIds.length == 0},on:{\"click\":_vm.accept}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Accept\"))+\" \")]),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { ReservationAccUnitModel } from \"./types\";\n\n@Component\nexport default class UnitSelectionModal extends Vue {\n @Prop() title?: string;\n @PropSync(\"open\", { default: false }) internalOpen?: boolean;\n @Prop({ default: () => [] }) units?: ReservationAccUnitModel[];\n @Prop() action?: (ids: number[]) => void;\n\n selectedIds = [] as number[];\n @Watch(\"internalOpen\")\n openWatch(fresh: boolean) {\n if (fresh) {\n this.selectedIds = [];\n }\n }\n\n accept() {\n this.internalOpen = false;\n if (this.action) this.action(this.selectedIds);\n }\n\n get isAllSelected(){\n return this.units?.length === this.selectedIds.length;\n }\n\n selectAllUnits() {\n if(this.isAllSelected){\n this.selectedIds = [];\n }\n else{\n this.units?.forEach(unit => {\n this.selectedIds.push(unit.id);\n })\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitSelectionModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitSelectionModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnitSelectionModal.vue?vue&type=template&id=2a123e4c&\"\nimport script from \"./UnitSelectionModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnitSelectionModal.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDialog,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"availability-results\"},[_c('v-data-table',{staticClass:\"table\",attrs:{\"items\":_vm.items.result,\"server-items-length\":_vm.items.count,\"item-key\":\"accomodationUnitTypeId\",\"headers\":_vm.translatedHeaders,\"show-expand\":\"\",\"expand-icon\":\"fas fa-chevron-down\",\"expanded\":_vm.expanded,\"options\":_vm.options,\"footer-props\":{\n 'items-per-page-options': [15, 25, 50, 100],\n 'items-per-page-text': '',\n },\"disable-filtering\":\"\",\"disable-sort\":\"\",\"loading\":_vm.loading,\"hide-default-header\":\"\",\"item-class\":_vm.highlightSelectedItem,\"fixed-header\":\"\",\"height\":\"100%\"},on:{\"update:expanded\":function($event){_vm.expanded=$event},\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('div',{staticClass:\"pl-4 pr-4 d-flex justify-space-between align-center\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"AdvancedSearch.ResultCount\", _vm.items)))]),(_vm.confirmSelectionLabel && _vm.hasResults)?_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":_vm.confirmSelection}},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.confirmSelectionLabel))+\" \")]):_vm._e()],1),_c('v-divider',{attrs:{\"color\":_vm.items.count == 0 ? 'error lighten-1' : ''}})]},proxy:true},{key:\"no-data\",fn:function(){return [_c('NoData',{attrs:{\"icon\":\"far fa-hotel\"}})]},proxy:true},{key:\"item.propertyName\",fn:function(ref){\n var item = ref.item;\nreturn [(_vm.$vuetify.breakpoint.mdAndUp || _vm.$vuetify.breakpoint.xsOnly)?_c('div',{staticClass:\"main-line-text\"},[_vm._v(\" \"+_vm._s(item.propertyName)+\" - \"+_vm._s(item.accomodationUnitTypeName)+\" \"),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.getMaxOccupancy(item))+\" \"),_c('v-icon',{staticClass:\"vertical-baseline\",attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-user\")])],1)]):_c('div',{staticClass:\"py-3\"},[_c('div',{staticClass:\"pb-3\"},[_vm._v(\" \"+_vm._s(item.propertyName)+\" - \"+_vm._s(item.accomodationUnitTypeName)+\" \"),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.getMaxOccupancy(item))+\" \"),_c('v-icon',{staticClass:\"vertical-baseline\",attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-user\")])],1)]),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-8\"},[_vm._v(\" \"+_vm._s(_vm.getNumberOfAvailableUnits(item))+\"/\"+_vm._s(item.totalNumberOfUnits)+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getPriceRange(item))+\" \")])])])]}},{key:\"item.numberOfAvailableUnits\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"main-line-text\"},[_vm._v(\" \"+_vm._s(_vm.getNumberOfAvailableUnits(item))+\"/\"+_vm._s(item.totalNumberOfUnits)+\" \")])]}},{key:\"item.price\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"main-line-text\"},[_vm._v(_vm._s(_vm.getPriceRange(item)))])]}},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-icon',{class:{ 'unit-icon': !_vm.isExpanded(item) },attrs:{\"color\":_vm.$vuetify.theme.dark ? 'primary lighten-2' : 'secondary'},on:{\"click\":function($event){$event.stopPropagation();return _vm.openItemDetails(item)}}},[_vm._v(\"far fa-hotel\")])]}},{key:\"expanded-item\",fn:function(ref){\n var headers = ref.headers;\n var item = ref.item;\nreturn [_c('td',{staticClass:\"availability\",class:_vm.highlightSelectedItem(item),attrs:{\"colspan\":headers.length}},_vm._l((item.rates),function(rate,$index){return _c('div',{key:rate.accomodationUnitTypeId +\n '_' +\n rate.ratePlansAccomodationUnitTypeId,staticClass:\"rate\",class:{ vertical: _vm.$vuetify.breakpoint.smAndDown }},[_c('div',{staticClass:\"d-flex align-center py-2\",class:_vm.getRateColorClasses($index)},[_c('v-icon',{staticClass:\"mr-2\",class:_vm.getRateColorClasses($index)},[_vm._v(\"fas fa-wallet\")]),_vm._v(\" \"+_vm._s(_vm.getRateName(rate))+\" \"),(rate.isSpecialOrPackageOffer)?_c('v-icon',{staticClass:\"ml-2\",class:_vm.getRateColorClasses($index),on:{\"click\":function($event){return _vm.openSpecialOfferDrawer(rate.ratePlanId)}}},[_vm._v(\"fas fa-question-circle\")]):_vm._e()],1),_c('div',{staticClass:\"pl-8\"},[_c('div',[_vm._v(\" \"+_vm._s(rate.isNonRefundable ? _vm.$t(\"No refund on cancelation\") : _vm.$t(\"Refund on cancelation\"))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(rate.includesBreakfast ? _vm.$t(\"Breakfast included\") : _vm.$t(\"Breakfast not included\"))+\" \")])]),_c('div',{staticClass:\"rate-content bold\",class:{ vertical: _vm.$vuetify.breakpoint.smAndDown }},[_c('div',{class:_vm.getRateColorClasses($index) +\n \" \" + (_vm.$vuetify.breakpoint.smAndDown ? 'pb-2' : '')},[_vm._v(\" \"+_vm._s(_vm.$t(\"Number of occupants {count}\", { count: _vm.getNumberOfPersons(item, rate), }))+\" \")]),_c('div',{staticClass:\"flex-grow-1\",class:{\n 'rate-price': _vm.$vuetify.breakpoint.mdAndUp,\n 'pb-2': _vm.$vuetify.breakpoint.smAndDown,\n }},[_c('div',{class:_vm.getRateColorClasses($index)},[_vm._v(\" \"+_vm._s(_vm.$t(\"Total price\"))+\": \"),_c('CurrencyDisplay',{attrs:{\"currencyId\":rate.currencyId,\"value\":_vm.getPrice(item, rate)}})],1),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Average price per night\"))+\": \"),_c('CurrencyDisplay',{attrs:{\"currencyId\":rate.currencyId,\"value\":_vm.getAveragePricePerNight(item, rate)}})],1)]),_c('div',[_c('NumericPicker',{attrs:{\"value\":_vm.getNumberOfTimesAvailabilityIsSelected(item, rate),\"backgroundColor\":_vm.$vuetify.theme.dark ? '' : 'white'},on:{\"input\":function($event){return _vm.availabilitySelectionChange($event, item, rate)}}})],1)])])}),0)]}}])}),_c('AccomodationUnitTypeDrawer',{attrs:{\"open\":_vm.isDetailsOpen,\"accomodationUnitType\":_vm.detailsItem},on:{\"update:open\":function($event){_vm.isDetailsOpen=$event}}}),_c('SpecialOfferDrawer',{attrs:{\"open\":_vm.specialOfferDrawerOpen,\"ratePlanId\":_vm.specialOfferId},on:{\"update:open\":function($event){_vm.specialOfferDrawerOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}}},[_c('v-toolbar',[_c('span',{staticClass:\"drawer-title\"},[_vm._v(_vm._s(_vm.$t(\"Special offer details\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('update:open', false)}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-form',{class:{ form: true },attrs:{\"readonly\":true}},[_c('v-container',{staticClass:\"font-18\"},[_c('div',{staticClass:\"ml-6 mr-8\"},[_c('v-row',[_c('div',{staticClass:\"d-flex flex-column mb-4\"},[_c('div',{staticClass:\"title-text\",class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.$t(\"SpecialOffer.Name\"))+\" \")]),_c('div',{staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(_vm.ratePlanTranslation.translation)+\" \")])])]),_c('v-row',[_c('div',{staticClass:\"d-flex flex-column mb-4\"},[_c('div',{staticClass:\"title-text\",class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.$t(\"SpecialOffer.Subtitle\"))+\" \")]),_c('div',{staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(_vm.ratePlanTranslation.subtitleTranslation)+\" \")])])]),_c('v-row',[_c('div',{staticClass:\"description-wrapper\"},[_c('div',{staticClass:\"title-text\",class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.$t(\"SpecialOffer.Description\"))+\" \")]),_c('div',{staticClass:\"ml-4 editor\",domProps:{\"innerHTML\":_vm._s(_vm.ratePlanTranslation.descriptionTranslation)}})])])],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Getter } from \"vuex-class\";\nimport { RatePlanTranslation } from \"@/shared/models/ratePlanModel\";\nimport { ListModel } from \"@/shared/models/listModel\";\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class SpecialOfferDrawer extends Vue {\n @Prop() open?: boolean;\n @Prop() ratePlanId?: number;\n\n @Getter(\"language/language\") language?: string;\n\n @Watch(\"open\")\n async openChanged(fresh: boolean) {\n if (fresh && this.ratePlanId) {\n await this.loadDetails(this.ratePlanId);\n }\n }\n\n details: RatePlanTranslation[] = [];\n\n async loadDetails(ratePlanId: number) {\n const response = await this.axios.get>(\n `advancedSearch/GetSpecialOfferTranslations/${ratePlanId}`\n );\n this.details = response.data.result;\n }\n\n get ratePlanTranslation() {\n if(this.details && this.details.length > 0) {\n return this.details.find(x => x.cultureCode === this.language?.split(\"-\")[0]) ?? null;\n }\n else {\n return new RatePlanTranslation();\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialOfferDrawer.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialOfferDrawer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpecialOfferDrawer.vue?vue&type=template&id=541ce766&scoped=true&\"\nimport script from \"./SpecialOfferDrawer.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpecialOfferDrawer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SpecialOfferDrawer.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./SpecialOfferDrawer.vue?vue&type=style&index=1&id=541ce766&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 \"541ce766\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VContainer,VForm,VIcon,VRow,VSpacer,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport { DataTableHeader, DataOptions } from \"vuetify\";\nimport { ListModel } from \"../../shared/models/listModel\";\nimport { CurrencyEnum } from \"@/shared/models/enums.type\";\nimport AccomodationUnitTypeDrawer from \"@/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue\";\nimport SpecialOfferDrawer from \"./SpecialOfferDrawer.vue\";\nimport {\n AvailabilitySearchResult,\n Rate,\n SelectedAvailability,\n} from \"@/shared/models/availability\";\nimport MoreLessSelect from \"@/components/misc/MoreLessSelect.vue\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport CurrencyDisplay from \"../misc/CurrencyDisplay.vue\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\n\n@Component({\n components: {\n AccomodationUnitTypeDrawer,\n MoreLessSelect,\n NumericPicker,\n NoData,\n SpecialOfferDrawer,\n CurrencyDisplay,\n },\n})\nexport default class AvailabilitySearchResults extends Vue {\n isDetailsOpen = false;\n detailsItem: AvailabilitySearchResult | null = null;\n\n specialOfferDrawerOpen = false;\n specialOfferId = 0;\n\n @Prop() items?: ListModel;\n @Prop() loading?: boolean;\n @Prop() takenAvailabilities?: SelectedAvailability[];\n @Prop() freedAvailabilities?: SelectedAvailability[];\n @Prop() selectedAvailabilities?: SelectedAvailability[];\n @Prop() confirmSelectionLabel?: string;\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n currencyConversionService?: CurrencyConversionService;\n\n async created() {\n if (!this.storedSettings && this.refreshSettings) {\n await this.refreshSettings();\n }\n if (this.storedSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.storedSettings\n );\n }\n }\n\n get hasResults() {\n return (this.items?.result.length ?? 0) > 0;\n }\n\n get _selectedAvailabilities() {\n return this.selectedAvailabilities;\n }\n set _selectedAvailabilities(val) {\n this.$emit(\"update:selectedAvailabilities\", val);\n }\n\n confirmSelection() {\n this.$emit(\"confirmSelection\");\n }\n\n currencyEnum = CurrencyEnum;\n\n expanded: AvailabilitySearchResult[] = [];\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n };\n\n @Watch(\"options\")\n optionsWatch() {\n this.$emit(\"paginationChange\", this.options);\n }\n\n headers: DataTableHeader[] = [\n {\n text: \"Accomodation unit\",\n value: \"propertyName\",\n },\n {\n text: \"Available units\",\n value: \"numberOfAvailableUnits\",\n },\n {\n text: \"Price range\",\n value: \"price\",\n },\n {\n text: \"Actions\",\n value: \"actions\",\n align: \"end\",\n },\n ];\n get translatedHeaders() {\n if (this.$vuetify.breakpoint.mdAndUp || this.$vuetify.breakpoint.xsOnly) {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n } else {\n return this.headers\n .filter((x) => x.value == \"propertyName\" || x.value == \"actions\")\n .map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n }\n\n isExpanded(item: AvailabilitySearchResult) {\n return this.expanded.some((x) => x == item);\n }\n\n getNumberOfPersons(item: AvailabilitySearchResult, rate: Rate) {\n const max = item.baseBedsCapacity + item.extraBedsCapacity;\n return rate.maxPersons ?? max;\n }\n\n getNumberOfAvailableUnits(item: AvailabilitySearchResult) {\n const timesSelected =\n this.selectedAvailabilities?.filter(\n (x) => x.accomodationUnitTypeId == item.accomodationUnitTypeId\n ).length || 0;\n const timesTaken =\n this.takenAvailabilities?.filter(\n (x) => x.accomodationUnitTypeId == item.accomodationUnitTypeId\n ).length || 0;\n const timesFreedUp =\n this.freedAvailabilities?.filter(\n (x) => x.accomodationUnitTypeId == item.accomodationUnitTypeId\n ).length || 0;\n\n return Math.max(\n item.numberOfAvailableUnits - timesSelected - timesTaken + timesFreedUp,\n 0\n );\n }\n\n getPrice(item: AvailabilitySearchResult, rate: Rate) {\n return rate.totalPrice;\n }\n\n getPriceRange(item: AvailabilitySearchResult) {\n const ratesPrices = item.rates.map(\n (r) =>\n this.currencyConversionService?.convertCurrency(\n r.totalPrice,\n r.currencyId,\n this.storedSettings?.workingCurrency.id ?? 0\n ) ?? 0\n );\n\n const min = Math.min(...ratesPrices);\n\n const max = Math.max(...ratesPrices);\n\n const currencyId =\n item && item.rates && item.rates.length > 0\n ? item.rates[0].currencyId\n : this.storedSettings?.workingCurrency.id ?? this.currencyEnum.EUR; // Default EUR, but it should find tenant working currency\n const currencyISO3 = this.currencyEnum[currencyId];\n\n if (min !== max) {\n return (\n this.$n(min, {\n maximumFractionDigits: \"2\",\n minimumFractionDigits: \"2\",\n }) +\n \"-\" +\n this.$n(max, {\n style: \"currency\",\n currency: currencyISO3,\n display: \"code\",\n })\n );\n } else {\n return this.$n(min, {\n style: \"currency\",\n currency: currencyISO3,\n display: \"code\",\n });\n }\n }\n\n getAveragePricePerNight(item: AvailabilitySearchResult, rate: Rate) {\n const price = this.getPrice(item, rate);\n return price / item.numberOfNights;\n }\n\n // selection of availabilities\n availabilitySelectionChange(\n wantedAmount: number,\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n const timesAlreadySelected = this.getNumberOfTimesAvailabilityIsSelected(\n item,\n rate\n );\n\n if (typeof wantedAmount != \"number\" || wantedAmount < 0) {\n wantedAmount = 0;\n }\n\n if (timesAlreadySelected > wantedAmount) {\n this.deselectAvailability(\n timesAlreadySelected - wantedAmount,\n item,\n rate\n );\n } else if (timesAlreadySelected < wantedAmount) {\n this.selectAvailability(wantedAmount - timesAlreadySelected, item, rate);\n }\n }\n\n selectAvailability(\n amount: number,\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n if (!this._selectedAvailabilities) {\n return;\n }\n\n const temp = this._selectedAvailabilities.slice();\n for (let i = 0; i < amount; i++) {\n temp.push({\n accomodationUnitTypeId: item.accomodationUnitTypeId,\n ratePlansAccomodationUnitTypeId: rate.ratePlansAccomodationUnitTypeId,\n ratePlanId: rate.ratePlanId,\n numberOfOccupants: rate.maxPersons,\n });\n }\n this._selectedAvailabilities = temp.slice();\n }\n deselectAvailability(\n amount: number,\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n if (!this._selectedAvailabilities) {\n return;\n }\n\n const temp = this._selectedAvailabilities.slice();\n\n for (let i = 0; i < amount; i++) {\n const index = SelectedAvailability.GetFirstIndexInArray(temp, item, rate);\n\n if (index != -1) {\n temp.splice(index, 1);\n }\n }\n\n this._selectedAvailabilities = temp.slice();\n }\n\n getNumberOfTimesAvailabilityIsSelected(\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n if (!this._selectedAvailabilities) {\n return 0;\n }\n\n return SelectedAvailability.GetCountInArray(\n this._selectedAvailabilities,\n item,\n rate\n );\n }\n\n // details form opening\n openItemDetails(item: AvailabilitySearchResult) {\n this.detailsItem = item;\n this.isDetailsOpen = true;\n }\n\n // details form opening\n getMaxOccupancy(item: AvailabilitySearchResult) {\n if (item.extraBedsCapacity)\n return `${item.baseBedsCapacity}+${item.extraBedsCapacity}`;\n return `${item.baseBedsCapacity}`;\n }\n\n // functions for applying css classes representing selected availabilities\n highlightSelectedItem(item: AvailabilitySearchResult) {\n const toReturn = { \"is-selected-highlight\": false, item: false };\n\n if (this.expanded.indexOf(item) != -1) {\n toReturn.item = true;\n }\n\n if (!this._selectedAvailabilities) {\n return toReturn;\n }\n\n for (const rate of item.rates) {\n if (\n SelectedAvailability.GetFirstIndexInArray(\n this._selectedAvailabilities,\n item,\n rate\n ) != -1\n ) {\n toReturn[\"is-selected-highlight\"] = true;\n return toReturn;\n }\n }\n\n return toReturn;\n }\n\n highlightSelectedRate(item: AvailabilitySearchResult, rate: Rate) {\n if (!this._selectedAvailabilities) {\n return false;\n }\n\n if (\n SelectedAvailability.GetFirstIndexInArray(\n this._selectedAvailabilities,\n item,\n rate\n ) != -1\n ) {\n return true;\n }\n\n return false;\n }\n\n highlightSelectedOption(item: AvailabilitySearchResult, rate: Rate) {\n if (!this._selectedAvailabilities) {\n return false;\n }\n\n return (\n SelectedAvailability.GetFirstIndexInArray(\n this._selectedAvailabilities,\n item,\n rate\n ) != -1\n );\n }\n\n getRateColorClasses(index: number) {\n const evenOdd = index % 2 == 0 ? \"rate-even\" : \"rate-odd\";\n const lightDark = this.$vuetify.theme.dark ? \"theme--dark\" : \"theme--light\";\n return evenOdd + \" \" + lightDark;\n }\n\n getRateName(rate: Rate) {\n let paxSuffix = \"\";\n let losSuffix = \"\";\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rate.minPersons === rate.maxPersons\n ? `, ${rate.minPersons} pax`\n : `, ${rate.minPersons}-${rate.maxPersons} pax`;\n }\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rate.maxStay === 0\n ? `, ${rate.minStay}+ LOS`\n : rate.minStay === rate.maxStay\n ? `, ${rate.minStay} LOS`\n : `, ${rate.minStay}-${rate.maxStay} LOS`;\n }\n return `${rate.ratePlanName}${paxSuffix}${losSuffix}`;\n }\n\n openSpecialOfferDrawer(id: number) {\n this.specialOfferId = id;\n this.specialOfferDrawerOpen = true;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchResults.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AvailabilitySearchResults.vue?vue&type=template&id=2c2e94b4&scoped=true&\"\nimport script from \"./AvailabilitySearchResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./AvailabilitySearchResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AvailabilitySearchResults.vue?vue&type=style&index=0&id=2c2e94b4&scoped=true&lang=scss&\"\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 \"2c2e94b4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VDataTable,VDivider,VIcon,VSubheader})\n","module.exports = __webpack_public_path__ + \"img/nokumo-text-light-blue.999c5351.svg\";","export type PriceCalculationMethodView = {\n id: number;\n name: string;\n textResourceKey: string;\n};\n\nexport enum CalculationMethods {\n PerStay = 1,\n PerNight = 2,\n PerPersonPerNight = 3,\n PerPerson = 4,\n PerAdultPerson = 5,\n Manual = 6,\n PerChildPerNight = 7,\n PerAdultPerNight = 8,\n PerDay = 9\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Messages.vue?vue&type=style&index=0&id=10549744&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitForm.vue?vue&type=style&index=0&id=a0be2568&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitForm.vue?vue&type=style&index=0&id=ea8e06ca&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerForm.vue?vue&type=style&index=0&id=6a194c9d&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reservations.vue?vue&type=style&index=0&id=0800c030&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"100%\"}},[_c('v-card',[_c('v-data-table',{staticClass:\"table\",attrs:{\"headers\":_vm.translatedHeaders,\"loading\":_vm.tableLoadingInternal,\"fixed-header\":\"\",\"options\":_vm.options,\"items\":_vm.items,\"item-key\":_vm.key,\"show-select\":\"\",\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] }},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"value\":_vm.areAllSelected()},on:{\"change\":_vm.selectAll}})]},proxy:true},{key:\"header.name\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})]}},{key:\"header.eMail\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})]}},{key:\"item.isResident\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isResident,\"disabled\":\"\"}})]}},{key:\"header.arrivalDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrDeparture),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrDeparture\", $$v)},expression:\"filters.arrivalOrDeparture\"}})]}},{key:\"item.arrivalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"item.propertyName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.propertyName)+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(item.reservationId)+\" \")])]}},{key:\"header.ownerName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.ownerName),callback:function ($$v) {_vm.$set(_vm.filters, \"ownerName\", $$v)},expression:\"filters.ownerName\"}})]}},{key:\"item.issueDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.issueDate)))+\" \")])]}},{key:\"header.reservationHolderName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationHolderName),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationHolderName\", $$v)},expression:\"filters.reservationHolderName\"}})]}},{key:\"header.propertyName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.propertyName),callback:function ($$v) {_vm.$set(_vm.filters, \"propertyName\", $$v)},expression:\"filters.propertyName\"}})]}},{key:\"header.issueDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.issueDate),callback:function ($$v) {_vm.$set(_vm.filters, \"issueDate\", $$v)},expression:\"filters.issueDate\"}})]}},{key:\"header.financialDocumentNumberComplete\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.financialDocumentNumber),callback:function ($$v) {_vm.$set(_vm.filters, \"financialDocumentNumber\", $$v)},expression:\"filters.financialDocumentNumber\"}})]}},{key:\"header.financialDocumentIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.financialDocumentIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"financialDocumentIdentifier\", $$v)},expression:\"filters.financialDocumentIdentifier\"}})]}},{key:\"header.financialDocumentInternalIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.financialDocumentInternalIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"financialDocumentInternalIdentifier\", $$v)},expression:\"filters.financialDocumentInternalIdentifier\"}})]}},{key:\"item.totalAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalAmount, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", }))+\" \")])]}},{key:\"item.totalPaidAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalPaidAmount, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", }))+\" \")])]}},{key:\"item.totalDueAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalDueAmount, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", }))+\" \")])]}},{key:\"item.paymentAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('NumericInputImproved',{attrs:{\"outlined\":false,\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":2}})]},proxy:true}],null,true),model:{value:(item.paymentAmount),callback:function ($$v) {_vm.$set(item, \"paymentAmount\", $$v)},expression:\"item.paymentAmount\"}})]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport { FinDocsForSEPA } from \"@/shared/models/finDocsForSepaExport\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport CurrencyDisplay from \"./CurrencyDisplay.vue\";\nimport { DataOptions, DataTableHeader } from \"vuetify\";\nimport { Getter } from \"vuex-class\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport NumericInputImproved from \"../numbers/NumericInputImproved.vue\";\n\n@Component({\n components: {\n NumericInputImproved,\n CurrencyDisplay,\n DateField,\n },\n})\nexport default class SelectedItemsTable extends Vue {\n @PropSync(\"selectedItems\") selected?:\n | VCustomer[]\n | GlobalFilterProperty[]\n | FinDocsForSEPA[];\n @PropSync(\"open\") internalOpen?: boolean;\n @PropSync(\"tableLoading\") tableLoadingInternal?: boolean[];\n\n @Prop({ default: false }) forOwner?: boolean;\n @Prop({ default: false }) forProperty?: boolean;\n @Prop({ default: false }) forSepa?: boolean;\n @Prop() propertyItems?: GlobalFilterProperty[];\n @Prop() ownerItems?: VCustomer[];\n @Prop() finDocItems?: FinDocsForSEPA[];\n @Prop({ default: false }) showResidentColumn?: boolean;\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n name = \"\";\n email = \"\";\n\n filters = {\n ownerName: \"\",\n reservationHolderName: \"\",\n propertyName: \"\",\n financialDocumentNumber: \"\",\n financialDocumentIdentifier: \"\",\n financialDocumentInternalIdentifier: \"\",\n arrivalOrDeparture: \"\",\n issueDate: \"\",\n };\n @Watch(\"filters\", { deep: true, immediate: true })\n watchFilters() {\n this.options.page = 1;\n this.items;\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: this.forSepa ? [\"issueDate\"] : [\"name\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n get key() {\n return !this.forSepa\n ? this.forProperty\n ? \"propertyId\" : \"id\"\n : \"financialDocumentId\";\n }\n\n get setsFiscalAsMain() {\n return this.storedSettings?.setFiscalNumberAsMain ?? false;\n }\n\n ownerHeaders: DataTableHeader[] = [];\n propertyHeaders: DataTableHeader[] = [];\n reservationHeaders: DataTableHeader[] = [];\n \n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Watch(\"claims.roles\", { immediate: true })\n rolesWatch() {\n this.ownerHeaders = [\n {\n text: \"VCustomer.name\",\n value: \"name\",\n width: \"45%\",\n },\n {\n text: \"VCustomer.eMail\",\n value: \"eMail\",\n width: \"45%\",\n },\n {\n text: \"VCustomer.IsResident\",\n value: \"isResident\",\n width: \"10%\",\n },\n ];\n\n this.propertyHeaders = [\n {\n text: \"Property\",\n value: \"name\",\n width: \"50%\",\n },\n {\n text: \"Property.Owner\",\n value: \"ownerName\",\n width: \"50%\",\n },\n ];\n\n this.reservationHeaders = [\n {\n text: \"Customers.Owner\",\n value: \"ownerName\",\n },\n {\n text: \"Period\",\n value: \"arrivalDate\",\n },\n {\n text: \"Reservation holder\",\n value: \"reservationHolderName\",\n },\n {\n text: \"Property\",\n value: \"propertyName\",\n },\n {\n text: \"SepaExport.IssueDate\",\n value: \"issueDate\",\n },\n ...(!this.setsFiscalAsMain\n ? [\n {\n text: \"VFinancialDocument.documentInternalIdentifier\",\n value: \"financialDocumentInternalIdentifier\",\n },\n ]\n : [\n {\n text: \"VFinancialDocument.documentIdentifier\",\n value: \"financialDocumentIdentifier\",\n },\n ]),\n {\n text: \"Total price\",\n value: \"totalAmount\",\n },\n {\n text: \"SepaExport.PaidAmount\",\n value: \"totalPaidAmount\",\n },\n {\n text: \"SepaExport.DueAmount\",\n value: \"totalDueAmount\",\n },\n {\n text: \"SepaExport.PaymentAmount\",\n value: \"paymentAmount\",\n },\n ];\n }\n\n get translatedHeaders() {\n if (this.forOwner) {\n return (\n this.ownerHeaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n })) ?? []\n );\n }\n\n if (this.forProperty) {\n return (\n this.propertyHeaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n })) ?? []\n );\n }\n\n if (this.forSepa) {\n return (\n this.reservationHeaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n })) ?? []\n );\n }\n return [];\n }\n\n get items() {\n if (this.forProperty) {\n return this.propertyItems?.filter(\n (e) =>\n !this.name || (e.name && e.name.toLowerCase().includes(this.name))\n );\n }\n if (this.forOwner && this.selected) {\n if (!this.ownerItems) return [];\n\n return this.ownerItems\n .filter(e => !this.name || (e.name && e.name.toLowerCase().includes(this.name)))\n .filter(e => !this.email || (e.eMail && e.eMail.toLowerCase().includes(this.email)));\n }\n if (this.forSepa && this.selected) {\n return this.finDocItems?.filter(\n (e) =>\n (!this.filters.ownerName ||\n (e.ownerName &&\n e.ownerName\n .toLowerCase()\n .includes(this.filters.ownerName.toLowerCase()))) &&\n (!this.filters.reservationHolderName ||\n (e.reservationHolderName &&\n e.reservationHolderName\n .toLowerCase()\n .includes(this.filters.reservationHolderName.toLowerCase()))) &&\n (!this.filters.propertyName ||\n (e.propertyName &&\n e.propertyName\n .toLowerCase()\n .includes(this.filters.propertyName.toLowerCase()))) &&\n (!this.filters.financialDocumentNumber ||\n (e.financialDocumentNumberComplete &&\n e.financialDocumentNumberComplete\n .toLowerCase()\n .includes(\n this.filters.financialDocumentNumber.toLowerCase()\n ))) &&\n (!this.filters.financialDocumentIdentifier ||\n (e.financialDocumentIdentifier &&\n e.financialDocumentIdentifier\n .toLowerCase()\n .includes(\n this.filters.financialDocumentIdentifier.toLowerCase()\n ))) &&\n (!this.filters.financialDocumentInternalIdentifier ||\n (e.financialDocumentInternalIdentifier &&\n e.financialDocumentInternalIdentifier\n .toLowerCase()\n .includes(\n this.filters.financialDocumentInternalIdentifier.toLowerCase()\n ))) &&\n (!this.filters.arrivalOrDeparture ||\n (e.arrivalDate &&\n e.arrivalDate.substring(0, 10) >=\n this.filters.arrivalOrDeparture[0] &&\n e.arrivalDate <= this.filters.arrivalOrDeparture[1]) ||\n (e.departureDate &&\n e.departureDate.substring(0, 10) <=\n this.filters.arrivalOrDeparture[1] &&\n e.departureDate >= this.filters.arrivalOrDeparture[0])) &&\n (!this.filters.issueDate ||\n (e.issueDate &&\n e.issueDate.substring(0, 10) === this.filters.issueDate))\n );\n }\n return [];\n }\n\n areAllSelected() {\n if (this.selected?.length == 0) {\n return false;\n }\n if (this.forOwner) {\n const selectedOwners = this.selected as VCustomer[];\n const items = this.items as VCustomer[];\n return !items.some((e) => selectedOwners?.indexOf(e) == -1);\n }\n if (this.forProperty) {\n const selectedProperties = this.selected as GlobalFilterProperty[];\n const items = this.items as GlobalFilterProperty[];\n return !items.some((e) => selectedProperties?.indexOf(e) == -1);\n }\n if (this.forSepa) {\n const selectedFinDocItems = this.selected as FinDocsForSEPA[];\n const items = this.items as FinDocsForSEPA[];\n return !items.some((e) => selectedFinDocItems?.indexOf(e) == -1);\n }\n }\n\n selectAll(event: boolean) {\n if (this.forOwner) {\n const selectedOwners = this.selected as VCustomer[];\n const items = this.items as VCustomer[];\n\n if (event) {\n this.selected = selectedOwners.concat(\n items?.filter((e) => !selectedOwners.some((s) => s.id == e.id))\n );\n } else {\n this.selected = selectedOwners.filter(\n (s) => !items.some((e) => e.id == s.id)\n );\n }\n } else if (this.forProperty) {\n const selectedProperties = this.selected as GlobalFilterProperty[];\n const items = this.items as GlobalFilterProperty[];\n\n if (event) {\n this.selected = selectedProperties.concat(\n items?.filter(\n (e) => !selectedProperties.some((s) => s.propertyId == e.propertyId)\n )\n );\n } else {\n this.selected = selectedProperties.filter(\n (s) => !items.some((e) => e.propertyId == s.propertyId)\n );\n }\n } else if (this.forSepa) {\n const selectedFinDocs = this.selected as FinDocsForSEPA[];\n const items = this.items as FinDocsForSEPA[];\n\n if (event) {\n this.selected = selectedFinDocs.concat(\n items?.filter(\n (e) =>\n !selectedFinDocs.some(\n (s) => s.financialDocumentId == e.financialDocumentId\n )\n )\n );\n } else {\n this.selected = selectedFinDocs.filter(\n (s) =>\n !items.some((e) => e.financialDocumentId == s.financialDocumentId)\n );\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectedItemsTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectedItemsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectedItemsTable.vue?vue&type=template&id=6fb7cb3d&scoped=true&\"\nimport script from \"./SelectedItemsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectedItemsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectedItemsTable.vue?vue&type=style&index=0&id=6fb7cb3d&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 \"6fb7cb3d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCheckbox,VDataTable,VSimpleCheckbox,VTextField})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitType.vue?vue&type=style&index=0&id=58c4b3f5&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortableHeadersTable.vue?vue&type=style&index=0&id=45e7d154&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationPanelWhatsApp.vue?vue&type=style&index=0&id=39d9b185&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleReservationsInvoice.vue?vue&type=style&index=0&id=0d7cbd3e&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarEditor.vue?vue&type=style&index=0&id=5c701d77&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\",null,{\"onScroll\":_vm.onScroll})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\n\nconst evt3rdArg = (() => {\n let result: any = false;\n\n try {\n const arg = Object.defineProperty({}, \"passive\", {\n get() {\n result = { passive: true };\n return result;\n }\n });\n\n window.addEventListener(\"testpassive\", arg as EventListener);\n window.removeEventListener(\"testpassive\", arg as EventListener);\n } catch (e) {\n /* */\n }\n\n return result;\n})();\n\n@Component\nexport default class ScrollLoader extends Vue {\n @Prop() loadOffset!: number;\n @Prop() element!: HTMLElement;\n\n @Watch(\"element\", { deep: true })\n onElementChanged(newEl?: HTMLElement, oldEl?: HTMLElement) {\n setTimeout(() => {\n if (oldEl) oldEl.removeEventListener(\"scroll\", this.onScroll, evt3rdArg);\n if (newEl) {\n newEl.addEventListener(\"scroll\", this.onScroll, evt3rdArg);\n\n // these are added for KPI data tables, because the scroll event isn't fired on them, but their ancestors\n if (newEl?.parentNode?.parentNode?.parentNode !== null) {\n newEl?.parentNode?.parentNode?.parentNode.addEventListener(\"scroll\", this.onScroll, evt3rdArg); // (due) invoices grid\n }\n if (newEl?.parentNode?.parentNode?.parentNode?.parentNode !== null) {\n newEl?.parentNode?.parentNode?.parentNode?.parentNode.addEventListener(\"scroll\", this.onScroll, evt3rdArg); // all other grids\n }\n }\n });\n }\n\n onScroll(ev: Event) {\n const { scrollTop, clientHeight, scrollHeight } = ev && (ev.target as any);\n \n if (scrollTop && scrollHeight && (scrollHeight - clientHeight - scrollTop) < this.loadOffset) {\n this.$emit('offsetReached');\n }\n }\n\n beforeDestroy() {\n if (this.element) {\n this.element.removeEventListener(\"scroll\", this.onScroll, evt3rdArg);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollLoader.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScrollLoader.vue?vue&type=template&id=559b1522&\"\nimport script from \"./ScrollLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScrollLoader.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","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchForm.vue?vue&type=style&index=0&id=8b5e496e&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanForm.vue?vue&type=style&index=0&id=24d35220&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectedItemsTable.vue?vue&type=style&index=0&id=6fb7cb3d&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtasIframe.vue?vue&type=style&index=0&id=0e803352&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-wrapper\",class:{ mobile: _vm.isMobile }},[_c('div',{staticClass:\"card reservation-info\",class:{ md: _vm.$vuetify.breakpoint.mdOnly, mobile: _vm.isMobile }},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"min-height\":\"100%\",\"width\":\"100%\",\"disabled\":_vm.reservationIsReadonly}},[_c('v-card-text',{staticClass:\"d-flex flex-column flex-grow-1\"},[_c('ReservationFormHolder',{attrs:{\"reservation\":_vm.model,\"isMobile\":_vm.isMobile}}),_c('v-divider',{staticClass:\"mb-4\"}),_c('ReservationFormStayPeriod',{ref:\"ReservationFormStayPeriod\",attrs:{\"reservation\":_vm.model,\"period\":_vm.stayPeriodFromUnits ? _vm.stayPeriodFromUnits : _vm.period,\"restrictions\":_vm.restrictions,\"isMobile\":_vm.isMobile}}),_c('v-spacer'),_c('ReservationFormPrice',{attrs:{\"reservation\":_vm.model,\"isMobile\":_vm.isMobile}})],1)],1)],1),_c('div',{staticClass:\"card units\",class:{ md: _vm.$vuetify.breakpoint.mdOnly }},[_c('v-card',{staticClass:\"units-content\",attrs:{\"min-height\":\"100%\",\"width\":\"100%\",\"disabled\":!_vm.periodSet || _vm.isLoadingOrSaving}},[_c('ReservationFormUnits',{attrs:{\"reservation\":_vm.model,\"availabilities\":_vm.availabilities,\"restrictions\":_vm.restrictions,\"isMobile\":_vm.isMobile},on:{\"overbooked\":function($event){return _vm.isOverbooked($event)},\"notAvailable\":function($event){return _vm.isNotAvailable($event)},\"selectedUnit\":function($event){_vm.selectedUnit = $event},\"stayPeriodChanged\":_vm.stayPeriodChanged,\"guestsCopied\":function($event){return _vm.$emit('refreshReservation')},\"removeGuestStart\":function($event){return _vm.$emit('removeGuestStart')},\"removeGuestEnd\":function($event){return _vm.$emit('removeGuestEnd', $event)},\"updateGuest\":function($event){return _vm.$emit('updateGuest')},\"checkInUnit\":function($event){return _vm.$emit('checkInUnit', $event)},\"checkOutUnit\":function($event){return _vm.$emit('checkOutUnit', $event)},\"isLoadingChanged\":function($event){return _vm.isLoadingChanged($event)}}})],1)],1),_c('div',{staticClass:\"card remarks\",class:{\n closed: !_vm.remarksOpen,\n md: _vm.$vuetify.breakpoint.mdOnly,\n mobile: _vm.isMobile,\n }},[_c('v-card',_vm._g({staticClass:\"d-flex flex-column\",attrs:{\"min-height\":\"100%\",\"width\":\"100%\",\"ripple\":false}},!_vm.remarksOpen ? { click: _vm.toggleRemarks } : null),[_c('v-card-subtitle',{staticClass:\"d-flex align-center\",class:{\n 'flex-row': !_vm.remarksOpen && _vm.isMobile,\n 'flex-column': !_vm.remarksOpen && !_vm.isMobile,\n }},[_c('v-icon',{staticClass:\"subheader-icon\",class:{ 'mr-4': _vm.remarksOpen || _vm.isMobile },on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleRemarks.apply(null, arguments)}}},[_vm._v(_vm._s(!_vm.remarksOpen ? \"fas fa-chevron-left\" : \"fas fa-chevron-right\"))]),(!_vm.remarksOpen && !_vm.isMobile)?_c('v-icon',{staticClass:\"mt-4\"},[_vm._v(\"fas fa-comment-alt-lines\")]):_c('v-subheader',{staticClass:\"subheader\",class:{ 'white--text': _vm.$vuetify.theme.dark }},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.RemarksAndTags\"))+\" \")])],1),(_vm.remarksOpen)?_c('v-card-text',{staticClass:\"remarks-content\"},[_c('v-combobox',{attrs:{\"items\":_vm.tenantTags,\"label\":_vm.$t('Reservation.Tags'),\"disabled\":_vm.reservationIsReadonly,\"attach\":\"\",\"outlined\":\"\",\"multiple\":\"\",\"auto-select-first\":false,\"rules\":[_vm.rules.maxCharacters]},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var index = ref.index;\n var item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-chip',_vm._g({attrs:{\"close\":\"\"},on:{\"click:close\":function($event){return _vm.tags.splice(index, 1)}}},on),[_c('span',{staticClass:\"chip-ellipsis\"},[_vm._v(_vm._s(item))])])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item))])])]}}],null,false,4191889864),model:{value:(_vm.tags),callback:function ($$v) {_vm.tags=$$v},expression:\"tags\"}}),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_GUEST_REMARKS\"}},[_c('v-textarea',{staticClass:\"remark-textarea\",attrs:{\"label\":_vm.$t('Reservation.GuestRemarks'),\"readonly\":_vm.reservationIsReadonly,\"outlined\":\"\",\"no-resize\":\"\",\"rules\":[_vm.rules.maxLength]},model:{value:(_vm.model.guestRemarks),callback:function ($$v) {_vm.$set(_vm.model, \"guestRemarks\", $$v)},expression:\"model.guestRemarks\"}})],1),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_PROPERTY_STAFF_REMARKS\"}},[_c('v-textarea',{staticClass:\"remark-textarea\",attrs:{\"label\":_vm.$t('Reservation.InternalRemarks'),\"readonly\":_vm.reservationIsReadonly,\"outlined\":\"\",\"no-resize\":\"\",\"rules\":[_vm.rules.maxLength]},model:{value:(_vm.model.propertyStaffRemarks),callback:function ($$v) {_vm.$set(_vm.model, \"propertyStaffRemarks\", $$v)},expression:\"model.propertyStaffRemarks\"}})],1),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_REMARKS_FOR_OWNER\"}},[(_vm.tenantTypeId == 2)?_c('v-textarea',{staticClass:\"remark-textarea\",attrs:{\"label\":_vm.$t('Reservations.RemarksForOwner'),\"readonly\":_vm.reservationIsReadonly,\"outlined\":\"\",\"no-resize\":\"\",\"rules\":[_vm.rules.maxLength],\"rows\":\"4\"},model:{value:(_vm.model.remarksForOwner),callback:function ($$v) {_vm.$set(_vm.model, \"remarksForOwner\", $$v)},expression:\"model.remarksForOwner\"}}):_vm._e()],1),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_MAINTENANCE_STAFF_REMARKS\"}},[_c('v-textarea',{staticClass:\"remark-textarea\",attrs:{\"label\":_vm.$t('Reservations.MaintenanceStaffRemarks'),\"readonly\":_vm.reservationIsReadonly,\"outlined\":\"\",\"no-resize\":\"\",\"rules\":[_vm.rules.maxLength],\"rows\":_vm.tenantTypeId != 2 ? 5 : 4},model:{value:(_vm.model.maintenanceStaffRemarks),callback:function ($$v) {_vm.$set(_vm.model, \"maintenanceStaffRemarks\", $$v)},expression:\"model.maintenanceStaffRemarks\"}})],1)],1):_vm._e()],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":_vm.isAllowedGuestHistory ? 10 : 12,\"lg\":_vm.isAllowedGuestHistory ? 5 : 6}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Name') + '*',\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.reservationHolder(_vm.model.customerId)],\"append-icon\":\"fas fa-search\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }_vm.lookupOpen = true},\"click:append\":function($event){_vm.lookupOpen = true},\"blur\":_vm.onInputLostFocus},model:{value:(_vm.model.customer.name),callback:function ($$v) {_vm.$set(_vm.model.customer, \"name\", $$v)},expression:\"model.customer.name\"}})],1),(_vm.isAllowedGuestHistory)?_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"2\",\"lg\":\"1\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary',\"disabled\":!_vm.model.customerId},on:{\"click\":function($event){_vm.guestHistoryOpen = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-file-alt\")])],1)],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Country'),\"items\":_vm.countries,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t((\"Country.Official.\" + (x.isoThreeLetterCode))).toString(); },\"menu-props\":{ openOnClick: true },\"outlined\":\"\",\"dense\":\"\",\"disabled\":\"\"},model:{value:(_vm.model.customer.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.model.customer, \"countryOfResidenceId\", $$v)},expression:\"model.customer.countryOfResidenceId\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.showEmail)?_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Email'),\"readonly\":!_vm.isAllowedToEditEmail,\"outlined\":\"\",\"dense\":\"\",\"disabled\":!_vm.isAllowedToEditEmail},on:{\"blur\":_vm.onInputLostFocus},model:{value:(_vm.model.customer.eMail),callback:function ($$v) {_vm.$set(_vm.model.customer, \"eMail\", $$v)},expression:\"model.customer.eMail\"}})],1):_vm._e(),(_vm.isAllowedToSeeTelephoneNumber)?_c('v-col',{attrs:{\"cols\":\"10\",\"lg\":\"5\"}},[_c('v-text-field',{class:{ 'telephone-number': _vm.isMobile && _vm.hasPhoneNumber },attrs:{\"label\":_vm.$t('Telephone number'),\"readonly\":\"\",\"outlined\":\"\",\"dense\":\"\",\"disabled\":\"\"},model:{value:(_vm.model.customer.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.model.customer, \"telephoneNumber\", $$v)},expression:\"model.customer.telephoneNumber\"}})],1):_vm._e(),(_vm.model.customer.status && !_vm.isOwnerLevel3)?_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"2\",\"lg\":\"1\"}},[(_vm.model.customer.status)?_c('v-btn',{attrs:{\"icon\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary',\"disabled\":!_vm.model.customerId},on:{\"click\":function($event){_vm.customerFormOpen = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-pen\")])],1):_vm._e()],1):_vm._e()],1),(_vm.isMobile && _vm.hasPhoneNumber && _vm.isAllowedToSeeTelephoneNumber)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\",\"lg\":\"1\"}},[_c('v-btn',{staticClass:\"call\",attrs:{\"icon\":\"\",\"href\":_vm.phonehref,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"fas fa-phone\")])],1)],1),_c('v-col',{attrs:{\"cols\":\"4\",\"lg\":\"1\"}},[_c('v-btn',{staticClass:\"call\",attrs:{\"icon\":\"\",\"href\":_vm.smshref,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"color\":\"blue\"}},[_vm._v(\"fas fa-sms\")])],1)],1),_c('v-col',{attrs:{\"cols\":\"4\",\"lg\":\"1\"}},[_c('v-btn',{staticClass:\"call\",attrs:{\"icon\":\"\",\"href\":_vm.whatsapphref,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"color\":\"teal\"}},[_vm._v(\"fab fa-whatsapp\")])],1)],1)],1):_vm._e(),(!_vm.isMobile)?_c('CustomerLookup',{attrs:{\"open\":_vm.lookupOpen,\"loadImmediately\":false,\"filterPrefil\":_vm.filterPrefil},on:{\"update:open\":function($event){_vm.lookupOpen=$event},\"selected\":_vm.selected}}):_vm._e(),(_vm.isMobile)?_c('CustomerLookupMobile',{attrs:{\"open\":_vm.lookupOpen,\"loadImmediately\":false,\"filterPrefil\":_vm.filterPrefil},on:{\"update:open\":function($event){_vm.lookupOpen=$event},\"selected\":_vm.selected}}):_vm._e(),(!_vm.isMobile)?_c('CustomerForm',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":_vm.model.customerId},on:{\"update:open\":function($event){_vm.customerFormOpen=$event},\"saved\":_vm.edited}}):_vm._e(),(_vm.isMobile)?_c('CustomerFormMobile',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":_vm.model.customerId},on:{\"update:open\":function($event){_vm.customerFormOpen=$event},\"saved\":_vm.edited}}):_vm._e(),(!_vm.isMobile)?_c('GuestReservationHistoryTable',{attrs:{\"open\":_vm.guestHistoryOpen,\"customerId\":_vm.model.customerId},on:{\"update:open\":function($event){_vm.guestHistoryOpen=$event}}}):_vm._e(),(_vm.isMobile)?_c('GuestReservationHistoryTableMobile',{attrs:{\"open\":_vm.guestHistoryOpen,\"customerId\":_vm.model.customerId},on:{\"update:open\":function($event){_vm.guestHistoryOpen=$event}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"global-properties\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialCustomer,\"watched\":_vm.customer,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"customer-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',{staticStyle:{\"z-index\":\"3\"}},[_c('span',{staticClass:\"customer-form-title\"},[_vm._v(_vm._s(_vm.$t((\"Customer.\" + (!!_vm.customer.id ? \"Editing\" : \"New\")))))])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"customer-form\",attrs:{\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{staticClass:\"isLegalEntity-checkbox\",attrs:{\"label\":_vm.$t('Legal entity')},model:{value:(_vm.customer.isLegalEntity),callback:function ($$v) {_vm.$set(_vm.customer, \"isLegalEntity\", $$v)},expression:\"customer.isLegalEntity\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{staticClass:\"isLegalEntity-checkbox\",attrs:{\"label\":_vm.$t('CustomerForm.IsResident')},model:{value:(_vm.customer.isResident),callback:function ($$v) {_vm.$set(_vm.customer, \"isResident\", $$v)},expression:\"customer.isResident\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('First name') + '*',\"rules\":(_vm.rules.Required || []).concat( (_vm.rules.Name || []))},model:{value:(_vm.customer.firstName),callback:function ($$v) {_vm.$set(_vm.customer, \"firstName\", $$v)},expression:\"customer.firstName\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Middle name'),\"rules\":_vm.rules.Name},model:{value:(_vm.customer.middleName),callback:function ($$v) {_vm.$set(_vm.customer, \"middleName\", $$v)},expression:\"customer.middleName\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Last name') + '*',\"rules\":(_vm.rules.Required || []).concat( (_vm.rules.Name || []))},model:{value:(_vm.customer.lastName),callback:function ($$v) {_vm.$set(_vm.customer, \"lastName\", $$v)},expression:\"customer.lastName\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-radio-group',{attrs:{\"row\":_vm.radioGroupRow,\"rules\":_vm.rules.Required},model:{value:(_vm.customer.genderId),callback:function ($$v) {_vm.$set(_vm.customer, \"genderId\", $$v)},expression:\"customer.genderId\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('Male'),\"value\":1}}),_c('v-radio',{attrs:{\"label\":_vm.$t('Female'),\"value\":2}}),_c('v-radio',{attrs:{\"label\":_vm.$t('Unknown'),\"value\":3}})],1):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Legal entity name') + '*',\"rules\":(_vm.rules.Required || []).concat( (_vm.rules.LegalEntityName || []))},model:{value:(_vm.customer.legalEntityName),callback:function ($$v) {_vm.$set(_vm.customer, \"legalEntityName\", $$v)},expression:\"customer.legalEntityName\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Bussiness Id'),\"rules\":[].concat( (_vm.rules.BusinessId || []) )},model:{value:(_vm.customer.businessId),callback:function ($$v) {_vm.$set(_vm.customer, \"businessId\", $$v)},expression:\"customer.businessId\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Email'),\"rules\":_vm.rules.Email},model:{value:(_vm.customer.eMail),callback:function ($$v) {_vm.$set(_vm.customer, \"eMail\", $$v)},expression:\"customer.eMail\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Telephone number'),\"rules\":_vm.rules.TelephoneNumber,\"placeholder\":\"+385 99 1111 222\"},model:{value:(_vm.customer.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"telephoneNumber\", $$v)},expression:\"customer.telephoneNumber\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Street name') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.StreetName || []))},model:{value:(_vm.customer.streetName),callback:function ($$v) {_vm.$set(_vm.customer, \"streetName\", $$v)},expression:\"customer.streetName\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('House number') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.HouseNumber || []))},model:{value:(_vm.customer.houseNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"houseNumber\", $$v)},expression:\"customer.houseNumber\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Postal code') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.PostalCode || []))},model:{value:(_vm.customer.postalCode),callback:function ($$v) {_vm.$set(_vm.customer, \"postalCode\", $$v)},expression:\"customer.postalCode\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('City') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.City || []))},model:{value:(_vm.customer.city),callback:function ($$v) {_vm.$set(_vm.customer, \"city\", $$v)},expression:\"customer.city\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('CustomerForm.IdDocumentNumber'),\"rules\":_vm.rules.IdentificationDocumentNumber},model:{value:(_vm.customer.identificationDocumentNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"identificationDocumentNumber\", $$v)},expression:\"customer.identificationDocumentNumber\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-select',{attrs:{\"label\":_vm.$t('Identification document type'),\"items\":_vm.identificationDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\"},model:{value:(_vm.customer.identificationDocumentTypeId),callback:function ($$v) {_vm.$set(_vm.customer, \"identificationDocumentTypeId\", $$v)},expression:\"customer.identificationDocumentTypeId\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-select',{attrs:{\"label\":_vm.$t('CustomerForm.CountryOfResidence'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.customer.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.customer, \"countryOfResidenceId\", $$v)},expression:\"customer.countryOfResidenceId\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-select',{attrs:{\"label\":_vm.$t('Country of citizenship'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.customer.citizenshipId),callback:function ($$v) {_vm.$set(_vm.customer, \"citizenshipId\", $$v)},expression:\"customer.citizenshipId\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-select',{attrs:{\"label\":_vm.$t('Country of birth'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.customer.countryOfBirthId),callback:function ($$v) {_vm.$set(_vm.customer, \"countryOfBirthId\", $$v)},expression:\"customer.countryOfBirthId\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('DateField',{attrs:{\"label\":_vm.$t('Date of birth'),\"max\":new Date().toISOString().substr(0, 10),\"activePicker\":'YEAR',\"editable\":true},model:{value:(_vm.customer.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.customer, \"dateOfBirth\", $$v)},expression:\"customer.dateOfBirth\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.customer.isLegalEntity)?_c('v-select',{attrs:{\"label\":_vm.$t('Country') + '*',\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\",\"rules\":_vm.rules.Required},model:{value:(_vm.customer.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.customer, \"countryOfResidenceId\", $$v)},expression:\"customer.countryOfResidenceId\"}}):_vm._e()],1)],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\",\"color\":\"primary\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport {\n CustomerModel,\n} from \"../shared/models/vCustomer\";\nimport { Country } from \"../shared/models/country\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport _ from \"lodash\";\nimport brokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { AxiosResponse } from \"axios\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\n\n@Component({ components: { RightDrawer, DateField } })\nexport default class CustomerFormMobile extends Vue {\n @Prop({ default: null }) customerId!: number | null;\n @Prop({ default: false }) open!: boolean;\n @Prop({ default: undefined }) prefill?: CustomerModel;\n\n fkey = 0;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n }\n\n if (fresh && this.customerId) {\n await this.loadCustomer();\n this.initialCustomer = new CustomerModel();\n } else {\n this.customer = new CustomerModel();\n\n if (this.prefill) {\n this.customer = {\n ...this.customer,\n ...this.prefill,\n };\n }\n\n this.initialCustomer = _.cloneDeep(this.customer);\n }\n }\n\n get radioGroupRow() {\n return window.innerWidth > 370;\n }\n\n @Action(\"codebooks/refreshIdentificationDocumentTypes\")\n refreshIdentificationDocumentTypes?: () => Promise;\n @Getter(\"codebooks/identificationDocumentTypes\")\n identificationDocumentTypes?: IdentificationDocumentType[];\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"codebooks/countries\") _countries?: Country[];\n get countries() {\n if (!this._countries) {\n return [];\n }\n\n return this._countries;\n }\n\n loading = false;\n saving = false;\n\n initialCustomer: CustomerModel = new CustomerModel();\n customer: CustomerModel = new CustomerModel();\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading && !this.saving;\n }\n\n rules = {};\n\n mounted() {\n this.setUpRules();\n if (this.countries && this.countries.length == 0) {\n this.$store.dispatch(\"codebooks/refreshCountries\");\n }\n if (\n !this.identificationDocumentTypes ||\n this.identificationDocumentTypes.length == 0\n ) {\n this.refreshIdentificationDocumentTypes?.();\n }\n }\n\n setUpRules() {\n this.rules = {\n Required: [(value: any) => !!value || this.$t(\"Validation.Required\")],\n Name: [\n (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n ],\n Email: [\n (value: string) =>\n !value ||\n value.length <= 100 ||\n this.$t(\"Validation.MaxLength\", { count: 100 }),\n (value: string) =>\n !value ||\n /^$|.+@.+\\..+/.test(value) || this.$t(\"Validation.EmailFormat\"),\n ],\n LegalEntityName: [\n (value: string) =>\n !value ||\n value.length <= 200 ||\n this.$t(\"Validation.MaxLength\", { count: 200 }),\n ],\n BusinessId: [\n (value: string) =>\n !value ||\n value.length <= 20 ||\n this.$t(\"Validation.MaxLength\", { count: 20 }),\n ],\n TelephoneNumber: [\n (value: string) =>\n !value ||\n value.length <= 100 ||\n this.$t(\"Validation.MaxLength\", { count: 100 }),\n ],\n StreetName: [\n (value: string) =>\n !value ||\n value.length <= 100 ||\n this.$t(\"Validation.MaxLength\", { count: 100 }),\n ],\n HouseNumber: [\n (value: string) =>\n !value ||\n value.length <= 10 ||\n this.$t(\"Validation.MaxLength\", { count: 10 }),\n ],\n PostalCode: [\n (value: string) =>\n !value ||\n value.length <= 10 ||\n this.$t(\"Validation.MaxLength\", { count: 10 }),\n ],\n City: [\n (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n ],\n IdentificationDocumentNumber: [\n (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n ],\n Remarks: [\n (value: string) =>\n !value ||\n value.length <= 500 ||\n this.$t(\"Validation.MaxLength\", { count: 500 }),\n ],\n };\n }\n\n loadCustomer() {\n this.loading = true;\n Vue.axios.get(\"/customers/\" + this.customerId).then((res) => {\n this.customer = res.data;\n\n if (res.data.dateOfBirth) {\n let value = new Date(res.data.dateOfBirth);\n value = new Date(\n Date.UTC(value.getFullYear(), value.getMonth(), value.getDate())\n );\n this.customer.dateOfBirth = value.toISOString().substring(0, 10);\n }\n \n this.initialCustomer = _.cloneDeep(this.customer);\n\n this.loading = false;\n });\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n submit() {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.submitToServer({ ...this.customer }, []);\n }\n\n submitToServer(customer: CustomerModel, overrides: string[]) {\n const handleCodes = [\n \"Customer.BusinessIdNotUniqueInCountry\",\n \"Customer.IdentificationDocumentNotUniqueInCountry\",\n \"Customer.EmailNotUnique\",\n ];\n const adapter = brokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const confirmOverrideNotification = (\n x: AxiosResponse & { handled: string[] }\n ) =>\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submitToServer(customer, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n\n const handleSuccess = (\n messageTextResource: string,\n mode: \"post\" | \"put\"\n ) => (res: any) => {\n this.customer =\n mode === \"post\" ? { ...customer, id: res.data } : customer;\n this.initialCustomer = _.cloneDeep(this.customer);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Customer.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.$emit(\"update:open\", false);\n this.$emit(\"saved\", this.customer);\n };\n\n const isOverriding = overrides.length !== 0;\n\n const mode: \"post\" | \"put\" =\n customer.id && customer.id !== 0 ? \"put\" : \"post\";\n this.saving = true;\n return Vue.axios[mode](\n `/customers`,\n { ...customer, overrideRules: overrides },\n isOverriding ? undefined : { adapter }\n )\n .then(handleSuccess(\"Customer.SaveSuccess\", mode))\n .finally(() => {\n this.saving = false;\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n }\n });\n }\n\n formatDate(date: string | Date) {\n if (!date) return null;\n return this.$d(new Date(date));\n }\n parseDate(date: string) {\n if (!date) return null;\n\n const [month, day, year] = date.split(\"/\");\n return `${year}-${month.padStart(2, \"0\")}-${day.padStart(2, \"0\")}`;\n }\n get dateOfBirth() {\n if (this.customer.dateOfBirth) {\n return this.$d(new Date(this.customer.dateOfBirth));\n }\n\n return \"\";\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerFormMobile.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerFormMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomerFormMobile.vue?vue&type=template&id=65757086&scoped=true&\"\nimport script from \"./CustomerFormMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomerFormMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CustomerFormMobile.vue?vue&type=style&index=0&id=65757086&scoped=true&lang=scss&\"\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 \"65757086\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VForm,VProgressLinear,VRadio,VRadioGroup,VRow,VSelect,VTextField,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{staticClass:\"global-properties\",attrs:{\"open\":_vm.open}},[(!_vm.customerFormOpen)?_c('v-card',{staticClass:\"actions-wrapper-top\",attrs:{\"tile\":\"\"}},[_c('v-icon',{staticClass:\"header-icon\",attrs:{\"size\":\"18\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"fas fa-arrow-left\")]),_c('v-spacer'),_c('div',{staticClass:\"object-name\"},[_vm._v(_vm._s(_vm.$t(\"Customers\")))]),_c('v-spacer'),_c('v-icon',{staticClass:\"mr-8\",attrs:{\"size\":\"18px\"},on:{\"click\":function($event){_vm.customerFormOpen = !_vm.customerFormOpen}}},[_vm._v(\"fas fa-plus\")]),_c('v-icon',{staticClass:\"header-icon\",attrs:{\"size\":\"18\"},on:{\"click\":function($event){_vm.filterModalOpen = !_vm.filterModalOpen}}},[_vm._v(\"fas fa-fw fa-filter\")])],1):_vm._e(),_c('v-data-table',{staticClass:\"global-property-filter-table\",attrs:{\"loading\":_vm.loading,\"items\":_vm.list.result,\"options\":_vm.options,\"item-key\":\"propertyId\",\"item-name\":\"name\",\"hide-default-footer\":\"\",\"hide-default-header\":\"\",\"fixed-header\":\"\",\"disable-sort\":\"\",\"show-select\":\"\",\"dense\":\"\",\"disable-pagination\":\"\"},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"item.data-table-select\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"custom-row\",on:{\"click\":function($event){return _vm.selectCustomer(item)}}},[_c('div',{staticClass:\"row-switch\"},[_c('v-icon',[_vm._v(\"fas fa-user-check\")])],1),_c('div',{staticClass:\"row-text\"},[_c('div',{staticClass:\"text-upper\"},[_vm._v(_vm._s(item.name))]),(_vm.showEmail)?_c('div',{staticClass:\"text-upper email\"},[_vm._v(_vm._s(item.eMail))]):_vm._e(),(_vm.isAllowedToReadTelephoneNumber)?_c('div',{staticClass:\"text-upper\"},[_vm._v(_vm._s(item.telephoneNumber)+\" \"+_vm._s(item.countryOfResidenceName))]):_vm._e()])])]}}])}),_c('MobileFilterModal',{attrs:{\"open\":_vm.filterModalOpen,\"filterType\":'customer',\"filterPrefill\":_vm.filters},on:{\"update:open\":function($event){_vm.filterModalOpen=$event},\"filterUpdated\":function($event){return _vm.updateFilter($event)}}}),_c('CustomerFormMobile',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":null,\"prefill\":_vm.customerFormPrefilData},on:{\"update:open\":function($event){_vm.customerFormOpen=$event},\"saved\":_vm.newCustomerCreated}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport MobileFilterModal from \"@/components/misc/MobileFilterModal.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Country } from \"@/shared/models/country\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport VCustomer, { CustomerModel } from \"@/shared/models/vCustomer\";\nimport CustomerFormMobile from \"@/components/CustomerFormMobile.vue\";\nimport _ from \"lodash\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { DataOptions } from \"vuetify\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({\n components: { RightDrawer, MobileFilterModal, CustomerFormMobile },\n})\nexport default class CustomerLookupMobile extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop({ default: false }) multiple?: boolean;\n @Prop({ default: null }) filterPrefil?: any;\n @Prop({ default: true }) loadImmediately?: boolean;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Watch(\"open\")\n openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old && this.filterPrefil) {\n this.filters = {\n ...this.filters,\n ...this.filterPrefil,\n };\n }\n }\n\n customerFormOpen = false;\n\n async created() {\n const promises = [];\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries());\n }\n\n await Promise.all(promises);\n }\n \n mounted() {\n if (this.loadImmediately){\n this.load();\n }\n }\n\n filters = {\n name: \"\",\n eMail: \"\",\n telephoneNumber: \"\",\n countryOfResidenceId: undefined as number | undefined,\n excludeIds: [] as number[],\n };\n @Watch(\"filters\", { deep: true })\n filtersChanged() {\n this.debouncedLoad();\n }\n\n get filtersForParams() {\n return {\n ...this.filters,\n excludeIds: this.filters.excludeIds.join(\",\"),\n };\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n loading = false;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 25,\n sortBy: [\"orderByName\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n @Watch(\"options\", { deep: true })\n optionsChanged(fresh: DataOptions, old: DataOptions) {\n if (!_.isEqual(fresh, old)) {\n this.load();\n }\n }\n\n get showEmail() {\n return policyChecker(\"READ_CUSTOMER_EMAIL\")(this.claims)\n }\n\n get isAllowedToReadTelephoneNumber() {\n return policyChecker(\"READ_CUSTOMER_TELEPHONE_NUMBER\")(this.claims)\n }\n\n get queryParams() {\n return {\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == 'name' ? [\"orderByName\"] : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filtersForParams,\n };\n }\n\n get customerFormPrefilData() {\n const names = (this.filters.name ?? \"\").split(\" \");\n return {\n firstName: names.splice(0, 1)[0] || \"\",\n lastName: names.join(\" \"),\n eMail: this.filters.eMail,\n telephoneNumber: this.filters.telephoneNumber,\n countryOfResidenceId: this.filters.countryOfResidenceId,\n };\n }\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/customers\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n selectCustomer(item: VCustomer) {\n this.$emit(\"selected\", item);\n this.$emit(\"update:open\", false);\n }\n\n newCustomerCreated(customer: CustomerModel) {\n this.$emit(\"selected\", customer);\n this.$emit(\"update:open\", false);\n }\n\n filterModalOpen = false;\n\n updateFilter(filters: any) {\n this.filters.name = filters.nameFilter;\n this.filters.eMail = filters.eMailFilter;\n this.filters.telephoneNumber = filters.telephoneNumberFilter;\n }\n\n close() {\n this.resetFilters();\n this.$emit(\"update:open\", false);\n }\n\n resetFilters()\n {\n this.filters.name = \"\";\n this.filters.eMail = \"\";\n this.filters.telephoneNumber = \"\";\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerLookupMobile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerLookupMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomerLookupMobile.vue?vue&type=template&id=0c78ca4f&scoped=true&\"\nimport script from \"./CustomerLookupMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomerLookupMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CustomerLookupMobile.vue?vue&type=style&index=0&id=0c78ca4f&scoped=true&lang=scss&\"\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 \"0c78ca4f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VDataTable,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.GuestHistory\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('div',{staticClass:\"reservations\"},[_c('SortableHeadersTable',{ref:\"dataTable\",attrs:{\"fixed-header\":\"\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [25, 50, 75, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"guestReservationHistory\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event}},scopedSlots:_vm._u([{key:\"header.period\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrDepartureDate),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrDepartureDate\", $$v)},expression:\"filters.arrivalOrDepartureDate\"}})]}},{key:\"item.period\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(new Date(item.arrivalDate).getDate() == new Date(item.departureDate).getDate() ? _vm.$d(new Date(item.arrivalDate)) : _vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.accomodationUnitTypeName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.accomodationUnitName),callback:function ($$v) {_vm.$set(_vm.filters, \"accomodationUnitName\", $$v)},expression:\"filters.accomodationUnitName\"}})]}},{key:\"item.accomodationUnitTypeName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('TableCellUnitTypeDisplay',{attrs:{\"item\":item}})]}},{key:\"header.reservationId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"type\":\"number\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationId),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationId\", _vm._n($$v))},expression:\"filters.reservationId\"}})]}},{key:\"item.pricePerNight\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.pricePerNight, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},(_vm.tenantUsesServiceType)?{key:\"header.serviceTypeName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.serviceTypeName),callback:function ($$v) {_vm.$set(_vm.filters, \"serviceTypeName\", $$v)},expression:\"filters.serviceTypeName\"}})]}}:null,(_vm.tenantUsesServiceType)?{key:\"item.serviceTypeName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.serviceTypeName))])]}}:null,{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-concierge-bell\"}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport GuestReservationHistory from \"@/shared/models/guestReservationHistory\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport ReservationModal from \"@/components/reservation-form/ReservationModal.vue\";\nimport * as _ from \"lodash\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport TableCellUnitTypeDisplay from \"@/components/misc/TableCellUnitTypeDisplay.vue\";\nimport { Getter } from \"vuex-class\";\n\n@Component({\n components: {\n SortableHeadersTable,\n DateField,\n ReservationModal,\n NoData,\n RequireRole,\n TableCellUnitTypeDisplay\n },\n})\nexport default class GuestReservationHistoryTable extends Vue {\n @PropSync(\"open\", { default: false }) isOpen?: boolean;\n @Prop() customerId?: number;\n\n @Getter(\"appParams/reservationTenantUsesServiceTypes\") tenantUsesServiceType?: boolean;\n\n settingsOpen = false;\n headers: SortableTableHeader[] = []\n setupHeaders() {\n this.headers = [\n {\n text: \"Period\",\n value: \"period\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"arrivalDate\", \"departureDate\", \"numberOfNights\"],\n },\n {\n text: \"Accomodation unit\",\n value: \"accomodationUnitTypeName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\n \"accomodationUnitTypeName\",\n \"accomodationUnitName\",\n \"propertyName\",\n ],\n },\n {\n text: \"Reservation Id\",\n value: \"reservationId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"reservationId\"],\n },\n {\n text: \"Price per night\",\n value: \"pricePerNight\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"pricePerNight\", \"currencyCode\"],\n },\n ...(this.tenantUsesServiceType ? [\n {\n text: \"Service type\",\n value: \"serviceTypeName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"serviceTypeName\"],\n }\n ] : []),\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n created() {\n this.setupHeaders();\n } \n\n filters = {\n arrivalOrDepartureDate: \"\",\n accomodationUnitName: \"\",\n serviceTypeName: \"\",\n reservationId: \"\"\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old) && this.isOpen) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 25,\n sortBy: [\"period\"],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if ((!this.initLoaded || !_.isEqual(fresh, old)) && this.isOpen) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n @Watch(\"open\")\n openChanged(fresh: boolean) {\n if(fresh && this.customerId) {\n this.load();\n }\n }\n loading = true;\n\n debouncedLoad = _.debounce(this.load, 500);\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n async load(): Promise> {\n this.loading = true;\n return this.axios.get>(\"/reservations/GetGuestReservationHistory\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == \"period\" ? [\"arrivalDate\"] : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n customerId: this.customerId\n };\n }\n\n closeModal() {\n this.isOpen = false;\n }\n\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTable.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GuestReservationHistoryTable.vue?vue&type=template&id=0e29eb9d&scoped=true&\"\nimport script from \"./GuestReservationHistoryTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./GuestReservationHistoryTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GuestReservationHistoryTable.vue?vue&type=style&index=0&id=0e29eb9d&scoped=true&lang=css&\"\nimport style1 from \"./GuestReservationHistoryTable.vue?vue&type=style&index=1&id=0e29eb9d&scoped=true&lang=scss&\"\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 \"0e29eb9d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VDialog,VIcon,VSpacer,VTextField,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\",\"eager\":\"\",\"content-class\":\"mobile-modal\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-fade-transition',[(_vm.loading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"tile\":\"\",\"height\":\"100vh\"}},[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.GuestHistory\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('div',{staticClass:\"top-row small-header\"},[_c('div',[_c('v-btn',{staticClass:\"button\",on:{\"click\":function($event){return _vm.changeSortOrder()}}},[(_vm.sortOrder === 'asc')?_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fas fa-arrow-up\")]):_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fas fa-arrow-down\")])],1),_c('v-btn',{staticClass:\"button\",on:{\"click\":function($event){_vm.filterModalOpen = !_vm.filterModalOpen}}},[_c('v-icon',{staticClass:\"ml-3\",attrs:{\"size\":\"18\"}},[_vm._v(\"fas fa-fw fa-filter\")])],1)],1)]),_c('ScrollLoader',{attrs:{\"loadOffset\":100,\"element\":_vm.scrollEl},on:{\"offsetReached\":function($event){return _vm.getMoreReservations()}}},[_c('div',{ref:\"unitsWrapper\",staticClass:\"units-wrapper small-header\"},[_c('v-row',{staticClass:\"custom-gutters\"},_vm._l((_vm.reservations.result),function(unit,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\"}},[_c('GuestReservationHistoryTableMobileTile',{attrs:{\"unit\":unit}})],1)}),1)],1)]),_c('MobileFilterModal',{attrs:{\"open\":_vm.filterModalOpen,\"filterType\":'guestHistory'},on:{\"update:open\":function($event){_vm.filterModalOpen=$event},\"filterUpdated\":function($event){return _vm.updateFilter($event)}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"wrapper\",attrs:{\"id\":\"card\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"icon-text-wrapper-colored\"},[_c('v-icon',{staticClass:\"colored-icon\",attrs:{\"size\":\"12\"}},[_vm._v(\"fas fa-calendar-day\")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.reservationDateUI)+\" ( \"+_vm._s(_vm.$tc(\"{count} of nights\", _vm.unit.numberOfNights ))+\")\")])],1)])],1),_c('v-row',[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"info-wrapper\"},[_c('div',[_c('div',{staticClass:\"text-bold\"},[_vm._v(_vm._s(_vm.unit.propertyName))]),_c('div',{staticClass:\"text-colored\"},[_c('div',[_vm._v(_vm._s(_vm.unit.accomodationUnitName)+\" \"+_vm._s(_vm.unit.accomodationUnitTypeName))])]),_c('div',{staticClass:\"text-bold\"},[_vm._v(_vm._s(_vm.$n(_vm.unit.pricePerNight, { style: \"currency\", currency: _vm.currencyCodeUI, currencyDisplay: \"code\", }))+\" \")])]),_c('div',{staticClass:\"text\"},[_c('div',[_vm._v(\"ID \"+_vm._s(_vm.unit.reservationId))]),_c('div',[_vm._v(_vm._s(_vm.unit.serviceTypeName))])])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { DateTime } from \"luxon\";\n\n@Component({\n components: {\n },\n})\n\nexport default class GuestReservationHistoryTableMobileTile extends Vue {\n @Prop() unit?: any;\n\n get reservationDateUI() {\n const arrivalDate = DateTime.fromISO(this.unit.arrivalDate);\n\n if(this.unit.arrivalDate !== undefined)\n {\n return arrivalDate.day + \". \" + arrivalDate.month + \". - \" \n + this.$d(new Date(this.unit.departureDate));\n }\n else {\n return this.$d(new Date(this.unit.date));\n }\n }\n\n get currencyCodeUI() {\n return this.unit.currencyCode ?? \"EUR\";\n }\n}\n\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTableMobileTile.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTableMobileTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GuestReservationHistoryTableMobileTile.vue?vue&type=template&id=c2edd3b2&scoped=true&\"\nimport script from \"./GuestReservationHistoryTableMobileTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./GuestReservationHistoryTableMobileTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GuestReservationHistoryTableMobileTile.vue?vue&type=style&index=0&id=c2edd3b2&scoped=true&lang=scss&\"\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 \"c2edd3b2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCol,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport GuestReservationHistoryTableMobileTile from \"./GuestReservationHistoryTableMobileTile.vue\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nimport MobileFilterModal from \"@/components/misc/MobileFilterModal.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport GuestReservationHistory from \"@/shared/models/guestReservationHistory\";\n\n@Component({\n components: {\n GuestReservationHistoryTableMobileTile,\n MobileFilterModal,\n ScrollLoader,\n },\n})\n\nexport default class GuestReservationHistoryTableMobile extends Vue {\n @PropSync(\"open\", { default: false }) isOpen?: boolean;\n @Prop() customerId?: number;\n\n sortOrder = \"desc\";\n\n filters = {\n arrivalOrDepartureDate: \"\",\n accomodationUnitName: \"\",\n serviceTypeName: \"\",\n reservationId: \"\"\n };\n\n updateFilter(filters: any) {\n this.filters.reservationId = filters.reservationId;\n this.filters.arrivalOrDepartureDate = filters.arrivalOrDepartureDate;\n this.filters.accomodationUnitName = filters.accomodationUnitName;\n this.filters.serviceTypeName = filters.serviceTypeName;\n \n this.getReservations();\n }\n\n @Watch(\"open\")\n async openChanged(fresh: boolean, old: boolean) {\n if(fresh && !old && this.customerId) {\n await this.getReservations();\n }\n }\n\n @Watch(\"sortOrder\")\n async sortOrderChanged(fresh: string)\n {\n if(fresh === \"asc\")\n {\n this.options.sortAsc[0] = true;\n }\n if(fresh === \"desc\")\n {\n this.options.sortAsc[0] = false;\n }\n await this.getReservations();\n }\n\n reservations: ListModel = {\n count: 0,\n result: [],\n };\n numberOfItems = 25;\n\n loading = false;\n done = false;\n\n async getReservations(): Promise> {\n this.loading = true;\n return Vue.axios.get>(\"/reservations/GetGuestReservationHistory\", {\n params: this.queryParams(),\n })\n .then((res) => {\n if(res.data.result.length < this.numberOfItems)\n {\n this.done = true;\n }\n this.reservations = res.data;\n return this.reservations;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n async getMoreReservations()\n {\n if(!this.loading && !this.done)\n {\n this.numberOfItems += 25;\n await this.getReservations();\n }\n }\n\n options = {\n sortBy: [\"arrivalDate\"],\n sortAsc: [false]\n }\n\n queryParams() {\n return {\n $skip: 0,\n $top: this.numberOfItems,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortAsc\n ),\n $count: true,\n ...this.filters,\n customerId: this.customerId\n }\n }\n\n scrollEl = null as HTMLElement | null;\n mounted() {\n if(this)\n {\n this.scrollEl = (this.$refs.unitsWrapper as HTMLElement);\n }\n }\n\n firstUpper(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1)\n }\n\n changeSortOrder()\n {\n if(this.sortOrder === \"asc\")\n {\n this.sortOrder = \"desc\";\n }\n else {\n this.sortOrder = \"asc\";\n }\n }\n\n scrollId: string | null = null;\n\n filterModalOpen = false;\n\n closeModal() {\n this.isOpen = false;\n }\n}\n\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTableMobile.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTableMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GuestReservationHistoryTableMobile.vue?vue&type=template&id=30262ee2&scoped=true&\"\nimport script from \"./GuestReservationHistoryTableMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./GuestReservationHistoryTableMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GuestReservationHistoryTableMobile.vue?vue&type=style&index=0&id=30262ee2&scoped=true&lang=scss&\"\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 \"30262ee2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCol,VDialog,VFadeTransition,VIcon,VOverlay,VProgressCircular,VRow,VSpacer,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport { ReservationModel, ReservationCustomerModel, DistributionChannelTypesEnum } from \"./types\";\nimport { Country } from \"@/shared/models/country\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport CustomerForm from \"@/components/CustomerForm.vue\";\nimport CustomerFormMobile from \"@/components/CustomerFormMobile.vue\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport CustomerLookupMobile from \"@/components/misc/CustomerLookupMobile.vue\";\nimport * as _ from \"lodash\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { cleanUpPhoneNumber, cleanUpLeadingZeroes, appendPrefixIfMissing } from \"@/shared/commonFunctions\";\nimport GuestReservationHistoryTable from \"../GuestReservationHistoryTable.vue\";\nimport GuestReservationHistoryTableMobile from \"../GuestReservationHistoryTableMobile.vue\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({\n components: {\n RightDrawer,\n CustomerForm,\n CustomerFormMobile,\n CustomerLookup,\n CustomerLookupMobile,\n GuestReservationHistoryTable,\n GuestReservationHistoryTableMobile\n },\n})\nexport default class ReservationFormHolder extends Vue {\n @PropSync(\"reservation\") model?: ReservationModel | null;\n\n @Prop() isMobile?: boolean;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n\n lookupOpen = false;\n customerFormOpen = false;\n guestHistoryOpen = false;\n\n @Watch(\"model\", { immediate: true })\n reservationChanged() {\n this.selectedCustomer = _.cloneDeep(this.model?.customer ?? null);\n }\n\n @Watch(\"model.customer.name\")\n nameWatch(fresh: string) {\n if (!fresh && this.model) {\n this.model.customerId = 0;\n this.model.customer = new ReservationCustomerModel();\n this.selectedCustomer = null;\n }\n }\n\n get isAllowedGuestHistory() {\n return (\n policyChecker(\"GUEST_HISTORY\")(this.claims)\n );\n }\n\n get isAllowedToEditEmail() {\n return (\n policyChecker(\"EDIT_RESERVATION_HOLDER_EMAIL\")(this.claims)\n );\n }\n\n get isOwnerLevel3() {\n return (\n policyChecker(\"OWNER_LEVEL_3\")(this.claims)\n );\n }\n\n get showEmail() {\n return policyChecker(\"READ_CUSTOMER_EMAIL\")(this.claims);\n }\n\n get isAllowedToSeeTelephoneNumber() {\n return policyChecker(\"READ_CUSTOMER_TELEPHONE_NUMBER\")(this.claims);\n }\n\n async created() {\n const promises = [];\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries());\n }\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n promises.push(this.refreshSalesChannels());\n }\n await Promise.all(promises);\n }\n\n selectedCustomer: any = null;\n selected(customer: VCustomer | CustomerModel) {\n if (this.model) {\n const identificationNumber = (customer as VCustomer).name ? (customer as VCustomer).identificationNumber : ((customer as CustomerModel).isLegalEntity ? (customer as CustomerModel).businessId : (customer as CustomerModel).identificationDocumentNumber);\n\n this.model.customerId = customer.id;\n this.model.customer = {\n id: customer.id,\n name: (customer as VCustomer).name\n ? (customer as VCustomer).name\n : (customer as CustomerModel).isLegalEntity\n ? ((customer as CustomerModel).legalEntityName ?? \"\")\n : (customer as CustomerModel).firstName +\n \" \" +\n (customer as CustomerModel).lastName,\n eMail: customer.eMail || \"\",\n telephoneNumber: customer.telephoneNumber || \"\",\n countryOfResidenceId: customer.countryOfResidenceId,\n isLegalEntity: (customer as VCustomer).name ? false : (customer as CustomerModel).isLegalEntity,\n identificationNumber: identificationNumber ?? \"\",\n status: true,\n };\n const salesChannelDefault = this.salesChannels?.find(x => x.defaultCustomerId == this.model?.customerId);\n if(salesChannelDefault){\n this.model.distributionChannelTypeId = DistributionChannelTypesEnum.PartnerAgency;\n this.model.salesChannelId = salesChannelDefault.id\n }\n\n this.selectedCustomer = _.cloneDeep(this.model.customer);\n }\n }\n\n get rules() {\n return {\n reservationHolder: (value: any) =>\n !!value || this.$t(\"Reservation.HolderIsRequired\"),\n };\n }\n\n get phonehref()\n {\n let phoneNumber = this.model ? cleanUpPhoneNumber(this.model.customer.telephoneNumber) : \"\";\n\n phoneNumber = appendPrefixIfMissing(phoneNumber);\n\n return \"tel:\" + phoneNumber;\n }\n\n get smshref()\n {\n let phoneNumber = this.model ? cleanUpPhoneNumber(this.model.customer.telephoneNumber) : \"\";\n\n phoneNumber = appendPrefixIfMissing(phoneNumber);\n\n return \"sms:\" + phoneNumber;\n }\n\n get whatsapphref()\n {\n return this.model ? \"https://wa.me/\" + cleanUpLeadingZeroes(cleanUpPhoneNumber(this.model.customer.telephoneNumber)) : \"\";\n }\n\n get hasPhoneNumber()\n {\n return this.model?.customer.telephoneNumber ? this.model?.customer.telephoneNumber.trim().length ?? 0 > 0 : false;\n }\n\n get filterPrefil() {\n return {\n name: this.model?.customer.name ?? \"\",\n eMail: this.model?.customer.eMail ?? \"\",\n telephoneNumber: this.model?.customer.telephoneNumber ?? \"\",\n };\n }\n\n onInputLostFocus() {\n if (this.selectedCustomer && this.model) {\n this.model.customer.name = this.selectedCustomer.name;\n this.model.customer.eMail = this.selectedCustomer.eMail;\n this.model.customer.telephoneNumber = this.selectedCustomer.telephoneNumber;\n }\n }\n\n edited(customer: CustomerModel) {\n if (\n this.model &&\n this.model.customerId &&\n this.model.customerId == customer.id\n ) {\n this.model.customer.name =\n customer.firstName +\n (customer.middleName ? ` ${customer.middleName}` : \"\") +\n ` ${customer.lastName}`;\n this.model.customer.eMail = customer.eMail ?? \"\";\n this.model.customer.telephoneNumber = customer.telephoneNumber ?? \"\";\n this.model.customer.countryOfResidenceId = customer.countryOfResidenceId;\n\n this.selectedCustomer = _.cloneDeep(this.model.customer);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormHolder.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormHolder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormHolder.vue?vue&type=template&id=28b9ee24&scoped=true&\"\nimport script from \"./ReservationFormHolder.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormHolder.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormHolder.vue?vue&type=style&index=0&id=28b9ee24&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 \"28b9ee24\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.isAllowedToModifyDistributionChannel)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{class:{ 'mobile-text': _vm.isMobile },attrs:{\"label\":_vm.isMobile\n ? _vm.$t('DistributionChannel.Short') + '*'\n : _vm.$t('DistributionChannel') + '*',\"items\":_vm.allowedDistributionChannelTypes,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"disabled\":!!_vm.model.id && !!_vm.model.otareservationId,\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},on:{\"input\":function($event){return _vm.distributionChannelsChanged()}},model:{value:(_vm.model.distributionChannelTypeId),callback:function ($$v) {_vm.$set(_vm.model, \"distributionChannelTypeId\", $$v)},expression:\"model.distributionChannelTypeId\"}})],1):_vm._e(),(_vm.isAllowedToModifyDistributionChannel)?_c('v-col',{attrs:{\"cols\":\"6\"}},[(\n _vm.model.distributionChannelTypeId === 1 ||\n _vm.model.distributionChannelTypeId === 10\n )?_c('v-select',{class:{ 'mobile-text': _vm.isMobile },attrs:{\"disabled\":!!_vm.model.id && !!_vm.model.otareservationId,\"label\":_vm.isMobile\n ? _vm.$t('Sales channel.Short') + '*'\n : _vm.$t('Sales channel') + '*',\"items\":_vm.otas,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.specificOtaRequired]},on:{\"input\":function($event){return _vm.otaChanged()}},model:{value:(_vm.model.otaid),callback:function ($$v) {_vm.$set(_vm.model, \"otaid\", $$v)},expression:\"model.otaid\"}}):_vm._e(),(\n _vm.model.distributionChannelTypeId === 7 ||\n _vm.model.distributionChannelTypeId === 5\n )?_c('v-select',{attrs:{\"label\":_vm.isMobile\n ? _vm.$t('Sales channel.Short') +\n (_vm.model.distributionChannelTypeId === 7 ? '*' : '')\n : _vm.$t('Sales channel') +\n (_vm.model.distributionChannelTypeId === 7 ? '*' : ''),\"items\":_vm.salesChannels,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":_vm.model.distributionChannelTypeId === 5,\"rules\":_vm.model.distributionChannelTypeId === 7 ? [_vm.rules.required] : []},on:{\"input\":function($event){return _vm.salesChannelChanged()}},model:{value:(_vm.model.salesChannelId),callback:function ($$v) {_vm.$set(_vm.model, \"salesChannelId\", $$v)},expression:\"model.salesChannelId\"}}):_vm._e()],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Booking date'),\"type\":\"date\",\"btn\":false,\"shouldBeConfirmed\":\"\",\"max\":_vm.bookingDateMaxDate,\"outlined\":\"\",\"dense\":\"\",\"rules\":[\n _vm.rules.bookingDateBeforeArrival(_vm.bookingDateNotAfterArival),\n _vm.rules.bookingDateBeforeOptionExpiration(\n _vm.bookingDateNotAfterOptionExpiration\n ) ]},model:{value:(_vm.model.bookingDate),callback:function ($$v) {_vm.$set(_vm.model, \"bookingDate\", $$v)},expression:\"model.bookingDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(!_vm.isMobile)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"300\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('div',_vm._g({},on),[_c('DateField',{attrs:{\"label\":_vm.$t('Period') + '*',\"range\":\"\",\"disabled\":_vm.model.statusId == 5,\"hint\":_vm.stayPeriodDatesText,\"outlined\":\"\",\"dense\":\"\",\"rules\":[\n _vm.rules.period(!!_vm.model.arrivalDate && !!_vm.model.departureDate) ]},on:{\"input\":_vm.synchronizeStayPeriodDates,\"isConfirmed\":_vm.stayDateChanged},model:{value:(_vm.internalPeriod),callback:function ($$v) {_vm.internalPeriod=$$v},expression:\"internalPeriod\"}})],1)]}}],null,false,4269461237)},[_vm._v(\" \"+_vm._s(_vm.$t(\"ReservationForm.DepartureDate.Tooltip\"))+\" \")]):_c('DateField',{attrs:{\"label\":_vm.$t('Period') + '*',\"range\":\"\",\"disabled\":_vm.model.statusId == 5,\"hint\":_vm.stayPeriodDatesText,\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.period(!!_vm.model.arrivalDate && !!_vm.model.departureDate)]},on:{\"input\":_vm.synchronizeStayPeriodDates,\"isConfirmed\":_vm.stayDateChanged},model:{value:(_vm.internalPeriod),callback:function ($$v) {_vm.internalPeriod=$$v},expression:\"internalPeriod\"}})],1),(_vm.isAllowedToReadReservationStatus)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reservation.Status'),\"items\":_vm.allowedReservationStatues,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"readonly\":(_vm.model.statusId != 1 && _vm.model.statusId != 2) || !!_vm.model.id,\"disabled\":!!_vm.model.id,\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.model.statusId),callback:function ($$v) {_vm.$set(_vm.model, \"statusId\", $$v)},expression:\"model.statusId\"}})],1):_vm._e(),(_vm.model.statusId == 1)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Reservation.OptionExpirationDate') + '*',\"max\":_vm.optionExpirationMaxDate,\"outlined\":\"\",\"dense\":\"\",\"rules\":[\n _vm.rules.optionExpiration,\n _vm.rules.optionExpirationBeforeArrival(\n _vm.optionExpirationNotAfterArrival\n ) ]},model:{value:(_vm.model.optionExpirationDate),callback:function ($$v) {_vm.$set(_vm.model, \"optionExpirationDate\", $$v)},expression:\"model.optionExpirationDate\"}})],1):_vm._e(),(_vm.model.statusId == 3)?_c('v-col',{attrs:{\"cols\":_vm.model.isCancelledWithinFreeCancellationPeriod ? 12 : 10,\"md\":_vm.model.isCancelledWithinFreeCancellationPeriod ? 6 : 5}},[_c('DateField',{attrs:{\"label\":_vm.$t('Cancelation date') + '*',\"outlined\":\"\",\"dense\":\"\",\"disabled\":\"\"},model:{value:(_vm.model.cancellationDate),callback:function ($$v) {_vm.$set(_vm.model, \"cancellationDate\", $$v)},expression:\"model.cancellationDate\"}})],1):_vm._e(),(\n _vm.model.statusId == 3 && !_vm.model.isCancelledWithinFreeCancellationPeriod\n )?_c('v-col',{attrs:{\"cols\":!_vm.model.isCancelledWithinFreeCancellationPeriod ? 2 : 0,\"md\":\"1\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"300\",\"open-delay\":\"300\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"is-cancelled-within-free-cancellation-period-indicator\"},on),[_c('v-icon',{attrs:{\"medium\":\"\"}},[_vm._v(\" fa fa-exclamation \")])],1)]}}],null,false,3643187007)},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.IncurredCancellationCharges\"))+\" \")])],1):_vm._e(),_c('v-row',{staticClass:\"payment-means-row\",attrs:{\"dense\":\"\"}},[(_vm.isAllowedToReadPaymentMeans)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":_vm.model.id && _vm.model.hasSavedCreditCard ? 5 : 6}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reservation.PaymentMeans'),\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}],null,false,3100788329),model:{value:(_vm.model.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.model, \"paymentMeansId\", $$v)},expression:\"model.paymentMeansId\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":_vm.model.id && _vm.model.hasSavedCreditCard ? 5 : 6}},[(_vm.showCardTypeSelection)?_c('v-select',{attrs:{\"label\":_vm.$t('Reservation.CardTypes'),\"items\":_vm.cardTypes,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.model.cardTypeId),callback:function ($$v) {_vm.$set(_vm.model, \"cardTypeId\", $$v)},expression:\"model.cardTypeId\"}}):_vm._e()],1),(!_vm.isMobile)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"1\"}},[(_vm.model.id && _vm.model.hasSavedCreditCard)?_c('CreditCardInfoModal',{attrs:{\"reservationId\":_vm.model.id,\"buttonType\":\"icon\"}}):_vm._e()],1):_vm._e(),(!_vm.isMobile)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"1\"}},[(_vm.model.id && _vm.model.hasSavedCreditCard)?_c('PaymentGatewayTransactionLogModal',{attrs:{\"reservationId\":_vm.model.id,\"buttonType\":\"icon\"}}):_vm._e()],1):_vm._e()],1),(!_vm.isMobile)?_c('v-col',{staticClass:\"d-flex justify-space-between\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"numeric-picker\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfUnits\"))+\" \")]),_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"300\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('div',_vm._g({},on),[_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},model:{value:(_vm.model.numberOfUnits),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfUnits\", $$v)},expression:\"model.numberOfUnits\"}})],1)]}}],null,false,3878040140)},[_vm._v(\" \"+_vm._s(_vm.$t(\"ReservationForm.IncreaseUnitNumber.Tooltip\"))+\" \")])],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfAdults\"))+\" \"),_c('NumericPicker',{attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},model:{value:(_vm.numberOfAdults),callback:function ($$v) {_vm.numberOfAdults=$$v},expression:\"numberOfAdults\"}})],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfChildren\"))+\" \"),_c('NumericPicker',{attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},model:{value:(_vm.numberOfChildren),callback:function ($$v) {_vm.numberOfChildren=$$v},expression:\"numberOfChildren\"}})],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfPets\"))+\" \"),_c('NumericPicker',{attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},model:{value:(_vm.numberOfPets),callback:function ($$v) {_vm.numberOfPets=$$v},expression:\"numberOfPets\"}})],1)]):_c('v-col',{staticClass:\"d-flex persons-column-mobile\",attrs:{\"cols\":\"12\"}},[_c('v-row',{staticClass:\"mb-2 justify-space-between\",attrs:{\"dense\":\"\"}},[_c('div',{staticClass:\"numeric-picker\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfUnits\"))+\" \")]),_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive],\"isMobile\":_vm.isMobile},model:{value:(_vm.model.numberOfUnits),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfUnits\", $$v)},expression:\"model.numberOfUnits\"}})],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfAdults\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive],\"isMobile\":_vm.isMobile},model:{value:(_vm.model.numberOfAdults),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfAdults\", $$v)},expression:\"model.numberOfAdults\"}})],1)]),_c('v-row',{staticClass:\"justify-space-between\",attrs:{\"dense\":\"\"}},[_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfChildren\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive],\"isMobile\":_vm.isMobile},model:{value:(_vm.model.numberOfChildren),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfChildren\", $$v)},expression:\"model.numberOfChildren\"}})],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfPets\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive],\"isMobile\":_vm.isMobile},model:{value:(_vm.model.numberOfPets),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfPets\", $$v)},expression:\"model.numberOfPets\"}})],1)])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"persistent\":\"\",\"scrollable\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.buttonType == 'button')?_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\"transaction log --txt\")]):_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.open = true}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fas fa-history\")])],1)]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"PaymentGatewayTransactionLog.Title\"))+\" \")])]}}]),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"PaymentGatewayTransactionLog.Title\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.open = !_vm.open}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',[_c('v-data-table',{staticClass:\"log-table\",attrs:{\"headers\":_vm.translatedHeaders,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"fixed-header\":\"\",\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] }},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"item.timeStamp\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.formatTimezoneFromUtcToLocal(new Date(item.timeStamp)))+\" \")]}},{key:\"item.transactionKind\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(item.transactionKind))+\" \")]}},{key:\"item.description\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(item.description))+\" \")]}},{key:\"item.amount\",fn:function(ref){\nvar item = ref.item;\nreturn [(\n item.amount != null &&\n item.amount != undefined &&\n item.currencyCode\n )?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.amount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")]):_c('div')]}}])})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport * as _ from \"lodash\";\nimport { formatDateTimeAccordingToTimeZoneOrUTC } from \"@/shared/dateFormatUtils\";\nimport { Getter } from \"vuex-class\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\n\nexport interface PaymentGatewayTransactionLogItemModel {\n reservationId: number;\n paymentGateway: string;\n user: string;\n transactionKind: string;\n timeStamp: string;\n internalReference: string;\n isSuccess: boolean;\n description: string;\n}\n\n@Component\nexport default class PaymentGatewayTransactionLogModal extends Vue {\n @Getter(\"language/language\") language?: string;\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n\n @Prop({ default: \"icon\" }) buttonType?: \"icon\" | \"button\";\n @Prop({ default: 0 }) reservationId?: number;\n open = false;\n\n loading = false;\n\n headers = [\n {\n text: \"Date\",\n value: \"timeStamp\",\n },\n {\n text: \"User\",\n value: \"user\",\n },\n {\n text: \"PaymentGatewayTransactionLog.TransactionKind\",\n value: \"transactionKind\",\n },\n {\n text: \"PaymentGatewayTransactionLog.InternalReference\",\n value: \"internalReference\",\n },\n {\n text: \"Amount\",\n value: \"amount\",\n },\n {\n text: \"PaymentGatewayTransactionLog.Description\",\n value: \"description\",\n },\n ];\n\n get translatedHeaders() {\n return this.headers.map((x) => {\n return {\n ...x,\n text: this.$t(x.text),\n };\n });\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\n \"/reservations/GetPaymentGatewayTransactionLog\",\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n //prettier-ignore\n this.list = res.data;\n\n return this.list;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"timeStamp\"],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!_.isEqual(fresh, old)) {\n this.load();\n }\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n reservationId: this.reservationId,\n };\n }\n\n @Watch(\"open\")\n openWatch(fresh: boolean) {\n if (fresh) {\n this.load();\n } else {\n this.list.result = [];\n this.list.count = 0;\n }\n }\n\n formatTimezoneFromUtcToLocal(date: Date) {\n const unformatedTimeZone = this.activeBusinessUnit?.timeZoneId;\n const timeZone = unformatedTimeZone\n ? unformatedTimeZone.substring(0, unformatedTimeZone.indexOf(\",\"))\n : undefined;\n\n return formatDateTimeAccordingToTimeZoneOrUTC(\n date,\n this.language ?? \"\",\n timeZone\n );\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentGatewayTransactionLogModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentGatewayTransactionLogModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentGatewayTransactionLogModal.vue?vue&type=template&id=529a1d94&scoped=true&\"\nimport script from \"./PaymentGatewayTransactionLogModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentGatewayTransactionLogModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PaymentGatewayTransactionLogModal.vue?vue&type=style&index=0&id=529a1d94&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 \"529a1d94\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VDataTable,VDialog,VIcon,VSpacer,VToolbar,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport {\n DistributionChannelTypesEnum,\n PropertyOtaView,\n ReservationAccUnitModel,\n ReservationModel,\n SearchRestrictionsModel,\n} from \"./types\";\nimport { ReservationStatus } from \"@/shared/models/reservationStatus\";\nimport DateField, {\n formatCountOfNights,\n} from \"@/components/misc/DateField.vue\";\nimport MoreLessSelect from \"@/components/misc/MoreLessSelect.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport * as _ from \"lodash\";\nimport { DistributionChannelType } from \"@/shared/models/distributionChannelType\";\nimport { Ota } from \"@/shared/models/ota\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport CreditCardInfoModal from \"@/components/credit-card/CreditCardInfoModal.vue\";\nimport PaymentGatewayTransactionLogModal from \"@/components/credit-card/PaymentGatewayTransactionLogModal.vue\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport {\n PaymentMeansEnum,\n ReservationStatusEnum,\n TenantTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport {\n differenceInDays,\n parseStringToDateJS,\n} from \"@/shared/dateFormatUtils\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({\n components: {\n DateField,\n MoreLessSelect,\n FormDescription,\n NumericPicker,\n CreditCardInfoModal,\n PaymentGatewayTransactionLogModal,\n },\n})\nexport default class ReservationFormStayPeriod extends Vue {\n @PropSync(\"reservation\") model?: ReservationModel;\n\n @Prop({ default: undefined }) period?: Date[];\n @Prop({ default: undefined }) restrictions?: SearchRestrictionsModel;\n @Prop() isMobile?: boolean;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Action(\"codebooks/refreshOtas\") refreshOtas?: () => Promise;\n @Getter(\"codebooks/otas\") otas?: Ota[];\n\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n\n @Action(\"codebooks/refreshDistributionChannelTypes\")\n refreshDistributionChannelTypes?: () => Promise;\n @Getter(\"codebooks/distributionChannelTypes\")\n distributionChannelTypes?: DistributionChannelType[];\n\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Action(\"codebooks/refreshCardTypes\") refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n get stayPeriodDatesText() {\n return formatCountOfNights(this)(this.stayPeriodDates);\n }\n\n get isAllowedToModifyDistributionChannel() {\n return policyChecker(\"MODIFY_DISTRIBUTION_CHANNEL\")(this.claims);\n }\n\n get isAllowedToReadPaymentMeans() {\n return policyChecker(\"READ_PAYMENT_MEANS\")(this.claims);\n }\n\n get isAllowedToReadReservationStatus() {\n return policyChecker(\"READ_RESERVATION_STATUS\")(this.claims);\n }\n\n get isTenantTypeAgency() {\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get allowedDistributionChannelTypes() {\n if (!this.distributionChannelTypes) {\n return [];\n }\n const types = _.cloneDeep(this.distributionChannelTypes);\n\n if (this.isTenantTypeAgency) {\n return types;\n } else {\n return types?.filter(\n (channel) =>\n channel.id != DistributionChannelTypesEnum.OwnersReservation\n );\n }\n }\n\n @Action(\"codebooks/refreshReservationStatuses\")\n refreshReservationStatuses?: () => Promise;\n @Getter(\"codebooks/reservationStatuses\")\n reservationStatuses?: ReservationStatus[];\n\n distributionChannelsChanged() {\n if (\n this.model?.distributionChannelTypeId ==\n DistributionChannelTypesEnum.WalkIn &&\n !this.model.id\n ) {\n //change status to Confirmed\n this.model.statusId = ReservationStatusEnum.Confirmed;\n }\n\n if (\n this.model &&\n this.model.distributionChannelTypeId == DistributionChannelTypesEnum.OTA\n ) {\n this.model.salesChannelId = null;\n this.calculateOTACommssion();\n } else if (\n this.model &&\n this.model.distributionChannelTypeId ==\n DistributionChannelTypesEnum.OTAConversion\n ) {\n this.model.salesChannelId = null;\n } else if (this.model) {\n this.model.salesChannelId = null;\n this.model.otaid = null;\n }\n\n if (\n this.model &&\n this.model.distributionChannelTypeId !=\n DistributionChannelTypesEnum.OTA &&\n this.model.distributionChannelTypeId !=\n DistributionChannelTypesEnum.PartnerAgency\n ) {\n this.model?.accomodationUnitTypes.forEach((unitType) => {\n unitType.channelCommissionPercent = 0;\n unitType.channelCommission = 0;\n });\n }\n\n return;\n }\n\n customerFromSalesChannel: CustomerModel | undefined;\n\n async salesChannelChanged() {\n const pickedSalesChannel = this.salesChannels?.find(\n (x) => x.id == this.model?.salesChannelId\n );\n this.model?.accomodationUnitTypes.forEach((unitType) => {\n if (this.model && this.model.salesChannelId) {\n unitType.channelCommissionPercent = pickedSalesChannel\n ? pickedSalesChannel.commissionPercent\n : 0;\n unitType.channelCommission = this.calculateChannelCommission(unitType);\n }\n });\n if (pickedSalesChannel?.defaultRatePlanId && this.model) {\n this.model.isManualSalesChannelChanged = true;\n }\n\n //show notification to apply changes to reservationHolder if reservationHolder already exists\n if (\n this.model &&\n pickedSalesChannel?.defaultCustomerId &&\n pickedSalesChannel?.defaultCustomerId != this.model.customerId\n ) {\n if (pickedSalesChannel && pickedSalesChannel?.defaultCustomerId) {\n const id = pickedSalesChannel.defaultCustomerId;\n await this.axios\n .get(\"/customers/\" + id)\n .then((res) => {\n if (this.model) {\n this.customerFromSalesChannel = res.data;\n }\n })\n .finally();\n }\n if (this.model.customerId) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"ReservationForm.ChangeReservationHolder\", {\n client: this.customerFromSalesChannel?.legalEntityName,\n }),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.setReservationHolderOnSalesChannelChange();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 10000,\n } as Notification);\n } else {\n this.setReservationHolderOnSalesChannelChange();\n }\n }\n }\n\n otaChanged() {\n if (\n this.model?.distributionChannelTypeId == DistributionChannelTypesEnum.OTA\n ) {\n this.calculateOTACommssion();\n }\n }\n\n async setReservationHolderOnSalesChannelChange() {\n const pickedSalesChannel = this.salesChannels?.find(\n (x) => x.id == this.model?.salesChannelId\n );\n\n if (pickedSalesChannel && pickedSalesChannel?.defaultCustomerId) {\n if (this.model && this.customerFromSalesChannel) {\n this.model.customerId = this.customerFromSalesChannel.id;\n this.model.customer.id = this.customerFromSalesChannel.id;\n this.model.customer.name = this.customerFromSalesChannel.legalEntityName\n ? this.customerFromSalesChannel.legalEntityName\n : \"\";\n this.model.customer.eMail = this.customerFromSalesChannel.eMail\n ? this.customerFromSalesChannel.eMail\n : \"\";\n this.model.customer.telephoneNumber = this.customerFromSalesChannel\n .telephoneNumber\n ? this.customerFromSalesChannel.telephoneNumber\n : \"\";\n this.model.customer.countryOfResidenceId = this.customerFromSalesChannel\n .countryOfResidenceId\n ? this.customerFromSalesChannel.countryOfResidenceId\n : 0;\n }\n }\n }\n\n calculateChannelCommission(unitType: ReservationAccUnitModel) {\n let totalPrice = 0;\n if (unitType.dayPrices) {\n totalPrice = unitType.dayPrices.reduce((sum, e) => sum + e.price, 0);\n }\n\n if (unitType.discountPercent) {\n totalPrice = totalPrice * (1 - unitType.discountPercent / 100);\n }\n\n const servicePriceWithoutTax = unitType.selectedServices\n .filter((s) => !s.isCityTax)\n .reduce((acc, s) => acc + s.grossPrice, 0);\n\n return (\n (totalPrice + servicePriceWithoutTax) *\n ((unitType.channelCommissionPercent ?? 0) / 100)\n );\n }\n\n // This is needed for when number of nights changes. we need to calculate previous commission to determine if we need to update.\n previousNumberOfNights = null as number | null;\n calculateOTACommssion() {\n this.model?.accomodationUnitTypes.forEach(async (unitType) => {\n if (this.model && this.model.otaid && unitType.propertyId) {\n const otaCommissionData = await this.getOtaCommissionPercentage(\n unitType.propertyId,\n this.model.otaid\n );\n\n unitType.channelCommissionPercent = otaCommissionData.percent;\n unitType.ownerPaysOTACommission =\n otaCommissionData.ownerPaysOTACommission;\n unitType.channelCommission = this.calculateChannelCommission(unitType);\n\n this.calculateInputPrices(unitType);\n }\n });\n }\n\n calculateInputPrices(unitType: ReservationAccUnitModel) {\n unitType.channelCommission = this.calculateChannelCommission(unitType);\n\n // This is used to recalculate new input prices .\n if (\n unitType.ownerPaysOTACommission &&\n unitType.inputPriceWasManuallyChanged\n )\n unitType.dayPrices\n .filter((dp) => dp.inputPrice === dp.inputPriceBeforeCommission)\n .forEach((x) => {\n x.inputPrice = x.inputPriceBeforeCommission;\n });\n // This is used to revert to input price before commission if price was not manually changed and new OTA has no checkbox for the owner to pay the commission.\n else if (\n !unitType.ownerPaysOTACommission &&\n !unitType.inputPriceWasManuallyChanged\n )\n unitType.dayPrices.forEach((x) => {\n x.inputPrice = x.inputPriceBeforeCommission;\n });\n }\n\n get numberOfNights() {\n if (this.model?.arrivalDate && this.model?.departureDate) {\n const numberOfDays = differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n );\n return isFinite(numberOfDays) && numberOfDays > 0 ? numberOfDays : 1;\n } else {\n return 0;\n }\n }\n async getOtaCommissionPercentage(propertyId: number, otaId: number) {\n let percent = 0;\n let ownerPaysOTACommission = false;\n\n await Vue.axios\n .post(\"reservations/getPropertyOta\", {\n propertyId: propertyId,\n otaId: otaId,\n })\n .then((res) => {\n percent = res.data.commissionPercent;\n ownerPaysOTACommission = res.data.ownerPaysOTACommission;\n });\n\n return {\n percent,\n ownerPaysOTACommission,\n };\n }\n\n getSalesChannelCommissionPercentage(salesChannelId: number) {\n let percent = 0;\n if (this.salesChannels) {\n const salesChannel = this.salesChannels.find(\n (x) => x.id == salesChannelId\n );\n\n percent = salesChannel?.commissionPercent ?? 0;\n }\n\n return percent;\n }\n\n get allowedReservationStatues() {\n if (!this.reservationStatuses) {\n return [];\n }\n\n const result = _.cloneDeep(this.reservationStatuses);\n result.forEach(\n (x: any) => (x.disabled = x.name != \"Hold\" && x.name != \"Confirmed\")\n );\n\n return result;\n }\n\n async created() {\n const promises = [];\n\n if (\n (this.reservationStatuses?.length ?? 0) === 0 &&\n this.refreshReservationStatuses\n ) {\n promises.push(this.refreshReservationStatuses());\n }\n\n if (\n (this.distributionChannelTypes?.length ?? 0) === 0 &&\n this.refreshDistributionChannelTypes\n ) {\n promises.push(this.refreshDistributionChannelTypes());\n }\n\n if ((this.otas?.length ?? 0) === 0 && this.refreshOtas) {\n promises.push(this.refreshOtas());\n }\n\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n promises.push(this.refreshSalesChannels());\n }\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n\n await Promise.all(promises);\n }\n\n get numberOfSelectedUnits() {\n if (this.model) {\n return this.model.accomodationUnitTypes.length || 0;\n }\n return 0;\n }\n\n get numberOfSituatedGuests() {\n let numberOfGuests = 0;\n if (this.model) {\n for (const unit of this.model.accomodationUnitTypes) {\n numberOfGuests += unit.numberOfAdults || 0;\n numberOfGuests += unit.numberOfChildren || 0;\n }\n }\n\n return numberOfGuests;\n }\n\n get availableOccupancy() {\n let availableOccupancy = 0;\n\n if (this.model) {\n for (const unit of this.model.accomodationUnitTypes) {\n availableOccupancy += unit.allowedOccupancy;\n }\n }\n\n return availableOccupancy;\n }\n\n @Watch(\"period\", { deep: true, immediate: true })\n periodChanged() {\n if (this.model?.id == 0 && this.model?.arrivalDate) {\n if (this.model.arrivalDate.getTime() < new Date().getTime()) {\n this.model.bookingDate = this.model.arrivalDate\n .toISOString()\n .substring(0, 10);\n this.model.statusId = ReservationStatusEnum.Confirmed;\n }\n }\n if (this.period && this.period.length === 2 && this.model) {\n this.stayPeriodDates = [\n this.period[0].toISOString().substring(0, 10),\n this.period[1].toISOString().substring(0, 10),\n ];\n\n if (this.model) {\n this.model.arrivalDate = new Date(this.stayPeriodDates[0]);\n this.model.departureDate = new Date(this.stayPeriodDates[1]);\n }\n } else {\n this.stayPeriodDates = [];\n\n if (this.model) {\n this.model.arrivalDate = null;\n this.model.departureDate = null;\n }\n }\n }\n\n stayPeriodDates: string[] = [];\n\n stayDateChanged() {\n this.model?.accomodationUnitTypes.forEach((x) => {\n this.calculateInputPrices(x);\n });\n }\n\n get internalPeriod() {\n return this.stayPeriodDates;\n }\n\n set internalPeriod(fresh: string[] | null | undefined) {\n if (_.isEqual(fresh, this.stayPeriodDates)) {\n return;\n }\n\n this.stayPeriodDates = fresh ?? [];\n\n if (this.stayPeriodDates.length == 2) {\n if (this.model) {\n this.model.arrivalDate = new Date(this.stayPeriodDates[0]);\n this.model.departureDate = new Date(this.stayPeriodDates[1]);\n }\n } else {\n if (this.model) {\n this.model.arrivalDate = null;\n this.model.departureDate = null;\n }\n }\n }\n\n synchronizeStayPeriodDates() {\n if (this.stayPeriodDates.length == 2) {\n this.model?.accomodationUnitTypes.forEach((el) => {\n el.arrivalDate = this.stayPeriodDates[0];\n el.departureDate = this.stayPeriodDates[1];\n });\n if (this.model) {\n this.model.arrivalDate = new Date(this.stayPeriodDates[0]);\n this.model.departureDate = new Date(this.stayPeriodDates[1]);\n }\n }\n }\n\n @Watch(\"restrictions\", { immediate: true })\n restrictionsChanged() {\n if (this.restrictions && this.model) {\n this.model.numberOfAdults = this.restrictions.numberOfAdults;\n this.model.numberOfChildren = this.restrictions.numberOfChildren;\n this.model.numberOfUnits = this.restrictions.numberOfUnits;\n }\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n specificOtaRequired: (value: any) =>\n !!value ||\n !!this.model?.otareservationId ||\n this.$t(\"Validation.Required\"),\n period: (value: any) => value || this.$t(\"Reservation.PeriodRequired\"),\n optionExpiration: (value: any) =>\n !!value || this.$t(\"Reservation.OptionExpirationDateRequired\"),\n optionExpirationBeforeArrival: (value: boolean) =>\n value || this.$t(\"Reservation.OptionExpirationMustNotBeAfterArrival\"),\n bookingDateBeforeArrival: (value: boolean) =>\n value || this.$t(\"Reservation.BookingDateMustNotBeAfterArrival\"),\n bookingDateBeforeOptionExpiration: (value: boolean) =>\n value ||\n this.$t(\"Reservation.BookingDateMustNotBeAfterOptionExpiration\"),\n age: (value: number) =>\n ((!!value || value === 0) && value >= 0 && value % 1 == 0) ||\n this.$t(\"Reservation.ChildAgeMustBeWholePositiveNumber\"),\n mustBeWholeNumber: (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n mustBePositive: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n };\n }\n\n get optionExpirationNotAfterArrival() {\n if (this.model?.arrivalDate && this.model.optionExpirationDate) {\n return (\n this.model.arrivalDate.getTime() >=\n new Date(this.model.optionExpirationDate).getTime()\n );\n }\n\n return true;\n }\n\n get optionExpirationMaxDate() {\n if (this.model?.arrivalDate) {\n return this.model.arrivalDate.toISOString().substring(0, 10);\n }\n\n return undefined;\n }\n\n get bookingDateMaxDate() {\n let arrivalDate;\n let optionExpDate;\n\n if (this.model?.arrivalDate) {\n arrivalDate = this.model.arrivalDate.toISOString().substring(0, 10);\n }\n if (this.model?.optionExpirationDate) {\n optionExpDate = this.model.optionExpirationDate.substring(0, 10);\n }\n\n if (arrivalDate && optionExpDate) {\n return arrivalDate <= optionExpDate ? arrivalDate : optionExpDate;\n } else if (arrivalDate) {\n return arrivalDate;\n } else if (optionExpDate) {\n return optionExpDate;\n }\n\n return undefined;\n }\n\n get bookingDateNotAfterArival() {\n if (this.model?.arrivalDate && this.model.bookingDate) {\n return (\n parseStringToDateJS(this.model.bookingDate).toISOString() <=\n parseStringToDateJS(this.model.arrivalDate.toString()).toISOString()\n );\n }\n\n return true;\n }\n\n get bookingDateNotAfterOptionExpiration() {\n if (this.model?.optionExpirationDate && this.model.bookingDate) {\n return this.model.statusId === 1\n ? parseStringToDateJS(this.model.bookingDate).toISOString() <=\n parseStringToDateJS(this.model.optionExpirationDate).toISOString()\n : true;\n }\n\n return true;\n }\n\n get showCardTypeSelection() {\n let paymentMeanBaseId;\n\n if (this.paymentMeans) {\n paymentMeanBaseId = this.paymentMeans.find(\n (_) => this.model?.paymentMeansId === _.id\n )?.paymentMeanBaseId;\n }\n\n const paymentMeansId = this.model?.paymentMeansId ?? 0;\n\n if (\n paymentMeansId === PaymentMeansEnum.KreditnaKartica ||\n paymentMeansId === PaymentMeansEnum.BankovnaKartica ||\n paymentMeanBaseId === PaymentMeansEnum.KreditnaKartica ||\n paymentMeanBaseId === PaymentMeansEnum.BankovnaKartica\n ) {\n return true;\n } else {\n if (this.model) this.model.cardTypeId = null;\n return false;\n }\n }\n\n get numberOfAdults() {\n return this.model?.numberOfAdults ?? 0;\n }\n\n set numberOfAdults(value: number | null) {\n if (this.model) {\n this.model.numberOfAdults = value ?? 0;\n }\n }\n\n get numberOfChildren() {\n return this.model?.numberOfChildren ?? 0;\n }\n\n set numberOfChildren(value: number | null) {\n if (this.model) {\n this.model.numberOfChildren = value ?? 0;\n }\n }\n\n get numberOfPets() {\n return this.model?.numberOfPets ?? 0;\n }\n\n set numberOfPets(value: number | null) {\n if (this.model) {\n this.model.numberOfPets = value ?? 0;\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormStayPeriod.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormStayPeriod.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormStayPeriod.vue?vue&type=template&id=95ff6986&scoped=true&\"\nimport script from \"./ReservationFormStayPeriod.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormStayPeriod.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormStayPeriod.vue?vue&type=style&index=0&id=95ff6986&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 \"95ff6986\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCol,VIcon,VListItem,VListItemContent,VListItemTitle,VRow,VSelect,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"units-wrapper\"},[_c('v-row',{staticClass:\"custom-gutters\"},[_vm._l((_vm.model.accomodationUnitTypes),function(unit,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\",\"id\":unit.id}},[(!_vm.isMobile)?_c('ReservationFormUnitTile',{attrs:{\"reservation\":_vm.model,\"unit\":unit,\"overbooked\":_vm.isOverbooked,\"notAvailable\":_vm.isNotAvailable,\"isEditingReservation\":!!_vm.model.id,\"serviceTypes\":_vm.tenantUsesServiceType ? _vm.serviceTypes : [],\"isFromCalendar\":!!_vm.restrictions ? _vm.restrictions.isFromCalendar : false,\"isFromAvailabilitySearch\":!!_vm.restrictions ? _vm.restrictions.isFromAvailabilitySearch : false},on:{\"edit\":_vm.editUnit,\"delete\":_vm.deleteUnit,\"openCopyGuestsDialog\":_vm.openCopyGuestsDialog,\"removeGuestStart\":function($event){return _vm.$emit('removeGuestStart')},\"removeGuestEnd\":function($event){return _vm.$emit('removeGuestEnd', $event)},\"updateGuest\":function($event){return _vm.$emit('updateGuest')},\"changedRatePlan\":function($event){return _vm.notifyUnitForm($event)},\"changedRatePlanFromSalesChannel\":function($event){return _vm.changeRatePlanFromSalesChannel($event)},\"changedServiceType\":function($event){return _vm.changeServiceTypes($event)},\"checkInUnit\":function($event){return _vm.$emit('checkInUnit', $event)},\"checkOutUnit\":function($event){return _vm.$emit('checkOutUnit', $event)},\"clearRestrictions\":function($event){return _vm.clearRestrictions()},\"recalculateAgencyFees\":function($event){return _vm.recalculateAgencyFees($event)}}}):_c('ReservationFormUnitTileMobile',{attrs:{\"reservation\":_vm.model,\"unit\":unit,\"overbooked\":_vm.isOverbooked,\"notAvailable\":_vm.isNotAvailable,\"isEditingReservation\":!!_vm.model.id,\"serviceTypes\":_vm.tenantUsesServiceType ? _vm.serviceTypes : []},on:{\"changedRatePlan\":function($event){return _vm.notifyUnitForm($event)},\"edit\":_vm.editUnit,\"delete\":_vm.deleteUnit}})],1)}),(!_vm.isMobile && !_vm.reservationIsReadonly)?_c('v-row',{staticClass:\"ml-0 mr-0 p-0\"},[_c('v-col',{staticClass:\"add-unit-tile-col-left p-0\",attrs:{\"cols\":_vm.isAllowedToAddUnitsViaAvailabilitySearch ? 6 : 12}},[_c('v-card',{staticClass:\"add-unit-tile fill-height d-flex justify-center align-center flex-column\",attrs:{\"width\":\"100%\",\"min-height\":\"200\",\"disabled\":!this.periodSet},on:{\"click\":function($event){_vm.unitSelectionModalOpen = true}}},[(!this.periodSet)?_c('form-description',{staticClass:\"form-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.descriptionTextResource))+\" \")]):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AddUnits\"))+\" \")]),_c('v-icon',{attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1),(_vm.isAllowedToAddUnitsViaAvailabilitySearch)?_c('v-col',{staticClass:\"add-unit-tile-col-right\",attrs:{\"cols\":\"6\"}},[_c('v-card',{staticClass:\"add-unit-tile fill-height d-flex justify-center align-center flex-column\",attrs:{\"width\":\"100%\",\"min-height\":\"200\",\"disabled\":!this.periodSet},on:{\"click\":function($event){_vm.availabilitySearchOpen = true}}},[(!this.periodSet)?_c('form-description',{staticClass:\"form-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.descriptionTextResource))+\" \")]):_vm._e(),_c('div',{staticClass:\"tile-text\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AddUnitsViaAvailability\"))+\" \")]),_c('v-icon',{attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1):_vm._e()],1):(!_vm.reservationIsReadonly)?_c('v-row',{staticClass:\"ml-0 mr-0\"},[(!this.periodSet)?_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"12\"}},[_c('form-description',{staticClass:\"form-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.descriptionTextResource))+\" \")])],1):_vm._e(),_c('v-col',{class:[\n _vm.isAllowedToAddUnitsViaAvailabilitySearch\n ? 'add-unit-tile-col-left'\n : 'add-unit-tile-col' ],attrs:{\"cols\":_vm.isAllowedToAddUnitsViaAvailabilitySearch ? 6 : 12}},[_c('v-card',{staticClass:\"add-unit-tile fill-height d-flex justify-center align-center flex-column text-center\",attrs:{\"width\":\"100%\",\"min-height\":\"200\",\"disabled\":!this.periodSet},on:{\"click\":function($event){_vm.unitSelectionModalOpen = true}}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AddUnits\"))+\" \")]),_c('v-icon',{attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1),(_vm.isAllowedToAddUnitsViaAvailabilitySearch)?_c('v-col',{staticClass:\"add-unit-tile-col-right\",attrs:{\"cols\":\"6\"}},[_c('v-card',{staticClass:\"add-unit-tile fill-height d-flex justify-center align-center flex-column text-center\",attrs:{\"width\":\"100%\",\"min-height\":\"200\",\"disabled\":!this.periodSet},on:{\"click\":function($event){_vm.availabilitySearchOpen = true}}},[_c('div',{staticClass:\"tile-text\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AddUnitsViaAvailability\"))+\" \")]),_c('v-icon',{attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1):_vm._e()],1):_vm._e()],2),_c('ReservationFormUnitForm',{ref:\"unitForm\",attrs:{\"open\":_vm.editFormOpen,\"unit\":_vm.unitToEdit,\"serviceTypes\":_vm.tenantUsesServiceType ? _vm.serviceTypes : [],\"distributionChannelTypeId\":_vm.model.distributionChannelTypeId,\"isEditingReservation\":!!_vm.model.id},on:{\"update:open\":function($event){_vm.editFormOpen=$event},\"recalculateAgencyFees\":function($event){return _vm.recalculateAgencyFees($event)},\"saved\":_vm.unitChangesSaved}}),(_vm.model.id)?_c('CopyGuestsDialog',{attrs:{\"open\":_vm.copyGuestsOpen,\"reservationUnitId\":_vm.copyGuestsToUnitId},on:{\"update:open\":function($event){_vm.copyGuestsOpen=$event},\"guestsCopied\":function($event){return _vm.$emit('guestsCopied')}}}):_vm._e(),_c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"content-class\":\"mobile-modal\",\"no-click-animation\":\"\",\"persistent\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeSearch()}},model:{value:(_vm.availabilitySearchOpen),callback:function ($$v) {_vm.availabilitySearchOpen=$$v},expression:\"availabilitySearchOpen\"}},[_c('v-card',{staticClass:\"d-flex flex-column add-unit-modal-card\",attrs:{\"tile\":\"\",\"height\":\"100vh\"}},[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('span',{staticClass:\"availability-search-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AddUnits\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeSearch()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('AvailabilitySearchReservationForm',{ref:\"AvailabilitySearch\",attrs:{\"confirmSelectionLabel\":\"AvailabilitySearch.ConfirmSelection\",\"prefill\":_vm.availabilitySearchPrefil,\"takenAvailabilities\":_vm.takenAvailabilities,\"freedAvailabilities\":_vm.freedAvailabilities,\"isMobile\":_vm.isMobile,\"isOpen\":_vm.availabilitySearchOpen},on:{\"update:restrictions\":function($event){_vm.availabilitySearchRestrictions = $event},\"update:selection\":function($event){_vm.availabilitySearchSelection = $event},\"confirmSelection\":function($event){return _vm.addAvailabilities(\n _vm.availabilitySearchSelection,\n _vm.availabilitySearchRestrictions\n )}}})],1)],1),(!_vm.isMobile)?_c('SimpleAvailabilitySearchModal',{attrs:{\"availabilityFilter\":_vm.unitSelectionFilter,\"open\":_vm.unitSelectionModalOpen,\"ownerIds\":_vm.ownerIdsForUnitSelection,\"selectedUnitIds\":_vm.selectedUnitIds},on:{\"update:open\":function($event){_vm.unitSelectionModalOpen=$event},\"unitsSelected\":_vm.addSelectedUnits}}):_c('SimpleAvailabilitySearchModalMobile',{attrs:{\"availabilityFilter\":_vm.unitSelectionFilter,\"open\":_vm.unitSelectionModalOpen,\"ownerIds\":_vm.ownerIdsForUnitSelection,\"selectedUnitIds\":_vm.selectedUnitIds},on:{\"update:open\":function($event){_vm.unitSelectionModalOpen=$event},\"unitsSelected\":_vm.addSelectedUnits}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { differenceInDays, getAge } from '@/shared/dateFormatUtils';\nimport { CalculationMethods } from '@/shared/models/priceCalculationMethods';\nimport _ from 'lodash';\nimport { AddOnServiceModel, ReservationAccUnitModel, ReservationAgencyFeeModel } from \"./types\";\n\nexport function getUnitOwnerIds(unitType: ReservationAccUnitModel){\n if (unitType.accomodationUnitId && unitType.ownerId) return [unitType.ownerId];\n\n const uniqueOwners = _.uniq(unitType.accomodationUnitOptions.filter(x => x.ownerId).map(x => x.ownerId as number));\n return uniqueOwners;\n}\n\nexport function addOnServiceNeedsRange(serviceCalculationMethodId: number) {\n const rangeCalculationMethods = [\n CalculationMethods.PerNight,\n CalculationMethods.PerPersonPerNight,\n CalculationMethods.PerChildPerNight,\n CalculationMethods.PerAdultPerNight,\n CalculationMethods.PerDay\n ];\n\n return rangeCalculationMethods.includes(serviceCalculationMethodId);\n}\n\nexport function addOnServiceDaysInPeriod(startDate: string, endDate: string, service: AddOnServiceModel) {\n if (\n !service.from &&\n !service.to &&\n (!service.periods || service.periods.length === 0)\n ) {\n const endingDate = new Date(endDate);\n if (service.calculationMethodId == CalculationMethods.PerDay) {\n endingDate.setDate(endingDate.getDate() + 1);\n }\n return differenceInDays(\n new Date(startDate),\n endingDate\n );\n }\n const currentDate = new Date(startDate.substring(0, 10));\n const departureDate = new Date(endDate.substring(0, 10));\n const servicePeriods: {\n from: Date;\n to: Date;\n }[] = [];\n\n\n\n if (service.from && service.to) {\n servicePeriods.push({\n from: new Date(service.from.substring(0, 10)),\n to: new Date(service.to.substring(0, 10)),\n });\n } else {\n servicePeriods.push(\n ...service.periods.map((x) => {\n return {\n from: new Date(x.from.substring(0, 10)),\n to: new Date(x.to.substring(0, 10)),\n };\n })\n );\n }\n\n let serviceDays = 0;\n\n if (service.isCityTax || service.calculationMethodId != CalculationMethods.PerDay) {\n while (currentDate.getTime() < departureDate.getTime()) {\n const dateInPeriod = servicePeriods.some(\n (x) =>\n x.from.getTime() <= currentDate.getTime() &&\n x.to.getTime() >= currentDate.getTime()\n );\n if (service.to && service.from && dateInPeriod) {\n serviceDays++;\n } else if (!service.to && !service.from && !dateInPeriod) {\n serviceDays++;\n }\n const originalTimezoneOffset = currentDate.getTimezoneOffset();\n currentDate.setDate(currentDate.getDate() + 1);\n const postAddTimezoneOffset = currentDate.getTimezoneOffset();\n\n if (originalTimezoneOffset !== postAddTimezoneOffset) {\n const timezoneOffsetDiff = originalTimezoneOffset - postAddTimezoneOffset;\n\n currentDate.setHours(currentDate.getHours() + (timezoneOffsetDiff / 60));\n }\n }\n }\n else {\n while (currentDate.getTime() <= departureDate.getTime()) {\n const dateInPeriod = servicePeriods.some(\n (x) =>\n x.from.getTime() <= currentDate.getTime() &&\n x.to.getTime() >= currentDate.getTime()\n );\n\n if (service.to && service.from && dateInPeriod) {\n serviceDays++;\n } else if (!service.to && !service.from && !dateInPeriod) {\n serviceDays++;\n }\n\n const originalTimezoneOffset = currentDate.getTimezoneOffset();\n currentDate.setDate(currentDate.getDate() + 1);\n const postAddTimezoneOffset = currentDate.getTimezoneOffset();\n\n if (originalTimezoneOffset !== postAddTimezoneOffset) {\n const timezoneOffsetDiff = originalTimezoneOffset - postAddTimezoneOffset;\n\n currentDate.setHours(currentDate.getHours() + (timezoneOffsetDiff / 60));\n }\n }\n }\n return serviceDays;\n}\n\nexport function calculateAddOnServiceQuantity(\n service: AddOnServiceModel,\n unit: ReservationAccUnitModel,\n calculateWithEVisitorStayDates: boolean,\n) {\n let adultNights = 0;\n let childNights = 0;\n\n let numberOfAdults = unit.numberOfAdults;\n let numberOfChildren = unit.numberOfChildren;\n let numberOfTaxableChildren = unit.childrenAges?.filter(x => x > 11 && x < 18).length ?? 0;\n\n if (calculateWithEVisitorStayDates && service.isCityTax && unit.guests.some((x) => x.isEVisitorCheckedIn)) {\n numberOfAdults = 0;\n numberOfChildren = 0;\n numberOfTaxableChildren = 0;\n\n unit.guests.filter((x) => x.isEVisitorCheckedIn).forEach((x) => {\n const age = x.dateOfBirth !== undefined\n ? getAge(x.dateOfBirth)\n : 18\n if (x.city !== unit.city) {\n const startIsOfTypeDate = !!x.eVisitorCheckInDate?.toISOString;\n const endIsOfTypeDate = !!x.eVisitorCheckOutDate?.toISOString;\n const startDate = x.eVisitorCheckInDate !== undefined && x.isEVisitorCheckedIn\n ? startIsOfTypeDate\n ? x.eVisitorCheckInDate.toISOString().substring(0, 10)\n : x.eVisitorCheckInDate.toString().substring(0, 10)\n : unit.arrivalDate.substring(0, 10);\n const endDate = x.eVisitorCheckOutDate !== undefined && x.isEVisitorCheckedIn\n ? endIsOfTypeDate\n ? x.eVisitorCheckOutDate.toISOString().substring(0, 10)\n : x.eVisitorCheckOutDate.toString().substring(0, 10)\n : x.checkOutDate?.toString().substring(0, 10) ?? unit.departureDate.substring(0, 10);\n if (age >= 18) {\n adultNights += addOnServiceDaysInPeriod(startDate, endDate, service);\n }\n else if (age > 11) {\n childNights += addOnServiceDaysInPeriod(startDate, endDate, service);\n }\n }\n })\n }\n\n let numberOfNights = 0;\n let numberOfDays = 0;\n\n if (service.isCityTax || service.calculationMethodId != CalculationMethods.PerDay) {\n numberOfNights = addOnServiceDaysInPeriod(unit.arrivalDate, unit.departureDate, service);\n }\n else {\n numberOfDays = addOnServiceDaysInPeriod(unit.arrivalDate, unit.departureDate, service);\n }\n\n if (addOnServiceNeedsRange(service.calculationMethodId) && service.serviceDateFrom && service.serviceDateTo && !service.isCityTax && !service.pricesAreSeasonal) {\n if (service.calculationMethodId == CalculationMethods.PerDay) {\n numberOfDays = addOnServiceDaysInPeriod(service.serviceDateFrom, service.serviceDateTo, service);\n }\n else {\n numberOfNights = addOnServiceDaysInPeriod(service.serviceDateFrom, service.serviceDateTo, service);\n }\n }\n\n if (service.isEditedManually && !service.isCityTax) {\n return;\n }\n\n switch (service.calculationMethodId) {\n case CalculationMethods.PerStay: {\n service.decimalQuantity = 1;\n break;\n }\n case CalculationMethods.PerNight: {\n service.decimalQuantity = numberOfNights;\n break;\n }\n case CalculationMethods.PerPersonPerNight: {\n service.decimalQuantity = numberOfNights * (numberOfAdults + numberOfChildren) + adultNights + childNights;\n break;\n }\n case CalculationMethods.PerPerson: {\n service.decimalQuantity = numberOfAdults + numberOfChildren;\n break;\n }\n case CalculationMethods.PerAdultPerson: {\n service.decimalQuantity = numberOfAdults;\n break;\n }\n case CalculationMethods.PerChildPerNight: {\n if (service.isCityTax) {\n service.decimalQuantity = numberOfNights * numberOfTaxableChildren + childNights;\n } else {\n service.decimalQuantity =\n numberOfNights * numberOfChildren\n }\n break;\n }\n case CalculationMethods.PerAdultPerNight: {\n service.decimalQuantity = numberOfNights * numberOfAdults + adultNights;\n break;\n }\n\n case CalculationMethods.PerDay: {\n service.decimalQuantity = numberOfDays\n break;\n }\n }\n if (service.defaultQuantity) {\n if (service.decimalQuantity < service.defaultQuantity) {\n service.decimalQuantity = service.defaultQuantity;\n }\n }\n}\n\nexport function calculateAgencyFees( \n propertyFee: ReservationAgencyFeeModel,\n unit: ReservationAccUnitModel\n) {\n\n let totalPriceWithoutDiscount = 0;\n if (unit && unit.dayPrices) {\n totalPriceWithoutDiscount = unit.dayPrices.reduce(\n (sum, e) => sum + e.price, 0);\n }\n\n //this is the number used for relative agency fees calculation\n let totalPriceWithDiscount = totalPriceWithoutDiscount;\n if (unit && unit.discountPercent) {\n totalPriceWithDiscount = totalPriceWithDiscount * (1 - unit.discountPercent / 100)\n }\n\n const fee = {\n name: propertyFee.name,\n calculationMethodId: propertyFee.calculationMethodId,\n priceIsAbsolute: propertyFee.priceIsAbsolute,\n currencyId: propertyFee.currencyId,\n agencyFeeId: propertyFee.agencyFeeId,\n propertyId: propertyFee.propertyId\n } as ReservationAgencyFeeModel;\n\n switch(propertyFee.calculationMethodId) {\n\n case CalculationMethods.PerStay:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100);\n }\n break;\n\n case CalculationMethods.PerNight:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * unit.numberOfNights\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * unit.numberOfNights;\n }\n break;\n\n case CalculationMethods.PerPersonPerNight:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * unit.numberOfNights * (unit.numberOfAdults + unit.numberOfChildren)\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * unit.numberOfNights * (unit.numberOfAdults + unit.numberOfChildren);\n }\n break;\n \n case CalculationMethods.PerPerson:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * (unit.numberOfAdults + unit.numberOfChildren)\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * (unit.numberOfAdults + unit.numberOfChildren);\n }\n break;\n \n case CalculationMethods.PerAdultPerson:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * unit.numberOfAdults\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * unit.numberOfAdults\n }\n break;\n\n case CalculationMethods.PerAdultPerNight:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * unit.numberOfAdults * unit.numberOfNights\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * unit.numberOfAdults * unit.numberOfNights\n }\n break;\n\n case CalculationMethods.PerChildPerNight:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * unit.numberOfChildren * unit.numberOfNights\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * unit.numberOfChildren * unit.numberOfNights\n }\n break;\n\n case CalculationMethods.PerDay:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount * (unit.numberOfNights + 1)\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) * (unit.numberOfNights + 1)\n }\n break;\n\n case CalculationMethods.Manual:\n if (propertyFee.priceIsAbsolute) {\n fee.amount = propertyFee.amount\n } else {\n fee.amount = totalPriceWithDiscount * (propertyFee.amount / 100) \n }\n break;\n }\n\n return fee;\n }\n\nexport type InvoiceRoutingReturnModel = {\n invoiceRoutingCustomerId: number;\n invoiceRoutingIsLegalEntity: boolean;\n invoiceRoutingName: string;\n invoiceRoutingOib: string;\n invoiceRoutingPaymentMeansId: number;\n invoiceRoutingCardTypeId: number;\n invoiceRoutingFinancialDocumentTypeId: number;\n priceMissmatchWithOfficialPrice: boolean;\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reservation-form__unit-tile__wrapper\"},[_c('v-tooltip',{staticClass:\"tooltip\",attrs:{\"right\":\"\",\"disabled\":(_vm.warnings.length == 0 && _vm.errors.length == 0) || _vm.addOnServicesFormOpen,\"color\":_vm.errors.length != 0 ? 'error' : 'warning'},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-card',_vm._g(_vm._b({staticClass:\"unit-tile\",class:{\n errors: _vm.errors.length != 0,\n warnings: _vm.warnings.length != 0 && _vm.errors.length == 0,\n },attrs:{\"disabled\":_vm.reservationIsReadonly,\"width\":\"100%\"}},'v-card',attrs,false),on),[_c('v-card-title',{staticClass:\"unit-title\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"mr-6\",class:{ 'primary--text': _vm.$vuetify.theme.dark }},[_c('div',{staticClass:\"word-breaking\"},[_vm._v(\" \"+_vm._s(_vm.unitLineOne)+\" \"),_c('div',{staticClass:\"display-inline-block\"},[_vm._v(\" - \"+_vm._s(_vm.$tc(\"{count} of nights\", _vm.numberOfNights, { count: _vm.numberOfNights, }))+\", \"+_vm._s(_vm.$t(\"TOTAL\"))+\" \"),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalPrice,\"currencyId\":_vm.unitCurrencyId}})],1)]),_c('div',{staticClass:\"d-flex flex-row\"},[_c('div',{staticClass:\"de-emphasize mr-2\",class:{ 'white--text': _vm.$vuetify.theme.dark }},[_vm._v(\" \"+_vm._s(_vm.unitLineTwo)+\" \")]),(_vm.showStatusIcon)?_c('div',[_c('v-icon',{class:_vm.getStatusColor(),attrs:{\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getStatusIcon())+\" \")])],1):_vm._e()]),(_vm.unitStatus)?_c('v-chip',{staticClass:\"mt-1\",attrs:{\"small\":\"\",\"color\":_vm.unitStatus.color,\"text-color\":\"white\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal \"+_vm._s(_vm.unitStatus.icon))])],1),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.unitStatus.text))+\" \")])],1):_vm._e(),(!_vm.isOwnerLevel3)?_c('div',{staticClass:\"d-flex flex-row\"},[_c('div',{staticClass:\"d-flex flex-row\"},[_c('div',{staticClass:\"de-emphasize\",class:{ 'white--text': _vm.$vuetify.theme.dark }},[_vm._v(\" \"+_vm._s(_vm.getRateName(_vm.model.ratePlan))+\" \")]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":_vm.model.userSetPricePerNightManually},on:{\"click\":function($event){_vm.model.manuallyChangedRatePlan =\n !_vm.model.manuallyChangedRatePlan}}},[_c('v-icon',{attrs:{\"size\":\"11\"}},[_vm._v(\"fas \"+_vm._s(_vm.model.manuallyChangedRatePlan || _vm.model.userSetPricePerNightManually ? \"fa-lock\" : \"fa-lock-open\")+\" \")])],1)],1)]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"Reservation.RatePlanLock.\" + (_vm.model.manuallyChangedRatePlan || _vm.model.userSetPricePerNightManually ? \"Locked\" : \"Unlocked\") ))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"Reservation.RatePlanLock.Description\" + _vm.ratePlanLockSuffix ))+\" \")]),(_vm.model.userSetPricePerNightManually)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"Reservation.RatePlanLock.Description.PriceSetManually\" ))+\" \")]):_vm._e()]),_c('v-btn',{class:{\n 'ml-4': _vm.tenantOBRsUseRelativePricing,\n },attrs:{\"icon\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'},on:{\"click\":function($event){return _vm.openRatePlanSelect(_vm.model)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-pen\")])],1)],1),(_vm.tenantUsesServiceType)?_c('div',{staticClass:\"d-flex flex-row ml-4\"},[_c('div',{staticClass:\"de-emphasize mr-4\",class:{ 'white--text': _vm.$vuetify.theme.dark }},[_vm._v(\" \"+_vm._s(_vm.serviceTypeName)+\" \")]),(!_vm.everyServiceTypeIsTheSame)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'}},'v-icon',attrs,false),on),[_vm._v(\"far fa-info-circle\")])]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"ServiceType.Info.MixedServiceTypes\"))+\" \")])]):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'},on:{\"click\":function($event){return _vm.openServiceTypeSelect()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-pen\")])],1)],1):_vm._e()]):_vm._e()],1)]),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('div',{staticClass:\"display-flex\"},[_c('NumericInputImproved',{staticClass:\"averagePrice\",attrs:{\"label\":_vm.$t('Reservation.Unit.PricePerNight') + '*',\"rules\":[_vm.rules.required(_vm.model.pricePerNight)],\"hideDetails\":\"\",\"validateInput\":\"\",\"outlined\":\"\",\"disabled\":!_vm.canEditPrices,\"dense\":\"\",\"minValue\":{ value: 0, isExclusive: false }},on:{\"input\":function($event){return _vm.pricePerNightInput()}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width\",attrs:{\"currencyId\":_vm.unitCurrencyId}})]},proxy:true}],null,true),model:{value:(_vm.model.pricePerNight),callback:function ($$v) {_vm.$set(_vm.model, \"pricePerNight\", $$v)},expression:\"model.pricePerNight\"}}),(_vm.tenantUsesServiceType && !_vm.everyDayPriceIsTheSame)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'}},'v-icon',attrs,false),on),[_vm._v(\"far fa-info-circle\")])]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Unit.Info.MixedDayPrices\"))+\" \")])]):_vm._e(),(_vm.showDiscount)?_c('NumericInputImproved',{staticClass:\"discount\",attrs:{\"label\":_vm.$t('Reservation.Unit.Discount'),\"disabled\":!_vm.canEditPrices,\"hideDetails\":\"\",\"suffix\":\"%\",\"outlined\":\"\",\"dense\":\"\",\"validateInput\":\"\",\"maxValue\":{ value: 100, isExclusive: true },\"minValue\":{ value: 0, isExclusive: false }},on:{\"input\":function($event){return _vm.discountInput()}},model:{value:(_vm.model.discountPercent),callback:function ($$v) {_vm.$set(_vm.model, \"discountPercent\", $$v)},expression:\"model.discountPercent\"}}):_vm._e(),(_vm.tenantUsesInputPrice && !_vm.isOwnerLevel3)?_c('NumericInputImproved',{staticClass:\"averagePrice\",attrs:{\"label\":_vm.$t('Reservation.Unit.InputPricePerNight'),\"value\":_vm.inputPricePerNight(),\"hideDetails\":\"\",\"dense\":\"\",\"readonly\":\"\",\"outlined\":\"\",\"validateInput\":\"\",\"disabled\":!_vm.canEditPrices},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width\",attrs:{\"currencyId\":_vm.unitCurrencyId}})]},proxy:true}],null,true)}):_vm._e(),(_vm.tenantUsesServiceType && !_vm.everyDayPriceIsTheSame)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'}},'v-icon',attrs,false),on),[_vm._v(\"far fa-info-circle\")])]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Unit.Info.MixedDayPrices\"))+\" \")])]):_vm._e(),(\n _vm.showDiscount && _vm.tenantUsesInputPrice && !_vm.isOwnerLevel3\n )?_c('NumericInputImproved',{staticClass:\"discountInput\",attrs:{\"label\":_vm.$t('Reservation.Unit.InputDiscount'),\"disabled\":!_vm.canEditPrices,\"suffix\":\"%\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"validateInput\":\"\",\"maxValue\":{ value: 100, isExclusive: true },\"minValue\":{ value: 0, isExclusive: false }},model:{value:(_vm.model.discountInputPercent),callback:function ($$v) {_vm.$set(_vm.model, \"discountInputPercent\", $$v)},expression:\"model.discountInputPercent\"}}):_vm._e()],1)]),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('div',{staticClass:\"align-icon-buttons-right\"},[(_vm.model && _vm.model.id && _vm.showRegistrationFormButton)?_c('v-btn',{attrs:{\"icon\":\"\",\"loading\":_vm.exportingRegistrationForm},on:{\"click\":function($event){$event.stopPropagation();return _vm.exportRegistrationFormClickHandler.apply(null, arguments)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fa fa-file-alt\")])],1):_vm._e(),(!_vm.isOwnerLevel3)?_c('v-btn',{attrs:{\"icon\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('edit', _vm.model)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-pen\")])],1):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('delete', _vm.model)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-trash\")])],1)],1)])],1)],1),_c('v-divider'),_c('v-card-text',[_c('div',[_c('ReservationFormUnitFields',{attrs:{\"unit\":_vm.model}}),_c('ReservationFormUnitGuests',{attrs:{\"unit\":_vm.model,\"reservation\":_vm.reservationModel},on:{\"openCopyGuestsDialog\":function($event){return _vm.$emit('openCopyGuestsDialog', $event)},\"removeGuestStart\":function($event){return _vm.$emit('removeGuestStart')},\"removeGuestEnd\":function($event){return _vm.$emit('removeGuestEnd', $event)},\"updateGuest\":function($event){return _vm.$emit('updateGuest')},\"checkInUnit\":function($event){return _vm.$emit('checkInUnit', $event)},\"checkOutUnit\":function($event){return _vm.$emit('checkOutUnit', $event)}}})],1),(_vm.renderAddOnServices)?_c('v-divider',{staticClass:\"divider\"}):_vm._e(),(_vm.renderAddOnServices)?_c('ReservationFormUnitAddOnServices',{attrs:{\"unit\":_vm.model,\"reservation\":_vm.reservationModel,\"formOpen\":_vm.addOnServicesFormOpen},on:{\"update:formOpen\":function($event){_vm.addOnServicesFormOpen=$event},\"update:form-open\":function($event){_vm.addOnServicesFormOpen=$event},\"servicesListChanged\":_vm.servicesListChanged}}):_vm._e()],1)],1)]}}])},[_c('div',[(_vm.warnings.length != 0)?_c('div',{staticClass:\"mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Warnings\"))+\" \"),_vm._l((_vm.warnings),function(warning){return _c('div',{key:warning},[_vm._v(\" \"+_vm._s(_vm.$t(warning))+\" \")])})],2):_vm._e(),(_vm.errors.length != 0)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Errors\"))+\" \"),_vm._l((_vm.errors),function(error){return _c('div',{key:error},[_vm._v(\" \"+_vm._s(_vm.$t(error))+\" \")])})],2):_vm._e()])]),_c('v-dialog',{attrs:{\"width\":\"300px\"},model:{value:(_vm.exportRegistrationFormDialogShown),callback:function ($$v) {_vm.exportRegistrationFormDialogShown=$$v},expression:\"exportRegistrationFormDialogShown\"}},[_c('v-card',[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.$t(\"Do you want to print prices on the form?\"))+\" \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.exportRegistrationFormDialogYes}},[_vm._v(_vm._s(_vm.$t(\"Yes\")))]),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.exportRegistrationFormDialogNo}},[_vm._v(_vm._s(_vm.$t(\"No\")))])],1)],1)],1),(_vm.ratePlanSelectOpen)?_c('RatePlanSelectModal',{attrs:{\"open\":_vm.ratePlanSelectOpen,\"availableRatePlans\":_vm.availableRatePlans,\"showApllyToAllCheckbox\":true},on:{\"update:open\":function($event){_vm.ratePlanSelectOpen=$event},\"ratePlanSelected\":function($event){return _vm.changeRatePlanFromModal($event)}}}):_vm._e(),(_vm.serviceTypeSelectOpen)?_c('ServiceTypeSelectModal',{attrs:{\"open\":_vm.serviceTypeSelectOpen,\"availableServiceTypes\":_vm.serviceTypes,\"selectedServiceType\":_vm.selectedServiceType,\"showApplyToAllCheckbox\":true},on:{\"update:open\":function($event){_vm.serviceTypeSelectOpen=$event},\"serviceTypeSelected\":function($event){return _vm.changeServiceType($event)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[(_vm.model && _vm.hasWarning)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('FormDescription',{staticClass:\"mb-0\",attrs:{\"type\":\"warning\"}},[(\n _vm.model.numberOfAdults + _vm.model.numberOfChildren > _vm.model.maxOccupancy\n )?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Warning.OccupancyAboveMax\"))+\" \")]):_vm._e(),(_vm.model.numberOfAdults > _vm.model.maxNumberOfAdults)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Warning.AdultsAboveMax\"))+\" \")]):_vm._e()])],1)],1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-space-between align-start flex-wrap align-content-start\",attrs:{\"cols12\":\"\",\"md\":\"6\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfAdults\"))+\": \"),_c('NumericPicker',{staticClass:\"ml-4\",attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},model:{value:(_vm.numberOfAdults),callback:function ($$v) {_vm.numberOfAdults=$$v},expression:\"numberOfAdults\"}})],1),_c('div',{staticClass:\"d-flex align-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfChildren\"))+\": \"),_c('NumericPicker',{staticClass:\"ml-4\",attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},on:{\"input\":_vm.updateChildren},model:{value:(_vm.numberOfChildren),callback:function ($$v) {_vm.numberOfChildren=$$v},expression:\"numberOfChildren\"}})],1)]),(!_vm.isOwnerLevel3)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\",\"md\":\"2\"}},[_c('div',{staticClass:\"children-ages-menu\"},[(_vm.model.numberOfChildren > 0)?_c('v-menu',{attrs:{\"close-on-content-click\":false,\"offset-x\":\"\",\"offset-y\":\"\",\"max-height\":\"600px\",\"min-width\":\"400px\",\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-avatar',_vm._g(_vm._b({staticClass:\"avatar\",class:{\n 'theme--dark': _vm.$vuetify.theme.dark,\n },attrs:{\"rounded\":\"\",\"size\":\"40\",\"color\":_vm.childrenAgesValid ? '' : 'error'}},'v-avatar',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"color\":'white'}},[_vm._v(\"fas fa-birthday-cake\")])],1)]}}],null,false,3934475252)},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.ChildrenAges\"))+\" \")]),_c('v-card-text',[_c('div',[_c('v-row',_vm._l((_vm.model.childrenAges),function(child,$index){return _c('v-col',{key:$index,attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('Child{index}Age', { index: $index + 1 }),\"rules\":[_vm.rules.age],\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.model.childrenAges[$index]),callback:function ($$v) {_vm.$set(_vm.model.childrenAges, $index, _vm._n($$v))},expression:\"model.childrenAges[$index]\"}})],1)}),1)],1)])],1)],1):_vm._e()],1)]),_c('v-col',{staticClass:\"guest-placeholder-container\",attrs:{\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('GuestPlaceholder')},model:{value:(_vm.model.guestPlaceholder),callback:function ($$v) {_vm.$set(_vm.model, \"guestPlaceholder\", $$v)},expression:\"model.guestPlaceholder\"}},[_c('template',{slot:\"append\"},[_c('v-icon',{staticClass:\"mr-2\",on:{\"click\":_vm.saveGuestPlaceholder}},[_vm._v(\"fas fa-save\")]),_c('v-icon',{on:{\"click\":_vm.deleteGuestPlaceholder}},[_vm._v(\"fas fa-times-circle\")])],1)],2)],1)],1)],1):_vm._e()],1),(!_vm.isOwnerLevel3)?_c('v-row',{ref:\"guestsRow\",staticClass:\"guests-row\"},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"d-flex pt-4 guests\"},[_c('div',{staticClass:\"d-flex flex-wrap\"},[_vm._l((_vm.model.guests),function(guest){return _c('div',{key:guest.id,staticClass:\"guest\"},[_c('v-menu',{attrs:{\"max-width\":\"400px\",\"close-on-content-click\":false,\"offset-x\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-avatar',_vm._g(_vm._b({staticClass:\"avatar\",class:{\n checkedIn: guest.isCheckedIn,\n checkedOut: guest.isCheckedOut,\n checkedInEVisitor: guest.isEVisitorCheckedIn,\n checkedOutEVisitor: guest.isEVisitorCheckedOut,\n 'theme--dark': _vm.$vuetify.theme.dark,\n },attrs:{\"rounded\":\"\",\"size\":\"40\"}},'v-avatar',attrs,false),on),[(!guest.isRoomHolder)?_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.getGuestName(guest)))]):_c('v-badge',{attrs:{\"offset-x\":_vm.getGuestName(guest).length > 2 ? '28%' : 4,\"offset-y\":_vm.getGuestName(guest).length > 2 ? '3%' : 2,\"dot\":\"\",\"color\":\"light-green accent-2\"}},[_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.getGuestName(guest)))])])],1)]}}],null,true),model:{value:(guest.menuShown),callback:function ($$v) {_vm.$set(guest, \"menuShown\", $$v)},expression:\"guest.menuShown\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(guest.name)+\" \")]),_c('v-card-text',[_c('div',[_vm._v(\"Nokumo: \"+_vm._s(_vm.$t(_vm.guestStatusDescriptionTR(guest))))]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.EVisitor\", { eVisitorServiceName: _vm.eVisitorIntegrationName, }))+\": \"+_vm._s(_vm.$t(_vm.guestEVisitorStatusDescriptionTR(guest)))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(guest.eMail)+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(guest.telephoneNumber)+\" \")]),(guest.countryOfResidenceId)?_c('div',[_vm._v(\" \"+_vm._s(_vm.getCountryOfResidence(guest))+\" \")]):_vm._e(),_c('div',[_c('v-checkbox',{attrs:{\"label\":\"Room holder\"},on:{\"change\":function($event){return _vm.updateGuests(guest)}},model:{value:(guest.isRoomHolder),callback:function ($$v) {_vm.$set(guest, \"isRoomHolder\", $$v)},expression:\"guest.isRoomHolder\"}})],1)]),_c('v-card-actions',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"blue\",\"disabled\":guest.reservationsAccUnitTypeGuestId === 0},on:{\"click\":function($event){return _vm.editGuest(guest)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Edit\"))+\" \")]),_c('v-spacer'),(!guest.isEVisitorCheckedIn)?_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"red\",\"loading\":_vm.removingGuest},on:{\"click\":function($event){return _vm.removeGuest(guest, [])}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Remove\"))+\" \")]):_vm._e()],1)],1)],1)],1)}),_c('div',{ref:\"guestButtonsContainer\",staticClass:\"guestButtonsContainer\"},[(_vm.model.id && _vm.showCopyGuestsButton)?_c('v-btn',{staticClass:\"guest add\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$emit('openCopyGuestsDialog', _vm.model.id)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-copy \")])],1):_vm._e(),_c('v-btn',{staticClass:\"guest add\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.lookupOpen = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-user-plus\")])],1)],1)],2)])]),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\"d-flex pt-4 guests content-right\"},[_c('div',{staticClass:\"d-flex flex-wrap\"},[(\n !!_vm.reservation.id &&\n !!_vm.model.id &&\n (_vm.reservation.statusId === 2 || _vm.reservation.statusId === 4)\n )?_c('v-btn',{staticClass:\"guest add float-right\",attrs:{\"disabled\":!_vm.guestsUnchanged,\"color\":\"primary\"},on:{\"click\":_vm.unitCheckIn}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-sign-in-alt\")])],1):_vm._e(),(!!_vm.reservation.id && !!_vm.model.id && _vm.model.statusId === 4)?_c('v-btn',{staticClass:\"guest add float-right\",attrs:{\"disabled\":!_vm.guestsUnchanged,\"color\":\"primary\"},on:{\"click\":_vm.unitCheckOut}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-sign-out-alt\")])],1):_vm._e()],1)])])],1):_vm._e(),(_vm.lookupOpen)?_c('CustomerLookup',{attrs:{\"open\":_vm.lookupOpen,\"multiple\":true,\"filterPrefil\":_vm.customerLookupFilterPrefil},on:{\"update:open\":function($event){_vm.lookupOpen=$event},\"selected\":_vm.selected}}):_vm._e(),(_vm.editOpen)?_c('CheckInOutEditForm',{attrs:{\"checkInCustomerDataId\":_vm.editGuestId,\"open\":_vm.editOpen,\"setGuestCheckedIn\":true,\"defaultArrivalDate\":_vm.model.arrivalDate,\"defaultDepartureDate\":_vm.model.departureDate,\"defaultDepartureTime\":_vm.guestDepartureTime,\"explicitCheckinButtonNames\":true},on:{\"update:open\":function($event){_vm.editOpen=$event},\"refreshTable\":_vm.guestUpdated}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Country } from \"@/shared/models/country\";\nimport {\n ReservationAccUnitModel,\n ReservationCustomerModel,\n ReservationGuestModel,\n ReservationModel,\n} from \"./types\";\nimport MoreLessSelect from \"@/components/misc/MoreLessSelect.vue\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport { differenceInYears } from \"@/shared/dateFormatUtils\";\nimport brokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { AxiosResponse } from \"axios\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport CheckInOutEditForm from \"@/components/reservation-form/check-in/CheckInOutEditForm.vue\";\nimport EVisitorTable from \"@/components/EVisitorTable.vue\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\nimport { EVisitorIntegrationNameEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n MoreLessSelect,\n FormDescription,\n NumericPicker,\n CustomerLookup,\n CheckInOutEditForm,\n EVisitorTable,\n },\n})\nexport default class ReservationFormUnitGuests extends Vue {\n @PropSync(\"unit\", { default: undefined }) model?: ReservationAccUnitModel;\n @Prop({ default: null }) reservation?: ReservationModel;\n\n lookupOpen = false;\n editOpen = false;\n\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Getter(\"appParams/showCopyGuestsButton\")\n showCopyGuestsButton?: boolean;\n\n async created() {\n const promises = [];\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries());\n }\n await Promise.all(promises);\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n updateChildren() {\n if (this.model) {\n if (!this.model.numberOfChildren || this.model.numberOfChildren <= 0) {\n this.model.childrenAges = [];\n return;\n }\n\n while (this.model.childrenAges.length < this.model.numberOfChildren) {\n this.model.childrenAges.push(0);\n }\n\n while (this.model.childrenAges.length > this.model.numberOfChildren) {\n this.model.childrenAges.pop();\n }\n }\n }\n\n get customerLookupFilterPrefil() {\n return {\n excludeIds:\n this.reservation?.accomodationUnitTypes\n .flatMap((x) => x.guests)\n .map((x) => x.id) ?? [],\n };\n }\n\n @Action(\"reservation/setGuestsUnchanged\") setGuestsUnchanged?: (\n payload: boolean\n ) => Promise;\n @Getter(\"reservation/guestsUnchanged\") guestsUnchanged?: boolean;\n\n selected(customers: VCustomer[] | CustomerModel[]) {\n if (this.model) {\n for (const guest of customers) {\n this.model.guests.push({\n id: guest.id,\n reservationsAccUnitTypeGuestId: 0,\n name: (guest as VCustomer).name\n ? (guest as VCustomer).name\n : (guest as CustomerModel).isLegalEntity\n ? (guest as CustomerModel).legalEntityName ?? \"\"\n : (guest as CustomerModel).firstName +\n \" \" +\n (guest as CustomerModel).lastName,\n eMail: guest.eMail || \"\",\n telephoneNumber: guest.telephoneNumber || \"\",\n countryOfResidenceId: guest.countryOfResidenceId,\n dateOfBirth: guest.dateOfBirth,\n city: guest.city,\n isLegalEntity: guest.isLegalEntity,\n identificationNumber:\n ((guest as VCustomer).name\n ? (guest as VCustomer).identificationNumber\n : (guest as CustomerModel).isLegalEntity\n ? (guest as CustomerModel).businessId\n : (guest as CustomerModel).identificationDocumentNumber) ?? \"\",\n isCheckedIn: false,\n isCheckedOut: false,\n isEVisitorCheckedIn: false,\n isEVisitorCheckedOut: false,\n isRoomHolder: false,\n status: true,\n menuShown: false,\n });\n\n this.setGuestsUnchanged && this.setGuestsUnchanged(false);\n }\n\n this.setFirstGuestAsRoomHolder();\n\n const today = new Date();\n const stringToday = today.toISOString().substring(0, 10);\n today.setFullYear(today.getFullYear() - 18);\n const stringDate18YearsAgo = today.toISOString().substring(0, 10);\n\n const adults = this.model.guests.filter(\n (x) =>\n !x.dateOfBirth ||\n (x.dateOfBirth as string).substring(0, 10) <= stringDate18YearsAgo\n );\n const children = this.model.guests.filter(\n (x) =>\n x.dateOfBirth &&\n (x.dateOfBirth as string).substring(0, 10) > stringDate18YearsAgo\n );\n\n if (this.model.numberOfAdults < adults.length)\n this.model.numberOfAdults = adults.length;\n if (this.model.numberOfChildren < children.length) {\n const skip = this.model.childrenAges.length;\n children.slice(skip).forEach((x) => {\n const age = Math.floor(\n differenceInYears(\n new Date(x.dateOfBirth as string),\n new Date(stringToday)\n )\n );\n this.model?.childrenAges.push(age);\n });\n this.model.numberOfChildren = children.length;\n }\n }\n }\n\n get guestDepartureTime() {\n const unitDepartureTime = this.model?.expectedDepartureTime ?? \"\";\n\n if (unitDepartureTime === \"\") {\n return this.model?.propertyCheckoutTimeUntil.substring(0, 5);\n }\n\n return unitDepartureTime;\n }\n\n editGuestId: number | null = null;\n editGuest(guest: ReservationGuestModel) {\n this.editGuestId = guest.reservationsAccUnitTypeGuestId;\n this.editOpen = true;\n guest.menuShown = false;\n }\n\n guestUpdated() {\n this.$emit(\"updateGuest\");\n this.editOpen = false;\n }\n\n getGuestName(guest: ReservationCustomerModel) {\n const words = guest.name.split(\" \").filter((x) => x.trim());\n let initials = \"\";\n words.forEach((x) => (initials += x[0].toUpperCase()));\n return initials;\n }\n\n getCountryOfResidence(guest: ReservationCustomerModel) {\n const country = this.countries?.find(\n (x) => x.id == guest.countryOfResidenceId\n );\n if (country) {\n return this.$t(\n `Country.Official.${country.isoThreeLetterCode}`\n ).toString();\n }\n\n return \"\";\n }\n\n get hasWarning() {\n if (this.model) {\n return (\n this.model.numberOfAdults + this.model.numberOfChildren >\n this.model.maxOccupancy ||\n this.model.numberOfAdults > this.model.maxNumberOfAdults\n );\n }\n return false;\n }\n\n get rules() {\n return {\n age: (value: number) =>\n ((!!value || value === 0) && value >= 0 && value % 1 == 0) ||\n this.$t(\"Reservation.ChildAgeMustBeWholePositiveNumber\"),\n mustBeWholeNumber: (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n mustBePositive: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n };\n }\n\n get childrenAgesValid() {\n if (this.model) {\n const result = this.model.childrenAges.every((age) => {\n return (!!age || age === 0) && age >= 0 && age % 1 == 0;\n });\n\n return result;\n }\n\n return true;\n }\n set numberOfChildren(value: number | null) {\n if (this.model) {\n this.model.numberOfChildren = value ?? 0;\n }\n }\n\n get numberOfChildren() {\n return this.model?.numberOfChildren ?? 0;\n }\n\n set numberOfAdults(value: number | null) {\n if (this.model) {\n this.model.numberOfAdults = value ?? 0;\n }\n }\n\n get numberOfAdults() {\n return this.model?.numberOfAdults ?? 0;\n }\n\n guestStatusDescriptionTR(g: ReservationGuestModel) {\n if (g) {\n if (g.isCheckedOut) return \"Reservation.Guest.CheckedOut\";\n if (g.isCheckedIn) return \"Reservation.Guest.CheckedIn\";\n }\n return \"Reservation.Guest.NotCheckedIn\";\n }\n\n guestEVisitorStatusDescriptionTR(g: ReservationGuestModel) {\n if (g) {\n if (g.isEVisitorCheckedOut) return \"Reservation.Guest.CheckedOut\";\n if (g.isEVisitorCheckedIn) return \"Reservation.Guest.CheckedIn\";\n }\n return \"Reservation.Guest.NotCheckedIn\";\n }\n\n updateGuests(guest: ReservationGuestModel) {\n if (this.model) {\n this.model.guests.map((x) => {\n if (x.id !== guest.id) x.isRoomHolder = false;\n\n return x;\n });\n }\n }\n\n async saveGuestPlaceholder() {\n if (this.reservation?.id && this.model && this.model.id) {\n const data = {\n reservationAccUnitTypeId: this.model.id,\n guestPlaceholder: this.model.guestPlaceholder,\n };\n\n const result = await this.axios.put(\n \"/Reservations/UpdateGuestPlaceholder\",\n data\n );\n\n if (result.status == 200) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GuestPlaceholder.SaveSuccess\"),\n timeout: 5000,\n });\n }\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"GuestPlaceholder.RequiresSaving\"),\n timeout: 5000,\n });\n }\n }\n\n async deleteGuestPlaceholder() {\n if (this.reservation?.id && this.model && this.model.id) {\n const data = {\n reservationAccUnitTypeId: this.model.id,\n };\n\n const result = await this.axios.put(\n \"/Reservations/DeleteGuestPlaceholder\",\n data\n );\n\n if (result.status == 200) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GuestPlaceholder.DeleteSuccess\"),\n timeout: 5000,\n });\n\n this.model.guestPlaceholder = null;\n }\n } else {\n if (this.model) {\n this.model.guestPlaceholder = null;\n }\n }\n }\n\n setFirstGuestAsRoomHolder() {\n if (\n this.model &&\n this.model?.guests.length > 0 &&\n !this.model?.guests.some((x) => x.isRoomHolder == true)\n ) {\n this.model.guests[0].isRoomHolder = true;\n }\n }\n\n removingGuest = false;\n removeGuest(guest: ReservationGuestModel, overrides: string[]) {\n // in case guest is not yet saved on reservation just remove them on the client\n if (this.model && guest.reservationsAccUnitTypeGuestId === 0) {\n const index = this.model.guests.findIndex((x) => x == guest);\n if (index != -1) {\n this.model.guests.splice(index, 1);\n this.setFirstGuestAsRoomHolder();\n }\n }\n // otherwise remove the guest serverside\n else {\n const handleCodes = [\"Reservation.RemoveGuest.CheckedIn\"];\n const adapter = brokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h, {eVisitorServiceName: this.eVisitorIntegrationName}).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const confirmOverrideNotification = (\n x: AxiosResponse & { handled: string[] }\n ) =>\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: formatBrokenRuleNames(x.handled),\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.removeGuest(guest, x.handled);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n this.$emit(\"removeGuestEnd\", false);\n return true;\n },\n },\n ],\n } as Notification);\n\n const isOverriding = overrides.length !== 0;\n\n this.removingGuest = true;\n this.$emit(\"removeGuestStart\");\n return Vue.axios\n .post(\n `/reservations/RemoveGuest`,\n {\n reservationsAccUnitTypeGuestId:\n guest.reservationsAccUnitTypeGuestId,\n overrideRules: overrides,\n },\n isOverriding ? undefined : { adapter }\n )\n .then(() => {\n this.$emit(\"removeGuestEnd\", true);\n })\n .finally(() => {\n this.removingGuest = false;\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n this.$emit(\"removeGuestEnd\", false);\n });\n }\n }\n\n unitCheckIn() {\n this.$emit(\"checkInUnit\", this.model?.accomodationUnitId);\n }\n unitCheckOut() {\n this.$emit(\"checkOutUnit\", this.model?.accomodationUnitId);\n }\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitGuests.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitGuests.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnitGuests.vue?vue&type=template&id=9b6def06&scoped=true&\"\nimport script from \"./ReservationFormUnitGuests.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnitGuests.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnitGuests.vue?vue&type=style&index=0&id=9b6def06&scoped=true&lang=scss&\"\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 \"9b6def06\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAvatar,VBadge,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VIcon,VMenu,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showArrivalDeparture || _vm.showDeposit)?_c('v-container',{staticClass:\"pt-0 d-flex\",attrs:{\"fluid\":\"\"}},[(_vm.showArrivalDeparture)?_c('div',{staticClass:\"d-flex flex-grow-1 max-width-50p mr-2\"},[_c('TimeField',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('Reservation.Unit.ExpectedArrivalTime'),\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},model:{value:(_vm.model.expectedArrivalTime),callback:function ($$v) {_vm.$set(_vm.model, \"expectedArrivalTime\", $$v)},expression:\"model.expectedArrivalTime\"}}),_c('TimeField',{staticClass:\"ml-2\",attrs:{\"label\":_vm.$t('Reservation.Unit.ExpectedDepartureTime'),\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},model:{value:(_vm.model.expectedDepartureTime),callback:function ($$v) {_vm.$set(_vm.model, \"expectedDepartureTime\", $$v)},expression:\"model.expectedDepartureTime\"}})],1):_vm._e(),(_vm.showDeposit)?_c('div',{staticClass:\"d-flex ml-2\"},[_c('v-text-field',{staticClass:\"deposit mr-2\",attrs:{\"type\":\"number\",\"label\":_vm.$t('DamageDeposit'),\"rules\":[_vm.rules.noNegativeNumbers, _vm.rules.maxDecimals],\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.model.damageDeposit),callback:function ($$v) {_vm.$set(_vm.model, \"damageDeposit\", _vm._n($$v))},expression:\"model.damageDeposit\"}}),_c('div',{staticClass:\"currency ml-2\"},[(_vm.hasDeposit)?_c('v-select',{attrs:{\"items\":_vm.currencies,\"item-value\":\"id\",\"item-text\":\"isoCode\",\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$t('Currency') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.model.depositCurrencyId),callback:function ($$v) {_vm.$set(_vm.model, \"depositCurrencyId\", $$v)},expression:\"model.depositCurrencyId\"}}):_vm._e()],1)],1):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { ReservationAccUnitModel } from \"./types\";\nimport WorkingCurrencyDisplay from \"@/components/misc/WorkingCurrencyDisplay.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\n\n@Component({ components: { WorkingCurrencyDisplay, TimeField } })\nexport default class ReservationFormUnitFields extends Vue {\n @PropSync(\"unit\", { default: undefined }) model?: ReservationAccUnitModel;\n\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Getter(\"appParams/reservationHideArrivalDeparture\") reservationHideArrivalDeparture?: boolean;\n @Getter(\"appParams/reservationHideDeposit\") reservationHideDeposit?: boolean;\n\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n await this.refreshCurrencies();\n }\n }\n\n get showArrivalDeparture()\n {\n return !this.reservationHideArrivalDeparture;\n }\n\n get showDeposit()\n {\n return !this.reservationHideDeposit;\n }\n\n get hasDeposit() {\n return !!this.model?.damageDeposit || this.model?.damageDeposit === 0;\n }\n\n countDecimals(num: number) {\n return num.toString().split(\".\")[1]?.length || 0;\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n noNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n maxDecimals: (value: any) =>\n !(this.countDecimals(+value) > 2) ||\n this.$t(\"Validation.CanOnlyHaveTwoDecimals\"),\n };\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitFields.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitFields.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnitFields.vue?vue&type=template&id=2461f06e&\"\nimport script from \"./ReservationFormUnitFields.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnitFields.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnitFields.vue?vue&type=style&index=0&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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VContainer,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-data-table',{attrs:{\"headers\":_vm.translatedHeaders,\"items\":_vm.itemsForTable,\"items-per-page\":-1,\"item-key\":\"index\",\"hide-default-footer\":\"\",\"item-class\":_vm.getRowClass,\"no-data-text\":_vm.$t('Reservation.AddOnService.NoneAdded')},on:{\"click:row\":_vm.openEditForm},scopedSlots:_vm._u([{key:\"item.name\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.getServiceName(item))+\" \")]}},{key:\"item.serviceDateFrom\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.needsRange(item))?_c('DateField',{attrs:{\"label\":\"\",\"outlined\":false,\"clearable\":true,\"range\":true,\"rules\":[_vm.rules.requiredDateRange(item.serviceRange)]},on:{\"input\":function($event){return _vm.itemRangeChanged(item)},\"click\":function($event){$event.stopPropagation();}},model:{value:(item.serviceRange),callback:function ($$v) {_vm.$set(item, \"serviceRange\", $$v)},expression:\"item.serviceRange\"}}):_c('DateField',{attrs:{\"label\":\"\",\"outlined\":false,\"clearable\":true,\"range\":false},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(item.serviceDateFrom),callback:function ($$v) {_vm.$set(item, \"serviceDateFrom\", $$v)},expression:\"item.serviceDateFrom\"}})]}},{key:\"item.unitOfMeasureId\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(_vm.getUnitOfMeasure(item)))+\" \")]}},{key:\"item.grossUnitPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('CurrencyDisplay',{attrs:{\"value\":item.grossUnitPrice,\"currencyId\":item.currencyId}})]}},{key:\"item.taxRateId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.taxRateDisplay(item.taxRateId))+\" \")])]}},{key:\"item.discountPercent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticStyle:{\"width\":\"80px\"}},[_c('div',{staticClass:\"discountDiv\"},[_vm._v(\" \"+_vm._s(item.discountPercent != null && item.discountPercent !== 0.0 ? item.discountPercent.toFixed(2) : \"0\")+\" % \")]),_c('div',{staticClass:\"tooltipDiv\"},[_c('v-tooltip',{attrs:{\"right\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,true)},[_vm._v(\" \"+_vm._s(item.discountPercent)+\" % \")])],1)])]}},{key:\"item.grossPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('CurrencyDisplay',{attrs:{\"value\":_vm.setGrossPrice(item),\"currencyId\":item.currencyId}})]}},{key:\"item.calculationMethodId\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.priceCalculationMethodDisplay(item.calculationMethodId))+\" \")]}},{key:\"header.actions\",fn:function(){return [(_vm.hasAvailableService)?_c('v-btn',{attrs:{\"icon\":\"\",\"color\":_vm.$vuetify.theme.dark ? 'white' : 'primary'},on:{\"click\":function($event){_vm.addFormOpen = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-plus-square\")])],1):_vm._e()]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.remove(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-trash\")])],1)]}}])}),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATION_ADDONS\"}},[(_vm.addFormOpen)?_c('RightDrawer',{attrs:{\"open\":_vm.addFormOpen},on:{\"update:open\":function($event){_vm.addFormOpen=$event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{on:{\"click\":function($event){_vm.addFormOpen = false;\n _vm.serviceQuantityEdited = [];\n _vm.selectedToAdd = [];}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.pagingText)+\" \"),(_vm.filteredItems.length > _vm.itemsPerPage)?_c('v-btn',{staticClass:\"ml-4\",attrs:{\"icon\":\"\",\"disabled\":_vm.page === 1},on:{\"click\":function($event){_vm.page--}}},[_c('v-icon',[_vm._v(\"fas fa-chevron-left\")])],1):_vm._e(),(_vm.filteredItems.length > _vm.itemsPerPage)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"disabled\":_vm.page * _vm.itemsPerPage >= _vm.filteredItems.length},on:{\"click\":function($event){_vm.page++}}},[_c('v-icon',[_vm._v(\"fas fa-chevron-right\")])],1):_vm._e()],1)],1)]},proxy:true}],null,false,3204230714)},[_c('v-toolbar',[_c('span',{staticClass:\"form-title\"},[_vm._v(_vm._s(_vm.$t(\"AddOnService.New\")))]),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{staticClass:\"search-input\",attrs:{\"label\":_vm.$t('Search'),\"append-icon\":\"fal fa-search\",\"dense\":\"\",\"outlined\":\"\",\"rounded\":\"\"},model:{value:(_vm.nameFilter),callback:function ($$v) {_vm.nameFilter=$$v},expression:\"nameFilter\"}})],1)],1),_c('v-container',{staticClass:\"services-container\"},[_c('v-data-table',{attrs:{\"items\":_vm.filteredItems,\"hide-default-header\":\"\",\"hide-default-footer\":\"\",\"item-key\":\"addOnServiceId\",\"items-per-page\":10,\"page\":_vm.page},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var index = ref.index;\nreturn [(index !== 0)?_c('v-divider'):_vm._e(),_c('v-row',{key:item.addOnServiceId,staticClass:\"mx-0\"},[_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"12\"}},[_c('v-form',{model:{value:(item.isFormValid),callback:function ($$v) {_vm.$set(item, \"isFormValid\", $$v)},expression:\"item.isFormValid\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"indigo\",\"disabled\":!item.isFormValid},on:{\"click\":function($event){return _vm.addItem(item, false)}}},[_c('v-icon',{attrs:{\"color\":\"white\",\"small\":\"\"}},[_vm._v(\"fa-plus\")])],1),_c('div',[_vm._v(_vm._s(item.name))])],1)]),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"text-fields\",attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AddOnService.Quantity'),\"rules\":[\n _vm.rules.required,\n _vm.rules.noNegativeNumbers(item.decimalQuantity) ],\"validateInput\":true,\"disabled\":item.isCityTax},on:{\"input\":function($event){return _vm.setGrossPrice(item)}},model:{value:(item.decimalQuantity),callback:function ($$v) {_vm.$set(item, \"decimalQuantity\", $$v)},expression:\"item.decimalQuantity\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Reservation.AddOnService.Discount'),\"rules\":[\n _vm.rules.positiveDiscount(item.discountPercent) ],\"decimalPlaces\":6,\"displayDecimalPlaces\":2,\"suffix\":'%',\"disabled\":item.isCityTax,\"validateInput\":true,\"maxValue\":{ value: 100, isExclusive: false }},on:{\"input\":function($event){return _vm.setGrossPrice(item)}},model:{value:(item.discountPercent),callback:function ($$v) {_vm.$set(item, \"discountPercent\", $$v)},expression:\"item.discountPercent\"}})],1),(_vm.tenantPaysVat)?_c('v-col',{staticClass:\"text-fields pl-2\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"value\":_vm.taxRateDisplay(item.taxRateId),\"hide-details\":\"\",\"disabled\":\"\"}})],1):_vm._e()],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[(_vm.tenantPaysVat)?_c('v-col',{staticClass:\"text-fields\",attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"value\":item.grossUnitPrice,\"outlined\":false,\"label\":_vm.$t('AddOnService.UnitGrossPrice'),\"disabled\":true,\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId}})]},proxy:true}],null,true)})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.tenantPaysVat\n ? _vm.$t('AddOnService.GrossPrice')\n : _vm.$t('AddOnService.TotalPrice'),\"disabled\":item.isCityTax,\"validateInput\":true,\"minValue\":{ value: 0, isExclusive: false }},on:{\"blur\":function($event){return _vm.setDiscount(item)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId}})]},proxy:true}],null,true),model:{value:(item.grossPrice),callback:function ($$v) {_vm.$set(item, \"grossPrice\", $$v)},expression:\"item.grossPrice\"}})],1)],1)],1)],1)],1)],1)],1)]}}],null,false,3174294030)})],1)],1):_vm._e()],1),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATION_ADDONS\"}},[(_vm.editFormOpen)?_c('RightDrawer',{attrs:{\"open\":_vm.editFormOpen},on:{\"update:open\":function($event){_vm.editFormOpen=$event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.editFormValid},on:{\"click\":_vm.applyEdit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.editFormOpen = false;\n _vm.anyFormOpen = false;\n _vm.editModel = null;}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}],null,false,1694203364)},[_c('v-toolbar',[(_vm.editModel)?_c('span',{staticClass:\"form-title\"},[_vm._v(_vm._s(_vm.editModel.name)+\" - \"+_vm._s(_vm.priceCalculationMethodDisplay(_vm.editModel.calculationMethodId)))]):_vm._e()]),_c('v-container',[_c('v-form',{model:{value:(_vm.editFormValid),callback:function ($$v) {_vm.editFormValid=$$v},expression:\"editFormValid\"}},[(_vm.editModel)?_c('v-row',{staticClass:\"align-baseline\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AddOnService.Quantity'),\"rules\":[\n _vm.rules.required(_vm.editModel.decimalQuantity),\n _vm.rules.noNegativeNumbers(_vm.editModel.decimalQuantity) ],\"outlined\":false,\"validateInput\":true},on:{\"input\":function($event){return _vm.setGrossPrice(_vm.editModel)}},model:{value:(_vm.editModel.decimalQuantity),callback:function ($$v) {_vm.$set(_vm.editModel, \"decimalQuantity\", $$v)},expression:\"editModel.decimalQuantity\"}})],1),(_vm.showAddOnServiceDiscount)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Reservation.AddOnService.Discount'),\"rules\":[_vm.rules.positiveDiscount(_vm.editModel.discountPercent)],\"suffix\":'%',\"decimalPlaces\":6,\"displayDecimalPlaces\":2,\"validateInput\":true},on:{\"input\":function($event){return _vm.setGrossPrice(_vm.editModel)}},model:{value:(_vm.editModel.discountPercent),callback:function ($$v) {_vm.$set(_vm.editModel, \"discountPercent\", $$v)},expression:\"editModel.discountPercent\"}})],1):_vm._e(),(_vm.tenantPaysVat)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-text-field',{attrs:{\"value\":_vm.taxRateDisplay(_vm.editModel.taxRateId),\"hide-details\":\"\",\"disabled\":\"\"}})],1):_vm._e(),(_vm.tenantPaysVat)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"value\":_vm.editModel.grossUnitPrice,\"outlined\":false,\"label\":_vm.$t('AddOnService.UnitGrossPrice'),\"disabled\":true,\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.editModel.currencyId}})]},proxy:true}],null,false,3127930026)})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.tenantPaysVat\n ? _vm.$t('AddOnService.GrossPrice')\n : _vm.$t('AddOnService.TotalPrice'),\"validateInput\":true,\"minValue\":{ value: 0, isExclusive: false }},on:{\"blur\":function($event){return _vm.setDiscount(_vm.editModel)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.editModel.currencyId}})]},proxy:true}],null,false,3127930026),model:{value:(_vm.editModel.grossPrice),callback:function ($$v) {_vm.$set(_vm.editModel, \"grossPrice\", $$v)},expression:\"editModel.grossPrice\"}})],1)],1):_vm._e()],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { ReservationAccUnitModel, ReservationModel } from \"./types\";\nimport {\n calculateAddOnServiceQuantity,\n addOnServiceNeedsRange,\n} from \"./functions\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport {\n CalculationMethods,\n PriceCalculationMethodView,\n} from \"@/shared/models/priceCalculationMethods\";\nimport { AddOnServiceModel } from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\nimport { DateTime } from \"luxon\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { PriceCalculationMethodsEnum } from \"@/shared/models/enums.type\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport * as _ from \"lodash\";\nimport { UnitOfMeasureView } from \"@/shared/models/unitOfMeasure\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { differenceInYears, getAge } from \"@/shared/dateFormatUtils\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\n\nexport type BookingFeesFactors = {\n accommodationPrice: number;\n servicesPrice: number;\n};\n\n@Component({\n components: {\n RightDrawer,\n NumericInputImproved,\n CurrencyDisplay,\n RequireRole,\n NumericInput,\n DateField,\n },\n})\nexport default class ReservationFormUnitAddOnServices extends Vue {\n @PropSync(\"reservation\", { default: undefined })\n reservationModel?: ReservationModel;\n @PropSync(\"unit\", { default: undefined }) model?: ReservationAccUnitModel;\n @PropSync(\"formOpen\", { default: false }) anyFormOpen?: boolean;\n\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Action(\"codebooks/refreshPriceCalculationMethods\")\n refreshPriceCalculationMethods?: () => Promise;\n @Getter(\"codebooks/priceCalculationMethods\")\n priceCalculationMethods?: PriceCalculationMethodView[];\n @Action(\"codebooks/refreshTaxRates\")\n refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n @Getter(\"codebooks/unitsOfMeasure\") unitsOfMeasure?: UnitOfMeasureView[];\n @Action(\"appParams/refreshAppParams\") refreshAppParams?: () => Promise;\n @Getter(\"appParams/tenantPaysVat\") tenantPaysVat?: boolean;\n @Getter(\"appParams/calculateWithEVisitorDates\")\n calculateWithEVisitorDates?: boolean;\n @Getter(\"appParams/showAOSPeriodColumn\") showAOSPeriodColumn?: boolean;\n @Getter(\"appParams/tenantShowAddOnServiceDiscount\")\n showAddOnServiceDiscount?: boolean;\n\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get canEditAddons() {\n return policyChecker(\"MODIFY_RESERVATION_ADDONS\")(this.claims);\n }\n\n get unitCurrencyId() {\n return (\n this.model?.ratePlan?.currencyId ??\n this.financialSettings?.workingCurrency.id\n );\n }\n\n nameFilter = \"\";\n itemsPerPage = 10;\n page = 1;\n get filteredItems() {\n const filtered = this.addItemsArray.filter((item) =>\n item.name.toLowerCase().includes(this.nameFilter.toLowerCase())\n );\n return filtered;\n }\n\n get pagingText() {\n const max = this.filteredItems.length;\n const lower = (this.page - 1) * this.itemsPerPage + 1;\n const higher = Math.min(this.page * this.itemsPerPage, max);\n const item = `${lower}-${higher}`;\n return this.$t(\"{item} of {items}\", { item: item, items: max });\n }\n\n @Watch(\"nameFilter\")\n nameFilterWatch() {\n this.page = 1;\n }\n\n currencyConversionService?: CurrencyConversionService;\n async created() {\n const promises = [];\n\n if (!this.financialSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n if (this.tenantPaysVat === undefined && this.refreshAppParams) {\n promises.push(this.refreshAppParams());\n }\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 &&\n this.refreshPriceCalculationMethods\n ) {\n promises.push(this.refreshPriceCalculationMethods());\n }\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n promises.push(this.refreshTaxRates());\n }\n await Promise.all(promises);\n\n if (this.financialSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n\n if (this.model?.selectedServices.filter((x) => x.isCityTax).length == 0) {\n this.reAddCityTax = false;\n }\n if (!this.tenantPaysVat) {\n this.headers = this.headers.filter((x) => x.value !== \"taxRateId\");\n }\n }\n\n availableServicesCopy: AddOnServiceModel[] = [];\n\n addFormOpen = false;\n\n @Watch(\"addFormOpen\")\n addFormOpenChanged(fresh: boolean) {\n this.page = 1;\n if (fresh && this.model?.availableServices) {\n this.anyFormOpen = true;\n this.availableServicesCopy = _.cloneDeep(this.model?.availableServices);\n this.availableServicesCopy =\n this.availableServicesCopy.filter(\n (x) =>\n !this.items.some(\n (s) => s.isCityTax && s.addOnServiceId == x.addOnServiceId\n )\n ) || [];\n this.availableServicesCopy.forEach((element) => {\n element.decimalQuantity = this.getDefaultQuantity(element);\n this.setGrossPrice(element, true);\n });\n }\n if (fresh == false) {\n this.anyFormOpen = false;\n }\n }\n\n needsRange(item: AddOnServiceModel) {\n return addOnServiceNeedsRange(item.calculationMethodId);\n }\n\n @Watch(\"items\")\n itemsChanged(fresh: AddOnServiceModel[]) {\n if (fresh.filter((x) => x.isCityTax).length == 0) {\n this.reAddCityTax = false;\n } else {\n this.reAddCityTax = true;\n }\n }\n\n get hasAvailableService() {\n if (this.model && this.model.availableServices) {\n return this.model.availableServices.length > 0;\n }\n return false;\n }\n\n get items() {\n if (\n this.model &&\n this.addOnServiceQuantityFactors.numberOfTaxableChildren > 0\n ) {\n const childCityTaxService = this.model.availableServices?.find(\n (x) =>\n x.calculationMethodId ==\n PriceCalculationMethodsEnum.PerChildPerNight && x.isCityTax\n );\n\n if (childCityTaxService) {\n const alreadyExists = this.model.selectedServices.some(\n (x) =>\n x.addOnServiceId === childCityTaxService.addOnServiceId &&\n x.calculationMethodId ==\n PriceCalculationMethodsEnum.PerChildPerNight\n );\n\n if (!alreadyExists) {\n const childServiceToAdd = _.cloneDeep(childCityTaxService);\n childServiceToAdd.decimalQuantity =\n this.addOnServiceQuantityFactors.numberOfTaxableChildren *\n this.addOnServiceQuantityFactors.numberOfDays;\n\n this.model?.selectedServices.push(childServiceToAdd);\n }\n }\n }\n\n return this.model?.selectedServices || [];\n }\n get itemsForTable() {\n return this.items.map((item, index) => {\n const needsRange = this.needsRange(item);\n\n item.idx = index;\n\n if (needsRange) {\n if (!item.serviceDateFrom) {\n item.serviceDateFrom = this.model?.arrivalDate.substr(0, 10) ?? \"\";\n } else {\n item.serviceDateFrom = item.serviceDateFrom.substr(0, 10);\n }\n\n if (!item.serviceDateTo) {\n item.serviceDateTo = this.model?.departureDate.substr(0, 10) ?? \"\";\n } else {\n item.serviceDateTo = item.serviceDateTo.substr(0, 10);\n }\n\n item.serviceRange = [item.serviceDateFrom, item.serviceDateTo];\n } else {\n if (!item.serviceDateFrom) {\n item.serviceDateFrom = this.model?.arrivalDate.substr(0, 10) ?? \"\";\n } else {\n item.serviceDateFrom = item.serviceDateFrom.substr(0, 10);\n }\n }\n\n return {\n ...item,\n index: index,\n };\n });\n }\n\n addItemsArray: AddOnServiceModel[] = [];\n get factorsForAddServicesListRefresh() {\n return {\n services: this.availableServicesCopy,\n unitCurrencyId: this.unitCurrencyId,\n };\n }\n @Watch(\"factorsForAddServicesListRefresh\", { deep: true, immediate: true })\n factorsForAddServicesListRefreshWatch() {\n const services = _.cloneDeep(this.availableServicesCopy);\n\n // in case a rate plan that is not in the working currency is selected for the unit, convert add on services to the rate plan's currency\n // in case of rate plans with working currency, keep the services as they are\n if (this.unitCurrencyId != this.financialSettings?.workingCurrency.id) {\n services\n .filter((s) => !s.isCityTax)\n .forEach((s) =>\n this.convertServiceCurrency(s, this.unitCurrencyId ?? s.currencyId)\n );\n }\n\n this.addItemsArray = services;\n }\n\n // when unit's currency is changed (by changing the rate plan for example) convert the services as usual\n // unless the new currency === working currency, in this case reset services currencies to original\n @Watch(\"unitCurrencyId\")\n unitCurrencyIdWatch() {\n if (this.unitCurrencyId && this.currencyConversionService) {\n this.items\n .filter((x) => !x.isCityTax)\n .forEach((x) => {\n if (\n this.unitCurrencyId === this.financialSettings?.workingCurrency.id\n ) {\n this.resetServiceCurrency(x);\n } else {\n this.convertServiceCurrency(x, this.unitCurrencyId ?? x.currencyId);\n }\n });\n }\n }\n\n convertServiceCurrency(service: AddOnServiceModel, currencyId: number) {\n service.netUnitPrice =\n this.currencyConversionService?.convertCurrency(\n service.netUnitPrice,\n service.currencyId,\n currencyId\n ) ?? service.netUnitPrice;\n\n service.grossPrice =\n this.currencyConversionService?.convertCurrency(\n service.grossPrice,\n service.currencyId,\n currencyId\n ) ?? service.grossPrice;\n\n if (service.periods) {\n service.periods.forEach((p) => {\n p.amount =\n this.currencyConversionService?.convertCurrency(\n p.amount,\n service.currencyId,\n currencyId\n ) ?? p.amount;\n });\n }\n\n service.currencyId = currencyId;\n }\n isFormValid = false;\n\n resetServiceCurrency(service: AddOnServiceModel) {\n const originalServiceCurrency = this.model?.availableServices.find(\n (x) => x.addOnServiceId == service.addOnServiceId\n )?.currencyId;\n\n if (originalServiceCurrency) {\n this.convertServiceCurrency(service, originalServiceCurrency);\n }\n }\n\n headers = [] as {\n text: string;\n value: string;\n class?: string;\n sortable?: boolean;\n align?: string;\n }[];\n\n @Watch(\"showAddOnServiceDiscount\", { immediate: true })\n showAddOnServiceDiscountWatch() {\n this.headers = [\n { text: \"Reservation.AddOnService.Name\", value: \"name\" },\n { text: \"Date\", value: \"serviceDateFrom\", class: \"date-header\" },\n { text: \"AddOnService.CalculationMethod\", value: \"calculationMethodId\" },\n { text: \"AddOnService.UnitOfMeasure\", value: \"unitOfMeasureId\" },\n { text: \"Reservation.AddOnService.Quantity\", value: \"decimalQuantity\" },\n {\n text: \"VFinancialDocument.LineItem.grossUnitPrice\",\n value: \"grossUnitPrice\",\n },\n { text: \"Reservation.AddOnService.TaxRate\", value: \"taxRateId\" },\n ...(this.showAddOnServiceDiscount\n ? [\n {\n text: \"Reservation.AddOnService.Discount\",\n value: \"discountPercent\",\n },\n ]\n : []),\n { text: \"Reservation.AddOnService.GrossPrice\", value: \"grossPrice\" },\n { text: \"\", value: \"actions\", sortable: false, align: \"end\" },\n ];\n }\n\n get allowedHeaders() {\n let headers = this.headers;\n\n if (!this.showAOSPeriodColumn) {\n headers = headers.filter((x) => x.value !== \"serviceDateFrom\");\n }\n\n return this.canEditAddons\n ? headers\n : headers.filter((x) => x.value !== \"actions\");\n }\n\n get translatedHeaders() {\n return this.allowedHeaders.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n getServiceName(service: AddOnServiceModel) {\n let toReturn = service.name;\n if (\n service.to &&\n service.from &&\n this.itemsForTable.filter(\n (x) => x.addOnServiceId == service.addOnServiceId\n ).length > 1\n ) {\n toReturn += ` (${this.$d(new Date(service.from))} - ${this.$d(\n new Date(service.to)\n )})`;\n }\n\n return toReturn;\n }\n\n getUnitOfMeasure(item: AddOnServiceModel) {\n const uom = this.unitsOfMeasure?.find((x) => x.id == item.unitOfMeasureId);\n return uom?.textResourceKey;\n }\n\n priceCalculationMethodDisplay(priceCalculationMethodId: number) {\n const pcm = this.priceCalculationMethods?.find(\n (tr) => tr.id === priceCalculationMethodId\n );\n return pcm ? this.$t(pcm.textResourceKey) : \"\";\n }\n\n taxRateDisplay(taxRateId: number) {\n const taxRate = this.taxRates?.find((t) => t.id === taxRateId);\n return taxRate ? this.$t(taxRate.textResourceKey) : \"\";\n }\n\n setDiscount(item: AddOnServiceModel) {\n const totalGrossPrice = round(\n item.grossUnitPrice * item.decimalQuantity,\n 2\n );\n const priceFactor =\n totalGrossPrice != 0 ? round(item.grossPrice / totalGrossPrice, 8) : 1;\n const discountFactor = (1 - priceFactor) * 100;\n item.discountPercent = round(discountFactor, 6);\n //item.grossPrice = this.setGrossPrice(item);\n }\n\n setGrossPrice(item: AddOnServiceModel, isForDrawer = false) {\n const taxRateFactor = round(\n (this.taxRates?.find((e) => e.id === item.taxRateId)?.rate ?? 0) / 100,\n 4\n );\n const discountFactor = item.discountPercent\n ? 1 - round(item.discountPercent / 100, 8)\n : 1;\n\n const totalGrossPrice = round(\n item.grossUnitPrice * item.decimalQuantity,\n 2\n );\n let grossPrice = round(totalGrossPrice * discountFactor, 2);\n\n if (item.pricesAreSeasonal) {\n if ((isForDrawer && item.id > 0) || (!item.from && !item.to)) {\n const today = new Date().toISOString().substring(0, 10);\n const period = item.periods.find(\n (x) =>\n today >= x.from.substring(0, 10) && today <= x.to.substring(0, 10)\n );\n item.grossUnitPrice = period ? period.amount : item.grossUnitPrice;\n grossPrice = period\n ? round(round(period.amount * item.decimalQuantity) * discountFactor)\n : grossPrice;\n } else {\n const period = item.periods.find(\n (x) =>\n x.from.substring(0, 10) == item.from &&\n x.to.substring(0, 10) == item.to\n );\n grossPrice = period\n ? round(round(period.amount * item.decimalQuantity) * discountFactor)\n : grossPrice;\n item.grossUnitPrice = period ? period.amount : item.grossUnitPrice;\n }\n }\n\n item.grossPrice = grossPrice;\n item.netUnitPrice = round(item.grossUnitPrice / (1 + taxRateFactor));\n return item.grossPrice;\n }\n\n getDefaultQuantity(item: AddOnServiceModel) {\n const stayLength = this.differenceInDays(\n new Date(this.model?.arrivalDate ?? \"\"),\n new Date(this.model?.departureDate ?? \"\")\n );\n const numAdults = this.model?.numberOfAdults ?? 0;\n const numChildren = this.model?.numberOfChildren ?? 0;\n const numTaxableChildren =\n this.model?.childrenAges.filter((x) => x > 11 && x < 18).length ?? 0;\n const numPersons = numAdults + numChildren;\n\n //sensible defaults for quantities\n switch (item.calculationMethodId) {\n case CalculationMethods.PerStay:\n return 1;\n case CalculationMethods.PerNight:\n return stayLength;\n case CalculationMethods.PerPersonPerNight:\n return numPersons * stayLength;\n case CalculationMethods.PerPerson:\n return numPersons;\n case CalculationMethods.PerAdultPerson:\n return numAdults;\n case CalculationMethods.PerAdultPerNight:\n return numAdults * stayLength;\n case CalculationMethods.PerChildPerNight:\n return item.isCityTax\n ? numTaxableChildren * stayLength\n : numChildren * stayLength;\n case CalculationMethods.Manual:\n return 0;\n case CalculationMethods.PerDay:\n return stayLength + 1;\n default:\n return 0;\n }\n }\n\n serviceQuantityEdited: number[] = [];\n selectedToAdd: AddOnServiceModel[] = [];\n add(selected: AddOnServiceModel[]) {\n if (this.model && this.reservationModel) {\n let toAdd: AddOnServiceModel[] = [];\n for (const service of selected) {\n //calculation for seasonal AOS is done separately\n toAdd.push(service);\n if (\n service.periods &&\n service.periods.length != 0 &&\n !service.isEditedManually\n ) {\n toAdd = toAdd.concat(\n service.periods.map((x) => {\n return {\n ...service,\n grossUnitPrice: x.amount,\n grossPrice: this.setGrossPrice(service),\n from: x.from.substring(0, 10),\n to: x.to.substring(0, 10),\n serviceDateFrom: x.from.substring(0, 10),\n serviceDateTo: x.to.substring(0, 10),\n periods: service.periods,\n } as AddOnServiceModel;\n })\n );\n }\n }\n\n for (const service of toAdd) {\n if (!this.serviceQuantityEdited.includes(service.addOnServiceId)) {\n calculateAddOnServiceQuantity(\n service,\n this.model,\n this.calculateWithEVisitorDates ?? false\n );\n }\n this.setGrossPrice(service);\n }\n\n toAdd = this.removeZeroQuantityCityTax(toAdd);\n\n this.adjustPeriodizedItems(\n toAdd.filter(\n (x) =>\n x.isCityTax &&\n x.calculationMethodId == CalculationMethods.PerAdultPerNight\n )\n );\n this.adjustPeriodizedItems(\n toAdd.filter(\n (x) =>\n x.isCityTax &&\n x.calculationMethodId == CalculationMethods.PerChildPerNight\n )\n );\n\n this.model.selectedServices.push(...toAdd);\n this.$emit(\"servicesListChanged\");\n this.addFormOpen = false;\n this.serviceQuantityEdited = [];\n this.selectedToAdd = [];\n }\n }\n\n addItem(item: AddOnServiceModel, reAddSeasonPrices: boolean) {\n if (this.model && this.reservationModel) {\n if (item.isCityTax) {\n this.availableServicesCopy = this.availableServicesCopy.filter(\n (x) => x.id !== item.id\n );\n }\n\n const itemToAdd = _.cloneDeep(item);\n itemToAdd.id = 0;\n\n if (itemToAdd.decimalQuantity != this.getDefaultQuantity(itemToAdd)) {\n //flag item as edited manually only if user changed the quantity manually when selecting\n //to avoid recalculating quantity automatically in such cases\n itemToAdd.isEditedManually = true;\n }\n\n if (this.needsRange(itemToAdd)) {\n itemToAdd.serviceDateFrom = this.model?.arrivalDate ?? \"\";\n itemToAdd.serviceDateTo = this.model?.departureDate ?? \"\";\n itemToAdd.serviceRange = [\n itemToAdd.serviceDateFrom,\n itemToAdd.serviceDateTo,\n ];\n } else {\n let defaultDate = new Date().toISOString().substr(0, 10);\n\n if (\n new Date() < new Date(this.model?.arrivalDate) ||\n new Date() > new Date(this.model?.departureDate)\n ) {\n defaultDate = this.model?.arrivalDate ?? \"\";\n }\n\n itemToAdd.serviceDateFrom = defaultDate;\n itemToAdd.serviceDateTo = null;\n }\n\n //remove selected seasonal prices\n //reset 'first' date so the behaviour is the same as adding seasonal AOS for the first time\n if (reAddSeasonPrices) {\n this.model.selectedServices = this.model.selectedServices.filter(\n (x) => x.addOnServiceId !== item.addOnServiceId\n );\n itemToAdd.from = \"\";\n itemToAdd.to = \"\";\n }\n\n let itemsToAdd: AddOnServiceModel[] = [];\n\n if (itemToAdd.isCityTax || itemToAdd.pricesAreSeasonal) {\n itemToAdd.isEditedManually = false;\n\n switch (itemToAdd.calculationMethodId) {\n case PriceCalculationMethodsEnum.PerAdultPerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerChildPerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerPersonPerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerDay:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n }\n }\n\n if (itemsToAdd && itemsToAdd.length > 0) {\n this.model.selectedServices.push(...itemsToAdd);\n } else {\n this.model.selectedServices.push(itemToAdd);\n }\n\n if (\n item.isBookingFee &&\n this.model.selectedServices.some((x) => x.isBookingFee)\n ) {\n this.bookingFeeManuallyRemoved = false;\n }\n\n this.$emit(\"servicesListChanged\");\n }\n }\n\n periodizeService(service: AddOnServiceModel) {\n let toAdd: AddOnServiceModel[] = [];\n\n if (this.model) {\n toAdd.push(service);\n if (service.periods && service.periods.length > 0) {\n toAdd = toAdd.concat(\n service.periods.map((x) => {\n return {\n ...service,\n netUnitPrice: x.amount,\n from: x.from.substring(0, 10),\n to: x.to.substring(0, 10),\n serviceDateFrom: x.from.substring(0, 10),\n serviceDateTo: x.to.substring(0, 10),\n periods: service.periods,\n } as AddOnServiceModel;\n })\n );\n }\n\n for (const service of toAdd) {\n calculateAddOnServiceQuantity(\n service,\n this.model,\n this.calculateWithEVisitorDates ?? false\n );\n this.setGrossPrice(service);\n }\n\n toAdd = toAdd.filter((x) => x.decimalQuantity > 0);\n\n this.adjustPeriodizedItems(toAdd);\n }\n\n return toAdd;\n }\n\n adjustPeriodizedItems(items: AddOnServiceModel[]) {\n if (this.model) {\n if (items.length > 0) {\n const nonPeriodizedItem = items.find((x) => !x.from && !x.to);\n\n if (!nonPeriodizedItem) {\n const dates = this.determineDate(items[0]);\n items[0].serviceDateFrom = dates?.minDate ?? this.model.arrivalDate;\n this.setItemRange(items[0]);\n\n items[items.length - 1].serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(items[items.length - 1]);\n } else {\n const periodizedItem = items.find((x) => x != nonPeriodizedItem);\n\n if (periodizedItem) {\n const periodizedStartInUnitStayDate =\n this.model.arrivalDate <= periodizedItem.from &&\n periodizedItem.from <= this.model.departureDate;\n const periodizedEndInUnitStayDate =\n this.model.arrivalDate <= periodizedItem.to &&\n periodizedItem.to <= this.model.departureDate;\n\n if (periodizedStartInUnitStayDate) {\n const dates = this.determineDate(nonPeriodizedItem);\n //periodized item is after the default\n periodizedItem.serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(periodizedItem);\n\n nonPeriodizedItem.serviceDateFrom =\n dates?.minDate ?? this.model.arrivalDate;\n if (\n periodizedItem.pricesAreSeasonal &&\n periodizedItem.calculationMethodId == CalculationMethods.PerDay\n ) {\n nonPeriodizedItem.serviceDateTo = DateTime.fromISO(\n periodizedItem.serviceDateFrom ?? \"\"\n )\n .plus({ days: -1 })\n .toISO()\n .substr(0, 10);\n } else {\n nonPeriodizedItem.serviceDateTo = DateTime.fromISO(\n periodizedItem.serviceDateFrom ?? \"\"\n )\n .toISO()\n .substring(0, 10);\n }\n this.setItemRange(nonPeriodizedItem);\n }\n\n if (periodizedEndInUnitStayDate) {\n const dates = this.determineDate(periodizedItem);\n //periodized item is before the default\n periodizedItem.serviceDateFrom =\n dates?.minDate ?? this.model.arrivalDate;\n this.setItemRange(periodizedItem);\n\n if (\n periodizedItem.pricesAreSeasonal &&\n periodizedItem.calculationMethodId == CalculationMethods.PerDay\n ) {\n nonPeriodizedItem.serviceDateFrom = DateTime.fromISO(\n periodizedItem.serviceDateTo ?? \"\"\n )\n .plus({ days: 1 })\n .toISO()\n .substr(0, 10);\n } else {\n nonPeriodizedItem.serviceDateFrom = DateTime.fromISO(\n periodizedItem.serviceDateTo ?? \"\"\n )\n .toISO()\n .substr(0, 10);\n }\n nonPeriodizedItem.serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(nonPeriodizedItem);\n }\n } else {\n const dates = this.determineDate(items[0]);\n items[0].serviceDateFrom = dates?.minDate ?? this.model.arrivalDate;\n this.setItemRange(items[0]);\n\n items[items.length - 1].serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(items[items.length - 1]);\n }\n }\n }\n }\n }\n\n determineDate(item: AddOnServiceModel) {\n if (this.calculateWithEVisitorDates && item.isCityTax) {\n if (\n this.nonLocalAdultGuestCheckInDates.length > 0 ||\n this.nonLocalChildrenGuestCheckInDates.length > 0 ||\n this.nonLocalAdultGuestCheckOutDates.length > 0 ||\n this.nonLocalChildrenGuestCheckOutDates.length > 0\n ) {\n let minDate = null;\n let maxDate = null;\n\n if (item.calculationMethodId == CalculationMethods.PerAdultPerNight) {\n const adultCheckInDates = this\n .nonLocalAdultGuestCheckInDates as Date[];\n\n if (adultCheckInDates.length > 0) {\n minDate = adultCheckInDates.reduce((x, y) => (x < y ? x : y));\n maxDate = adultCheckInDates.reduce((x, y) => (x > y ? x : y));\n }\n }\n\n if (item.calculationMethodId == CalculationMethods.PerChildPerNight) {\n const childrenCheckInDates = this\n .nonLocalChildrenGuestCheckInDates as Date[];\n\n if (childrenCheckInDates.length > 0) {\n minDate = childrenCheckInDates.reduce((x, y) => (x < y ? x : y));\n maxDate = childrenCheckInDates.reduce((x, y) => (x > y ? x : y));\n }\n }\n\n if (minDate) {\n //account for timezone offset since the date is in browser local timezone\n minDate.setHours(\n minDate.getHours() - minDate.getTimezoneOffset() / 60\n );\n }\n\n if (maxDate) {\n //account for timezone offset since the date is in browser local timezone\n maxDate.setHours(\n maxDate.getHours() - maxDate.getTimezoneOffset() / 60\n );\n }\n\n return {\n minDate: minDate\n ? minDate.toISOString().substr(0, 10)\n : this.model?.arrivalDate ?? \"\",\n maxDate: maxDate\n ? maxDate.toISOString().substr(0, 10)\n : this.model?.departureDate ?? \"\",\n };\n } else {\n return {\n minDate: this.model?.arrivalDate ?? \"\",\n maxDate: this.model?.departureDate ?? \"\",\n };\n }\n }\n }\n\n get nonLocalAdultGuestCheckInDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n (!x.dateOfBirth || getAge(x.dateOfBirth) >= 18) &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(x.eVisitorCheckInDate ?? this.model?.arrivalDate ?? \"\") ??\n new Date(this.model?.arrivalDate ?? \"\")\n );\n }\n\n return [];\n }\n\n get nonLocalChildrenGuestCheckInDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n x.dateOfBirth &&\n getAge(x.dateOfBirth) < 18 &&\n getAge(x.dateOfBirth) >= 12 &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(x.eVisitorCheckInDate ?? this.model?.arrivalDate ?? \"\") ??\n new Date(this.model?.arrivalDate ?? \"\")\n );\n }\n\n return [];\n }\n\n get nonLocalAdultGuestCheckOutDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n (!x.dateOfBirth || getAge(x.dateOfBirth) >= 18) &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(\n (x.isEVisitorCheckedOut\n ? x.eVisitorCheckOutDate\n : x.checkOutDate) ??\n this.model?.departureDate ??\n \"\"\n ) ?? new Date(this.model?.departureDate ?? \"\")\n );\n }\n\n return [];\n }\n\n get nonLocalChildrenGuestCheckOutDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n x.dateOfBirth &&\n getAge(x.dateOfBirth) < 18 &&\n getAge(x.dateOfBirth) >= 12 &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(\n (x.isEVisitorCheckedOut\n ? x.eVisitorCheckOutDate\n : x.checkOutDate) ??\n this.model?.departureDate ??\n \"\"\n ) ?? new Date(this.model?.departureDate ?? \"\")\n );\n }\n\n return [];\n }\n adjustSeasonalPeriodizedItems(items: AddOnServiceModel[]) {\n for (const item of items) {\n if (item.serviceRange[0] && item.serviceRange[1]) {\n if (\n item.serviceRange[0] > item.from &&\n item.serviceRange[1] < item.to\n ) {\n return;\n }\n }\n }\n return items;\n }\n\n setItemRange(item: AddOnServiceModel) {\n item.serviceRange = [item.serviceDateFrom, item.serviceDateTo];\n }\n\n removeZeroQuantityCityTax(toAdd: AddOnServiceModel[]) {\n const temp = _.clone(toAdd.filter((x) => x.isCityTax));\n for (const service of temp) {\n if (service.to && service.from && service.decimalQuantity === 0) {\n toAdd = toAdd.filter((x) => !_.isEqual(service, x));\n } else if (\n !service.to &&\n !service.from &&\n service.decimalQuantity === 0 &&\n toAdd.some(\n (x) =>\n x.addOnServiceId === service.addOnServiceId &&\n x.decimalQuantity != 0\n )\n ) {\n toAdd = toAdd.filter((x) => !_.isEqual(service, x));\n }\n }\n\n return toAdd;\n }\n\n itemRangeChanged(item: AddOnServiceModel) {\n if (this.needsRange(item)) {\n if (!Array.isArray(item.serviceRange)) {\n //when datepicker is cleared it turns the model from an array of values into an empty string\n item.serviceRange = [];\n item.serviceDateFrom = null;\n item.serviceDateTo = null;\n } else {\n item.serviceDateFrom =\n item.serviceRange.length > 0\n ? item.serviceRange[0]\n : new Date().toISOString().substr(0, 10);\n\n item.serviceDateTo =\n item.serviceRange.length > 1\n ? item.serviceRange[1]\n : item.serviceRange.length > 0\n ? item.serviceRange[0]\n : new Date().toISOString().substr(0, 10);\n }\n }\n\n if (item.serviceRange.length == 2) {\n if (this.model) {\n if (!item.pricesAreSeasonal) {\n calculateAddOnServiceQuantity(\n item,\n this.model,\n this.calculateWithEVisitorDates ?? false\n );\n } else {\n //for seasonal prices when user changes range manually on grid\n this.seasonalPricesQuantityForAOSRange(item);\n }\n }\n\n this.editModel = item;\n this.applyEdit(true);\n this.editModel = null;\n }\n }\n\n seasonalPricesQuantityForAOSRange(item: AddOnServiceModel) {\n if (this.model) {\n let numberOfNights = 0;\n if (item.serviceDateFrom && item.serviceDateTo) {\n numberOfNights = this.differenceInDays(\n new Date(item.serviceDateFrom),\n new Date(item.serviceDateTo)\n );\n }\n switch (item.calculationMethodId) {\n case CalculationMethods.PerStay: {\n item.decimalQuantity = 1;\n break;\n }\n case CalculationMethods.PerNight: {\n item.decimalQuantity = numberOfNights;\n break;\n }\n case CalculationMethods.PerPersonPerNight: {\n item.decimalQuantity =\n numberOfNights *\n (this.model.numberOfAdults + this.model.numberOfChildren);\n break;\n }\n case CalculationMethods.PerPerson: {\n item.decimalQuantity =\n this.model.numberOfAdults + this.model.numberOfChildren;\n break;\n }\n case CalculationMethods.PerAdultPerson: {\n item.decimalQuantity = this.model.numberOfAdults;\n break;\n }\n case CalculationMethods.PerChildPerNight: {\n item.decimalQuantity = numberOfNights * this.model.numberOfChildren;\n break;\n }\n case CalculationMethods.PerAdultPerNight: {\n item.decimalQuantity = numberOfNights * this.model.numberOfAdults;\n break;\n }\n\n case CalculationMethods.PerDay: {\n item.decimalQuantity = numberOfNights + 1;\n break;\n }\n }\n }\n }\n\n remove(item: AddOnServiceModel) {\n if (this.model) {\n const index = this.items.findIndex(\n (x) =>\n x.id === item.id &&\n x.idx === item.idx &&\n x.addOnServiceId === item.addOnServiceId &&\n x.from == item.from &&\n x.to == item.to\n );\n\n if (index != -1) {\n this.model.selectedServices.splice(index, 1);\n this.$emit(\"servicesListChanged\");\n }\n\n if (\n item.isBookingFee &&\n !this.model.selectedServices.some((x) => x.isBookingFee)\n ) {\n this.bookingFeeManuallyRemoved = true;\n }\n }\n }\n\n differenceInDays(date1: Date, date2: Date) {\n const d1 = DateTime.fromJSDate(date1).set({ hour: 0 });\n const d2 = DateTime.fromJSDate(date2).set({ hour: 0 });\n const diff = d2.diff(d1, [\"days\"]).days;\n return diff;\n }\n\n // edit addOnService\n editFormOpen = false;\n editFormValid = false;\n editModel: AddOnServiceModel | null = null;\n\n openEditForm(item: AddOnServiceModel) {\n if (item.isOTASpecific == false) {\n this.editModel = _.cloneDeep(item);\n this.editFormOpen = true;\n this.anyFormOpen = true;\n }\n }\n\n @Watch(\"addFormOpen\", { deep: true })\n addFormModelChanged() {\n if (this.addItemsArray) {\n this.addItemsArray.forEach((item) => this.setGrossPrice(item));\n }\n }\n\n applyEdit(forceFalseIsEdited = false) {\n if (this.editModel) {\n const service = this.model?.selectedServices.find(\n (x) =>\n x.idx == this.editModel?.idx &&\n x.from == this.editModel.from &&\n x.to == this.editModel.to\n );\n\n if (service) {\n service.netUnitPrice = this.editModel.netUnitPrice;\n service.discountPercent = this.editModel.discountPercent;\n if (service.decimalQuantity !== this.editModel.decimalQuantity) {\n if (!forceFalseIsEdited) {\n service.isEditedManually = true;\n }\n service.decimalQuantity = this.editModel.decimalQuantity;\n } else {\n service.decimalQuantity = this.editModel.decimalQuantity;\n }\n service.grossPrice = this.editModel.grossPrice;\n service.serviceDateFrom = this.editModel.serviceDateFrom;\n service.serviceDateTo = this.editModel.serviceDateTo;\n }\n }\n this.$emit(\"servicesListChanged\");\n this.editModel = null;\n this.editFormOpen = false;\n this.anyFormOpen = false;\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n noNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n positiveDiscount: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"AOS.Discount\"),\n maxDecimals: (value: any) =>\n !(this.countDecimals(value) > 2) ||\n this.$t(\"Validation.CanOnlyHaveTwoDecimals\"),\n requiredDateRange: (value: string[]) =>\n value.length === 2 || this.$t(\"Validation.RequiredDateRange\"),\n };\n }\n\n countDecimals(num: number) {\n return num.toString().split(\".\")[1]?.length || 0;\n }\n\n getRowClass() {\n return \"addOnService\";\n }\n\n get addOnServiceQuantityFactors() {\n const stringToday = new Date().toISOString().substring(0, 10);\n\n return {\n numberOfDays:\n this.model?.arrivalDate && this.model?.departureDate\n ? this.differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n )\n : 0,\n numberOfAdults: this.model?.numberOfAdults ?? 0,\n numberOfNonTaxableAdults: this.model?.guests.filter(\n (x) =>\n x.city === this.model?.city &&\n (!x.dateOfBirth ||\n Math.floor(\n differenceInYears(\n new Date(x.dateOfBirth as string),\n new Date(stringToday)\n )\n ) >= 18)\n ).length,\n numberOfChildren: this.model?.numberOfChildren ?? 0,\n numberOfTaxableChildren:\n this.model?.childrenAges.filter((x) => x > 11 && x < 18).length ?? 0,\n unitStayDates: [\n this.model?.arrivalDate.substring(0, 10),\n this.model?.departureDate.substring(0, 10),\n ],\n };\n }\n\n reAddCityTax = true;\n\n // this functions readds all services when factors change\n @Watch(\"addOnServiceQuantityFactors\", { deep: true })\n addOnServiceQuantityFactorsChanged(fresh: any, old: any) {\n if (this.model && !_.isEqual(fresh, old)) {\n const unit = this.model;\n\n if (!unit.selectedServices.some((x) => x.isCityTax)) {\n this.reAddCityTax = false;\n }\n\n // select cityTax categories which have a tax edited to add later\n const calculationMethodIds = unit.selectedServices\n .filter(\n (x) =>\n !this.calculateWithEVisitorDates &&\n x.isCityTax &&\n x.isEditedManually\n )\n .map((x) => x.calculationMethodId);\n const manuallyEditedServices = unit.selectedServices.filter(\n (x) =>\n x.isCityTax && calculationMethodIds.includes(x.calculationMethodId)\n );\n\n // select non city taxes to recalculate\n unit.selectedServices = unit.selectedServices.filter((x) => !x.isCityTax);\n\n //automatically adjust start/end date on services that had the full length\n //of stay period for their period - if the number of days has changed\n if (fresh.numberOfDays !== old.numberOfDays) {\n unit.selectedServices.forEach((service) => {\n if (this.needsRange(service) && !service.pricesAreSeasonal) {\n //basically check if service had the same from-to\n //dates as the \"old\" from-to dates were on the unit\n //if so, automatically adjust service dates from-to\n //to new unit dates from-to so new calculation method\n //which works on AOS from-to behaves as expected on unit stay change\n if (\n fresh.unitStayDates.length == 2 &&\n old.unitStayDates.length == 2 &&\n service.serviceDateFrom == old.unitStayDates[0].substr(0, 10) &&\n service.serviceDateTo == old.unitStayDates[1].substr(0, 10)\n ) {\n service.serviceDateFrom = fresh.unitStayDates[0].substr(0, 10);\n service.serviceDateTo = fresh.unitStayDates[1].substr(0, 10);\n }\n }\n });\n }\n\n unit.selectedServices.forEach((service) => {\n if (\n (service.pricesAreSeasonal &&\n (service.calculationMethodId ==\n PriceCalculationMethodsEnum.PerPersonPerNight ||\n service.calculationMethodId ==\n PriceCalculationMethodsEnum.PerChildPerNight ||\n service.calculationMethodId ==\n PriceCalculationMethodsEnum.PerAdultPerNight) &&\n ((old.numberOfAdults == 0 && fresh.numberOfAdults == 1) ||\n (old.numberOfAdults == 1 && fresh.numberOfAdults == 0) ||\n (old.numberOfChildren == 0 && fresh.numberOfChildren == 1) ||\n (old.numberOfChildren == 1 && fresh.numberOfChildren == 0))) ||\n (service.pricesAreSeasonal &&\n old.numberOfDays !== fresh.numberOfDays &&\n this.needsRange(service))\n ) {\n this.addItem(service, true);\n } else if (this.showAOSPeriodColumn) {\n this.seasonalPricesQuantityForAOSRange(service);\n } else {\n calculateAddOnServiceQuantity(\n service,\n unit,\n this.calculateWithEVisitorDates ?? false\n );\n }\n this.setGrossPrice(service);\n });\n\n // add modified cityTaxes\n unit.selectedServices.push(...manuallyEditedServices);\n\n if (calculationMethodIds.length > 0) {\n unit.selectedServices = this.removeZeroQuantityCityTax(\n unit.selectedServices\n );\n }\n\n const services: AddOnServiceModel[] = [];\n const availableTaxes = _.cloneDeep(\n unit.availableServices.filter((x) => x.isCityTax && this.reAddCityTax)\n );\n\n // selecting from available taxes if factors dictate\n if (\n !calculationMethodIds.includes(\n PriceCalculationMethodsEnum.PerAdultPerNight\n )\n ) {\n if (\n this.addOnServiceQuantityFactors.numberOfAdults > 0 ||\n (this.calculateWithEVisitorDates &&\n (unit.guests.some(\n (x) => getAge(x.dateOfBirth ?? new Date()) >= 18\n ) ||\n unit.guests.some((x) => x.dateOfBirth === undefined)))\n ) {\n services.push(\n ...availableTaxes.filter(\n (x) =>\n x.calculationMethodId ==\n PriceCalculationMethodsEnum.PerAdultPerNight\n )\n );\n }\n }\n if (\n !calculationMethodIds.includes(\n PriceCalculationMethodsEnum.PerChildPerNight\n )\n ) {\n if (\n this.addOnServiceQuantityFactors.numberOfTaxableChildren > 0 ||\n (this.calculateWithEVisitorDates &&\n unit.guests.some(\n (x) =>\n getAge(x.dateOfBirth ?? new Date()) > 11 &&\n getAge(x.dateOfBirth ?? new Date()) < 18\n ))\n ) {\n services.push(\n ...availableTaxes.filter(\n (x) =>\n x.calculationMethodId ==\n PriceCalculationMethodsEnum.PerChildPerNight\n )\n );\n }\n }\n\n // no services exist add those that are added automatically\n if (calculationMethodIds.length == 0 && services.length === 0) {\n const s = _.cloneDeep(\n this.model.availableServices.filter(\n (x) => x.isCityTax && x.isAddedAutomatically && this.reAddCityTax\n )\n );\n services.push(...s);\n }\n\n // when using this function it calculates for all the factors including date dependent city tax price\n this.add(services);\n }\n }\n\n // booking fees\n bookingFeeManuallyRemoved = false;\n get bookingFeesFactors() {\n return {\n accommodationPrice: round(\n (this.model?.dayPrices.reduce((sum, x) => sum + x.price, 0) ?? 0) *\n (1 - round((this.model?.discountPercent ?? 0) / 100), 8),\n 2\n ),\n servicesPrice:\n this.model?.selectedServices\n .filter(\n (x) => !x.isCityTax && !x.isBookingFee && x.isAddedAutomatically\n )\n .reduce((sum, x) => sum + x.grossPrice, 0) ?? 0,\n bookingFeeManuallyRemoved: this.bookingFeeManuallyRemoved,\n } as BookingFeesFactors;\n }\n\n @Watch(\"bookingFeesFactors\")\n bookingFeesFactorsWatch(fresh: BookingFeesFactors, old: BookingFeesFactors) {\n // TODO: logic for scenario where booking fees are not all merged into a single item\n // see user story #8198\n\n const accomodationBookingFee =\n this.model?.ratePlan?.accomodationBookingFee ?? null;\n const addOnServicesBookingFee =\n this.model?.ratePlan?.addOnServicesBookingFee ?? null;\n\n if (\n accomodationBookingFee === null &&\n addOnServicesBookingFee === null &&\n this.model &&\n this.model.selectedServices.some((x) => x.isBookingFee)\n ) {\n // remove existing booking fee\n this.model.selectedServices = this.model.selectedServices.filter(\n (x) => !x.isBookingFee\n );\n }\n\n if (\n !this.bookingFeeManuallyRemoved &&\n this.model &&\n !_.isEqual(fresh, old) &&\n (accomodationBookingFee !== null || addOnServicesBookingFee !== null) &&\n this.model.availableServices.some((x) => x.isBookingFee)\n ) {\n // get the booking fee addOnService base\n const bookingFeeServiceBase = this.model.availableServices.filter(\n (x) => x.isBookingFee\n )[0];\n\n // calculate values\n const accomodationBookingFeeFactor = round(\n (this.model.ratePlan?.accomodationBookingFee ?? 0) / 100,\n 8\n );\n const addOnServiceBookingFeeFactor = round(\n (this.model.ratePlan?.addOnServicesBookingFee ?? 0) / 100,\n 8\n );\n const bookingFeeTaxRateFactor =\n 1 +\n round(\n (this.taxRates?.find((x) => x.id == bookingFeeServiceBase.taxRateId)\n ?.rate ?? 0) / 100,\n 8\n );\n const bookingFeePriceGross =\n round(\n this.bookingFeesFactors.accommodationPrice *\n accomodationBookingFeeFactor,\n 2\n ) +\n round(\n this.bookingFeesFactors.servicesPrice * addOnServiceBookingFeeFactor,\n 2\n );\n const bookingFeePriceNet = round(\n bookingFeePriceGross / bookingFeeTaxRateFactor,\n 2\n );\n\n // add new booking fee\n if (bookingFeePriceGross !== 0) {\n this.model.selectedServices.push({\n ...bookingFeeServiceBase,\n idx: this.model.selectedServices.length,\n id: 0,\n netUnitPrice: bookingFeePriceNet,\n grossPrice: bookingFeePriceGross,\n quantity: 1,\n decimalQuantity: 1,\n } as AddOnServiceModel);\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitAddOnServices.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitAddOnServices.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnitAddOnServices.vue?vue&type=template&id=13e9da22&scoped=true&\"\nimport script from \"./ReservationFormUnitAddOnServices.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnitAddOnServices.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnitAddOnServices.vue?vue&type=style&index=0&id=13e9da22&scoped=true&lang=scss&\"\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 \"13e9da22\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCol,VContainer,VDataTable,VDivider,VForm,VIcon,VRow,VTextField,VToolbar,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('Choose service type')))]),_c('v-card-text',[_c('v-list',[_c('v-list-item',[_c('v-select',{attrs:{\"items\":_vm.availableServiceTypes,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":_vm.$t('Service type')},model:{value:(_vm.serviceTypeId),callback:function ($$v) {_vm.serviceTypeId=$$v},expression:\"serviceTypeId\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.$t('Confirm')))]),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t('Cancel')))]),(_vm.showApplyToAllCheckbox)?_c('v-checkbox',{staticClass:\"ml-4\",attrs:{\"label\":_vm.$t('Reservation.ServiceTypeUpdate.UpdateAllUnits')},model:{value:(_vm.updateOtherUnits),callback:function ($$v) {_vm.updateOtherUnits=$$v},expression:\"updateOtherUnits\"}}):_vm._e()],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Ref, Vue, Watch } from 'vue-property-decorator';\n\n@Component\nexport default class ServiceTypeSelectModal extends Vue {\n @PropSync('open') internalOpen?: boolean;\n @Prop() availableServiceTypes?: any[];\n @Prop() showApplyToAllCheckbox?: boolean;\n @Prop() selectedServiceType?: number;\n \n @Ref('form') form?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n @Watch('$route') \n routeChanged() {\n this.internalOpen = false;\n }\n\n @Watch('open') \n onOpenChanged() {\n this.form?.resetValidation();\n this.serviceTypeId = this.selectedServiceType ?? null;\n }\n\n serviceTypeId: number | null = null;\n updateOtherUnits = false;\n\n submit() {\n this.internalOpen = false;\n\n this.$emit(\"serviceTypeSelected\", { serviceTypeId: this.serviceTypeId, updateOtherUnits: this.updateOtherUnits });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServiceTypeSelectModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServiceTypeSelectModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ServiceTypeSelectModal.vue?vue&type=template&id=12d59f4b&scoped=true&\"\nimport script from \"./ServiceTypeSelectModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ServiceTypeSelectModal.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 \"12d59f4b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDialog,VForm,VList,VListItem,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport {\n ReservationAccUnitModel,\n ReservationModel,\n ChangeRatePlanEvent,\n ChangeServiceTypeEvent,\n SelectedRatePlanModel,\n} from \"./types\";\nimport { getUnitOwnerIds } from \"./functions\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport ReservationFormUnitGuests from \"@/components/reservation-form/ReservationFormUnitGuests.vue\";\nimport ReservationFormUnitFields from \"@/components/reservation-form/ReservationFormUnitFields.vue\";\nimport ReservationFormUnitAddOnServices from \"@/components/reservation-form/ReservationFormUnitAddOnServices.vue\";\nimport RatePlanSelectModal from \"@/components/calendar/RatePlanSelectModal.vue\";\nimport ServiceTypeSelectModal from \"@/components/reservation-form/ServiceTypeSelectModal.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\nimport _ from \"lodash\";\nimport { reservationStatuses } from \"@/shared/models/vReservation\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport { RatePlanModel } from \"@/components/reservation-form/types\";\nimport {\n AccomodationUnitStatusEnum,\n DistributionChannelEnum,\n} from \"@/shared/models/enums.type\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\n\ntype ExportRegistrationFormOptions = {\n reservationFormBlankPrice: boolean;\n};\n\n@Component({\n components: {\n NumericInputImproved,\n CurrencyDisplay,\n ReservationFormUnitGuests,\n ReservationFormUnitFields,\n ReservationFormUnitAddOnServices,\n RatePlanSelectModal,\n ServiceTypeSelectModal,\n },\n})\nexport default class ReservationFormUnitTile extends Vue {\n @PropSync(\"reservation\") reservationModel?: ReservationModel;\n @PropSync(\"overbooked\") isOverbooked?: number[];\n @PropSync(\"notAvailable\") isNotAvailable?: number[];\n @PropSync(\"unit\", { default: undefined }) model?: ReservationAccUnitModel;\n @Prop({ default: true }) isEditingReservation?: boolean;\n @Prop() serviceTypes?: ServiceType[];\n @Prop() isFromCalendar?: boolean;\n @Prop() isFromAvailabilitySearch?: boolean;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n @Getter(\"language/language\") language?: string;\n\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n\n @Getter(\"appParams/unitRenderTypeLineOne\") renderTemplateTypeLineOne?: string;\n @Getter(\"appParams/unitRenderTypeLineTwo\") renderTemplateTypeLineTwo?: string;\n @Getter(\"appParams/reservationHideDiscount\")\n reservationHideDiscount?: boolean;\n @Getter(\"appParams/showRegistrationFormButton\")\n showRegistrationFormButton?: boolean;\n\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n\n @Getter(\"codebooks/accomodationUnitStatuses\")\n accomodationUnitStatuses?: AccomodationUnitStatus[];\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n @Getter(\"appParams/tenantCanEditLOSCategories\")\n tenantCanEditLOSCategories?: boolean;\n @Getter(\"appParams/tenantCanEditPAXCategories\")\n tenantCanEditPAXCategories?: boolean;\n @Getter(\"appParams/tenantAutomaticPAXCategoriesAreIndividual\")\n tenantAutomaticPAXCategoriesAreIndividual?: boolean;\n\n @Getter(\"appParams/childrenAffectPAXRatePlanSelection\")\n childrenAffectPAXRatePlanSelection?: boolean;\n\n @Getter(\"appParams/tenantUsesInputPrice\")\n tenantUsesInputPrice?: boolean;\n\n addOnServicesFormOpen = false;\n\n @Watch(\"reservationModel.numberOfAdults\")\n numberOfAdultsChanged() {\n if (\n this.reservationModel?.numberOfUnits != null &&\n this.reservationModel.numberOfUnits <= 1 &&\n this.reservationModel?.accomodationUnitTypes.length == 1 &&\n this.reservationModel.numberOfAdults != null\n ) {\n this.reservationModel.accomodationUnitTypes[0].numberOfAdults =\n this.reservationModel.numberOfAdults;\n }\n }\n\n @Watch(\"reservationModel.numberOfChildren\")\n numberOfChildrenChanged() {\n if (\n this.reservationModel?.numberOfUnits != null &&\n this.reservationModel.numberOfUnits <= 1 &&\n this.reservationModel?.accomodationUnitTypes.length == 1 &&\n this.reservationModel.numberOfChildren != null &&\n this.reservationModel.childrenAges\n ) {\n this.reservationModel.accomodationUnitTypes[0].numberOfChildren =\n this.reservationModel.numberOfChildren;\n if (\n !this.reservationModel.numberOfChildren ||\n this.reservationModel.numberOfChildren <= 0\n ) {\n this.reservationModel.accomodationUnitTypes[0].childrenAges = [];\n return;\n }\n\n while (\n this.reservationModel.accomodationUnitTypes[0].childrenAges.length <\n this.reservationModel.numberOfChildren\n ) {\n this.reservationModel.accomodationUnitTypes[0].childrenAges.push(0);\n }\n\n while (\n this.reservationModel.accomodationUnitTypes[0].childrenAges.length >\n this.reservationModel.numberOfChildren\n ) {\n this.reservationModel.accomodationUnitTypes[0].childrenAges.pop();\n }\n }\n }\n\n @Watch(\"reservationModel.childrenAges\", { deep: true })\n agesChanged() {\n if (\n this.reservationModel?.numberOfUnits != null &&\n this.reservationModel.numberOfUnits <= 1 &&\n this.reservationModel?.childrenAges &&\n this.reservationModel?.accomodationUnitTypes.length == 1\n ) {\n for (\n let index = 0;\n index < this.reservationModel?.childrenAges.length;\n index++\n ) {\n //assigining values directly would not update the reactively rendered components in child (ReservationFormUnitGuests) v-for\n Vue.set(\n this.reservationModel.accomodationUnitTypes[0].childrenAges,\n index,\n this.reservationModel?.childrenAges[index]\n );\n }\n }\n }\n\n get obRatePlanFactors() {\n return {\n numberOfAdults: this.model?.numberOfAdults ?? 0,\n numberOfChildren: this.model?.numberOfChildren ?? 0,\n numberOfNights: this.numberOfNights,\n };\n }\n\n get ratePlanLockSuffix() {\n return (this.tenantCanEditPAXCategories ||\n this.tenantAutomaticPAXCategoriesAreIndividual) &&\n !this.tenantCanEditLOSCategories\n ? \".PAX\"\n : this.tenantCanEditLOSCategories && !this.tenantCanEditPAXCategories\n ? \".LOS\"\n : this.tenantCanEditPAXCategories && this.tenantCanEditLOSCategories\n ? \".PAXLOS\"\n : \".PAX\"; //default if tenants doesnt use official rates are OB or LOS based (\"pravila popunjenosti\")\n }\n\n get feeCalculationFactors() {\n return {\n numberOfAdults: this.model?.numberOfAdults ?? 0,\n numberOfChildren: this.model?.numberOfChildren ?? 0,\n numberOfNights: this.numberOfNights,\n arrivalDate: this.model?.arrivalDate,\n departureDate: this.model?.departureDate,\n ratePlan: this.model?.ratePlan,\n comission: this.model?.channelCommission,\n };\n }\n\n @Watch(\"obRatePlanFactors\", { deep: true })\n unitNumberOfAdultsChanged(\n fresh: {\n numberOfAdults: number;\n numberOfChildren: number;\n numberOfNights: number;\n },\n old?: {\n numberOfAdults: number;\n numberOfChildren: number;\n numberOfNights: number;\n }\n ) {\n if (_.isEqual(fresh, old)) {\n return;\n }\n const numberOfPeople =\n fresh.numberOfAdults +\n (this.childrenAffectPAXRatePlanSelection ? fresh.numberOfChildren : 0);\n if (\n this.model &&\n this.model.ratePlan &&\n !this.model.userSetPricePerNightManually &&\n !this.model.manuallyChangedRatePlan\n ) {\n const currentMainRatePlanId = this.model.ratePlan.id;\n let obRatePlan: RatePlanModel | undefined = undefined;\n obRatePlan = this.model.ratePlanOptions.find(\n (x) =>\n this.model &&\n x.status &&\n x.minStay <= fresh.numberOfNights &&\n (x.maxStay >= fresh.numberOfNights || x.maxStay === 0) &&\n x.minPersons <= numberOfPeople &&\n x.maxPersons >= numberOfPeople &&\n x.ratePlanId === currentMainRatePlanId\n );\n\n if (!obRatePlan) {\n obRatePlan = this.model.ratePlanOptions.find(\n (x) =>\n this.model &&\n x.status &&\n x.isDefault &&\n x.ratePlanId === currentMainRatePlanId\n );\n }\n\n if (\n obRatePlan &&\n obRatePlan.id !== this.model.ratePlan.ratePlansAccomodationUnitTypeId\n ) {\n this.changeRatePlan({\n ratePlansAccomodationUnitTypeId: obRatePlan.id,\n updateOtherUnits: false,\n autoPriceRecalculation: true,\n inputPriceRecalculationOnly:\n this.reservationModel?.isChannexIdPresent ?? false,\n });\n }\n }\n }\n\n @Watch(\"feeCalculationFactors\")\n recalculated(fresh: any, old?: any) {\n if (\n _.isEqual(fresh, old) ||\n old.comission === null ||\n old.totalPrice === null ||\n old.comission === undefined ||\n old.totalPrice === undefined\n ) {\n return;\n }\n this.$emit(\"recalculateAgencyFees\", this.model);\n }\n\n get unitLineOne() {\n if (\n this.renderTemplateTypeLineOne === \"\" &&\n this.renderTemplateTypeLineTwo === \"\"\n ) {\n return this.model?.propertyName;\n }\n\n return this.$t(this.renderTemplateTypeLineOne ?? \"\", this.renderProps);\n }\n\n get unitLineTwo() {\n if (\n this.renderTemplateTypeLineOne === \"\" &&\n this.renderTemplateTypeLineTwo === \"\"\n ) {\n return (\n this.model?.accomodationUnitTypeName +\n (this.model?.accomodationUnitName\n ? \", \" + this.model?.accomodationUnitName\n : \"\")\n );\n }\n\n return this.$t(this.renderTemplateTypeLineTwo ?? \"\", this.renderProps);\n }\n\n get renderProps() {\n return {\n unitName: this.model?.accomodationUnitName,\n unitTypeName: this.model?.accomodationUnitTypeName,\n propertyName: this.model?.propertyName,\n };\n }\n\n get showDiscount() {\n return !this.reservationHideDiscount;\n }\n\n currencyConversionService?: CurrencyConversionService;\n async created() {\n const promises = [];\n\n if (!this.financialSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n this.refreshSalesChannels();\n }\n\n await Promise.all(promises);\n\n if (this.financialSettings && this.currencyConversionService == undefined) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n\n mounted() {\n if (\n !this.model?.id &&\n !this.isFromCalendar &&\n !this.isFromAvailabilitySearch\n ) {\n this.unitNumberOfAdultsChanged(\n {\n numberOfAdults: this.model?.numberOfAdults ?? 0,\n numberOfChildren: this.model?.numberOfChildren ?? 0,\n numberOfNights: this.model?.numberOfNights ?? 0,\n },\n undefined\n );\n }\n this.$emit(\"clearRestrictions\");\n }\n\n get unitCurrencyId() {\n return (\n this.model?.ratePlan?.currencyId ??\n this.financialSettings?.workingCurrency.id\n );\n }\n\n get tenantUsesServiceType() {\n const param = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationTenantUsesServiceTypes\n );\n return param && param.value;\n }\n\n get sumGuests() {\n let suma = 0;\n if (this.model)\n suma = this.model.numberOfAdults + this.model.numberOfChildren;\n return suma;\n }\n\n get renderAddOnServices() {\n return (\n ((this.model?.availableServices?.length ?? 0) ||\n (this.model?.selectedServices?.length ?? 0)) &&\n !this.isOwnerLevel3\n );\n }\n\n pricePerNightInput() {\n if (this.model) {\n this.model.userSetPricePerNightManually = true;\n this.model.manuallyChangedRatePlan = true; // lock rate plan so user doesn't change price by accident (ex: changing adults)\n this.model.dayPrices.forEach(\n (x) => (\n (x.price =\n (this.model?.pricePerNight ?? 0) - this.mergedCityTaxPricePerDay),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay)\n )\n );\n //if owner level 3 is changing prices manually, all prices should be the same\n if (this.isOwnerLevel3) {\n this.model.dayPrices.forEach(\n (x) =>\n (x.inputPrice =\n (this.model?.pricePerNight ?? 0) - this.mergedCityTaxPricePerDay)\n );\n }\n }\n }\n\n discountInput() {\n if (this.isOwnerLevel3 && this.model) {\n this.model.discountInputPercent = this.model.discountPercent;\n }\n }\n\n inputPricePerNight() {\n if (this.model && this.model.dayPrices) {\n const totalInputPrice = this.model.dayPrices.reduce((total, dayPrice) => {\n return total + dayPrice.inputPrice;\n }, 0);\n\n return round(totalInputPrice / this.model.dayPrices.length, 2);\n }\n }\n\n recalculateDayPricesWithCityTax() {\n if (this.model) {\n this.model.dayPrices.forEach(\n (x) => (\n (x.price =\n x.price -\n this.mergedCityTaxPricePerDay +\n (x.mergedCityTaxAmount ?? 0)),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay)\n )\n );\n }\n }\n\n servicesListChanged() {\n if (\n this.model &&\n this.serviceTypes?.find(\n (x) => x.id == _.first(this.model?.dayPrices)?.serviceTypeId\n )?.includesCityTax\n ) {\n this.recalculateDayPricesWithCityTax();\n }\n }\n\n @Watch(\"model.discountPercent\")\n discountWatch() {\n if (this.model?.discountPercent?.toString() === \"\") {\n this.model.discountPercent = null;\n }\n }\n\n @Watch(\"model.discountInputPercent\")\n discountInputWatch() {\n if (this.model?.discountInputPercent?.toString() === \"\") {\n this.model.discountInputPercent = null;\n }\n }\n\n get warnings() {\n const warnings = [] as string[];\n\n if (this.model?.numberOfAdults == 0 && this.model?.numberOfChildren == 0) {\n warnings.push(\"Reservation.Warning.UnitNoGuestsSet\");\n }\n\n if (this.model?.selectedServices.some((x) => x.decimalQuantity == 0)) {\n warnings.push(\"Reservation.Warning.UnitAddOnServiceQuantity0\");\n }\n\n if (\n this.model?.accomodationUnitId &&\n this.isOverbooked?.includes(this.model?.accomodationUnitId)\n ) {\n warnings.push(\"AccommodationUnit.Overbooked\");\n }\n\n if (\n this.model?.accomodationUnitId &&\n this.isNotAvailable?.includes(this.model?.accomodationUnitId)\n ) {\n warnings.push(\"Reservation.Warning.UnitNotAvailable\");\n }\n\n return warnings;\n }\n\n get errors() {\n const errors = [] as string[];\n\n if (!this.model?.ratePlan) {\n errors.push(\"Reservation.Error.UnitRatePlanMustMeSelected\");\n }\n\n if (\n this.model?.childrenAges.some(\n (x) => x == undefined || x == null || x.toString() == \"\" || x < 0\n )\n ) {\n errors.push(\"Reservation.Error.UnitAllChildrenAgesMustBeSet\");\n }\n\n if (\n this.model &&\n (this.model?.numberOfAdults < 0 || this.model?.numberOfChildren < 0)\n ) {\n errors.push(\"Reservation.Error.GuestValuaCannotBeNegative\");\n }\n\n if (\n this.unitCurrencyId !==\n this.reservationModel?.accomodationUnitTypes[0].ratePlan?.currencyId\n ) {\n errors.push(\n \"Reservation.Error.UnitMustHaveRatePlanWithSameCurrencyAsTheReservation\"\n );\n }\n\n // owner's reservation checks\n // unit must have an owner\n if (\n this.reservationModel &&\n this.reservationModel.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation &&\n this.model &&\n getUnitOwnerIds(this.model).length === 0\n ) {\n errors.push(\n \"Reservation.OwnersReservation.Validation.UnitsMustHaveAnOwner\"\n );\n }\n\n // all units on the reservation must have the same owner\n if (\n this.reservationModel &&\n this.reservationModel.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation &&\n this.model &&\n !this.hasCommonOwner\n ) {\n errors.push(\n \"Reservation.OwnersReservation.Validation.UnitsMustHaveSameOwner\"\n );\n }\n return errors;\n }\n\n get hasCommonOwner() {\n if (!this.reservationModel || !this.model) return false;\n\n const allUnits = this.reservationModel.accomodationUnitTypes;\n const allOwners = _.uniq(allUnits.flatMap((x) => getUnitOwnerIds(x)));\n\n const unitsByOwner = [] as {\n ownerId: number;\n units: ReservationAccUnitModel[];\n }[];\n allOwners.forEach((x) => {\n unitsByOwner.push({\n ownerId: x,\n units: allUnits.filter((e) => getUnitOwnerIds(e).includes(x)),\n });\n });\n\n return unitsByOwner.some(\n (o) => !allUnits.some((e) => !o.units.includes(e))\n );\n }\n\n @Getter(\"appParams/reservationFormBlankPriceOption\")\n reservationFormBlankPriceOption?: boolean;\n exportRegistrationFormDialogShown = false;\n exportRegistrationFormClickHandler() {\n if (!this.reservationFormBlankPriceOption) {\n this.exportRegistrationForm({ reservationFormBlankPrice: false });\n return;\n } else {\n this.exportRegistrationFormDialogShown = true;\n }\n }\n\n exportRegistrationFormDialogYes() {\n this.exportRegistrationForm({ reservationFormBlankPrice: false });\n this.exportRegistrationFormDialogShown = false;\n }\n exportRegistrationFormDialogNo() {\n this.exportRegistrationForm({ reservationFormBlankPrice: true });\n this.exportRegistrationFormDialogShown = false;\n }\n\n exportingRegistrationForm = false;\n async exportRegistrationForm(options: ExportRegistrationFormOptions) {\n this.exportingRegistrationForm = true;\n await this.$http\n .get(`reservations/export/RegistrationForm/${this.model?.id}`, {\n responseType: \"blob\",\n params: {\n blankPrices: options.reservationFormBlankPrice,\n },\n })\n .then((res) => {\n const ext = \"pdf\";\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n\n saveFile(\n res.data,\n groups?.filename ?? `RegistrationForm_${this.model?.id}.${ext}`\n );\n })\n .finally(() => {\n this.exportingRegistrationForm = false;\n });\n }\n\n get servicesPrice() {\n const isAllowedOnlyInputPrices = policyChecker(\"INPUT_PRICES\")(this.claims);\n if (this.currencyConversionService == undefined) {\n if (this.financialSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n if (!isAllowedOnlyInputPrices) {\n return (\n this.model?.selectedServices.reduce((sum, s) => {\n return (\n sum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.unitCurrencyId ?? s.currencyId\n ) ?? s.grossPrice)\n );\n }, 0) ?? 0\n );\n } else {\n return this.model?.ownerAddOnServicesPrice ?? 0;\n }\n }\n\n get totalPrice() {\n let totalDayPrices = 0;\n\n if (this.model && this.model.dayPrices) {\n totalDayPrices = this.model.dayPrices.reduce(\n (sum, e) => sum + e.price,\n 0\n );\n }\n\n if (this.model && this.model.discountPercent) {\n totalDayPrices = round(\n totalDayPrices * (1 - this.model.discountPercent / 100),\n 2\n );\n }\n\n return totalDayPrices + this.servicesPrice;\n }\n\n get mergedCityTaxPricePerDay() {\n let totalCityTaxPrice = 0;\n if (this.model && this.model.selectedServices) {\n totalCityTaxPrice =\n this.model.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (sum, e) =>\n this.serviceTypes?.find(\n (x) => x.id == _.first(this.model?.dayPrices)?.serviceTypeId\n )?.includesCityTax === true\n ? sum +\n (this.currencyConversionService?.convertCurrency(\n e.grossPrice,\n e.currencyId,\n this.unitCurrencyId ?? e.currencyId\n ) ?? e.grossPrice)\n : sum,\n 0\n ) || 0;\n }\n\n return round(\n totalCityTaxPrice / (this.numberOfNights > 0 ? this.numberOfNights : 1),\n 2\n );\n }\n\n get numberOfNights() {\n if (this.model?.arrivalDate && this.model?.departureDate) {\n const numberOfNights = differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n );\n return isFinite(numberOfNights) && numberOfNights > 0\n ? numberOfNights\n : 1;\n } else {\n return 0;\n }\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n };\n }\n\n countDecimals(num: number) {\n return num?.toString().split(\".\")[1]?.length || 0;\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get canEditPrices() {\n return (\n policyChecker(\"MODIFY_RESERVATION_PRICES\")(this.claims) ||\n (policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.reservationModel?.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation)\n );\n }\n\n get reservationIsReadonly() {\n if (\n (policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.reservationModel?.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation) ||\n !policyChecker(\"OWNER_LEVEL_3\")(this.claims)\n ) {\n return false;\n }\n return true;\n }\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n ratePlanSelectOpen = false;\n availableRatePlans: any[] = [];\n\n openRatePlanSelect(model: ReservationAccUnitModel) {\n const ratePlanOptions = model.ratePlanOptions.filter((x) => x.status);\n const numberOfGuests =\n model.numberOfAdults +\n (this.childrenAffectPAXRatePlanSelection ? model.numberOfChildren : 0);\n\n let options = [] as RatePlanModel[];\n\n options = ratePlanOptions.filter(\n (x) =>\n x.minStay <= this.numberOfNights &&\n (x.maxStay >= this.numberOfNights || x.maxStay === 0) &&\n x.minPersons <= numberOfGuests &&\n x.maxPersons >= numberOfGuests\n );\n\n options.push(\n ...ratePlanOptions.filter(\n (x) => x.isDefault && !options.some((e) => e.ratePlanId == x.ratePlanId)\n )\n );\n\n const standaloneRatePlans = options\n .filter((x) => !x.isDerived)\n .sort((a, b) => a.name.localeCompare(b.name));\n const derivedRatePlans = options\n .filter((x) => x.isDerived)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const sortedRatePlans: RatePlanModel[] = [];\n\n for (const standaloneRatePlan of standaloneRatePlans) {\n sortedRatePlans.push(standaloneRatePlan);\n\n const derivedRates = derivedRatePlans.filter(\n (x) => x.parentRatePlanId === standaloneRatePlan.ratePlanId\n );\n\n for (const derivedRate of derivedRates) {\n sortedRatePlans.push(derivedRate);\n }\n }\n\n this.availableRatePlans = sortedRatePlans;\n this.ratePlanSelectOpen = true;\n }\n\n changeRatePlanFromModal(event: ChangeRatePlanEvent) {\n if (\n this.model &&\n event.ratePlansAccomodationUnitTypeId !=\n this.model.ratePlan?.ratePlansAccomodationUnitTypeId\n ) {\n this.model.manuallyChangedRatePlan = true;\n }\n this.changeRatePlan(event);\n }\n\n changeRatePlan(event: ChangeRatePlanEvent) {\n if (this.model) {\n const ratePlan = this.model.ratePlanOptions.find(\n (x) => x.id === event.ratePlansAccomodationUnitTypeId\n );\n if (ratePlan) {\n this.model.ratePlansAccomodationUnitTypeId = ratePlan.id;\n this.model.ratePlan = {\n id: ratePlan.ratePlanId,\n ratePlansAccomodationUnitTypeId: ratePlan.id,\n name: ratePlan.name,\n parentRatePlanId: ratePlan.parentRatePlanId,\n currencyId: ratePlan.currencyId,\n accomodationBookingFee: ratePlan.accomodationBookingFee,\n addOnServicesBookingFee: ratePlan.addOnServicesBookingFee,\n mergeAllBookingFeesIntoSingleItem:\n ratePlan.mergeAllBookingFeesIntoSingleItem,\n } as SelectedRatePlanModel;\n }\n }\n\n this.$emit(\"changedRatePlan\", {\n model: this.model,\n updateOtherUnits: event.updateOtherUnits,\n autoPriceRecalculation: event.autoPriceRecalculation,\n inputPriceRecalculationOnly: event.inputPriceRecalculationOnly,\n });\n }\n\n get everyServiceTypeIsTheSame() {\n const serviceTypeIds = this.model?.dayPrices.map((x) => x.serviceTypeId);\n return serviceTypeIds?.every((x) => x == _.first(serviceTypeIds));\n }\n\n get everyDayPriceIsTheSame() {\n const dayPrices = this.model?.dayPrices.map((x) => x.price);\n return dayPrices?.every((x) => x == _.first(dayPrices));\n }\n\n get serviceTypeName() {\n const serviceTypeIds = this.model?.dayPrices.map((x) => x.serviceTypeId);\n if (serviceTypeIds?.every((x) => x == _.first(serviceTypeIds))) {\n return (\n this.serviceTypes?.find((x) => x.id == _.first(serviceTypeIds))?.name ??\n this.$t(\"ServiceType.NotAssigned\").toString()\n );\n } else {\n return this.$t(\"ServiceType.MixedServiceTypes\").toString();\n }\n }\n\n selectedServiceType: number | null = null;\n serviceTypeSelectOpen = false;\n\n openServiceTypeSelect() {\n this.serviceTypeSelectOpen = true;\n this.selectedServiceType =\n _.first(this.model?.dayPrices)?.serviceTypeId ??\n this.model?.ratePlanOptions.find(\n (x) => x.ratePlanId == this.model?.ratePlan?.id\n )?.defaultServiceTypeId ??\n null; // if tenant uses service types there WILL be a default service type\n }\n\n changeServiceType(event: ChangeServiceTypeEvent) {\n if (this.model) {\n this.model.dayPrices.forEach((x) => {\n x.serviceTypeId = event.serviceTypeId;\n });\n this.recalculateDayPricesWithCityTax();\n }\n\n this.$emit(\"changedServiceType\", {\n model: this.model,\n updateOtherUnits: event.updateOtherUnits,\n });\n }\n\n get unitStatus() {\n return reservationStatuses.find((x) => x.id == this.model?.statusId);\n }\n\n get showStatusIcon() {\n return (\n policyChecker(\"UNIT_STATUS\")(this.claims) &&\n this.model?.accomodationUnitStatus != AccomodationUnitStatusEnum.Clean\n );\n }\n\n getStatusColor() {\n switch (this.model?.accomodationUnitStatus) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return [\"orange-text\"];\n case AccomodationUnitStatusEnum.NeedsRepair:\n return [\"red-text\"];\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return [\"orange-text\"];\n case AccomodationUnitStatusEnum.RepairInProgress:\n return [\"red-text\"];\n default:\n return [\"\"];\n }\n }\n\n getStatusIcon() {\n switch (this.model?.accomodationUnitStatus) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.NeedsRepair:\n return \"fa-tools\";\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return \"fa-sync\";\n case AccomodationUnitStatusEnum.RepairInProgress:\n return \"fa-sync\";\n default:\n return \"\";\n }\n }\n\n getRateName(rate: SelectedRatePlanModel) {\n let paxSuffix = \"\";\n let losSuffix = \"\";\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n rate.minPersons === rate.maxPersons\n ? `, ${rate.minPersons} pax`\n : `, ${rate.minPersons}-${rate.maxPersons} pax`;\n }\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n rate.maxStay === 0\n ? `, ${rate.minStay}+ LOS`\n : rate.minStay === rate.maxStay\n ? `, ${rate.minStay} LOS`\n : `, ${rate.minStay}-${rate.maxStay} LOS`;\n }\n return `${rate.name}${paxSuffix}${losSuffix}`;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitTile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnitTile.vue?vue&type=template&id=4b9ab2de&scoped=true&\"\nimport script from \"./ReservationFormUnitTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnitTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnitTile.vue?vue&type=style&index=0&id=4b9ab2de&scoped=true&lang=scss&\"\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 \"4b9ab2de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAvatar,VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VCol,VDialog,VDivider,VIcon,VRow,VSpacer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"unit-tile\",attrs:{\"disabled\":_vm.reservationIsReadonly,\"width\":\"100%\"}},[_c('v-card-title',{staticClass:\"unit-title\"},[_c('div',{staticClass:\"title-row\",class:{ 'primary--text': _vm.$vuetify.theme.dark }},[_vm._v(\" \"+_vm._s(_vm.model.propertyName)+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('delete', _vm.model)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-trash\")])],1)],1),_c('div',{staticClass:\"other-row\"},[_c('div',{staticClass:\"de-emphasize\",class:{ 'white--text': _vm.$vuetify.theme.dark }},[_vm._v(\" \"+_vm._s(_vm.model.accomodationUnitTypeName)+\" \"+_vm._s(_vm.model.accomodationUnitName ? (\", \" + (_vm.model.accomodationUnitName)) : \"\")+\" \")]),(_vm.showUnitStatus)?_c('div',[(_vm.unitStatus)?_c('v-chip',{staticClass:\"mb-2\",attrs:{\"small\":\"\",\"color\":_vm.unitStatus.color,\"text-color\":\"white\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal \"+_vm._s(_vm.unitStatus.icon))])],1),_c('div',[_vm._v(_vm._s(_vm.$t(_vm.unitStatus.text)))])],1):_vm._e(),_c('v-icon',{staticClass:\"ml-3 mb-2\",class:_vm.getStatusColor(),attrs:{\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getStatusIcon())+\" \")])],1):_vm._e(),_c('v-row',{staticClass:\"full-width mb-4\",attrs:{\"no-gutters\":\"\"}},[(_vm.model && _vm.hasWarning)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('FormDescription',{staticClass:\"mb-0\",attrs:{\"type\":\"warning\"}},[(_vm.model.numberOfAdults > _vm.model.maxOccupancy)?_c('div',{staticClass:\"word-break-word\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Warning.OccupancyAboveMax\"))+\" \")]):_vm._e()])],1):_vm._e(),_c('v-col',{staticClass:\"d-flex flex-column align-start\",attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfAdults\"))+\" \")]),_c('NumericPicker',{attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},model:{value:(_vm.model.numberOfAdults),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfAdults\", $$v)},expression:\"model.numberOfAdults\"}})],1)]),_c('v-col',{staticClass:\"d-flex flex-column align-end\",attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfChildren\"))+\" \")]),_c('NumericPicker',{attrs:{\"zeroEmpty\":true,\"rules\":[_vm.rules.mustBeWholeNumber, _vm.rules.mustBePositive]},on:{\"input\":_vm.updateChildren},model:{value:(_vm.model.numberOfChildren),callback:function ($$v) {_vm.$set(_vm.model, \"numberOfChildren\", $$v)},expression:\"model.numberOfChildren\"}})],1)]),(!_vm.isOwnerLevel3 && _vm.model.numberOfChildren > 0)?_c('v-col',{staticClass:\"py-0 mt-4\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"children-ages-menu\"},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"offset-x\":\"\",\"offset-y\":\"\",\"max-height\":\"600px\",\"min-width\":\"400px\",\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-avatar',_vm._g(_vm._b({staticClass:\"avatar\",class:{\n 'theme--dark': _vm.$vuetify.theme.dark,\n },attrs:{\"rounded\":\"\",\"size\":\"40\",\"color\":_vm.childrenAgesValid ? '' : 'error'}},'v-avatar',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"color\":'white'}},[_vm._v(\"fas fa-birthday-cake\")])],1)]}}],null,false,3934475252)},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.ChildrenAges\"))+\" \")]),_c('v-card-text',[_c('div',[_c('v-row',_vm._l((_vm.model.childrenAges),function(child,$index){return _c('v-col',{key:$index,attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('Child{index}Age', { index: $index + 1 }),\"rules\":[_vm.rules.age],\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.model.childrenAges[$index]),callback:function ($$v) {_vm.$set(_vm.model.childrenAges, $index, _vm._n($$v))},expression:\"model.childrenAges[$index]\"}})],1)}),1)],1)])],1)],1)],1)]):_vm._e()],1),_c('div',{staticClass:\"tile-row\"},[_c('TimeField',{staticClass:\"mb-3\",attrs:{\"label\":_vm.$t('Reservation.Unit.ExpectedArrivalTime'),\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},model:{value:(_vm.model.expectedArrivalTime),callback:function ($$v) {_vm.$set(_vm.model, \"expectedArrivalTime\", $$v)},expression:\"model.expectedArrivalTime\"}})],1),_c('div',{staticClass:\"tile-row\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"TOTAL\"))+\" \"),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalPrice,\"currencyId\":_vm.unitCurrencyId}}),_vm._v(\", \"+_vm._s(_vm.$tc(\"{count} of nights\", _vm.numberOfNights, { count: _vm.numberOfNights, }))+\" \")],1),_c('v-spacer'),_c('div',{staticClass:\"tile-row price-per-night\"},[_c('NumericInputImproved',{staticClass:\"averagePrice mr-4\",attrs:{\"label\":_vm.$t('Reservation.Unit.PricePerNight') + '*',\"rules\":[_vm.rules.required(_vm.model.pricePerNight)],\"hideDetails\":\"\",\"disabled\":!_vm.canEditPrices,\"outlined\":\"\",\"dense\":\"\",\"validateInput\":\"\",\"minValue\":{ value: 0, isExclusive: false }},on:{\"input\":function($event){return _vm.pricePerNightInput()}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width\",attrs:{\"currencyId\":_vm.unitCurrencyId}})]},proxy:true}]),model:{value:(_vm.model.pricePerNight),callback:function ($$v) {_vm.$set(_vm.model, \"pricePerNight\", $$v)},expression:\"model.pricePerNight\"}})],1)],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport {\n ChangeRatePlanEvent,\n RatePlanModel,\n ReservationAccUnitModel,\n ReservationModel,\n SelectedRatePlanModel,\n} from \"./types\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport { Getter } from \"vuex-class\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { DateTime } from \"luxon\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport * as _ from \"lodash\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { differenceInYears, getAge } from \"@/shared/dateFormatUtils\";\nimport {\n getUnitOwnerIds,\n calculateAddOnServiceQuantity,\n addOnServiceNeedsRange,\n} from \"./functions\";\nimport { AddOnServiceModel } from \"./types\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport {\n AccomodationUnitStatusEnum,\n DistributionChannelEnum,\n PriceCalculationMethodsEnum,\n} from \"@/shared/models/enums.type\";\nimport { CalculationMethods } from \"@/shared/models/priceCalculationMethods\";\nimport { reservationStatuses } from \"@/shared/models/vReservation\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n NumericInputImproved,\n CurrencyDisplay,\n NumericPicker,\n FormDescription,\n TimeField,\n },\n})\nexport default class ReservationFormUnitTileMobile extends Vue {\n @PropSync(\"reservation\") reservationModel?: ReservationModel;\n @PropSync(\"overbooked\") isOverbooked?: number[];\n @PropSync(\"notAvailable\") isNotAvailable?: number[];\n @PropSync(\"unit\", { default: undefined }) model?: ReservationAccUnitModel;\n @Prop({ default: true }) isEditingReservation?: boolean;\n @Prop() serviceTypes?: ServiceType[];\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n\n currencyConversionService?: CurrencyConversionService;\n async created() {\n if (this.financialSettings && this.currencyConversionService == undefined) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n\n @Watch(\"model.channelCommission\")\n async updateInputPriceIfThereIsChannelCommission(fresh: number, old: number) {\n if (fresh !== old) {\n const numberOfNights = this.numberOfNights;\n const commissionPerNight = round(fresh / this.numberOfNights);\n const previousCommissionPerNight = round(old / numberOfNights);\n const normalizedValue = this.model?.channelCommissionPercent ?? 0;\n\n // Calculate initial input price\n if (\n this.model?.dayPrices.every(\n (x) => x.inputPrice === x.inputPriceBeforeCommission\n ) &&\n normalizedValue > 0\n ) {\n this.model.dayPrices.forEach((x) => {\n x.inputPrice = x.inputPriceBeforeCommission - commissionPerNight;\n });\n }\n\n // Calculate input price if commission was changed.\n else if (\n this.model?.dayPrices.every(\n (x) =>\n x.inputPrice ===\n x.inputPriceBeforeCommission - previousCommissionPerNight\n )\n ) {\n this.model.dayPrices.forEach((x) => {\n x.inputPrice = x.inputPriceBeforeCommission - commissionPerNight;\n });\n }\n }\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get canEditPrices() {\n return (\n policyChecker(\"MODIFY_RESERVATION_PRICES\")(this.claims) ||\n (policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.reservationModel?.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation)\n );\n }\n\n get showUnitStatus() {\n return policyChecker(\"UNIT_STATUS\")(this.claims);\n }\n\n get reservationIsReadonly() {\n if (\n (policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.reservationModel?.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation) ||\n !policyChecker(\"OWNER_LEVEL_3\")(this.claims)\n ) {\n return false;\n }\n return true;\n }\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n updateChildren() {\n if (this.model) {\n if (!this.model.numberOfChildren || this.model.numberOfChildren <= 0) {\n this.model.childrenAges = [];\n return;\n }\n\n while (this.model.childrenAges.length < this.model.numberOfChildren) {\n this.model.childrenAges.push(0);\n }\n\n while (this.model.childrenAges.length > this.model.numberOfChildren) {\n this.model.childrenAges.pop();\n }\n }\n }\n\n get warnings() {\n const warnings = [] as string[];\n\n if (this.model?.numberOfAdults == 0 && this.model?.numberOfChildren == 0) {\n warnings.push(\"Reservation.Warning.UnitNoGuestsSet\");\n }\n\n if (this.model?.selectedServices.some((x) => x.decimalQuantity == 0)) {\n warnings.push(\"Reservation.Warning.UnitAddOnServiceQuantity0\");\n }\n\n if (\n this.model?.accomodationUnitId &&\n this.isOverbooked?.includes(this.model?.accomodationUnitId)\n ) {\n warnings.push(\"AccommodationUnit.Overbooked\");\n }\n\n if (\n this.model?.accomodationUnitId &&\n this.isNotAvailable?.includes(this.model?.accomodationUnitId)\n ) {\n warnings.push(\"Reservation.Warning.UnitNotAvailable\");\n }\n\n return warnings;\n }\n\n get errors() {\n const errors = [] as string[];\n\n if (!this.model?.ratePlan?.id) {\n errors.push(\"Reservation.Error.UnitRatePlanMustMeSelected\");\n }\n\n if (\n this.model?.childrenAges.some(\n (x) => x == undefined || x == null || x.toString() == \"\" || x < 0\n )\n ) {\n errors.push(\"Reservation.Error.UnitAllChildrenAgesMustBeSet\");\n }\n\n if (\n this.model &&\n (this.model?.numberOfAdults < 0 || this.model?.numberOfChildren < 0)\n ) {\n errors.push(\"Reservation.Error.GuestValuaCannotBeNegative\");\n }\n\n // owner's reservation checks\n // unit must have an owner\n if (\n this.reservationModel &&\n this.reservationModel.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation &&\n this.model &&\n getUnitOwnerIds(this.model).length === 0\n ) {\n errors.push(\n \"Reservation.OwnersReservation.Validation.UnitsMustHaveAnOwner\"\n );\n }\n\n // all units on the reservation must have the same owner\n if (\n this.reservationModel &&\n this.reservationModel.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation &&\n this.model &&\n this.hasCommonOwner\n ) {\n errors.push(\n \"Reservation.OwnersReservation.Validation.UnitsMustHaveSameOwner\"\n );\n }\n\n return errors;\n }\n\n get hasCommonOwner() {\n if (!this.reservationModel || !this.model) return false;\n\n const allUnits = this.reservationModel.accomodationUnitTypes;\n const allOwners = _.uniq(allUnits.flatMap((x) => getUnitOwnerIds(x)));\n\n const unitsByOwner = [] as {\n ownerId: number;\n units: ReservationAccUnitModel[];\n }[];\n allOwners.forEach((x) => {\n unitsByOwner.push({\n ownerId: x,\n units: allUnits.filter((e) => getUnitOwnerIds(e).includes(x)),\n });\n });\n\n return unitsByOwner.some(\n (o) => !allUnits.some((e) => !o.units.includes(e))\n );\n }\n\n get unitCurrencyId() {\n return (\n this.model?.ratePlan?.currencyId ??\n this.financialSettings?.workingCurrency.id\n );\n }\n\n get servicesPrice() {\n const isAllowedOnlyInputPrices = policyChecker(\"INPUT_PRICES\")(this.claims);\n if (this.model && this.model.selectedServices) {\n if (!isAllowedOnlyInputPrices) {\n return this.model.selectedServices.reduce(\n (sum, e) =>\n e.currencyId == this.financialSettings?.formalCurrency.id\n ? sum +\n round(e.grossPrice *\n this.financialSettings.formalToWorkingConversionRate)\n : sum + e.grossPrice,\n 0\n );\n } else {\n return this.model.ownerAddOnServicesPrice ?? 0;\n }\n } else {\n return 0;\n }\n }\n\n get totalPrice() {\n const totalServicesPrice = this.servicesPrice;\n let totalDayPrices = 0;\n\n if (this.model && this.model.dayPrices) {\n totalDayPrices = this.model.dayPrices.reduce(\n (sum, e) => sum + e.price,\n 0\n );\n }\n\n if (this.model && this.model.discountPercent) {\n totalDayPrices = round(totalDayPrices * (1 - this.model.discountPercent / 100));\n }\n\n return totalDayPrices + totalServicesPrice;\n }\n\n get numberOfNights() {\n if (this.model?.arrivalDate && this.model?.departureDate) {\n const numberOfNights = this.differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n );\n return isFinite(numberOfNights) && numberOfNights > 0\n ? numberOfNights\n : 1;\n } else {\n return 0;\n }\n }\n\n differenceInDays(date1: Date, date2: Date) {\n const d1 = DateTime.fromJSDate(date1).set({ hour: 0 });\n const d2 = DateTime.fromJSDate(date2).set({ hour: 0 });\n const diff = d2.diff(d1, [\"days\"]).days;\n return diff;\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n age: (value: number) =>\n ((!!value || value === 0) && value >= 0 && value % 1 == 0) ||\n this.$t(\"Reservation.ChildAgeMustBeWholePositiveNumber\"),\n mustBeWholeNumber: (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n mustBePositive: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n };\n }\n\n countDecimals(num: number) {\n return num?.toString().split(\".\")[1]?.length || 0;\n }\n\n pricePerNightInput() {\n if (this.model) {\n this.model.userSetPricePerNightManually = true;\n this.model.manuallyChangedRatePlan = true; // lock rate plan so user doesn't change price by accident (ex: changing adults)\n this.model.dayPrices.forEach(\n (x) => (\n (x.price =\n (this.model?.pricePerNight ?? 0) - this.mergedCityTaxPricePerDay),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay)\n )\n );\n //if owner level 3 is changing prices manually, all prices should be the same\n if (this.isOwnerLevel3) {\n this.model.dayPrices.forEach(\n (x) =>\n (x.inputPrice =\n (this.model?.pricePerNight ?? 0) - this.mergedCityTaxPricePerDay)\n );\n }\n }\n }\n\n get mergedCityTaxPricePerDay() {\n let totalCityTaxPrice = 0;\n if (this.model && this.model.selectedServices) {\n totalCityTaxPrice =\n this.model.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (sum, e) =>\n this.serviceTypes?.find(\n (x) => x.id == _.first(this.model?.dayPrices)?.serviceTypeId\n )?.includesCityTax === true\n ? sum +\n (this.currencyConversionService?.convertCurrency(\n e.grossPrice,\n e.currencyId,\n this.unitCurrencyId ?? e.currencyId\n ) ?? e.grossPrice)\n : sum,\n 0\n ) || 0;\n }\n\n return (\n round(totalCityTaxPrice / (this.numberOfNights > 0 ? this.numberOfNights : 1))\n );\n }\n\n /**\n * below is pretty much a c/p from ReservationFormAddOnServices.vue to support recalculating\n * AOS amounts/quantities/periods on mobile as well as they're completely hidden and the relevant\n * component where it all gets automatically recalculated is not present on mobile\n */\n get addOnServiceQuantityFactors() {\n const stringToday = new Date().toISOString().substring(0, 10);\n\n return {\n numberOfDays:\n this.model?.arrivalDate && this.model?.departureDate\n ? this.differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n )\n : 0,\n numberOfAdults: this.model?.numberOfAdults ?? 0,\n numberOfNonTaxableAdults: this.model?.guests.filter(\n (x) =>\n x.city === this.model?.city &&\n (!x.dateOfBirth ||\n Math.floor(\n differenceInYears(\n new Date(x.dateOfBirth as string),\n new Date(stringToday)\n )\n ) >= 18)\n ).length,\n numberOfChildren: this.model?.numberOfChildren ?? 0,\n numberOfTaxableChildren:\n this.model?.childrenAges.filter((x) => x > 11 && x < 18).length ?? 0,\n unitStayDates: [\n this.model?.arrivalDate.substring(0, 10),\n this.model?.departureDate.substring(0, 10),\n ],\n };\n }\n\n reAddCityTax = true;\n @Getter(\"appParams/calculateWithEVisitorDates\")\n calculateWithEVisitorDates?: boolean;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n\n needsRange(item: AddOnServiceModel) {\n return addOnServiceNeedsRange(item.calculationMethodId);\n }\n\n // this functions readds all services when factors change\n @Watch(\"addOnServiceQuantityFactors\", { deep: true })\n addOnServiceQuantityFactorsChanged(fresh: any, old: any) {\n if (this.model && !_.isEqual(fresh, old)) {\n const unit = this.model;\n\n if (!unit.selectedServices.some((x) => x.isCityTax)) {\n this.reAddCityTax = false;\n }\n\n // select cityTax categories which have a tax edited to add later\n const calculationMethodIds = unit.selectedServices\n .filter(\n (x) =>\n !this.calculateWithEVisitorDates &&\n x.isCityTax &&\n x.isEditedManually\n )\n .map((x) => x.calculationMethodId);\n const manuallyEditedServices = unit.selectedServices.filter(\n (x) =>\n x.isCityTax && calculationMethodIds.includes(x.calculationMethodId)\n );\n\n // select non city taxes to recalculate\n unit.selectedServices = unit.selectedServices.filter((x) => !x.isCityTax);\n\n //automatically adjust start/end date on services that had the full length\n //of stay period for their period - if the number of days has changed\n if (fresh.numberOfDays !== old.numberOfDays) {\n unit.selectedServices.forEach((service) => {\n if (addOnServiceNeedsRange(service.calculationMethodId)) {\n //basically check if service had the same from-to\n //dates as the \"old\" from-to dates were on the unit\n //if so, automatically adjust service dates from-to\n //to new unit dates from-to so new calculation method\n //which works on AOS from-to behaves as expected on unit stay change\n if (\n fresh.unitStayDates.length == 2 &&\n old.unitStayDates.length == 2 &&\n service.serviceDateFrom == old.unitStayDates[0].substr(0, 10) &&\n service.serviceDateTo == old.unitStayDates[1].substr(0, 10)\n ) {\n service.serviceDateFrom = fresh.unitStayDates[0].substr(0, 10);\n service.serviceDateTo = fresh.unitStayDates[1].substr(0, 10);\n }\n }\n });\n }\n\n unit.selectedServices.forEach((service) => {\n if (\n service.pricesAreSeasonal &&\n old.numberOfDays !== fresh.numberOfDays &&\n this.needsRange(service)\n ) {\n this.addSeasonalAOS(service, true);\n } else {\n calculateAddOnServiceQuantity(\n service,\n unit,\n this.calculateWithEVisitorDates ?? false\n );\n }\n this.setGrossPrice(service);\n });\n\n // add modified cityTaxes\n unit.selectedServices.push(...manuallyEditedServices);\n\n if (calculationMethodIds.length > 0) {\n unit.selectedServices = this.removeZeroQuantityCityTax(\n unit.selectedServices\n );\n }\n\n const services: AddOnServiceModel[] = [];\n const availableTaxes = _.cloneDeep(\n unit.availableServices.filter((x) => x.isCityTax && this.reAddCityTax)\n );\n\n // selecting from available taxes if factors dictate\n if (\n !calculationMethodIds.includes(\n PriceCalculationMethodsEnum.PerAdultPerNight\n )\n ) {\n if (\n this.addOnServiceQuantityFactors.numberOfAdults > 0 ||\n (this.calculateWithEVisitorDates &&\n (unit.guests.some(\n (x) => getAge(x.dateOfBirth ?? new Date()) >= 18\n ) ||\n unit.guests.some((x) => x.dateOfBirth === undefined)))\n ) {\n services.push(\n ...availableTaxes.filter(\n (x) =>\n x.calculationMethodId ==\n PriceCalculationMethodsEnum.PerAdultPerNight\n )\n );\n }\n }\n if (\n !calculationMethodIds.includes(\n PriceCalculationMethodsEnum.PerChildPerNight\n )\n ) {\n if (\n this.addOnServiceQuantityFactors.numberOfTaxableChildren > 0 ||\n (this.calculateWithEVisitorDates &&\n unit.guests.some(\n (x) =>\n getAge(x.dateOfBirth ?? new Date()) > 11 &&\n getAge(x.dateOfBirth ?? new Date()) < 18\n ))\n ) {\n services.push(\n ...availableTaxes.filter(\n (x) =>\n x.calculationMethodId ==\n PriceCalculationMethodsEnum.PerChildPerNight\n )\n );\n }\n }\n\n // no services exist add those that are added automatically\n if (calculationMethodIds.length == 0 && services.length === 0) {\n const s = _.cloneDeep(\n this.model.availableServices.filter(\n (x) => x.isCityTax && x.isAddedAutomatically && this.reAddCityTax\n )\n );\n services.push(...s);\n }\n\n // when using this function it calculates for all the factors including date dependent city tax price\n this.add(services);\n }\n }\n\n serviceQuantityEdited: number[] = [];\n selectedToAdd: AddOnServiceModel[] = [];\n add(selected: AddOnServiceModel[]) {\n if (this.model && this.reservationModel) {\n let toAdd: AddOnServiceModel[] = [];\n for (const service of selected) {\n toAdd.push(service);\n if (\n service.periods &&\n service.periods.length != 0 &&\n !service.isEditedManually\n ) {\n toAdd = toAdd.concat(\n service.periods.map((x) => {\n return {\n ...service,\n netUnitPrice: x.amount,\n from: x.from,\n to: x.to,\n serviceDateFrom: x.from,\n serviceDateTo: x.to,\n periods: [],\n } as AddOnServiceModel;\n })\n );\n }\n }\n\n for (const service of toAdd) {\n if (!this.serviceQuantityEdited.includes(service.addOnServiceId)) {\n calculateAddOnServiceQuantity(\n service,\n this.model,\n this.calculateWithEVisitorDates ?? false\n );\n }\n this.setGrossPrice(service);\n }\n\n toAdd = this.removeZeroQuantityCityTax(toAdd);\n\n this.adjustPeriodizedItems(\n toAdd.filter(\n (x) =>\n x.isCityTax &&\n x.calculationMethodId == CalculationMethods.PerAdultPerNight\n )\n );\n this.adjustPeriodizedItems(\n toAdd.filter(\n (x) =>\n x.isCityTax &&\n x.calculationMethodId == CalculationMethods.PerChildPerNight\n )\n );\n\n this.model.selectedServices.push(...toAdd);\n this.$emit(\"servicesListChanged\");\n this.serviceQuantityEdited = [];\n this.selectedToAdd = [];\n }\n }\n\n addSeasonalAOS(item: AddOnServiceModel, reAddSeasonPrices: boolean) {\n if (this.model && this.reservationModel) {\n const itemToAdd = _.cloneDeep(item);\n itemToAdd.id = 0;\n\n if (itemToAdd.decimalQuantity != this.getDefaultQuantity(itemToAdd)) {\n //flag item as edited manually only if user changed the quantity manually when selecting\n //to avoid recalculating quantity automatically in such cases\n itemToAdd.isEditedManually = true;\n }\n\n itemToAdd.serviceDateFrom = this.model?.arrivalDate ?? \"\";\n itemToAdd.serviceDateTo = this.model?.departureDate ?? \"\";\n itemToAdd.serviceRange = [\n itemToAdd.serviceDateFrom,\n itemToAdd.serviceDateTo,\n ];\n\n //remove selected seasonal prices\n //reset 'first' date so the behaviour is the same as adding seasonal AOS for the first time\n if (reAddSeasonPrices) {\n this.model.selectedServices = this.model.selectedServices.filter(\n (x) => x.addOnServiceId !== item.addOnServiceId\n );\n itemToAdd.from = \"\";\n itemToAdd.to = \"\";\n }\n\n let itemsToAdd: AddOnServiceModel[] = [];\n\n if (itemToAdd.isCityTax || itemToAdd.pricesAreSeasonal) {\n itemToAdd.isEditedManually = false;\n\n switch (itemToAdd.calculationMethodId) {\n case PriceCalculationMethodsEnum.PerAdultPerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerChildPerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerPersonPerNight:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n case PriceCalculationMethodsEnum.PerDay:\n itemsToAdd = this.periodizeService(itemToAdd);\n break;\n }\n }\n\n if (itemsToAdd && itemsToAdd.length > 0) {\n this.model.selectedServices.push(...itemsToAdd);\n } else {\n this.model.selectedServices.push(itemToAdd);\n }\n\n this.$emit(\"servicesListChanged\");\n }\n }\n\n periodizeService(service: AddOnServiceModel) {\n let toAdd: AddOnServiceModel[] = [];\n\n if (this.model) {\n toAdd.push(service);\n if (service.periods && service.periods.length > 0) {\n toAdd = toAdd.concat(\n service.periods.map((x) => {\n return {\n ...service,\n netUnitPrice: x.amount,\n from: x.from.substring(0, 10),\n to: x.to.substring(0, 10),\n serviceDateFrom: x.from.substring(0, 10),\n serviceDateTo: x.to.substring(0, 10),\n periods: service.periods,\n } as AddOnServiceModel;\n })\n );\n }\n\n for (const service of toAdd) {\n calculateAddOnServiceQuantity(\n service,\n this.model,\n this.calculateWithEVisitorDates ?? false\n );\n this.setGrossPrice(service);\n }\n\n toAdd = toAdd.filter((x) => x.decimalQuantity > 0);\n\n if (service.pricesAreSeasonal) {\n this.adjustPeriodizedItems(toAdd);\n } else {\n this.adjustPeriodizedItems(toAdd);\n }\n }\n\n return toAdd;\n }\n\n adjustPeriodizedItems(items: AddOnServiceModel[]) {\n if (this.model) {\n if (items.length > 0) {\n const nonPeriodizedItem = items.find((x) => !x.from && !x.to);\n\n if (!nonPeriodizedItem) {\n const dates = this.determineDate(items[0]);\n items[0].serviceDateFrom = dates?.minDate ?? this.model.arrivalDate;\n this.setItemRange(items[0]);\n\n items[items.length - 1].serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(items[items.length - 1]);\n } else {\n const periodizedItem = items.find((x) => x != nonPeriodizedItem);\n\n if (periodizedItem) {\n const periodizedStartInUnitStayDate =\n this.model.arrivalDate <= periodizedItem.from &&\n periodizedItem.from <= this.model.departureDate;\n const periodizedEndInUnitStayDate =\n this.model.arrivalDate <= periodizedItem.to &&\n periodizedItem.to <= this.model.departureDate;\n\n if (periodizedStartInUnitStayDate) {\n const dates = this.determineDate(nonPeriodizedItem);\n //periodized item is after the default\n periodizedItem.serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(periodizedItem);\n\n nonPeriodizedItem.serviceDateFrom =\n dates?.minDate ?? this.model.arrivalDate;\n nonPeriodizedItem.serviceDateTo = DateTime.fromISO(\n periodizedItem.serviceDateFrom ?? \"\"\n )\n .plus({ days: -1 })\n .toISO()\n .substr(0, 10);\n this.setItemRange(nonPeriodizedItem);\n }\n\n if (periodizedEndInUnitStayDate) {\n const dates = this.determineDate(periodizedItem);\n //periodized item is before the default\n periodizedItem.serviceDateFrom =\n dates?.minDate ?? this.model.arrivalDate;\n this.setItemRange(periodizedItem);\n\n nonPeriodizedItem.serviceDateFrom = DateTime.fromISO(\n periodizedItem.serviceDateTo ?? \"\"\n )\n .plus({ days: 1 })\n .toISO()\n .substr(0, 10);\n nonPeriodizedItem.serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(nonPeriodizedItem);\n }\n } else {\n const dates = this.determineDate(items[0]);\n items[0].serviceDateFrom = dates?.minDate ?? this.model.arrivalDate;\n this.setItemRange(items[0]);\n\n items[items.length - 1].serviceDateTo =\n dates?.maxDate ?? this.model.departureDate;\n this.setItemRange(items[items.length - 1]);\n }\n }\n }\n }\n }\n\n determineDate(item: AddOnServiceModel) {\n if (this.calculateWithEVisitorDates && item.isCityTax) {\n if (\n this.nonLocalAdultGuestCheckInDates.length > 0 ||\n this.nonLocalChildrenGuestCheckInDates.length > 0 ||\n this.nonLocalAdultGuestCheckOutDates.length > 0 ||\n this.nonLocalChildrenGuestCheckOutDates.length > 0\n ) {\n let minDate = null;\n let maxDate = null;\n\n if (item.calculationMethodId == CalculationMethods.PerAdultPerNight) {\n minDate = this.nonLocalAdultGuestCheckInDates.reduce((x, y) =>\n x < y ? x : y\n );\n maxDate = this.nonLocalAdultGuestCheckOutDates.reduce((x, y) =>\n x > y ? x : y\n );\n }\n\n if (item.calculationMethodId == CalculationMethods.PerChildPerNight) {\n minDate = this.nonLocalChildrenGuestCheckInDates.reduce((x, y) =>\n x < y ? x : y\n );\n maxDate = this.nonLocalChildrenGuestCheckOutDates.reduce((x, y) =>\n x > y ? x : y\n );\n }\n\n if (minDate) {\n //account for timezone offset since the date is in browser local timezone\n minDate.setHours(\n minDate.getHours() - minDate.getTimezoneOffset() / 60\n );\n }\n\n if (maxDate) {\n //account for timezone offset since the date is in browser local timezone\n maxDate.setHours(\n maxDate.getHours() - maxDate.getTimezoneOffset() / 60\n );\n }\n\n return {\n minDate: minDate\n ? minDate.toISOString().substr(0, 10)\n : this.model?.arrivalDate ?? \"\",\n maxDate: maxDate\n ? maxDate.toISOString().substr(0, 10)\n : this.model?.departureDate ?? \"\",\n };\n } else {\n return {\n minDate: this.model?.arrivalDate ?? \"\",\n maxDate: this.model?.departureDate ?? \"\",\n };\n }\n }\n }\n\n get nonLocalAdultGuestCheckInDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n (!x.dateOfBirth || getAge(x.dateOfBirth) >= 18) &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(x.eVisitorCheckInDate ?? this.model?.arrivalDate ?? \"\") ??\n new Date(this.model?.arrivalDate ?? \"\")\n );\n }\n\n return [];\n }\n\n get nonLocalChildrenGuestCheckInDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n x.dateOfBirth &&\n getAge(x.dateOfBirth) < 18 &&\n getAge(x.dateOfBirth) >= 12 &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(x.eVisitorCheckInDate ?? this.model?.arrivalDate ?? \"\") ??\n new Date(this.model?.arrivalDate ?? \"\")\n );\n }\n\n return [];\n }\n\n get nonLocalAdultGuestCheckOutDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n (!x.dateOfBirth || getAge(x.dateOfBirth) >= 18) &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(\n (x.isEVisitorCheckedOut\n ? x.eVisitorCheckOutDate\n : x.checkOutDate) ??\n this.model?.departureDate ??\n \"\"\n ) ?? new Date(this.model?.departureDate ?? \"\")\n );\n }\n\n return [];\n }\n\n get nonLocalChildrenGuestCheckOutDates() {\n if (this.model) {\n return this.model.guests\n .filter(\n (x) =>\n x.city !== this.model?.city &&\n x.dateOfBirth &&\n getAge(x.dateOfBirth) < 18 &&\n getAge(x.dateOfBirth) >= 12 &&\n x.isEVisitorCheckedIn\n )\n .map(\n (x) =>\n new Date(\n (x.isEVisitorCheckedOut\n ? x.eVisitorCheckOutDate\n : x.checkOutDate) ??\n this.model?.departureDate ??\n \"\"\n ) ?? new Date(this.model?.departureDate ?? \"\")\n );\n }\n\n return [];\n }\n\n seasonalPricesQuantityForAOSRange(item: AddOnServiceModel) {\n if (item.serviceDateFrom && item.serviceDateTo && this.model) {\n const numberOfNights = this.differenceInDays(\n new Date(item.serviceDateFrom),\n new Date(item.serviceDateTo)\n );\n switch (item.calculationMethodId) {\n case CalculationMethods.PerStay: {\n item.quantity = item.decimalQuantity = 1;\n break;\n }\n case CalculationMethods.PerNight: {\n item.quantity = item.decimalQuantity = numberOfNights;\n break;\n }\n case CalculationMethods.PerPersonPerNight: {\n item.quantity = item.decimalQuantity =\n numberOfNights *\n (this.model.numberOfAdults + this.model.numberOfChildren);\n break;\n }\n case CalculationMethods.PerPerson: {\n item.quantity = item.decimalQuantity =\n this.model.numberOfAdults + this.model.numberOfChildren;\n break;\n }\n case CalculationMethods.PerAdultPerson: {\n item.quantity = item.decimalQuantity = this.model.numberOfAdults;\n break;\n }\n case CalculationMethods.PerChildPerNight: {\n item.quantity = item.decimalQuantity =\n numberOfNights * this.model.numberOfChildren;\n break;\n }\n case CalculationMethods.PerAdultPerNight: {\n item.quantity = item.decimalQuantity =\n numberOfNights * this.model.numberOfAdults;\n break;\n }\n\n case CalculationMethods.PerDay: {\n item.quantity = item.decimalQuantity = numberOfNights + 1;\n break;\n }\n }\n }\n }\n\n setItemRange(item: AddOnServiceModel) {\n item.serviceRange = [item.serviceDateFrom, item.serviceDateTo];\n }\n\n setGrossPrice(item: AddOnServiceModel) {\n const taxRateFactor = round((this.taxRates?.find(e => e.id === item.taxRateId)?.rate ?? 0) / 100, 4);\n const discountFactor = item.discountPercent ? round(item.discountPercent / 100, 6) : 0;\n\n let grossPrice = round(round(item.grossUnitPrice * item.decimalQuantity, 2) * (1 - discountFactor), 2);\n let netPrice = round(grossPrice / (1 + taxRateFactor), 2);\n\n if (item.pricesAreSeasonal) {\n if (!item.from && !item.to) {\n const today = new Date().toISOString().substring(0, 10);\n const period = item.periods.find(\n (x) =>\n today >= x.from.substring(0, 10) && today <= x.to.substring(0, 10)\n );\n item.grossUnitPrice = period?.amount ?? 0;\n grossPrice = period ? round(round(period.amount * item.decimalQuantity, 2) * (1 - discountFactor), 2) : grossPrice;\n netPrice = period ? round(round(period.amount / ( 1 + taxRateFactor), 2) * item.decimalQuantity, 2) : netPrice;\n\n item.netUnitPrice = round(item.grossUnitPrice / (1 + taxRateFactor), 2);\n } else if (item.id > 0) {\n item.netUnitPrice = round(item.grossUnitPrice / (1 + taxRateFactor), 2);\n } else {\n const period = item.periods.find(\n (x) =>\n x.from.substring(0, 10) == item.from && x.to.substring(0, 10) == item.to\n );\n grossPrice = period ? round(round(period.amount * item.decimalQuantity, 2) * (1 - discountFactor), 2) : grossPrice;\n netPrice = period ? round(round(period.amount / ( 1 + taxRateFactor), 2) * item.decimalQuantity, 2) : netPrice;\n item.grossUnitPrice = period?.amount ?? 0;\n item.netUnitPrice = period ? round(period.amount / (1 + taxRateFactor), 2) : netPrice;\n }\n }\n\n item.grossPrice = grossPrice;\n return item.grossPrice;\n }\n\n removeZeroQuantityCityTax(toAdd: AddOnServiceModel[]) {\n const temp = _.clone(toAdd.filter((x) => x.isCityTax));\n for (const service of temp) {\n if (service.to && service.from && service.decimalQuantity === 0) {\n toAdd = toAdd.filter((x) => !_.isEqual(service, x));\n } else if (\n !service.to &&\n !service.from &&\n service.decimalQuantity === 0 &&\n toAdd.some(\n (x) =>\n x.addOnServiceId === service.addOnServiceId &&\n x.decimalQuantity != 0\n )\n ) {\n toAdd = toAdd.filter((x) => !_.isEqual(service, x));\n }\n }\n\n return toAdd;\n }\n\n getDefaultQuantity(item: AddOnServiceModel) {\n const stayLength = this.differenceInDays(\n new Date(this.model?.arrivalDate ?? \"\"),\n new Date(this.model?.departureDate ?? \"\")\n );\n const numAdults = this.model?.numberOfAdults ?? 0;\n const numChildren = this.model?.numberOfChildren ?? 0;\n const numTaxableChildren =\n this.model?.childrenAges.filter((x) => x > 11 && x < 18).length ?? 0;\n const numPersons = numAdults + numChildren;\n\n //sensible defaults for quantities\n switch (item.calculationMethodId) {\n case CalculationMethods.PerStay:\n return 1;\n case CalculationMethods.PerNight:\n return stayLength;\n case CalculationMethods.PerPersonPerNight:\n return numPersons * stayLength;\n case CalculationMethods.PerPerson:\n return numPersons;\n case CalculationMethods.PerAdultPerson:\n return numAdults;\n case CalculationMethods.PerAdultPerNight:\n return numAdults * stayLength;\n case CalculationMethods.PerChildPerNight:\n return item.isCityTax\n ? numTaxableChildren * stayLength\n : numChildren * stayLength;\n case CalculationMethods.Manual:\n return 0;\n case CalculationMethods.PerDay:\n return stayLength + 1;\n default:\n return 0;\n }\n }\n\n get unitStatus() {\n return reservationStatuses.find((x) => x.id == this.model?.statusId);\n }\n\n get showStatusIcon() {\n if (this.model?.accomodationUnitStatus) {\n return (\n this.model.accomodationUnitStatus != AccomodationUnitStatusEnum.Clean\n );\n }\n return false;\n }\n\n getStatusColor() {\n switch (this.model?.accomodationUnitStatus) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return [\"orange-text\"];\n case AccomodationUnitStatusEnum.NeedsRepair:\n return [\"red-text\"];\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return [\"orange-text\"];\n case AccomodationUnitStatusEnum.RepairInProgress:\n return [\"red-text\"];\n default:\n return [\"\"];\n }\n }\n\n getStatusIcon() {\n switch (this.model?.accomodationUnitStatus) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.NeedsRepair:\n return \"fa-tools\";\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.RepairInProgress:\n return \"fa-tools\";\n default:\n return \"\";\n }\n }\n\n @Watch(\"reservationModel.numberOfAdults\")\n numberOfAdultsChanged() {\n if (\n this.reservationModel?.numberOfUnits != null &&\n this.reservationModel.numberOfUnits <= 1 &&\n this.reservationModel?.accomodationUnitTypes.length == 1 &&\n this.reservationModel.numberOfAdults != null\n ) {\n this.reservationModel.accomodationUnitTypes[0].numberOfAdults =\n this.reservationModel.numberOfAdults;\n }\n }\n\n @Watch(\"reservationModel.numberOfChildren\")\n numberOfChildrenChanged() {\n if (\n this.reservationModel?.numberOfUnits != null &&\n this.reservationModel.numberOfUnits <= 1 &&\n this.reservationModel?.accomodationUnitTypes.length == 1 &&\n this.reservationModel.numberOfChildren != null &&\n this.reservationModel.childrenAges\n ) {\n this.reservationModel.accomodationUnitTypes[0].numberOfChildren =\n this.reservationModel.numberOfChildren;\n if (\n !this.reservationModel.numberOfChildren ||\n this.reservationModel.numberOfChildren <= 0\n ) {\n this.reservationModel.accomodationUnitTypes[0].childrenAges = [];\n return;\n }\n\n while (\n this.reservationModel.accomodationUnitTypes[0].childrenAges.length <\n this.reservationModel.numberOfChildren\n ) {\n this.reservationModel.accomodationUnitTypes[0].childrenAges.push(0);\n }\n\n while (\n this.reservationModel.accomodationUnitTypes[0].childrenAges.length >\n this.reservationModel.numberOfChildren\n ) {\n this.reservationModel.accomodationUnitTypes[0].childrenAges.pop();\n }\n }\n }\n\n get childrenAgesValid() {\n if (this.model) {\n const result = this.model.childrenAges.every((age) => {\n return (!!age || age === 0) && age >= 0 && age % 1 == 0;\n });\n\n return result;\n }\n\n return true;\n }\n\n get obRatePlanFactors() {\n return {\n numberOfAdults: this.model?.numberOfAdults ?? 0,\n numberOfChildren: this.model?.numberOfChildren ?? 0,\n numberOfNights: this.numberOfNights,\n };\n }\n\n get hasWarning() {\n if (this.model) {\n return this.model.numberOfAdults > this.model.maxOccupancy;\n }\n return false;\n }\n\n @Getter(\"appParams/childrenAffectPAXRatePlanSelection\")\n childrenAffectPAXRatePlanSelection?: boolean;\n\n @Watch(\"obRatePlanFactors\", { deep: true })\n unitNumberOfAdultsChanged(\n fresh: {\n numberOfAdults: number;\n numberOfChildren: number;\n numberOfNights: number;\n },\n old?: {\n numberOfAdults: number;\n numberOfChildren: number;\n numberOfNights: number;\n }\n ) {\n if (_.isEqual(fresh, old)) {\n return;\n }\n const numberOfPeople =\n fresh.numberOfAdults +\n (this.childrenAffectPAXRatePlanSelection ? fresh.numberOfChildren : 0);\n if (\n this.model &&\n this.model.ratePlan &&\n !this.model.userSetPricePerNightManually &&\n !this.model.manuallyChangedRatePlan\n ) {\n const currentMainRatePlanId = this.model.ratePlan.id;\n let obRatePlan: RatePlanModel | undefined = undefined;\n obRatePlan = this.model.ratePlanOptions.find(\n (x) =>\n this.model &&\n x.status &&\n x.minStay <= fresh.numberOfNights &&\n (x.maxStay >= fresh.numberOfNights || x.maxStay === 0) &&\n x.minPersons <= numberOfPeople &&\n x.maxPersons >= numberOfPeople &&\n x.ratePlanId === currentMainRatePlanId\n );\n\n if (!obRatePlan) {\n obRatePlan = this.model.ratePlanOptions.find(\n (x) =>\n this.model &&\n x.status &&\n x.isDefault &&\n x.ratePlanId === currentMainRatePlanId\n );\n }\n\n if (\n obRatePlan &&\n obRatePlan.id !== this.model.ratePlan.ratePlansAccomodationUnitTypeId\n ) {\n this.changeRatePlan({\n ratePlansAccomodationUnitTypeId: obRatePlan.id,\n updateOtherUnits: false,\n autoPriceRecalculation: true,\n inputPriceRecalculationOnly:\n this.reservationModel?.isChannexIdPresent ?? false,\n });\n }\n }\n }\n\n changeRatePlan(event: ChangeRatePlanEvent) {\n if (this.model) {\n const ratePlan = this.model.ratePlanOptions.find(\n (x) => x.id === event.ratePlansAccomodationUnitTypeId\n );\n if (ratePlan) {\n this.model.ratePlansAccomodationUnitTypeId = ratePlan.id;\n this.model.ratePlan = {\n id: ratePlan.ratePlanId,\n ratePlansAccomodationUnitTypeId: ratePlan.id,\n name: ratePlan.name,\n parentRatePlanId: ratePlan.parentRatePlanId,\n currencyId: ratePlan.currencyId,\n accomodationBookingFee: ratePlan.accomodationBookingFee,\n addOnServicesBookingFee: ratePlan.addOnServicesBookingFee,\n mergeAllBookingFeesIntoSingleItem:\n ratePlan.mergeAllBookingFeesIntoSingleItem,\n } as SelectedRatePlanModel;\n }\n }\n\n this.$emit(\"changedRatePlan\", {\n model: this.model,\n updateOtherUnits: event.updateOtherUnits,\n autoPriceRecalculation: event.autoPriceRecalculation,\n inputPriceRecalculationOnly: event.inputPriceRecalculationOnly,\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitTileMobile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitTileMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnitTileMobile.vue?vue&type=template&id=2b4daa20&scoped=true&\"\nimport script from \"./ReservationFormUnitTileMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnitTileMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnitTileMobile.vue?vue&type=style&index=0&id=2b4daa20&scoped=true&lang=scss&\"\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 \"2b4daa20\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAvatar,VBtn,VCard,VCardText,VCardTitle,VChip,VCol,VIcon,VMenu,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"font-size\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialUnit,\"watched\":_vm.model,\"is-watched-valid\":_vm.isFormValid,\"width\":\"950px\"},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.save},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Accept\")))]),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',{staticClass:\"form-title\"},[_c('TableCellUnitTypeDisplay',{attrs:{\"item\":_vm.model,\"lightenPropertyColor\":true}})],1),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),(_vm.model)?_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reservation.Unit.SpecificUnit'),\"items\":_vm.units,\"item-value\":\"id\",\"item-text\":\"name\",\"clearable\":\"\"},on:{\"input\":_vm.setAccUnit},model:{value:(_vm.model.accomodationUnitId),callback:function ($$v) {_vm.$set(_vm.model, \"accomodationUnitId\", $$v)},expression:\"model.accomodationUnitId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reservation.Unit.RatePlan'),\"items\":_vm.ratePlans,\"item-value\":\"id\",\"item-disabled\":function (x) { return !x.status; },\"rules\":[_vm.rules.required]},on:{\"input\":function($event){return _vm.setRatePlanEventHandler($event, _vm.model, false)}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{staticClass:\"ellipsis\"},[_vm._v(_vm._s(_vm.getRateName(item))+\" (\"),_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId}}),_vm._v(\")\")],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(_vm.getRateName(item))+\" (\"),_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId}}),_vm._v(\")\")],1)]}}],null,false,3166432335),model:{value:(_vm.ratePlanAccUnitTypeId),callback:function ($$v) {_vm.ratePlanAccUnitTypeId=$$v},expression:\"ratePlanAccUnitTypeId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Arrival date'),\"outlined\":false},model:{value:(_vm.model.arrivalDate),callback:function ($$v) {_vm.$set(_vm.model, \"arrivalDate\", $$v)},expression:\"model.arrivalDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Departure date'),\"outlined\":false},model:{value:(_vm.model.departureDate),callback:function ($$v) {_vm.$set(_vm.model, \"departureDate\", $$v)},expression:\"model.departureDate\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"rows\":\"3\",\"label\":_vm.$t('ReservationsAccUnitTypes.MaintenanceStaffRemarks'),\"rules\":[_vm.rules.maxLength(2000)],\"counter\":\"2000\"},model:{value:(_vm.model.maintenanceStaffRemarks),callback:function ($$v) {_vm.$set(_vm.model, \"maintenanceStaffRemarks\", $$v)},expression:\"model.maintenanceStaffRemarks\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('ChannelCommissionPercent'),\"rules\":[_vm.rules.noNegativeNumbers],\"decimalPlaces\":6,\"displayDecimalPlaces\":2,\"disabled\":_vm.distributionChannelTypeId !== 1 && _vm.distributionChannelTypeId !== 7,\"dense\":\"\",\"validateInput\":\"\"},on:{\"blur\":_vm.clampPercentage},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',[_vm._v(\"%\")])]},proxy:true}],null,false,2105281050),model:{value:(_vm.channelCommissionPercent),callback:function ($$v) {_vm.channelCommissionPercent=$$v},expression:\"channelCommissionPercent\"}})],1),_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('ChannelCommission'),\"rules\":[_vm.rules.noNegativeNumbers],\"outlined\":false,\"disabled\":_vm.distributionChannelTypeId !== 1 && _vm.distributionChannelTypeId !== 7,\"dense\":\"\",\"validateInput\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(_vm.isTenantAgency && _vm.channelCommission != 0)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 mb-2 mr-2\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,false,378844778)},[_vm._v(\" \"+_vm._s(_vm.model.ownerPaysOTACommission ? _vm.$t(\"Reservation.Info.PaidByOwner\") : _vm.$t(\"Reservation.Info.PaidByAgency\"))+\" \")]):_vm._e(),_c('div',[_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.unitCurrencyId}})],1)]},proxy:true}],null,false,1497377820),model:{value:(_vm.channelCommission),callback:function ($$v) {_vm.channelCommission=$$v},expression:\"channelCommission\"}})],1)],1),(_vm.usesInputPrice)?_c('v-row',[_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"type\":\"info\",\"outlined\":\"\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.InfoBoxRecalculations\"))+\" \")])],1)],1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"3\"}},[_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"Reservation.TotalPrice\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalPriceWithoutDiscount,\"currencyId\":_vm.unitCurrencyId}})],1),(_vm.model.discountPercent)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"Reservation.Unit.Discount\"))+\": \")]),_c('br'),_vm._v(_vm._s(_vm.model.discountPercent)+\"% \")]):_vm._e(),(!_vm.model.discountPercent && _vm.model.discountInputPercent)?_c('div',[_c('br'),_c('br')]):_vm._e(),_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"Reservation.AveragePricePerNight\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.averagePricePerNight,\"currencyId\":_vm.unitCurrencyId}})],1),_c('br'),(_vm.usesInputPrice)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"AgencyMarginAmount\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.agencyMarginAmount,\"currencyId\":_vm.unitCurrencyId}}),_c('span',[_vm._v(\" (\"+_vm._s(_vm.agencyMarginPercentageNumber)+\"%)\")])],1):_vm._e()]),_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"3\"}},[(_vm.usesInputPrice)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.BaseInputPrice\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.ownerPriceWithoutDiscountOrFee,\"currencyId\":_vm.unitCurrencyId}})],1):_vm._e(),(_vm.model.discountInputPercent && _vm.usesInputPrice)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"Reservation.InputDiscount\"))+\": \")]),_c('br'),_vm._v(_vm._s(_vm.model.discountInputPercent)+\"% \")]):_vm._e(),(\n !_vm.model.discountInputPercent &&\n _vm.model.discountPercent &&\n _vm.usesInputPrice\n )?_c('div',[_c('br'),_c('br')]):_vm._e(),(_vm.usesInputPrice)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"Reservation.AverageInputPricePN\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.averageInputPricePerNight,\"currencyId\":_vm.unitCurrencyId}})],1):_vm._e(),_c('br'),(_vm.usesInputPrice)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"Reservation.TotalPriceOwner\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalOwnerPrice,\"currencyId\":_vm.unitCurrencyId}})],1):_vm._e()]),_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"cols\":\"6\"}},[(_vm.tenantUsesAgencyFees)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(\"AgencyFees\"))+\": \")]),_c('br'),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalAgencyFeesWithOtaIfPaid,\"currencyId\":_vm.unitCurrencyId}})],1):_vm._e(),(_vm.tenantUsesAgencyFees)?_c('ul',{staticClass:\"rate-plan-list\"},[(_vm.model.ownerPaysOTACommission)?_c('li',[_c('strong',[_vm._v(_vm._s(_vm.$t(\"ChannelCommission\")))]),_vm._v(\": \"),_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.unitCurrencyId,\"value\":_vm.channelCommission}})],1):_vm._e(),_vm._l((_vm.model.appliedAgencyFees.filter(\n function (x) { return x.amount > 0; }\n )),function(item,index){return _c('li',{key:index,staticClass:\"rate-plan-item\"},[_c('strong',[_vm._v(_vm._s(item.name))]),_vm._v(\": \"),_c('CurrencyDisplay',{attrs:{\"currencyId\":item.currencyId,\"value\":item.amount}})],1)})],2):_vm._e()])],1),_c('v-row',[_c('v-col',{staticClass:\"pt-5 pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-expansion-panels',[_c('v-expansion-panel',{staticClass:\"mb-4\"},[_c('v-expansion-panel-header',[_c('span',{staticClass:\"prices-accordion-header-label\"},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitForm.Prices\")))])]),(_vm.canEditPrices)?_c('v-expansion-panel-content',[_c('div',{staticClass:\"mb-2 day-prices-service-types\"},[_c('v-col',{staticClass:\"no-padding pb-4\",attrs:{\"cols\":3}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Unit.PricePerDay\"))+\" \")]),(_vm.tenantUsesServiceType)?_c('v-col',{staticClass:\"no-padding pb-4\",attrs:{\"cols\":_vm.usesInputPrice ? 3 : 4,\"offset\":_vm.usesInputPrice ? 0 : 1}},[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitForm.ServiceType\"))+\" \")]):_vm._e(),(_vm.usesInputPrice)?_c('v-col',{staticClass:\"no-padding pb-4\",attrs:{\"cols\":3,\"offset\":_vm.tenantUsesServiceType ? 0 : 1}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Unit.InputPrice\"))+\" \")]):_vm._e()],1),_vm._l((_vm.getDayPricesSortedByDate),function(dayPrice,index){return _c('div',{key:dayPrice.date,staticClass:\"mb-2 day-prices-service-types\"},[_c('v-col',{staticClass:\"no-padding\",attrs:{\"cols\":3}},[_c('NumericInputImproved',{staticClass:\"mr-1\",attrs:{\"value\":_vm.dayPriceDisplay(dayPrice),\"dense\":\"\",\"label\":_vm.$d(_vm.date(dayPrice.date)),\"rules\":[\n _vm.rules.requiredAllowedZero(dayPrice.price),\n _vm.rules.noNegativeNumbers(dayPrice.price) ],\"validateInput\":\"\",\"outlined\":\"\"},on:{\"input\":function($event){return _vm.priceForNightInput($event, dayPrice)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"mt-1\"},[_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.unitCurrencyId}})],1)]},proxy:true}],null,true)})],1),(_vm.tenantUsesServiceType)?_c('v-col',{staticClass:\"no-padding\",attrs:{\"cols\":_vm.usesInputPrice ? 3 : 4,\"offset\":_vm.usesInputPrice ? 0 : 1}},[_c('v-select',{staticClass:\"mr-1\",attrs:{\"items\":_vm.serviceTypes,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":_vm.$t('Service type'),\"outlined\":\"\",\"dense\":\"\",\"error-messages\":_vm.serviceTypeRule(dayPrice.serviceTypeId)},on:{\"change\":function($event){return _vm.firstDayPriceServiceTypeIdChanged(index)}},model:{value:(dayPrice.serviceTypeId),callback:function ($$v) {_vm.$set(dayPrice, \"serviceTypeId\", $$v)},expression:\"dayPrice.serviceTypeId\"}})],1):_vm._e(),(_vm.usesInputPrice)?_c('v-col',{staticClass:\"no-padding\",attrs:{\"cols\":3,\"offset\":_vm.tenantUsesServiceType ? 0 : 1}},[(_vm.canEditPrices)?_c('NumericInputImproved',{staticClass:\"mr-1\",attrs:{\"dense\":\"\",\"label\":_vm.$d(_vm.date(dayPrice.date)),\"rules\":[\n _vm.rules.requiredAllowedZero(dayPrice.inputPrice),\n _vm.rules.noNegativeNumbers(dayPrice.inputPrice) ],\"outlined\":\"\",\"validateInput\":\"\"},on:{\"input\":function($event){return _vm.inputPriceChanged(index)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"mt-1\"},[_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.unitCurrencyId}})],1)]},proxy:true}],null,true),model:{value:(dayPrice.inputPrice),callback:function ($$v) {_vm.$set(dayPrice, \"inputPrice\", $$v)},expression:\"dayPrice.inputPrice\"}}):_vm._e()],1):_vm._e()],1)})],2):_c('v-expansion-panel-content',[_c('div',{staticClass:\"mb-2 day-prices-service-types\"},[_c('v-col',{staticClass:\"no-padding\",attrs:{\"cols\":\"6\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Unit.PricePerDay\"))+\" \")]),(_vm.usesInputPrice)?_c('v-col',{staticClass:\"no-padding\",attrs:{\"cols\":\"6\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Unit.InputPrice\"))+\" \")]):_vm._e()],1),_vm._l((_vm.model.dayPrices),function(dayPrice){return _c('div',{key:dayPrice.date,staticClass:\"mb-2 day-prices-service-types\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('CurrencyDisplay',{attrs:{\"value\":dayPrice.price,\"currencyId\":_vm.unitCurrencyId}})],1),(_vm.usesInputPrice)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('CurrencyDisplay',{attrs:{\"value\":dayPrice.inputPrice,\"currencyId\":_vm.unitCurrencyId}})],1):_vm._e()],1)})],2)],1)],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n PropSync,\n Prop,\n Watch,\n Vue,\n Ref,\n} from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport DateField, {\n formatCountOfNights,\n} from \"@/components/misc/DateField.vue\";\nimport {\n formatLocaleNumber,\n parseLocaleNumber,\n} from \"@/components/numbers/numberFormatUtils\";\nimport { ReservationAccUnitModel } from \"./types\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport * as _ from \"lodash\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport { isString, isNumber } from \"lodash/fp\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { AddOnServiceModel } from \"./types\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { RatePlanModel } from \"@/components/reservation-form/types\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport TableCellUnitTypeDisplay from \"../misc/TableCellUnitTypeDisplay.vue\";\nimport { TenantTypesEnum } from \"@/shared/models/enums.type\";\nimport NumericInputImproved from \"../numbers/NumericInputImproved.vue\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n RightDrawer,\n DateField,\n CurrencyDisplay,\n NumericInputImproved,\n TimeField,\n TableCellUnitTypeDisplay,\n },\n})\nexport default class ReservationFormUnitForm extends Vue {\n fkey = 0;\n\n model: ReservationAccUnitModel = new ReservationAccUnitModel();\n initialUnit: ReservationAccUnitModel = new ReservationAccUnitModel();\n\n get unitCurrencyId() {\n return (\n this.model.ratePlan?.currencyId ??\n this.financialSettings?.workingCurrency.id\n );\n }\n\n get tenantUsesServiceType() {\n const param = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationTenantUsesServiceTypes\n );\n return param && param.value;\n }\n\n ratePlanId = 0;\n ratePlanAccUnitTypeId = 0;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n\n if (this._unit) {\n this.model = _.cloneDeep(this._unit);\n this.ratePlanId = this.model.ratePlan?.id ?? 0;\n this.ratePlanAccUnitTypeId =\n this.model.ratePlan?.ratePlansAccomodationUnitTypeId ?? 0;\n if (\n this.channelCommissionPercent !== this._unit.channelCommissionPercent\n ) {\n this.channelCommissionPercent = this._unit.channelCommissionPercent; // forcing commission calculation for newly added units\n }\n this.model.arrivalDate = this.model.arrivalDate.substring(0, 10);\n this.model.departureDate = this.model.departureDate.substring(0, 10);\n this.initialUnit = _.cloneDeep(this.model);\n }\n }\n }\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n get usesInputPrice() {\n return this.tenantUsesInputPrice ?? false;\n }\n\n @Getter(\"appParams/tenantUsesAgencyFees\")\n tenantUsesAgencyFees?: boolean;\n\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n currencyConversionService?: CurrencyConversionService;\n async created() {\n const promises = [];\n\n if (!this.financialSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n await Promise.all(promises);\n\n if (this.financialSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get canEditPrices() {\n return policyChecker(\"MODIFY_RESERVATION_PRICES\")(this.claims);\n }\n\n loading = false;\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading;\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n save() {\n if (this._unit) {\n const specificUnit = this.units.find(\n (x) => x.id == this.model.accomodationUnitId\n );\n\n this._unit.accomodationUnitId = this.model.accomodationUnitId;\n this._unit.ownerId = specificUnit?.ownerId ?? undefined;\n this._unit.accomodationUnitName = this.model.accomodationUnitName;\n this._unit.ratePlan = this.model.ratePlan\n ? { ...this.model.ratePlan }\n : undefined;\n this._unit.ratePlansAccomodationUnitTypeId =\n this.model.ratePlan?.ratePlansAccomodationUnitTypeId;\n this._unit.occupancyBasedRuleId = this.model.occupancyBasedRuleId;\n this._unit.allowedOccupancy = this.model.allowedOccupancy;\n this._unit.dayPrices = this.model.dayPrices;\n this._unit.pricePerNight = this.model.pricePerNight;\n this._unit.arrivalDate = this.model.arrivalDate;\n this._unit.departureDate = this.model.departureDate;\n this._unit.channelCommission = this.model.channelCommission;\n this._unit.channelCommissionPercent = this.model.channelCommissionPercent;\n this._unit.maintenanceStaffRemarks = this.model.maintenanceStaffRemarks;\n this._unit.manuallyChangedRatePlan = this.model.manuallyChangedRatePlan;\n this._unit.inputPriceWasManuallyChanged =\n this.model.inputPriceWasManuallyChanged;\n\n this.specialOfferServices.forEach((element) => {\n const common = this.model.selectedServices.find(\n (x) => x.addOnServiceId === element.addOnServiceId\n );\n if (common === undefined) {\n this.model.selectedServices.push(element);\n }\n });\n\n this._unit.selectedServices = this.model.selectedServices;\n\n this.$emit(\"saved\");\n }\n\n this.$emit(\"update:open\", false);\n }\n\n get channelCommission() {\n return this.model?.channelCommission || 0;\n }\n set channelCommission(value: number | null) {\n if (this.model) {\n const normalizedValue = value ? value : 0;\n this.model.channelCommission = +normalizedValue;\n\n const servicePriceWithoutTax = this.model.selectedServices\n .filter((s) => !s.isCityTax)\n .reduce((acc, s) => acc + s.grossPrice, 0);\n const baseAmount = this.totalPrice + servicePriceWithoutTax;\n\n this.model.channelCommissionPercent = round(\n (normalizedValue / baseAmount) * 100,\n 6\n );\n this.channelCommissionPercent = this.model.channelCommissionPercent;\n }\n }\n\n get channelCommissionPercent() {\n return this.model?.channelCommissionPercent || 0;\n }\n set channelCommissionPercent(value: number | null) {\n if (this.model) {\n const normalizedValue = value || 0;\n\n const servicePriceWithoutTax = this.model.selectedServices\n .filter((s) => !s.isCityTax)\n .reduce((acc, s) => acc + s.grossPrice, 0);\n const baseAmount = this.totalPrice + servicePriceWithoutTax;\n\n this.model.channelCommission = round(\n baseAmount * (normalizedValue / 100)\n );\n\n this.calculateInputPrices();\n\n this.model.channelCommissionPercent = normalizedValue;\n }\n }\n\n calculateInputPrices() {\n // This is used to calculate new input price when channel commission percent changes but only if the input price was not manually changed.\n if (\n this.model?.ownerPaysOTACommission &&\n !this.model.inputPriceWasManuallyChanged\n ) {\n this.model.dayPrices.forEach((x) => {\n x.inputPrice = x.inputPriceBeforeCommission;\n });\n }\n // This is used to calculate new input price for new days when arrival/departure day changes and we have manually changed input price.\n else if (\n this.model?.ownerPaysOTACommission &&\n this.model.inputPriceWasManuallyChanged &&\n this.model.dayPrices.some(\n (x) => x.inputPrice === x.inputPriceBeforeCommission\n )\n ) {\n this.model.dayPrices\n .filter((dp) => dp.inputPrice === dp.inputPriceBeforeCommission)\n .forEach((x) => {\n x.inputPrice = x.inputPriceBeforeCommission;\n });\n }\n }\n\n @Watch(\"model.dayPrices\")\n arrivalDateChanged(fresh: any[], old: any[]) {\n if (\n fresh.length !== old.length &&\n this.channelCommissionPercent !== this.model.channelCommissionPercent\n ) {\n // We are calling this set function because we need to recalculate channel commission and after that new input prices.\n this.channelCommissionPercent = this.model.channelCommissionPercent;\n }\n }\n\n get feeCalculationFactors() {\n return {\n comission: this.model?.channelCommission,\n totalPrice: this.totalPrice,\n };\n }\n\n get totalAgencyFeesWithOtaIfPaid() {\n return (\n (this.model.agencyFeesTotal ?? 0) +\n (this.model.ownerPaysOTACommission\n ? this.model.channelCommission ?? 0\n : 0)\n );\n }\n\n @Watch(\"feeCalculationFactors\")\n recalculated(fresh: any, old?: any) {\n if (\n _.isEqual(fresh, old) ||\n old.comission === null ||\n old.totalPrice === null ||\n old.comission === undefined ||\n old.totalPrice === undefined\n ) {\n return;\n }\n this.$emit(\"recalculateAgencyFees\", this.model);\n }\n\n clampPercentage() {\n if (this.model) {\n let normalizedValue = this.model?.channelCommissionPercent || 0;\n\n normalizedValue = normalizedValue < 0 ? 0 : normalizedValue;\n normalizedValue = normalizedValue > 99.9 ? 99.9 : normalizedValue;\n\n if (this.channelCommissionPercent != normalizedValue) {\n this.channelCommissionPercent = normalizedValue;\n }\n }\n }\n\n get nightsDisplay() {\n return formatCountOfNights(this)([\n this.model.arrivalDate?.substring(0, 10),\n this.model.departureDate?.substring(0, 10),\n ]);\n }\n\n get formTitle() {\n return this.initialUnit.propertyName.length +\n this.initialUnit.accomodationUnitTypeName.length >\n 90\n ? this.initialUnit.accomodationUnitTypeName\n : [\n this.initialUnit.propertyName,\n \" - \",\n this.initialUnit.accomodationUnitTypeName,\n ].join(\"\");\n }\n\n get units() {\n return this.model?.accomodationUnitOptions || [];\n }\n\n get ratePlans() {\n const ratePlanOptions = this.model.ratePlanOptions.filter((x) => x.status);\n const numberOfGuests =\n this.model.numberOfAdults +\n (this.childrenAffectPAXRatePlanSelection\n ? this.model.numberOfChildren\n : 0);\n\n let options = [] as RatePlanModel[];\n\n options = ratePlanOptions.filter(\n (x) =>\n x.minStay <= this.numberOfNights &&\n (x.maxStay >= this.numberOfNights || x.maxStay === 0) &&\n x.minPersons <= numberOfGuests &&\n x.maxPersons >= numberOfGuests\n );\n\n options.push(\n ...ratePlanOptions.filter(\n (x) => x.isDefault && !options.some((e) => e.ratePlanId == x.ratePlanId)\n )\n );\n\n const standaloneRatePlans = options\n .filter((x) => !x.isDerived)\n .sort((a, b) => a.name.localeCompare(b.name));\n const derivedRatePlans = options\n .filter((x) => x.isDerived)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const sortedRatePlans: RatePlanModel[] = [];\n\n for (const standaloneRatePlan of standaloneRatePlans) {\n sortedRatePlans.push(standaloneRatePlan);\n\n const derivedRates = derivedRatePlans.filter(\n (x) => x.parentRatePlanId === standaloneRatePlan.ratePlanId\n );\n\n for (const derivedRate of derivedRates) {\n sortedRatePlans.push(derivedRate);\n }\n }\n\n return sortedRatePlans;\n }\n\n get stayPeriod() {\n return {\n arrivalDate: this.model.arrivalDate,\n departureDate: this.model.departureDate,\n };\n }\n\n get getDayPricesSortedByDate() {\n return this.model.dayPrices.sort((date1, date2) => {\n return (\n new Date(date1.date).setHours(0, 0, 0, 0) -\n new Date(date2.date).setHours(0, 0, 0, 0)\n );\n });\n }\n\n @Watch(\"stayPeriod\")\n stayPeriodChanged(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.getUnitDayPrices();\n }\n }\n\n // get day prices for units\n getUnitDayPrices() {\n if (this.model && this.model.arrivalDate && this.model.departureDate) {\n const requestModel = {\n arrivalDate: this.model.arrivalDate,\n departureDate: this.model.departureDate,\n accomodationUnitTypesIds: [this.model.accomodationUnitTypeId],\n };\n\n Vue.axios\n .post(\"reservations/GetUnitsDayPrices\", requestModel)\n .then((res) => {\n if (this.model) {\n for (const ratePlan of this.model.ratePlanOptions) {\n const ratePlanPrices = res.data\n .find(\n (x: any) =>\n x.accomodationUnitTypeId ===\n this.model.accomodationUnitTypeId\n )\n ?.ratePlanPrices.find(\n (x: any) => x.ratePlanAccUnitTypeId === ratePlan.id\n );\n\n ratePlan.dayPrices =\n ratePlanPrices?.dayPrices.filter(\n (x: any) =>\n (Date.parse(x.date.toString().substring(0, 10)) >=\n Date.parse(this.model.arrivalDate) &&\n Date.parse(x.date.toString().substring(0, 10)) <\n Date.parse(this.model.departureDate)) ||\n (Date.parse(x.date.toString().substring(0, 10)) ==\n Date.parse(this.model.arrivalDate) &&\n Date.parse(x.date.toString().substring(0, 10)) ==\n Date.parse(this.model.departureDate))\n ) ?? [];\n\n if (\n this.model.ratePlan?.ratePlansAccomodationUnitTypeId ===\n ratePlan.id\n ) {\n const currentPrices = _.cloneDeep(this.model.dayPrices);\n const isDayStay =\n this.model.arrivalDate == this.model.departureDate;\n const isServiceTypeDayStay =\n _.first(currentPrices)?.serviceTypeId ==\n _.first(this.serviceTypes?.filter((x) => x.isDayRest))?.id;\n\n // set serviceType to one from current prices or to ratePlans default serviceType for new units\n const currentServiceTypeId =\n isDayStay && !isServiceTypeDayStay\n ? _.first(this.serviceTypes?.filter((x) => x.isDayRest))?.id\n : !isDayStay && isServiceTypeDayStay\n ? ratePlan.defaultServiceTypeId\n : _.first(currentPrices)?.serviceTypeId ??\n ratePlan.defaultServiceTypeId;\n\n const currentPriceIncludeCityTax =\n this.serviceTypeIncludesCityTax(currentServiceTypeId ?? 0) ??\n false;\n\n this.model.dayPrices = _.cloneDeep(ratePlan?.dayPrices ?? []);\n\n // if user has set pricePerNight manually we still need to fetch prices in case stay period was changed\n // after which we set all day prices to user set value\n if (this.model.userSetPricePerNightManually) {\n this.model.dayPrices.forEach(\n (x) => (\n (x.serviceTypeId = currentServiceTypeId),\n (x.price =\n (this.model.pricePerNight ?? x.price) -\n this.mergedCityTaxPricePerDay(\n currentPriceIncludeCityTax\n )),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n currentPriceIncludeCityTax\n ))\n )\n );\n }\n // If none of the above is triggered we still need to\n // set new price and merged amount\n else {\n this.model.dayPrices.forEach(\n (x) => (\n (x.serviceTypeId = currentServiceTypeId),\n (x.price =\n x.price -\n this.mergedCityTaxPricePerDay(\n currentPriceIncludeCityTax\n )),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n currentPriceIncludeCityTax\n )),\n (x.serviceTypeId = currentServiceTypeId)\n )\n );\n }\n\n // only change unsaved prices (eg, when extending a stay for 1 day, only update the price for that 1 day)\n currentPrices.forEach((e: any) => {\n e.serviceTypeId =\n !isDayStay && isServiceTypeDayStay\n ? currentServiceTypeId\n : isDayStay && !isServiceTypeDayStay\n ? currentServiceTypeId\n : e.serviceTypeId;\n e.price =\n e.price +\n e.mergedCityTaxAmount -\n this.mergedCityTaxPricePerDay(currentPriceIncludeCityTax);\n e.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n currentPriceIncludeCityTax\n );\n });\n const pricesToSet: {\n date: Date;\n price: number;\n inputPrice: number;\n inputPriceBeforeCommission: number;\n serviceTypeId?: number;\n mergedCityTaxAmount: number;\n }[] = [];\n this.model.dayPrices.forEach((e: any) =>\n pricesToSet.push(\n currentPrices?.find((x) => x.date == e.date) ?? e\n )\n );\n\n this.model.dayPrices = _.cloneDeep(pricesToSet);\n this.channelCommissionPercent =\n this.model.channelCommissionPercent;\n\n this.model.pricePerNight = round(\n round(\n this.model.dayPrices.reduce(\n (sum, dprice) =>\n sum + dprice.price + dprice.mergedCityTaxAmount,\n 0\n ) ?? 0\n ) / (this.model.dayPrices.length ?? 1)\n );\n }\n }\n }\n });\n }\n }\n\n firstDayPriceServiceTypeIdChanged(index: number) {\n if (index == 0) {\n const freshIncludesCityTax = this.serviceTypes?.find(\n (x) => x.id == _.first(this.model.dayPrices)?.serviceTypeId\n )?.includesCityTax;\n const alreadyIncludesCityTax =\n (_.first(this.model.dayPrices)?.mergedCityTaxAmount ?? 0) > 0;\n const mergedCityTax = this.mergedCityTaxPricePerDay();\n if (freshIncludesCityTax == true && !alreadyIncludesCityTax) {\n this.model.dayPrices.forEach((x) => {\n x.price = x.price - mergedCityTax;\n x.mergedCityTaxAmount = mergedCityTax;\n });\n }\n if (freshIncludesCityTax == false && alreadyIncludesCityTax) {\n this.model.dayPrices.forEach((x) => {\n x.price = x.price + x.mergedCityTaxAmount;\n x.mergedCityTaxAmount = 0;\n });\n }\n }\n }\n\n dayPriceDisplay(dayPrice: any) {\n return dayPrice.price + this.mergedCityTaxPricePerDay();\n }\n\n priceForNightInput(val: number, dayPrice: any) {\n dayPrice.price = val - this.mergedCityTaxPricePerDay();\n if (this.model.userSetPricePerNightManually) {\n this.model.pricePerNight = this.averagePricePerNight;\n }\n }\n\n setAccUnit(unitId: number) {\n if (this.model) {\n const unit = this.units.find((x) => x.id == unitId);\n if (unit) {\n this.model.accomodationUnitName = unit.name;\n } else {\n this.model.accomodationUnitName = \"\";\n }\n }\n }\n\n setRatePlanEventHandler(\n ratePlanAccomodationUnitTypeId: number,\n editModel: ReservationAccUnitModel,\n autoSave: boolean\n ) {\n if (\n editModel.ratePlan?.ratePlansAccomodationUnitTypeId !==\n ratePlanAccomodationUnitTypeId\n ) {\n editModel.manuallyChangedRatePlan = true;\n }\n this.setRatePlan(ratePlanAccomodationUnitTypeId, editModel, autoSave);\n }\n\n setRatePlan(\n ratePlanAccomodationUnitTypeId: number,\n editModel: ReservationAccUnitModel,\n autoSave: boolean,\n isMulti = false,\n specialOfferServices: AddOnServiceModel[] | null = null,\n autoPriceRecalculation = false,\n inputPriceRecalculationOnly = false\n ) {\n const plan = editModel.ratePlanOptions.find(\n (x) => x.id == ratePlanAccomodationUnitTypeId\n );\n if (editModel) {\n editModel.ratePlan = plan\n ? {\n id: plan.ratePlanId,\n ratePlansAccomodationUnitTypeId: plan.id,\n name: plan.name,\n parentRatePlanId: plan.parentRatePlanId,\n currencyId: plan.currencyId,\n isDefault: plan.isDefault,\n minStay: plan.minStay,\n maxStay: plan.maxStay,\n minPersons: plan.minPersons,\n maxPersons: plan.maxPersons,\n losCategoryId: plan.losCategoryId,\n paxCategoryId: plan.paxCategoryId,\n accomodationBookingFee: plan.accomodationBookingFee,\n addOnServicesBookingFee: plan.addOnServicesBookingFee,\n mergeAllBookingFeesIntoSingleItem:\n plan.mergeAllBookingFeesIntoSingleItem,\n }\n : undefined;\n }\n\n editModel.occupancyBasedRuleId = undefined;\n editModel.allowedOccupancy = editModel.maxOccupancy;\n\n if (autoSave) {\n this.setSpecialOfferServices(\n ratePlanAccomodationUnitTypeId,\n editModel,\n specialOfferServices\n );\n } else {\n this.setSpecialOfferServices(\n ratePlanAccomodationUnitTypeId,\n null,\n specialOfferServices\n );\n }\n\n if (!isMulti && !autoPriceRecalculation) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n timeout: 30000,\n message: this.$t(\"Reservation.RecalculatePrices\"),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: async () => {\n await this.recalculatePrices(\n ratePlanAccomodationUnitTypeId,\n editModel,\n inputPriceRecalculationOnly\n );\n if (autoSave) {\n this.$emit(\"saved\");\n }\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n if (autoSave) {\n this.$emit(\"saved\");\n }\n return true;\n },\n },\n ],\n } as Notification);\n } else if (autoPriceRecalculation) {\n this.recalculatePrices(\n ratePlanAccomodationUnitTypeId,\n editModel,\n inputPriceRecalculationOnly\n );\n if (autoSave) {\n this.$emit(\"saved\");\n }\n }\n }\n\n async recalculatePrices(\n ratePlanAccomodationUnitTypeId: number,\n editModel: ReservationAccUnitModel,\n inputPriceRecalculationOnly: boolean\n ) {\n if (editModel) {\n const plan = editModel.ratePlanOptions.find(\n (x) => x.id === ratePlanAccomodationUnitTypeId\n );\n if (!editModel.userSetPricePerNightManually) {\n this.model = editModel;\n editModel.dayPrices.forEach((e: any) => {\n const match = plan?.dayPrices?.find((x) => x.date == e.date);\n if (match) {\n if (!inputPriceRecalculationOnly) {\n e.price = match.price - this.mergedCityTaxPricePerDay();\n e.mergedCityTaxAmount = this.mergedCityTaxPricePerDay();\n }\n e.inputPrice = match.inputPrice;\n }\n });\n editModel.pricePerNight = round(\n round(\n editModel.dayPrices.reduce(\n (sum, dprice) => sum + dprice.price + dprice.mergedCityTaxAmount,\n 0\n ) ?? 0\n ) / (editModel.dayPrices.length ?? 1)\n );\n\n this.channelCommissionPercent = this.model.channelCommissionPercent;\n }\n }\n }\n\n specialOfferServices: AddOnServiceModel[] = [];\n\n async setSpecialOfferServices(\n ratePlanAccomodationUnitTypeId: number,\n editModel: ReservationAccUnitModel | null,\n services: AddOnServiceModel[] | null = null\n ) {\n if (services === null) {\n const res = await Vue.axios.get>(\n `reservations/GetSpecialOfferServices/${ratePlanAccomodationUnitTypeId}`\n );\n res.data.result.forEach((x) => (x.decimalQuantity = x.defaultQuantity));\n this.specialOfferServices = res.data.result;\n } else {\n this.specialOfferServices = services;\n }\n\n if (editModel) {\n this.specialOfferServices.forEach((element) => {\n // mark the special offer services as added automatically for booking fees to apply properly\n element.isAddedAutomatically = true;\n\n const common = editModel.selectedServices.find(\n (x) => x.addOnServiceId === element.addOnServiceId\n );\n if (common === undefined) {\n editModel.selectedServices.push(element);\n } else {\n common.defaultQuantity = element.defaultQuantity;\n common.discountPercent = element.discountPercent;\n common.isIncludedInPrice = element.isIncludedInPrice;\n }\n });\n }\n }\n\n // includesCityTax is passed because new prices dont have a serviceType defined so we use current prices\n // its undefined when its used by UI elements that need current state\n mergedCityTaxPricePerDay(includesCityTax?: boolean) {\n let totalCityTaxPrice = 0;\n if (this.model && this.model.selectedServices) {\n totalCityTaxPrice = this.model.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (sum, e) =>\n includesCityTax ??\n this.serviceTypes?.find(\n (x) => x.id == _.first(this.model.dayPrices)?.serviceTypeId\n )?.includesCityTax === true\n ? sum +\n (this.currencyConversionService?.convertCurrency(\n e.grossPrice,\n e.currencyId,\n this.unitCurrencyId ?? e.currencyId\n ) ?? e.grossPrice)\n : sum,\n 0\n );\n }\n\n return round(\n totalCityTaxPrice / (this.numberOfNights > 0 ? this.numberOfNights : 1)\n );\n }\n\n get totalPrice() {\n let totalPrice = 0;\n if (this.model && this.model.dayPrices) {\n totalPrice = this.model.dayPrices.reduce(\n (sum, e) => sum + e.price + this.mergedCityTaxPricePerDay(),\n 0\n );\n }\n\n if (this.model && this.model.discountPercent) {\n totalPrice = round(\n totalPrice * (1 - round(this.model.discountPercent / 100, 8))\n );\n }\n\n return totalPrice;\n }\n\n get agencyMarginAmount() {\n return this.totalPrice - this.totalOwnerPrice;\n }\n\n get agencyMarginPercentageNumber() {\n return formatLocaleNumber(\n round((this.agencyMarginAmount / this.totalPrice) * 100),\n 2\n );\n }\n\n get totalPriceWithoutDiscount() {\n let totalPriceWithoutDiscount = 0;\n if (this.model && this.model.dayPrices) {\n totalPriceWithoutDiscount = this.model.dayPrices.reduce(\n (sum, e) => sum + e.price + this.mergedCityTaxPricePerDay(),\n 0\n );\n }\n return totalPriceWithoutDiscount;\n }\n\n get totalPriceWithDiscount() {\n //this is the number used for absoulte agency fees calculation\n let totalPriceWithDiscount = this.totalPriceWithoutDiscount;\n if (this.model && this.model.discountPercent) {\n totalPriceWithDiscount = round(\n totalPriceWithDiscount * (1 - this.model.discountPercent / 100)\n );\n }\n return totalPriceWithDiscount;\n }\n\n get ownerPriceWithoutDiscountOrFee() {\n let ownerFeeWithoutDiscount = 0;\n if (this.model && this.model.dayPrices) {\n ownerFeeWithoutDiscount = this.model.dayPrices.reduce(\n (sum, e) => sum + e.inputPrice,\n 0\n );\n }\n\n return ownerFeeWithoutDiscount;\n }\n\n get totalOwnerPrice() {\n let totalOwnerPrice = 0;\n if (this.model && this.model.dayPrices) {\n totalOwnerPrice = this.model.dayPrices.reduce(\n (sum, e) => sum + e.inputPrice + this.mergedCityTaxPricePerDay(),\n 0\n );\n }\n if (this.model && this.model.discountInputPercent) {\n totalOwnerPrice = round(\n totalOwnerPrice * (1 - this.model.discountInputPercent / 100)\n );\n }\n if (this.model.ownerPaysOTACommission && this.channelCommission != null) {\n totalOwnerPrice = totalOwnerPrice - this.channelCommission;\n }\n if (this.model.agencyFeesTotal != null) {\n totalOwnerPrice = totalOwnerPrice - this.model.agencyFeesTotal;\n }\n return totalOwnerPrice;\n }\n\n get averagePricePerNight() {\n if (this.model && this.model.dayPrices) {\n return round(this.totalPrice / (this.model.dayPrices.length ?? 1));\n }\n return 0;\n }\n\n get averageInputPricePerNight() {\n if (this.model && this.model.dayPrices) {\n return round(this.totalOwnerPrice / (this.model.dayPrices.length ?? 1));\n }\n\n return 0;\n }\n\n get numberOfNights() {\n if (this.model?.arrivalDate && this.model?.departureDate) {\n const numberOfDays = differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n );\n return isFinite(numberOfDays) && numberOfDays > 0 ? numberOfDays : 1;\n } else {\n return 0;\n }\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n requiredAllowedZero: (value: string | number) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n noNegativeNumbers: (value: string | number) =>\n value == null ||\n value == undefined ||\n (isNumber(value) && value >= 0) ||\n (isString(value) && parseLocaleNumber(value) >= 0) ||\n this.$t(\"Validation.MustBePositive\"),\n maxLength: (max: number) => (v: string) =>\n !v ||\n v.length <= max ||\n this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n\n get isTenantAgency() {\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get currencyIsoCode() {\n const currency = this.currencies?.find((x) => x.id == this.unitCurrencyId);\n return (\n currency?.isoCode ??\n this.financialSettings?.workingCurrency.isoCode ??\n \"EUR\"\n );\n }\n\n inputPriceChanged(index: number) {\n const inputPriceBeforeCommission = this.model.ownerPaysOTACommission\n ? round(\n this.model.dayPrices[index].inputPrice +\n round((this.channelCommission ?? 0) / this.numberOfNights)\n )\n : this.model.dayPrices[index].inputPrice;\n this.model.dayPrices[index].inputPriceBeforeCommission =\n inputPriceBeforeCommission;\n this.model.inputPriceWasManuallyChanged = true;\n }\n\n serviceTypeRule(val: number) {\n return this.serviceTypeIncludesCityTax(\n _.first(this.model.dayPrices)?.serviceTypeId ?? 0\n ) === this.serviceTypeIncludesCityTax(val)\n ? []\n : this.$t(\"Validation.ServiceTypeCategory\");\n }\n\n serviceTypeIncludesCityTax(id: number) {\n return this.serviceTypes?.find((x) => x.id == id)?.includesCityTax;\n }\n\n date(value: string) {\n return new Date(value);\n }\n\n timeOptions = Array.from(\n Array(48),\n (v, k) =>\n `${_.padStart(Math.floor(k / 2).toString(), 2, \"0\")}:${\n k % 2 ? \"30\" : \"00\"\n }:00`\n );\n agencyMarginPercentage(marginAmount: number, dayPrice: number) {\n return formatLocaleNumber((marginAmount / dayPrice) * 100, 2);\n }\n\n getRateName(rate: RatePlanModel) {\n const paxSuffix =\n rate.minPersons === rate.maxPersons\n ? `${rate.minPersons} pax`\n : `${rate.minPersons}-${rate.maxPersons} pax`;\n const losSuffix =\n rate.maxStay === 0\n ? `${rate.minStay}+ LOS`\n : rate.minStay === rate.maxStay\n ? `${rate.minStay} LOS`\n : `${rate.minStay}-${rate.maxStay} LOS`;\n\n return `${rate.name}, ${paxSuffix}, ${losSuffix}`;\n }\n\n @Prop({ default: false }) open!: boolean;\n @Prop() distributionChannelTypeId!: number | null;\n @Prop() serviceTypes?: ServiceType[];\n @PropSync(\"unit\", { default: new ReservationAccUnitModel() })\n _unit?: ReservationAccUnitModel;\n\n @Prop({ default: true }) isEditingReservation?: boolean;\n\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n @Getter(\"appParams/reservationHideDeposit\") reservationHideDeposit?: boolean;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Getter(\"appParams/childrenAffectPAXRatePlanSelection\")\n childrenAffectPAXRatePlanSelection?: boolean;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnitForm.vue?vue&type=template&id=a0be2568&scoped=true&\"\nimport script from \"./ReservationFormUnitForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnitForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnitForm.vue?vue&type=style&index=0&id=a0be2568&scoped=true&lang=scss&\"\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 \"a0be2568\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCol,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VForm,VIcon,VProgressLinear,VRow,VSelect,VTextarea,VToolbar,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-wrapper d-flex custom-gutters\"},[(!_vm.isMobile)?_c('div',{staticClass:\"flex-grow-1 filters\"},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"height\":\"100%\"}},[_c('v-container',{staticClass:\"filters-container\"},[_c('AvailabilitySearchForm',{attrs:{\"search-model\":_vm.searchFormModel},on:{\"update:searchModel\":function($event){_vm.searchFormModel=$event},\"update:search-model\":function($event){_vm.searchFormModel=$event},\"update-restrictions\":_vm.updateRestrictions}})],1),_c('v-card-actions',{staticClass:\"d-flex\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.searchFormModel.period.length != 2},on:{\"click\":function($event){return _vm.resetResultsAndSearch()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Search\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.resetResultsAndForm()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reset\"))+\" \")])],1)],1)],1):_vm._e(),(!_vm.isMobile)?_c('div',{staticClass:\"flex-grow-1 results-container\"},[(_vm.searched)?_c('AvailabilitySearchResults',{staticClass:\"results\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"selectedAvailabilities\":_vm.selectedAvailabilities,\"takenAvailabilities\":_vm.takenAvailabilities,\"freedAvailabilities\":_vm.freedAvailabilities,\"confirmSelectionLabel\":_vm.confirmSelectionLabel},on:{\"update:selectedAvailabilities\":function($event){_vm.selectedAvailabilities=$event},\"update:selected-availabilities\":function($event){_vm.selectedAvailabilities=$event},\"paginationChange\":function($event){return _vm.updateOptions($event)},\"confirmSelection\":_vm.confirmSelection}}):_vm._e()],1):_c('div',{staticClass:\"flex-grow-1\"},[(_vm.searched)?_c('AvailabilitySearchResultsMobile',{staticClass:\"results\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"selectedAvailabilities\":_vm.selectedAvailabilities,\"takenAvailabilities\":_vm.takenAvailabilities,\"freedAvailabilities\":_vm.freedAvailabilities,\"searchRestrictions\":_vm.restrictions,\"confirmSelectionLabel\":_vm.confirmSelectionLabel,\"isGlobalSearch\":false,\"openFilter\":_vm.globalOpenFilter,\"filterPrefill\":_vm.prefill},on:{\"update:selectedAvailabilities\":function($event){_vm.selectedAvailabilities=$event},\"update:selected-availabilities\":function($event){_vm.selectedAvailabilities=$event},\"paginationChange\":function($event){return _vm.updateOptions($event)},\"confirmSelection\":_vm.confirmSelection,\"filterUpdated\":function($event){return _vm.updateFilter($event)},\"update:openFilter\":function($event){_vm.globalOpenFilter=$event},\"update:open-filter\":function($event){_vm.globalOpenFilter=$event}}}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport AvailabilitySearchResults from \"./AvailabilitySearchResults.vue\";\nimport AvailabilitySearchResultsMobile from \"./AvailabilitySearchResultsMobile.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport {\n AvailabilitySearchResult,\n SelectedAvailability,\n} from \"@/shared/models/availability\";\nimport { AvailabilitySearchPrefillModel } from \"./types\";\nimport { SearchRestrictionsModel } from \"../reservation-form/types\";\nimport AvailabilitySearchForm, {\n AvailabilitySearchFormModel,\n} from \"./components/AvailabilitySearchForm.vue\";\nimport * as _ from \"lodash\";\n\n@Component({\n components: {\n AvailabilitySearchResults,\n AvailabilitySearchResultsMobile,\n AvailabilitySearchForm,\n },\n})\nexport default class AvailabilitySearch extends Vue {\n open = true;\n @Getter(\"language/language\") language?: string;\n\n searchFormModel: AvailabilitySearchFormModel = {\n period: [],\n numberOfUnits: 1,\n numberOfAdults: 2,\n numberOfChildren: 0,\n numberOfBedrooms: 0,\n numberOfBathrooms: 0,\n childAges: [],\n includeSpecialOffers: true,\n };\n\n @PropSync(\"openFilter\") globalOpenFilter?: boolean;\n @Prop({ default: undefined }) prefill?: AvailabilitySearchPrefillModel;\n @Prop({ default: undefined }) takenAvailabilities?: SelectedAvailability[];\n @Prop({ default: undefined }) freedAvailabilities?: SelectedAvailability[];\n @Prop() confirmSelectionLabel?: string;\n @Prop() isMobile?: boolean;\n @Prop() isOpen?: boolean;\n\n @Watch(\"prefill\", { immediate: true, deep: true })\n prefillChanged() {\n if (this.prefill && this.searchFormModel) {\n if (this.prefill.period && this.prefill.period.length == 2) {\n this.searchFormModel.period = [];\n this.searchFormModel.period.push(\n this.prefill.period[0].toISOString().substring(0, 10),\n this.prefill.period[1].toISOString().substring(0, 10)\n );\n }\n\n this.searchFormModel.numberOfUnits = this.prefill.numberOfUnits;\n this.searchFormModel.numberOfAdults = this.prefill.numberOfAdults;\n this.searchFormModel.numberOfChildren = this.prefill.numberOfChildren;\n this.searchFormModel.numberOfBedrooms = this.prefill.numberOfBedrooms;\n this.searchFormModel.numberOfBathrooms = this.prefill.numberOfBathrooms;\n if (this.prefill.childrenAges && this.prefill.childrenAges.length > 0) {\n this.searchFormModel.childAges = _.cloneDeep(this.prefill.childrenAges);\n } else {\n this.setChildAges();\n }\n this.updateRestrictions();\n this.resetResults();\n }\n }\n\n setChildAges() {\n if (\n !this.searchFormModel.numberOfChildren ||\n this.searchFormModel.numberOfChildren <= 0\n ) {\n this.searchFormModel.childAges = [];\n return;\n }\n while (\n this.searchFormModel.childAges.length <\n this.searchFormModel.numberOfChildren\n ) {\n this.searchFormModel.childAges.push(0);\n }\n while (\n this.searchFormModel.childAges.length >\n this.searchFormModel.numberOfChildren\n ) {\n this.searchFormModel.childAges.pop();\n }\n }\n\n restrictions: SearchRestrictionsModel | null = null;\n updateRestrictions() {\n const period = [];\n if (this.searchFormModel.period.length === 2) {\n const from = new Date(this.searchFormModel.period[0]);\n const to = new Date(this.searchFormModel.period[1]);\n period.push(from, to);\n }\n\n this.restrictions = {\n period: period,\n numberOfUnits: this.searchFormModel.numberOfUnits,\n numberOfAdults: this.searchFormModel.numberOfAdults,\n numberOfChildren: this.searchFormModel.numberOfChildren,\n numberOfBedrooms: this.searchFormModel.numberOfBedrooms,\n numberOfBathrooms: this.searchFormModel.numberOfBathrooms,\n childrenAges: this.searchFormModel.childAges,\n } as SearchRestrictionsModel;\n }\n\n @Watch(\"restrictions\")\n restrictionsChanged() {\n this.$emit(\"update:restrictions\", _.cloneDeep(this.restrictions));\n }\n\n selectedAvailabilities: SelectedAvailability[] = [];\n @Watch(\"selectedAvailabilities\")\n selectedAvailabilitiesChanged() {\n this.$emit(\"update:selection\", _.cloneDeep(this.selectedAvailabilities));\n }\n\n items: ListModel = {\n result: [],\n count: 0,\n };\n\n options!: DataOptions;\n updateOptions(value: DataOptions) {\n this.options = value;\n this.search();\n }\n loading = false;\n\n resetResults() {\n this.selectedAvailabilities = [];\n this.items = {\n result: [],\n count: 0,\n };\n\n this.searched = false;\n }\n\n resetResultsAndForm() {\n this.searchFormModel = {\n period: [],\n numberOfUnits: 1,\n numberOfAdults: 2,\n numberOfChildren: 0,\n numberOfBedrooms: 0,\n numberOfBathrooms: 0,\n childAges: [],\n propertyTypes: [],\n categories: [],\n amenities: [],\n includeSpecialOffers: true,\n };\n this.prefillChanged();\n\n this.resetResults();\n }\n\n resetResultsAndSearch() {\n if (this.options) {\n this.options.page = 1;\n }\n this.resetResults();\n\n this.search();\n }\n\n updateFilter(filters: any) {\n this.searchFormModel.propertyName = filters.nameFilter;\n this.searchFormModel.cityId = filters.cityId;\n\n this.resetResultsAndSearch();\n }\n\n searched = false;\n\n search() {\n if (this.searchFormModel.period.length != 2) {\n return;\n }\n\n if (!this.searchFormModel.numberOfAdults) {\n this.searchFormModel.numberOfAdults = 2;\n }\n\n const requestModel = {\n arrivalDate: new Date(this.searchFormModel.period[0]),\n departureDate: new Date(this.searchFormModel.period[1]),\n propertyTypeIdsJoined: this.searchFormModel.propertyTypes?.join(\",\"),\n categoryIdsJoined: this.searchFormModel.categories?.join(\",\"),\n amenityIdsJoined: this.searchFormModel.amenities?.join(\",\"),\n ...this.searchFormModel,\n };\n\n this.updateRestrictions();\n\n this.open = false;\n this.loading = true;\n this.searched = true;\n\n Vue.axios\n .get>(\n \"AdvancedSearch/FindAvailability\",\n {\n params: {\n ...requestModel,\n $top:\n this.options && this.options.itemsPerPage != -1\n ? this.options.itemsPerPage\n : null,\n $skip:\n this.options && this.options.itemsPerPage != -1\n ? (this.options.page - 1) * this.options.itemsPerPage\n : 0,\n $count: true,\n },\n }\n )\n .then((response) => {\n this.items = response.data;\n\n // parse ratesJSON to rates array\n for (const item of this.items.result) {\n // TODO: (borna, paxlos refactor) sort results maybe?\n item.rates = item.ratesJSON ? JSON.parse(item.ratesJSON) : [];\n for (const rate of item.rates) {\n const selectedAmount = SelectedAvailability.GetCountInArray(\n this.selectedAvailabilities,\n item,\n rate\n );\n item.numberOfAvailableUnits =\n item.numberOfAvailableUnits - selectedAmount;\n }\n }\n })\n .finally(() => {\n this.loading = false;\n this.$emit(\"update:scrollToTop\");\n });\n }\n\n confirmSelection() {\n this.$emit(\"confirmSelection\", _.cloneDeep(this.selectedAvailabilities));\n this.selectedAvailabilities = [];\n }\n\n @Watch(\"isOpen\", { immediate: true })\n isOpenChanged(fresh: boolean) {\n if (this.isMobile && fresh) {\n this.resetResultsAndSearch();\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchReservationForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchReservationForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AvailabilitySearchReservationForm.vue?vue&type=template&id=613bff8f&scoped=true&\"\nimport script from \"./AvailabilitySearchReservationForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AvailabilitySearchReservationForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AvailabilitySearchReservationForm.vue?vue&type=style&index=0&id=613bff8f&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 \"613bff8f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VContainer,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',[_c('v-card-text',[_c('v-form',{model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-fade-transition',[(_vm.isLoading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CopyGuests.CopyGuestsFromReservation'),\"rules\":[\n _vm.rules.required,\n _vm.rules.mustHaveReservation(\n _vm.sourceReservationId,\n _vm.reservationModel\n ) ]},model:{value:(_vm.sourceReservationId),callback:function ($$v) {_vm.sourceReservationId=_vm._n($$v)},expression:\"sourceReservationId\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-radio-group',{attrs:{\"disabled\":!_vm.reservationModel},model:{value:(_vm.copyAllGuests),callback:function ($$v) {_vm.copyAllGuests=$$v},expression:\"copyAllGuests\"}},[_c('v-radio',{attrs:{\"value\":true,\"label\":_vm.$t('CopyGuests.All') +\n \" (\" + (_vm.$t('number of guests')) + \": \" + _vm.totalGuests + \")\"}}),_c('div',[_c('v-radio',{attrs:{\"value\":false,\"label\":_vm.$t('CopyGuests.FromUnit'),\"disabled\":_vm.sourceUnits.length <= 1}})],1)],1)],1),_c('v-col',{staticClass:\"d-flex align-end\",attrs:{\"cols\":\"9\"}},[_c('v-select',{attrs:{\"items\":_vm.sourceUnits,\"item-value\":\"id\",\"item-text\":function (x) { return x.name + \" (\" + (_vm.$t('number of guests')) + \": \" + (x.guests) + \")\"; },\"disabled\":_vm.sourceUnits.length <= 1 || _vm.copyAllGuests === true,\"rules\":_vm.copyAllGuests === false ? [_vm.rules.required] : []},model:{value:(_vm.copyFromUnitId),callback:function ($$v) {_vm.copyFromUnitId=$$v},expression:\"copyFromUnitId\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"disabled\":!_vm.isFormValid},on:{\"click\":function($event){return _vm.copyGuests()}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{attrs:{\"loading\":_vm.isLoading},on:{\"click\":function($event){_vm.isOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { CopyGuestsReservationModel } from \"./types\";\nimport * as _ from \"lodash\";\n\n@Component\nexport default class CopyGuestsDialog extends Vue {\n @PropSync(\"open\") isOpen?: boolean;\n @Prop() reservationUnitId?: number;\n\n @Watch(\"isOpen\")\n openWatch(fresh: boolean) {\n if (!fresh) {\n this.sourceReservationId = null;\n }\n }\n\n isFormValid = false;\n isLoading = false;\n sourceReservationId: number | null = null;\n\n copyAllGuests = true;\n copyFromUnitId: number | null = null;\n\n reservationModel: CopyGuestsReservationModel | null = null;\n get sourceUnits() {\n return this.reservationModel?.units ?? [];\n }\n get totalGuests() {\n return (\n this.reservationModel?.units.reduce((sum, x) => sum + x.guests, 0) ?? 0\n );\n }\n\n @Watch(\"sourceReservationId\")\n sourceReservationIdWatch() {\n if (this.sourceReservationId) {\n this.debouncedLoad();\n } else {\n this.reservationModel = null;\n this.copyAllGuests = true;\n this.copyFromUnitId = null;\n }\n }\n\n debouncedLoad = _.debounce(this.loadReservation, 500);\n\n loadReservation() {\n this.isLoading = true;\n this.axios\n .get(\n \"reservations/GetSourceReservationForGuestCopying/\" +\n this.sourceReservationId\n )\n .then((res) => {\n this.reservationModel = res.data;\n })\n .catch(() => {\n this.reservationModel = null;\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"CopyGuests.ReservationNotFound\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.isLoading = false;\n this.copyFromUnitId = null;\n if (this.sourceUnits.length <= 1) this.copyAllGuests = true;\n });\n }\n\n copyGuests() {\n const request = {\n targetReservationAccUnitId: this.reservationUnitId,\n sourceReservationId: this.sourceReservationId,\n sourceReservationAccUnitId:\n this.copyAllGuests === false ? this.copyFromUnitId : null,\n };\n\n this.isLoading = true;\n\n this.axios\n .post(\"/reservations/CopyGuests\", request)\n .then(() => {\n this.isOpen = false;\n this.$emit(\"guestsCopied\");\n })\n .finally(() => {\n this.isLoading = false;\n });\n }\n\n get rules() {\n return {\n mustHaveReservation: (value: any, reservation: any) =>\n (!!value && !!reservation) ||\n this.$t(\"Validation.CopyGuests.MustHaveReservation\").toString(),\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n };\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CopyGuestsDialog.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CopyGuestsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CopyGuestsDialog.vue?vue&type=template&id=52feb059&\"\nimport script from \"./CopyGuestsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CopyGuestsDialog.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VFadeTransition,VForm,VOverlay,VProgressCircular,VRadio,VRadioGroup,VRow,VSelect,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"800\",\"persistent\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-card',[_c('v-card-title',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('Choose accommodation unit'))+\" \")]),_c('v-spacer'),_c('v-autocomplete',{attrs:{\"items\":_vm.properties,\"item-text\":function (x) { return x.name; },\"item-value\":function (x) { return x.name; },\"label\":_vm.$t('OccupancyReport.Filters.Property'),\"calculate-widths\":\"\",\"dense\":\"\",\"hide-details\":true},on:{\"click\":function($event){$event.stopPropagation();},\"change\":_vm.propertyChanged},model:{value:(_vm.selectedPropertyName),callback:function ($$v) {_vm.selectedPropertyName=$$v},expression:\"selectedPropertyName\"}})],1),_c('v-card-text',[_c('div',{staticClass:\"table-wrapper\"},[_c('v-data-table',{attrs:{\"loading\":_vm.loadingUnits,\"headers\":_vm.translatedHeaders,\"items\":_vm.filteredUnits,\"item-key\":\"accommodationUnitId\",\"item-name\":\"accommodationUnitName\",\"items-per-page\":15,\"fixed-header\":\"\",\"show-select\":\"\",\"height\":\"100%\"},on:{\"item-selected\":_vm.selectUnit},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"input-value\":_vm.areAllUnitsSelected()},on:{\"change\":_vm.selectAllUnits}})]},proxy:true},{key:\"header.accommodationUnitName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.accommodationUnitNameFilter),callback:function ($$v) {_vm.accommodationUnitNameFilter=$$v},expression:\"accommodationUnitNameFilter\"}})]}},{key:\"header.accommodationUnitTypeName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.accommodationUnitTypeNameFilter),callback:function ($$v) {_vm.accommodationUnitTypeNameFilter=$$v},expression:\"accommodationUnitTypeNameFilter\"}})]}},{key:\"no-data\",fn:function(){return [(!_vm.loadingUnits)?_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fa-hotel\"}}):_vm._e()]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)]),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.$t('Confirm')))]),_c('v-checkbox',{staticClass:\"ignore-restrictions-checkbox\",attrs:{\"label\":_vm.$t('Ignore restrictions')},on:{\"change\":_vm.ignoreRestrictionsChanged},model:{value:(_vm.ignoreRestrictions),callback:function ($$v) {_vm.ignoreRestrictions=$$v},expression:\"ignoreRestrictions\"}}),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t('Cancel')))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { SimpleAvailabilitySearchResult } from '@/shared/models/availability';\nimport { ListModel } from '@/shared/models/listModel';\nimport { Component, Prop, PropSync, Vue, Watch } from 'vue-property-decorator';\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { Getter } from 'vuex-class';\nimport { GlobalFilterProperty } from '@/store/modules/globalFilters';\n\n@Component({ components: { NoData }})\nexport default class SimpleAvailabilitySearchModal extends Vue {\n @PropSync('open') internalOpen?: boolean;\n @Prop() availabilityFilter?: any;\n @Prop() selectedUnitIds?: number[];\n @Prop({ default: () => [] }) ownerIds?: number[];\n\n @Getter(\"globalFilters/filteredProperties\") properties?: GlobalFilterProperty[];\n\n @Watch('$route') \n routeChanged() {\n this.internalOpen = false;\n }\n\n @Watch('internalOpen') \n onOpenChanged(fresh: boolean) {\n\n if (fresh) {\n this.selectedPropertyNameValue = this.availabilityFilter.propertyName != \"\"\n ? this.availabilityFilter.propertyName\n : this.properties?.find((x, index) => index == 0)?.name ?? \"\";\n this.loadUnits();\n } else {\n this.units = [];\n this.selected = [];\n this.accommodationUnitNameFilter = \"\";\n this.accommodationUnitTypeNameFilter = \"\";\n }\n }\n\n selectedPropertyNameValue = \"\";\n\n get selectedPropertyName(){\n return this.selectedPropertyNameValue;\n }\n //changing property should remove any previous selected unit\n set selectedPropertyName(val: string){\n if (val != this.selectedPropertyNameValue){\n this.selectedPropertyNameValue = val;\n this.selected = [];\n }\n }\n\n loadingUnits = true;\n units: SimpleAvailabilitySearchResult[] = [];\n loadUnits() {\n this.loadingUnits = true;\n Vue.axios\n .get>(\n \"/advancedSearch/FindAvailableAccUnitsForProperty\",\n {\n params: {\n $count: true,\n $skip: this.units.length,\n propertyName: this.selectedPropertyName,\n arrivalDate: this.availabilityFilter.arrivalDate,\n departureDate: this.availabilityFilter.departureDate,\n ignoreRestrictions: this.ignoreRestrictions\n },\n }\n )\n .then((res) => {\n this.units.push(...res.data.result);\n if (res.data.count && this.units.length < res.data.count) {\n this.loadUnits();\n }\n })\n .finally(() => (this.loadingUnits = false));\n }\n\n ignoreRestrictions = true;\n ignoreRestrictionsChanged()\n {\n this.loadUnits();\n }\n\n propertyChanged() {\n this.units = [];\n this.loadUnits();\n }\n\n headers = [\n {\n text: \"Accomodation unit\",\n value: \"accommodationUnitName\",\n },\n {\n text: \"Accomodation unit type\",\n value: \"accommodationUnitTypeName\",\n },\n ];\n\n get translatedHeaders() {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n selected = [] as SimpleAvailabilitySearchResult[];\n\n accommodationUnitNameFilter = \"\";\n accommodationUnitTypeNameFilter = \"\";\n\n get filteredUnits() {\n if (!this.units) {\n return [];\n }\n \n let units = this.units;\n if (this.ownerIds && this.ownerIds.length > 0){\n units = units.filter(x => x.ownerId && this.ownerIds?.includes(x.ownerId));\n }\n\n return units\n .filter(\n (e) =>\n !this.accommodationUnitNameFilter ||\n e.accommodationUnitName.toLowerCase().includes(this.accommodationUnitNameFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.accommodationUnitTypeNameFilter ||\n e.accommodationUnitTypeName.toLowerCase().includes(this.accommodationUnitTypeNameFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.selectedUnitIds?.includes(e.accommodationUnitId)\n )\n }\n\n areAllUnitsSelected() {\n return !this.filteredUnits?.some(\n (e) =>\n this.selected.findIndex((acc) => acc.accommodationUnitId == e.accommodationUnitId) == -1\n );\n }\n\n selectUnit({\n item,\n value,\n }: {\n item: SimpleAvailabilitySearchResult;\n value: boolean;\n }) {\n if (\n value &&\n !this.selected.some((x) => x.accommodationUnitId == item.accommodationUnitId)\n ) {\n this.selected.push(item);\n } else if (!value) {\n const index = this.selected.findIndex(\n (x) => x.accommodationUnitId == item.accommodationUnitId\n );\n if (index != -1) {\n this.selected.splice(index, 1);\n }\n }\n }\n\n selectAllUnits(value: boolean) {\n if (!this.filteredUnits) {\n return;\n }\n\n if (value) {\n for (const unit of this.filteredUnits) {\n if (!this.selected.some((x) => x.accommodationUnitId == unit.accommodationUnitId)) {\n this.selected.push(unit);\n }\n }\n } else {\n for (const unit of this.filteredUnits) {\n const index = this.selected.findIndex(\n (x) => x.accommodationUnitId == unit.accommodationUnitId\n );\n\n if (index != -1) {\n this.selected.splice(index, 1);\n }\n\n const selectedIndex = this.selected.findIndex(\n (x) => x.accommodationUnitId == unit.accommodationUnitId\n );\n if (selectedIndex != -1) {\n this.selected.splice(selectedIndex, 1);\n }\n }\n }\n }\n\n submit() {\n this.internalOpen = false;\n\n this.$emit(\"unitsSelected\", this.selected);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SimpleAvailabilitySearchModal.vue?vue&type=template&id=401e7f61&scoped=true&\"\nimport script from \"./SimpleAvailabilitySearchModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SimpleAvailabilitySearchModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SimpleAvailabilitySearchModal.vue?vue&type=style&index=0&id=401e7f61&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 \"401e7f61\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDataTable,VDialog,VForm,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{staticClass:\"global-properties\",attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}}},[_c('v-card',{staticClass:\"actions-wrapper-top\",attrs:{\"tile\":\"\"}},[_c('v-icon',{staticClass:\"header-icon\",attrs:{\"size\":\"18\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"fas fa-arrow-left\")]),_c('v-spacer'),_c('div',{staticClass:\"object-name\"},[_vm._v(_vm._s(_vm.$t(\"Choose accommodation unit\")))]),_c('v-spacer'),_c('v-icon',{staticClass:\"header-icon\",attrs:{\"size\":\"18\"},on:{\"click\":function($event){_vm.filterModalOpen = !_vm.filterModalOpen}}},[_vm._v(\"fas fa-fw fa-filter\")])],1),_c('div',{staticClass:\"main-content-wrapper\"},[_c('div',{staticClass:\"autocomplete\"},[_c('v-autocomplete',{attrs:{\"items\":_vm.properties,\"item-text\":function (x) { return x.name; },\"item-value\":function (x) { return x.name; },\"label\":_vm.$t('OccupancyReport.Filters.Property'),\"calculate-widths\":\"\",\"dense\":\"\",\"hide-details\":true},on:{\"click\":function($event){$event.stopPropagation();},\"change\":_vm.propertyChanged},model:{value:(_vm.selectedPropertyName),callback:function ($$v) {_vm.selectedPropertyName=$$v},expression:\"selectedPropertyName\"}})],1),_c('v-data-table',{staticClass:\"global-property-filter-table\",attrs:{\"loading\":_vm.loadingUnits,\"items\":_vm.filteredUnits,\"item-key\":\"accommodationUnitId\",\"item-name\":\"accommodationUnitName\",\"fixed-header\":\"\",\"hide-default-footer\":\"\",\"disable-sort\":\"\",\"show-select\":\"\",\"dense\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-row',{attrs:{\"justify\":\"space-between\"}},[_c('div',{staticClass:\"header-row\"},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"input-value\":_vm.areAllUnitsSelected(),\"label\":_vm.$t('Select all')},on:{\"change\":_vm.selectAllUnits}})],1)])]},proxy:true},{key:\"item.data-table-select\",fn:function(ref){\nvar item = ref.item;\nvar isSelected = ref.isSelected;\nreturn [_c('div',{staticClass:\"custom-row\"},[_c('div',{staticClass:\"row-switch\"},[_c('v-checkbox',{staticClass:\"header-filter\",attrs:{\"dense\":\"\",\"input-value\":isSelected},on:{\"change\":function($event){return _vm.selectUnit(item, isSelected)}}})],1),_c('div',{staticClass:\"row-text\"},[_c('div',{staticClass:\"text-upper\",class:{'selected': isSelected}},[_vm._v(\" \"+_vm._s(item.accommodationUnitName)+\" \")]),_c('div',{staticClass:\"text-lower\",class:{'selected': isSelected}},[_vm._v(_vm._s(item.accommodationUnitTypeName))]),(_vm.showTakenUnits && !item.isAvailable)?_c('div',{staticClass:\"text-error\"},[_vm._v(_vm._s(_vm.$t(\"AccommodationUnit.UnitTaken\")))]):_vm._e()])])]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('v-card',{staticClass:\"actions-wrapper-bottom\",attrs:{\"tile\":\"\"}},[_c('v-row',[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Ignore restrictions')},on:{\"change\":_vm.ignoreRestrictionsChanged},model:{value:(_vm.ignoreRestrictions),callback:function ($$v) {_vm.ignoreRestrictions=$$v},expression:\"ignoreRestrictions\"}})],1),_c('v-row',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.selected.length == 0,\"tile\":\"\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t('Confirm')))])],1)],1),_c('MobileFilterModal',{attrs:{\"open\":_vm.filterModalOpen,\"filterType\":'accommodationUnit'},on:{\"update:open\":function($event){_vm.filterModalOpen=$event},\"filterUpdated\":function($event){return _vm.updateFilter($event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch, PropSync } from \"vue-property-decorator\";\nimport MobileFilterModal from \"@/components/misc/MobileFilterModal.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { SimpleAvailabilitySearchResult } from \"@/shared/models/availability\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Getter } from \"vuex-class\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({\n components: { RightDrawer, MobileFilterModal },\n})\nexport default class SimpleAvailabilitySearchModalMobile extends Vue {\n @PropSync('open') internalOpen?: boolean;\n @Prop() availabilityFilter?: any;\n @Prop() selectedUnitIds?: number[];\n @Prop({ default: () => [] }) ownerIds?: number[];\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Getter(\"globalFilters/filteredProperties\") properties?: GlobalFilterProperty[];\n\n @Watch('$route') \n routeChanged() {\n this.internalOpen = false;\n }\n\n @Watch('internalOpen') \n onOpenChanged(fresh: boolean) {\n if (fresh) {\n this.selectedPropertyNameValue = this.availabilityFilter.propertyName != \"\" \n ? this.availabilityFilter.propertyName\n : this.properties?.find((x, index) => index == 0)?.name ?? \"\";\n this.loadUnits();\n } else {\n this.units = [];\n this.selected = [];\n this.accommodationUnitNameFilter = \"\";\n this.accommodationUnitTypeNameFilter = \"\";\n }\n }\n\n selectedPropertyNameValue = \"\";\n\n get selectedPropertyName(){\n return this.selectedPropertyNameValue;\n }\n //changing property should remove any previous selected unit\n set selectedPropertyName(val: string){\n if (val != this.selectedPropertyNameValue){\n this.selectedPropertyNameValue = val;\n this.selected = [];\n }\n }\n\n get showTakenUnits() {\n return (\n policyChecker(\"SHOW_TAKEN_UNITS_ROLES\")(this.claims)\n );\n }\n\n loadingUnits = true;\n units: SimpleAvailabilitySearchResult[] = [];\n loadUnits() {\n this.loadingUnits = true;\n Vue.axios\n .get>(\n \"/advancedSearch/FindAvailableAccUnitsForProperty\",\n {\n params: {\n $count: true,\n $skip: this.units.length,\n propertyName: this.selectedPropertyName,\n arrivalDate: this.availabilityFilter.arrivalDate,\n departureDate: this.availabilityFilter.departureDate,\n ignoreRestrictions: this.ignoreRestrictions\n },\n }\n )\n .then((res) => {\n this.units.push(...res.data.result);\n if (res.data.count && this.units.length < res.data.count) {\n this.loadUnits();\n }\n })\n .finally(() => (this.loadingUnits = false));\n }\n\n ignoreRestrictions = true;\n ignoreRestrictionsChanged()\n {\n this.loadUnits();\n }\n\n propertyChanged() {\n this.units = [];\n this.loadUnits();\n }\n\n headers = [\n {\n text: \"Accomodation unit\",\n value: \"accommodationUnitName\",\n },\n {\n text: \"Accomodation unit type\",\n value: \"accommodationUnitTypeName\",\n },\n ];\n\n get translatedHeaders() {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n selected = [] as SimpleAvailabilitySearchResult[];\n\n accommodationUnitNameFilter = \"\";\n accommodationUnitTypeNameFilter = \"\";\n\n get filteredUnits() {\n if (!this.units) {\n return [];\n }\n\n let units = this.units;\n if (this.ownerIds && this.ownerIds.length > 0){\n units = units.filter(x => x.ownerId && this.ownerIds?.includes(x.ownerId));\n }\n\n return units\n .filter(\n (e) =>\n !this.accommodationUnitNameFilter ||\n e.accommodationUnitName.toLowerCase().includes(this.accommodationUnitNameFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.accommodationUnitTypeNameFilter ||\n e.accommodationUnitTypeName.toLowerCase().includes(this.accommodationUnitTypeNameFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.selectedUnitIds?.includes(e.accommodationUnitId)\n )\n }\n\n areAllUnitsSelected() {\n return this.filteredUnits.length > 0 && !this.filteredUnits?.some(\n (e) =>\n this.selected.findIndex((acc) => acc.accommodationUnitId == e.accommodationUnitId) == -1\n );\n }\n\n selectUnit(item: SimpleAvailabilitySearchResult, isSelected: boolean) {\n if (\n !isSelected &&\n !this.selected.some((x) => x.accommodationUnitId == item.accommodationUnitId)\n ) {\n this.selected.push(item);\n } else if (isSelected) {\n const index = this.selected.findIndex(\n (x) => x.accommodationUnitId == item.accommodationUnitId\n );\n if (index != -1) {\n this.selected.splice(index, 1);\n }\n }\n }\n\n selectAllUnits(value: boolean) {\n if (!this.filteredUnits) {\n return;\n }\n\n if (value) {\n for (const unit of this.filteredUnits) {\n if (!this.selected.some((x) => x.accommodationUnitId == unit.accommodationUnitId)) {\n this.selected.push(unit);\n }\n }\n } else {\n for (const unit of this.filteredUnits) {\n const index = this.selected.findIndex(\n (x) => x.accommodationUnitId == unit.accommodationUnitId\n );\n\n if (index != -1) {\n this.selected.splice(index, 1);\n }\n\n const selectedIndex = this.selected.findIndex(\n (x) => x.accommodationUnitId == unit.accommodationUnitId\n );\n if (selectedIndex != -1) {\n this.selected.splice(selectedIndex, 1);\n }\n }\n }\n }\n\n filterModalOpen = false;\n\n applyingFilter = false;\n\n selectedOnly = false;\n\n showDeletedProperties = false;\n\n updateFilter(filters: any) {\n this.accommodationUnitNameFilter = filters.accomodationUnitName;\n this.accommodationUnitTypeNameFilter = filters.accomodationUnitTypeName;\n }\n\n close() {\n this.resetFilters();\n this.$emit(\"update:open\", false);\n }\n\n resetFilters()\n {\n this.accommodationUnitNameFilter = \"\";\n this.accommodationUnitTypeNameFilter = \"\";\n }\n\n submit() {\n this.internalOpen = false;\n this.resetFilters();\n\n this.$emit(\"unitsSelected\", this.selected);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModalMobile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModalMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SimpleAvailabilitySearchModalMobile.vue?vue&type=template&id=68a56c5e&scoped=true&\"\nimport script from \"./SimpleAvailabilitySearchModalMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./SimpleAvailabilitySearchModalMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SimpleAvailabilitySearchModalMobile.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./SimpleAvailabilitySearchModalMobile.vue?vue&type=style&index=1&id=68a56c5e&scoped=true&lang=scss&\"\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 \"68a56c5e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCheckbox,VDataTable,VIcon,VRow,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n PropSync,\n Prop,\n Vue,\n Watch,\n Ref,\n} from \"vue-property-decorator\";\nimport {\n ReservationModel,\n ReservationAccUnitModel,\n UnitAvailability,\n SearchRestrictionsModel,\n AddOnServiceModel,\n DistributionChannelTypesEnum,\n NotifyUnitEvent,\n SelectedRatePlanModel,\n} from \"./types\";\nimport {\n calculateAddOnServiceQuantity,\n getUnitOwnerIds,\n calculateAgencyFees,\n} from \"./functions\";\nimport { AvailabilitySearchPrefillModel } from \"@/components/advanced-search/types\";\nimport ReservationFormUnitTile from \"./ReservationFormUnitTile.vue\";\nimport ReservationFormUnitTileMobile from \"./ReservationFormUnitTileMobile.vue\";\nimport ReservationFormUnitForm from \"./ReservationFormUnitForm.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport AvailabilitySearchReservationForm from \"@/components/advanced-search/AvailabilitySearchReservationForm.vue\";\nimport {\n SelectedAvailability,\n SimpleAvailabilitySearchResult,\n} from \"@/shared/models/availability\";\nimport { PriceCalculationMethodView } from \"@/shared/models/priceCalculationMethods\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport CopyGuestsDialog from \"./copy-guests/CopyGuestsDialog.vue\";\nimport * as _ from \"lodash\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport SimpleAvailabilitySearchModal from \"@/components/advanced-search/SimpleAvailabilitySearchModal.vue\";\nimport SimpleAvailabilitySearchModalMobile from \"@/components/advanced-search/SimpleAvailabilitySearchModalMobile.vue\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { DistributionChannelEnum } from \"@/shared/models/enums.type\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\n\nexport interface AddUnitModel {\n accomodationUnitTypeId: number;\n accomodationUnitId?: number;\n ratePlanId?: number;\n ratePlansAccomodationUnitTypeId?: number;\n distributionChannelTypeId: number | null;\n channelId: number | null;\n currencyId: number | null;\n arrivalDate: Date | null;\n departureDate: Date | null;\n}\n\n@Component({\n components: {\n ReservationFormUnitTile,\n ReservationFormUnitTileMobile,\n ReservationFormUnitForm,\n AvailabilitySearchReservationForm,\n FormDescription,\n CopyGuestsDialog,\n SimpleAvailabilitySearchModal,\n SimpleAvailabilitySearchModalMobile,\n },\n})\nexport default class ReservationFormUnits extends Vue {\n @PropSync(\"reservation\") model?: ReservationModel;\n\n @Prop({ default: undefined }) availabilities?: SelectedAvailability[];\n @Prop({ default: undefined }) restrictions?: SearchRestrictionsModel;\n\n @Prop() isMobile?: boolean;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n\n get tenantUsesServiceType() {\n const param = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationTenantUsesServiceTypes\n );\n return param && param.value;\n }\n\n get calculateWithEVisitorDates() {\n const param = this.appParams?.find(\n (x) =>\n x.id == AppParamsEnum.ReservationEVisitorCalculateCTWithEVisitorDates\n );\n return param && param.value;\n }\n\n editFormOpen = false;\n unitToEdit: ReservationAccUnitModel | null = null;\n\n copyGuestsOpen = false;\n copyGuestsToUnitId: number | null = null;\n\n unitAvailabilities: UnitAvailability[] = [];\n\n isOverbooked: number[] = [];\n\n isNotAvailable: number[] = [];\n\n descriptionTextResource = \"ReservationForm.AddUnit.Alert\";\n\n unitSelectionModalOpen = false;\n\n // list of all possible owner IDs\n get ownerIdsForUnitSelection() {\n if (\n this.model?.distributionChannelTypeId !==\n DistributionChannelEnum.OwnersReservation\n )\n return [];\n return _.uniq(\n this.model?.accomodationUnitTypes.flatMap((x) => getUnitOwnerIds(x)) ?? []\n );\n }\n\n // add preselected units\n @Watch(\"availabilities\", { immediate: true })\n availabilitiesChanged() {\n if (this.availabilities && this.availabilities.length > 0) {\n this.addAvailabilities(this.availabilities);\n } else {\n if (this.model) {\n this.model.accomodationUnitTypes = [];\n }\n }\n }\n\n @Watch(\"restrictions.isFromCalendar\")\n async changeCustomerForCalendarRatePlan() {\n if (\n this.model &&\n this.availabilities &&\n this.restrictions &&\n this.availabilities.length > 0 &&\n !this.availabilities.some(\n (x) =>\n x.ratePlansAccomodationUnitTypeId !=\n _.first(this.availabilities)?.ratePlansAccomodationUnitTypeId\n )\n ) {\n const availability = this.availabilities[0];\n const ratePlanId = this.model.accomodationUnitTypes.find(\n (x) => x.accomodationUnitTypeId == availability.accomodationUnitTypeId\n )?.ratePlan?.id;\n const correspondigSalesChannel = this.salesChannels?.find((x) =>\n ratePlanId != undefined ? x.defaultRatePlanId == ratePlanId : undefined\n );\n if (\n correspondigSalesChannel &&\n correspondigSalesChannel?.defaultCustomerId\n ) {\n const id = correspondigSalesChannel.defaultCustomerId;\n await this.axios\n .get(\"/customers/\" + id)\n .then((res) => {\n if (this.model) {\n this.model.customerId = res.data.id;\n this.model.customer.id = res.data.id;\n this.model.customer.name = res.data.legalEntityName\n ? res.data.legalEntityName\n : \"\";\n this.model.customer.eMail = res.data.eMail ? res.data.eMail : \"\";\n this.model.customer.telephoneNumber = res.data.telephoneNumber\n ? res.data.telephoneNumber\n : \"\";\n this.model.customer.countryOfResidenceId = res.data\n .countryOfResidenceId\n ? res.data.countryOfResidenceId\n : 0;\n this.model.distributionChannelTypeId =\n DistributionChannelTypesEnum.PartnerAgency;\n this.model.salesChannelId = correspondigSalesChannel.id;\n }\n })\n .finally();\n }\n }\n }\n\n // combine stay period and units for easier detection of changes\n get stayPeriodAndUnits() {\n return {\n arrivalDate: this.model?.arrivalDate,\n departureDate: this.model?.departureDate,\n units: this.model?.accomodationUnitTypes,\n };\n }\n\n // check availabilities when period or units change\n @Watch(\"stayPeriodAndUnits\")\n async stayPeriodAndUnitsChanged() {\n if (\n this.stayPeriodAndUnits.arrivalDate &&\n this.stayPeriodAndUnits.departureDate\n ) {\n if (this.model && this.model.id === 0) {\n await this.checkAvailability();\n } else {\n this.isNotAvailable = [];\n }\n await this.checkOverbooking();\n this.getUnitsDayPrices();\n }\n }\n\n currencyConversionService?: CurrencyConversionService;\n async created() {\n const promises = [];\n\n if (!this.financialSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 &&\n this.refreshPriceCalculationMethods\n ) {\n promises.push(this.refreshPriceCalculationMethods());\n }\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n promises.push(this.refreshTaxRates());\n }\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n promises.push(this.refreshSalesChannels());\n }\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n promises.push(this.refreshServiceTypes());\n }\n if (\n (this.accomodationUnitStatuses?.length ?? 0) === 0 &&\n this.refreshAccomodationUnitStatuses\n ) {\n promises.push(this.refreshAccomodationUnitStatuses());\n }\n\n await Promise.all(promises);\n\n if (this.financialSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n\n get isAllowedToAddUnitsViaAvailabilitySearch() {\n return policyChecker(\"GLOBAL_AVAILABILITY_SEARCH\")(this.claims);\n }\n\n get reservationIsReadonly() {\n if (\n (policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.model?.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation) ||\n !policyChecker(\"OWNER_LEVEL_3\")(this.claims)\n ) {\n return false;\n }\n return true;\n }\n\n closeSearch() {\n if (this.isMobile && this.availabilitySearchRestrictions !== null) {\n this.addAvailabilities(\n this.availabilitySearchSelection,\n this.availabilitySearchRestrictions\n );\n } else {\n this.availabilitySearchOpen = false;\n }\n }\n\n @Ref(\"unitForm\") unitForm?: ReservationFormUnitForm;\n\n changeServiceTypes(event: any) {\n this.unitToEdit = event.model;\n if (event.updateOtherUnits) {\n const serviceTypeId = _.first(this.unitToEdit?.dayPrices)?.serviceTypeId;\n this.model?.accomodationUnitTypes\n .filter((x) => x.id !== this.unitToEdit?.id || x.id === 0)\n .forEach((unit) => {\n const currentPriceIncludeCityTax =\n this.serviceTypes?.find((x) => x.id == serviceTypeId)\n ?.includesCityTax ?? false;\n unit.dayPrices.forEach((x) => {\n x.serviceTypeId = serviceTypeId;\n x.price =\n x.price -\n this.mergedCityTaxPricePerDay(unit, currentPriceIncludeCityTax) +\n (x.mergedCityTaxAmount ?? 0);\n x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n );\n });\n });\n }\n this.unitChangesSaved();\n }\n\n async notifyUnitForm(unit: NotifyUnitEvent) {\n this.unitToEdit = unit.model;\n if (unit.updateOtherUnits) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n timeout: 30000,\n message: this.$t(\"Reservation.RecalculatePrices\"),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: async () => {\n this.calculateMultipleUnits(\n this.unitToEdit?.ratePlan?.id\n ? this.unitToEdit.ratePlan.id\n : null,\n true,\n unit.inputPriceRecalculationOnly\n );\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n this.calculateMultipleUnits(\n this.unitToEdit?.ratePlan?.id\n ? this.unitToEdit.ratePlan.id\n : null,\n false,\n unit.inputPriceRecalculationOnly\n );\n return true;\n },\n },\n ],\n });\n\n return;\n }\n\n if (this.unitToEdit.ratePlan?.id) {\n this.unitForm?.setRatePlan(\n this.unitToEdit.ratePlan.ratePlansAccomodationUnitTypeId,\n unit.model,\n true,\n false,\n null,\n unit.autoPriceRecalculation,\n unit.inputPriceRecalculationOnly\n );\n }\n }\n\n //for salesChannelChange\n @Watch(\"model.isManualSalesChannelChanged\")\n changeRatePlanForSalesChannelChange() {\n if (this.model?.isManualSalesChannelChanged) {\n this.model.isManualSalesChannelChanged = false;\n const pickedSalesChannel = this.salesChannels?.find(\n (x) => x.id == this.model?.salesChannelId\n );\n if (pickedSalesChannel?.defaultRatePlanId) {\n this.calculateMultipleUnits(\n pickedSalesChannel.defaultRatePlanId,\n true,\n false\n );\n }\n }\n }\n\n calculateMultipleUnits(\n ratePlanId: number | null,\n recalculatePrices = false,\n inputPriceRecalculationOnly: boolean\n ) {\n if (ratePlanId === null) {\n return;\n }\n\n const originalCount = this.model?.accomodationUnitTypes.length ?? 0;\n let changedCount = 0;\n\n if (ratePlanId) {\n const specialOfferServices = this.getSpecialOfferServices(ratePlanId);\n\n this.model?.accomodationUnitTypes.forEach((unit) => {\n const ratePlanMappings = unit.ratePlanOptions.filter(\n (e) => e.ratePlanId == ratePlanId && e.status\n );\n if (ratePlanMappings.length > 0) {\n const numberOfPeople =\n unit.numberOfAdults +\n (this.childrenAffectPAXRatePlanSelection\n ? unit.numberOfChildren\n : 0);\n\n let matchingMapping = ratePlanMappings.find(\n (e) =>\n e.minPersons <= numberOfPeople &&\n e.maxPersons >= numberOfPeople &&\n e.minStay <= unit.numberOfNights &&\n (e.maxStay >= unit.numberOfNights || e.maxStay === 0)\n );\n if (!matchingMapping)\n matchingMapping = ratePlanMappings.find((e) => e.isDefault);\n\n if (matchingMapping) {\n unit.ratePlan = {\n id: matchingMapping.ratePlanId,\n ratePlansAccomodationUnitTypeId: matchingMapping.id,\n name: matchingMapping.name,\n parentRatePlanId: matchingMapping.parentRatePlanId,\n currencyId: matchingMapping.currencyId,\n isDefault: matchingMapping.isDefault,\n accomodationBookingFee: matchingMapping.accomodationBookingFee,\n addOnServicesBookingFee: matchingMapping.addOnServicesBookingFee,\n mergeAllBookingFeesIntoSingleItem:\n matchingMapping.mergeAllBookingFeesIntoSingleItem,\n } as SelectedRatePlanModel;\n\n this.unitForm?.setRatePlan(\n matchingMapping.id,\n unit,\n false,\n true,\n specialOfferServices\n );\n if (recalculatePrices) {\n this.unitForm?.recalculatePrices(\n matchingMapping.id,\n unit,\n inputPriceRecalculationOnly\n );\n }\n\n changedCount++;\n }\n }\n });\n }\n\n if (changedCount < originalCount) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Reservation.Units.RatePlan.UpdateAll.InfoMessage\"),\n timeout: 5000,\n });\n }\n }\n\n getSpecialOfferServices(ratePlanId: number) {\n let services: AddOnServiceModel[] = [];\n\n Vue.axios\n .get>(\n `reservations/GetSpecialOfferServices/${ratePlanId}`\n )\n .then((res) => {\n res.data.result.forEach((x) => (x.decimalQuantity = x.defaultQuantity));\n\n services = res.data.result;\n });\n\n return services;\n }\n\n // unit editing\n editUnit(unit: ReservationAccUnitModel) {\n this.unitToEdit = unit;\n this.editFormOpen = true;\n }\n\n unitChangesSaved() {\n if (this.unitToEdit) {\n const editedIdx =\n this.model?.accomodationUnitTypes.indexOf(this.unitToEdit) ?? -1;\n if (editedIdx > -1) {\n const freshUnitInstance = Object.assign(\n new ReservationAccUnitModel(),\n this.unitToEdit\n );\n this.model?.accomodationUnitTypes.splice(\n editedIdx,\n 1,\n freshUnitInstance\n );\n }\n }\n\n this.$emit(\"stayPeriodChanged\");\n }\n\n deleteUnit(unit: ReservationAccUnitModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n timeout: 10000,\n message: this.$t(\"ReservationAccomodationUnitType.DeleteConfirmation\", {\n value: unit.accomodationUnitName,\n }),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n if (this.model) {\n const index = this.model.accomodationUnitTypes.findIndex(\n (x) => x === unit\n );\n if (index != -1) {\n this.model.accomodationUnitTypes.splice(index, 1);\n }\n }\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n return true;\n },\n },\n ],\n });\n\n this.stayPeriodChanged();\n }\n\n get periodSet() {\n return this.model?.arrivalDate && this.model?.departureDate;\n }\n\n // get prefil data for availability search\n get availabilitySearchPrefil() {\n const period = [] as Date[];\n if (this.model && this.model.arrivalDate && this.model.departureDate) {\n period.push(this.model.arrivalDate, this.model.departureDate);\n }\n\n const allocatedAdults =\n this.model?.accomodationUnitTypes.reduce(\n (sum, x) => sum + x.numberOfAdults,\n 0\n ) ?? 0;\n const allocatedChildren =\n this.model?.accomodationUnitTypes.reduce(\n (sum, x) => sum + x.numberOfChildren,\n 0\n ) ?? 0;\n const allocatedUnits = this.model?.accomodationUnitTypes.length ?? 0;\n const allocatedChildrenAges =\n this.model?.accomodationUnitTypes.reduce(\n (sum, x) => sum + x.childrenAges.length,\n 0\n ) ?? 0;\n const numOfUnits = this.preventLessThanZero(\n (this.model?.numberOfUnits ?? 0) - allocatedUnits\n );\n\n const prefill: AvailabilitySearchPrefillModel = {\n period: period,\n numberOfAdults: this.preventLessThanZero(\n (this.model?.numberOfAdults ?? 0) - allocatedAdults\n ),\n numberOfChildren: this.preventLessThanZero(\n (this.model?.numberOfChildren ?? 0) - allocatedChildren\n ),\n numberOfUnits: numOfUnits == 0 ? 1 : numOfUnits,\n childrenAges: this.model?.childrenAges?.slice(allocatedChildrenAges),\n };\n\n return prefill;\n }\n\n preventLessThanZero(number: number) {\n return number < 0 ? 0 : number;\n }\n\n get unitSelectionFilter() {\n return {\n propertyName:\n this.model?.accomodationUnitTypes[0]?.propertyName ??\n this.model?.originalUnitTypesReservationWasOpenedWith[0]\n ?.propertyName ??\n \"\",\n arrivalDate: this.model?.arrivalDate,\n departureDate: this.model?.departureDate,\n };\n }\n\n get selectedUnitIds() {\n return this.model?.accomodationUnitTypes\n .filter((x) => x.accomodationUnitId != undefined)\n .map((x) => x.accomodationUnitId);\n }\n\n // set units currently on reservation as taken availabilities\n // to display data correctly on availability search\n get takenAvailabilities() {\n let toReturn = [] as SelectedAvailability[];\n const searchArrivalDate = this.model?.arrivalDate\n ?.toISOString()\n .substring(0, 10);\n const searchDepartureDate = this.model?.departureDate\n ?.toISOString()\n .substring(0, 10);\n\n if (!searchArrivalDate || !searchDepartureDate) {\n return toReturn;\n }\n\n if (this.model) {\n toReturn = this.model.accomodationUnitTypes\n .filter((x) => !x.id)\n .filter(\n (x) =>\n x.arrivalDate < searchDepartureDate &&\n searchArrivalDate < x.departureDate\n )\n .map((x) => {\n return {\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n accomodationUnitId: x.accomodationUnitId,\n ratePlanId: x.ratePlan?.id,\n occupancyBasedRuleId: x.occupancyBasedRuleId,\n numberOfOccupants: x.allowedOccupancy,\n };\n });\n }\n\n return toReturn;\n }\n\n get freedAvailabilities() {\n let toReturn = [] as SelectedAvailability[];\n const searchArrivalDate = this.model?.arrivalDate\n ?.toISOString()\n .substring(0, 10);\n const searchDepartureDate = this.model?.departureDate\n ?.toISOString()\n .substring(0, 10);\n\n if (!searchArrivalDate || !searchDepartureDate || !this.model) {\n return toReturn;\n }\n\n if (this.model) {\n toReturn = this.model.originalUnitTypesReservationWasOpenedWith\n .filter(\n (x) => !this.model?.accomodationUnitTypes.some((ut) => ut.id == x.id)\n )\n .filter(\n (x) =>\n x.arrivalDate < searchDepartureDate &&\n searchArrivalDate < x.departureDate\n )\n .map((x) => {\n return {\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n accomodationUnitId: x.accomodationUnitId,\n ratePlanId: x.ratePlan?.id,\n occupancyBasedRuleId: x.occupancyBasedRuleId,\n numberOfOccupants: x.allowedOccupancy,\n };\n });\n }\n\n return toReturn;\n }\n\n addSelectedUnits(selection: SimpleAvailabilitySearchResult[]) {\n const ratePlanId =\n (this.model?.accomodationUnitTypes.length ?? 0) > 0\n ? this.model?.accomodationUnitTypes[0]?.ratePlan?.id\n : undefined;\n const ratePlanAccomodationUnitTypeId =\n (this.model?.accomodationUnitTypes.length ?? 0) > 0\n ? this.model?.accomodationUnitTypes[0]?.ratePlan\n ?.ratePlansAccomodationUnitTypeId\n : undefined;\n const availabilities = [] as SelectedAvailability[];\n selection.forEach((x) => {\n availabilities.push({\n accomodationUnitTypeId: x.accommodationUnitTypeId,\n ratePlanId: ratePlanId,\n ratePlansAccomodationUnitTypeId: ratePlanAccomodationUnitTypeId,\n occupancyBasedRuleId: undefined,\n accomodationUnitId: x.accommodationUnitId,\n } as SelectedAvailability);\n });\n const restrictions: SearchRestrictionsModel = {\n period: [],\n numberOfUnits: selection.length,\n numberOfAdults: this.availabilitySearchPrefil.numberOfAdults,\n numberOfChildren: this.availabilitySearchPrefil.numberOfChildren,\n childrenAges: this.availabilitySearchPrefil.childrenAges,\n isFromCalendar: false,\n };\n\n this.addAvailabilities(availabilities, restrictions);\n }\n\n availabilitySearchSelection = [] as SelectedAvailability[];\n availabilitySearchRestrictions: SearchRestrictionsModel | null = null;\n\n availabilitySearchOpen = false;\n // add selected availabilities as units\n addAvailabilities(\n availabilities: SelectedAvailability[],\n restrictions?: SearchRestrictionsModel\n ) {\n const requestModel: AddUnitModel[] = availabilities.map((x) => {\n return {\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n ratePlanId: x.ratePlanId,\n ratePlansAccomodationUnitTypeId: x.ratePlansAccomodationUnitTypeId,\n accomodationUnitId: x.accomodationUnitId,\n distributionChannelTypeId:\n this.model?.distributionChannelTypeId ?? null,\n channelId:\n this.model?.distributionChannelTypeId ==\n DistributionChannelTypesEnum.PartnerAgency\n ? this.model.salesChannelId\n : this.model?.distributionChannelTypeId ==\n DistributionChannelTypesEnum.OTA\n ? this.model.otaid\n : null,\n currencyId:\n (this.model?.accomodationUnitTypes.length ?? 0) > 0\n ? this.model?.accomodationUnitTypes[0].ratePlan?.currencyId ?? null\n : null,\n arrivalDate:\n this.restrictions?.period[0] ?? this.model?.arrivalDate ?? null,\n departureDate:\n this.restrictions?.period[1] ?? this.model?.departureDate ?? null,\n };\n });\n\n this.$emit(\"isLoadingChanged\", true);\n Vue.axios\n .post(\n \"reservations/GetUnitsForReservationForm\",\n { units: requestModel }\n )\n .then((res) => {\n const numberOfAddedUnits = res.data.length;\n let totalAdults =\n restrictions?.numberOfAdults ??\n this.restrictions?.numberOfAdults ??\n 0;\n const totalChildren =\n restrictions?.numberOfChildren ??\n this.restrictions?.numberOfChildren ??\n 0;\n let assignedChildrenAges = 0;\n\n if (\n this.model &&\n this.model.numberOfUnits == this.model.accomodationUnitTypes.length\n ) {\n this.model.numberOfUnits =\n (this.model.numberOfUnits ?? 0) + numberOfAddedUnits;\n }\n\n for (const unit of res.data.sort((a, b) =>\n !a.ratePlan?.isDefault && b.ratePlan?.isDefault\n ? 1\n : a.ratePlan?.isDefault && !b.ratePlan?.isDefault\n ? -1\n : (a.ratePlan?.minPersons ?? 0) > (b.ratePlan?.minPersons ?? 0)\n ? 1\n : (a.ratePlan?.minPersons ?? 0) < (b.ratePlan?.minPersons ?? 0)\n ? -1\n : 0\n )) {\n const toAdd = {\n ...new ReservationAccUnitModel(),\n ...unit,\n };\n\n if (restrictions?.period && restrictions.period.length > 0) {\n toAdd.arrivalDate = restrictions.period[0]\n .toISOString()\n .substring(0, 10);\n toAdd.departureDate = restrictions.period[1]\n .toISOString()\n .substring(0, 10);\n toAdd.numberOfNights = differenceInDays(\n restrictions?.period[0],\n restrictions?.period[1]\n );\n } else if (this.model?.arrivalDate && this.model?.departureDate) {\n toAdd.arrivalDate = this.model.arrivalDate\n .toISOString()\n .substring(0, 10);\n toAdd.departureDate = this.model.departureDate\n .toISOString()\n .substring(0, 10);\n toAdd.numberOfNights = differenceInDays(\n new Date(this.model.arrivalDate),\n new Date(this.model.departureDate)\n );\n }\n\n if (toAdd.ratePlan?.isDefault) {\n const numOfPersonsToAssign =\n (toAdd.ratePlan.maxPersons ?? 0) > totalAdults\n ? totalAdults\n : toAdd.ratePlan.maxPersons ?? 0;\n toAdd.numberOfAdults = numOfPersonsToAssign;\n totalAdults = totalAdults - numOfPersonsToAssign;\n } else {\n toAdd.numberOfAdults = Math.floor(totalAdults / numberOfAddedUnits);\n }\n toAdd.numberOfChildren = Math.floor(\n totalChildren / numberOfAddedUnits\n );\n\n let childrenAges = [] as number[];\n\n const currentRestrictions = restrictions ?? this.restrictions;\n //if from availability search - copy children ages\n //if from new reservation - children ages will be \"defined\" but empty so check for length\n if (\n currentRestrictions?.childrenAges != undefined &&\n currentRestrictions.childrenAges.length ==\n currentRestrictions.numberOfChildren\n ) {\n childrenAges = currentRestrictions.childrenAges;\n }\n //from reservation form - create new 'empty' array for number of allocated children to added unit\n else {\n childrenAges = Array.from(Array(totalChildren), () => 0);\n }\n\n toAdd.childrenAges = _.cloneDeep(\n childrenAges.slice(\n assignedChildrenAges,\n assignedChildrenAges + toAdd.numberOfChildren\n )\n );\n assignedChildrenAges += toAdd.childrenAges.length;\n\n // some guests might be left floating around due to rounding, assign them to the last unit\n if (unit === res.data[res.data.length - 1]) {\n const leftoverAdults = totalAdults % numberOfAddedUnits;\n const leftoverChildren = totalChildren % numberOfAddedUnits;\n const leftoverChildrenAges = childrenAges.slice(\n assignedChildrenAges,\n assignedChildrenAges + leftoverChildren\n );\n\n toAdd.numberOfAdults += leftoverAdults;\n toAdd.numberOfChildren += leftoverChildren;\n toAdd.childrenAges.push(..._.cloneDeep(leftoverChildrenAges));\n assignedChildrenAges += leftoverChildrenAges.length;\n }\n\n const additionalServicesToAdd: AddOnServiceModel[] = [];\n for (const service of toAdd.selectedServices) {\n if (service.periods && service.periods.length != 0) {\n additionalServicesToAdd.push(\n ...service.periods.map((x) => {\n return {\n ...service,\n netUnitPrice: x.amount,\n from: x.from,\n to: x.to,\n periods: [],\n } as AddOnServiceModel;\n })\n );\n }\n }\n toAdd.selectedServices.push(...additionalServicesToAdd);\n\n for (const service of toAdd.selectedServices) {\n calculateAddOnServiceQuantity(\n service,\n toAdd,\n this.calculateWithEVisitorDates ?? false\n );\n\n const discountFactor = round(service.discountPercent / 100, 8) ?? 0;\n\n const totalGrossPrice = round(\n service.grossUnitPrice * service.decimalQuantity,\n 2\n );\n service.grossPrice = round(\n totalGrossPrice * (1 - discountFactor),\n 2\n );\n }\n\n const temp = _.clone(\n toAdd.selectedServices.filter((x) => x.isCityTax)\n );\n for (const service of temp) {\n if (service.to && service.from && service.decimalQuantity === 0) {\n toAdd.selectedServices = toAdd.selectedServices.filter(\n (x) => !_.isEqual(service, x)\n );\n } else if (\n !service.to &&\n !service.from &&\n service.decimalQuantity === 0 &&\n toAdd.selectedServices.some(\n (x) =>\n x.addOnServiceId === service.addOnServiceId &&\n x.decimalQuantity != 0\n )\n ) {\n toAdd.selectedServices = toAdd.selectedServices.filter(\n (x) => !_.isEqual(service, x)\n );\n }\n }\n this.model?.accomodationUnitTypes.push(toAdd);\n this.changeCustomerForCalendarRatePlan();\n }\n })\n .finally(() => {\n this.$emit(\"isLoadingChanged\", false);\n });\n this.availabilitySearchOpen = false;\n }\n\n stayPeriodChanged() {\n this.$emit(\"stayPeriodChanged\");\n }\n // check availability of units\n checkAvailability() {\n if (\n this.model &&\n this.model.accomodationUnitTypes &&\n this.model.accomodationUnitTypes.length > 0\n ) {\n this.isNotAvailable = [];\n const ids = this.model.accomodationUnitTypes.filter(\n (value, index, self) =>\n self\n .map((x) => x.accomodationUnitTypeId)\n .indexOf(value.accomodationUnitTypeId) === index\n );\n const requestModel = {\n arrivalDate: [] as Date[],\n departureDate: [] as Date[],\n accomodationUnitTypes: [] as UnitAvailability[],\n };\n\n for (const unitType of ids) {\n if (unitType.accomodationUnitId) {\n const tempArrival = new Date(unitType.arrivalDate);\n const tempDeparture = new Date(unitType.departureDate);\n const arrival = new Date(\n Date.UTC(\n tempArrival.getFullYear(),\n tempArrival.getMonth(),\n tempArrival.getDate()\n )\n );\n const departure = new Date(\n Date.UTC(\n tempDeparture.getFullYear(),\n tempDeparture.getMonth(),\n tempDeparture.getDate()\n )\n );\n requestModel.arrivalDate.push(arrival);\n requestModel.departureDate.push(departure);\n requestModel.accomodationUnitTypes.push({\n accomodationUnitTypeId: unitType.accomodationUnitTypeId,\n numberOfSelectedUnits: this.model.accomodationUnitTypes.filter(\n (x) => x.accomodationUnitTypeId == unitType.accomodationUnitTypeId\n ).length,\n numberOfAvailableUnits: 0,\n });\n }\n }\n\n if (\n requestModel.arrivalDate.length == 0 ||\n requestModel.departureDate.length == 0 ||\n requestModel.accomodationUnitTypes.length == 0\n ) {\n return;\n }\n\n Vue.axios\n .post(\n \"reservations/CheckUnitTypesAvailability\",\n requestModel\n )\n .then((res) => {\n this.unitAvailabilities = res.data;\n\n this.model?.accomodationUnitTypes.forEach((r) => {\n const availability = this.unitAvailabilities.find(\n (x) => x.accomodationUnitTypeId == r.accomodationUnitTypeId\n );\n if (\n availability &&\n availability.numberOfSelectedUnits >\n availability.numberOfAvailableUnits &&\n r.accomodationUnitId\n ) {\n this.isNotAvailable.push(r.accomodationUnitId);\n }\n });\n\n this.$emit(\"notAvailable\", this.isNotAvailable);\n });\n }\n }\n\n checkOverbooking() {\n if (\n this.model &&\n this.model.accomodationUnitTypes &&\n this.model.accomodationUnitTypes.length > 0\n ) {\n const requestModel = {\n arrivalDate: [] as Date[],\n departureDate: [] as Date[],\n accommodationUnitIds: [] as number[],\n reservationId: this.model.id,\n };\n\n for (const unitType of this.model.accomodationUnitTypes) {\n if (unitType.accomodationUnitId) {\n const tempArrival = new Date(unitType.arrivalDate);\n const tempDeparture = new Date(unitType.departureDate);\n const arrival = new Date(\n Date.UTC(\n tempArrival.getFullYear(),\n tempArrival.getMonth(),\n tempArrival.getDate()\n )\n );\n const departure = new Date(\n Date.UTC(\n tempDeparture.getFullYear(),\n tempDeparture.getMonth(),\n tempDeparture.getDate()\n )\n );\n requestModel.arrivalDate.push(arrival);\n requestModel.departureDate.push(departure);\n requestModel.accommodationUnitIds.push(unitType.accomodationUnitId);\n }\n }\n\n if (\n requestModel.arrivalDate.length == 0 ||\n requestModel.departureDate.length == 0 ||\n requestModel.accommodationUnitIds.length == 0\n ) {\n return;\n }\n\n Vue.axios\n .post(\n \"reservations/CheckAccommodationUnitOverbooking\",\n requestModel\n )\n .then((res) => {\n this.isOverbooked = res.data as number[];\n\n this.$emit(\"overbooked\", this.isOverbooked);\n });\n }\n }\n\n // get day prices for units\n getUnitsDayPrices() {\n if (\n this.model &&\n this.model.accomodationUnitTypes &&\n this.model.accomodationUnitTypes.length > 0\n ) {\n const ids = this.model.accomodationUnitTypes\n .map((x) => x.accomodationUnitTypeId)\n .filter(this.getDistinct);\n\n const arrivalDates =\n this.model.accomodationUnitTypes\n .map((x) => x.arrivalDate)\n .filter((x: any) => x) ?? [];\n\n const departureDates =\n this.model.accomodationUnitTypes\n .map((x) => x.departureDate)\n .filter((x: any) => x) ?? [];\n\n const minArrivalDate = arrivalDates.sort()[0];\n const maxDepartureDate = departureDates.sort().reverse()[0];\n\n const requestModel = {\n arrivalDate: minArrivalDate,\n departureDate: maxDepartureDate,\n accomodationUnitTypesIds: ids,\n };\n\n Vue.axios\n .post(\"reservations/GetUnitsDayPrices\", requestModel)\n .then((res) => {\n if (this.model) {\n if (!policyChecker(\"OWNER_LEVEL_3\")(this.claims)) {\n for (const unit of this.model.accomodationUnitTypes) {\n for (const ratePlan of unit.ratePlanOptions) {\n const ratePlanPrices = res.data\n .find(\n (x: any) =>\n x.accomodationUnitTypeId === unit.accomodationUnitTypeId\n )\n ?.ratePlanPrices.find(\n (x: any) => x.ratePlanAccUnitTypeId === ratePlan.id\n );\n\n ratePlan.dayPrices =\n ratePlanPrices?.dayPrices.filter(\n (x: any) =>\n (Date.parse(x.date.substring(0, 10)) >=\n Date.parse(unit.arrivalDate.substring(0, 10)) &&\n Date.parse(x.date.substring(0, 10)) <\n Date.parse(unit.departureDate.substring(0, 10))) ||\n (Date.parse(x.date.substring(0, 10)) ==\n Date.parse(unit.arrivalDate.substring(0, 10)) &&\n Date.parse(x.date.substring(0, 10)) ==\n Date.parse(unit.departureDate.substring(0, 10)))\n ) ?? [];\n\n if (\n unit.ratePlan?.ratePlansAccomodationUnitTypeId ===\n ratePlan.id\n ) {\n const currentPrices = _.cloneDeep(unit.dayPrices);\n const isDayStay = unit.arrivalDate == unit.departureDate;\n const isServiceTypeDayStay =\n _.first(currentPrices)?.serviceTypeId ==\n _.first(this.serviceTypes?.filter((x) => x.isDayRest))\n ?.id;\n\n // set serviceType to one from current prices or to ratePlans default serviceType for new units\n const currentServiceTypeId =\n isDayStay && !isServiceTypeDayStay\n ? _.first(this.serviceTypes?.filter((x) => x.isDayRest))\n ?.id\n : !isDayStay && isServiceTypeDayStay\n ? ratePlan.defaultServiceTypeId\n : _.first(currentPrices)?.serviceTypeId ??\n ratePlan.defaultServiceTypeId;\n\n const currentPriceIncludeCityTax =\n this.serviceTypes?.find(\n (x) => x.id == currentServiceTypeId\n )?.includesCityTax ?? false;\n\n unit.dayPrices = _.cloneDeep(ratePlan?.dayPrices ?? []);\n\n // if user has set pricePerNight manually we still need to fetch prices in case stay period was changed\n // after which we set all day prices to user set value\n if (unit.userSetPricePerNightManually) {\n unit.dayPrices.forEach(\n (x) => (\n (x.price =\n (unit.pricePerNight ?? x.price) -\n this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n )),\n (x.mergedCityTaxAmount =\n this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n )),\n (x.serviceTypeId = currentServiceTypeId)\n )\n );\n }\n // If none of the above is triggered we still need to\n // set new price and merged amount\n else {\n unit.dayPrices.forEach(\n (x) => (\n (x.price =\n x.price -\n this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n )),\n (x.mergedCityTaxAmount =\n this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n )),\n (x.serviceTypeId = currentServiceTypeId)\n )\n );\n }\n\n // only change unsaved prices (eg, when extending a stay for 1 day, only update the price for that 1 day)\n currentPrices.forEach((e: any) => {\n e.serviceTypeId =\n !isDayStay && isServiceTypeDayStay\n ? currentServiceTypeId\n : isDayStay && !isServiceTypeDayStay\n ? currentServiceTypeId\n : e.serviceTypeId;\n e.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n );\n });\n const pricesToSet: {\n date: Date;\n price: number;\n inputPrice: number;\n inputPriceBeforeCommission: number;\n serviceTypeId?: number;\n mergedCityTaxAmount: number;\n }[] = [];\n unit.dayPrices.forEach((e: any) =>\n pricesToSet.push(\n currentPrices?.find((x) => x.date == e.date) ?? e\n )\n );\n\n unit.dayPrices = _.cloneDeep(pricesToSet);\n\n if (!unit.userSetPricePerNightManually) {\n unit.pricePerNight = round(\n round(\n unit.dayPrices.reduce(\n (sum, dprice) =>\n sum +\n dprice.price +\n this.mergedCityTaxPricePerDay(\n unit,\n currentPriceIncludeCityTax\n ),\n 0\n ) ?? 0\n ) / (unit.dayPrices.length ?? 1),\n 2\n );\n }\n }\n }\n }\n } else {\n for (const unit of this.model.accomodationUnitTypes) {\n const accUnitType = res.data.find(\n (x: any) =>\n x.accomodationUnitTypeId == unit.accomodationUnitTypeId\n );\n const currentPrices = _.cloneDeep(unit.dayPrices);\n unit.dayPrices = _.cloneDeep(\n accUnitType.ratePlanPrices[0].dayPrices ?? []\n );\n if (unit.userSetPricePerNightManually) {\n unit.dayPrices.forEach(\n (x) => (\n (x.price =\n (unit.pricePerNight ?? x.price) -\n this.mergedCityTaxPricePerDay(unit, false)),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n unit,\n false\n ))\n )\n );\n }\n // If none of the above is triggered we still need to\n // set new price and merged amount\n else {\n unit.dayPrices.forEach(\n (x) => (\n (x.price =\n x.price - this.mergedCityTaxPricePerDay(unit, false)),\n (x.mergedCityTaxAmount = this.mergedCityTaxPricePerDay(\n unit,\n false\n ))\n )\n );\n }\n const pricesToSet: {\n date: Date;\n price: number;\n inputPrice: number;\n inputPriceBeforeCommission: number;\n serviceTypeId?: number;\n mergedCityTaxAmount: number;\n }[] = [];\n unit.dayPrices.forEach((e: any) =>\n pricesToSet.push(\n currentPrices.find((x) => x.date == e.date) ?? e\n )\n );\n\n unit.dayPrices = _.cloneDeep(pricesToSet);\n\n if (!unit.userSetPricePerNightManually) {\n unit.pricePerNight = round(\n round(\n unit.dayPrices.reduce(\n (sum, dprice) =>\n sum +\n dprice.price +\n this.mergedCityTaxPricePerDay(unit, false),\n 0\n ) ?? 0\n ) / (unit.dayPrices.length ?? 1)\n );\n }\n }\n }\n for (const resAccUnitType of this.model?.accomodationUnitTypes) {\n if (resAccUnitType.id && resAccUnitType.id === 0)\n this.recalculateAgencyFees(resAccUnitType);\n }\n }\n });\n }\n }\n\n recalculateAgencyFees(item: ReservationAccUnitModel) {\n item.appliedAgencyFees = [];\n for (const fee of item.propertyAgencyFees) {\n item.appliedAgencyFees.push(calculateAgencyFees(fee, item));\n }\n item.agencyFeesTotal = item.appliedAgencyFees?.reduce(\n (sum, x) => sum + (x.amount ?? 0),\n 0\n );\n }\n // includesCityTax is passed because new prices dont have a serviceType defined so we use current prices\n mergedCityTaxPricePerDay(\n unit: ReservationAccUnitModel,\n includesCityTax: boolean\n ) {\n const currencyId =\n unit.ratePlan?.currencyId ?? this.financialSettings?.workingCurrency.id;\n let totalCityTaxPrice = 0;\n if (unit && unit.selectedServices) {\n totalCityTaxPrice = unit.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (sum, e) =>\n includesCityTax\n ? sum +\n (this.currencyConversionService?.convertCurrency(\n e.grossPrice,\n e.currencyId,\n currencyId ?? e.currencyId\n ) ?? e.grossPrice)\n : sum,\n 0\n );\n }\n\n return round(\n totalCityTaxPrice /\n (this.numberOfNights(unit) > 0 ? this.numberOfNights(unit) : 1),\n 2\n );\n }\n\n numberOfNights(unit: ReservationAccUnitModel) {\n if (unit.arrivalDate && unit.departureDate) {\n return differenceInDays(\n new Date(unit.arrivalDate),\n new Date(unit.departureDate)\n );\n } else {\n return 0;\n }\n }\n\n getDistinct(value: any, index: any, self: any) {\n return self.indexOf(value) === index;\n }\n\n get canAddUnits() {\n return (\n (this.model?.numberOfUnits ?? 0) >\n (this.model?.accomodationUnitTypes.length ?? 0)\n );\n }\n\n openCopyGuestsDialog(unitId: number) {\n this.copyGuestsToUnitId = unitId;\n this.copyGuestsOpen = true;\n }\n\n clearRestrictions() {\n if (this.restrictions) {\n this.restrictions.isFromAvailabilitySearch = false;\n this.restrictions.isFromCalendar = false;\n }\n }\n\n // codebooks\n @Action(\"codebooks/refreshPriceCalculationMethods\")\n refreshPriceCalculationMethods?: () => Promise;\n @Getter(\"codebooks/priceCalculationMethods\")\n priceCalculationMethods?: PriceCalculationMethodView[];\n @Action(\"codebooks/refreshTaxRates\")\n refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\")\n serviceTypes?: ServiceType[];\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n\n @Action(\"codebooks/refreshAccomodationUnitStatuses\")\n refreshAccomodationUnitStatuses?: () => Promise;\n @Getter(\"codebooks/accomodationUnitStatuses\")\n accomodationUnitStatuses?: AccomodationUnitStatus[];\n\n @Getter(\"appParams/childrenAffectPAXRatePlanSelection\")\n childrenAffectPAXRatePlanSelection?: boolean;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnits.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnits.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormUnits.vue?vue&type=template&id=095b40e4&scoped=true&\"\nimport script from \"./ReservationFormUnits.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormUnits.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormUnits.vue?vue&type=style&index=0&id=095b40e4&scoped=true&lang=scss&\"\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 \"095b40e4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCol,VDialog,VIcon,VRow,VSpacer,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-subheader',{staticClass:\"subheader d-flex justify-space-between\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Recapitulation\"))+\" \"),(!_vm.isMobile && !_vm.isOwnerLevel3)?_c('v-btn',{attrs:{\"icon\":\"\",\"large\":\"\"},on:{\"click\":function($event){_vm.policiesDialog = !_vm.policiesDialog}}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"cancelation-policies-icon\"},'v-icon',attrs,false),on),[_vm._v(\"fal fa-tag\")])]}}],null,false,20112182)},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.RecapitulationAndPolicies\"))+\" \")])],1):_vm._e()],1),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AccommodationPrice\"))+\" \"),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalUnitPrices,\"currencyId\":_vm.currencyId}})],1),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.ServicesAndFeesPrice\"))+\" \"),_c('CurrencyDisplay',{attrs:{\"value\":_vm.totalServicePrice,\"currencyId\":_vm.currencyId}})],1),(this.model && this.model.id && !this.isOwnerLevel3)?_c('div',{class:_vm.isFullyInvoiced ? 'text-green' : ''},[_vm._v(\" \"+_vm._s(_vm.$t(\"ReservationBillingStatus.BillingStatus\") + \":\")+\" \"+_vm._s(_vm.$t((\"Reservation.\" + _vm.invoiceStatus)))+\" \")]):_vm._e(),_c('div',{staticClass:\"total\",class:{\n 'secondary--text': !_vm.$vuetify.theme.dark,\n 'primary--text': _vm.$vuetify.theme.dark,\n }},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"mt-0\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.TotalPrice{amount}\", { amount: _vm.$n(_vm.totalPrice, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),_c('v-spacer'),(\n _vm.model.distributionChannelTypeId ==\n _vm.DistributionChannelTypesEnum.OTA\n )?_c('v-checkbox',{staticClass:\"pt-0 mt-0\",attrs:{\"hide-details\":\"\",\"label\":_vm.$t('IsOTACollect'),\"dense\":\"\"},model:{value:(_vm.model.isOTACollect),callback:function ($$v) {_vm.$set(_vm.model, \"isOTACollect\", $$v)},expression:\"model.isOTACollect\"}}):_vm._e()],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.policiesDialog),callback:function ($$v) {_vm.policiesDialog=$$v},expression:\"policiesDialog\"}},[_c('v-card',{attrs:{\"loading\":_vm.policiesLoading}},[(!_vm.policiesLoading)?_c('v-card-text',{staticClass:\"mt-1\"},[_c('div',{staticClass:\"d-flex flex-row justify-space-between align-center\"},[_c('div',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.$t(\"CancelationAndPrepaymentPolicies\")))]),(_vm.reservationExists)?_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATION_PRICES\"}},[_c('div',{staticClass:\"d-flex flex-row\"},[(!_vm.overriding && _vm.hasOverrides)?_c('v-btn',{staticClass:\"popup-button\",attrs:{\"disabled\":_vm.policiesLoading,\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.clearOverrides}},[_c('v-icon',[_vm._v(\"fas fa-undo\")])],1):_vm._e(),(!_vm.overriding)?_c('v-btn',{staticClass:\"popup-button\",attrs:{\"disabled\":_vm.policiesLoading,\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){_vm.overriding = true}}},[_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fas fa-pen\")])],1):_vm._e()],1)]):_vm._e()],1),_c('div',{staticClass:\"outlined\"},[(_vm.overriding)?_c('div',[_c('div',{staticClass:\"d-flex flex-row\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"RequiredCancelation\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"right\":\"\",\"x-small\":\"\",\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addPolicy(true)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1),_c('v-form',{ref:\"cancelationOverrideForm\",attrs:{\"disabled\":!_vm.canEditPrices}},_vm._l((_vm.cancelationPenalties),function(cancelation,index){return _c('v-row',{key:index},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"5\",\"lg\":\"5\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('Amount') + '*',\"dense\":true,\"rules\":[\n _vm.rules.required,\n _vm.rules.noNegativeNumbers(cancelation.amount) ],\"validateInput\":true,\"outlined\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"align-currency\"},[_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})],1)]},proxy:true}],null,true),model:{value:(cancelation.amount),callback:function ($$v) {_vm.$set(cancelation, \"amount\", $$v)},expression:\"cancelation.amount\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"5\",\"lg\":\"5\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Effective from') + '*',\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required, _vm.noExistingDates(cancelation)]},model:{value:(cancelation.effectiveFrom),callback:function ($$v) {_vm.$set(cancelation, \"effectiveFrom\", $$v)},expression:\"cancelation.effectiveFrom\"}})],1),_c('v-col',{staticClass:\"col--overriding-align py-0\",attrs:{\"cols\":\"2\",\"lg\":\"2\"}},[_c('v-btn',{staticClass:\"trash-button-align\",attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deletePolicy(true, index)}}},[_c('v-icon',{staticClass:\"mr-2 trash-icon-align\",attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-trash\")])],1)],1)],1)}),1)],1):(_vm.cancelationPenalties.length == 0)?_c('div',{staticClass:\"py-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"FreeCancelation\"))+\" \")]):_c('div',_vm._l((_vm.cancelationPenalties),function(penalty,$index){return _c('div',{key:$index},[($index < _vm.cancelationPenalties.length - 1)?_c('div',{staticClass:\"py-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancelation{from}{to}{amount}\", { from: _vm.$d(_vm.cancelationFrom(penalty), \"long\"), to: _vm.$d( _vm.cancelationTo(_vm.cancelationPenalties, $index), \"long\" ), amount: _vm.$n(penalty.amount, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]):_c('div',{staticClass:\"py-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancelation{from}{amount}\", { from: _vm.$d(_vm.cancelationFrom(penalty), \"long\"), amount: _vm.$n(penalty.amount, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")])])}),0),_c('v-divider',{staticClass:\"my-2\"}),(_vm.overriding)?_c('div',[_c('div',{staticClass:\"d-flex flex-row\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"RequiredPrepayment\"))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"right\":\"\",\"x-small\":\"\",\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addPolicy(false)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1),_c('v-form',{ref:\"prepaymentOverrideForm\",attrs:{\"disabled\":!_vm.canEditPrices}},_vm._l((_vm.prepaymentFees),function(prepayment,index){return _c('v-row',{key:index},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"5\",\"lg\":\"5\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('Amount') + '*',\"dense\":true,\"validateInput\":true,\"outlined\":\"\",\"rules\":[\n _vm.rules.required,\n _vm.rules.noNegativeNumbers(prepayment.amount) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"align-currency\"},[_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})],1)]},proxy:true}],null,true),model:{value:(prepayment.amount),callback:function ($$v) {_vm.$set(prepayment, \"amount\", $$v)},expression:\"prepayment.amount\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"5\",\"lg\":\"5\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Due date') + '*',\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},model:{value:(prepayment.dueDate),callback:function ($$v) {_vm.$set(prepayment, \"dueDate\", $$v)},expression:\"prepayment.dueDate\"}})],1),_c('v-col',{staticClass:\"col--overriding-align py-0\",attrs:{\"cols\":\"2\",\"lg\":\"2\"}},[_c('v-btn',{staticClass:\"trash-button-align\",attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deletePolicy(false, index)}}},[_c('v-icon',{staticClass:\"mr-2 trash-icon-align\",attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-trash\")])],1)],1)],1)}),1)],1):(_vm.prepaymentFees.length == 0)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"NoPrepayment\"))+\" \")]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"RequiredPrepayment\"))+\" \"),_vm._l((_vm.prepaymentFees),function(fee,$index){return _c('div',{key:$index},[_vm._v(\" \"+_vm._s(_vm.isBookingOnArrivalDate ? _vm.$t(\"RequiredPrepaymentBeforeArrival{amount}\", { amount: _vm.$n(fee.amount, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }) : _vm.$t(\"RequiredPrepayment{amount}{date}\", { date: _vm.$d(_vm.feeDueDate(fee), \"long\"), amount: _vm.$n(fee.amount, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \"),_c('span',{class:'prepayment-policy-status-' +\n _vm.getPrepaymentPaymentStatus(_vm.prepaymentFees, $index).color},[_vm._v(_vm._s(_vm.getPrepaymentPaymentStatus(_vm.prepaymentFees, $index).status))])])})],2)],1),(this.model && this.model.id)?_c('div',{staticClass:\"bold\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"ReservationBillingStatus.BillingStatus\"))+\" \")]):_vm._e(),(this.model && this.model.id)?_c('div',{staticClass:\"outlined\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.TotalToInvoice{amount}\", { amount: _vm.$n(_vm.totalPrice, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Invoiced{amount}\", { amount: _vm.$n(this.invoiced, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Remaining{amount}\", { amount: _vm.$n(this.remaining, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")])]):_vm._e(),_c('div',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.$t(\"Reservation.Recapitulation\")))]),_c('div',{staticClass:\"outlined\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.TotalPrice{amount}\", { amount: _vm.$n(_vm.totalPrice, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.TotalAccommodationPrice{amount}\", { amount: _vm.$n(_vm.totalUnitPrices, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),(_vm.tenantTypeId === 2)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.OwnerTotalPrice\", { amount: _vm.$n(_vm.ownerTotalPrice, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]):_vm._e(),(_vm.tenantTypeId === 2)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.OwnerAccommodationPrice\", { amount: _vm.$n(_vm.ownerAccPrice, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]):_vm._e(),(_vm.tenantTypeId === 2)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.OwnerAOSPrice\", { amount: _vm.$n(_vm.ownerAOSPrice, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]):_vm._e(),(_vm.tenantTypeId === 2)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AgencyMargin{amount}\", { amount: _vm.$n(_vm.agencyMarginAmount, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }) + \" (\" + _vm.agencyMarginPercentage + \"%)\")+\" \")]):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.OTAFee{amount}\", { amount: _vm.$n(_vm.otaFee, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),(_vm.tenantUsesAgencyFees)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.AgencyFees{amount}\", { amount: _vm.$n(_vm.agencyFee, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.CityTax{amount}\", { amount: _vm.$n(_vm.cityTax, { style: \"currency\", currency: _vm.formalCurrencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.OtherFees{amount}\", { amount: _vm.$n(_vm.otherFees, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.Services{amount}\", { amount: _vm.$n(_vm.services, { style: \"currency\", currency: _vm.currencyIsoCode, currencyDisplay: \"code\", }), }))+\" \")])])]):_vm._e(),_c('v-card-actions',[(_vm.overriding)?_c('v-btn',{staticClass:\"popup-button\",attrs:{\"color\":\"primary\",\"disabled\":_vm.policiesLoading},on:{\"click\":_vm.checkForSuspiciousCancellations}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"popup-button\",on:{\"click\":function($event){_vm.policiesDialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { ReservationModel } from \"./types\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { Getter, Action } from \"vuex-class\";\nimport { DateTime } from \"luxon\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { DistributionChannelTypesEnum } from \"@/components/reservation-form/types\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport _ from \"lodash\";\nimport { parseStringToDateJS } from \"@/shared/dateFormatUtils\";\nimport { InvoiceStatusEnum, TenantTypesEnum } from \"@/shared/models/enums.type\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n CurrencyDisplay,\n NumericInputImproved,\n DateField,\n RequireRole,\n },\n})\nexport default class ReservationFormPrice extends Vue {\n @PropSync(\"reservation\", { default: undefined }) model?: ReservationModel;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") financialSettings?: FinancialSettingsType;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\")\n serviceTypes?: ServiceType[];\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n @Getter(\"appParams/tenantUsesAgencyFees\") tenantUsesAgencyFees?: boolean;\n\n get currencyId() {\n const ids =\n this.model?.accomodationUnitTypes\n .map((x) => x.ratePlan?.currencyId)\n .filter((x) => x != undefined) ?? [];\n if (ids.length > 0) {\n return ids[0];\n }\n\n return this.financialSettings?.workingCurrency.id;\n }\n\n get currencyIsoCode() {\n const currency = this.currencies?.find((x) => x.id == this.currencyId);\n return (\n currency?.isoCode ??\n this.financialSettings?.workingCurrency.isoCode ??\n \"EUR\"\n );\n }\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n get isTenantAgency() {\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get formalCurrencyIsoCode() {\n return this.financialSettings?.formalCurrency.isoCode ?? \"HRK\";\n }\n\n @Prop() isMobile?: boolean;\n\n DistributionChannelTypesEnum = DistributionChannelTypesEnum;\n\n overriding = false;\n policiesDialog = false;\n policiesLoading = false;\n maxCancellationDate = \"\";\n cancelationPenalties = [] as any[];\n prepaymentFees = [] as any[];\n\n @Ref(\"cancelationOverrideForm\") cancelationOverrideForm?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n @Ref(\"prepaymentOverrideForm\") prepaymentOverrideForm?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n prepaymentOverrideAmount = 0;\n prepaymentOverrideDate = \"\";\n\n cancelationOverrideAmount = 0;\n cancelationOverrideDate = \"\";\n\n get reservationExists() {\n return !!this.model?.id;\n }\n\n get hasOverrides() {\n return (\n this.model?.hasPrepaymentOverride || this.model?.hasCancelationOverride\n );\n }\n\n get isBookingOnArrivalDate() {\n return (\n parseStringToDateJS(this.model?.bookingDate.toString() ?? \"\")\n .toISOString()\n .substring(0, 10) ===\n parseStringToDateJS(\n this.model?.arrivalDate ? this.model.arrivalDate.toString() : \"\"\n )\n .toISOString()\n .substring(0, 10)\n );\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get canEditPrices() {\n return policyChecker(\"MODIFY_RESERVATION_PRICES\")(this.claims);\n }\n\n @Watch(\"policiesDialog\")\n async policiesDialogWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n const requestModel = this.model?.accomodationUnitTypes.map((x) => {\n return {\n arrivalDate: x.arrivalDate,\n bookingDate: this.model?.bookingDate,\n ratePlanId: x.ratePlan?.id,\n dayPrices: x.dayPrices.map((p) => p.price),\n discountPercent: x.discountPercent ?? 0,\n services: x.selectedServices.map((s) => {\n return {\n price:\n this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice,\n isCityTax: s.isCityTax,\n isBookingFee: s.isBookingFee,\n isAddedAutomatically: s.isAddedAutomatically,\n };\n }),\n };\n });\n\n this.cancelationPenalties = [];\n this.prepaymentFees = [];\n this.policiesLoading = true;\n this.overriding = false;\n\n const promises = [];\n\n if (this.model?.id && this.model?.hasCancelationOverride) {\n promises.push(\n Vue.axios.get(\n `reservations/${this.model.id}/CancelationPolicies`\n )\n );\n } else {\n promises.push(\n Vue.axios.post(\"reservations/GetCancelationPoliciesPreview\", {\n cancelationPolicies: requestModel,\n })\n );\n }\n\n if (this.model?.id && this.model?.hasPrepaymentOverride) {\n promises.push(\n Vue.axios.get(\n `reservations/${this.model.id}/PrepaymentPolicies`\n )\n );\n } else {\n promises.push(\n Vue.axios.post(\"reservations/GetPrepaymentPoliciesPreview\", {\n prepaymentPolicies: requestModel,\n })\n );\n }\n\n const [cancelation, prepayment] = await Promise.all(promises);\n\n this.cancelationPenalties = cancelation.data;\n this.prepaymentFees = prepayment.data;\n\n this.policiesLoading = false;\n }\n }\n\n async checkForSuspiciousCancellations() {\n let isCancellationAmountBiggerAndFromDateLater = false;\n\n this.cancelationPenalties.forEach((x) => {\n this.cancelationPenalties.forEach((y) => {\n if (x.amount < y.amount && x.effectiveFrom > y.effectiveFrom) {\n isCancellationAmountBiggerAndFromDateLater = true;\n return;\n }\n });\n });\n\n if (isCancellationAmountBiggerAndFromDateLater) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"Cancellation.AmountInTheFutureWarning\"),\n actions: [\n {\n text: this.$t(\"Save\"),\n fun: () => {\n this.submitOverride();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as unknown as Notification);\n } else {\n this.submitOverride();\n }\n }\n\n async submitOverride() {\n const cFormValid = this.cancelationOverrideForm?.validate();\n const pFormValid = this.prepaymentOverrideForm?.validate();\n const prepaymentsList: {\n dueDate: string;\n amount: number;\n currencyId: number | null | undefined;\n }[] = [];\n const cancelationsList: {\n effectiveFrom: string;\n effectiveUntil: string;\n amount: number;\n currencyId: number | null | undefined;\n }[] = [];\n\n if (!cFormValid || !pFormValid) return;\n\n this.policiesLoading = true;\n\n try {\n const until =\n this.model?.departureDate?.toJSON().substring(0, 10) ??\n DateTime.local()\n .plus({ years: 10 }) // arbitrary\n .toJSON()\n .substring(0, 10);\n\n if (this.prepaymentFees.length > 0) {\n this.prepaymentFees.forEach((x) =>\n prepaymentsList.push({\n dueDate: x.dueDate,\n amount: x.amount,\n currencyId: this.model?.currencyId,\n })\n );\n }\n\n if (this.cancelationPenalties.length > 0) {\n this.cancelationPenalties.forEach((x) =>\n cancelationsList.push({\n effectiveFrom: x.effectiveFrom,\n effectiveUntil: until,\n amount: x.amount,\n currencyId: this.model?.currencyId,\n })\n );\n }\n\n const reqModel = {\n reservationId: this.model?.id,\n prepayment: prepaymentsList,\n cancelation: cancelationsList,\n };\n\n await this.axios.post(`reservations/OverridePolicies`, reqModel);\n\n if (this.model) {\n this.model.hasCancelationOverride = true;\n this.model.hasPrepaymentOverride = true;\n }\n this.policiesDialog = false;\n } finally {\n this.policiesLoading = false;\n }\n }\n\n async clearOverrides() {\n this.policiesLoading = true;\n try {\n await Vue.axios.post(\"reservations/ClearOverridePolicies\", {\n reservationId: this.model?.id,\n });\n\n if (this.model) {\n this.model.hasCancelationOverride = false;\n this.model.hasPrepaymentOverride = false;\n }\n\n this.policiesDialog = false;\n } finally {\n this.policiesLoading = false;\n }\n }\n\n freeCancelationUntil() {\n if (this.cancelationPenalties && this.cancelationPenalties.length > 0) {\n const date = DateTime.fromISO(\n this.cancelationPenalties[0].effectiveFrom\n ).plus({ minutes: -1 });\n return date;\n }\n\n if (this.model?.arrivalDate) {\n return DateTime.fromJSDate(this.model?.arrivalDate)\n .set({ hour: 0 })\n .plus({ minutes: -1 });\n }\n }\n\n cancelationFrom(penalty: any) {\n const date = DateTime.fromISO(penalty.effectiveFrom);\n return date;\n }\n\n cancelationTo(cancelationPenalties: any[], index: number) {\n const date = DateTime.fromISO(\n cancelationPenalties[index + 1].effectiveFrom\n ).plus({ minutes: -1 });\n return date;\n }\n\n feeDueDate(fee: any) {\n const date = DateTime.fromISO(fee.dueDate)\n .plus({ days: 1 })\n .plus({ minutes: -1 });\n return date;\n }\n\n get totalUnitPrices() {\n return (\n (this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n round(\n acc.dayPrices.reduce((dsum, d) => dsum + d.price, 0) *\n (1 - round((acc.discountPercent ?? 0) / 100, 8))\n ),\n 0\n ) || 0) + this.mergedCityTaxPrice()\n );\n }\n\n mergedCityTaxPrice() {\n return (\n this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter((x) => x.isCityTax)\n .reduce(\n (ssum, s) =>\n this.serviceTypes?.find(\n (x) => x.id == _.first(acc.dayPrices)?.serviceTypeId\n )?.includesCityTax === true\n ? ssum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice)\n : ssum,\n 0\n ),\n 0\n ) || 0\n );\n }\n\n deletePolicy(isCancelation: boolean, index: any) {\n if (isCancelation) this.cancelationPenalties.splice(index, 1);\n else this.prepaymentFees.splice(index, 1);\n }\n\n addPolicy(isCancelation: boolean) {\n const startingDate = new Date();\n startingDate.setUTCHours(0, 0, 0, 0);\n\n if (isCancelation) {\n this.cancelationPenalties.push({\n effectiveFrom: startingDate.toISOString().substring(0, 19),\n });\n } else {\n this.prepaymentFees.push({\n dueDate: startingDate.toISOString().substring(0, 19),\n });\n }\n }\n\n get ownerFee() {\n return (\n this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n round(\n acc.dayPrices.reduce((owner, s) => owner + s.inputPrice, 0) *\n (1 - round((acc.discountInputPercent ?? 0) / 100, 8)),\n 2\n ),\n 0\n ) || 0\n );\n }\n\n get ownerTotalPrice() {\n return this.ownerAOSPrice + this.ownerAccPrice;\n }\n\n get ownerAOSPrice() {\n return (\n this.model?.accomodationUnitTypes.reduce(\n (sum, acc) => sum + (acc.ownerAddOnServicesPrice ?? 0),\n 0\n ) || 0\n );\n }\n\n get ownerAccPrice() {\n return (\n (this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n round(\n acc.dayPrices.reduce((dsum, d) => dsum + d.inputPrice, 0) *\n (1 - (acc.discountInputPercent ?? 0) / 100)\n ),\n 0\n ) || 0) - (this.agencyFee ?? 0)\n );\n }\n\n get agencyMarginAmount() {\n return this.totalUnitPrices - this.ownerTotalPrice;\n }\n\n get agencyMarginPercentage() {\n return round((this.agencyMarginAmount / this.totalUnitPrices) * 100);\n }\n\n get otaFee() {\n return this.model?.accomodationUnitTypes.reduce(\n (sum, x) => sum + (x.channelCommission ?? 0),\n 0\n );\n }\n\n get agencyFee() {\n return this.model?.accomodationUnitTypes.reduce(\n (sum, x) =>\n sum +\n (x.agencyFeesTotal ?? 0) +\n (x.ownerPaysOTACommission ? x.channelCommission ?? 0 : 0),\n 0\n );\n }\n\n get cityTax() {\n return (\n this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter((s) => s.isCityTax)\n .reduce(\n (tax, s) =>\n tax +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.financialSettings?.formalCurrency.id ?? 0\n ) ?? 0),\n 0\n ),\n 0\n ) || 0\n );\n }\n\n get otherFees() {\n return (\n this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter((s) => !s.isCityTax && s.isFee)\n .reduce(\n (ssum, s) =>\n ssum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice),\n 0\n ),\n 0\n ) || 0\n );\n }\n\n get services() {\n return (\n this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter((s) => !s.isCityTax && !s.isFee)\n .reduce(\n (ssum, s) =>\n ssum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice),\n 0\n ),\n 0\n ) || 0\n );\n }\n\n get totalServicePrice() {\n const isAllowedOnlyInputPrices = policyChecker(\"INPUT_PRICES\")(this.claims);\n return !isAllowedOnlyInputPrices\n ? this.model?.accomodationUnitTypes.reduce(\n (sum, acc) =>\n sum +\n acc.selectedServices\n .filter(\n (x) =>\n !x.isCityTax ||\n !this.serviceTypes?.find(\n (x) => x.id == _.first(acc.dayPrices)?.serviceTypeId\n )?.includesCityTax\n )\n .reduce(\n (ssum, s) =>\n ssum +\n (this.currencyConversionService?.convertCurrency(\n s.grossPrice,\n s.currencyId,\n this.currencyId ?? s.currencyId\n ) ?? s.grossPrice),\n 0\n ),\n 0\n ) || 0\n : this.model?.accomodationUnitTypes.reduce(\n (sum, acc) => sum + (acc.ownerAddOnServicesPrice ?? 0),\n 0\n ) || 0;\n }\n\n get totalPrice() {\n return this.totalUnitPrices + this.totalServicePrice;\n }\n\n get invoiced() {\n return round(this.totalPrice, 2) - (this.model?.amountToInvoice ?? 0);\n }\n\n get remaining() {\n return this.model?.amountToInvoice ?? 0;\n }\n\n get invoiceStatus() {\n return InvoiceStatusEnum[this.model?.invoiceStatusId ?? 5];\n }\n\n get isFullyInvoiced() {\n if (this.model?.invoiceStatusId === InvoiceStatusEnum.FullyInvoiced) {\n return true;\n } else {\n return false;\n }\n }\n\n currencyConversionService?: CurrencyConversionService;\n async created() {\n const promises = [];\n\n if (!this.financialSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n promises.push(this.refreshServiceTypes());\n }\n\n await Promise.all(promises);\n\n if (this.financialSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.financialSettings\n );\n }\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n noNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n };\n }\n\n noExistingDates(value: any) {\n if (value !== undefined) {\n return this.cancelationPenalties\n .filter((x) => x != value)\n .some(\n (x) =>\n x.effectiveFrom.substring(0, 10) ==\n value.effectiveFrom.substring(0, 10)\n )\n ? this.$t(\"Cancellations.Validation.MultipleCancellationsOnSameDay\")\n : true;\n } else {\n return true;\n }\n }\n\n getPrepaymentPaymentStatus(prepaymentFees: any[], feeIndex: number) {\n const total = prepaymentFees\n .filter((a, b) => b <= feeIndex)\n .reduce((sum, e) => sum + e.amount, 0);\n const totalOfPrevious = prepaymentFees\n .filter((a, b) => b < feeIndex)\n .reduce((sum, e) => sum + e.amount, 0);\n const totalPaid = this.model?.totalPaidByGuest ?? 0;\n const today = new Date().toISOString().substring(0, 10);\n const feeDueDate = prepaymentFees[feeIndex].dueDate.substring(0, 10);\n if (total <= totalPaid) {\n return {\n status: this.$t(\"PrepaymentPolicy.PaymentStatus.Paid\"),\n color: \"success\",\n };\n } else if (\n totalOfPrevious <= totalPaid &&\n totalPaid - totalOfPrevious > 0\n ) {\n return {\n status: this.$t(\"PrepaymentPolicy.PaymentStatus.PartiallyPaid\"),\n color: \"warning\",\n };\n } else if (feeDueDate < today) {\n return {\n status: this.$t(\"PrepaymentPolicy.PaymentStatus.Unpaid\"),\n color: \"error\",\n };\n } else {\n return {\n status: this.$t(\"PrepaymentPolicy.PaymentStatus.Upcoming\"),\n color: \"\",\n };\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormPrice.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormPrice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationFormPrice.vue?vue&type=template&id=570d0d09&scoped=true&\"\nimport script from \"./ReservationFormPrice.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationFormPrice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationFormPrice.vue?vue&type=style&index=0&id=570d0d09&scoped=true&lang=scss&\"\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 \"570d0d09\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VDivider,VForm,VIcon,VRow,VSpacer,VSubheader,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport {\n ReservationModel,\n ReservationAccUnitModel,\n SearchRestrictionsModel,\n} from \"./types\";\nimport ReservationFormHolder from \"./ReservationFormHolder.vue\";\nimport ReservationFormStayPeriod from \"./ReservationFormStayPeriod.vue\";\nimport ReservationFormUnits from \"./ReservationFormUnits.vue\";\nimport ReservationFormUnitGuests from \"./ReservationFormUnitGuests.vue\";\nimport ReservationFormPrice from \"./ReservationFormPrice.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { SelectedAvailability } from \"@/shared/models/availability\";\nimport { Getter } from \"vuex-class\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { DistributionChannelEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n ReservationFormHolder,\n ReservationFormStayPeriod,\n ReservationFormUnits,\n ReservationFormUnitGuests,\n ReservationFormPrice,\n FormDescription,\n RequireRole\n },\n})\nexport default class ReservationForm extends Vue {\n @PropSync(\"reservation\", { default: new ReservationModel() })\n model?: ReservationModel;\n\n @Prop({ default: false }) isLoadingOrSaving?: boolean;\n\n @Prop({ default: undefined }) availabilities?: SelectedAvailability[];\n @Prop({ default: undefined }) period?: Date[];\n @Prop({ default: undefined }) restrictions?: SearchRestrictionsModel;\n @Prop({ default: undefined }) tenantTags?: string[];\n\n @Prop() isMobile?: boolean;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n selectedUnit: ReservationAccUnitModel | null = null;\n\n isOverbooked(isOverbooked: number[]) {\n this.$emit(\"overbooked\", isOverbooked);\n }\n\n isNotAvailable(isNotAvailable: number[]) {\n this.$emit(\"notAvailable\", isNotAvailable);\n }\n isLoadingChanged(isLoadingChanged: boolean){\n this.$emit(\"isLoadingChanged\", isLoadingChanged);\n }\n\n get periodSet() {\n return this.model?.arrivalDate && this.model?.departureDate;\n }\n\n get reservationIsReadonly() {\n if ((policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n this.model?.distributionChannelTypeId === DistributionChannelEnum.OwnersReservation) ||\n !policyChecker(\"OWNER_LEVEL_3\")(this.claims)){\n return false;\n }\n return true;\n }\n\n remarksOpen = true;\n toggleRemarks() {\n this.remarksOpen = !this.remarksOpen;\n }\n\n stayPeriodFromUnits: Date[] | null = null;\n stayPeriodChanged() {\n if (this.model?.accomodationUnitTypes) {\n this.stayPeriodFromUnits = [];\n\n const period = {\n minArrivalDate: \"\",\n maxDepartureDate: \"\",\n };\n\n for (const unit of this.model?.accomodationUnitTypes) {\n if (\n !period.minArrivalDate ||\n unit.arrivalDate.substring(0, 10) < period.minArrivalDate\n ) {\n period.minArrivalDate = unit.arrivalDate.substring(0, 10);\n }\n if (\n !period.maxDepartureDate ||\n unit.departureDate.substring(0, 10) > period.maxDepartureDate\n ) {\n period.maxDepartureDate = unit.departureDate.substring(0, 10);\n }\n }\n\n this.stayPeriodFromUnits.push(\n new Date(period.minArrivalDate),\n new Date(period.maxDepartureDate)\n );\n }\n }\n\n get tags(){\n return this.model?.tags;\n }\n set tags(values){\n const uniqueTags = [] as string[];\n // Match new tags with existing values. Push only unique values.\n values?.forEach(x => {\n this.tenantTags?.forEach(tt => {\n if(tt.toLowerCase() === x.toLowerCase() && !uniqueTags.map(uV => uV.toLowerCase()).includes(tt.toLowerCase())){\n uniqueTags.push(tt);\n }\n })\n if(!uniqueTags.map(uV => uV.toLowerCase()).includes(x.toLowerCase())){\n uniqueTags.push(x);\n }\n })\n\n this.$emit('tagsChanged', uniqueTags);\n }\n\n get rules() {\n return {\n maxLength: (value: string) =>\n !value ||\n value.length <= 2000 ||\n this.$t(\"Validation.MaxLength\", { count: 2000 }),\n maxCharacters: (value: string[]) =>\n !value ||\n value.every(x => x.length <= 50) ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n };\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationForm.vue?vue&type=template&id=4de1b95a&scoped=true&\"\nimport script from \"./ReservationForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationForm.vue?vue&type=style&index=0&id=4de1b95a&scoped=true&lang=scss&\"\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 \"4de1b95a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VCardSubtitle,VCardText,VChip,VCombobox,VDivider,VIcon,VSpacer,VSubheader,VTextarea,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormPrice.vue?vue&type=style&index=0&id=570d0d09&scoped=true&lang=scss&\"","export type AgencyFeeView = {\n id: number;\n name: string;\n price: number;\n currencyId?: number;\n calculationMethodId: number;\n priceIsAbsolute: boolean;\n};\n\nexport class AgencyFeeModel {\n id = 0;\n name = \"\";\n price = 0;\n currencyId = null as number | null;\n calculationMethodId = 0;\n priceIsAbsolute = false;\n amount = 0;\n\n translations = [] as AgencyFeeTranslation[];\n \n propertyIds = [] as number[];\n agencyFeesProperties = [] as AgencyFeesPropertyModel[];\n}\n\nexport class AgencyFeeViewModel {\n agencyFeeId = 0;\n}\n\nexport class AgencyFeeRequestModel {\n id = 0;\n price = 0;\n}\n\nexport class AgencyFeeTranslation {\n id = 0;\n agencyFeeId = 0;\n cultureCode = \"\";\n translation = \"\";\n}\n\nexport class AgencyFeesPropertyModel {\n id = 0;\n agencyFeeId = 0;\n propertyId = 0\n name = \"\";\n price = 0;\n currencyId = null as number | null;\n calculationMethodId = 0;\n priceIsAbsolute = false;\n isAssigned = false;\n}\n\nexport class AgencyFeesPropertyRequest {\n propertyId = 0;\n updateReservations = false;\n agencyFeesProperty = [] as AgencyFeeRequestModel[];\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeInput.vue?vue&type=style&index=0&id=54cee43e&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ReservationsTable',{key:_vm.sensitiveKey,staticClass:\"reservations-table\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' )})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reservations\"},[_c('SortableHeadersTable',_vm._g({ref:\"dataTable\",class:{ 'row-double-clickable test': _vm.allowedToModifyReservations },attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"idUniq\",\"expanded\":_vm.expanded,\"loading\":_vm.loading,\"headers\":_vm.headers,\"expandedRow\":_vm.expandedRow,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"reservations\",\"item-class\":_vm.getRowClass},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:expandedRow\":function($event){_vm.expandedRow=$event},\"update:expanded-row\":function($event){_vm.expandedRow=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.period\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrDepartureDate),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrDepartureDate\", $$v)},expression:\"filters.arrivalOrDepartureDate\"}})]}},{key:\"item.period\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(new Date(item.arrivalDate).getDate() == new Date(item.departureDate).getDate() ? _vm.$d(new Date(item.arrivalDate)) : _vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.arrivalDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.serviceArrivalPeriod),callback:function ($$v) {_vm.serviceArrivalPeriod=$$v},expression:\"serviceArrivalPeriod\"}})]}},{key:\"item.arrivalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.departureDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.serviceDeparturePeriod),callback:function ($$v) {_vm.serviceDeparturePeriod=$$v},expression:\"serviceDeparturePeriod\"}})]}},{key:\"item.departureDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.reservationHolderName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationHolderName),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationHolderName\", $$v)},expression:\"filters.reservationHolderName\"}})]}},{key:\"header.reservationGuestName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationGuestName),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationGuestName\", $$v)},expression:\"filters.reservationGuestName\"}})]}},{key:\"header.accomodationUnitTypeName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.accomodationUnitName),callback:function ($$v) {_vm.$set(_vm.filters, \"accomodationUnitName\", $$v)},expression:\"filters.accomodationUnitName\"}})]}},{key:\"item.accomodationUnitTypeName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('TableCellUnitTypeDisplay',{attrs:{\"item\":item}})]}},{key:\"header.statusId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.statuses,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.id; },\"label\":header.text,\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.statusId),callback:function ($$v) {_vm.$set(_vm.filters, \"statusId\", $$v)},expression:\"filters.statusId\"}})]}},{key:\"item.statusId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.statusStyle(item.statusId).color,\"text-color\":\"white\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal \"+_vm._s(_vm.statusStyle(item.statusId).icon))])],1),_c('div',[_vm._v(_vm._s(_vm.$t(_vm.statusStyle(item.statusId).text)))])],1)]}},{key:\"header.ReservationInvoiceStatusTextResourceKey\",fn:function(ref){return [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('ReservationBillingStatus.BillingStatus'),\"items\":_vm.reservationBillingStatuses,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationInvoiceStatusIds),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationInvoiceStatusIds\", $$v)},expression:\"filters.reservationInvoiceStatusIds\"}})]}},{key:\"item.ReservationInvoiceStatusTextResourceKey\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{class:_vm.$vuetify.theme.light ? 'secondary--text' : 'primary--text'},[_vm._v(\" \"+_vm._s(_vm.$t(item.reservationInvoiceStatusTextResourceKey))+\" \")]),_c('div',{class:{ 'de-emphasize': _vm.$vuetify.theme.light }},[_vm._v(\" \"+_vm._s(item.amountToInvoice ? item.currencyCode + \" \" + item.amountToInvoice : null)+\" \")])]}},{key:\"item.totalPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.allowedToModifyReservations || item.statusId != 1 ? _vm.$n(item.totalPrice, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }) : \"\")+\" \")])]}},{key:\"header.reservationId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"type\":\"number\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationId),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationId\", _vm._n($$v))},expression:\"filters.reservationId\"}})]}},{key:\"header.bookingDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.bookingDate),callback:function ($$v) {_vm.$set(_vm.filters, \"bookingDate\", $$v)},expression:\"filters.bookingDate\"}})]}},{key:\"item.bookingDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.bookingDate))))])]}},{key:\"header.cancelationDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.cancellationDate),callback:function ($$v) {_vm.$set(_vm.filters, \"cancellationDate\", $$v)},expression:\"filters.cancellationDate\"}})]}},{key:\"item.cancelationDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.cancelationDate === undefined ? \"\" : _vm.$d(new Date(item.cancelationDate))))])]}},{key:\"item.isCancelledWithinFreeCancellationPeriod\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isCancelledWithinFreeCancellationPeriod,\"disabled\":\"\"}})]}},{key:\"header.otachannelName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.otachannelName),callback:function ($$v) {_vm.$set(_vm.filters, \"otachannelName\", $$v)},expression:\"filters.otachannelName\"}})]}},{key:\"item.otachannelName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.otachannelName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.otareservationId))])]}},{key:\"header.distributionChannelTypeId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.allowedDistributionChannelTypes,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"clearable\":\"\"},model:{value:(_vm.filters.distributionChannelTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"distributionChannelTypeId\", $$v)},expression:\"filters.distributionChannelTypeId\"}})]}},{key:\"item.distributionChannelTypeId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.distributionChannelName(item.distributionChannelTypeId)))])]}},{key:\"item.otaChannelComission\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.allowedToModifyReservations || item.statusId != 1 ? _vm.$n(item.otaChannelComission, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }) : \"\")+\" \")])]}},{key:\"item.ownerTotalPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.allowedToModifyReservations || item.statusId != 1 ? _vm.$n(item.ownerTotalPrice != undefined ? item.ownerTotalPrice : 0, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }) : \"\")+\" \")])]}},{key:\"header.tags\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-autocomplete',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.getSortedTags,\"outlined\":false,\"multiple\":\"\",\"clearable\":\"\"},model:{value:(_vm.filters.reservationTags),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationTags\", $$v)},expression:\"filters.reservationTags\"}})]}},{key:\"item.tags\",fn:function(ref){\nvar item = ref.item;\nreturn _vm._l((_vm.getTagsAsArray(item.tags)),function(tag){return _c('v-chip',{key:tag,staticClass:\"mx-1 my-1\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(tag)+\" \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(tag))])])],1)})}},{key:\"header.optionExpirationDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.optionExpirationDate),callback:function ($$v) {_vm.$set(_vm.filters, \"optionExpirationDate\", $$v)},expression:\"filters.optionExpirationDate\"}})]}},{key:\"item.optionExpirationDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.optionExpirationDate ? _vm.$d(new Date(item.optionExpirationDate)) : \"\")+\" \")])]}},{key:\"expanded-item\",fn:function(ref){\nvar headers = ref.headers;\nvar item = ref.item;\nreturn [_c('td',{attrs:{\"colspan\":headers.length}},[(_vm.allowedToModifyReservations)?_c('v-edit-dialog',{staticClass:\"editable-trigger\",attrs:{\"return-value\":item.propertyStaffRemarks,\"large\":\"\",\"save-text\":_vm.$t('Save'),\"cancel-text\":_vm.$t('Cancel')},on:{\"update:returnValue\":function($event){return _vm.$set(item, \"propertyStaffRemarks\", $event)},\"update:return-value\":function($event){return _vm.$set(item, \"propertyStaffRemarks\", $event)},\"save\":function($event){return _vm.saveRemark(item)}},scopedSlots:_vm._u([{key:\"input\",fn:function(){return [_c('v-textarea',{ref:\"editDialog\",attrs:{\"label\":_vm.$t('Remarks'),\"counter\":\"\",\"no-resize\":\"\",\"auto-grow\":\"\",\"rows\":\"11\",\"rules\":[_vm.rules.maxLength]},model:{value:(item.propertyStaffRemarks),callback:function ($$v) {_vm.$set(item, \"propertyStaffRemarks\", $$v)},expression:\"item.propertyStaffRemarks\"}})]},proxy:true}],null,true)},[_c('div',{staticClass:\"editable-trigger-2\"},[_c('v-icon',{staticClass:\"mr-2 fa-fw fa-w-16\"},[_vm._v(\"fas fa-exclamation-circle\")]),_c('div',[_vm._v(\" \"+_vm._s(item.propertyStaffRemarks)+\" \")])],1)]):_c('div',{staticClass:\"editable-trigger-2\"},[_c('v-icon',{staticClass:\"mr-2 fa-fw fa-w-16\"},[_vm._v(\"fas fa-exclamation-circle\")]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_GUEST_REMARKS\"}},[(item.guestRemarks)?_c('div',[_vm._v(_vm._s(item.guestRemarks))]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_PROPERTY_STAFF_REMARKS\"}},[(item.propertyStaffRemarks)?_c('div',[_vm._v(\" \"+_vm._s(item.propertyStaffRemarks)+\" \")]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_REMARKS_FOR_OWNER\"}},[(item.remarksForOwner)?_c('div',[_vm._v(_vm._s(item.remarksForOwner))]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_MAINTENANCE_STAFF_REMARKS\"}},[(item.generalMaintenanceStaffRemarks)?_c('div',[_vm._v(\" \"+_vm._s(item.generalMaintenanceStaffRemarks)+\" \")]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_UNIT_MAINTENANCE_STAFF_REMARKS\"}},[(item.unitMaintenanceStaffRemarks)?_c('div',[_vm._v(\" \"+_vm._s(item.unitMaintenanceStaffRemarks)+\" \")]):_vm._e()])],1)],1)]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.ownerLevel3CanEdit(item))?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openItemDetails(item)}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1):_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[(!_vm.isOwnerLevel1)?_c('v-list',[_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATIONS\"}},[_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openItemDetails(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1)],1),(!_vm.isOwnerLevel3)?_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openMessages(item.reservationId)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-comments\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Messages\")))])],1)],1):_vm._e(),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATIONS\"}},[_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){$event.stopPropagation();return _vm.confirmMarkedAsManuallyOverriden(item.reservationId)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-check-circle\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Dashboard.ReservationsBillingStatus.MarkAsManuallyOverriden\")))])],1)],1)],1),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATIONS\"}},[_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1):_vm._e()],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-concierge-bell\"}})],1):_vm._e()]},proxy:true}])},\n _vm.isAllowedToExportReservations ? { 'menu:excel': _vm.exportToExcel } : {}\n )),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATIONS\"}},[_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addItem()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1)],1),_c('RequireRole',{attrs:{\"policy\":\"MODIFY_RESERVATIONS\"}},[_c('ReservationModal',{attrs:{\"open\":_vm.reservationFormOpen,\"reservationId\":_vm.reservationFormId,\"scrollId\":_vm.scrollId},on:{\"update:open\":function($event){_vm.reservationFormOpen=$event},\"reload\":function($event){return _vm.load()}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport VReservation from \"@/shared/models/vReservation\";\nimport { reservationStatuses } from \"@/shared/models/vReservation\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport ReservationModal from \"@/components/reservation-form/ReservationModal.vue\";\nimport * as _ from \"lodash\";\nimport { Notification } from \"../store/modules/notifications\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { Action, Getter } from \"vuex-class\";\nimport { ReservationStatusEnum, TenantTypesEnum, DistributionChannelEnum, ReservationsGridDefaultFilterByEnum, InvoiceStatusEnum } from \"@/shared/models/enums.type\";\nimport TableCellUnitTypeDisplay from \"@/components/misc/TableCellUnitTypeDisplay.vue\";\nimport { DistributionChannelType } from \"@/shared/models/distributionChannelType\";\nimport { DistributionChannelTypesEnum } from \"./reservation-form/types\";\nimport { ReservationBillingStatus } from '@/shared/models/reservationStatus';\n\n@Component({\n components: {\n SortableHeadersTable,\n DateField,\n ReservationModal,\n NoData,\n RequireRole,\n TableCellUnitTypeDisplay,\n },\n})\nexport default class ReservationsTable extends Vue {\n settingsOpen = false;\n reservationsTags: string[] = [];\n tagSeparator = \"\\r\\n\";\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get allowedToModifyReservations() {\n return policyChecker(\"MODIFY_RESERVATIONS\")(this.claims);\n }\n get isAllowedToSeePrices() {\n return (\n policyChecker(\"MODIFIED_PRICES\")(this.claims) ||\n policyChecker(\"ACTUAL_PRICES\")(this.claims) ||\n policyChecker(\"OWNER_LEVEL_3\")(this.claims)\n );\n }\n get isAllowedToExportReservations() {\n return policyChecker(\"EXPORT_RESERVATIONS\")(this.claims);\n }\n\n get isAllowedToSeePhoneNumber() {\n return (\n policyChecker(\"GRID_TELEPHONE_NUMBER\")(this.claims)\n );\n }\n\n get isAllowedDistributionOrSalesChannel() {\n return policyChecker(\"READ_DISTRIBUTION_AND_SALES_CHANNEL\")(this.claims);\n }\n\n get isOwnerLevel3() {\n return policyChecker(\"OWNER_LEVEL_3\")(this.claims);\n }\n\n get isOwnerLevel1() {\n return policyChecker(\"OWNER_LEVEL_1\")(this.claims);\n }\n\n get isAllowedToSeeGuestRemarks(){\n return policyChecker(\"RESERVATION_GUEST_REMARKS\")(this.claims);\n }\n\n get isAllowedToSeeOwnerRemarks(){\n return policyChecker(\"RESERVATION_REMARKS_FOR_OWNER\")(this.claims);\n }\n\n get isAllowedToSeePropertyStaffRemarks(){\n return policyChecker(\"RESERVATION_PROPERTY_STAFF_REMARKS\")(this.claims);\n }\n\n get isAllowedToSeeUnitMaintenanceRemarks(){\n return policyChecker(\"RESERVATION_UNIT_MAINTENANCE_STAFF_REMARKS\")(this.claims);\n }\n\n get isAllowedToSeeGeneralMaintenanceStaffRemarks(){\n return policyChecker(\"RESERVATION_MAINTENANCE_STAFF_REMARKS\")(this.claims);\n }\n\n ownerLevel3CanEdit(item: VReservation) {\n if ((policyChecker(\"OWNER_LEVEL_3\")(this.claims) &&\n item.distributionChannelTypeId === DistributionChannelEnum.OwnersReservation) ||\n !policyChecker(\"OWNER_LEVEL_3\")(this.claims)){\n return false;\n }\n return true;\n }\n\n DistributionChannelTypeEnum = DistributionChannelEnum;\n InvoiceStatusEnum = InvoiceStatusEnum;\n\n @Getter(\"appParams/reservationShowHolderInfo\") showHolderInfo?: boolean;\n @Getter(\"appParams/reservationShowGuestInfo\") showGuestInfo?: boolean;\n @Getter(\"appParams/reservationsGridFiltersByDate\") reservationsGridFiltersByDate?: number;\n\n @Getter(\"reservations/dateFilterApplied\") dateFilterApplied?: boolean;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n async created(){\n const promises = [];\n\n if ((this.reservationsTags?.length ?? 0) === 0) {\n promises.push(this.getTags());\n }\n\n if (\n (this.reservationBillingStatuses?.length ?? 0) === 0 &&\n this.refreshReservationBillingStatuses\n ) {\n promises.push(this.refreshReservationBillingStatuses());\n }\n\n await Promise.all(promises);\n }\n\n @Getter(\"codebooks/distributionChannelTypes\")\n distributionChannelTypes?: DistributionChannelType[];\n \n @Action(\"codebooks/refreshReservationBillingStatuses\")\n refreshReservationBillingStatuses?: () => Promise;\n @Getter(\"codebooks/reservationBillingStatuses\")\n reservationBillingStatuses?: ReservationBillingStatus[];\n\n get isTenantTypeAgency(){\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n @Watch(\"dateFilterApplied\", { immediate: true })\n applyDateFilterSwitch() {\n this.options.page = 1\n this.load()\n }\n\n @Watch(\"claims.roles\", { immediate: true })\n rolesWatch() {\n this.headers = [\n {\n text: \"Period\",\n value: \"period\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"arrivalDate\", \"departureDate\", \"numberOfNights\"],\n },\n {\n text: \"Reservation.ArrivalDate\",\n value: \"arrivalDate\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"arrivalDate\"],\n },\n {\n text: \"Reservation.DepartureDate\",\n value: \"departureDate\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"departureDate\"],\n },\n ...(this.showHolderInfo\n ? [\n {\n text: \"Reservation holder\",\n value: \"reservationHolderName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"reservationHolderName\"],\n },\n ]\n : []),\n ...(this.isAllowedToSeePhoneNumber\n ? [\n {\n text: \"Telephone number\",\n value: \"reservationHolderTelephoneNumber\",\n active: true,\n default: false,\n exportHeaders: [],\n },\n ]\n : []),\n ...(this.showGuestInfo\n ? [\n {\n text: \"Guest\",\n value: \"reservationGuestName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"reservationGuestName\"],\n },\n ]\n : []),\n {\n text: \"Accomodation unit\",\n value: \"accomodationUnitTypeName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\n \"accomodationUnitTypeName\",\n \"accomodationUnitName\",\n \"propertyName\",\n ],\n },\n {\n text: \"Reservation status\",\n value: \"statusId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"statusName\"],\n },\n ...(!this.isOwner\n ? [\n {\n text: \"ReservationBillingStatus.BillingStatus\",\n value: \"ReservationInvoiceStatusTextResourceKey\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"invoiceStatusName, amountToInvoice\"],\n },\n ]\n : []),\n {\n text: \"Reservation Id\",\n value: \"reservationId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"reservationId\"],\n },\n ...(this.isAllowedToSeePrices\n ? [\n {\n text: \"Total price\",\n value: \"totalPrice\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"totalPrice\", \"currencyCode\"],\n },\n ]\n : []),\n {\n text: \"Booking date\",\n value: \"bookingDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"bookingDate\"],\n },\n {\n text: \"Cancelation date\",\n value: \"cancelationDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"cancelationDate\"],\n },\n {\n text: \"Reservation.IsCancelledWithinFreeCancellationPeriod\",\n value: \"isCancelledWithinFreeCancellationPeriod\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"isCancelledWithinFreeCancellationPeriod\"]\n },\n ...(this.isAllowedDistributionOrSalesChannel\n ? [\n {\n text: \"Sales channel\",\n value: \"otachannelName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"otachannelName\", \"otareservationId\"],\n },\n {\n text: \"DistributionChannel\",\n value: \"distributionChannelTypeId\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"distributionChannelType\"],\n },\n {\n text: \"ReservationTable.OtaChannelComission\",\n value: \"otaChannelComission\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"otaChannelComission\", \"currencyCode\"],\n },\n ]\n : []),\n ...(this.allowedToModifyReservations\n ? [\n {\n text: \"Option expiration\",\n value: \"optionExpirationDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"optionExpirationDate\"],\n },\n ]\n : []),\n\n {\n text: this.$t('Reservation.Tags').toString(),\n value: \"tags\",\n active: true,\n default: false,\n sortable: false,\n class: \"resize-header\",\n exportHeaders: [\"tags\"],\n },\n\n ...(this.isTenantTypeAgency && !this.isOwnerLevel3 ? [{\n text: \"ReservationTable.OwnerTotalPrice\",\n value: \"ownerTotalPrice\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"ownerTotalPrice\", \"currencyCode\"],\n },]: []),\n {\n text: \"Total guests\",\n value: \"totalGuests\",\n sortable: false,\n active: !this.allowedToModifyReservations,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"totalGuests\"],\n },\n {\n text: \"Expected arrival time\",\n value: \"expectedArrivalTime\",\n sortable: false,\n active: !this.allowedToModifyReservations,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"expectedArrivalTime\"],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n headers: SortableTableHeader[] = [];\n\n expandedRow: SortableTableHeader = {\n text: \"Remarks\",\n value: \"expandedRow\",\n active: true,\n default: false,\n exportHeaders: [\"remarksForOwner\"], // placeholder, real values are set on export call\n };\n\n filters = {\n reservationId: \"\",\n arrivalOrDepartureDate: \"\",\n bookingDate: \"\",\n cancellationDate: \"\",\n isCancelledWithinFreeCancellationPeriod: null as boolean | null,\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n optionExpirationDate: \"\",\n reservationHolderName: \"\",\n reservationGuestName: \"\",\n accomodationUnitName: \"\",\n otachannelName: \"\",\n isFilteredByDate: null as boolean | null,\n distributionChannelTypeId: null as number | null,\n reservationTags: [] as string[],\n reservationInvoiceStatusIds: [] as string[],\n statusId: null as number | null,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n get serviceArrivalPeriod() {\n const res = [\n this.filters.arrivalDateFromPeriod\n ? this.filters.arrivalDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.arrivalDateToPeriod\n ? this.filters.arrivalDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set serviceArrivalPeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.arrivalDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.arrivalDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.arrivalDateFromPeriod = \"\";\n this.filters.arrivalDateToPeriod = \"\";\n }\n }\n\n get serviceDeparturePeriod() {\n const res = [\n this.filters.departureDateFromPeriod\n ? this.filters.departureDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.departureDateToPeriod\n ? this.filters.departureDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set serviceDeparturePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.departureDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.departureDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.departureDateFromPeriod = \"\";\n this.filters.departureDateToPeriod = \"\";\n }\n }\n\n get rules() {\n return {\n maxLength: (value: string) =>\n !value ||\n value.length <= 2000 ||\n this.$t(\"Validation.MaxLength\", { count: 2000 }),\n };\n }\n\n async getTags() {\n const promises = [];\n\n promises.push(\n Vue.axios.get(\n `reservations/GetTenantReservationTags`\n )\n );\n\n const [tags] = await Promise.all(promises);\n\n this.reservationsTags = tags.data;\n }\n\n get getSortedTags(){\n return this.reservationsTags?.sort((a,b) => a.localeCompare(b)) ?? [];\n }\n\n @Ref(\"editDialog\") editDialog?: {\n validate: () => boolean;\n };\n\n saveRemark(item: VReservation) {\n const dialogValid = this.editDialog?.validate();\n if (!dialogValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Reservation.RemarksLenght\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.load();\n return;\n }\n Vue.axios\n .post(`/Reservations/UpdateReservationRemark`, {\n id: item.reservationId,\n propertyStaffRemarks: item.propertyStaffRemarks,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Reservations.RemarkEditSuccess\"),\n timeout: 5000,\n } as Notification);\n });\n }\n\n reservationFormId: number | null = null;\n scrollId: string | null = null;\n reservationFormOpen = false;\n rowDoubleClick(e: MouseEvent, { item }: { item: VReservation }) {\n this.openItemDetails(item);\n }\n openItemDetails(item: VReservation) {\n if (!this.allowedToModifyReservations) {\n return;\n }\n\n this.reservationFormId = item.reservationId;\n this.scrollId = item.reservationAccUnitTypeId.toString();\n this.reservationFormOpen = true;\n }\n addItem() {\n if (!this.allowedToModifyReservations) {\n return;\n }\n\n this.reservationFormId = null;\n this.scrollId = null;\n this.reservationFormOpen = true;\n }\n distributionChannelName(value: number) {\n const name = this.distributionChannelTypes?.find(\n (x) => x.id == value\n )?.textResourceKey;\n return name ? this.$t(name) : \"\";\n }\n\n get allowedDistributionChannelTypes() {\n if (!this.distributionChannelTypes) {\n return [];\n }\n const types = _.cloneDeep(this.distributionChannelTypes);\n\n if (this.isTenantTypeAgency) {\n return types;\n }\n else {\n return types?.filter(\n channel => channel.id != DistributionChannelTypesEnum.OwnersReservation);\n }\n }\n\n deleteItem(item: VReservation) {\n if (!this.allowedToModifyReservations) {\n return;\n }\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${item?.reservationId}'`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item.reservationId);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteItemConfirm(id: number) {\n Vue.axios\n .delete(`/Reservations/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Reservations.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.load();\n });\n }\n\n openMessages(id: number) {\n this.$router.push({\n name: \"Messages\",\n query: {\n reservationId: id.toString(),\n },\n });\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"period\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n get expanded() {\n if (this.expandedRow.active) {\n return this.list.result.filter(\n (x) =>\n (this.allowedToModifyReservations && !!x.propertyStaffRemarks) ||\n (!this.allowedToModifyReservations &&\n (!!x.propertyStaffRemarks ||\n !!x.remarksForOwner ||\n !!x.guestRemarks ||\n !!x.generalMaintenanceStaffRemarks ||\n !!x.unitMaintenanceStaffRemarks))\n );\n } else {\n return [];\n }\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise {\n this.loading = true;\n return this.axios\n .get>(\"/reservations\", {\n params: this.queryParams\n })\n .then((res) => {\n this.list = {\n result: res.data.result.map((x) => ({\n ...x,\n reservationGuestName:\n x.reservationGuestName && x.reservationGuestName.length > 0\n ? x.reservationGuestName\n : x.reservationGuestPlaceholder,\n idUniq: `${x.reservationId}:${x.reservationAccUnitTypeId}`,\n })),\n count: res.data.count,\n };\n return this.list;\n })\n .finally(() => {\n this.scrollToTop();\n this.loading = false;\n });\n }\n\n get isOwner() {\n return policyChecker(\"IS_OWNER_ROLE\")(this.claims);\n }\n\n exportToExcel() {\n this.loading = true;\n\n // values are set here so allowedToModifyReservations get the right data\n this.expandedRow.exportHeaders = [];\n if (this.isAllowedToSeeGuestRemarks) {\n this.expandedRow.exportHeaders.push(\"guestRemarks\");\n }\n if (this.isAllowedToSeeOwnerRemarks) {\n this.expandedRow.exportHeaders.push(\"remarksForOwner\");\n }\n if (this.isAllowedToSeePropertyStaffRemarks) {\n this.expandedRow.exportHeaders.push(\"propertyStaffRemarks\");\n }\n if (this.isAllowedToSeeUnitMaintenanceRemarks) {\n this.expandedRow.exportHeaders.push(\"unitMaintenanceStaffRemarks\");\n }\n if (this.isAllowedToSeeGeneralMaintenanceStaffRemarks) {\n this.expandedRow.exportHeaders.push(\"generalMaintenanceStaffRemarks\");\n }\n\n return this.axios\n .get(\"reservations/export/excel\", {\n params: {\n ...this.queryParams,\n $skip: 0,\n $top: null,\n headers: this.headers\n .concat(this.expandedRow)\n .filter((h) => h.active)\n .flatMap((h) => h.exportHeaders)\n .join(\",\"),\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Reservations.xlsx\");\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n get customerFilterData() {\n return (\n this.$router.currentRoute.query ?? {\n customerId: null,\n customerRole: null,\n }\n );\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n // \"period\" is the default sort so we use that to determine whether this is the initial load without user settings\n // and sort according to the parameter if so\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == \"period\"\n ? this.reservationsGridFiltersByDate == ReservationsGridDefaultFilterByEnum.ArrivalDate\n ? [\"arrivalDate\"]\n : [\"departureDate\"]\n : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filtersForParams,\n ...this.customerFilterData,\n isFilteredByDate: this.dateFilterApplied\n };\n }\n\n get filtersForParams() {\n return {\n ...this.filters,\n tags: this.filters.reservationTags.length > 0 ? this.filters.reservationTags?.join(this.tagSeparator) : [],\n reservationInvoiceStatusIds: this.filters.reservationInvoiceStatusIds.length > 0 ? this.filters.reservationInvoiceStatusIds?.join(', ') : []\n };\n }\n\n getTagsAsArray(tags: string){\n return tags?.split(this.tagSeparator + this.tagSeparator);\n }\n\n confirmMarkedAsManuallyOverriden(reservationId: number){\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"ReservationBillingStatus.MarkAsManuallyOverridenConfirm\"),\n actions: [\n {\n text: this.$t(\"Confirm\"),\n fun: () => {\n this.markAsManuallyOverriden(reservationId.toString());\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n \n markAsManuallyOverriden(reservationId: string){\n this.loading = true;\n Vue.axios\n .put(`/reservations/MarkReservationsAsManuallyOverriden`,{\n reservationIds: reservationId\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"ReservationBillingStatus.MarkAsManuallyOverridenSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.loading = false;\n this.load();\n });\n }\n\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n\n getRowClass(item: VReservation) {\n let classes = \"\";\n if (item.distributionChannelTypeId === DistributionChannelEnum.OwnersReservation) {\n classes = \"row-highlighted\";\n }\n return classes;\n }\n\n get statuses() {\n if (this.allowedToModifyReservations) {\n return reservationStatuses;\n }\n\n return reservationStatuses.filter(\n (x) => x.id != ReservationStatusEnum.Canceled\n );\n }\n\n statusStyle(statusId: number) {\n return this.statuses.find((x) => x.id == statusId) ?? {};\n }\n\n isDayStay(item: VReservation) {\n return item.arrivalDate == item.departureDate;\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsTable.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationsTable.vue?vue&type=template&id=74f61c57&scoped=true&\"\nimport script from \"./ReservationsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationsTable.vue?vue&type=style&index=0&id=74f61c57&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 \"74f61c57\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VEditDialog } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAutocomplete,VAvatar,VBtn,VChip,VEditDialog,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VSelect,VSimpleCheckbox,VTextField,VTextarea,VTooltip})\n","\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport ReservationsTable from \"@/components/ReservationsTable.vue\";\nimport GlobalFilterSensitiveMixin from '@/mixins/GlobalFilterSensitiveMixin';\nimport { NavigationGuardNext, Route } from \"vue-router/types/router\";\nimport { Action, Getter } from \"vuex-class\";\nimport { join } from \"lodash\";\n\n@Component({\n components: {\n ReservationsTable\n },\n beforeRouteEnter(to: Route, from: Route, next: NavigationGuardNext) {\n if (to.name === \"Reservations\") {\n next();\n } else {\n const fresh = to.query.customerId;\n const role = to.query.customerRole ? to.query.customerRole.toString() : null;\n Vue.axios\n .get(`customers/${fresh}`)\n .then(({ data }) => {\n next(\n // prettier-ignore\n (vm: Vue) => {\n const that = vm as Reservations;\n let roleName = \"\";\n switch (role) {\n case null:\n roleName = \"Customers.AllRoles\";\n break;\n case \"1\":\n roleName = \"Customers.ReservationHolder\";\n break;\n case \"2\":\n roleName = \"Customers.Guest\";\n break;\n case \"3\":\n roleName = \"Customers.Owner\";\n break;\n default:\n roleName = \"\";\n break;\n }\n const customerName = join([\n that.$t(\"Customers.Reservations\").toString(),\n data.firstName, \n data.lastName,\n \"-\",\n that.$t(roleName).toString()], \" \");\n that.breadcrumbs = [customerName];\n that.setCustomBreadcrumbs && that.setCustomBreadcrumbs(that.breadcrumbs);\n }\n );\n })\n .catch(() => next({ name: \"Reservations\", replace: true }));\n }\n },\n mixins: [\n GlobalFilterSensitiveMixin\n ]\n})\nexport default class Reservations extends Vue {\n @Action(\"setCustomBreadcrumbs\") setCustomBreadcrumbs?: (\n payload: string[] | undefined\n ) => Promise;\n @Getter(\"customBreadcrumbs\") customBreadcrumbs?: string[];\n\n async destroyed() {\n if (this.customBreadcrumbs == this.breadcrumbs) {\n this.setCustomBreadcrumbs && this.setCustomBreadcrumbs(undefined);\n }\n }\n\n breadcrumbs: string[] = [];\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reservations.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reservations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Reservations.vue?vue&type=template&id=0800c030&scoped=true&\"\nimport script from \"./Reservations.vue?vue&type=script&lang=ts&\"\nexport * from \"./Reservations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Reservations.vue?vue&type=style&index=0&id=0800c030&scoped=true&lang=scss&\"\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 \"0800c030\",\n null\n \n)\n\nexport default component.exports","export default interface VCustomer {\n id: number;\n reservationAccUnitGuestId: number;\n tenantId: number;\n isLegalEntity: boolean;\n orderByName: string;\n name: string;\n eMail: string;\n telephoneNumber: string;\n dateOfBirth?: Date | string; \n identificationNumber: string;\n identificationDocumentTypeId?: number;\n countryOfResidenceId?: number;\n countryOfResidenceName?: string;\n city?: string;\n remarks: string;\n numberOfReservations?: number;\n numberOfStays?: number;\n numberOfNights?: number;\n numberOfCancelations?: number;\n numberOfNoShows?: number;\n totalIncomeAmount?: number;\n dueAmount?: number;\n}\n\nexport class CustomerModel {\n id!: number;\n reservationAccUnitGuestId!: number;\n isLegalEntity!: boolean;\n\n genderId = 3; //default value - 1(Male), 2(Female), 3(Unknown)\n firstName?: string;\n middleName?: string;\n lastName?: string;\n legalEntityName?: string;\n businessId?: string;\n eMail?: string;\n telephoneNumber?: string;\n\n streetName?: string;\n houseNumber?: string;\n postalCode?: string;\n city?: string;\n\n countryOfResidenceId?: number;\n countryOfBirthId?: number;\n citizenshipId?: number;\n dateOfBirth?: Date | string;\n\n identificationDocumentNumber?: string;\n identificationDocumentTypeId?: number;\n\n ownerPaysVAT = false;\n isOwner = false;\n\n remarks?: string;\n\n externalCustomerCode?: string;\n bankAccountNumber?: string;\n\n isResident = true;\n\n vatId?: string;\n\n isForOwner = false;\n isForPropertyManager = false\n\n preferredLanguageId?: number;\n}","export class FinDocViewModel {\n id = 0;\n\n propertyId: number | null = null;\n reservationId: number | null = null;\n\n documentStatusId = 1;\n documentTypeId = 1;\n\n documentIdentifier = \"\";\n documentInternalIdentifier = \"\";\n\n discountPercent = 0; // obsolete - only shown on existing invoices, not editable\n\n note = \"\";\n taxExemptionReason = \"\";\n\n workingCurrencyId = 2; // EUR\n workingCurrencyISO3 = \"EUR\";\n workingToFormalConversionRate = 1;\n\n formalCurrencyId: number | null = null;\n formalCurrencyISO3 = \"\";\n formalToWorkingConversionRate = 1;\n\n // sub models\n basicInfo: FinDocBasicInfoViewModel = new FinDocBasicInfoViewModel();\n clientInfo: FinDocClientInfoViewModel = new FinDocClientInfoViewModel();\n lineItems: FinDocLineItemViewModel[] = [];\n relatedAdvanceInvoices: FinDocRelatedAdvanceViewModel[] = [];\n unassignedAdvanceInvoices: FinDocRelatedAdvanceViewModel[] = [];\n unassignedPayments: PaymentModel[] = [];\n\n fiscalizationFailed = false;\n}\n\nexport class FinDocBasicInfoViewModel {\n issueDate = \"\";\n deliveryDate: string | null = null;\n dueDate: string | null = null;\n\n servicePeriodFromDate: string | null = null;\n servicePeriodToDate: string | null = null;\n\n issuePlace = \"\";\n\n businessUnitId: number | null = null;\n cashRegisterId: number | null = null;\n paymentMeansId: number | null = null;\n cardTypeId: number | null = null;\n\n isChannexIdPresent = false;\n hasSavedCreditCard = false;\n\n referenceDocumentId: number | null = null;\n referenceDocumentTypeId: number | null = null;\n\n referenceNumber = \"\";\n\n userChangedDates = false;\n showOwnerDetails = false;\n\n paymentMeansAdditionalDetails: PaymentMeansAdditionalDetailsModel[] = [];\n}\n\nexport interface PaymentMeansAdditionalDetailsModel {\n id: number;\n paymentMeansId: number | null;\n cardTypeId: number | null;\n currencyId: number | null;\n amount: number | null;\n}\n\nexport class FinDocClientInfoViewModel {\n id = 0;\n name = \"\";\n identificationDocumentNumber = \"\";\n businessId = \"\";\n address = \"\";\n postalCode = \"\";\n city = \"\";\n countryId: number | null = null;\n countryName = \"\";\n email = \"\";\n phone = \"\";\n\n isLegalEntity = false;\n}\n\nexport interface FinDocRelatedAdvanceViewModel {\n id: number;\n documentIdentifier: string;\n documentInternalIdentifier: string;\n issueDate: string;\n\n workingCurrencyId: number;\n totalDueAmount: number;\n\n formalCurrencyId: null | number;\n totalDueAmountFormalCurrency: null | number;\n}\n\nexport class FinDocLineItemViewModel {\n id = 0;\n itemName = \"\";\n itemNumber = 1;\n financialDocumentId = 0;\n reservationAccUnitTypeId: number | null = null;\n resAccUnitTypeAddOnServiceId: number | null = null;\n addOnServiceId: number | null = null;\n\n unitOfMeasureId = 1;\n decimalQuantity = 1;\n taxRateId = 0;\n consumptionTaxRate: number | null = null;\n grossUnitPrice = 0;\n discountPercent = 0;\n\n taxExemptionReasonFromAOS = \"\";\n\n sourceFinancialDocumentId: number | null = null;\n sourceLineItemId: number | null = null;\n\n isCityTax = false;\n isStayCancellation = false;\n isFoodAndBeverages = false;\n\n ownerId: number | null = null;\n ownerIsLegalEntity: boolean | null = null;\n ownerPaysVAT: boolean | null = null;\n ownerIsResident = false;\n ownerVatId = \"\";\n agencyWorkModelId: number | null = null;\n\n isExchangeRateDifference = false;\n\n isGroupedStayLineItem: boolean | null = null;\n\n // for display only (not fetched from server)\n grossPrice = 0;\n netUnitPrice = 0;\n netPrice = 0;\n\n grossUnitPriceAlt = 0;\n grossPriceAlt = 0;\n netUnitPriceAlt = 0;\n netPriceAlt = 0;\n}\n\nexport class PaymentModel {\n id = 0 as number | null;\n paymentDate = \"\";\n amount = 0;\n remainingAmount = 0;\n amountToAsign = 0;\n currencyId: number | null = null;\n currencyCode = \"\";\n paymentMeansId: number | null = null;\n cardTypeId: number | null = null;\n alreadyPaidForFinDoc: number | null = null;\n}\n\nexport interface OwnersInvoiceBulkCreateResult {\n id: number;\n locked: boolean;\n fiscalized: boolean;\n pdfGenerated: boolean;\n}\n\nexport interface FinancialDocumentCreateResponseModel {\n documentId: number;\n advanceInvoiceCancellationResults: CancelAdvanceInvoiceResponse[];\n isSuccess: boolean;\n}\n\nexport interface FinancialDocumentSaveLockAndMarkAsPaidResult {\n documentId: number;\n isSuccess: boolean;\n saved: boolean;\n locked: boolean;\n fiscalized: boolean;\n paid: boolean;\n errorMessage: string;\n advanceInvoiceCancellationResults: CancelAdvanceInvoiceResponse[];\n}\n\nexport interface CreateAdvanceInvoiceForPaymentsResultModel {\n documentId: number;\n advanceInvoiceCancellationResults: CancelAdvanceInvoiceResponse[];\n isSuccess: boolean;\n exception: string;\n paymentmeansId: number;\n saved: boolean;\n locked: boolean;\n fiscalized: boolean;\n paid: boolean;\n}\n\nexport interface CancelAdvanceInvoiceResponse {\n originalDocumentId: number;\n originalDocumentIdentifier: string;\n originalDocumentInternalIdentifier: string;\n stornoCreationFailed: boolean;\n stornoLockFailed: boolean;\n stornoPaymentsFailed: boolean;\n stornoFiscalizationFailed: boolean;\n}\n\nexport interface FinancialDocumentLockResult {\n locked: boolean;\n fiscalized: boolean;\n pdfGenerated: boolean;\n errorMessage: string;\n}\n\nexport interface FinancialDocumentCreateResponseModel {\n documentId: number;\n advanceInvoiceCancellationResults: CancelAdvanceInvoiceResponse[];\n isSuccess: boolean;\n}\n\nexport interface CancelAdvanceInvoiceResponse {\n originalDocumentId: number;\n originalDocumentNumberComplete: string;\n stornoCreationFailed: boolean;\n stornoLockFailed: boolean;\n stornoPaymentsFailed: boolean;\n stornoFiscalizationFailed: boolean;\n}\n\nexport interface FinancialDocumentFiscalizeResult {\n fiscalized: boolean;\n errorMessage: string;\n}\n\nexport interface GenerateInvoiceResultModel {\n documentId: number;\n warnings: string[];\n}\n\nexport interface GenerateInvoiceResultModelBulk {\n documentIds: number[];\n warnings: string[];\n}\n\nexport interface TaxRecapCalculationResultModel {\n hasError: boolean;\n items: TaxRecapViewModel[];\n}\n\nexport interface TaxRecapViewModel {\n taxRateId: number;\n taxRateTextResourceKey: string;\n\n baseAmount: number;\n taxAmount: number;\n consumptionTaxBaseAmount: number | null;\n consumptionTaxAmount: number | null;\n\n hasBaseAmountError: boolean;\n hasTaxAmountError: boolean;\n\n recapItems: TaxRecapItemViewModel[];\n}\n\nexport interface TaxRecapItemViewModel {\n taxRateId: number;\n\n originDocumentIdentifier: string;\n originDocumentIssueDate: string;\n originDocumentTotalWithVat: number | null;\n\n baseAmount: number;\n taxAmount: number;\n consumptionTaxBaseAmount: number | null;\n consumptionTaxAmount: number | null;\n}\n\nexport interface CancellationPolicy {\n reservationId: number;\n reservationAccUnitTypeId?: number;\n amount: number;\n}\n\nexport interface PaymentSlipViewModel {\n id: number;\n documentNumber: string;\n documentIdentifier: string;\n documentInternalIdentifier: string;\n documentTypeId: number;\n transactionDateTime: string;\n customerId: number;\n customerName: string;\n transactionAmount: number;\n currencyId: number;\n transactionDescriptionId: number | null;\n additionalNoteForTransaction: string;\n cashRegisterId: number | null;\n businessUnitId: number | null;\n}\n\nexport interface PaymentSlipSaveResult {\n id: number;\n locked: boolean;\n pdfGenerated: boolean;\n}","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutGuestCard.vue?vue&type=style&index=0&id=48e8819e&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MaintenanceGridTile.vue?vue&type=style&index=0&id=0db05859&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancePicker.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsTableMobile.vue?vue&type=style&index=0&id=9b2a2f52&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyFormAgencyFeeSelection.vue?vue&type=style&index=0&id=4a9ac1c4&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceRoutingInvoice.vue?vue&type=style&index=0&id=96f61f6c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"label\":_vm.label,\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails,\"rules\":_vm.rules,\"suffix\":_vm.suffix,\"prefix\":_vm.prefix,\"reverse\":_vm.reverse,\"readonly\":_vm.readonly,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},on:{\"input\":_vm.valueChanged,\"blur\":_vm.format,\"update:error\":function($event){_vm.isValid = $event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_vm._t(\"append\")]},proxy:true},{key:\"append-outer\",fn:function(){return [_vm._t(\"append-outer\")]},proxy:true}],null,true),model:{value:(_vm.internalModel),callback:function ($$v) {_vm.internalModel=$$v},expression:\"internalModel\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport {\n parseLocaleNumber,\n formatLocaleNumber,\n} from \"@/components/numbers/numberFormatUtils\";\n\n@Component\nexport default class NumericInput extends Vue {\n @Prop() value?: number | null;\n\n // behavior properties\n // empty field return type\n @Prop({ default: \"null\" }) emptyReturn?: \"null\" | \"undefined\" | \"\";\n // number of decimal places to show, min and max\n @Prop({ default: 2 }) decimalPlaces?: number | [number, number];\n // controls if value should be returned rounded to the nearest integer\n @Prop({ default: false }) valueAsInteger?: boolean;\n // controls if the value should be transformed to positive or negative\n @Prop({ default: \"none\" }) transform?: \"none\" | \"toPositive\" | \"toNegative\";\n\n // display/design properties\n @Prop() label?: string;\n @Prop({ default: true }) outlined?: boolean;\n @Prop() dense?: boolean;\n @Prop() disabled?: boolean;\n @Prop({ default: false }) readonly?: boolean;\n @Prop({ default: false }) hideDetails?: boolean;\n @Prop({ default: null }) suffix?: string;\n @Prop({ default: null }) prefix?: string;\n @Prop({ default: false }) reverse?: boolean;\n @Prop({ default: null }) placeholder?: string;\n\n // validation\n @Prop({ default: () => [] }) rules?: any[];\n\n @Getter(\"language/language\") language?: string;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n internalModel = \"\";\n\n isValid = false;\n\n @Watch(\"value\", { immediate: true })\n inputValueChanged(fresh: number | null | undefined) {\n const forComparison = formatLocaleNumber(\n parseLocaleNumber(this.internalModel, this.internalLanguage),\n 6,\n this.internalLanguage\n );\n\n const negativeZeroCheck = formatLocaleNumber(-0, 6, this.internalLanguage);\n const freshFormated = formatLocaleNumber(fresh, 6, this.internalLanguage);\n\n if (\n (freshFormated === forComparison && fresh !== 0) ||\n freshFormated === negativeZeroCheck\n ) {\n return;\n }\n\n if (Number.isNaN(fresh) || fresh == null || fresh == undefined) {\n this.internalModel = \"\";\n } else {\n this.internalModel = formatLocaleNumber(\n fresh,\n this.decimalPlaces,\n this.internalLanguage\n );\n }\n }\n\n //(#6177)Behaviour before:\n //1.user presses '-' -> only '-' renders, mouseClick outside the field -> '0.00' renders\n //2.user presses '+' -> '0.00' renders immidiately\n //Behaviour after adding \"|| this.internalModel === '+'\" to if clause\n //1.same as above\n //2.user presses '+' -> only '+' renders -> mouseClick outside the field -> '0.00' renders\n //if this emits '0' or '+0' instead of '-0' -> same as behaviour before 2.\n valueChanged() {\n if (this.internalModel === \"-\" || this.internalModel === \"+\") {\n this.$emit(\"input\", -0);\n } else if (this.internalModel != \"\") {\n const n = parseLocaleNumber(this.internalModel, this.internalLanguage);\n\n // round to nearest integer if needed\n if (this.valueAsInteger) {\n this.$emit(\"input\", Math.round(n));\n } else {\n this.$emit(\"input\", n);\n }\n } else {\n this.$emit(\n \"input\",\n this.emptyReturn === \"null\"\n ? null\n : this.emptyReturn === \"undefined\"\n ? undefined\n : \"\"\n );\n }\n }\n\n format() {\n if (this.internalModel !== \"\" && !this.isValid) {\n // valid number check\n let n = parseLocaleNumber(this.internalModel, this.internalLanguage);\n\n // transform value as needed\n if (\n (n > 0 && this.transform === \"toNegative\") ||\n (n < 0 && this.transform === \"toPositive\")\n ) {\n n *= -1;\n this.$emit(\"input\", n);\n }\n\n this.internalModel = formatLocaleNumber(\n n,\n this.decimalPlaces,\n this.internalLanguage\n );\n }\n\n this.$emit(\"blur\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericInput.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumericInput.vue?vue&type=template&id=6690405a&scoped=true&\"\nimport script from \"./NumericInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumericInput.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 \"6690405a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutModalForm.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsMobile.vue?vue&type=style&index=0&id=53712db8&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"messages\"},[_c('SortableHeadersTable',{staticClass:\"row-double-clickable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":_vm.name,\"item-class\":_vm.getRowClass},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"item.isInbound\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.isInbound)?_c('v-icon',{staticClass:\"icon-inherit-color\"},[_vm._v(\"far fa-inbox-in \")]):_c('v-icon',{staticClass:\"icon-inherit-color\"},[_vm._v(\"far fa-inbox-out \")])]}},{key:\"header.sourceTypeId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.enumToArray(_vm.messageSourceTypeEnum),\"item-text\":function (x) { return _vm.$t('MessageSourceType.' + x.name); },\"item-value\":\"value\",\"label\":header.text,\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.sourceTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"sourceTypeId\", $$v)},expression:\"filters.sourceTypeId\"}})]}},{key:\"item.sourceTypeId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s((item.isAutomatic == true) ? _vm.$t(\"Message.IsAutomatic\") : \"\")+\" \"+_vm._s(_vm.$t('MessageSourceType.' + _vm.enumToArray(_vm.messageSourceTypeEnum).find(function (x) { return x.value == item.sourceTypeId; }).name)))])]}},{key:\"header.date\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.date),callback:function ($$v) {_vm.$set(_vm.filters, \"date\", $$v)},expression:\"filters.date\"}})]}},{key:\"item.date\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.formatTimezoneFromUtcToLocal(new Date(item.date)))+\" \")])]}},{key:\"header.from\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.participants),callback:function ($$v) {_vm.$set(_vm.filters, \"participants\", $$v)},expression:\"filters.participants\"}})]}},{key:\"item.from\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.getParticipants(item))+\" \")])]}},{key:\"header.subject\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.subject),callback:function ($$v) {_vm.$set(_vm.filters, \"subject\", $$v)},expression:\"filters.subject\"}})]}},{key:\"item.subject\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex\"},[(item.messageAttachments && item.messageAttachments.length > 0)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-paperclip\")]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.getSubject(item)))])],1)]}},{key:\"header.customer\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.customer),callback:function ($$v) {_vm.$set(_vm.filters, \"customer\", $$v)},expression:\"filters.customer\"}})]}},{key:\"header.reservationId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationId),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationId\", _vm._n($$v))},expression:\"filters.reservationId\"}})]}},{key:\"item.isRead\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isRead,\"disabled\":\"\"}})]}},{key:\"item.isResolved\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isResolved,\"disabled\":\"\"}})]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-comments\"}})],1):_vm._e()]},proxy:true},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openConversation(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-envelope-open\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Open\")))])],1)],1),(!item.isRead)?_c('v-list-item',{on:{\"click\":function($event){return _vm.markAsRead(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-envelope-open\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Message.MarkAsRead\")))])],1)],1):_vm._e(),(!item.isResolved)?_c('v-list-item',{on:{\"click\":function($event){return _vm.markAsResolved(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-check\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Message.MarkAsResolved\")))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.reply(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-reply\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Message.Reply\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.replyToAll(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-reply-all\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Message.ReplyAll\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.forward(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-share\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Message.Forward\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.deleteConfirm(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}}])}),_c('ConversationPanel',{ref:\"conversationPanel\",attrs:{\"open\":_vm.conversationPanelOpen,\"messageId\":_vm.conversationPanelMessageId},on:{\"update:open\":function($event){_vm.conversationPanelOpen=$event},\"markAsRead\":_vm.markAsRead,\"markAsResolved\":_vm.markAsResolved,\"reply\":_vm.reply,\"replyToAll\":_vm.replyToAll,\"forward\":_vm.forward}}),_c('ConversationPanelWhatsApp',{ref:\"conversationPanelWhatsApp\",attrs:{\"open\":_vm.conversationPanelWhatsAppOpen,\"phoneNumber\":_vm.conversationPanelPhoneNumber,\"customerName\":_vm.conversationPanelCustomerName,\"customerId\":_vm.conversationPanelCustomerId,\"reservationId\":_vm.reservationId},on:{\"update:open\":function($event){_vm.conversationPanelWhatsAppOpen=$event}}}),_c('MessageForm',{attrs:{\"open\":_vm.newMessageFormOpen,\"baseMessage\":_vm.newMessageBase,\"baseMessageType\":_vm.newMessageType},on:{\"update:open\":function($event){_vm.newMessageFormOpen=$event},\"messageSent\":_vm.load}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"drawer\",attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{staticClass:\"mr-2 mb-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.reply}},[_vm._v(_vm._s(_vm.$t(\"Message.Reply\"))+\" \")]),_c('v-btn',{staticClass:\"mr-2 mb-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.replyToAll}},[_vm._v(_vm._s(_vm.$t(\"Message.ReplyAll\"))+\" \")]),_c('v-btn',{staticClass:\"mr-2 mb-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.forward}},[_vm._v(_vm._s(_vm.$t(\"Message.Forward\"))+\" \")]),(!_vm.isRead)?_c('v-btn',{staticClass:\"mr-2 mb-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.markAsRead}},[_vm._v(_vm._s(_vm.$t(\"Message.MarkAsRead\"))+\" \")]):_vm._e(),(!_vm.isResolved)?_c('v-btn',{staticClass:\"mr-2 mb-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.markAsResolved}},[_vm._v(_vm._s(_vm.$t(\"Message.MarkAsResolved\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{staticClass:\"mb-2\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"Message.Conversation\"))+\" - \"+_vm._s(_vm.subject))])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-fade-transition',[(_vm.downloadingAttachment)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('ScrollLoader',{attrs:{\"loadOffset\":100,\"element\":_vm.scrollEl},on:{\"offsetReached\":_vm.loadMore}}),_c('div',{ref:\"messages\",staticClass:\"messages\"},[_vm._l((_vm.messages),function(message){return _c('div',{key:message.id,staticClass:\"message\"},[_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\" \"+_vm._s(message.from)+\" \")]),_c('v-spacer'),_c('div',{staticClass:\"unemphasize\"},[_vm._v(\" \"+_vm._s(_vm.formatTimezoneFromUtcToLocal(new Date(message.date)))+\" \")])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"unemphasize\",attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_vm._v(_vm._s(_vm.$t(\"Message.To\"))+\":\")]),_c('v-col',{staticClass:\"unemphasize\",attrs:{\"cols\":\"12\",\"sm\":\"10\"}},[_vm._v(\" \"+_vm._s(_vm.getRecipients(message, \"main\"))+\" \")]),(_vm.getRecipients(message, 'cc'))?_c('v-col',{staticClass:\"unemphasize\",attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Message.CC\"))+\": \")]):_vm._e(),(_vm.getRecipients(message, 'cc'))?_c('v-col',{staticClass:\"unemphasize\",attrs:{\"cols\":\"12\",\"sm\":\"10\"}},[_vm._v(\" \"+_vm._s(_vm.getRecipients(message, \"cc\"))+\" \")]):_vm._e()],1),_c('v-divider'),_c('div',{staticClass:\"py-4\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(message.body)}})]),_vm._l((message.messageAttachments),function(attachment,$index){return _c('v-btn',{key:$index,staticClass:\"mr-2 mb-2\",attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.downloadAttachment(message.id, attachment)}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.getAttachmentIcon(attachment.mimeType)))]),_vm._v(\" \"+_vm._s(attachment.name)+\" \")],1)})],2)}),_c('div',{ref:\"scroll\"})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport {\n MessageViewModel,\n MessageRecipientViewModel,\n MessageAttachmentViewModel,\n} from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport * as _ from \"lodash\";\nimport { Getter } from \"vuex-class\";\nimport { formatDateTimeAccordingToTimeZoneOrUTC } from '@/shared/dateFormatUtils';\n\n@Component({\n components: {\n RightDrawer,\n ScrollLoader,\n },\n})\nexport default class ConversationPanel extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop() messageId?: number;\n\n model: MessageViewModel | null = null;\n loading = false;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"language/language\") language?: string;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n await this.load();\n } else {\n this.model = null;\n this.loading = false;\n this.done = false;\n this.initialLoadDone = false;\n this.downloadingAttachment = false;\n }\n }\n\n async load(){\n this.loading = true;\n this.done = false;\n await this.axios\n .get(\"/messages/\" + this.messageId)\n .then((res) => {\n this.model = res.data;\n this.initialLoadDone = true;\n })\n .finally(() => {\n this.loading = false;\n });\n if (this.scrollEl) {\n if (\n this.scrollEl.scrollHeight > 0 &&\n this.scrollEl.scrollHeight <= this.scrollEl.clientHeight &&\n !this.done\n ) {\n await this.loadMore();\n }\n }\n }\n\n close() {\n this.$emit(\"update:open\", false);\n }\n\n get subject() {\n if (this.model?.subject) {\n return this.model.subject;\n }\n let bodyReplacement =\n this.model?.body.replaceAll(RegExp(/<[a-zA-Z/].*?>/gm), \" \") ?? \"\";\n if (bodyReplacement.length > 100) {\n bodyReplacement = bodyReplacement.substring(0, 100) + \"...\";\n }\n return bodyReplacement;\n }\n\n getOldestParent(message: MessageViewModel): MessageViewModel {\n if (message?.parentMessage) {\n return this.getOldestParent(message.parentMessage);\n } else {\n return message;\n }\n }\n\n get isRead(){\n return this.model?.isRead ?? false;\n }\n\n get isResolved(){\n return this.model?.isResolved ?? false;\n }\n\n getMessageList(message: MessageViewModel): MessageViewModel[] {\n if (!message) {\n return [];\n }\n\n if (message?.parentMessage) {\n return [...this.getMessageList(message.parentMessage), message];\n } else {\n return [message];\n }\n }\n\n get messages() {\n if (!this.model) return [];\n return this.getMessageList(this.model).reverse();\n }\n\n getRecipients(\n message: MessageViewModel,\n recipientType: \"main\" | \"cc\" \n ) {\n let recipients = [] as MessageRecipientViewModel[];\n switch (recipientType) {\n case \"main\":\n recipients = message.messageRecipients.filter(\n (x) => !x.isCc && !x.isBcc\n );\n break;\n case \"cc\":\n recipients = message.messageRecipients.filter((x) => x.isCc);\n break;\n default:\n return [];\n }\n\n return recipients.map((x) => x.to).join(\", \");\n }\n\n getAttachmentIcon(mimeType: string) {\n if (mimeType.includes(\"image\")) {\n return \"fal fa-image\";\n } else if (mimeType.includes(\"pdf\")) {\n return \"fal fa-file-pdf\";\n } else if (mimeType.includes(\"html\")) {\n return \"fal fa-file-code\";\n } else if (\n mimeType.includes(\"openxmlformats-officedocument.spreadsheetml\")\n ) {\n return \"fal fa-file-excel\";\n } else {\n return \"fal fa-file\";\n }\n }\n\n downloadingAttachment = false;\n async downloadAttachment(\n messageId: number,\n attachment: MessageAttachmentViewModel\n ) {\n this.downloadingAttachment = true;\n await this.$http\n .get(`messages/${messageId}/${attachment.id}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec( \n res.headers[\"content-disposition\"]\n )?.groups;\n const name = groups?.filename.replace(/(^\"|\"$)/g, '') ?? attachment.name\n saveFile(res.data, name);\n })\n .finally(() => {\n this.downloadingAttachment = false;\n });\n }\n\n scrollEl = null as HTMLElement | null;\n mounted() {\n this.scrollEl = this.$refs.messages as HTMLElement;\n }\n\n markAsRead() {\n this.$emit('markAsRead', this.messageId);\n }\n markAsResolved() {\n this.$emit('markAsResolved', this.messageId)\n }\n reply() {\n this.$emit('reply', this.model);\n }\n replyToAll() {\n this.$emit('replyToAll', this.model)\n }\n forward() {\n this.$emit('forward', this.model)\n }\n\n initialLoadDone = false;\n done = false;\n async loadMore() {\n if (this.done || this.loading) return;\n if (!this.model) return;\n const id = this.getOldestParent(this.model).parentMessageId;\n if (!id) return;\n this.loading = true;\n await this.axios\n .get(\"/messages/\" + id)\n .then((res) => {\n if (!this.getOldestParent(res.data).parentMessageId) {\n this.done = true;\n }\n if (this.model) {\n const temp = _.cloneDeep(this.model);\n const oldestParent = this.getOldestParent(temp);\n oldestParent.parentMessage = res.data;\n this.model = _.cloneDeep(temp);\n }\n })\n .finally(() => {\n this.loading = false;\n });\n\n if (this.scrollEl) {\n if (\n this.scrollEl.scrollHeight > 0 &&\n this.scrollEl.scrollHeight <= this.scrollEl.clientHeight &&\n !this.done\n ) {\n await this.loadMore();\n }\n }\n }\n\n formatTimezoneFromUtcToLocal(date: Date){\n const unformatedTimeZone = this.activeBusinessUnit?.timeZoneId;\n const timeZone = unformatedTimeZone ? unformatedTimeZone.substring(0, unformatedTimeZone.indexOf(\",\")) : undefined;\n return formatDateTimeAccordingToTimeZoneOrUTC(date, this.language ?? \"\", timeZone);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationPanel.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConversationPanel.vue?vue&type=template&id=2ad26a4f&scoped=true&\"\nimport script from \"./ConversationPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConversationPanel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConversationPanel.vue?vue&type=style&index=0&id=2ad26a4f&scoped=true&lang=scss&\"\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 \"2ad26a4f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCol,VDivider,VFadeTransition,VIcon,VOverlay,VProgressCircular,VProgressLinear,VRow,VSpacer,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"drawer\",attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"actions\"},[(_vm.blockFreeFormMessages() && !_vm.templateId)?_c('div',{staticClass:\"send-disabled-info\"},[_c('v-alert',{staticClass:\"p-0\",attrs:{\"outlined\":\"\",\"type\":\"info\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Message.WhatsAppFreeFormMessageDisclaimer\"))+\" \")])],1):_vm._e(),_c('div',{staticClass:\"send-free-message pb-4\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newMessage),expression:\"newMessage\"}],staticClass:\"message-input\",attrs:{\"disabled\":_vm.templateId || _vm.blockFreeFormMessages()},domProps:{\"value\":(_vm.newMessage)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newMessage=$event.target.value}}}),_c('v-btn',{attrs:{\"disabled\":_vm.loading || _vm.templateLoading || !_vm.newMessage},on:{\"click\":_vm.send}},[_vm._v(_vm._s(_vm.$t(\"Send\")))])],1),(_vm.reservationId)?_c('div',{staticClass:\"send-from-template\"},[_c('v-select',{attrs:{\"label\":_vm.$t('Template'),\"item-value\":\"id\",\"item-text\":\"name\",\"items\":_vm.filteredTemplates,\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},on:{\"change\":_vm.onTemplateChange},model:{value:(_vm.templateId),callback:function ($$v) {_vm.templateId=$$v},expression:\"templateId\"}})],1):_vm._e()])]},proxy:true}])},[_c('v-toolbar',[_c('div',{staticClass:\"whatsapp-modal-toolbar\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"WhatsApp | \"+_vm._s(_vm.customerName)+\" \"+_vm._s(_vm.phoneNumber))]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('div',{ref:\"messages\",staticClass:\"messages\"},_vm._l((_vm.model),function(message){return _c('div',{key:message.id,staticClass:\"message px-2 py-2\",class:{'outbound': message.from != _vm.phoneNumber}},[_c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(message.body.replace(/\\n/g, '
'))}}),_c('div',{staticClass:\"unemphasize message-datetime\"},[_vm._v(\" \"+_vm._s(_vm.formatTimezoneFromUtcToLocal(new Date(message.date)))+\" \")])])])}),0)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport {\n ComposedMessage,\n MessageSourceTypeEnum,\n MessageViewModel,\n NewMessageModel\n} from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nimport { Getter } from \"vuex-class\";\nimport { formatDateTimeAccordingToTimeZoneOrUTC } from '@/shared/dateFormatUtils';\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { NotificationTemplateViewModel } from \"./templates/types\";\n\n@Component({\n components: {\n RightDrawer,\n ScrollLoader,\n },\n})\nexport default class ConversationPanelWhatsApp extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop() phoneNumber?: string;\n @Prop() customerName?: string;\n @Prop() customerId?: number | null;\n @Prop({ default: null }) reservationId?: number | null;\n\n model: MessageViewModel[] | null = null;\n loading = false;\n initialLoadDone = false;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"language/language\") language?: string;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n this.newMessage = '';\n this.templateId = 0;\n\n if (fresh && !old) {\n await this.load(false);\n this.loadTemplates();\n\n this.setMessageReceiverInterval(); \n } else {\n this.model = null; \n this.loading = false;\n \n this.clearMessageReceiverInterval();\n }\n }\n\n templateId = 0;\n templates = [] as NotificationTemplateViewModel[];\n\n get filteredTemplates() {\n return this.templates.filter((x) => x.sourceTypeIds?.includes(MessageSourceTypeEnum.WhatsApp))\n }\n\n messageInterval = 0;\n\n setMessageReceiverInterval() {\n this.clearMessageReceiverInterval();\n\n this.messageInterval = setInterval(() => {\n this.load(true);\n }, 10000);\n }\n\n clearMessageReceiverInterval() {\n if (this.messageInterval) {\n clearInterval(this.messageInterval); \n }\n }\n\n loadTemplates() {\n this.axios\n .get>(\"/notificationTemplates\", {})\n .then((res) => {\n this.templates = res.data.result;\n });\n }\n\n blockFreeFormMessages() {\n // if the last message is older than 24h, free form messages are not allowed by WhatsApp policy, rather templated message must be sent to the customer\n if (this.model && this.model.length > 0) {\n const lastMessageDate = new Date(new Date(this.model[this.model.length - 1].date + 'Z')); // adding 'Z' to original string tells JS that it's UTC date string\n const now = new Date();\n const hours = Math.abs(now.getTime() - lastMessageDate.getTime()) / 36e5;\n \n return hours > 24;\n }\n\n return true\n }\n\n async load(onlyNewMessages: boolean){\n this.loading = true;\n let uri = \"/messages/whatsapp?phoneNumber=\" + encodeURIComponent(this.phoneNumber ?? '');\n \n if (onlyNewMessages && this.model && this.model.length > 0) {\n uri = uri + '&onlyNewerThanMessageId=' + this.model[this.model.length - 1].id;\n }\n\n await this.axios\n .get>(uri)\n .then((res) => {\n if (onlyNewMessages && this.model) {\n this.model.push(...res.data.result);\n } else {\n this.model = res.data.result;\n }\n this.initialLoadDone = true;\n\n setTimeout(() => {\n this.scrollEl?.scrollTo(0, this.scrollEl.scrollHeight);\n }, 0);\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n close() {\n this.$emit(\"update:open\", false);\n }\n\n newMessage = '';\n async send() {\n this.clearMessageReceiverInterval();\n\n this.loading = true;\n\n const message = new NewMessageModel();\n message.body = this.newMessage;\n message.sourceTypeId = MessageSourceTypeEnum.WhatsApp;\n message.to = [this.phoneNumber ?? ''];\n message.reservationId = this.reservationId ?? null;\n message.notificationTemplateId = this.templateId && this.templateId != 0 ? this.templateId : null;\n message.cultureCode = this.templateLanguage;\n message.customerId = this.customerId ?? null;\n\n await this.axios\n .post(\"/messages/sendmessage\", message)\n .then(() => {\n this.newMessage = '';\n this.templateId = 0;\n })\n .finally(() => {\n this.load(true);\n this.setMessageReceiverInterval();\n });\n }\n\n scrollEl = null as HTMLElement | null;\n mounted() {\n this.scrollEl = this.$refs.messages as HTMLElement;\n }\n\n unmounted() {\n this.clearMessageReceiverInterval();\n }\n\n // todo: language picker should be implemented and template language resolver server side for WA\n // hardcoded for now\n templateLanguage = \"en-GB\";\n \n templateLoading = false;\n\n onTemplateChange() {\n if (!this.templateId || !this.reservationId) {\n this.newMessage = \"\";\n return;\n }\n\n this.templateLoading = true;\n\n this.axios\n .get(\"notificationTemplates/GetComposedMessage\", {\n params: {\n templateId: this.templateId,\n reservationId: this.reservationId,\n cultureCode: this.templateLanguage ?? \"en\",\n },\n })\n .then((res) => {\n this.newMessage = res.data.body;\n })\n .finally(() => {\n this.templateLoading = false;\n });\n }\n\n formatTimezoneFromUtcToLocal(date: Date){\n const unformatedTimeZone = this.activeBusinessUnit?.timeZoneId;\n const timeZone = unformatedTimeZone ? unformatedTimeZone.substring(0, unformatedTimeZone.indexOf(\",\")) : undefined;\n return formatDateTimeAccordingToTimeZoneOrUTC(date, this.language ?? \"\", timeZone);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationPanelWhatsApp.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationPanelWhatsApp.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConversationPanelWhatsApp.vue?vue&type=template&id=39d9b185&scoped=true&\"\nimport script from \"./ConversationPanelWhatsApp.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConversationPanelWhatsApp.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConversationPanelWhatsApp.vue?vue&type=style&index=0&id=39d9b185&scoped=true&lang=scss&\"\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 \"39d9b185\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VIcon,VProgressLinear,VSelect,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport SortableTable from \"@/components/generic-pms-table/SortableTableDirective\";\nimport GenericPMSTableMenu from \"@/components/generic-pms-table/GenericPMSTableMenu.vue\";\nimport MessageForm from \"@/components/messages/MessageForm.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { MessageViewModel, MessageSourceTypeEnum, BaseMessageTypeEnum } from \"./types\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport ConversationPanel from \"./ConversationPanel.vue\";\nimport ConversationPanelWhatsApp from \"./ConversationPanelWhatsApp.vue\";\nimport { enumToArray } from \"@/shared/commonFunctions\";\nimport * as _ from \"lodash\";\nimport { Getter } from \"vuex-class\";\nimport { formatDateTimeAccordingToTimeZoneOrUTC } from '@/shared/dateFormatUtils';\n\n@Component({\n components: {\n GenericPMSTableMenu,\n SortableHeadersTable,\n DateField,\n ConversationPanel,\n ConversationPanelWhatsApp,\n NoData,\n MessageForm,\n },\n directives: {\n SortableTable,\n },\n})\nexport default class MessagesTable extends Vue {\n settingsOpen = false;\n\n @Prop({ default: 0 }) direction?: number; // default direction is 'All'\n @Prop({ default: null }) customerId?: number | null;\n @Prop({ default: null }) reservationId?: number | null;\n @Prop() tableName?: string;\n\n get name() {\n return this.tableName ?? \"messages\";\n }\n\n @Getter(\"appParams/tenantAutoEmailsFrom\") tenantAutoEmailsFrom?: string;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n\n @Getter(\"language/language\") language?: string;\n\n @Ref(\"conversationPanel\") conversationPanel?: ConversationPanel;\n @Ref(\"conversationPanelWhatsApp\") conversationPanelWhatsApp?: ConversationPanelWhatsApp;\n \n enumToArray = enumToArray;\n\n messageSourceTypeEnum = MessageSourceTypeEnum;\n\n headers: SortableTableHeader[] = [\n {\n text: \"Message.Date\",\n value: \"date\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Message.Participants\",\n value: \"from\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Message.Subject\",\n value: \"subject\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Message.Customer\",\n value: \"customer\",\n active: !this.customerId,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Message.Reservation\",\n value: \"reservationId\",\n active: !this.reservationId,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: !this.customerId ? \"Message.SourceType\" : \"Message.SourceType.Short\",\n value: \"sourceTypeId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n align: \"center\",\n },\n ];\n\n get translatedActiveHeaders() {\n return this.headers\n .filter((x) => x.active)\n .map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n filters = {\n date: \"\",\n participants: \"\",\n subject: \"\",\n customer: \"\",\n sourceTypeId: null as number | null,\n reservationId: null as number | null,\n };\n\n get computedFilters() {\n return {\n ...this.filters,\n direction: this.direction,\n };\n }\n\n @Watch(\"computedFilters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"date\"],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/messages\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.computedFilters,\n ...this.routeQueryParams,\n };\n }\n\n get routeQueryParams() {\n const toReturn = {\n ...this.$route.query,\n } as any;\n\n if (this.customerId) {\n toReturn.customerId = this.customerId;\n }\n if (this.reservationId) {\n toReturn.reservationId = this.reservationId;\n }\n\n return toReturn;\n }\n\n getRowClass(item: MessageViewModel) {\n let classes = \"\";\n if (!item.isRead) {\n classes = \"unread\";\n }\n\n if (item.isResolved) {\n classes += \" resolved\";\n }\n\n return classes;\n }\n\n getParticipants(item: MessageViewModel) {\n const participantAddresses = item.messageRecipients.filter((x) => !x.isBcc).map((x) => x.to)\n \n if (item.from) {\n if(item.from === this.tenantAutoEmailsFrom) {\n participantAddresses.push(item.from);\n }\n else {\n participantAddresses.unshift(item.from);\n }\n }\n\n return _.uniq(participantAddresses).join(\"; \");\n }\n\n formatTimezoneFromUtcToLocal(date: Date){\n const unformatedTimeZone = this.activeBusinessUnit?.timeZoneId;\n const timeZone = unformatedTimeZone ? unformatedTimeZone.substring(0, unformatedTimeZone.indexOf(\",\")) : undefined;\n \n return formatDateTimeAccordingToTimeZoneOrUTC(date, this.language ?? \"\", timeZone);\n }\n\n getSubject(item: MessageViewModel) {\n if (item.subject) {\n return item.subject;\n }\n let bodyReplacement = item.body.replaceAll(RegExp(/<[a-zA-Z/].*?>/gm), \" \");\n if (bodyReplacement.length > 100) {\n bodyReplacement = bodyReplacement.substring(0, 100) + \"...\";\n }\n return bodyReplacement;\n }\n\n conversationPanelOpen = false;\n conversationPanelWhatsAppOpen = false;\n conversationPanelMessageId = null as null | number;\n conversationPanelPhoneNumber = null as null | string;\n conversationPanelCustomerName = null as null | string;\n conversationPanelCustomerId = null as null | number;\n rowDoubleClick(e: MouseEvent, { item }: { item: MessageViewModel }) {\n this.openConversation(item);\n }\n\n openWhatsAppConversation(customerId: number | null, customerName: string | null, phoneNumber: string | null) {\n if (!phoneNumber) {\n return;\n }\n \n this.conversationPanelPhoneNumber = phoneNumber;\n this.conversationPanelCustomerName = customerName;\n this.conversationPanelCustomerId = customerId;\n this.conversationPanelWhatsAppOpen = true;\n }\n\n openConversation(item: MessageViewModel) {\n if (!item.isRead) {\n this.markAsRead(item.id, true);\n }\n\n this.conversationPanelMessageId = item.id;\n \n if (item.sourceTypeId === this.messageSourceTypeEnum.WhatsApp) {\n \n let phoneNumber = item.messageRecipients[0]?.to;\n\n if (!phoneNumber) {\n phoneNumber = item.from;\n }\n\n this.conversationPanelPhoneNumber = phoneNumber;\n this.conversationPanelCustomerName = item.customer;\n this.conversationPanelCustomerId = item.customerId ?? null;\n this.conversationPanelWhatsAppOpen = true;\n } else {\n this.conversationPanelOpen = true;\n }\n }\n\n markAsRead(id: number, suppressNotification: boolean) {\n this.loading = true;\n Vue.axios\n .put(\"messages/\" + id + \"/SetMessageAsRead\")\n .then(() => {\n this.settingsOpen = false;\n\n if (!suppressNotification) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Message.MarkedAsReadSuccess\",\n timeout: 5000,\n localize: true,\n } as Notification);\n }\n \n this.load();\n if(this.conversationPanel && this.conversationPanelOpen) {\n this.conversationPanel.load();\n }\n }) \n .finally(() => {\n this.loading = false\n })\n }\n\n markAsResolved(id: number) {\n this.loading = true;\n Vue.axios\n .put(\"messages/\" + id + \"/SetMessageAsResolved\")\n .then(() => {\n this.settingsOpen = false;\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: \"Message.MarkedAsResolvedSuccess\",\n timeout: 5000,\n localize: true,\n }as Notification);\n\n this.load();\n if(this.conversationPanel && this.conversationPanelOpen) {\n this.conversationPanel.load();\n }\n }) \n .finally(() => {\n this.loading = false\n })\n }\n\n reOpenConversationPanel = false;\n newMessageFormOpen = false;\n newMessageBase: MessageViewModel | null = null;\n newMessageType = BaseMessageTypeEnum.Reply;\n\n reply(item: MessageViewModel) {\n this.openNewMessagesForm(item, BaseMessageTypeEnum.Reply);\n }\n\n replyToAll(item: MessageViewModel) {\n this.openNewMessagesForm(item, BaseMessageTypeEnum.ReplyToAll);\n }\n\n forward(item: MessageViewModel) {\n this.openNewMessagesForm(item, BaseMessageTypeEnum.Forward);\n }\n\n openNewMessagesForm(item: MessageViewModel, type: number) {\n this.newMessageType = type;\n this.newMessageBase = _.cloneDeep(item);\n if(type != BaseMessageTypeEnum.Forward) {\n this.newMessageBase.messageAttachments = []; \n }\n this.newMessageFormOpen = true;\n if(this.conversationPanelOpen) {\n this.conversationPanelOpen = false;\n this.reOpenConversationPanel = true;\n }\n }\n\n @Watch(\"newMessageFormOpen\")\n newMessageFormOpenChanged(fresh: boolean, old: boolean) {\n if(fresh == false && old == true && this.reOpenConversationPanel) {\n this.conversationPanelOpen = true;\n this.reOpenConversationPanel = false;\n }\n }\n\n deleteConfirm() {\n alert(\"TODO\");\n }\n\n delete() {\n alert(\"TODO\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessagesTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessagesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MessagesTable.vue?vue&type=template&id=204ccb60&scoped=true&\"\nimport script from \"./MessagesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MessagesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MessagesTable.vue?vue&type=style&index=0&id=204ccb60&scoped=true&lang=scss&\"\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 \"204ccb60\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VSelect,VSimpleCheckbox,VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplates.vue?vue&type=style&index=0&id=5ce23948&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentSettingsForm.vue?vue&type=style&index=0&id=7f8e09e4&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"calendar__row-wraper\",class:{'theme--dark': _vm.$vuetify.theme.dark}},[(!_vm.hideHeader)?_c('div',{staticClass:\"calendar__row\",class:{'bottom-border' : _vm.isMobile && _vm.isNameRow, 'property' : _vm.isMobile && _vm.isProperty},style:({'min-height': _vm.cell.h + 'px'})},[(_vm.isNameRow)?_c('div',{staticClass:\"calendar__left-nameRow\",class:{'theme--dark': _vm.$vuetify.theme.dark, 'w-vw': _vm.isMobile}},[_vm._t(\"left\")],2):_c('div',{staticClass:\"calendar__left\",class:{'theme--dark': _vm.$vuetify.theme.dark, 'mobile-width' : _vm.isMobile}},[_vm._t(\"left\")],2),(!_vm.isNameRow)?_c('div',{staticClass:\"calendar__track grid--background\",class:{'mobile-width' : _vm.isMobile}},[_vm._t(\"track\")],2):_vm._e()]):_vm._e(),(_vm.item && _vm.item.expanded)?_c('div',{staticClass:\"calendar__row-expansion\",staticStyle:{\"position\":\"relative\"}},[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { CalendarBoxConfigCell, CalendarExpandableRow } from \"./CalendarTypes\";\n\n@Component\nexport default class CalendarBoxRow extends Vue {\n @Prop() item: CalendarExpandableRow | any;\n @Prop({ required: true }) cell?: CalendarBoxConfigCell;\n @Prop() hideHeader?: boolean;\n @Prop() isNameRow?: boolean;\n @Prop() isMobile?: boolean;\n @Prop() isProperty?: boolean;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarBoxRow.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarBoxRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarBoxRow.vue?vue&type=template&id=92f656c0&scoped=true&\"\nimport script from \"./CalendarBoxRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarBoxRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarBoxRow.vue?vue&type=style&index=0&id=92f656c0&scoped=true&lang=scss&\"\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 \"92f656c0\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoData.vue?vue&type=style&index=0&id=d1a8857a&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialOfferDrawer.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{key:_vm.componentKey,ref:\"numericBox\",staticClass:\"numeric-box\",class:{ small: _vm.small },attrs:{\"outlined\":\"\",\"prepend-icon\":\"fa-minus-square\",\"append-outer-icon\":\"fa-plus-square\",\"hide-details\":\"auto\",\"rules\":_vm.rules,\"value\":_vm.value,\"readonly\":_vm.readonly,\"disabled\":_vm.disabled,\"dense\":\"\",\"background-color\":_vm.backgroundColor},on:{\"input\":function($event){return _vm.valueChanged()},\"click:prepend\":function($event){return _vm.subtractClick()},\"click:append-outer\":function($event){return _vm.addClick()}},model:{value:(_vm.internalModel),callback:function ($$v) {_vm.internalModel=$$v},expression:\"internalModel\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\n\n@Component\nexport default class NumericPicker extends Vue {\n @Prop() value?: number;\n @Prop({ default: 1 }) step!: number;\n @Prop({ default: \"number\" }) mode?: \"number\" | \"relative\";\n @Prop() rules!: [];\n @Prop({ default: false }) readonly?: boolean;\n @Prop({ default: false }) disabled?: boolean;\n @Prop({ default: false }) small?: boolean;\n @Prop({ default: false }) zeroEmpty?: boolean;\n @Prop() isMobile?: boolean;\n\n //style props\n @Prop({ default: \"\" }) backgroundColor?: string;\n\n internalModel: string | null = null;\n componentKey = 0;\n\n @Watch(\"value\", { immediate: true })\n valueWatch(fresh: any) {\n this.internalModel = fresh;\n if (\n (typeof this.internalModel === \"string\" ||\n (!this.internalModel &&\n typeof this.internalModel == \"number\" &&\n isNaN(+this.internalModel))) &&\n this.mode === \"number\"\n ) {\n if (!this.internalModel || isNaN(+this.internalModel)) {\n this.internalModel = null;\n (this.$refs.numericBox as any).reset();\n }\n }\n }\n\n valueChanged() {\n if(this.zeroEmpty && (this.internalModel === \"\" || this.internalModel == null)) {\n this.internalModel = \"0\";\n this.componentKey += 1;\n }\n\n if (this.mode === \"number\") {\n this.$emit(\"input\", this.internalModel ? +this.internalModel : null);\n } else if (this.mode === \"relative\") {\n this.addToInternalModel(0);\n this.$emit(\"input\", this.internalModel);\n }\n }\n\n addClick() {\n if (this.readonly) {\n return;\n }\n\n if(!this.isMobile)\n {\n (this.$refs.numericBox as any).focus();\n }\n this.addToInternalModel(this.step);\n\n this.valueChanged();\n }\n\n subtractClick() {\n if (this.readonly) {\n return;\n }\n\n if(!this.isMobile)\n {\n (this.$refs.numericBox as any).focus();\n }\n this.addToInternalModel(-this.step);\n\n this.valueChanged();\n }\n\n addToInternalModel(val: number) {\n if (this.mode === \"number\") {\n const numeric = this.internalModel ? +this.internalModel : 0;\n if (!isNaN(numeric)) {\n this.internalModel = (numeric + val).toString();\n } else {\n this.internalModel = val.toString();\n }\n } else if (this.mode === \"relative\") {\n const reg = /^\\s*(\\+|-)?([^+-]+)$/;\n const extracted = reg.exec(this.internalModel ?? \"\");\n if (!extracted) {\n if (val !== 0) {\n this.internalModel = val.toString();\n }\n } else {\n const num = extracted[2] ? +extracted[2] : 0;\n const prefix = extracted[1] ?? \"\";\n if (isNaN(num)) {\n this.internalModel = prefix + val.toString();\n } else {\n const newVal = num + (prefix === \"-\" ? -val : val);\n this.internalModel = newVal === 0 ? \"0\" : prefix + newVal.toString();\n }\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericPicker.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericPicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumericPicker.vue?vue&type=template&id=4b0f5c1d&\"\nimport script from \"./NumericPicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumericPicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NumericPicker.vue?vue&type=style&index=0&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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationTableMobileTile.vue?vue&type=style&index=0&id=7dc00905&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoTile.vue?vue&type=style&index=0&id=1184ea26&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/no-image-icon-23488.99c22bc3.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentSettingsForm.vue?vue&type=style&index=0&id=7c6f0729&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeOBCategoriesTable.vue?vue&type=style&index=0&id=05f825e8&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Finances.vue?vue&type=style&index=0&id=61f5be58&scoped=true&lang=scss&\"","export enum DashboardPeriodEnum {\n Today,\n Tomorrow,\n TodayAndTomorrow,\n UntilEndOfWeek,\n Next7Days,\n Next14Days,\n Yesterday,\n TodayAndYesterday,\n ThisWeek,\n Last7Days,\n Last14Days,\n OnDate,\n ForRange,\n PrepaymentPastDueDates,\n PrepaymentDueDates,\n Last30Days,\n PrepaymentsPaid\n}\n\nexport enum ReservationsGridDefaultFilterByEnum {\n ArrivalDate = 1,\n DepartureDate = 2\n}\n\nexport enum CurrencyEnum {\n HRK = 1,\n EUR = 2,\n USD = 3,\n GBP = 4,\n BAM = 5,\n RSD = 6\n}\n\nexport enum CustomerTypeEnum {\n ReservationHolder = 1,\n Guest = 2,\n Owner = 3\n}\n\nexport enum CategoriesEnum {\n Empty = 5,\n Star2 = 1,\n Star3 = 2,\n Star4 = 3,\n Star5 = 4\n}\n\nexport enum PaymentMeansEnum {\n Novcanice = 1,\n TransakcijskiRacun = 2,\n OnlineServisZaPlacanje = 3,\n KreditnaKartica = 4,\n BankovnaKartica = 5,\n Cek = 6,\n Ostalo = 7\n}\n\nexport enum FinancialDocumentTypesEnum {\n Racun = 1,\n Ponuda = 2,\n RacunZaPredujam = 3,\n Storno = 4,\n Otpremnica = 5,\n VlasnikovRacun = 6,\n RacunZaProviziju = 7,\n Uplatnica = 8,\n Isplatnica = 9\n}\n\nexport enum FinancialDocumentStatusEnum {\n UIzradi = 1,\n Zakljucen = 2,\n Placen = 3,\n Dospio = 4,\n Storniran = 5,\n Istekla = 6\n}\n\nexport enum UnitsOfMesureEnum {\n Kom = 1,\n Kpl = 2,\n Usluga = 3,\n Sat = 4,\n Dan = 5\n}\n\nexport enum ReservationStatusEnum {\n Hold = 1,\n Confirmed = 2,\n Canceled = 3,\n CheckedIn = 4,\n CheckedOut = 5,\n NoShow = 6\n}\n\nexport enum PriceCalculationMethodsEnum {\n PerStay = 1,\n PerNight = 2,\n PerPersonPerNight = 3,\n PerPerson = 4,\n PerAdultPerson = 5,\n Manual = 6,\n PerChildPerNight = 7,\n PerAdultPerNight = 8,\n PerDay = 9\n}\n\nexport enum AccomodationUnitStatusEnum {\n Clean = 1,\n NeedsCleaning = 2,\n NeedsRepair = 3,\n CleaningInProgress = 4,\n RepairInProgress = 5\n}\n\nexport enum TaxRatesEnum {\n Croatia25 = 1,\n Croatia13 = 2,\n VatOutOfScope = 3,\n VatExempt = 4,\n Bosnia17 = 5,\n BosniaZeroAndExempt = 6,\n Slovenia22 = 7,\n Slovenia95 = 8,\n Slovenia5 = 9,\n SloveniaOutOfScope = 10,\n Serbia20 = 11,\n Serbia10 = 12,\n SerbiaOutOfScope = 13,\n}\n\nexport enum LineItemDistributionStrategy {\n SumDayPrices = 1,\n GroupByDayPrice = 2\n}\n\nexport enum ReservationEVisitorCollapseExpandHideInfoEnum {\n Collapsed = 1,\n Expanded = 2,\n Hidden = 3\n}\n\nexport enum TenantTypesEnum {\n PrivateOwner = 1,\n Agency = 2,\n Hotel = 3,\n Hostel = 4,\n Camp = 5\n}\n\nexport enum ReservationGuestDisplayType {\n FullName = 1,\n Initials = 2\n}\n\nexport enum GuestReviewStatusEnum {\n Submitted = 1,\n Approved = 2,\n Removed = 3\n}\n\nexport enum OTAChannels {\n Booking = 1,\n AirBnB = 2,\n Priceline = 3,\n Expedia = 4,\n Tripadvisor = 5,\n Hotels = 6,\n Agoda = 7,\n Hostelworld = 8,\n Ctrip = 9,\n Oktogo = 10,\n Unknown = 11,\n HotelBeds = 12,\n Despegar = 13,\n VRBO = 14,\n Atraveo = 15,\n eDomizil = 17,\n TUIVillas = 18,\n KroatiDe = 19,\n Szallas = 20, // RevNGo\n GoogleVacationRentals = 21\n}\n\nexport enum OwnerContractExportType {\n Resident = 1,\n NonResident = 2,\n LegalEntity = 3\n}\n\nexport enum OfficialRatesExportType {\n InputPrice = 1,\n OutputPrice = 2,\n InputAndOutputPrice = 3\n}\n\nexport enum RatePlansPromoCodeApplicationMethodsEnum {\n OnlyWithCode = 1,\n Always = 2\n}\n\nexport enum InvoiceDefaultDeliveryDateEnum{\n ArrivalDate = 1,\n DepartureDate = 2\n}\n\nexport enum OwnerPricingModelEnum {\n AbsoluteSame = 1,\n AbsoluteDifferent = 2,\n Relative = 3\n}\n\nexport enum DistributionChannelEnum {\n OTA = 1,\n WalkIn = 2,\n Telephone = 3,\n Email = 4,\n Website = 5,\n Facebook = 6,\n PartnerAgency = 7,\n OTAconversion = 10,\n OwnersReservation = 11\n}\n\nexport enum TenantCountryEnum {\n Croatia = 1,\n Slovenia = 2\n}\n\nexport enum PaymentGatewayIntegrationEnum {\n None = 0,\n Monri = 1,\n Nokumo = 2,\n WSPay = 3,\n NokumoPay = 4\n}\n\nexport enum TransactiontypeEnum {\n Deposit = 1,\n Withdrawal = 2\n}\n\nexport enum InvoiceStatusEnum {\n NotInvoiced = 1,\n FullyInvoiced = 2,\n PartiallyInvoiced = 3,\n OverInvoiced = 4,\n Undeterminable = 5,\n ManuallyOverriden = 6\n}\n\nexport enum EVisitorIntegrationEnum {\n None = 0,\n HR = 1,\n SL = 2\n}\n\nexport enum EVisitorIntegrationNameEnum {\n None = \"None\",\n HR = \"eVisitor\",\n SL = \"eTurizem\"\n}","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplatesTable.vue?vue&type=style&index=0&id=47cfb5f6&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentModalForm.vue?vue&type=style&index=0&id=00d73475&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-alert',{attrs:{\"outlined\":\"\",\"text\":\"\",\"type\":_vm.type}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class FormDescription extends Vue {\n @Prop({ default: 'info' }) type!: string;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDescription.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormDescription.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormDescription.vue?vue&type=template&id=474c003d&\"\nimport script from \"./FormDescription.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormDescription.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\ninstallComponents(component, {VAlert})\n","import { JwtClaims } from \"@/store/modules/auth\";\nimport * as _ from \"lodash\";\n\nexport enum RolesEnum {\n SysAdmin = 1,\n TenantAdmin = 2,\n AccomodationUnitAdmin = 3,\n ReceptionistLevel2 = 4,\n MaintenanceTeamMember = 5,\n StatisticsAnalyst = 6,\n ExternalWebSiteAdmin = 7,\n PropertyOwnerLevel1 = 8,\n ReceptionistLevel1 = 10,\n PropertyOwnerLevel2 = 11,\n MaintenanceTeamLeader = 12,\n PropertyManagerLevel1 = 13,\n PropertyOwnerLevel3 = 14,\n PropertyOwnerLevel1a = 15,\n PropertyOwnerLevel3a = 16\n}\n\nexport function extractRoles(claims?: JwtClaims): RolesEnum[] {\n return (\n claims?.roles\n .split(\",\")\n .map((x: string) => +x)\n .filter((x) => _.isNumber(x)) ?? []\n );\n}\n\nexport function userHasAnyRole(roles: RolesEnum[]) {\n return function (claims?: JwtClaims) {\n return (\n !_.isUndefined(claims) &&\n (roles.length === 0 ||\n extractRoles(claims).some((myRole) => roles.some((r) => myRole === r)))\n );\n };\n}\n\nexport function userIsPartOfMaintenanceTeam() {\n const maintenanceTeamRoles = [RolesEnum.MaintenanceTeamMember, RolesEnum.MaintenanceTeamLeader];\n\n return function (claims?: JwtClaims) {\n return (\n !_.isUndefined(claims) &&\n extractRoles(claims).some((myRole) => maintenanceTeamRoles.some((r) => myRole === r))\n );\n }\n}\n\nexport function userCanCreateFinancialDocuments() {\n return function(claims?: JwtClaims){\n return !_.isUndefined(claims) && policyChecker(\"READ_FINANCIAL_DOCUMENTS\")(claims);\n }\n}\n\nexport function policyChecker(policy: string): (claims?: JwtClaims) => boolean {\n switch (policy) {\n case \"REQUIRE_SYS_ADMIN\":\n return userHasAnyRole([RolesEnum.SysAdmin]);\n case \"REQUIRE_TENANT_ADMIN_OR_HIGHER\":\n return userHasAnyRole([RolesEnum.SysAdmin, RolesEnum.TenantAdmin]);\n case \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n ]);\n case \"READ_REPORTS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"READ_RESERVATIONS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"EXPORT_RESERVATIONS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n\n case \"RESERVATION_GUEST_REMARKS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n ]);\n case \"RESERVATION_REMARKS_FOR_OWNER\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.PropertyOwnerLevel2,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"RESERVATION_PROPERTY_STAFF_REMARKS\":\n case \"RESERVATION_MAINTENANCE_STAFF_REMARKS\":\n case \"RESERVATION_UNIT_MAINTENANCE_STAFF_REMARKS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyManagerLevel1\n ]);\n\n case \"READ_CALENDAR\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"READ_CALENDAR_RATEPLANS\":\n case \"READ_PAYMENTS\":\n case \"READ_FINANCIAL_DOCUMENTS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n ]);\n case \"READ_CUSTOMERS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"READ_CUSTOMERS_GRID\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n ]);\n case \"READ_CUSTOMER_EMAIL\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n ]);\n case \"MODIFY_RESERVATIONS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"READ_EVISITOR\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1\n ]);\n\n case \"READ_MESSAGES\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel1a,\n ]);\n case \"MODIFY_CALENDAR\":\n case \"MODIFY_CALENDAR_PRICES\":\n case \"MODIFY_RESERVATION_PRICES\":\n case \"MODIFY_RESERVATION_ADDONS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n ]);\n case \"MODIFY_CALENDAR_AVAILABILITY\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n ]);\n case \"READ_DISTRIBUTION_AND_SALES_CHANNEL\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1\n ]);\n case \"SHOW_TAKEN_UNITS_ROLES\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"ARRIVALS_KPI\":\n case \"DEPARTURES_KPI\":\n case \"CURRENT_STAYS_KPI\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel2,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"RESERVATIONS_KPI\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel2,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"OCCUPANCY_KPI\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.ReceptionistLevel1\n ]);\n case \"OPTIONS_KPI\":\n case \"OVERBOOKING_KPI\":\n case \"TRANSFERS_KPI\":\n case \"PREPAYMENTS_KPI\":\n case \"BIRTHDAYS_KPI\":\n case \"EVISITOR_KPI\":\n case \"INVOICES_KPI\":\n case \"KPI_EXPORT\":\n case \"BILLING_STATUS_KPI\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1\n ]);\n case \"ACTUAL_PRICES\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.ReceptionistLevel1,\n ]);\n case \"MODIFIED_PRICES\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.PropertyOwnerLevel2,\n ]);\n case \"INPUT_PRICES\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a,\n RolesEnum.PropertyOwnerLevel1a,\n ]);\n case \"MAINTENANCE_KPI\":\n return userHasAnyRole([\n RolesEnum.MaintenanceTeamMember,\n RolesEnum.MaintenanceTeamLeader\n ]);\n case \"GRID_TELEPHONE_NUMBER\":\n return userHasAnyRole([\n RolesEnum.PropertyManagerLevel1\n ]);\n case \"MODIFY_DISTRIBUTION_CHANNEL\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1\n ]);\n case \"READ_PAYMENT_MEANS\":\n case \"READ_RESERVATION_STATUS\":\n case \"GLOBAL_AVAILABILITY_SEARCH\":\n case \"GUEST_HISTORY\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1\n ]);\n case \"EDIT_RESERVATION_HOLDER_EMAIL\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"UNIT_STATUS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel2,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel1a,\n ]);\n case \"READ_MEALS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyOwnerLevel2,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel1a\n ]);\n case \"OWNER_LEVEL_3\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n case \"OWNER_LEVEL_1\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.PropertyOwnerLevel1a\n ]);\n case \"DASHBOARD_FILTER_OWNERS_RESERVATIONS\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.StatisticsAnalyst,\n RolesEnum.ExternalWebSiteAdmin,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyManagerLevel1,\n ]);\n case \"READ_CUSTOMER_TELEPHONE_NUMBER\":\n return userHasAnyRole([\n RolesEnum.SysAdmin,\n RolesEnum.TenantAdmin,\n RolesEnum.AccomodationUnitAdmin,\n RolesEnum.ReceptionistLevel2,\n RolesEnum.ReceptionistLevel1,\n RolesEnum.PropertyManagerLevel1,\n RolesEnum.PropertyOwnerLevel3,\n ]);\n case \"IS_OWNER_ROLE\":\n return userHasAnyRole([\n RolesEnum.PropertyOwnerLevel1,\n RolesEnum.PropertyOwnerLevel1a,\n RolesEnum.PropertyOwnerLevel2,\n RolesEnum.PropertyOwnerLevel3,\n RolesEnum.PropertyOwnerLevel3a\n ]);\n default:\n return () => false;\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableCellUnitTypeDisplay.vue?vue&type=style&index=0&id=3759947c&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"placeholder\":_vm.placeholder,\"label\":_vm.label,\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails,\"rules\":_vm.rules,\"disabled\":_vm.disabled},on:{\"input\":_vm.valueChanged,\"blur\":_vm.onBlur,\"keypress\":_vm.handleKeypress,\"update:error\":function($event){return _vm.$emit('update:error', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_vm._t(\"append\")]},proxy:true}],null,true),model:{value:(_vm.internalModel),callback:function ($$v) {_vm.internalModel=$$v},expression:\"internalModel\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DateTime } from \"luxon\";\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\n\nconst timeRegex =\n /^(?([0-9])|(0[0-9])|(1[0-9])|(2[0-3])):(?[0-5][0-9])?/;\n\n@Component\nexport default class TimeField extends Vue {\n @Prop() value?: string | null;\n\n @Prop() label?: string;\n @Prop({ default: true }) outlined?: boolean;\n @Prop() dense?: boolean;\n @Prop({ default: false }) hideDetails?: boolean;\n @Prop({ default: false }) disabled?: boolean;\n @Prop({ default: false }) applyFormatingOnLoad?: boolean;\n\n @Prop({ default: () => [] }) rules?: ((val: any) => string | boolean)[];\n\n get placeholder() {\n return DateTime.local().toISOTime().substring(0, 5);\n }\n\n internalModel = \"\";\n\n @Watch(\"value\", { immediate: true })\n inputValueChanged(fresh: string | null | undefined) {\n if (fresh && fresh !== this.format(this.internalModel)) {\n if (this.applyFormatingOnLoad){\n this.internalModel = this.format(fresh) ?? \"\";\n }\n else{\n this.internalModel = fresh;\n }\n }\n else if (!fresh){\n this.internalModel = \"\";\n }\n }\n\n handleKeypress(e: KeyboardEvent) {\n if (/\\d/.test(e.key)) return;\n if (e.key === \":\" && !this.internalModel.endsWith(\":\")) return;\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n valueChanged() {\n const formatted = this.format(this.internalModel);\n\n if (!formatted && this.internalModel.length === 2) {\n if (Number.parseInt(this.internalModel) > 23) {\n const maxHours = 23;\n this.internalModel = maxHours.toString();\n }\n\n this.internalModel += \":\";\n }\n\n if (this.internalModel && this.internalModel.endsWith(\"::\")) {\n this.internalModel = this.internalModel.slice(\n 0,\n this.internalModel.length - 1\n );\n }\n\n if (this.internalModel.length === 1) {\n const minHour = 2;\n if (Number.parseInt(this.internalModel).toString().charAt(0) > minHour.toString()) {\n this.internalModel = '0' + this.internalModel\n this.valueChanged()\n }\n }\n\n this.$emit(\"input\", formatted);\n }\n\n onBlur() {\n this.internalModel = this.format(this.internalModel) ?? \"\";\n }\n\n format(s: string) {\n const match = timeRegex.exec(s);\n\n if (match) {\n let [hours, minutes] = [0, 0];\n\n hours = +(match.groups?.h ?? 0);\n minutes = +(match.groups?.m ?? 0);\n\n const zeroDigit = match.groups?.m;\n if (zeroDigit) {\n if (hours || minutes) {\n // prettier-ignore\n\n let newMinutes;\n\n if (zeroDigit?.charAt(0) === \"0\") {\n newMinutes = \"0\" + minutes.toString();\n } else {\n newMinutes = minutes;\n }\n\n if (Number.parseInt(zeroDigit?.charAt(0)) > 5) {\n newMinutes = \"59\";\n }\n\n const value = `${hours < 10 ? \"0\" : \"\"}${hours}:${newMinutes}`;\n return value;\n } else if (hours === 0 && minutes === 0) {\n return \"00:00\";\n }\n }\n }\n\n return null;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeField.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeField.vue?vue&type=template&id=46293f86&scoped=true&\"\nimport script from \"./TimeField.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeField.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 \"46293f86\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{staticStyle:{\"overflow-y\":\"hidden\"},attrs:{\"max-width\":\"1600\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',[_c('v-card',[_c('v-card-title',{staticClass:\"filter-title\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( !_vm.cancellation ? \"ReservationUnpaidPrepayments.Choose\" : \"ReservationPaidPrepayments.Choose\" ))+\" \")]),_c('v-spacer'),_c('div',[_c('v-icon',{attrs:{\"size\":\"24\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"fas fa-times\")])],1)],1),_c('v-data-table',{attrs:{\"headers\":_vm.translatedHeaders,\"fixed-header\":\"\",\"show-select\":\"\",\"disable-filtering\":\"\",\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"items\":_vm.prepayments,\"item-key\":\"id\"},scopedSlots:_vm._u([{key:\"item.bookingDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.$d(_vm.date(item.bookingDate)))+\" \")]}},{key:\"item.arrivalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(new Date(item.arrivalDate).getDate() == new Date(item.departureDate).getDate() ? _vm.$d(new Date(item.arrivalDate)) : _vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]}},{key:\"item.reservationId\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.reservationId)+\" \")]}},{key:\"item.accUnitType\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.unitTypeName)+\", \"+_vm._s(item.unitName)+\" \")]}},{key:\"item.distributionChannel\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.distributionChannel))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.otaReservationId))])]}},{key:\"item.prepaymentDueDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.date)))+\" \")]}},{key:\"item.prepaymentAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.$n(item.amount, { maximumFractionDigits: \"2\", minimumFractionDigits: \"2\", style: \"currency\", currency: _vm.getCurrencyCode(item.currencyId), currencyDisplay: \"code\", }))+\" \")]}}]),model:{value:(_vm.selectedPrepayments),callback:function ($$v) {_vm.selectedPrepayments=$$v},expression:\"selectedPrepayments\"}}),_c('v-card-actions',{staticClass:\"mt-5\"},[_c('v-btn',{attrs:{\"disabled\":_vm.loading || _vm.selectedPrepayments.length == 0,\"loading\":_vm.loading,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.setPrepaymentsStatus(false)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),(_vm.fromDashboard)?_c('v-btn',{attrs:{\"loading\":_vm.loading,\"disabled\":_vm.loading || _vm.selectedPrepayments.length == 0,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.setPrepaymentsStatus(true)}}},[_vm._v(_vm._s(_vm.$t(\"Save and create down payment\")))]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { Prepayment } from \"@/shared/models/prepayment\";\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\n\n@Component({\n components: {},\n})\nexport default class FinDocPrepaymentsModal extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() prepayments?: Prepayment[];\n @Prop({ default: false }) cancellation?: boolean; // storno fin docs\n @Prop({ default: false }) fromPaymentTable?: boolean;\n @Prop({ default: false }) fromDashboard?: boolean;\n @Prop() reservationId?: boolean;\n @Prop({ default: false }) selectAll?: boolean;\n\n @Prop({ default: true }) autoClose?: boolean;\n\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n selectedPrepayments: Prepayment[] = [];\n loading = false;\n\n headers = [\n {\n text: \"Booking date\",\n value: \"bookingDate\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Period\",\n value: \"arrivalDate\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Reservation holder name\",\n value: \"reservationHolderName\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Dashboard.ReservationId\",\n value: \"reservationId\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Dashboard.PrepaymentResAccUnitTypes\",\n value: \"accUnitType\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Sales channel\",\n value: \"distributionChannel\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Dashboard.PrepaymentDueDate\",\n value: \"prepaymentDueDate\",\n active: true,\n default: false,\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Dashboard.PrepaymentAmount\",\n value: \"prepaymentAmount\",\n active: true,\n default: false,\n sortable: false,\n class: \"prepayment-amount\",\n exportHeaders: [],\n },\n ];\n\n getCurrencyCode(currencyId: number) {\n return this.currencies?.find((x) => x.id == currencyId)?.isoCode;\n }\n\n @Watch(\"internalOpen\")\n watchOpen(fresh: boolean) {\n if (fresh) {\n this.selectedPrepayments = [];\n if (this.selectAll && this.prepayments) {\n for (const item of this.prepayments) {\n this.selectedPrepayments.push(item);\n }\n }\n }\n if (!fresh) {\n this.loading = false;\n }\n }\n\n date(value: string) {\n return new Date(value);\n }\n\n get translatedHeaders() {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n async setPrepaymentsStatus(createDownPayment = false) {\n this.loading = true;\n await this.axios\n .post(\"financialDocuments/SetPrepaymentsStatus\", {\n prepaymentIds: this.selectedPrepayments.map((x) => x.id).join(\",\"),\n isPaid: !this.cancellation,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n !this.cancellation\n ? \"PrepaymentMarkAsPaid.Success\"\n : \"PrepaymentMarkAsUnpaid.Success\"\n ),\n timeout: 5000,\n localize: true,\n });\n })\n .finally(() => {\n this.$emit(\"saved\");\n\n if (this.fromPaymentTable) {\n this.$emit(\"createOrUpdate\");\n }\n\n if (this.fromDashboard && createDownPayment) {\n this.$emit(\n \"createDownPayment\",\n this.selectedPrepayments.map((x) => x.id)\n );\n }\n\n this.$emit(\"loadPrepayments\");\n\n if (this.autoClose && !createDownPayment) {\n this.loading = false;\n this.close();\n }\n });\n }\n\n close() {\n this.internalOpen = false;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinDocPrepaymentsModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinDocPrepaymentsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinDocPrepaymentsModal.vue?vue&type=template&id=d409b4c8&scoped=true&\"\nimport script from \"./FinDocPrepaymentsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinDocPrepaymentsModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FinDocPrepaymentsModal.vue?vue&type=style&index=0&id=d409b4c8&scoped=true&lang=scss&\"\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 \"d409b4c8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardTitle,VDataTable,VDialog,VForm,VIcon,VSpacer})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationModal.vue?vue&type=style&index=0&id=6aa1adbe&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"global-properties customer-form-white\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialCustomer,\"watched\":_vm.customer,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"customer-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"customer-form-title\"},[_vm._v(_vm._s(_vm.$t((\"Customer.\" + (!!_vm.customer.id ? \"Editing\" : \"New\")))))])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-tabs',{staticClass:\"customer-form-tabs\",attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Basic information\")))]),_c('v-tab',{attrs:{\"disabled\":!_vm.customer.id}},[_vm._v(_vm._s(_vm.$t(\"Messages\")))])],1),_c('v-tabs-items',{staticClass:\"tab-items\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{staticClass:\"tab-item\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('Legal entity')},model:{value:(_vm.customer.isLegalEntity),callback:function ($$v) {_vm.$set(_vm.customer, \"isLegalEntity\", $$v)},expression:\"customer.isLegalEntity\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('CustomerForm.IsResident')},model:{value:(_vm.customer.isResident),callback:function ($$v) {_vm.$set(_vm.customer, \"isResident\", $$v)},expression:\"customer.isResident\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('PropertyOwner.OwnerPaysVAT')},model:{value:(_vm.customer.ownerPaysVAT),callback:function ($$v) {_vm.$set(_vm.customer, \"ownerPaysVAT\", $$v)},expression:\"customer.ownerPaysVAT\"}})],1)],1),(!_vm.customer.isLegalEntity)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('First name') + '*',\"rules\":(_vm.rules.Required || []).concat( (_vm.rules.Name || []))},model:{value:(_vm.customer.firstName),callback:function ($$v) {_vm.$set(_vm.customer, \"firstName\", $$v)},expression:\"customer.firstName\"}}):_vm._e()],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Middle name'),\"rules\":[].concat( (_vm.rules.Name || []) )},model:{value:(_vm.customer.middleName),callback:function ($$v) {_vm.$set(_vm.customer, \"middleName\", $$v)},expression:\"customer.middleName\"}}):_vm._e()],1)],1):_vm._e(),(!_vm.customer.isLegalEntity)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Last name') + '*',\"rules\":(_vm.rules.Required || []).concat( (_vm.rules.Name || []))},model:{value:(_vm.customer.lastName),callback:function ($$v) {_vm.$set(_vm.customer, \"lastName\", $$v)},expression:\"customer.lastName\"}}):_vm._e()],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[(!_vm.customer.isLegalEntity)?_c('v-radio-group',{attrs:{\"row\":\"\",\"rules\":_vm.rules.Required},model:{value:(_vm.customer.genderId),callback:function ($$v) {_vm.$set(_vm.customer, \"genderId\", $$v)},expression:\"customer.genderId\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('Male'),\"value\":1}}),_c('v-radio',{attrs:{\"label\":_vm.$t('Female'),\"value\":2}}),_c('v-radio',{attrs:{\"label\":_vm.$t('Unknown'),\"value\":3}})],1):_vm._e()],1)],1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Legal entity name') + '*',\"rules\":(_vm.rules.Required || []).concat( (_vm.rules.LegalEntityName || []))},model:{value:(_vm.customer.legalEntityName),callback:function ($$v) {_vm.$set(_vm.customer, \"legalEntityName\", $$v)},expression:\"customer.legalEntityName\"}}):_vm._e()],1)],1),(_vm.customer.isLegalEntity)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.customer.isLegalEntity)?_c('v-text-field',{attrs:{\"label\":_vm.$t('Bussiness Id'),\"rules\":_vm.rules.BusinessId},model:{value:(_vm.customer.businessId),callback:function ($$v) {_vm.$set(_vm.customer, \"businessId\", $$v)},expression:\"customer.businessId\"}}):_vm._e()],1)],1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Email'),\"rules\":_vm.rules.Email},model:{value:(_vm.customer.eMail),callback:function ($$v) {_vm.$set(_vm.customer, \"eMail\", $$v)},expression:\"customer.eMail\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Telephone number'),\"rules\":_vm.rules.TelephoneNumber,\"placeholder\":\"+385 99 1111 222\"},model:{value:(_vm.customer.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"telephoneNumber\", $$v)},expression:\"customer.telephoneNumber\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"9\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Street name') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.StreetName || []))},model:{value:(_vm.customer.streetName),callback:function ($$v) {_vm.$set(_vm.customer, \"streetName\", $$v)},expression:\"customer.streetName\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"3\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('House number') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.HouseNumber || []))},model:{value:(_vm.customer.houseNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"houseNumber\", $$v)},expression:\"customer.houseNumber\"}})],1)],1)],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"5\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Postal code') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.PostalCode || []))},model:{value:(_vm.customer.postalCode),callback:function ($$v) {_vm.$set(_vm.customer, \"postalCode\", $$v)},expression:\"customer.postalCode\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"7\",\"cols\":\"12\"}},[(_vm.customer.countryOfResidenceId === 1)?_c('v-combobox',{attrs:{\"label\":_vm.$t('City') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.City || [])),\"items\":_vm.cities,\"loading\":_vm.isCitiesLoading,\"search-input\":_vm.customer.city,\"auto-select-first\":true,\"item-text\":\"name\",\"item-value\":\"name\",\"return-object\":false},on:{\"update:searchInput\":function($event){return _vm.$set(_vm.customer, \"city\", $event)},\"update:search-input\":function($event){return _vm.$set(_vm.customer, \"city\", $event)}},model:{value:(_vm.customer.city),callback:function ($$v) {_vm.$set(_vm.customer, \"city\", $$v)},expression:\"customer.city\"}}):_c('v-text-field',{attrs:{\"label\":_vm.$t('City') +\n (_vm.customer.isLegalEntity ? '*' : ''),\"rules\":(_vm.customer.isLegalEntity ? _vm.rules.Required : []).concat( (_vm.rules.City || []))},model:{value:(_vm.customer.city),callback:function ($$v) {_vm.$set(_vm.customer, \"city\", $$v)},expression:\"customer.city\"}})],1)],1)],1)],1),(!_vm.customer.isLegalEntity)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CustomerForm.IdDocumentNumber'),\"rules\":[].concat( (_vm.rules.IdentificationDocumentNumber || []) )},model:{value:(_vm.customer.identificationDocumentNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"identificationDocumentNumber\", $$v)},expression:\"customer.identificationDocumentNumber\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('CustomerForm.CountryOfResidence'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.customer.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.customer, \"countryOfResidenceId\", $$v)},expression:\"customer.countryOfResidenceId\"}})],1)],1):_vm._e(),(!_vm.customer.isLegalEntity)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Identification document type'),\"items\":_vm.identificationDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\"},model:{value:(_vm.customer.identificationDocumentTypeId),callback:function ($$v) {_vm.$set(_vm.customer, \"identificationDocumentTypeId\", $$v)},expression:\"customer.identificationDocumentTypeId\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of citizenship'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.customer.citizenshipId),callback:function ($$v) {_vm.$set(_vm.customer, \"citizenshipId\", $$v)},expression:\"customer.citizenshipId\"}})],1)],1):_vm._e(),(!_vm.customer.isLegalEntity)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Country of birth'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.customer.countryOfBirthId),callback:function ($$v) {_vm.$set(_vm.customer, \"countryOfBirthId\", $$v)},expression:\"customer.countryOfBirthId\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Date of birth'),\"max\":new Date().toISOString().substr(0, 10),\"activePicker\":'YEAR',\"editable\":true},model:{value:(_vm.customer.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.customer, \"dateOfBirth\", $$v)},expression:\"customer.dateOfBirth\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CustomerForm.BankAccount'),\"rules\":[].concat( (_vm.rules.BankAccountNumber || []) )},model:{value:(_vm.customer.bankAccountNumber),callback:function ($$v) {_vm.$set(_vm.customer, \"bankAccountNumber\", $$v)},expression:\"customer.bankAccountNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CustomerForm.VatId'),\"rules\":[].concat( (_vm.rules.VatId || []) )},model:{value:(_vm.customer.vatId),callback:function ($$v) {_vm.$set(_vm.customer, \"vatId\", $$v)},expression:\"customer.vatId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Customer.ExternalCustomerCode'),\"rules\":_vm.rules.ExternalCustomerCode},model:{value:(_vm.customer.externalCustomerCode),callback:function ($$v) {_vm.$set(_vm.customer, \"externalCustomerCode\", $$v)},expression:\"customer.externalCustomerCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Customer.PreferredLanguage'),\"items\":_vm.languages,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\"},model:{value:(_vm.customer.preferredLanguageId),callback:function ($$v) {_vm.$set(_vm.customer, \"preferredLanguageId\", $$v)},expression:\"customer.preferredLanguageId\"}})],1)],1),(_vm.customer.isLegalEntity)?_c('v-select',{attrs:{\"label\":_vm.$t('Country') + '*',\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\",\"rules\":_vm.rules.Required},model:{value:(_vm.customer.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.customer, \"countryOfResidenceId\", $$v)},expression:\"customer.countryOfResidenceId\"}}):_vm._e(),_c('v-textarea',{attrs:{\"label\":_vm.$t('Remarks'),\"rules\":_vm.rules.Remarks},model:{value:(_vm.customer.remarks),callback:function ($$v) {_vm.$set(_vm.customer, \"remarks\", $$v)},expression:\"customer.remarks\"}})],1),_c('v-tab-item',{staticClass:\"messages-tab\"},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.messagesDirection),callback:function ($$v) {_vm.messagesDirection=$$v},expression:\"messagesDirection\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.All\"))+\" \")]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.Inbound\"))+\" \")]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.Outbound\"))+\" \")])],1),(_vm.customer.id)?_c('MessagesTable',{attrs:{\"direction\":_vm.messagesDirection,\"customerId\":_vm.customer.id,\"tableName\":'customerMessages'}}):_vm._e()],1)],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\",\"color\":\"primary\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { CustomerModel } from \"../shared/models/vCustomer\";\nimport { Country } from \"../shared/models/country\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport _ from \"lodash\";\nimport brokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { AxiosResponse } from \"axios\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport MessagesTable from \"@/components/messages/MessagesTable.vue\";\nimport { City } from \"@/shared/models/city\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { LanguageView } from \"../shared/models/languages\";\n\n@Component({ components: { RightDrawer, DateField, MessagesTable } })\nexport default class CustomerForm extends Vue {\n @Prop({ default: null }) customerId!: number | null;\n @Prop({ default: false }) open!: boolean;\n @Prop({ default: undefined }) prefill?: CustomerModel;\n @Prop({ default: false }) isForOwner?: boolean;\n @Prop({ default: false }) isForPropertyManager?: boolean;\n\n fkey = 0;\n tab = 0;\n messagesDirection = 0;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n }\n\n if (fresh && this.customerId) {\n await this.loadCustomer();\n this.initialCustomer = new CustomerModel();\n } else {\n this.customer = new CustomerModel();\n\n if (this.prefill) {\n this.customer = {\n ...this.customer,\n ...this.prefill,\n };\n }\n\n this.initialCustomer = _.cloneDeep(this.customer);\n }\n\n if (!fresh) {\n this.tab = 0;\n }\n }\n\n @Action(\"codebooks/refreshIdentificationDocumentTypes\")\n refreshIdentificationDocumentTypes?: () => Promise;\n @Getter(\"codebooks/identificationDocumentTypes\")\n identificationDocumentTypes?: IdentificationDocumentType[];\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"codebooks/countries\") _countries?: Country[];\n @Getter(\"codebooks/languages\") _languages?: LanguageView[];\n get countries() {\n if (!this._countries) {\n return [];\n }\n\n return this._countries;\n }\n\n get languages(){\n if(!this._languages){\n return [];\n }\n return this._languages;\n }\n\n loading = false;\n saving = false;\n\n initialCustomer: CustomerModel = new CustomerModel();\n customer: CustomerModel = new CustomerModel();\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading && !this.saving;\n }\n\n rules = {};\n\n mounted() {\n this.setUpRules();\n if (!this.countries || this.countries.length == 0) {\n this.$store.dispatch(\"codebooks/refreshCountries\");\n }\n if (\n !this.identificationDocumentTypes ||\n this.identificationDocumentTypes.length == 0\n ) {\n this.refreshIdentificationDocumentTypes?.();\n }\n if(!this.languages || this.languages.length == 0){\n this.$store.dispatch(\"codebooks/refreshLanguages\");\n }\n }\n\n setUpRules() {\n this.rules = {\n Required: [(value: any) => !!value || this.$t(\"Validation.Required\")],\n Name: [\n (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n ],\n LegalEntityName: [\n (value: string) =>\n !value ||\n value.length <= 200 ||\n this.$t(\"Validation.MaxLength\", { count: 200 }),\n ],\n BusinessId: [\n (value: string) =>\n !value ||\n value.length <= 20 ||\n this.$t(\"Validation.MaxLength\", { count: 20 }),\n ],\n Email: [\n (value: string) =>\n !value ||\n value.length <= 100 ||\n this.$t(\"Validation.MaxLength\", { count: 100 }),\n (value: string) =>\n !value ||\n /^$|.+@.+\\..+/.test(value) ||\n this.$t(\"Validation.EmailFormat\"),\n ],\n TelephoneNumber: [\n (value: string) =>\n !value ||\n value.length <= 100 ||\n this.$t(\"Validation.MaxLength\", { count: 100 }),\n ],\n StreetName: [\n (value: string) =>\n !value ||\n value.length <= 100 ||\n this.$t(\"Validation.MaxLength\", { count: 100 }),\n ],\n HouseNumber: [\n (value: string) =>\n !value ||\n value.length <= 10 ||\n this.$t(\"Validation.MaxLength\", { count: 10 }),\n ],\n PostalCode: [\n (value: string) =>\n !value ||\n value.length <= 10 ||\n this.$t(\"Validation.MaxLength\", { count: 10 }),\n ],\n City: [\n (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n ],\n IdentificationDocumentNumber: [\n (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n ],\n Remarks: [\n (value: string) =>\n !value ||\n value.length <= 500 ||\n this.$t(\"Validation.MaxLength\", { count: 500 }),\n ],\n ExternalCustomerCode: [\n (value: string) =>\n !value ||\n value.length <= 20 ||\n this.$t(\"Validation.MaxLength\", { count: 20 }),\n ],\n BankAccountNumber: [\n (value: string) => \n !value ||\n value.length <= 36 ||\n this.$t(\"Validation.MaxLength\", { count: 36 })\n ],\n VatId: [\n (value: string) => \n !value ||\n value.length <= 36 ||\n this.$t(\"Validation.MaxLength\", { count: 36 })\n ]\n };\n }\n\n loadCustomer() {\n this.loading = true;\n Vue.axios.get(\"/customers/\" + this.customerId).then((res) => {\n this.customer = res.data;\n\n if (res.data.dateOfBirth) {\n let value = new Date(res.data.dateOfBirth);\n value = new Date(\n Date.UTC(value.getFullYear(), value.getMonth(), value.getDate())\n );\n this.customer.dateOfBirth = value.toISOString().substring(0, 10);\n }\n\n this.initialCustomer = _.cloneDeep(this.customer);\n\n this.loading = false;\n });\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n submit() {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n this.customer.isForOwner = this.isForOwner ?? false; \n this.customer.isForPropertyManager = this.isForPropertyManager ?? false; \n this.submitToServer({ ...this.customer }, []);\n }\n\n submitToServer(customer: CustomerModel, overrides: string[]) {\n const handleCodes = [\n \"Customer.BusinessIdNotUniqueInCountry\",\n \"Customer.IdentificationDocumentNotUniqueInCountry\",\n \"Customer.EmailNotUnique\",\n ];\n const adapter = brokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const confirmOverrideNotification = (\n x: AxiosResponse & { handled: string[] }\n ) =>\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submitToServer(customer, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n\n const handleSuccess =\n (messageTextResource: string, mode: \"post\" | \"put\") => (res: any) => {\n this.customer =\n mode === \"post\" ? { ...customer, id: res.data } : customer;\n this.initialCustomer = _.cloneDeep(this.customer);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Customer.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.$emit(\"update:open\", false);\n this.$emit(\"saved\", this.customer);\n };\n\n const isOverriding = overrides.length !== 0;\n\n const mode: \"post\" | \"put\" =\n customer.id && customer.id !== 0 ? \"put\" : \"post\";\n this.saving = true;\n return Vue.axios[mode](\n `/customers`,\n { ...customer, overrideRules: overrides },\n isOverriding ? undefined : { adapter }\n )\n .then(handleSuccess(\"Customer.SaveSuccess\", mode))\n .finally(() => {\n this.saving = false;\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n });\n }\n\n formatDate(date: string | Date) {\n if (!date) return null;\n return this.$d(new Date(date));\n }\n parseDate(date: string) {\n if (!date) return null;\n\n const [month, day, year] = date.split(\"/\");\n return `${year}-${month.padStart(2, \"0\")}-${day.padStart(2, \"0\")}`;\n }\n get dateOfBirth() {\n if (this.customer.dateOfBirth) {\n return this.$d(new Date(this.customer.dateOfBirth));\n }\n\n return \"\";\n }\n isCitiesLoading = false;\n citiesSearch = \"\" as string | null | undefined;\n cities = [] as City[];\n @Watch(\"customer.city\")\n citiesSearchChanged(\n fresh: string | null | undefined,\n old: string | null | undefined\n ) {\n if (!fresh || fresh === \"\" || fresh === old) return;\n\n this.debouncedCitySearch(fresh);\n }\n\n debouncedCitySearch = _.debounce(this.loadCities, 500);\n async loadCities(search: string | null | undefined): Promise {\n this.isCitiesLoading = true;\n\n this.citiesSearch = search;\n\n return this.axios\n .get>(\"/codebooks/cities\", {\n params: {\n name: this.citiesSearch,\n $top: 50,\n $skip: 0,\n $orderBy: \"name asc\",\n },\n })\n .then(({ data }) => {\n this.cities = data.result;\n return this.cities;\n })\n .finally(() => {\n this.isCitiesLoading = false;\n });\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerForm.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomerForm.vue?vue&type=template&id=6a194c9d&scoped=true&\"\nimport script from \"./CustomerForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomerForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CustomerForm.vue?vue&type=style&index=0&id=6a194c9d&scoped=true&lang=scss&\"\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 \"6a194c9d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VCombobox,VForm,VProgressLinear,VRadio,VRadioGroup,VRow,VSelect,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTextarea,VToolbar})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeferredAutocompleteWrapper.vue?vue&type=style&index=0&id=ff0d6682&scoped=true&lang=css&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABxklEQVRYw+3Wz0uTARjA8dfO3ezgP5BsmNChFHZpEkqRGupgYCBOE9HF68z8FTLSuVW+U/DHQQQPYoowL3Xx4E2NDgZ5qJVDgsof2/J9977qFq43v/0N7+jVDu8D3+vDB57LIwDCRSZYAAvwXwC+FhRwEVmAnADbVwuJ2ey8KS5n41YFkldkxXGP2cJKYja7+QB/n0h9dx/+K3cR79TQvFTLw6c1NNW76OrtNx8w4Wqg6NU6ndce8MTZRP9QJz0tDYR63IR6B80HRIuvs9wdYKuti+1Wkc8uN7FHPj51+Hjb7ssNgIH5vbPDbmkp+tYHSMZRqu7DaZbM6xW+lVdgcIwDstEoJ8/8qNIIiiRxODBAajSM+vI5x8MB8wF6IoEuyyS9Xvbr6tBlmV2nE3k4iK4o5gP+aBpxjwd1epqj+XnijY0cRyKkxsZIiqL5gLNEnL2bNzhaWCS9usr3khJ+bW6SGh/n4HbZOZwgnUZXVeT2NvarqznLZPjhcKC+CJHVtNwAgj2MkR53LKCNhlGCQdSpKZRAAG1yErdnztCenAGXbCNMDEX4ufaO95fzkT9+we+dIc8mnQ/gX2UBLID1FVsACwAIfwF3F8L9hNd+TwAAAABJRU5ErkJggg==\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineItems.vue?vue&type=style&index=0&id=77de9706&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModalMobile.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormStayPeriod.vue?vue&type=style&index=0&id=95ff6986&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeferredAutocomplete.vue?vue&type=style&index=0&id=4cd15611&scoped=true&lang=css&\"","import Vue from \"vue\";\nimport Sortable from \"sortablejs\";\nimport { DataTableHeader } from 'vuetify';\n\nexport type SortableTableHeader = DataTableHeader & {\n active: boolean;\n default: boolean;\n exportHeaders: string[];\n};\n\nfunction watchClass(targetNode: any, classToWatch: any) {\n let lastClassState = targetNode.classList.contains(classToWatch);\n const observer = new MutationObserver((mutationsList) => {\n for (let i = 0; i < mutationsList.length; i++) {\n const mutation = mutationsList[i];\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"class\"\n ) {\n const currentClassState = (mutation.target as Element).classList.contains(\n classToWatch\n );\n if (lastClassState !== currentClassState) {\n lastClassState = currentClassState;\n if (!currentClassState) {\n (mutation.target as Element).classList.add(\"sortHandle\");\n }\n }\n }\n }\n });\n observer.observe(targetNode, { attributes: true });\n}\n\nconst directive = Vue.directive(\"sortable-table\", {\n inserted: (el, binding) => {\n el.querySelectorAll(\"th\").forEach((draggableEl) => {\n // Need a class watcher because sorting v-data-table rows asc/desc removes the sortHandle class\n watchClass(draggableEl, \"sortHandle\");\n draggableEl.classList.add(\"sortHandle\");\n });\n\n const tr = el.querySelector(\"tr\");\n\n if (tr) {\n Sortable.create(tr, binding.value ? { ...binding.value } : { });\n }\n },\n});\n\nexport default directive;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTableMobile.vue?vue&type=style&index=0&id=30262ee2&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"finances\"},[_c('SortableHeadersTable',{staticClass:\"table\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":'finances_' + _vm.type,\"header-props\":{ 'sort-icon': 'fas fa-chevron-up' }},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick,\"menu:excel\":_vm.exportToExcel},scopedSlots:_vm._u([{key:\"header.issueDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.issueDatePeriod),callback:function ($$v) {_vm.issueDatePeriod=$$v},expression:\"issueDatePeriod\"}})]}},{key:\"item.issueDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.issueDate))))])]}},{key:\"header.dueDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.dueDatePeriod),callback:function ($$v) {_vm.dueDatePeriod=$$v},expression:\"dueDatePeriod\"}})]}},{key:\"item.dueDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.dueDate))))])]}},{key:\"header.status\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.financialDocumentStatuses,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\",\"multiple\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.statusIds),callback:function ($$v) {_vm.statusIds=$$v},expression:\"statusIds\"}})]}},{key:\"item.status\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.statusTextResourceKey))+\" \")])]}},{key:\"header.documentType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.allowedFinancialDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\",\"multiple\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.documentTypeIds),callback:function ($$v) {_vm.documentTypeIds=$$v},expression:\"documentTypeIds\"}})]}},{key:\"item.documentType\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.documentTypeTextResourceKey))+\" \")])]}},{key:\"header.customerName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.customerName),callback:function ($$v) {_vm.$set(_vm.filters, \"customerName\", $$v)},expression:\"filters.customerName\"}})]}},{key:\"item.isFiscalized\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isFiscalized,\"disabled\":\"\"}})]}},{key:\"header.referenceDocument\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.referenceDocument),callback:function ($$v) {_vm.$set(_vm.filters, \"referenceDocument\", $$v)},expression:\"filters.referenceDocument\"}})]}},{key:\"header.referenceDocumentInternalIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.referenceDocumentInternalIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"referenceDocumentInternalIdentifier\", $$v)},expression:\"filters.referenceDocumentInternalIdentifier\"}})]}},{key:\"header.documentNumberComplete\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.documentNumberComplete),callback:function ($$v) {_vm.$set(_vm.filters, \"documentNumberComplete\", $$v)},expression:\"filters.documentNumberComplete\"}})]}},{key:\"header.documentIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.documentIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"documentIdentifier\", $$v)},expression:\"filters.documentIdentifier\"}})]}},{key:\"header.documentInternalIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.documentInternalIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"documentInternalIdentifier\", $$v)},expression:\"filters.documentInternalIdentifier\"}})]}},{key:\"item.totalDueAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n( _vm.valueIsEffectively0(item.totalDueAmount) ? 0 : item.totalDueAmount, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", } ))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n( _vm.valueIsEffectively0(item.totalDueAmountAltCurrency) ? 0 : item.totalDueAmountAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", } ))+\" \")]):_vm._e()]}},{key:\"item.totalWithVat\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithVat, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithVatAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"item.vat\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.vat, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.vatAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"item.totalWithoutVat\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithoutVat, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithoutVatAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"header.propertyName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.propertyName),callback:function ($$v) {_vm.$set(_vm.filters, \"propertyName\", $$v)},expression:\"filters.propertyName\"}})]}},{key:\"item.propertyName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.propertyName))]),(_vm.type === 'page')?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(item.reservationId)+\" \")]):_vm._e()]}},{key:\"header.paymentMeans\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.paymentMeans,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\",\"multiple\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.paymentMeansIds),callback:function ($$v) {_vm.paymentMeansIds=$$v},expression:\"paymentMeansIds\"}})]}},{key:\"item.paymentMeans\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.paymentMeansTextResourceKey))+\" \")])]}},{key:\"header.cardType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.cardTypes,\"item-text\":\"name\",\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.cardTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"cardTypeId\", $$v)},expression:\"filters.cardTypeId\"}})]}},(_vm.cashRegisterFeature)?{key:\"header.cashRegister\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"multiple\":\"\",\"items\":_vm.allCashRegistersSorted,\"item-text\":\"name\",\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar active = ref.active;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.name)+\" \"),(!item.status)?_c('span',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(\"\\xa0\" + \"[\" + _vm.$t(\"Deleted\") + \"]\")+\" \")]):_vm._e()])],1)]}}],null,true)},'v-list-item',attrs,false),on))]}}],null,true),model:{value:(_vm.cashRegisterIds),callback:function ($$v) {_vm.cashRegisterIds=$$v},expression:\"cashRegisterIds\"}})]}}:null,{key:\"item.cashRegister\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"word-break-all\"},[_vm._v(_vm._s(item.cashRegister))])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadPdfDocument(item)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-file-alt\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Download pdf\")))])],1)],1),(item.typeId !== 8 && item.typeId !== 9)?_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.edit(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1):_vm._e(),(item.fiscalizationFailed)?_c('v-list-item',{on:{\"click\":function($event){return _vm.fiscalize(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-file-certificate\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.Fiscalize\")))])],1)],1):_vm._e(),(\n _vm.type === 'reservationmodal' &&\n item.typeId !== 2 &&\n item.typeId !== 5 &&\n item.statusId !== 1\n )?_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.newPayment(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fas fa-money-bill-alt\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"VPayment.newPayment\")))])],1)],1):_vm._e(),(\n item.statusId !== 1 &&\n item.statusId !== 5 &&\n item.typeId !== 2 &&\n item.typeId !== 5 &&\n item.typeId !== 8 &&\n item.typeId !== 9\n )?_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.cancel(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fal fa-file-times\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Cancel financial document\")))])],1)],1):_vm._e(),(item.statusId === 1)?_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1):_vm._e(),(_vm.type === 'page' && item.reservationId)?_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('open-reservation', item.reservationId)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-concierge-bell\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Open reservation\")))])],1)],1):_vm._e()],1)],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fas fa-file-alt\"}})],1):_vm._e()]},proxy:true}],null,true)}),_c('div',{staticClass:\"buttons d-flex\"},[(_vm.type === 'page')?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-3\",attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.CreateDocument\"))+\" \")])]}}],null,false,3187569846)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.createNew(1)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Invoice\")))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.createNew(2)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Offer\")))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.createNew(3)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"DownPayment\")))])],1),(_vm.cashRegisterFeature)?_c('v-list-item',{on:{\"click\":function($event){return _vm.createNew(8)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"t.FinancialDocumentTypes.PaymentSlip.Deposit\")))])],1):_vm._e(),(_vm.cashRegisterFeature)?_c('v-list-item',{on:{\"click\":function($event){return _vm.createNew(9)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"t.FinancialDocumentTypes.PaymentSlip.Withdrawal\")))])],1):_vm._e()],1)],1):_vm._e(),(_vm.type === 'page')?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-3\",attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")])]}}],null,false,1629836369)},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.openErpExport}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Export for ERP\")))])],1),(_vm.tenantExportsSEPA)?_c('v-list-item',{on:{\"click\":function($event){return _vm.exportForSepa()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"GenerateSEPAOrders\")))])],1):_vm._e(),(_vm.showExportForInvoices)?_c('v-list-item',{on:{\"click\":function($event){_vm.invoiceExportOpen = true;\n _vm.skey++;}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"ExportFinancialDocuments\")))])],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){_vm.taxReportOpen = true}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"TaxRecapitulationReport\")))])],1)],1)],1):_vm._e(),(_vm.type === 'page' && !_vm.cashRegisterFeature)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openPaymentsReport()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Payment report\"))+\" \")]):_vm._e(),(_vm.type === 'page' && _vm.cashRegisterFeature)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-3\",attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"Reports\"))+\" \")])]}}],null,false,529029192)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.openPaymentsReport()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Payment report\")))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.openCashiersReportExport()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Cashiers report\")))])],1)],1)],1):_vm._e(),(_vm.type === 'page' && _vm.tenantIsAllowedToAsyncBulkGenerateInvoices)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openbulkInvoiceGenerationModal()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Bulk invoice generation\"))+\" \")]):_vm._e(),(_vm.type === 'reservationmodal')?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\",\"disabled\":_vm.chargeCancellationDisabled,\"loading\":_vm.chargeCancellationLoading},on:{\"click\":function($event){return _vm.$emit('chargeCancellation')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Charge cancelation\"))+\" \")]):_vm._e(),(_vm.type === 'reservationmodal' && _vm.reservationId && !_vm.isOwner)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\",\"disabled\":_vm.disableMarkAsManuallyOverriden,\"loading\":_vm.markAsOverridenLoading},on:{\"click\":function($event){return _vm.$emit('markAsManuallyOverriden')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Dashboard.ReservationsBillingStatus.MarkAsManuallyOverriden\"))+\" \")]):_vm._e(),(_vm.type === 'reservationmodal' && _vm.reservationId && _vm.hasCreditCard)?_c('CreditCardInfoModal',{attrs:{\"reservationId\":_vm.reservationId,\"buttonType\":\"button\"}}):_vm._e()],1),_c('v-dialog',{attrs:{\"max-width\":\"500\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.exportErpOpen),callback:function ($$v) {_vm.exportErpOpen=$$v},expression:\"exportErpOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"ErpExportPeriod\")))]),_c('v-card-text',[_c('DateField',{attrs:{\"label\":_vm.$t('Erp.Period'),\"clearable\":true,\"range\":true,\"max\":_vm.yesterday},model:{value:(_vm.exportErpDates),callback:function ($$v) {_vm.exportErpDates=$$v},expression:\"exportErpDates\"}}),_c('v-select',{attrs:{\"items\":_vm.filteredBusinessUnits,\"item-text\":\"name\",\"item-value\":\"id\",\"rules\":[_vm.rules.required],\"multiple\":\"\",\"label\":_vm.$t('Business unit') + '*'},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\n var index = ref.index;\nreturn [(index < 2)?_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(item.name))])]):_vm._e(),(index === 2)?_c('v-chip',{staticClass:\"mt-1 mb-1\"},[_c('span',[_vm._v(\" ... \")])]):_vm._e()]}},{key:\"prepend-item\",fn:function(){return [_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"click\":_vm.selectAllBusinessUnits}},[_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":_vm.checkedAllBusinessUnits ? 'blue lighten-4' : ''}},[_vm._v(\" \"+_vm._s(_vm.icon(_vm.checkedAllBusinessUnits, _vm.checkedSomeBusinessUnits))+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Select all\"))+\" \")])],1)],1)]},proxy:true}]),model:{value:(_vm.exportBusinessUnitIds),callback:function ($$v) {_vm.exportBusinessUnitIds=$$v},expression:\"exportBusinessUnitIds\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.erpExportDisabled || _vm.loading},on:{\"click\":function($event){return _vm.exportERP()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.exportErpOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.exportErpResultsOpen),callback:function ($$v) {_vm.exportErpResultsOpen=$$v},expression:\"exportErpResultsOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"ErpExportResults\")))]),_c('v-card-text',[(_vm.renderAsHtml)?_c('p',{staticClass:\"error_paragraph\",domProps:{\"innerHTML\":_vm._s(_vm.erpExportResults.message)}}):_vm._e(),(!_vm.renderAsHtml)?_c('v-textarea',{attrs:{\"value\":_vm.$t(_vm.erpExportResults.message),\"outlined\":true,\"dense\":true,\"error\":!_vm.erpExportResults.isSuccessful,\"success\":_vm.erpExportResults.isSuccessful}}):_vm._e()],1),_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){_vm.exportErpResultsOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.sepaExportErrorOpen),callback:function ($$v) {_vm.sepaExportErrorOpen=$$v},expression:\"sepaExportErrorOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"SepaExportError\")))]),_c('v-card-text',[_c('p',{staticClass:\"error_paragraph\",domProps:{\"innerHTML\":_vm._s(_vm.sepaExportMessage)}})]),_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){_vm.sepaExportErrorOpen = false;\n _vm.sepaExportMessage = '';}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":_vm.vDialogMaxWidth,\"scrollable\":\"\"},model:{value:(_vm.invoiceExportOpen),callback:function ($$v) {_vm.invoiceExportOpen=$$v},expression:\"invoiceExportOpen\"}},[_c('v-card',{key:_vm.fkey},[_c('v-card-title',[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":_vm.isTenantAgency ? 4 : 12}},[_vm._v(\" \"+_vm._s(_vm.$t(\"ExportFinancialDocuments\"))+\" \")]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"8\"}},[(_vm.isTenantAgency)?_c('v-checkbox',{staticClass:\"mt-0 ml-4\",attrs:{\"hide-details\":\"\",\"label\":_vm.$t('FinancialDocuments.FilterExportByOwner')},model:{value:(_vm.filterByOwner),callback:function ($$v) {_vm.filterByOwner=$$v},expression:\"filterByOwner\"}}):_vm._e()],1)],1)],1),_c('v-card-text',{staticClass:\"pt-0\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.isTenantAgency ? 4 : ''}},[_c('DateField',{attrs:{\"label\":_vm.$t('Erp.Period'),\"clearable\":true,\"range\":true,\"rules\":[_vm.rules.required],\"dense\":\"\"},model:{value:(_vm.exportPeriod),callback:function ($$v) {_vm.exportPeriod=$$v},expression:\"exportPeriod\"}}),_c('v-select',{attrs:{\"items\":_vm.invoiceExportDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"label\":_vm.$t('VFinancialDocument.documentType'),\"multiple\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\n var index = ref.index;\nreturn [(index < 2)?_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])]):_vm._e(),(index === 2)?_c('v-chip',{staticClass:\"mt-1 mb-1\"},[_c('span',[_vm._v(\" ... \")])]):_vm._e()]}},{key:\"prepend-item\",fn:function(){return [_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"click\":_vm.selectAllDocumentTypes}},[_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":_vm.checkedAllDocumentTypes ? 'blue lighten-4' : ''}},[_vm._v(\" \"+_vm._s(_vm.icon( _vm.checkedAllDocumentTypes, _vm.checkedSomeDocumentTypes ))+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Select all\"))+\" \")])],1)],1)]},proxy:true}]),model:{value:(_vm.documentTypeIdsForInvoiceExport),callback:function ($$v) {_vm.documentTypeIdsForInvoiceExport=$$v},expression:\"documentTypeIdsForInvoiceExport\"}}),_c('v-select',{attrs:{\"label\":_vm.$t('Property'),\"items\":_vm.propertiesForExport,\"item-text\":\"name\",\"item-value\":\"propertyId\",\"clearable\":\"\",\"multiple\":\"\",\"chips\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\n var index = ref.index;\nreturn [(index < 2)?_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(item.name))])]):_vm._e(),(index === 2)?_c('v-chip',{staticClass:\"mt-1 mb-1\"},[_c('span',[_vm._v(\" ... \")])]):_vm._e()]}},{key:\"prepend-item\",fn:function(){return [_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"click\":_vm.selectAllProperties}},[_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":_vm.checkedAllProperties ? 'blue lighten-4' : ''}},[_vm._v(\" \"+_vm._s(_vm.icon(_vm.checkedAllProperties, _vm.checkedSomeProperties))+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Select all\"))+\" \")])],1)],1)]},proxy:true}]),model:{value:(_vm.propertyIdsForExport),callback:function ($$v) {_vm.propertyIdsForExport=$$v},expression:\"propertyIdsForExport\"}}),_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans'),\"items\":_vm.paymentMeans,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\",\"multiple\":\"\",\"chips\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\n var index = ref.index;\nreturn [(index < 2)?_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])]):_vm._e(),(index === 2)?_c('v-chip',{staticClass:\"mt-1 mb-1\"},[_c('span',[_vm._v(\" ... \")])]):_vm._e()]}},{key:\"prepend-item\",fn:function(){return [_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"click\":_vm.selectAllPaymentMeans}},[_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":_vm.checkedAllPaymentMeans ? 'blue lighten-4' : ''}},[_vm._v(\" \"+_vm._s(_vm.icon(_vm.checkedAllPaymentMeans, _vm.checkedSomePaymentMeans))+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Select all\"))+\" \")])],1)],1)]},proxy:true}]),model:{value:(_vm.paymentMeansIdsForInvoiceExport),callback:function ($$v) {_vm.paymentMeansIdsForInvoiceExport=$$v},expression:\"paymentMeansIdsForInvoiceExport\"}}),_c('v-select',{staticClass:\"mt-4\",attrs:{\"items\":_vm.enumToArray(_vm.ExportDownloadTypeEnum),\"item-text\":function (x) { return _vm.$t('FinancialDocuments.ExportDownloadType.' + x.name); },\"item-value\":\"value\",\"label\":_vm.$t('FinancialDocuments.ExportDownloadType')},model:{value:(_vm.exportDownloadType),callback:function ($$v) {_vm.exportDownloadType=$$v},expression:\"exportDownloadType\"}})],1),(_vm.isTenantAgency)?_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',[_c('SelectedItemsTable',{key:_vm.skey,attrs:{\"selectedItems\":_vm.selectedOwners,\"ownerItems\":_vm.allOwners,\"forOwner\":true},on:{\"update:selectedItems\":function($event){_vm.selectedOwners=$event},\"update:selected-items\":function($event){_vm.selectedOwners=$event}}})],1)]):_vm._e()],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.exportInProgress,\"disabled\":_vm.disableInvoiceExport},on:{\"click\":_vm.exportInvoices}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.exportInProgress},on:{\"click\":function($event){_vm.invoiceExportOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"100%\",\"scrollable\":\"\",\"persistent\":\"\"},model:{value:(_vm.exportSepaOpen),callback:function ($$v) {_vm.exportSepaOpen=$$v},expression:\"exportSepaOpen\"}},[_c('v-card',{key:_vm.fkey},[_c('LoadingOverlay',{attrs:{\"loading\":_vm.selectedItemsTableLoading || _vm.exportInProgress}}),_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"GenerateSEPAOrders\")))]),_c('v-card-text',{staticClass:\"pt-0\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('DateField',{staticClass:\"mt-1\",attrs:{\"label\":_vm.$t('SepaExport.IssueDate'),\"clearable\":true,\"range\":true,\"dense\":\"\"},model:{value:(_vm.exportPeriodForSepa),callback:function ($$v) {_vm.exportPeriodForSepa=$$v},expression:\"exportPeriodForSepa\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-select',{staticClass:\"mt-1\",attrs:{\"items\":_vm.enumToArray(_vm.SEPAFilterEnum),\"outlined\":\"\",\"dense\":\"\",\"item-text\":function (x) { return _vm.$t('FinancialDocuments.SepaFilterType.' + x.name); },\"item-value\":\"value\",\"label\":_vm.$t('FinancialDocuments.SepaFilterType')},on:{\"change\":function($event){return _vm.loadForSepa()}},model:{value:(_vm.finDocFilterType),callback:function ($$v) {_vm.finDocFilterType=$$v},expression:\"finDocFilterType\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-select',{staticClass:\"mt-1\",attrs:{\"label\":_vm.$t('DistributionChannel'),\"items\":_vm.allowedDistributionChannelTypes,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},on:{\"click:clear\":function($event){_vm.otaOrSalesChannel = null}},model:{value:(_vm.distributionChannel),callback:function ($$v) {_vm.distributionChannel=$$v},expression:\"distributionChannel\"}})],1),_c('v-col',[(_vm.distributionChannel === 1 || _vm.distributionChannel === 10)?_c('v-select',{staticClass:\"mt-1\",attrs:{\"label\":_vm.$t('Sales channel'),\"items\":_vm.otas,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},model:{value:(_vm.otaOrSalesChannel),callback:function ($$v) {_vm.otaOrSalesChannel=$$v},expression:\"otaOrSalesChannel\"}}):_vm._e(),(_vm.distributionChannel === 7 || _vm.distributionChannel === 5)?_c('v-select',{staticClass:\"mt-1\",attrs:{\"label\":_vm.$t('Sales channel'),\"items\":_vm.salesChannels,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},model:{value:(_vm.otaOrSalesChannel),callback:function ($$v) {_vm.otaOrSalesChannel=$$v},expression:\"otaOrSalesChannel\"}}):_vm._e()],1)],1),_c('SelectedItemsTable',{key:_vm.skey,attrs:{\"selectedItems\":_vm.selectedFinDocsForSepa,\"finDocItems\":_vm.finDocsForSepa,\"forSepa\":true,\"tableLoading\":_vm.selectedItemsTableLoading},on:{\"update:selectedItems\":function($event){_vm.selectedFinDocsForSepa=$event},\"update:selected-items\":function($event){_vm.selectedFinDocsForSepa=$event},\"update:tableLoading\":function($event){_vm.selectedItemsTableLoading=$event},\"update:table-loading\":function($event){_vm.selectedItemsTableLoading=$event}}}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('DateField',{staticClass:\"mt-1\",attrs:{\"label\":_vm.$t('SEPA.PaymentDate') + '*',\"rules\":[_vm.rules.required],\"dense\":\"\"},on:{\"input\":_vm.fetchSEPAOrderNumber},model:{value:(_vm.paymentDate),callback:function ($$v) {_vm.paymentDate=$$v},expression:\"paymentDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{staticClass:\"mt-1\",attrs:{\"type\":\"number\",\"dense\":\"\",\"outlined\":true,\"label\":_vm.$t('SepaExport.SepaOrder') + '*'},model:{value:(_vm.sepaOrder),callback:function ($$v) {_vm.sepaOrder=_vm._n($$v)},expression:\"sepaOrder\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-select',{staticClass:\"mt-1\",attrs:{\"items\":_vm.enumToArray(_vm.ExportSEPATypeEnum),\"outlined\":\"\",\"dense\":\"\",\"item-text\":function (x) { return _vm.$t('FinancialDocuments.SepaExportType.' + x.name); },\"item-value\":\"value\",\"label\":_vm.$t('FinancialDocuments.SepaExportType')},model:{value:(_vm.sepaExportType),callback:function ($$v) {_vm.sepaExportType=$$v},expression:\"sepaExportType\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.exportInProgress,\"disabled\":_vm.disableSepaExport},on:{\"click\":_vm.exportSepa}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-btn',{attrs:{\"color\":\"error\",\"loading\":_vm.exportInProgress},on:{\"click\":function($event){_vm.cancelSEPAPaymentsDialogOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"SepaExport.CancelPayments\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.exportInProgress},on:{\"click\":function($event){_vm.exportSepaOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":600,\"persistent\":\"\"},model:{value:(_vm.cancelSEPAPaymentsDialogOpen),callback:function ($$v) {_vm.cancelSEPAPaymentsDialogOpen=$$v},expression:\"cancelSEPAPaymentsDialogOpen\"}},[_c('v-card',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.cancelSEPAPaymentsLoading}}),_c('v-form',{key:_vm.cancelSEPAPaymentsDialogOpen},[_c('v-card-text',[_c('FormDescription',[_vm._v(\" \"+_vm._s(_vm.$t(\"SepaExport.CancelPayments.Hint\"))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('SepaExport.CancelPayments.Filename'),\"dense\":\"\",\"outlined\":\"\",\"error-messages\":_vm.cancelSEPAFilenameValidation},on:{\"input\":_vm.cancelSEPAPaymentsFilenameChanged},model:{value:(_vm.cancelSEPAPaymentsFilename),callback:function ($$v) {_vm.cancelSEPAPaymentsFilename=$$v},expression:\"cancelSEPAPaymentsFilename\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('SEPA.PaymentDate') + '*',\"dense\":\"\",\"readonly\":!!_vm.cancelSEPAPaymentsFilename,\"rules\":[_vm.rules.requiredValue]},model:{value:(_vm.cancelSEPAPaymentsDate),callback:function ($$v) {_vm.cancelSEPAPaymentsDate=$$v},expression:\"cancelSEPAPaymentsDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$t('SepaExport.SepaOrder') + '*',\"readonly\":!!_vm.cancelSEPAPaymentsFilename,\"rules\":[_vm.rules.requiredValue]},model:{value:(_vm.cancelSEPAPaymentsOrderNumber),callback:function ($$v) {_vm.cancelSEPAPaymentsOrderNumber=_vm._n($$v)},expression:\"cancelSEPAPaymentsOrderNumber\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.cancelSEPAPaymentsDate || !_vm.cancelSEPAPaymentsOrderNumber},on:{\"click\":_vm.cancelSEPAPaymentsConfirmation}},[_vm._v(\" \"+_vm._s(_vm.$t(\"SepaExport.CancelPayments\"))+\" \")]),_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.closeCancelSEPAPaymentsDialog}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":500},model:{value:(_vm.taxReportOpen),callback:function ($$v) {_vm.taxReportOpen=$$v},expression:\"taxReportOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"TaxRecapitulationReport\")))]),_c('v-card-text',[_c('DateField',{attrs:{\"label\":_vm.$t('Erp.Period') + '*',\"clearable\":true,\"range\":true,\"dense\":\"\"},model:{value:(_vm.exportPeriodForTaxRecap),callback:function ($$v) {_vm.exportPeriodForTaxRecap=$$v},expression:\"exportPeriodForTaxRecap\"}}),_c('v-select',{staticClass:\"mt-1\",attrs:{\"items\":_vm.enumToArray(_vm.ReportDateTypeEnum),\"outlined\":\"\",\"dense\":\"\",\"item-text\":function (x) { return _vm.$t('Report.TaxRecapitulation.DateType.' + x.name); },\"item-value\":\"value\",\"label\":_vm.$t('Report.TaxRecapitulation.DateType') + '*'},model:{value:(_vm.reportDateType),callback:function ($$v) {_vm.reportDateType=$$v},expression:\"reportDateType\"}}),_c('v-select',{staticClass:\"mt-1\",attrs:{\"items\":_vm.enumToArray(_vm.ReportDownloadTypeEnum),\"outlined\":\"\",\"dense\":\"\",\"item-text\":function (x) { return _vm.$t('Report.TaxRecapitulation.DownloadType.' + x.name); },\"item-value\":\"value\",\"label\":_vm.$t('Report.TaxRecapitulation.DownloadType') + '*'},model:{value:(_vm.reportDownloadType),callback:function ($$v) {_vm.reportDownloadType=$$v},expression:\"reportDownloadType\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.exportInProgress,\"disabled\":_vm.disableTaxRecapExportButton},on:{\"click\":function($event){return _vm.generateReport()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.exportInProgress},on:{\"click\":function($event){_vm.taxReportOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('FinancialDocumentModalForm',{attrs:{\"open\":_vm.editingOpen,\"documentId\":_vm.documentId,\"newDocumentTypeId\":_vm.newDocumentTypeId,\"deleteOnClose\":_vm.autoDeleteDocument},on:{\"update:open\":function($event){_vm.editingOpen=$event},\"update:documentId\":function($event){_vm.documentId=$event},\"update:document-id\":function($event){_vm.documentId=$event},\"update:deleteOnClose\":function($event){_vm.autoDeleteDocument=$event},\"update:delete-on-close\":function($event){_vm.autoDeleteDocument=$event},\"refresh\":_vm.refresh,\"refreshReservation\":function($event){return _vm.$emit('saved')}}}),_c('ReservationFormPaymentForm',{attrs:{\"open\":_vm.paymentFormOpen,\"reservationId\":_vm.reservationId,\"callback\":_vm.load},on:{\"update:open\":function($event){_vm.paymentFormOpen=$event},\"saved\":_vm.paymentSaved}}),_c('PaymentSlipModalForm',{attrs:{\"open\":_vm.paymentSlipFormOpen,\"editingModel\":_vm.paymentSlipModel},on:{\"update:open\":function($event){_vm.paymentSlipFormOpen=$event},\"saved\":_vm.load}}),_c('PaymentsReport',{attrs:{\"open\":_vm.paymentsReportOpen},on:{\"update:open\":function($event){_vm.paymentsReportOpen=$event}}}),(_vm.type === 'page' && _vm.cashRegisterFeature)?_c('CashiersReportExportModal',{attrs:{\"open\":_vm.cashiersReportExportOpen,\"filters\":_vm.filters},on:{\"update:open\":function($event){_vm.cashiersReportExportOpen=$event}}}):_vm._e(),_c('BulkInvoiceGenerationModal',{attrs:{\"open\":_vm.bulkInvoiceGenerationModalOpen},on:{\"update:open\":function($event){_vm.bulkInvoiceGenerationModalOpen=$event},\"reload\":function($event){return _vm.load()}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport { Getter } from \"vuex-class\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport { enumToArray } from \"@/shared/commonFunctions\";\nimport { getDateTimeOffsetString } from \"@/shared/dateFormatUtils\";\n\nexport enum CashiersReportExportTypeEnum {\n PDF = 1,\n Excel = 2,\n}\n\n@Component({\n components: {\n DateField,\n TimeField,\n },\n})\nexport default class CashiersReportExportModal extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() filters?: any;\n\n dateRange: string[] = [];\n timeFrom = \"00:00\";\n timeTo = \"23:59\";\n cashRegisterId = null as number | null;\n exportType = CashiersReportExportTypeEnum.PDF;\n\n isFormValid = false;\n\n enumToArray = enumToArray;\n cashiersReportExportTypeEnum = CashiersReportExportTypeEnum;\n\n exporting = false;\n async exportCashiersReport() {\n const timeFromSplit = this.timeFrom.split(\":\");\n const timeToSplit = this.timeTo.split(\":\");\n\n const dateTimeFrom = new Date(this.dateRange[0]);\n const dateTimeTo = new Date(this.dateRange[1]);\n\n dateTimeFrom.setHours(+timeFromSplit[0], +timeFromSplit[1]);\n dateTimeTo.setHours(+timeToSplit[0], +timeToSplit[1]);\n\n const request = {\n cashRegisterId: this.cashRegisterId,\n // need to do this as we want to preserve users's time and date selection, Vue otherwise turns dates into UTC time before sending the request\n // which loses user's selection because 23:59 UTC+2 is received on the server as 21:59 UTC+0 and the have no way of knowing if user actually\n // selected 21:59, 23:59, or something else\n dateTimeFrom: getDateTimeOffsetString(dateTimeFrom),\n dateTimeTo: getDateTimeOffsetString(dateTimeTo),\n exportType: this.exportType,\n cultureCode: this.internalLanguage,\n };\n\n this.exporting = true;\n await this.$http\n .get(\"/financialDocuments/export/ExportCashiersReport\", {\n params: request,\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n\n saveFile(res.data, groups?.filename ?? `CashiersReport.pdf`);\n })\n .finally(() => {\n this.exporting = false;\n });\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n required0Allowed: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n requiredDateRange: (value: string[]) =>\n value.length === 2 || this.$t(\"Validation.RequiredDateRange\"),\n };\n }\n\n get sortedCashRegistries() {\n return (\n this.allCashRegisters?.sort((a, b) => (a.name > b.name ? 1 : -1)) ?? []\n );\n }\n\n @Watch(\"internalOpen\")\n openWatch(fresh: boolean) {\n if (fresh) {\n this.dateRange = [\n new Date().toISOString().substring(0, 10),\n new Date().toISOString().substring(0, 10),\n ];\n this.timeFrom = \"00:00\";\n this.timeTo = \"23:59\";\n this.cashRegisterId = this.activeCashRegister?.id ?? null;\n this.exportType = CashiersReportExportTypeEnum.PDF;\n }\n }\n\n @Getter(\"cashRegister/allCashRegisters\")\n allCashRegisters?: CashRegisterModel[];\n\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"no-click-animation\":\"\",\"max-width\":\"650\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"CashiersReportExport.DialogTitle\")))]),_c('v-card-text',[_c('v-form',{model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('CashiersReport.Date'),\"range\":true,\"outlined\":\"\",\"rules\":[_vm.rules.requiredDateRange(_vm.dateRange)],\"dense\":true},model:{value:(_vm.dateRange),callback:function ($$v) {_vm.dateRange=$$v},expression:\"dateRange\"}})],1),_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('TimeField',{staticClass:\"mr-3\",attrs:{\"label\":_vm.$t('CashiersReport.TimeFrom'),\"outlined\":\"\",\"rules\":[_vm.rules.required],\"dense\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 mb-2\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}])},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TimeZoneInfo\"))+\" \")])]},proxy:true}]),model:{value:(_vm.timeFrom),callback:function ($$v) {_vm.timeFrom=$$v},expression:\"timeFrom\"}}),_c('TimeField',{staticClass:\"ml-3\",attrs:{\"label\":_vm.$t('CashiersReport.TimeTo'),\"outlined\":\"\",\"rules\":[_vm.rules.required],\"dense\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 mb-2\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}])},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TimeZoneInfo\"))+\" \")])]},proxy:true}]),model:{value:(_vm.timeTo),callback:function ($$v) {_vm.timeTo=$$v},expression:\"timeTo\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('CashiersReport.CashRegister'),\"items\":_vm.sortedCashRegistries,\"item-text\":function (x) { return x.name; },\"item-value\":function (x) { return x.id; },\"rules\":[_vm.rules.required],\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.cashRegisterId),callback:function ($$v) {_vm.cashRegisterId=$$v},expression:\"cashRegisterId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.enumToArray(_vm.cashiersReportExportTypeEnum),\"item-text\":function (x) { return _vm.$t('CashiersReportExport.ExportType.' + x.name); },\"item-value\":\"value\",\"label\":_vm.$t('CashiersReportExport.ExportType'),\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.exportType),callback:function ($$v) {_vm.exportType=$$v},expression:\"exportType\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid,\"loading\":_vm.exporting},on:{\"click\":function($event){return _vm.exportCashiersReport()}}},[_vm._v(_vm._s(_vm.$t(\"Export\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.exporting},on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CashiersReportExportModal.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CashiersReportExportModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CashiersReportExportModal.vue?vue&type=template&id=f32729a2&\"\nimport script from \"./CashiersReportExportModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CashiersReportExportModal.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VIcon,VRow,VSelect,VSpacer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\",\"height\":\"100vh\"}},[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Payment report\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',{staticClass:\"pb-0\"},[_c('v-form',{ref:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\",\"sm\":\"6\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('CashiersReport.Date'),\"range\":true,\"outlined\":\"\",\"rules\":[_vm.rules.requiredDateRange(_vm.filters.dates)],\"dense\":true},model:{value:(_vm.filters.dates),callback:function ($$v) {_vm.$set(_vm.filters, \"dates\", $$v)},expression:\"filters.dates\"}})],1),_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"lg\":\"3\",\"sm\":\"6\"}},[_c('TimeField',{staticClass:\"mr-3\",attrs:{\"label\":_vm.$t('CashiersReport.TimeFrom'),\"outlined\":\"\",\"rules\":[_vm.rules.required],\"dense\":true},model:{value:(_vm.filters.timeFrom),callback:function ($$v) {_vm.$set(_vm.filters, \"timeFrom\", $$v)},expression:\"filters.timeFrom\"}}),_c('TimeField',{staticClass:\"ml-3\",attrs:{\"label\":_vm.$t('CashiersReport.TimeTo'),\"outlined\":\"\",\"rules\":[_vm.rules.required],\"dense\":true},model:{value:(_vm.filters.timeTo),callback:function ($$v) {_vm.$set(_vm.filters, \"timeTo\", $$v)},expression:\"filters.timeTo\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"3\"}},[_c('NumericInput',{attrs:{\"label\":_vm.$t('CashiersReport.StartingAmount'),\"rules\":[_vm.rules.required0Allowed(_vm.filters.startingAmount)],\"dense\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('FormalCurrencyDisplay')]},proxy:true}]),model:{value:(_vm.filters.startingAmount),callback:function ($$v) {_vm.$set(_vm.filters, \"startingAmount\", $$v)},expression:\"filters.startingAmount\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"3\"}},[_c('NumericInput',{attrs:{\"label\":_vm.$t('CashiersReport.CashBalance'),\"readonly\":\"\",\"dense\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('FormalCurrencyDisplay')]},proxy:true}]),model:{value:(_vm.cashBalance),callback:function ($$v) {_vm.cashBalance=$$v},expression:\"cashBalance\"}})],1)],1)],1)],1),_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Novčanice\"))+\" \")]),(!!_vm.formalCurrency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.cashTotal, { style: \"currency\", currency: _vm.correctCurrencyToDisplay, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),_c('v-tab',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Transakcijski račun\"))+\" \")]),(!!_vm.formalCurrency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.transactionAccountsTotal, { style: \"currency\", currency: _vm.correctCurrencyToDisplay, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),_c('v-tab',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Kartice\"))+\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(\"far fa-info-circle\")])]}}])},_vm._l((_vm.cardTypesSummary),function(item,$index){return _c('div',{key:$index},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)],1),(!!_vm.formalCurrency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.cardsTotal, { style: \"currency\", currency: _vm.correctCurrencyToDisplay, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),_c('v-tab',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"OnlineTransakcije\"))+\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(\"far fa-info-circle\")])]}}])},_vm._l((_vm.onlineTransactionSummary),function(item,$index){return _c('div',{key:$index},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)],1),(!!_vm.formalCurrency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.onlineTransactionsTotal, { style: \"currency\", currency: _vm.correctCurrencyToDisplay, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),_c('v-tab',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Ostalo\"))+\" \")]),(!!_vm.formalCurrency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.otherTotal, { style: \"currency\", currency: _vm.correctCurrencyToDisplay, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),_c('v-tab',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Ukupno\"))+\" \")]),(!!_vm.formalCurrency)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.total, { style: \"currency\", currency: _vm.correctCurrencyToDisplay, currencyDisplay: \"code\", }))+\" \")]):_vm._e()])],1),_c('v-data-table',{ref:\"dataTable\",attrs:{\"height\":\"100%\",\"items\":_vm.filteredList,\"headers\":_vm.translatedHeaders,\"options\":_vm.options,\"fixed-header\":\"\"},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"item.documentIdentifier\",fn:function(ref){\nvar item = ref.item;\nreturn _vm._l((item.financialDocuments),function(doc,$i){return _c('div',{key:$i},[_vm._v(\" \"+_vm._s(_vm.setsFiscalAsMain ? doc.documentIdentifier : doc.documentInternalIdentifier)+\" \"+_vm._s(doc.assignedAmount !== item.amount ? (\"(\" + (_vm.$n(doc.assignedAmount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", })) + \")\") : \"\")+\" \")])})}},{key:\"item.amount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.amount, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"item.paymentMeans\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.paymentMeans + \"\" + (item.cardType ? (\" (\" + (item.cardType) + \")\") : \"\"))+\" \")])]}},{key:\"item.paymentDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.paymentDate), \"long\")))])]}}])}),_c('div',{staticClass:\"buttons d-flex\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.list || _vm.loading,\"loading\":_vm.exporting},on:{\"click\":_vm.downloadExport}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\nimport FormalCurrencyDisplay from \"@/components/misc/FormalCurrencyDisplay.vue\";\nimport { DataOptions, DataTableHeader } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport * as _ from \"lodash\";\nimport { PaymentMeansEnum } from \"@/shared/models/enums.type\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\n\nexport type CashiersReportPaymentViewModel = {\n reservationId?: number;\n amount: number;\n paymentMeansId: number;\n paymentMeans: string;\n paymentMeanBaseId: number;\n cardType: string;\n paymentDate: string;\n currencyCode: string;\n isOnlinePayment: boolean;\n\n financialDocuments: CashiersReportFinancialDocumentPaymentViewModel[];\n};\n\nexport type CashiersReportFinancialDocumentPaymentViewModel = {\n documentNumber: string;\n documentIdentifier: string;\n documentInternalIdentifier: string;\n assignedAmount: number;\n};\n\n@Component({\n components: {\n DateField,\n TimeField,\n NumericInput,\n FormalCurrencyDisplay,\n },\n})\nexport default class CahiersReport extends Vue {\n @PropSync(\"open\", { default: false }) isOpen?: boolean;\n closeModal() {\n this.$emit(\"reload\");\n this.isOpen = false;\n }\n @Watch(\"isOpen\")\n openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.load();\n }\n }\n\n // prettier-ignore\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Getter(\"appParams/formalCurrency\") formalCurrency?: Currency;\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n\n created() {\n if (!this.storedSettings && this.refreshSettings) {\n this.refreshSettings();\n }\n\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n }\n\n @Watch(\"storedSettings\", { deep: true, immediate: true })\n financialSettingsWatch() {\n this.filters.startingAmount =\n this.storedSettings?.cashiersReportStartingAmount ?? null;\n }\n\n get cashBalance() {\n const cash = this.list\n .filter((x) => x.paymentMeansId === PaymentMeansEnum.Novcanice)\n .reduce((sum, r) => sum + r.amount, 0);\n\n return (this.filters.startingAmount ?? 0) + cash;\n }\n\n get setsFiscalAsMain() {\n return this.storedSettings?.setFiscalNumberAsMain ?? false;\n }\n\n get correctCurrencyToDisplay() {\n return this.storedSettings?.historicCurrency &&\n this.list.every(\n (x) =>\n x.currencyCode === this.storedSettings?.historicCurrency.isoCode &&\n this.storedSettings?.historicCurrencyEndDate &&\n new Date(x.paymentDate).getFullYear() <\n new Date(this.storedSettings?.historicCurrencyEndDate).getFullYear()\n )\n ? this.storedSettings?.historicCurrency.isoCode\n : this.formalCurrency?.isoCode;\n }\n\n get cashTotal() {\n return (\n this.list\n ?.filter((x) => x.paymentMeansId === PaymentMeansEnum.Novcanice)\n .reduce((sum, r) => sum + r.amount, 0) ?? 0\n );\n }\n\n get transactionAccountsTotal() {\n return (\n this.list\n ?.filter(\n (x) => x.paymentMeansId === PaymentMeansEnum.TransakcijskiRacun\n )\n .reduce((sum, r) => sum + r.amount, 0) ?? 0\n );\n }\n\n get onlineTransactionsTotal() {\n return (\n this.list\n ?.filter((x) => x.isOnlinePayment)\n .reduce((sum, r) => sum + r.amount, 0) ?? 0\n );\n }\n\n get cardsTotal() {\n return (\n this.list\n ?.filter(\n (x) =>\n (x.paymentMeansId === PaymentMeansEnum.KreditnaKartica ||\n x.paymentMeansId === PaymentMeansEnum.BankovnaKartica) &&\n !x.isOnlinePayment\n )\n .reduce((sum, r) => sum + r.amount, 0) ?? 0\n );\n }\n\n get otherTotal() {\n return (\n this.list\n ?.filter(\n (x) =>\n x.paymentMeansId !== PaymentMeansEnum.Novcanice &&\n x.paymentMeansId !== PaymentMeansEnum.BankovnaKartica &&\n x.paymentMeansId !== PaymentMeansEnum.KreditnaKartica &&\n x.paymentMeansId !== PaymentMeansEnum.OnlineServisZaPlacanje &&\n x.paymentMeansId !== PaymentMeansEnum.TransakcijskiRacun\n )\n .reduce((sum, r) => sum + r.amount, 0) ?? 0\n );\n }\n\n get total() {\n return this.list?.reduce((sum, r) => sum + r.amount, 0) ?? 0;\n }\n\n headers: DataTableHeader[] = [];\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Watch(\"claims.roles\", { immediate: true })\n rolesWatch() {\n this.headers = [\n {\n text: \"CashiersReport.ReservationId\",\n value: \"reservationId\",\n },\n {\n text: \"CashiersReport.DocumentNumber\",\n value: \"documentIdentifier\",\n sortable: false,\n // text: \"CashiersReport.DocumentNumber\",\n // value: this.setsFiscalAsMain\n // ? \"documentIdentifier\"\n // : \"documentInternalIdentifier\",\n },\n {\n text: \"CashiersReport.Amount\",\n value: \"amount\",\n },\n {\n text: \"CashiersReport.PaymentMeans\",\n value: \"paymentMeans\",\n },\n {\n text: \"CashiersReport.PaymentDate\",\n value: \"paymentDate\",\n },\n ];\n }\n\n get translatedHeaders() {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n tab = 0;\n isFormValid = false;\n @Ref(\"form\") form?: any;\n filters = {\n dates: [\n new Date().toISOString().substring(0, 10),\n new Date().toISOString().substring(0, 10),\n ] as string[],\n timeFrom: \"00:00\" as string | null,\n timeTo: \"23:59\" as string | null,\n startingAmount:\n this.storedSettings?.cashiersReportStartingAmount ??\n (null as number | null),\n };\n @Watch(\"filters\", { deep: true, immediate: true })\n watchFilters() {\n this.options.page = 1;\n this.debouncedLoad();\n }\n\n get filtersForRequest() {\n return {\n dateFrom: this.filters.dates.length === 2 ? this.filters.dates[0] : null,\n dateTo: this.filters.dates.length === 2 ? this.filters.dates[1] : null,\n timeFrom: this.filters.timeFrom,\n timeTo: this.filters.timeTo,\n startingAmount: this.filters.startingAmount,\n };\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"paymentDate\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n loading = false;\n list = [] as CashiersReportPaymentViewModel[];\n\n get filteredList() {\n switch (this.tab) {\n case 0:\n return this.list.filter(\n (x) => x.paymentMeansId === PaymentMeansEnum.Novcanice\n );\n case 1:\n return this.list.filter(\n (x) => x.paymentMeansId === PaymentMeansEnum.TransakcijskiRacun\n );\n case 2:\n return this.list.filter(\n (x) =>\n (x.paymentMeansId === PaymentMeansEnum.KreditnaKartica ||\n x.paymentMeansId === PaymentMeansEnum.BankovnaKartica) &&\n !x.isOnlinePayment\n );\n case 3:\n return this.list.filter((x) => x.isOnlinePayment);\n case 4:\n return this.list.filter(\n (x) =>\n x.paymentMeansId !== PaymentMeansEnum.Novcanice &&\n x.paymentMeansId !== PaymentMeansEnum.BankovnaKartica &&\n x.paymentMeansId !== PaymentMeansEnum.KreditnaKartica &&\n x.paymentMeansId !== PaymentMeansEnum.OnlineServisZaPlacanje &&\n x.paymentMeansId !== PaymentMeansEnum.TransakcijskiRacun\n );\n default:\n return this.list;\n }\n }\n\n get cardTypesSummary() {\n const results: string[] = [];\n\n const cardPayments = this.list.filter(\n (x) =>\n (x.paymentMeansId === PaymentMeansEnum.KreditnaKartica ||\n x.paymentMeansId === PaymentMeansEnum.BankovnaKartica) &&\n !x.isOnlinePayment\n );\n const grouped = _.groupBy(cardPayments, (x) => x.cardType);\n\n for (const group in grouped) {\n const isoCode = grouped[group][0].currencyCode;\n const groupTotal = grouped[group].reduce((sum, x) => sum + x.amount, 0);\n results.push(\n `${group} - ${this.$n(groupTotal, {\n style: \"currency\",\n currency: isoCode,\n currencyDisplay: \"code\",\n })}`\n );\n }\n\n if (results.length === 0) {\n results.push(this.$t(\"CashiersReport.NoCardPayments\").toString());\n }\n\n return results;\n }\n\n get onlineTransactionSummary() {\n const results: string[] = [];\n\n const onlineTransactions = this.list.filter((x) => x.isOnlinePayment);\n const grouped = _.groupBy(onlineTransactions, (x) => x.cardType);\n\n for (const group in grouped) {\n const isoCode = grouped[group][0].currencyCode;\n const groupTotal = grouped[group].reduce((sum, x) => sum + x.amount, 0);\n results.push(\n `${group} - ${this.$n(groupTotal, {\n style: \"currency\",\n currency: isoCode,\n currencyDisplay: \"code\",\n })}`\n );\n }\n\n if (results.length === 0) {\n results.push(this.$t(\"CashiersReport.NoCardPayments\").toString());\n }\n\n return results;\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n async load(): Promise {\n if (!this.isFormValid || !this.isOpen) {\n this.list = [];\n\n return this.list;\n }\n\n this.loading = true;\n return this.axios\n .get(\"/payments/GetCashiersReport\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n\n return this.list;\n })\n .finally(() => {\n this.scrollToTop();\n this.loading = false;\n });\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filtersForRequest,\n };\n }\n\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n required0Allowed: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n requiredDateRange: (value: string[]) =>\n value.length === 2 || this.$t(\"Validation.RequiredDateRange\"),\n };\n }\n\n exporting = false;\n async downloadExport() {\n this.exporting = true;\n\n const request = {\n businessUnitId: this.activeBusinessUnit?.id,\n dateFrom: this.filtersForRequest.dateFrom,\n dateTo: this.filtersForRequest.dateTo,\n timeFrom: this.filtersForRequest.timeFrom,\n timeTo: this.filtersForRequest.timeTo,\n startingAmount: this.filtersForRequest.startingAmount,\n cultureCode: this.language ?? \"hr-HR\",\n };\n\n await this.$http\n .get(\"/payments/ExportCashiersReport\", {\n params: request,\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n\n saveFile(res.data, groups?.filename ?? `CashiersReport.pdf`);\n })\n .finally(() => {\n this.exporting = false;\n });\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentsReport.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentsReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentsReport.vue?vue&type=template&id=04cf5068&scoped=true&\"\nimport script from \"./PaymentsReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentsReport.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PaymentsReport.vue?vue&type=style&index=0&id=04cf5068&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 \"04cf5068\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VDataTable,VDialog,VForm,VIcon,VRow,VSpacer,VTab,VTabs,VToolbar,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',{staticClass:\"reservations\",attrs:{\"tile\":\"\",\"height\":\"100vh\"}},[_c('LoadingOverlay',{attrs:{\"loading\":_vm.selectingAll,\"minDelay\":550}}),_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('div',{staticClass:\"d-flex align-center form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Bulk invoice generation\"))+\" \")]),_c('v-spacer'),_c('GenericPMSTableSelectionBucket',{attrs:{\"itemKey\":\"reservationId\",\"headers\":_vm.headers,\"selected\":_vm.selectedForBucket,\"totalCount\":_vm.list.count,\"shortDescription\":_vm.bucketShortDescription,\"filters\":_vm.selectionFilters,\"filterFunction\":_vm.selectionFilterFunction},on:{\"clearSelectionFilters\":function($event){return _vm.clearSelectionFilters()}},scopedSlots:_vm._u([{key:\"header.period\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.arrivalOrDepartureDate),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"arrivalOrDepartureDate\", $$v)},expression:\"selectionFilters.arrivalOrDepartureDate\"}})]}},{key:\"item.period\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(new Date(item.arrivalDate).getDate() == new Date(item.departureDate).getDate() ? _vm.$d(new Date(item.arrivalDate)) : _vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc( \"{count} of nights\", _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), { count: _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), } ))+\" \")])]}},{key:\"header.arrivalDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.selectionArrivalPeriod),callback:function ($$v) {_vm.selectionArrivalPeriod=$$v},expression:\"selectionArrivalPeriod\"}})]}},{key:\"item.arrivalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc( \"{count} of nights\", _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), { count: _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), } ))+\" \")])]}},{key:\"header.departureDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.selectionDeparturePeriod),callback:function ($$v) {_vm.selectionDeparturePeriod=$$v},expression:\"selectionDeparturePeriod\"}})]}},{key:\"item.departureDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc( \"{count} of nights\", _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), { count: _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), } ))+\" \")])]}},{key:\"header.reservationHolderName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.reservationHolderName),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"reservationHolderName\", $$v)},expression:\"selectionFilters.reservationHolderName\"}})]}},{key:\"header.statusId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.statuses,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.id; },\"label\":header.text,\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.statusId),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"statusId\", $$v)},expression:\"selectionFilters.statusId\"}})]}},{key:\"item.statusId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.statusStyle(item.statusId).color,\"text-color\":\"white\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal \"+_vm._s(_vm.statusStyle(item.statusId).icon))])],1),_c('div',[_vm._v(_vm._s(_vm.$t(_vm.statusStyle(item.statusId).text)))])],1)]}},{key:\"item.totalPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalPrice, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"header.reservationId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"type\":\"number\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.reservationId),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"reservationId\", _vm._n($$v))},expression:\"selectionFilters.reservationId\"}})]}},{key:\"header.bookingDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.bookingDate),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"bookingDate\", $$v)},expression:\"selectionFilters.bookingDate\"}})]}},{key:\"item.bookingDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.bookingDate))))])]}},{key:\"header.otachannelName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.otachannelName),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"otachannelName\", $$v)},expression:\"selectionFilters.otachannelName\"}})]}},{key:\"item.otachannelName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.otachannelName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.otareservationId))])]}},{key:\"header.distributionChannelTypeId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.allowedDistributionChannelTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectionFilters.distributionChannelTypeId),callback:function ($$v) {_vm.$set(_vm.selectionFilters, \"distributionChannelTypeId\", $$v)},expression:\"selectionFilters.distributionChannelTypeId\"}})]}},{key:\"item.distributionChannelTypeId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.distributionChannelName(item.distributionChannelTypeId))+\" \")])]}},{key:\"header.actions\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){_vm.selected = []}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)]}}])},[_c('div',[_vm._v(_vm._s(_vm.$t(\"Clear selection\")))])])]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"red\"},on:{\"click\":function($event){_vm.selected = _vm.selected.filter(\n function (x) { return x.reservationId !== item.reservationId; }\n )}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)]}}])}),_c('v-btn',{staticClass:\"ml-5\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('SortableHeadersTable',{ref:\"dataTable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"reservationId\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"bulkInvoiceGenerationReservations\",\"item-class\":_vm.getRowClass,\"show-select\":\"\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event}},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"disabled\":_vm.list.count === 0,\"input-value\":_vm.areAllReservationsSelected()},on:{\"change\":_vm.selectAllReservations}})]},proxy:true},{key:\"header.period\",fn:function(ref){\n var header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrDepartureDate),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrDepartureDate\", $$v)},expression:\"filters.arrivalOrDepartureDate\"}})]}},{key:\"item.period\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(new Date(item.arrivalDate).getDate() == new Date(item.departureDate).getDate() ? _vm.$d(new Date(item.arrivalDate)) : _vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc( \"{count} of nights\", _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), { count: _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), } ))+\" \")])]}},{key:\"header.arrivalDate\",fn:function(ref){\n var header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.serviceArrivalPeriod),callback:function ($$v) {_vm.serviceArrivalPeriod=$$v},expression:\"serviceArrivalPeriod\"}})]}},{key:\"item.arrivalDate\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc( \"{count} of nights\", _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), { count: _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), } ))+\" \")])]}},{key:\"header.departureDate\",fn:function(ref){\n var header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.serviceDeparturePeriod),callback:function ($$v) {_vm.serviceDeparturePeriod=$$v},expression:\"serviceDeparturePeriod\"}})]}},{key:\"item.departureDate\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc( \"{count} of nights\", _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), { count: _vm.differenceInDays( new Date(item.arrivalDate), new Date(item.departureDate) ), } ))+\" \")])]}},{key:\"header.reservationHolderName\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationHolderName),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationHolderName\", $$v)},expression:\"filters.reservationHolderName\"}})]}},{key:\"header.statusId\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.statuses,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.id; },\"label\":header.text,\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.statusId),callback:function ($$v) {_vm.$set(_vm.filters, \"statusId\", $$v)},expression:\"filters.statusId\"}})]}},{key:\"item.statusId\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.statusStyle(item.statusId).color,\"text-color\":\"white\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal \"+_vm._s(_vm.statusStyle(item.statusId).icon))])],1),_c('div',[_vm._v(_vm._s(_vm.$t(_vm.statusStyle(item.statusId).text)))])],1)]}},{key:\"item.totalPrice\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalPrice, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"header.reservationId\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"type\":\"number\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationId),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationId\", _vm._n($$v))},expression:\"filters.reservationId\"}})]}},{key:\"header.bookingDate\",fn:function(ref){\n var header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.bookingDate),callback:function ($$v) {_vm.$set(_vm.filters, \"bookingDate\", $$v)},expression:\"filters.bookingDate\"}})]}},{key:\"item.bookingDate\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.bookingDate))))])]}},{key:\"header.otachannelName\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.otachannelName),callback:function ($$v) {_vm.$set(_vm.filters, \"otachannelName\", $$v)},expression:\"filters.otachannelName\"}})]}},{key:\"item.otachannelName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.otachannelName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.otareservationId))])]}},{key:\"header.distributionChannelTypeId\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.allowedDistributionChannelTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.distributionChannelTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"distributionChannelTypeId\", $$v)},expression:\"filters.distributionChannelTypeId\"}})]}},{key:\"item.distributionChannelTypeId\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.distributionChannelName(item.distributionChannelTypeId))+\" \")])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('div',{staticClass:\"buttons d-flex\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.selected.length == 0},on:{\"click\":function($event){return _vm.openInternalModal()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Generate invoices for selected reservations\"))+\" \")])],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"1000\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.internalModalOpen),callback:function ($$v) {_vm.internalModalOpen=$$v},expression:\"internalModalOpen\"}},[_c('v-card',{staticClass:\"bulk-fin-doc-modal\",attrs:{\"min-height\":\"356\"}},[_c('v-card-text',[_c('v-form',{model:{value:(_vm.isBulkInvoiceGenerationFormValid),callback:function ($$v) {_vm.isBulkInvoiceGenerationFormValid=$$v},expression:\"isBulkInvoiceGenerationFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.issueDate') + '*',\"rules\":[_vm.rules.required],\"readonly\":true},model:{value:(_vm.model.issueDate),callback:function ($$v) {_vm.$set(_vm.model, \"issueDate\", $$v)},expression:\"model.issueDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.deliveryDate') + '*',\"max\":_vm.model.issueDate,\"rules\":[\n _vm.rules.required,\n _vm.rules.deliveryDateCannotBeGreaterThanIssueDateIfInvoice ]},model:{value:(_vm.model.deliveryDate),callback:function ($$v) {_vm.$set(_vm.model, \"deliveryDate\", $$v)},expression:\"model.deliveryDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.dueDate') + '*',\"min\":_vm.model.issueDate,\"rules\":[\n _vm.rules.required,\n _vm.rules.dueDateCannotBeLessThanIssueDate ]},model:{value:(_vm.model.dueDate),callback:function ($$v) {_vm.$set(_vm.model, \"dueDate\", $$v)},expression:\"model.dueDate\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.cashRegisterFeature ? 4 : 6}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.BusinessUnit') + '*',\"items\":_vm.businessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"item-disabled\":function (x) { return x.ownerCustomerId; },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":true,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.businessUnitId),callback:function ($$v) {_vm.$set(_vm.model, \"businessUnitId\", $$v)},expression:\"model.businessUnitId\"}})],1),(_vm.cashRegisterFeature)?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.CashRegister') + '*',\"items\":_vm.cashRegistersForBusinessUnit,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":true,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.cashRegisterId),callback:function ($$v) {_vm.$set(_vm.model, \"cashRegisterId\", $$v)},expression:\"model.cashRegisterId\"}})],1):_vm._e(),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":_vm.cashRegisterFeature ? 4 : 6}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('FinancialDocument.ShowOwnerDetails'),\"hide-details\":\"\"},model:{value:(_vm.model.showOwnerDetails),callback:function ($$v) {_vm.$set(_vm.model, \"showOwnerDetails\", $$v)},expression:\"model.showOwnerDetails\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}]),model:{value:(_vm.model.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.model, \"paymentMeansId\", $$v)},expression:\"model.paymentMeansId\"}})],1),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t(\n 'FinancialDocument.Autogeneration.PreferReservationPaymentMeans'\n ),\"hide-details\":\"\"},model:{value:(_vm.model.preferReservationPaymentMeans),callback:function ($$v) {_vm.$set(_vm.model, \"preferReservationPaymentMeans\", $$v)},expression:\"model.preferReservationPaymentMeans\"}})],1),(_vm.isCard)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans\n ? [_vm.rules.required]\n : [],\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.model.cardTypeId),callback:function ($$v) {_vm.$set(_vm.model, \"cardTypeId\", $$v)},expression:\"model.cardTypeId\"}})],1):_vm._e()],1),(_vm.automaticRelatedAdvanceInvoiceCancellingDefault)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.BackupBusinessUnitHint\" )))])],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.BusinessUnit') + '*',\"items\":_vm.businessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"item-disabled\":function (x) { return x.ownerCustomerId; },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required]},model:{value:(\n _vm.model.advanceInvoicesCancellationBackupBusinessUnitId\n ),callback:function ($$v) {_vm.$set(_vm.model, \"advanceInvoicesCancellationBackupBusinessUnitId\", $$v)},expression:\"\\n model.advanceInvoicesCancellationBackupBusinessUnitId\\n \"}})],1),(_vm.cashRegisterFeature)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.CashRegister') + '*',\"items\":_vm.cashRegistersForBusinessUnitBackup,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required]},model:{value:(\n _vm.model.advanceInvoicesCancellationBackupCashRegisterId\n ),callback:function ($$v) {_vm.$set(_vm.model, \"advanceInvoicesCancellationBackupCashRegisterId\", $$v)},expression:\"\\n model.advanceInvoicesCancellationBackupCashRegisterId\\n \"}})],1):_vm._e()],1):_vm._e()],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"disabled\":!_vm.isBulkInvoiceGenerationFormValid,\"loading\":_vm.generatingInvoices,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.confirmGeneration()}}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.Autogeneration.Generate\")))]),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.internalModalOpen = !_vm.internalModalOpen}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"scrollable\":\"\",\"persistent\":\"\",\"no-click-animation\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"SelectionBucket.Selected\", { selected: _vm.internalSelected.length }))+\" \")]),(_vm.shortDescription)?_c('div',[_vm._v(_vm._s(_vm.shortDescription))]):_vm._e()]),_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-3\",attrs:{\"color\":\"primary\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(_vm._s(_vm.$t(\"SelectionBucket.Examine\")))])],1)]}}]),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',[(_vm.title)?_c('v-card-title',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('v-card-text',{staticClass:\"pa-0\"},[_c('v-data-table',{staticClass:\"bucket-table\",attrs:{\"headers\":_vm.translatedHeaders,\"items\":_vm.filteredItems,\"item-key\":_vm.itemKey,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100, -1] },\"sort-by\":_vm.sortBy(),\"fixed-header\":\"\",\"must-sort\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,name){return {key:name,fn:function(slotData){return [_vm._t(name,null,null,slotData)]}}})],null,true)}),_c('div',{staticClass:\"buttons d-flex\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.open = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, PropSync, Watch } from \"vue-property-decorator\";\nimport { SortableTableHeader } from \"./SortableTableDirective\";\n\n@Component\nexport default class GenericPMSTableSelectionBucket extends Vue {\n @PropSync(\"selected\", { default: () => [] }) internalSelected?: any[];\n @Prop({ default: \"id\" }) itemKey?: string;\n @Prop({ default: () => [] }) headers?: SortableTableHeader[];\n @Prop() totalCount?: number;\n @Prop() shortDescription?: string;\n @Prop() title?: string;\n\n @Prop() filters?: any;\n @Prop() filterFunction?: (items: any[], filters: any) => any[];\n\n open = false;\n\n @Watch(\"open\")\n openWatch(fresh: boolean, old: boolean) {\n if (!fresh && old) {\n this.$emit(\"clearSelectionFilters\");\n }\n }\n\n get translatedHeaders() {\n if (!this.headers) {\n return [];\n }\n\n return [\n ...this.headers.map((x) => ({\n ...x,\n text: this.$t(x.text),\n sortable: x.sortable ?? true,\n })),\n ];\n }\n\n get filteredItems() {\n if (this.filterFunction && this.filters)\n return this.filterFunction(this.internalSelected ?? [], this.filters);\n\n return this.internalSelected ?? [];\n }\n\n sortBy() {\n const firstSortable = this.translatedHeaders.find((x) => x.sortable);\n return firstSortable?.value;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPMSTableSelectionBucket.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPMSTableSelectionBucket.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenericPMSTableSelectionBucket.vue?vue&type=template&id=533df076&scoped=true&\"\nimport script from \"./GenericPMSTableSelectionBucket.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenericPMSTableSelectionBucket.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenericPMSTableSelectionBucket.vue?vue&type=style&index=0&id=533df076&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 \"533df076\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VDataTable,VDialog})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, PropSync, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport {\n DistributionChannelEnum,\n PaymentMeansEnum,\n TenantTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport { Notification } from \"../../../store/modules/notifications\";\nimport { DataOptions } from \"vuetify\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { SortableTableHeader } from \"../../generic-pms-table/SortableTableDirective\";\nimport VReservation from \"@/shared/models/vReservation\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport TableCellUnitTypeDisplay from \"@/components/misc/TableCellUnitTypeDisplay.vue\";\nimport { reservationStatuses } from \"@/shared/models/vReservation\";\nimport { DistributionChannelType } from \"@/shared/models/distributionChannelType\";\nimport { InvoiceAutogenerationModel } from \"./types\";\nimport { ReservationListViewModel } from \"@/shared/models/reservationListViewModel\";\nimport GenericPMSTableSelectionBucket from \"@/components/generic-pms-table/GenericPMSTableSelectionBucket.vue\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport {\n CurrencyConversionService,\n currencyConversionServiceFactory,\n} from \"@/shared/currencyConversionService\";\nimport * as _ from \"lodash\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport { DistributionChannelTypesEnum } from \"@/components/reservation-form/types\";\n\n@Component({\n components: {\n DateField,\n SortableHeadersTable,\n TableCellUnitTypeDisplay,\n GenericPMSTableSelectionBucket,\n LoadingOverlay,\n },\n})\nexport default class BulkInvoiceGenerationModal extends Vue {\n @Getter(\"appParams/isCardTypeRequiredForCardPaymentMeans\")\n isCardTypeRequiredForCardPaymentMeans?: boolean;\n\n tagSeparator = \"\\r\\n\";\n\n @PropSync(\"open\", { default: false }) isOpen?: boolean;\n closeModal() {\n this.clearGrid();\n this.$emit(\"reload\");\n this.isOpen = false;\n }\n\n @Watch(\"isOpen\")\n isOpenWatch(fresh: boolean, old: boolean) {\n if (this.initLoaded && fresh && !old) {\n this.load();\n }\n }\n\n clearGrid() {\n this.filters = {\n reservationId: null as number | null,\n arrivalOrDepartureDate: \"\",\n bookingDate: \"\",\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n reservationHolderName: \"\",\n otachannelName: \"\",\n distributionChannelTypeId: null as number | null,\n statusId: null as number | null,\n };\n this.selected = [];\n }\n\n clearSelectionFilters() {\n this.selectionFilters = {\n reservationId: null as number | null,\n arrivalOrDepartureDate: \"\",\n bookingDate: \"\",\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n reservationHolderName: \"\",\n otachannelName: \"\",\n distributionChannelTypeId: null as number | null,\n statusId: null as number | null,\n };\n }\n\n async created() {\n const promises = [];\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n\n if (!this.storedSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n await Promise.all(promises);\n\n if (this.storedSettings) {\n this.currencyConversionService = currencyConversionServiceFactory(\n this.storedSettings\n );\n }\n }\n\n getRowClass(item: VReservation) {\n let classes = \"\";\n if (\n item.distributionChannelTypeId ===\n DistributionChannelEnum.OwnersReservation\n ) {\n classes = \"row-highlighted\";\n }\n return classes;\n }\n\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n\n differenceInDays = differenceInDays;\n\n settingsOpen = false;\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"period\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n selectionFilters = {\n reservationId: null as number | null,\n arrivalOrDepartureDate: \"\",\n bookingDate: \"\",\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n reservationHolderName: \"\",\n otachannelName: \"\",\n distributionChannelTypeId: null as number | null,\n statusId: null as number | null,\n };\n\n selectionFilterFunction(\n selectedItems: ReservationListViewModel[],\n selectionFilter: typeof BulkInvoiceGenerationModal.prototype.selectionFilters\n ) {\n let toReturn = selectedItems;\n\n if (selectionFilter.reservationId) {\n toReturn = toReturn.filter(\n (x) => x.reservationId === selectionFilter.reservationId\n );\n }\n\n if (selectionFilter.arrivalOrDepartureDate) {\n toReturn = toReturn.filter(\n (x) =>\n x.arrivalDate.substring(0, 10) ===\n selectionFilter.arrivalOrDepartureDate ||\n x.departureDate.substring(0, 10) ===\n selectionFilter.arrivalOrDepartureDate\n );\n }\n\n if (selectionFilter.bookingDate) {\n toReturn = toReturn.filter(\n (x) => x.bookingDate.substring(0, 10) === selectionFilter.bookingDate\n );\n }\n\n if (selectionFilter.arrivalDateFromPeriod) {\n if (selectionFilter.arrivalDateToPeriod) {\n toReturn = toReturn.filter(\n (x) =>\n x.arrivalDate.substring(0, 10) >=\n selectionFilter.arrivalDateFromPeriod &&\n x.arrivalDate.substring(0, 10) <=\n selectionFilter.arrivalDateToPeriod\n );\n } else {\n toReturn = toReturn.filter(\n (x) =>\n x.arrivalDate.substring(0, 10) ===\n selectionFilter.arrivalDateFromPeriod\n );\n }\n }\n\n if (selectionFilter.departureDateFromPeriod) {\n if (selectionFilter.departureDateToPeriod) {\n toReturn = toReturn.filter(\n (x) =>\n x.departureDate.substring(0, 10) >=\n selectionFilter.departureDateFromPeriod &&\n x.departureDate.substring(0, 10) <=\n selectionFilter.departureDateToPeriod\n );\n } else {\n toReturn = toReturn.filter(\n (x) =>\n x.departureDate.substring(0, 10) ===\n selectionFilter.departureDateFromPeriod\n );\n }\n }\n\n if (selectionFilter.reservationHolderName) {\n toReturn = toReturn.filter((x) =>\n x.reservationHolderName\n .toLowerCase()\n .includes(selectionFilter.reservationHolderName.toLowerCase())\n );\n }\n\n if (selectionFilter.otachannelName) {\n toReturn = toReturn.filter((x) =>\n x.otachannelName\n .toLocaleLowerCase()\n .includes(selectionFilter.otachannelName.toLowerCase())\n );\n }\n\n if (selectionFilter.distributionChannelTypeId) {\n toReturn = toReturn.filter(\n (x) =>\n x.distributionChannelTypeId ===\n selectionFilter.distributionChannelTypeId\n );\n }\n\n if (selectionFilter.statusId) {\n toReturn = toReturn.filter(\n (x) => x.statusId === selectionFilter.statusId\n );\n }\n\n return toReturn;\n }\n\n filters = {\n reservationId: null as number | null,\n arrivalOrDepartureDate: \"\",\n bookingDate: \"\",\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n reservationHolderName: \"\",\n otachannelName: \"\",\n distributionChannelTypeId: null as number | null,\n statusId: null as number | null,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n currencyConversionService?: CurrencyConversionService;\n selected = [] as ReservationListViewModel[];\n\n get selectedForBucket() {\n return this.selected.map((x) => {\n return {\n ...x,\n period: x.arrivalDate,\n };\n });\n }\n\n get totalSelectedValueInWorkingCurrency() {\n return this.selected.reduce((sum, x) => {\n if (this.currencyConversionService && this.storedSettings) {\n return (\n sum +\n this.currencyConversionService.convertCurrency(\n x.totalPrice,\n x.currencyId,\n this.storedSettings.workingCurrency.id\n )\n );\n } else {\n return sum + x.totalPrice;\n }\n }, 0);\n }\n\n get bucketShortDescription() {\n const prefix = this.$t(\n \"FinancialDocument.Autogeneration.TotalPrice\"\n ).toString();\n\n const value = this.$n(this.totalSelectedValueInWorkingCurrency, {\n style: \"currency\",\n currency: this.storedSettings?.workingCurrency.isoCode ?? \"EUR\",\n currencyDisplay: \"code\",\n });\n\n return prefix + \": \" + value;\n }\n\n loading = true;\n firstLoad = true;\n initialListSize = 0;\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise {\n this.loading = true;\n return this.axios\n .get>(\n \"/reservations/GetReservationsForBulkInvoiceGeneration\",\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n this.list = {\n result: res.data.result,\n count: res.data.count,\n };\n if (this.firstLoad) {\n this.initialListSize = this.list.count ?? 0;\n }\n return this.list;\n })\n .finally(() => {\n this.firstLoad = false;\n this.scrollToTop();\n this.loading = false;\n });\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == \"period\"\n ? [\"arrivalDate\", \"reservationId\"]\n : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n };\n }\n\n get statuses() {\n return reservationStatuses;\n }\n\n statusStyle(statusId: number) {\n return this.statuses.find((x) => x.id == statusId) ?? {};\n }\n\n @Getter(\"codebooks/distributionChannelTypes\")\n distributionChannelTypes?: DistributionChannelType[];\n\n distributionChannelName(value: number) {\n const name = this.distributionChannelTypes?.find(\n (x) => x.id == value\n )?.textResourceKey;\n return name ? this.$t(name) : \"\";\n }\n\n get isTenantTypeAgency() {\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get allowedDistributionChannelTypes() {\n if (!this.distributionChannelTypes) {\n return [];\n }\n const types = _.cloneDeep(this.distributionChannelTypes);\n\n if (this.isTenantTypeAgency) {\n return types;\n } else {\n return types?.filter(\n (channel) =>\n channel.id != DistributionChannelTypesEnum.OwnersReservation\n );\n }\n }\n\n get serviceArrivalPeriod() {\n const res = [\n this.filters.arrivalDateFromPeriod\n ? this.filters.arrivalDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.arrivalDateToPeriod\n ? this.filters.arrivalDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set serviceArrivalPeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.arrivalDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.arrivalDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.arrivalDateFromPeriod = \"\";\n this.filters.arrivalDateToPeriod = \"\";\n }\n }\n\n get serviceDeparturePeriod() {\n const res = [\n this.filters.departureDateFromPeriod\n ? this.filters.departureDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.departureDateToPeriod\n ? this.filters.departureDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set serviceDeparturePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.departureDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.departureDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.departureDateFromPeriod = \"\";\n this.filters.departureDateToPeriod = \"\";\n }\n }\n\n // selection filter helpers\n get selectionArrivalPeriod() {\n const res = [\n this.selectionFilters.arrivalDateFromPeriod\n ? this.selectionFilters.arrivalDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.selectionFilters.arrivalDateToPeriod\n ? this.selectionFilters.arrivalDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set selectionArrivalPeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.selectionFilters.arrivalDateFromPeriod =\n val.length > 0 ? val[0] : \"\";\n this.selectionFilters.arrivalDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.selectionFilters.arrivalDateFromPeriod = \"\";\n this.selectionFilters.arrivalDateToPeriod = \"\";\n }\n }\n\n get selectionDeparturePeriod() {\n const res = [\n this.selectionFilters.departureDateFromPeriod\n ? this.selectionFilters.departureDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.selectionFilters.departureDateToPeriod\n ? this.selectionFilters.departureDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set selectionDeparturePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.selectionFilters.departureDateFromPeriod =\n val.length > 0 ? val[0] : \"\";\n this.selectionFilters.departureDateToPeriod =\n val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.selectionFilters.departureDateFromPeriod = \"\";\n this.selectionFilters.departureDateToPeriod = \"\";\n }\n }\n\n headers: SortableTableHeader[] = [\n {\n text: \"Period\",\n value: \"period\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Reservation.ArrivalDate\",\n value: \"arrivalDate\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Reservation.DepartureDate\",\n value: \"departureDate\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Reservation holder\",\n value: \"reservationHolderName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Reservation status\",\n value: \"statusId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Reservation Id\",\n value: \"reservationId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Total price\",\n value: \"totalPrice\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Booking date\",\n value: \"bookingDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Sales channel\",\n value: \"otachannelName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"DistributionChannel\",\n value: \"distributionChannelTypeId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"\"],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n align: \"end\",\n },\n ];\n\n // internal model\n internalModalOpen = false;\n\n model = {\n issueDate: new Date().toISOString().substring(0, 10),\n deliveryDate: new Date().toISOString().substring(0, 10),\n dueDate: new Date().toISOString().substring(0, 10),\n businessUnitId: null,\n cashRegisterId: null,\n showOwnerDetails: false,\n paymentMeansId: null,\n paymentMeanBaseId: null,\n cardTypeId: null,\n preferReservationPaymentMeans: false,\n advanceInvoicesCancellationBackupBusinessUnitId: null,\n advanceInvoicesCancellationBackupCashRegisterId: null,\n } as InvoiceAutogenerationModel;\n\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Action(\"codebooks/refreshCardTypes\") refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n // prettier-ignore\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"businessUnit/availableBusinessUnits\")\n availableBusinessUnits?: BusinessUnit[];\n\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n @Getter(\"cashRegister/availableCashRegisters\")\n availableCashRegisters?: CashRegisterModel[];\n\n @Getter(\"businessUnit/allBusinessUnits\") allBusinessUnits?: BusinessUnit[];\n @Getter(\"cashRegister/allCashRegisters\")\n allCashRegisters?: CashRegisterModel[];\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n get businessUnits() {\n return (\n this.allBusinessUnits?.filter(\n (x) => x.status && !x.isOwnerBusinessUnit\n ) ?? []\n );\n }\n\n get cashRegistersForBusinessUnitBackup() {\n return (\n this.allCashRegisters?.filter(\n (x) =>\n x.status &&\n x.businessUnitId ===\n this.model.advanceInvoicesCancellationBackupBusinessUnitId\n ) ?? []\n );\n }\n\n // prettier-ignore\n @Getter(\"appParams/automaticRelatedAdvanceInvoiceCancellingDefault\") automaticRelatedAdvanceInvoiceCancellingDefault?: boolean;\n\n get cashRegistersForBusinessUnit() {\n return (\n this.availableCashRegisters?.filter(\n (x) => x.businessUnitId === this.model?.businessUnitId\n ) ?? []\n );\n }\n\n cardPaymentMeansIds = [\n PaymentMeansEnum.OnlineServisZaPlacanje,\n PaymentMeansEnum.KreditnaKartica,\n PaymentMeansEnum.BankovnaKartica,\n ];\n get isCard() {\n return this.cardPaymentMeansIds.some(\n (x) => x === this.model?.paymentMeansId ||\n x === this.model?.paymentMeanBaseId\n );\n }\n\n isBulkInvoiceGenerationFormValid = false;\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n // prettier-ignore\n dueDateCannotBeLessThanIssueDate: (value: any) =>\n ( \n value &&\n this.model &&\n this.model.dueDate &&\n this.model.issueDate &&\n !(this.model.dueDate.substr(0, 10) < this.model.issueDate.substr(0, 10))\n ) ||\n this.$t(\"Validation.FinancialDocuments.DueDateCannotBeBeforeIssueDate\"),\n // prettier-ignore\n deliveryDateCannotBeGreaterThanIssueDateIfInvoice: (value: any) =>\n ( \n value &&\n this.model &&\n this.model.deliveryDate &&\n this.model.issueDate &&\n !(this.model.issueDate.substr(0, 10) < this.model.deliveryDate.substr(0, 10))\n ) ||\n this.$t(\"Validation.FinancialDocuments.DeliveryDateCannotBeAfterIssueDate\"),\n };\n }\n\n confirmGeneration() {\n const count = this.selected.length;\n const value = this.$n(this.totalSelectedValueInWorkingCurrency, {\n style: \"currency\",\n currency: this.storedSettings?.workingCurrency.isoCode ?? \"EUR\",\n currencyDisplay: \"code\",\n });\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"FinancialDocument.Autogeneration.Confirmation\", {\n count: count,\n value: value,\n }),\n timeout: 15000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.generate();\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n }\n\n generatingInvoices = false;\n generate() {\n this.generatingInvoices = true;\n this.axios\n .post(\"FinancialDocuments/BulkCreateInvoiceForReservation/\", {\n ...this.model,\n reservationIds: this.selected.map((x) => x.reservationId),\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n \"FinancialDocument.Autogeneration.AsyncGenerationStarted\"\n ),\n timeout: 15000,\n } as Notification);\n this.internalModalOpen = false;\n })\n .finally(() => {\n this.generatingInvoices = false;\n });\n }\n\n openInternalModal() {\n if (!this.model.paymentMeansId) {\n this.model.paymentMeansId = this.storedSettings?.paymentMeansId ?? null;\n }\n\n if (!this.model.businessUnitId) {\n this.model.businessUnitId = this.activeBusinessUnit?.id ?? null;\n }\n if (this.cashRegisterFeature) {\n this.model.cashRegisterId = this.activeCashRegister?.id ?? null;\n }\n\n if (this.automaticRelatedAdvanceInvoiceCancellingDefault) {\n this.model.advanceInvoicesCancellationBackupBusinessUnitId =\n this.model.businessUnitId;\n this.model.advanceInvoicesCancellationBackupCashRegisterId =\n this.model.cashRegisterId;\n }\n\n this.internalModalOpen = true;\n }\n\n selectingAll = false;\n selectAllReservations(val: boolean) {\n this.selectingAll = true;\n this.axios\n .get(\n \"/reservations/GetAllReservationsForBulkInvoiceGeneration\",\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n if (val) {\n this.selected = [...res.data];\n } else {\n this.selected = this.selected.filter(\n (item) =>\n !res.data.some((x) => x.reservationId === item.reservationId)\n );\n }\n })\n .finally(() => {\n this.scrollToTop();\n this.selectingAll = false;\n });\n }\n\n //initialListSize will be the maximum size this table can be\n //so selected array should be compared only to that initial state\n //anything less that that can be considered as -> not all selected\n areAllReservationsSelected() {\n return (\n this.selected.length === this.initialListSize &&\n (this.list.count ?? 0) > 0\n );\n }\n\n @Watch(\"model.businessUnitId\")\n businessUnitChanged(fresh: number, old: number) {\n if (\n fresh !== old &&\n old !== null &&\n this.model &&\n this.cashRegisterFeature\n ) {\n this.model.cashRegisterId = null;\n }\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BulkInvoiceGenerationModal.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BulkInvoiceGenerationModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BulkInvoiceGenerationModal.vue?vue&type=template&id=89fdf75a&scoped=true&\"\nimport script from \"./BulkInvoiceGenerationModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./BulkInvoiceGenerationModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BulkInvoiceGenerationModal.vue?vue&type=style&index=0&id=89fdf75a&lang=scss&scoped=true&\"\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 \"89fdf75a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VAvatar,VBtn,VCard,VCardActions,VCardText,VCheckbox,VChip,VCol,VDialog,VForm,VIcon,VListItem,VListItemContent,VListItemTitle,VRow,VSelect,VSpacer,VTextField,VToolbar,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"no-click-animation\":\"\",\"persistent\":\"\",\"max-width\":\"1100\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[(_vm.current)?_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"}},[_c('v-card',{staticClass:\"financial-document-modal__card\"},[_c('v-toolbar',{staticClass:\"financial-document-modal__toolbar\"},[_c('v-toolbar-title',[_c('div',[_c('span',[_vm._v(_vm._s(_vm.title))])])]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',{staticClass:\"financial-document-modal__content\"},[_c('v-card',{staticClass:\"card-wrapper\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('DateField',{attrs:{\"clearable\":true,\"label\":_vm.$t('FinancialDocument.PaymentSlip.Date') + '*',\"outlined\":false,\"disabled\":_vm.model.id != null,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.transactionDate),callback:function ($$v) {_vm.$set(_vm.model, \"transactionDate\", $$v)},expression:\"model.transactionDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('TimeField',{attrs:{\"label\":_vm.$t('FinancialDocument.PaymentSlip.Time') + '*',\"rules\":[_vm.rules.required],\"disabled\":_vm.model.id != null,\"outlined\":false},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 mb-2\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,false,2949744042)},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TimeZoneInfo\"))+\" \")])]},proxy:true}],null,false,2990724583),model:{value:(_vm.model.transactionTime),callback:function ($$v) {_vm.$set(_vm.model, \"transactionTime\", $$v)},expression:\"model.transactionTime\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('FinancialDocument.PaymentSlip.Customer') + '*',\"rules\":[_vm.rules.required],\"append-icon\":\"fas fa-search\",\"disabled\":_vm.model.id != null},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }_vm.lookupOpen = true},\"click:append\":function($event){_vm.lookupOpen = true},\"blur\":_vm.onInputLostFocus},model:{value:(_vm.model.customerName),callback:function ($$v) {_vm.$set(_vm.model, \"customerName\", $$v)},expression:\"model.customerName\"}}),_c('CustomerLookup',{staticClass:\"paymentslip\",attrs:{\"open\":_vm.lookupOpen,\"filterPrefil\":_vm.filterPrefil},on:{\"update:open\":function($event){_vm.lookupOpen=$event},\"selected\":_vm.selected}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.BusinessUnit') + '*',\"items\":_vm.businessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"item-disabled\":function (x) { return x.ownerCustomerId; },\"disabled\":_vm.model.id != null,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.businessUnitId),callback:function ($$v) {_vm.$set(_vm.model, \"businessUnitId\", $$v)},expression:\"model.businessUnitId\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.CashRegister') + '*',\"items\":_vm.cashRegistersForBusinessUnit,\"item-value\":\"id\",\"item-text\":\"name\",\"disabled\":_vm.model.id != null,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.cashRegisterId),callback:function ($$v) {_vm.$set(_vm.model, \"cashRegisterId\", $$v)},expression:\"model.cashRegisterId\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('FinancialDocument.PaymentSlip.Description') + '*',\"items\":_vm.transactionDescriptionsForDocumentType,\"item-value\":\"id\",\"item-text\":\"description\",\"disabled\":_vm.model.id != null,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.transactionDescriptionId),callback:function ($$v) {_vm.$set(_vm.model, \"transactionDescriptionId\", $$v)},expression:\"model.transactionDescriptionId\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[(!!_vm.model)?_c('NumericInput',{attrs:{\"outlined\":false,\"label\":_vm.$t('FinancialDocument.PaymentSlip.Amount') + '*',\"disabled\":_vm.model.id != null,\"rules\":[_vm.rules.required],\"transform\":!!_vm.model.id\n ? 'none'\n : _vm.model.documentTypeId ===\n _vm.financialDocumentTypesEnum.Uplatnica\n ? 'toPositive'\n : 'toNegative'},model:{value:(_vm.model.amount),callback:function ($$v) {_vm.$set(_vm.model, \"amount\", $$v)},expression:\"model.amount\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('FinancialDocument.PaymentSlip.Currency') + '*',\"items\":_vm.currencyItems,\"item-value\":\"id\",\"item-text\":\"text\",\"disabled\":_vm.model.id != null,\"rules\":[_vm.rules.required]},model:{value:(_vm.model.currencyId),callback:function ($$v) {_vm.$set(_vm.model, \"currencyId\", $$v)},expression:\"model.currencyId\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('FinancialDocument.PaymentSlip.AdditionalNote'),\"rows\":\"1\",\"auto-grow\":\"\",\"counter\":\"500\",\"disabled\":_vm.model.id != null,\"rules\":[_vm.maxLength(500)]},model:{value:(_vm.model.additionalNoteForTransaction),callback:function ($$v) {_vm.$set(_vm.model, \"additionalNoteForTransaction\", $$v)},expression:\"model.additionalNoteForTransaction\"}})],1)],1)],1),_c('v-footer',[_c('v-spacer'),(!_vm.model.id)?_c('v-btn',{staticClass:\"mx-1\",attrs:{\"disabled\":_vm.saving,\"loading\":_vm.saving},on:{\"click\":function($event){return _vm.submitDraft([])}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save draft\"))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"disabled\":_vm.saving || !_vm.model.id,\"loading\":_vm.saving},on:{\"click\":_vm.downloadPdfDocument}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Download pdf\"))+\" \")]),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"disabled\":_vm.saving,\"loading\":_vm.saving},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")])],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { cloneDeep, isEqual } from \"lodash\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { AppParam } from \"@/shared/models/appParam\";\nimport { PaymentSlipModel } from \"../reservation-form/types\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport { TransactionDescription } from \"@/shared/models/transactionDescriptionCodebooks\";\nimport NumericInput from \"../misc/NumericInput.vue\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport VCustomer, { CustomerModel } from \"@/shared/models/vCustomer\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport {\n FinancialDocumentTypesEnum,\n TransactiontypeEnum,\n} from \"@/shared/models/enums.type\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport _ from \"lodash\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport {\n PaymentSlipSaveResult,\n PaymentSlipViewModel,\n} from \"./FinancialDocumentFormParts/models\";\n\n@Component({\n name: \"PaymentSlipModalForm\",\n components: {\n DateField,\n NumericInput,\n TimeField,\n CustomerLookup,\n },\n})\nexport default class PaymentSlipModalForm extends Vue {\n @PropSync(\"open\") isOpen?: boolean;\n @Prop() editingModel?: PaymentSlipModel;\n\n @Action(\"codebooks/refreshTransactiontypeDescriptions\")\n refreshTransactiontypeDescriptions?: () => Promise;\n @Getter(\"codebooks/transactionDescriptions\")\n transactionDescriptions?: TransactionDescription[];\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n financialDocumentTypesEnum = FinancialDocumentTypesEnum;\n\n async created() {\n const promises = [];\n if (\n this.transactionDescriptions?.length === 0 &&\n this.refreshTransactiontypeDescriptions\n ) {\n promises.push(this.refreshTransactiontypeDescriptions());\n }\n await Promise.all(promises);\n }\n\n @Watch(\"isOpen\", { immediate: true })\n modelChanged(fresh: boolean, old: boolean) {\n if (fresh && !old && this.editingModel) {\n if (this.currencyItems.length === 1) {\n this.editingModel.currencyId = this.currencyItems[0].id ?? 0;\n }\n this.formRef?.resetValidation();\n this.original = cloneDeep(this.editingModel);\n this.current = cloneDeep(this.editingModel);\n }\n }\n\n original = null as PaymentSlipModel | null;\n\n current = null as PaymentSlipModel | null;\n\n loading = false;\n\n lookupOpen = false;\n clientInfoForm = false;\n\n get model() {\n return this.current;\n }\n\n get filterPrefil() {\n return {\n name: this.model?.customerName || \"\",\n };\n }\n\n get cashRegistersForBusinessUnit() {\n return (\n this.availableCashRegisters?.filter(\n (x) => x.businessUnitId === this.model?.businessUnitId\n ) ?? []\n );\n }\n get transactionDescriptionsForDocumentType() {\n if (this.model?.documentTypeId === FinancialDocumentTypesEnum.Uplatnica) {\n return this.transactionDescriptions?.filter(\n (x) => x.transactionTypeId === TransactiontypeEnum.Deposit\n );\n }\n if (this.model?.documentTypeId === FinancialDocumentTypesEnum.Isplatnica) {\n return this.transactionDescriptions?.filter(\n (x) => x.transactionTypeId === TransactiontypeEnum.Withdrawal\n );\n }\n return [];\n }\n\n get businessUnits() {\n return (\n this.availableBusinessUnits?.filter((x) => !x.isOwnerBusinessUnit) ?? []\n );\n }\n\n // prettier-ignore\n @Getter(\"appParams/formalCurrency\") formalCurrency?: Currency;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n\n @Getter(\"businessUnit/availableBusinessUnits\")\n availableBusinessUnits?: BusinessUnit[];\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n\n @Getter(\"cashRegister/availableCashRegisters\")\n availableCashRegisters?: CashRegisterModel[];\n\n get isLocked() {\n return this.saving;\n }\n\n @Watch(\"model.customerName\")\n nameWatch(fresh: string) {\n if (!fresh && this.model && this.model.id && this.model.id != 0) {\n this.model.customerId = null;\n this.model.customerName = \"\";\n this.selectedCustomer = null;\n }\n }\n\n get currencyItems() {\n if (this.formalCurrency?.id === this.workingCurrency?.id) {\n return [\n {\n id: this.formalCurrency?.id,\n text: this.formalCurrency?.isoCode,\n },\n ];\n } else {\n return [\n {\n id: this.formalCurrency?.id,\n text: this.formalCurrency?.isoCode,\n },\n {\n id: this.workingCurrency?.id,\n text: this.workingCurrency?.isoCode,\n },\n ];\n }\n }\n\n onInputLostFocus() {\n if (this.model) {\n if (this.selectedCustomer && this.model.customerName.length !== 0) {\n this.model.customerName = this.selectedCustomer.name;\n } else {\n this.model.customerId = null;\n this.model.customerName = \"\";\n this.selectedCustomer = null;\n }\n }\n }\n\n selectedCustomer: any = null;\n selected(customer: VCustomer | CustomerModel) {\n const tableCustomer = customer as VCustomer;\n const newCustomer = customer as CustomerModel;\n\n const isTableCustomer = typeof newCustomer.genderId === \"undefined\";\n\n let name = \"\";\n if (isTableCustomer) {\n name = tableCustomer.name;\n } else {\n if (newCustomer.isLegalEntity) {\n name = newCustomer.legalEntityName ?? \"\";\n } else {\n name = [\n newCustomer.firstName,\n newCustomer.middleName,\n newCustomer.lastName,\n ]\n .filter((x) => !!x && x.length > 0)\n .join(\" \");\n }\n }\n\n if (this.model) {\n this.model.customerId = customer.id;\n this.model.customerName = name;\n this.selectedCustomer = _.cloneDeep(this.model);\n } else {\n this.selectedCustomer = undefined;\n }\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n maxDecimals: (value: any) =>\n !(this.countDecimals(+value) > 2) ||\n this.$t(\"Validation.CanOnlyHaveTwoDecimals\"),\n };\n }\n\n maxLength(max: number) {\n return (v: string) =>\n !v || v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get fiscalNumber() {\n if (this.model?.documentIdentifier != undefined) {\n return this.model.documentIdentifier;\n } else {\n return this.model?.documentInternalIdentifier;\n }\n }\n\n get title() {\n if (this.model?.documentTypeId === FinancialDocumentTypesEnum.Uplatnica) {\n return this.model.id != null\n ? this.$t(\"t.FinancialDocumentTypes.PaymentSlip.Deposit\") +\n \" \" +\n (this.storedSettings?.setFiscalNumberAsMain\n ? this.fiscalNumber\n : this.model.documentInternalIdentifier)\n : this.$t(\"FinancialDocument.New.PaymentSlip.Deposit\");\n } else if (\n this.model?.documentTypeId === FinancialDocumentTypesEnum.Isplatnica\n ) {\n return this.model.id != null\n ? this.$t(\"t.FinancialDocumentTypes.PaymentSlip.Withdrawal\") +\n \" \" +\n (this.storedSettings?.setFiscalNumberAsMain\n ? this.fiscalNumber\n : this.model.documentInternalIdentifier)\n : this.$t(\"FinancialDocument.New.PaymentSlip.Withdrawal\");\n }\n return \"\";\n }\n\n get decimalSeparator() {\n const separator = Intl.NumberFormat(this.internalLanguage)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n return separator;\n }\n\n countDecimals(num: number) {\n return num.toString().split(this.decimalSeparator)[1]?.length || 0;\n }\n\n @Ref(\"form\") formRef?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n saving = false;\n messages: string[] = [];\n\n showMessages() {\n const formatSuccessMessages = (x: string[]) =>\n x\n .map((h) => this.$t(h).toString())\n .map((th) => (th.endsWith(\".\") ? th : th + \".\"))\n .join(\" \");\n\n if (this.messages.length > 0) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: formatSuccessMessages(this.messages),\n timeout: 5000,\n });\n }\n\n this.messages = [];\n }\n\n async sleep() {\n await new Promise((resolve) => setTimeout(resolve, 150));\n }\n\n async submitDraft(overrides: string[]) {\n try {\n this.saving = true;\n await this.sleep();\n this.assertSubmitValidity();\n try {\n await this.submit(overrides);\n await this.refreshModelData();\n this.$emit(\"saved\", this.model);\n } finally {\n this.showMessages();\n this.saving = false;\n }\n return true;\n } catch {\n this.saving = false;\n return false;\n }\n }\n\n assertSubmitValidity() {\n const formvalid = this.formRef?.validate() ?? false;\n\n if (!formvalid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Validation.InputErrors\"),\n timeout: 5000,\n });\n throw new Error(\"Validation.InputErrors\");\n }\n }\n\n async submit(overrides: string[]) {\n const formatBrokenRuleNames = (x: string[]) =>\n x\n .map((h) => this.$t(h).toString())\n .map((th) => (th.endsWith(\".\") ? th : th + \".\"))\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n const handleCodes = [\n //\"PaymentSlip.Deposit.WrongValue\",\n //\"PaymentSlip.Withdrawal.WrongValue\",\n ] as string[];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n this.saving = true;\n await Vue.axios\n .post(\n \"financialDocuments/CreatePaymentSlip\",\n {\n transactionDate: this.model?.transactionDate,\n transactionTime: this.model?.transactionTime,\n customerId: this.model?.customerId,\n documentTypeId: this.model?.documentTypeId,\n transactionDescriptionId: this.model?.transactionDescriptionId,\n cashRegisterId: this.model?.cashRegisterId,\n businessUnitId: this.model?.businessUnitId,\n amount: this.model?.amount,\n currencyId: this.model?.currencyId,\n additionalTransactionNote: this.model?.additionalNoteForTransaction,\n overrideRules: overrides,\n },\n isOverriding ? undefined : { adapter }\n )\n .then((res) => {\n const result = res.data as PaymentSlipSaveResult;\n if (this.model) {\n this.model.id = result.id;\n }\n\n this.model?.documentTypeId === FinancialDocumentTypesEnum.Uplatnica\n ? this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n \"FinancialDocument.PaymentSlip.Deposit.SaveSuccess\"\n ),\n timeout: 5000,\n })\n : this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n \"FinancialDocument.PaymentSlip.Withdrawal.SaveSuccess\"\n ),\n timeout: 5000,\n });\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 10000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submitDraft(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n });\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n });\n }\n })\n .finally(() => {\n this.saving = false;\n });\n }\n\n async downloadPdfDocument() {\n if (!this.model) {\n return;\n }\n\n let synced = true;\n // ? if document is locked don't even try, it should already be saved\n // ? and no updates could be made anymore, this is non 100% needed, but a check\n // ? to prevent future possible bugs\n if (this.model.id === null) {\n // saving so pending clientside changes dont differ from backend data\n // and document is the same\n synced = await this.submitDraft([]);\n }\n\n if (synced == true) {\n try {\n // retain saving flag while waiting on pdf download\n this.saving = true;\n const res = await this.axios.get(\n `financialDocuments/${this.model.id}/pdfDocument`,\n {\n params: {\n $skip: 0,\n $top: null,\n },\n responseType: \"blob\",\n }\n );\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n\n saveFile(res.data, groups?.filename ?? \"payment_slip.pdf\");\n\n return res;\n } finally {\n this.saving = false;\n }\n }\n }\n\n close() {\n if (isEqual(this.model, this.original)) {\n this.isOpen = false;\n this.current = null;\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\n \"Changes pending. Are you sure you want to close the form?\"\n ),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.isOpen = false;\n this.current = null;\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 5000,\n });\n }\n }\n\n async refreshModelData() {\n if (!this.model || !this.model.id) return;\n\n Vue.axios\n .get(\n \"financialDocuments/GetPaymentSlip/\" + this.model.id\n )\n .then((res) => {\n if (!this.model || !this.model.id) return;\n\n const result = res.data;\n const issueDate = result.transactionDateTime.substring(0, 10);\n const issueTime = result.transactionDateTime.substring(11, 16);\n\n const newModel = {\n id: this.model.id,\n documentNumber: result.documentNumber,\n documentInternalIdentifier: result.documentInternalIdentifier,\n documentTypeId: result.documentTypeId,\n documentIdentifier: result.documentIdentifier,\n transactionDate: issueDate,\n transactionTime: issueTime,\n customerId: result.customerId,\n customerName: result.customerName,\n amount: result.transactionAmount,\n currencyId: result.currencyId,\n transactionDescriptionId: result.transactionDescriptionId,\n additionalNoteForTransaction: result.additionalNoteForTransaction,\n cashRegisterId: result.cashRegisterId,\n businessUnitId: result.businessUnitId,\n } as PaymentSlipModel;\n\n this.current = newModel;\n this.original = cloneDeep(this.model);\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Errors\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.loading = false;\n });\n }\n disableFooterButtons = false;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentSlipModalForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentSlipModalForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentSlipModalForm.vue?vue&type=template&id=9b93f8ee&scoped=true&\"\nimport script from \"./PaymentSlipModalForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentSlipModalForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PaymentSlipModalForm.vue?vue&type=style&index=0&id=9b93f8ee&lang=scss&scoped=true&\"\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 \"9b93f8ee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VDialog,VFooter,VForm,VIcon,VRow,VSelect,VSpacer,VTextField,VTextarea,VToolbar,VToolbarTitle,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { SortableTableHeader } from \"../generic-pms-table/SortableTableDirective\";\nimport * as _ from \"lodash\";\nimport { DataOptions } from \"vuetify\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { VFinancialDocument } from \"@/shared/models/VFinancialDocument\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { Action, Getter } from \"vuex-class\";\nimport { FinancialDocumentType } from \"@/shared/models/financialDocumentType\";\nimport { FinancialDocumentStatus } from \"@/shared/models/financialDocumentStatus\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport FinancialDocumentModalForm from \"./FinancialDocumentModalForm.vue\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport CreditCardInfoModal from \"@/components/credit-card/CreditCardInfoModal.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport ReservationFormPaymentForm from \"../reservation-form/ReservationFormPaymentForm.vue\";\nimport {\n DistributionChannelTypesEnum,\n PaymentModel,\n PaymentSlipModel,\n} from \"../reservation-form/types\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport CashiersReportExportModal from \"@/components/finances/CashiersReport/CashiersReportExportModal.vue\";\nimport PaymentsReport from \"@/components/finances/PaymentsReport/PaymentsReport.vue\";\nimport {\n CustomerTypeEnum,\n FinancialDocumentTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport { enumToArray } from \"@/shared/commonFunctions\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport {\n SepaResponseModel,\n FinDocsForSEPA,\n} from \"@/shared/models/finDocsForSepaExport\";\nimport SelectedItemsTable from \"../misc/SelectedItemsTable.vue\";\nimport { TenantTypesEnum, InvoiceStatusEnum } from \"@/shared/models/enums.type\";\nimport {\n GlobalFilterProperty,\n UnitLevelOwners,\n} from \"@/store/modules/globalFilters\";\nimport NumericInput from \"../misc/NumericInput.vue\";\nimport { parseStringToDateJS } from \"@/shared/dateFormatUtils\";\nimport { DistributionChannelType } from \"@/shared/models/distributionChannelType\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { Ota } from \"@/shared/models/ota\";\nimport BulkInvoiceGenerationModal from \"@/components/finances/BulkInvoiceGeneration/BulkInvoiceGenerationModal.vue\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport PaymentSlipModalForm from \"./PaymentSlipModalForm.vue\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { policyChecker } from \"@/shared/roles\";\nimport {\n FinancialDocumentFiscalizeResult,\n PaymentSlipViewModel,\n} from \"./FinancialDocumentFormParts/models\";\n\nexport enum ExportTypeEnum {\n SEPA = 1,\n OwnersInvoices = 2,\n AgencyCommissions = 3,\n GuestInvoices = 4,\n}\n\nexport enum ExportDownloadTypeEnum {\n SeparatePDFs = 1,\n SinglePDF = 2,\n}\n\nexport enum ReportDateTypeEnum {\n IssueDate = 1,\n DeliveryDate = 2,\n}\n\nexport enum ReportDownloadTypeEnum {\n SummaryPDF = 1,\n PerDocumentPDF = 2,\n Excel = 3,\n}\n\nexport enum SEPAFilterEnum {\n All = 1,\n WithDuePayment = 2,\n AllPaid = 3,\n}\n\nexport enum ExportSEPATypeEnum {\n OneOrderPerFinancialDocument = 1,\n OneOrderPerOwner = 2,\n}\n\n@Component({\n components: {\n SortableHeadersTable,\n DateField,\n FinancialDocumentModalForm,\n CreditCardInfoModal,\n NoData,\n ReservationFormPaymentForm,\n CashiersReportExportModal,\n PaymentsReport,\n CustomerLookup,\n SelectedItemsTable,\n NumericInput,\n BulkInvoiceGenerationModal,\n PaymentSlipModalForm,\n LoadingOverlay,\n FormDescription,\n },\n})\nexport default class PagedFinancesTable extends Vue {\n settingsOpen = false;\n loading = true;\n\n @Prop({ default: false }) chargeCancellationDisabled?: boolean;\n @Prop({ default: false }) chargeCancellationLoading?: boolean;\n @Prop({ default: false }) invoiceStatusId?: number;\n\n @Prop({ default: false }) markAsOverridenLoading?: boolean;\n\n @Prop({ default: \"page\" }) type?: \"page\" | \"reservationmodal\";\n @Watch(\"type\", { immediate: true })\n typeChanged(fresh: \"page\" | \"reservationmodal\") {\n if (fresh === \"page\") {\n this.headers = [...this.headers];\n } else {\n const reservationmodalIgnoredHeaders = [\"propertyName\"];\n this.headers = this.headers\n .filter((x) => reservationmodalIgnoredHeaders.indexOf(x.value) === -1)\n .map((x) => (x.value === \"customerName\" ? { ...x, active: false } : x));\n }\n }\n\n @Prop() reservationId?: number | null;\n @Watch(\"reservationId\", { immediate: true })\n reservationIdChanged(fresh: number | null) {\n this.filters.reservationId = fresh;\n }\n @Prop() hasCreditCard?: boolean;\n\n // prettier-ignore\n @Action(\"codebooks/refreshFinancialDocumentTypes\")\n refreshDocumentTypes?: () => Promise;\n @Getter(\"codebooks/financialDocumentTypes\")\n financialDocumentTypes?: FinancialDocumentType[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshFinancialDocumentStatuses\")\n refreshDocumentStatuses?: () => Promise;\n @Getter(\"codebooks/financialDocumentStatuses\")\n financialDocumentStatuses?: FinancialDocumentStatus[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshCardTypes\")\n refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshTaxRates\")refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n\n // prettier-ignore\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"businessUnit/availableBusinessUnits\")\n availableBusinessUnits?: BusinessUnit[];\n\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n\n @Getter(\"globalFilters/filteredProperties\")\n properties?: GlobalFilterProperty[];\n @Getter(\"globalFilters/properties\") unitLevelOwners?: UnitLevelOwners[];\n\n @Action(\"codebooks/refreshDistributionChannelTypes\")\n refreshDistributionChannelTypes?: () => Promise;\n @Getter(\"codebooks/distributionChannelTypes\")\n distributionChannelTypes?: DistributionChannelType[];\n\n @Action(\"codebooks/refreshOtas\") refreshOtas?: () => Promise;\n @Getter(\"codebooks/otas\") otas?: Ota[];\n\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n\n @Getter(\"cashRegister/allCashRegisters\")\n allCashRegisters?: CashRegisterModel[];\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n @Getter(\"globalFilters/filteredProperties\")\n filteredProperties?: GlobalFilterProperty[];\n @Action(\"globalFilters/refreshProperties\")\n refreshProperties?: () => Promise;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Watch(\"claims.roles\", { immediate: true })\n rolesWatch() {\n this.headers = [\n {\n text: \"VFinancialDocument.issueDate\",\n value: \"issueDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"issueDate\"],\n },\n {\n text: \"VFinancialDocument.documentType\",\n value: \"documentType\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"documentType\"],\n },\n {\n text: \"VFinancialDocument.status\",\n value: \"status\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"status\"],\n },\n ...(this.cashRegisterFeature\n ? [\n {\n text: \"VFinancialDocument.documentIdentifier\",\n value: \"documentIdentifier\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"documentIdentifier\"],\n },\n {\n text: \"VFinancialDocument.documentInternalIdentifier\",\n value: \"documentInternalIdentifier\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"documentInternalIdentifier\"],\n },\n ]\n : [\n {\n text: \"VFinancialDocument.documentNumberComplete\",\n value: \"documentNumberComplete\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"documentNumberComplete\"],\n },\n ]),\n {\n text: \"VFinancialDocument.customerName\",\n value: \"customerName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"customerName\"],\n },\n {\n text: \"VFinancialDocument.totalDueAmount\",\n value: \"totalDueAmount\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"totalDueAmount, totalDueAmountAltCurrency\"],\n },\n {\n text: \"VFinancialDocument.totalWithVat\",\n value: \"totalWithVat\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"totalWithVat, totalWithVatAltCurrency\"],\n },\n {\n text: \"VFinancialDocument.vat\",\n value: \"vat\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"vat, vatAltCurrency\"],\n },\n {\n text: \"VFinancialDocument.totalWithoutVat\",\n value: \"totalWithoutVat\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"totalWithoutVat, totalWithoutVatAltCurrency\"],\n },\n {\n text: \"VFinancialDocument.paymentMeans\",\n value: \"paymentMeans\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"paymentMeans\"],\n },\n {\n text: \"VFinancialDocument.cardType\",\n value: \"cardType\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"cardType\"],\n },\n {\n text: \"VFinancialDocument.isFiscalized\",\n value: \"isFiscalized\",\n active: true,\n default: false,\n class: \"resize-header header-filter\",\n exportHeaders: [\"isFiscalized\"],\n },\n ...(this.setsFiscalAsMain\n ? [\n {\n text: \"VFinancialDocument.referenceDocument\",\n value: \"referenceDocumentIdentifier\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"referenceDocument\"],\n },\n ]\n : [\n {\n text: \"VFinancialDocument.referenceDocumentInternalIdentifier\",\n value: \"referenceDocumentInternalIdentifier\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"referenceDocumentInternalIdentifier\"],\n },\n ]),\n {\n text: \"VFinancialDocument.propertyName\",\n value: \"propertyName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"propertyName, reservationId\"],\n },\n {\n text: \"VFinancialDocument.dueDate\",\n value: \"dueDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"dueDate\"],\n },\n ...(this.cashRegisterFeature\n ? [\n {\n text: \"VFinancialDocument.CashRegister\",\n value: \"cashRegister\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"CashRegister\"],\n },\n ]\n : []),\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n async created() {\n const promises = [];\n\n if (\n (this.financialDocumentTypes?.length ?? 0) === 0 &&\n this.refreshDocumentTypes\n ) {\n promises.push(this.refreshDocumentTypes());\n }\n\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n promises.push(this.refreshTaxRates());\n }\n\n if (\n (this.financialDocumentStatuses?.length ?? 0) === 0 &&\n this.refreshDocumentStatuses\n ) {\n promises.push(this.refreshDocumentStatuses());\n }\n\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n if (this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n if (\n (this.distributionChannelTypes?.length ?? 0) === 0 &&\n this.refreshDistributionChannelTypes\n ) {\n promises.push(this.refreshDistributionChannelTypes());\n }\n\n if ((this.otas?.length ?? 0) === 0 && this.refreshOtas) {\n promises.push(this.refreshOtas());\n }\n\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n promises.push(this.refreshSalesChannels());\n }\n\n if ((this.properties?.length ?? 0) === 0 && this.refreshProperties) {\n promises.push(this.refreshProperties());\n }\n await Promise.all(promises);\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"financialDocumentId\"],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n headers: SortableTableHeader[] = [];\n\n filters = {\n issueDateFrom: \"\",\n issueDateTo: \"\",\n dueDateFrom: \"\",\n dueDateTo: \"\",\n cardTypeId: null as number | null,\n documentNumberComplete: \"\",\n documentIdentifier: \"\",\n documentInternalIdentifier: \"\",\n customerName: \"\",\n referenceDocument: \"\",\n referenceDocumentInternalIdentifier: \"\",\n propertyName: \"\",\n reservationId: null as number | null,\n };\n\n documentTypeIds = [] as number[];\n documentTypeIdsForInvoiceExport = [\n FinancialDocumentTypesEnum.Racun,\n FinancialDocumentTypesEnum.RacunZaPredujam,\n ] as number[];\n paymentMeansIdsForInvoiceExport = [] as number[];\n propertyIdsForExport = [] as number[];\n statusIds = [] as number[];\n paymentMeansIds = [] as number[];\n cashRegisterIds = [] as number[];\n\n distributionChannel = null as number | null;\n otaOrSalesChannel = null as number | null;\n sepaExportErrorOpen = false;\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"documentTypeIds\")\n watchDocumentTypes(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"statusIds\")\n watchStatus(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"paymentMeansIds\")\n watchPaymentMeansIds(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"cashRegisterIds\")\n watchCashRegisterIds(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"exportPeriodForSepa\", { immediate: false })\n exportPeriodForSepaChanged() {\n if (this.exportPeriodForSepa.length != 1) this.loadForSepa();\n }\n\n @Watch(\"distributionChannel\", { immediate: false })\n distributionChannelChanged() {\n this.debouncedSepaLoad();\n }\n\n @Watch(\"otaOrSalesChannel\", { immediate: false })\n otaOrSalesChannelChanged() {\n this.debouncedSepaLoad();\n }\n\n get issueDatePeriod() {\n const res = [\n this.filters.issueDateFrom\n ? this.filters.issueDateFrom.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.issueDateTo\n ? this.filters.issueDateTo.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set issueDatePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.issueDateFrom = val.length > 0 ? val[0] : \"\";\n this.filters.issueDateTo = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.issueDateFrom = \"\";\n this.filters.issueDateTo = \"\";\n }\n }\n\n get dueDatePeriod() {\n const res = [\n this.filters.dueDateFrom\n ? this.filters.dueDateFrom.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.dueDateTo\n ? this.filters.dueDateTo.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set dueDatePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.dueDateFrom = val.length > 0 ? val[0] : \"\";\n this.filters.dueDateTo = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.dueDateFrom = \"\";\n this.filters.dueDateTo = \"\";\n }\n }\n\n get setsFiscalAsMain() {\n return this.storedSettings?.setFiscalNumberAsMain ?? false;\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n skey = 0;\n\n debouncedLoad = _.debounce(this.load, 500);\n debouncedSepaLoad = _.debounce(this.loadForSepa, 500);\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/financialDocuments\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n refreshSepa() {\n this.debouncedSepaLoad();\n }\n\n get disableMarkAsManuallyOverriden() {\n return (\n !this.reservationId ||\n this.reservationId === 0 ||\n this.invoiceStatusId === InvoiceStatusEnum.ManuallyOverriden\n );\n }\n\n get isTenantAgency() {\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get defaultPeriod() {\n const currentDate = new Date();\n const startOfPastMonth = parseStringToDateJS(\n new Date(\n currentDate.getFullYear(),\n currentDate.getMonth() - 1,\n 1\n ).toLocaleDateString(\"en-US\")\n );\n const endOfPastMonth = parseStringToDateJS(\n new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n 0\n ).toLocaleDateString(\"en-US\")\n );\n\n return [\n startOfPastMonth.toISOString().substring(0, 10),\n endOfPastMonth.toISOString().substring(0, 10),\n ];\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n usePropertyFilter: this.type === \"page\",\n statusIds: this.statusIds.join(\",\"),\n documentTypeIds: this.documentTypeIds.join(\",\"),\n paymentMeansIds: this.paymentMeansIds.join(\",\"),\n cashRegisterIds: this.cashRegisterIds.join(\",\"),\n ...this.filters,\n };\n }\n\n exportToExcel() {\n this.loading = true;\n\n return this.axios\n .get(\"financialDocuments/export/excel\", {\n params: {\n ...this.queryParams,\n $skip: 0,\n $top: null,\n headers: this.headers\n .filter((h) => h.active)\n .flatMap((h) => h.exportHeaders)\n .join(\",\"),\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Finances.xlsx\");\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n async downloadPdfDocument(item: VFinancialDocument) {\n this.loading = true;\n\n const res = await Vue.axios.get(\n `financialDocuments/${item.financialDocumentId}/pdfDocument`,\n {\n params: {\n $skip: 0,\n $top: null,\n },\n responseType: \"blob\",\n }\n );\n\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Finances.xlsx\");\n\n this.loading = false;\n }\n\n get isTenantTypeAgency() {\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get allowedDistributionChannelTypes() {\n if (!this.distributionChannelTypes) {\n return [];\n }\n const types = _.cloneDeep(this.distributionChannelTypes);\n\n if (this.isTenantTypeAgency) {\n return types;\n } else {\n return types?.filter(\n (channel) =>\n channel.id != DistributionChannelTypesEnum.OwnersReservation\n );\n }\n }\n\n openPaymentSlip(documentTypeId: number) {\n this.paymentSlipModel = new PaymentSlipModel(\n documentTypeId,\n this.activeBusinessUnit?.id ?? 0,\n this.activeCashRegister?.id ?? 0\n );\n this.paymentSlipFormOpen = true;\n }\n\n editingOpen = false;\n autoDeleteDocument = false;\n documentId: number | null = null;\n newDocumentTypeId: FinancialDocumentTypesEnum =\n FinancialDocumentTypesEnum.Racun;\n\n async createNew(documentTypeId: number) {\n if (!this.storedSettings || !this.activeBusinessUnit) {\n return;\n }\n\n if (\n documentTypeId === FinancialDocumentTypesEnum.Isplatnica ||\n documentTypeId === FinancialDocumentTypesEnum.Uplatnica\n ) {\n this.openPaymentSlip(documentTypeId);\n } else {\n this.documentId = null;\n this.newDocumentTypeId = documentTypeId;\n this.autoDeleteDocument = false;\n this.editingOpen = true;\n }\n }\n\n rowDoubleClick(e: MouseEvent, { item }: { item: VFinancialDocument }) {\n this.edit(item);\n }\n async edit(item: VFinancialDocument) {\n if (!this.taxRates || this.taxRates.length === 0) return;\n\n if (\n item.typeId === FinancialDocumentTypesEnum.Isplatnica ||\n item.typeId === FinancialDocumentTypesEnum.Uplatnica\n ) {\n this.loading = true;\n\n Vue.axios\n .get(\n \"financialDocuments/GetPaymentSlip/\" + item.financialDocumentId\n )\n .then((res) => {\n const result = res.data;\n const issueDate = result.transactionDateTime.substring(0, 10);\n const issueTime = result.transactionDateTime.substring(11, 16);\n\n this.paymentSlipModel = {\n id: item.financialDocumentId,\n documentNumber: result.documentNumber,\n documentInternalIdentifier: result.documentInternalIdentifier,\n documentIdentifier: result.documentIdentifier,\n documentTypeId: result.documentTypeId,\n transactionDate: issueDate,\n transactionTime: issueTime,\n customerId: result.customerId,\n customerName: result.customerName,\n amount: result.transactionAmount,\n currencyId: result.currencyId,\n transactionDescriptionId: result.transactionDescriptionId,\n additionalNoteForTransaction: result.additionalNoteForTransaction,\n cashRegisterId: result.cashRegisterId,\n businessUnitId: result.businessUnitId,\n } as PaymentSlipModel;\n this.paymentSlipFormOpen = true;\n })\n .finally(() => {\n this.loading = false;\n });\n } else {\n this.openDocument(item.financialDocumentId, false);\n }\n }\n\n openDocument(documentId: number, autoDelete = false) {\n this.documentId = documentId;\n this.autoDeleteDocument = autoDelete;\n this.editingOpen = true;\n }\n\n async fiscalize(item: VFinancialDocument) {\n if (!item || !item.fiscalizationFailed) {\n return;\n }\n\n try {\n this.loading = true;\n\n await this.axios\n .put(`financialDocuments/${item.financialDocumentId}/fiscalize`)\n .then((res) => {\n const result = res.data as FinancialDocumentFiscalizeResult;\n\n if (result.fiscalized) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"FinancialDocument.FiscalizationSuccess\"),\n timeout: 5000,\n });\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.FiscalizationFailed\"),\n timeout: 5000,\n });\n }\n });\n } catch {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.FiscalizationFailed\"),\n timeout: 5000,\n });\n } finally {\n this.loading = false;\n this.load();\n }\n }\n\n async cancel(item: VFinancialDocument) {\n if (!this.taxRates || this.taxRates.length === 0) return;\n\n this.loading = true;\n\n await Vue.axios\n .post(`financialDocuments/${item.financialDocumentId}/cancel`, {\n businessUnitId: this.activeBusinessUnit?.id ?? null,\n cashRegisterId: this.activeCashRegister?.id ?? null,\n })\n .then((res) => this.openDocument(res.data, true))\n .finally(() => (this.loading = false));\n }\n\n deleteItem(item: VFinancialDocument) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmationFinDocs\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item.financialDocumentId);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n });\n }\n deleteItemConfirm(id: number) {\n Vue.axios\n .delete(`/financialDocuments/${id}`)\n .then(() => {\n this.loading = true;\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"FinancialDocuments.DeleteSuccess\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.loading = false;\n this.load();\n });\n }\n\n refresh() {\n this.load();\n }\n\n modalSaved() {\n this.$emit(\"saved\");\n this.load();\n }\n\n documentPaid() {\n this.$emit(\"paid\");\n }\n\n paymentFormOpen = false;\n paymentModel = new PaymentModel();\n\n newPayment(item: VFinancialDocument) {\n this.paymentModel = new PaymentModel();\n this.paymentModel.customerId = item.customerId;\n this.paymentModel.paymentMeansId = item.paymentMeansId;\n this.paymentModel.cardTypeId = item.cardTypeId;\n this.paymentModel.financialDocumentId = item.financialDocumentId;\n this.paymentModel.reservationId = this.reservationId ?? null;\n this.paymentModel.amount =\n item.totalDueAmountAltCurrency ?? item.totalDueAmount;\n\n this.paymentFormOpen = true;\n }\n\n paymentSaved() {\n this.$emit(\"paymentSaved\");\n }\n\n paymentsReportOpen = false;\n openPaymentsReport() {\n this.paymentsReportOpen = true;\n }\n\n cashiersReportExportOpen = false;\n openCashiersReportExport() {\n this.cashiersReportExportOpen = true;\n }\n\n bulkInvoiceGenerationModalOpen = false;\n openbulkInvoiceGenerationModal() {\n this.bulkInvoiceGenerationModalOpen = !this.bulkInvoiceGenerationModalOpen;\n }\n\n paymentSlipFormOpen = false;\n paymentSlipModel = null as PaymentSlipModel | null;\n\n fromDateErpExport = \"\";\n toDateErpExport = \"\";\n filteredBusinessUnits: BusinessUnit[] = [];\n\n exportErpOpen = false;\n\n openErpExport() {\n this.filteredBusinessUnits = this.availableBusinessUnits ?? [];\n this.exportBusinessUnitIds = this.filteredBusinessUnits.map(\n (unit) => unit.id\n );\n this.exportErpOpen = true;\n }\n\n get erpExportDisabled() {\n return this.fromDateErpExport == \"\";\n }\n\n get yesterday() {\n const date = new Date();\n date.setDate(date.getDate() - 1);\n return date.toISOString().substring(0, 10);\n }\n\n get exportErpDates() {\n const res = [\n this.fromDateErpExport\n ? this.fromDateErpExport.substring(0, 10) ?? \"\"\n : \"\",\n this.toDateErpExport ? this.toDateErpExport.substring(0, 10) ?? \"\" : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set exportErpDates(val: string[]) {\n if (val && _.isArray(val)) {\n this.fromDateErpExport = val.length > 0 ? val[0] : \"\";\n this.toDateErpExport = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.fromDateErpExport = \"\";\n this.toDateErpExport = \"\";\n }\n }\n\n valueIsEffectively0(value: number) {\n return value < 0 && value > -0.005;\n }\n\n exportBusinessUnitIds = [] as number[];\n\n renderAsHtml = false;\n\n async exportERP() {\n this.loading = true;\n await this.axios\n .get(`financialDocuments/export/erpExport`, {\n params: {\n FromDate: this.fromDateErpExport,\n ToDate: this.toDateErpExport,\n businessUnitIds: this.exportBusinessUnitIds.join(\",\"),\n },\n })\n .then((res) => {\n if (res.data.isSuccessful) {\n this.renderAsHtml = false;\n this.erpExportResults = {\n isSuccessful: res.data.isSuccessful,\n message: res.data.message.trim(),\n };\n\n if (res.data.fileResult && res.data.fileResult.length > 0) {\n const a = document.createElement(\"a\");\n a.href =\n \"data:\" + res.data.mimeType + \";base64,\" + res.data.fileResult;\n a.download = res.data.fileName;\n a.click();\n }\n } else {\n //format message to unordered list\n if (\n res.data.messageDictionary &&\n Object.keys(res.data.messageDictionary).length > 0\n ) {\n let messageToShow = \"\";\n this.renderAsHtml = true;\n for (const [key, value] of Object.entries(\n res.data.messageDictionary\n )) {\n messageToShow += key + \"

    \";\n const stringValue = value as string[];\n for (const message of stringValue) {\n messageToShow += \"
  • \" + message + \"
  • \";\n }\n messageToShow += \"
\";\n }\n this.erpExportResults = {\n isSuccessful: res.data.isSuccessful,\n message: messageToShow,\n };\n } else {\n this.renderAsHtml = false;\n this.erpExportResults = {\n isSuccessful: res.data.isSuccessful,\n message: res.data.message.trim(),\n };\n }\n }\n })\n .finally(() => {\n this.loading = false;\n this.exportErpOpen = false;\n this.exportErpResultsOpen = true;\n });\n }\n\n exportErpResultsOpen = false;\n erpExportResults = { isSuccessful: false, message: \"\" };\n\n sepaExportMessage = \"\";\n\n @Getter(\"appParams/tenantExportsSEPA\") tenantExportsSEPA?: boolean;\n @Getter(\"appParams/tenantExportsOwnersInvoices\")\n tenantExportsOwnersInvoices?: boolean;\n @Getter(\"appParams/tenantExportsAgencyCommissionInvoices\")\n tenantExportsAgencyCommissionInvoices?: boolean;\n @Getter(\"appParams/tenantExportsGuestInvoices\")\n tenantExportsGuestInvoices?: boolean;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n @Getter(\"appParams/tenantIsAllowedToAsyncBulkGenerateInvoices\")\n tenantIsAllowedToAsyncBulkGenerateInvoices?: boolean;\n\n enumToArray = enumToArray;\n\n ExportTypeEnum = ExportTypeEnum;\n ExportDownloadTypeEnum = ExportDownloadTypeEnum;\n ExportSEPATypeEnum = ExportSEPATypeEnum;\n exportSepaOpen = false;\n invoiceExportOpen = false;\n exportDownloadType = ExportDownloadTypeEnum.SinglePDF;\n SEPAFilterEnum = SEPAFilterEnum;\n finDocFilterType = SEPAFilterEnum.WithDuePayment;\n filterByOwner = true;\n\n taxReportOpen = false;\n ReportDownloadTypeEnum = ReportDownloadTypeEnum;\n ReportDateTypeEnum = ReportDateTypeEnum;\n reportDateType = 1;\n reportDownloadType = 1;\n\n customerLookupOpen = false;\n selectingAllOwners = false;\n selectedOwners = [] as VCustomer[];\n selectedFinDocsForSepa = [] as FinDocsForSEPA[];\n exportPeriod = this.defaultPeriod as string[];\n exportPeriodForSepa = [] as string[];\n exportPeriodForTaxRecap = [] as string[];\n paymentDate = \"\";\n sepaOrder = null as number | null;\n sepaExportType = 1;\n\n exportInProgress = false;\n\n exportInvoices() {\n this.exportInProgress = true;\n this.axios\n .get(\"financialDocuments/export/exportInvoices\", {\n params: {\n exportDownloadType: this.exportDownloadType,\n from: this.exportPeriod[0],\n to: this.exportPeriod[1],\n ownersIds: this.selectedOwners.map((x) => x.id).join(\",\"),\n finDocTypeIds: this.documentTypeIdsForInvoiceExport.join(\",\"),\n propertyIds: this.propertyIdsForExport.join(\",\"),\n paymentMeanIds: this.paymentMeansIdsForInvoiceExport.join(\",\"),\n filterByOwner: this.filterByOwner,\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Export.pdf\");\n })\n .finally(() => {\n this.exportInProgress = false;\n });\n }\n\n exportSepa() {\n this.exportInProgress = true;\n\n const request = {\n finDocs: this.selectedFinDocsForSepa,\n sepaOrder: this.sepaOrder,\n paymentDate: this.paymentDate,\n exportType: this.sepaExportType,\n };\n this.axios\n .post(\"FinancialDocuments/ExportSepa\", request)\n .then((res) => {\n if (res.data.fileResult && res.data.fileResult.length > 0) {\n const a = document.createElement(\"a\");\n a.href =\n \"data:\" + res.data.mimeType + \";base64,\" + res.data.fileResult;\n a.download = res.data.fileName;\n a.click();\n }\n if (\n res.data.messageDictionary &&\n Object.keys(res.data.messageDictionary).length > 0\n ) {\n let messageToShow = \"\";\n this.renderAsHtml = true;\n for (const [key, value] of Object.entries(\n res.data.messageDictionary\n )) {\n messageToShow += key + \"
    \";\n const stringValue = value as string[];\n for (const message of stringValue) {\n messageToShow += \"
  • \" + this.$t(message) + \"
  • \";\n }\n messageToShow += \"
\";\n }\n this.sepaExportMessage = messageToShow;\n }\n })\n .finally(() => {\n this.exportInProgress = false;\n if (this.sepaExportMessage.length > 0) {\n this.sepaExportErrorOpen = true;\n }\n this.refreshSepa();\n });\n }\n\n generateReport() {\n this.exportInProgress = true;\n this.axios\n .get(\"reports/GetTaxRecapitulationReport\", {\n params: {\n dateFrom: this.exportPeriodForTaxRecap[0],\n dateTo: this.exportPeriodForTaxRecap[1],\n dateType: this.reportDateType,\n downloadType: this.reportDownloadType,\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Report.pdf\");\n })\n .finally(() => {\n this.exportInProgress = false;\n });\n }\n\n get disableTaxRecapExportButton() {\n return (\n this.exportPeriodForTaxRecap.length < 2 ||\n this.reportDateType == null ||\n this.reportDownloadType == null\n );\n }\n\n fkey = 0;\n @Watch(\"invoiceExportOpen\")\n exportInvoicesOpenWatch(fresh: boolean, old: boolean) {\n if (fresh) {\n this.loadAllOwners();\n if (this.paymentMeans) {\n this.paymentMeansIdsForInvoiceExport = this.paymentMeans.map(\n (x) => x.id\n );\n }\n if (this.filteredProperties) {\n //we need a selection for 'empty property' so user can export decoupled finDocs as well\n const emptyProperty = {\n propertyId: 0,\n name: this.$t(\"NoProperty\"),\n } as GlobalFilterProperty;\n\n this.propertyIdsForExport = [\n emptyProperty,\n ..._.sortBy(this.filteredProperties, (x) => x.name),\n ].map((x) => x.propertyId);\n }\n this.fkey++;\n }\n if (!fresh && old) {\n this.selectedOwners = [];\n this.documentTypeIdsForInvoiceExport = [\n FinancialDocumentTypesEnum.Racun,\n FinancialDocumentTypesEnum.RacunZaPredujam,\n ];\n this.fkey++;\n }\n }\n\n @Watch(\"exportSepaOpen\")\n exportSepaOpenWatch(fresh: boolean, old: boolean) {\n if (fresh) {\n this.loadAllOwners();\n }\n if (!fresh && old) {\n this.selectedOwners = [];\n this.exportPeriod = this.defaultPeriod;\n this.cleanSepaFilters();\n this.fkey++;\n }\n }\n\n cleanSepaFilters() {\n this.exportPeriodForSepa = [];\n this.finDocsForSepa = [];\n this.selectedFinDocsForSepa = [];\n this.finDocFilterType = SEPAFilterEnum.WithDuePayment;\n this.paymentDate = \"\";\n this.distributionChannel = null;\n this.otaOrSalesChannel = null;\n this.sepaExportType = ExportSEPATypeEnum.OneOrderPerFinancialDocument;\n }\n\n get rules() {\n return {\n required: (value: any[]) =>\n (!!value && value.length > 0) || this.$t(\"Validation.Required\"),\n requiredValue: (value: any) => !!value || this.$t(\"Validation.Required\"),\n };\n }\n\n get vDialogMaxWidth() {\n return this.isTenantAgency ? 1200 : 490;\n }\n\n allOwners = [] as VCustomer[];\n\n finDocsForSepa = [] as FinDocsForSEPA[];\n\n loadAllOwners() {\n this.axios\n .get>(\"/customers\", {\n params: {\n $top: 1000,\n $orderby: \"name asc\",\n customerTypeId: CustomerTypeEnum.Owner,\n },\n })\n .then((res) => {\n this.allOwners = res.data.result;\n this.filterOwnersForOwnerInvoices();\n if (this.invoiceExportOpen) {\n this.selectedOwners = this.allOwners;\n if (this.allOwners.length > 0) {\n this.filterByOwner = true;\n } else {\n this.filterByOwner = false;\n }\n }\n })\n .finally();\n }\n\n filterOwnersForOwnerInvoices() {\n const unitLevelOwners = [] as UnitLevelOwners[];\n this.properties?.forEach((x) =>\n x.unitLevelOwners.forEach((y) => {\n if (!unitLevelOwners.includes(y) && y.id) {\n unitLevelOwners.push(y);\n }\n })\n );\n\n this.allOwners = this.allOwners.filter((owner) => {\n return (\n this.properties?.find(\n (prop) => prop.ownerId && prop.ownerId === owner.id\n )?.isOwnerEligibleForIssuingOwnersInvoices ||\n unitLevelOwners.find((uLOwner) => uLOwner.id === owner.id)\n ?.isOwnerEligibleForIssuingOwnersInvoices\n );\n });\n }\n\n selectedItemsTableLoading = false;\n loadForSepa() {\n this.selectedItemsTableLoading = true;\n this.selectedFinDocsForSepa = [];\n this.axios\n .get(\"/financialDocuments/GetFinDocsForSepaExport\", {\n params: {\n distributionChannel: this.distributionChannel,\n otaOrSalesChannel: this.otaOrSalesChannel,\n issueDateFrom: this.exportPeriodForSepa[0],\n issueDateTo: this.exportPeriodForSepa[1],\n finDocFilterType: this.finDocFilterType,\n paymentDate: this.paymentDate ? this.paymentDate : null,\n },\n })\n .then((res) => {\n this.finDocsForSepa = res.data.finDocs;\n this.sepaOrder = res.data.sepaOrderNumber;\n })\n .finally(() => {\n this.selectedItemsTableLoading = false;\n });\n }\n\n fetchSEPAOrderNumber() {\n this.selectedItemsTableLoading = true;\n this.axios\n .get(\"/financialDocuments/GetOrderNumberForSepaExport\", {\n params: {\n paymentDate: this.paymentDate,\n },\n })\n .then((res) => {\n this.sepaOrder = res.data;\n })\n .finally(() => {\n this.selectedItemsTableLoading = false;\n });\n }\n\n cancelSEPAPaymentsLoading = false;\n cancelSEPAPaymentsDialogOpen = false;\n cancelSEPAPaymentsDate = \"\";\n cancelSEPAPaymentsOrderNumber = null as number | null;\n cancelSEPAPaymentsFilename = \"\";\n\n cancelSEPAPaymentsFilenameChanged() {\n if (this.cancelSEPAPaymentsFilename) {\n const trimmed = this.cancelSEPAPaymentsFilename.trim();\n const withoutFileType = trimmed.split(\".\")[0];\n\n const parts = withoutFileType.split(\"-\");\n if (parts.length === 3) {\n const orderNumber = Number.parseInt(parts[1]);\n const paymentDate = `${parts[2].substring(4)}-${parts[2].substring(\n 2,\n 4\n )}-${parts[2].substring(0, 2)}`;\n\n if (\n !isNaN(orderNumber) &&\n orderNumber > 0 &&\n !/[^0-9]/.test(parts[1]) &&\n this.isIsoDate(paymentDate)\n ) {\n this.cancelSEPAPaymentsOrderNumber = orderNumber;\n this.cancelSEPAPaymentsDate = paymentDate;\n return;\n }\n }\n }\n\n // reset field if parsing fails\n this.cancelSEPAPaymentsOrderNumber = null;\n this.cancelSEPAPaymentsDate = \"\";\n }\n\n get cancelSEPAFilenameValidation() {\n return this.cancelSEPAPaymentsFilename && !this.cancelSEPAPaymentsDate\n ? this.$t(\"SepaExport.CancelPayments.Filename.ParsingError\")\n : \"\";\n }\n\n isIsoDate(value: string) {\n if (!/\\d{4}-\\d{2}-\\d{2}/.test(value)) return false;\n const d = new Date(value);\n return (\n d instanceof Date &&\n !isNaN(d.getTime()) &&\n d.toISOString().substring(0, 10) === value\n ); // valid date\n }\n\n closeCancelSEPAPaymentsDialog() {\n this.cancelSEPAPaymentsDialogOpen = false;\n this.cancelSEPAPaymentsDate = \"\";\n this.cancelSEPAPaymentsOrderNumber = null;\n this.cancelSEPAPaymentsFilename = \"\";\n }\n\n cancelSEPAPaymentsConfirmation() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"SepaExport.CancelPayments.Confirmation\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.cancelSEPAPayments();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n });\n }\n\n cancelSEPAPayments() {\n this.cancelSEPAPaymentsLoading = true;\n this.axios\n .post(\"/financialDocuments/CancelPaymentsFromSEPAExport\", {\n paymentDate: this.cancelSEPAPaymentsDate,\n sepaOrder: this.cancelSEPAPaymentsOrderNumber,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"SepaExport.CancelPayments.Success\"),\n timeout: 5000,\n });\n this.closeCancelSEPAPaymentsDialog();\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"SepaExport.CancelPayments.Failed\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.cancelSEPAPaymentsLoading = false;\n this.refreshSepa();\n });\n }\n\n exportForSepa() {\n this.loadForSepa();\n this.exportSepaOpen = true;\n //this.exportType = ExportTypeEnum.SEPA;\n //this.invoiceExportOpen = true;\n this.skey++;\n }\n\n get disableSepaExport() {\n return (\n !this.paymentDate ||\n !this.sepaOrder ||\n this.sepaOrder < 1 ||\n this.selectedFinDocsForSepa.length < 1\n );\n }\n\n get disableInvoiceExport() {\n return (\n ((this.isTenantAgency || this.exportPeriod.length !== 2) &&\n (this.exportPeriod.length !== 2 ||\n (this.filterByOwner && this.selectedOwners.length == 0))) ||\n this.documentTypeIdsForInvoiceExport.length == 0 ||\n this.propertyIdsForExport.length == 0 ||\n this.paymentMeansIdsForInvoiceExport.length == 0\n );\n }\n\n get showExportForInvoices() {\n return (\n this.tenantExportsOwnersInvoices ||\n this.tenantExportsAgencyCommissionInvoices ||\n this.tenantExportsGuestInvoices\n );\n }\n\n get allCashRegistersSorted() {\n if (this.allCashRegisters) {\n const sortedActveCashRegisters = this.allCashRegisters\n .filter((x) => x.status)\n .sort((a, b) => (a.name !== b.name ? (a.name < b.name ? -1 : 1) : 0));\n\n const sortedDeletedCashRegisters = this.allCashRegisters\n .filter((x) => !x.status)\n .sort((a, b) => (a.name !== b.name ? (a.name < b.name ? -1 : 1) : 0));\n\n return sortedActveCashRegisters.concat(sortedDeletedCashRegisters);\n }\n return [];\n }\n\n selectAllBusinessUnits() {\n this.$nextTick(() => {\n if (this.checkedAllBusinessUnits) {\n this.exportBusinessUnitIds = [];\n } else {\n this.exportBusinessUnitIds = this.filteredBusinessUnits.map(\n (unit) => unit.id\n );\n }\n });\n }\n\n get checkedAllBusinessUnits() {\n return (\n this.exportBusinessUnitIds.length === this.filteredBusinessUnits.length\n );\n }\n\n get checkedSomeBusinessUnits() {\n return (\n this.exportBusinessUnitIds.length > 0 && !this.checkedAllBusinessUnits\n );\n }\n\n selectAllDocumentTypes() {\n this.$nextTick(() => {\n if (this.checkedAllDocumentTypes) {\n this.documentTypeIdsForInvoiceExport = [];\n } else {\n if (this.invoiceExportDocumentTypes) {\n this.documentTypeIdsForInvoiceExport =\n this.invoiceExportDocumentTypes.map((x) => x.id);\n }\n }\n });\n }\n\n selectAllProperties() {\n this.$nextTick(() => {\n if (this.checkedAllProperties) {\n this.propertyIdsForExport = [];\n } else {\n if (this.filteredProperties) {\n this.propertyIdsForExport = [0].concat(\n _.sortBy(this.filteredProperties, (x) => x.name).map(\n (x) => x.propertyId\n )\n );\n }\n }\n });\n }\n\n selectAllPaymentMeans() {\n this.$nextTick(() => {\n if (this.checkedAllPaymentMeans) {\n this.paymentMeansIdsForInvoiceExport = [];\n } else {\n if (this.paymentMeans) {\n this.paymentMeansIdsForInvoiceExport = this.paymentMeans.map(\n (x) => x.id\n );\n }\n }\n });\n }\n\n get checkedAllDocumentTypes() {\n return (\n this.documentTypeIdsForInvoiceExport.length ===\n this.invoiceExportDocumentTypes?.length\n );\n }\n\n get checkedSomeDocumentTypes() {\n return (\n this.documentTypeIdsForInvoiceExport.length > 0 &&\n !this.checkedAllDocumentTypes\n );\n }\n\n get checkedAllProperties() {\n return (\n this.propertyIdsForExport.length ===\n (this.filteredProperties?.length ?? 0) + 1\n );\n }\n\n get checkedSomeProperties() {\n return this.propertyIdsForExport.length > 0 && !this.checkedAllProperties;\n }\n\n get checkedAllPaymentMeans() {\n return (\n this.paymentMeansIdsForInvoiceExport.length === this.paymentMeans?.length\n );\n }\n\n get checkedSomePaymentMeans() {\n return (\n this.paymentMeansIdsForInvoiceExport.length > 0 &&\n !this.checkedAllPaymentMeans\n );\n }\n\n get isOwner() {\n return policyChecker(\"IS_OWNER_ROLE\")(this.claims);\n }\n\n icon(checkedAll: boolean, checkedSome: boolean) {\n if (checkedAll) return \"fa-check-square\";\n if (checkedSome) return \"fa-minus-square\";\n return \"fa-square\";\n }\n\n get allowedFinancialDocumentTypes() {\n let types = _.cloneDeep(this.financialDocumentTypes);\n\n if (!this.isTenantAgency) {\n types = types?.filter(\n (document) =>\n document.id !== FinancialDocumentTypesEnum.VlasnikovRacun &&\n document.id !== FinancialDocumentTypesEnum.RacunZaProviziju\n );\n }\n if (!this.cashRegisterFeature) {\n types = types?.filter(\n (document) =>\n document.id !== FinancialDocumentTypesEnum.Uplatnica &&\n document.id !== FinancialDocumentTypesEnum.Isplatnica\n );\n }\n\n return types;\n }\n\n get invoiceExportDocumentTypes() {\n let types = _.cloneDeep(this.financialDocumentTypes);\n\n if (!this.isTenantAgency) {\n types = types?.filter(\n (x) =>\n x.id !== FinancialDocumentTypesEnum.VlasnikovRacun &&\n x.id !== FinancialDocumentTypesEnum.RacunZaProviziju\n );\n }\n\n types = types?.filter(\n (x) =>\n x.id !== FinancialDocumentTypesEnum.Uplatnica &&\n x.id !== FinancialDocumentTypesEnum.Isplatnica &&\n x.id !== FinancialDocumentTypesEnum.Otpremnica\n );\n\n return types;\n }\n\n get propertiesForExport() {\n if (!this.filteredProperties) return [] as GlobalFilterProperty[];\n //we need a selection for 'empty property' so user can export decoupled finDocs as well\n const emptyProperty = {\n propertyId: 0,\n name: this.$t(\"FinancialDocument.WithoutProperty\"),\n } as GlobalFilterProperty;\n\n return [emptyProperty, ..._.sortBy(this.filteredProperties, (x) => x.name)];\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PagedFinancesTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PagedFinancesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PagedFinancesTable.vue?vue&type=template&id=fc753fb8&scoped=true&\"\nimport script from \"./PagedFinancesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./PagedFinancesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PagedFinancesTable.vue?vue&type=style&index=0&id=fc753fb8&scoped=true&lang=scss&\"\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 \"fc753fb8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VChip,VCol,VDialog,VForm,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VRow,VSelect,VSimpleCheckbox,VSpacer,VTextField,VTextarea})\n","import { EVisitorIntegrationEnum } from \"@/shared/models/enums.type\";\nimport { DateTime } from \"luxon\";\n\nexport class SetCheckedInCustomers {\n constructor(\n public reservationId: number,\n public changeReservationStatusToCheckedIn: boolean,\n ) { }\n payload: CheckedInCustomersOnAccUnitType[] = [];\n}\n\nexport class CheckedInCustomersOnAccUnitType {\n reservationAccUnitTypeId = 0;\n propertyId = null as number | null;\n propertyName = \"\";\n accomodationUnitTypeName = \"\";\n accomodationUnitId = null as number | null;\n accomodationUnitName = \"\";\n reservationAccUnitTypeAllocated = 0;\n reservationAccUnitTypeAllocatedMax = 0;\n reservationAccUnitTypeCheckOutDate = null as string | null;\n reservationAccUnitTypeCheckOutTime = null as string | null;\n propertyCheckOutTime = null as string | null;\n guests: ReservationCheckInCustomerData[] = [];\n isDayStay = false;\n\n get checkedIn() {\n return this.guests.filter(x => x.isCheckedIn || x.isDirty).length;\n }\n\n displayName() {\n return `${this.propertyName}, ${this.accomodationUnitTypeName}, ${this.accomodationUnitName}`;\n }\n\n displayCount() {\n const allocated = this.reservationAccUnitTypeAllocated;\n return `(${this.checkedIn}/${allocated}, max ${this.reservationAccUnitTypeAllocatedMax})`;\n }\n\n isOverTheAllocated() {\n const allocated = this.reservationAccUnitTypeAllocated;\n return this.checkedIn > allocated;\n }\n}\n\nexport class ServerReservationCheckInCustomerData {\n id = 0;\n guestId = 0;\n\n isReservationHolder = false;\n\n firstName = \"\";\n middleName = \"\";\n lastName = \"\";\n genderId = 1;\n eMail = \"\";\n telephoneNumber = \"\";\n city: string | null = null;\n streetName: string | null = null;\n houseNumber: string | null = null;\n countryOfResidenceId: number | null = null;\n countryOfBirthId: number | null = null;\n citizenshipId: number | null = null;\n dateOfBirth: string | null = \"\";\n identificationDocumentNumber = \"\";\n identificationDocumentTypeId: number | null = null;\n\n checkInDate: string | null = \"\";\n checkOutDate: string | null = \"\";\n eVisitorId: string | null = null;\n eVisitorFacilityPropertyId: number | null = null;\n eVisitorFacilityId: number | null = null;\n eVisitorPaymentCategoryId: number | null = null;\n eVisitorArrivalOrganizationTypeId: number | null = null;\n eVisitorCheckInDate: string | null = null;\n eVisitorCheckInTime: string | null = null;\n eVisitorExpectedCheckoutDate: string | null = null;\n eVisitorExpectedCheckoutTime: string | null = null;\n eVisitorCheckoutDate: string | null = null;\n eVisitorCheckoutTime: string | null = null;\n arrivalReasonId: number | null = null;\n\n isCheckedIn = false;\n isCheckedOut = false;\n\n eVisitorIsCheckedIn = false;\n eVisitorIsCheckedOut = false;\n\n reservationPropertyId: number | null = null;\n reservationId: number | null = null;\n accomodationUnitId: number | null = null;\n\n eVisitorCheckOutDateViewField: string | null = null;\n eVisitorCheckOutTimeViewField: string | null = null;\n}\n\nexport class ReservationCheckInCustomerData extends ServerReservationCheckInCustomerData {\n hasScanIssues = false;\n isDirty = false;\n isEmpty = true;\n\n eVisitorCheckinResult: {\n success: boolean;\n message: string;\n } | null = null;\n\n getEffectiveEVisitorPaymentCategoryId(eVisitorIntegrationId: number) {\n if (this.eVisitorPaymentCategoryId) {\n return this.eVisitorPaymentCategoryId;\n }\n\n let effective = null as null | number;\n\n if (eVisitorIntegrationId === EVisitorIntegrationEnum.HR) {\n if (this.dateOfBirth) {\n const age = DateTime.local().diff(\n DateTime.fromISO(this.dateOfBirth),\n \"years\"\n ).years;\n if (age <= 12) {\n effective = eVisitorCityTaxPaymentCategoriesEnum.DijeteDo12;\n } else if (age <= 18) {\n effective = eVisitorCityTaxPaymentCategoriesEnum.Dijete12Do18;\n } else {\n effective = eVisitorCityTaxPaymentCategoriesEnum.Turist;\n }\n }\n }\n else if (eVisitorIntegrationId === EVisitorIntegrationEnum.SL) {\n if (this.dateOfBirth) {\n const age = DateTime.local().diff(\n DateTime.fromISO(this.dateOfBirth),\n \"years\"\n ).years;\n if (age <= 7) {\n effective = eVisitorCityTaxPaymentCategoriesEnum.Exemption_ChildUpTo7_SL_eTurizem;\n } else if (age <= 18) {\n effective = eVisitorCityTaxPaymentCategoriesEnum.HalfPayment_PersonAged7To18_SL_eTurizem;\n } else {\n effective = eVisitorCityTaxPaymentCategoriesEnum.FullPayment_NoException_SL_eTurizem;\n }\n }\n }\n\n return effective;\n }\n}\n\nexport interface EVisitorGuestsViewModel {\n firstName: string;\n middleName: string;\n lastName: string;\n reservationId: number;\n accommodationUnitName: string;\n accommodationUnitTypeName: string;\n propertyName: string;\n arrivalDate: string | null;\n arrivalTime: string | null;\n departureDate: string | null;\n departureTime: string | null;\n eVisitorPaymentCategoryId: number | null;\n eVisitorArrivalOrganizationTypeId: number | null;\n}\n\nexport enum eVisitorArrivalOrganizationTypesEnum {\n Osobno = 1,\n GrupnoAgencijski = 2\n}\n\nexport enum CheckStatusEnum {\n Neprijavljen = 1,\n Prijavljen = 2,\n Odjavljen = 3\n}\n\nexport enum eVisitorCityTaxPaymentCategoriesEnum {\n Turist = 1,\n Dijete12Do18 = 2,\n DijeteDo12 = 3,\n VlasnikKuce = 4,\n SkolskiPaket = 5,\n Daci = 6,\n OsobeDo29IYHF = 7,\n TuristCharter = 8,\n PratiteljInvalida = 9,\n PutniciNaBrodu = 10,\n Studenti = 11,\n SezonskiRadnici = 12,\n Lokalac = 13,\n Invalid = 14,\n SocijalnaSkrb = 15,\n OsobeVlasnikaKuce = 16,\n TuristUKuciStanovikaGrada = 17,\n OwnerOfOriginalOldFamilyHouse_HR_eVisitor = 18,\n\n // SL eTurizem\n FullPayment_NoException_SL_eTurizem = 19,\n Exemption_ChildUpTo7_SL_eTurizem = 20,\n Exemption_MedicalReferral_SL_eTurizem = 21,\n Exemption_PhysicalDisabiltiy_SL_eTurizem = 22,\n Exemption_ChildWithSpecialNeeds_SL_eTurizem = 23,\n Exemption_EducationalProgram_SL_eTurizem = 24,\n Exemption_Students_SL_eTurizem = 25,\n PartialPayment_TemporaryWorkers_SL_eTurizem = 26,\n Exemption_InternationalAgreement_SL_eTurizem = 27,\n Exemption_MountainLodge_PZSMembers_SL_eTurizem = 28,\n Exemption_MunicipalRegulation_SL_eTurizem = 29,\n HalfPayment_PersonAged7To18_SL_eTurizem = 30,\n HalfPayment_IYHF_YouthAccommodation_Aged18To30_SL_eTurizem = 31,\n HalfPayment_CampingTourist_SL_eTurizem = 32,\n HalfPayment_MunicipalRegulation_SL_eTurizem = 33,\n PartialPayment_MunicipalRegulation_SL_eTurizem = 34,\n NoPayment_NoOvernightService_SL_eTurizem = 35,\n Exemption_ParticipantsOfVacationsThroughPublicInterestAssociations_SL_eTurizem = 36,\n Exemption_VolunteersForTheEliminationOfNaturalDisasters_SL_eTurizem = 37,\n Exemption_PoliceOfficersDuringThePeriodOfPerformanceOfDuties_SL_eTurizem = 38\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyTile.vue?vue&type=style&index=0&id=031ccf3f&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsTable.vue?vue&type=style&index=0&id=74f61c57&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{attrs:{\"dense\":_vm.dense,\"single-line\":_vm.singleLine,\"items\":_vm.supportedLanguages,\"value\":_vm.lan,\"item-value\":\"cultureCode\",\"label\":_vm.$t('Language')},on:{\"change\":_vm.languageChange},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),(!_vm.hideLabels)?_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(item.name))]):_vm._e()])]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),(!_vm.hideLabels)?_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(item.name))]):_vm._e()])]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\n\nconst flagImages = require.context('@/assets/images/flags/', false, /\\.png$/)\n\n@Component\nexport default class ScrollLoader extends Vue {\n @Prop({ default: false }) hideLabels!: boolean;\n @Prop({ default: false }) singleLine!: boolean;\n @Prop({ default: false }) dense!: boolean;\n @Getter(\"language/language\") language?: string;\n @Getter(\"language/supportedLanguages\") supportedLanguages?: LanguageView[];\n\n get lan() {\n return this.language;\n }\n\n imgSrc(lang: string) {\n return flagImages('./' + lang + \".png\")\n }\n\n languageChange(e: string) {\n this.$store.dispatch('language/setLanguage', e);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LangPicker.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LangPicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LangPicker.vue?vue&type=template&id=c548483a&\"\nimport script from \"./LangPicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./LangPicker.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentPaymentsModal.vue?vue&type=style&index=0&id=14b593b4&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTable.vue?vue&type=style&index=0&id=7d163a22&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitors.vue?vue&type=style&index=0&id=684999e4&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=style&index=1&id=b6bd6d04&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesFormNew.vue?vue&type=style&index=0&id=5028581f&scoped=true&lang=scss&\"","var map = {\n\t\"./en-GB.png\": \"27bb\",\n\t\"./hr-HR.png\": \"6778\",\n\t\"./sl-SI.png\": \"fafa\"\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 = \"70df\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInModalForm.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesOBRules.vue?vue&type=style&index=0&id=7a4bad9b&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInGuestCard.vue?vue&type=style&index=0&id=84d71ef2&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerLookup.vue?vue&type=style&index=0&id=59c2cfc8&scoped=true&lang=scss&\"","import { FinancialSettingsType } from \"@/store/modules/financial\";\n\nexport type CurrencyConversionService = {\n convertCurrency(value: number, fromCurrencyId: number, toCurrencyId: number): number;\n}\n\nexport function currencyConversionServiceFactory(settings: FinancialSettingsType){\n return {\n convertCurrency(value: number, fromCurrencyId: number, toCurrencyId: number){\n if (fromCurrencyId == toCurrencyId){\n return value;\n }\n else if (fromCurrencyId == settings.workingCurrency.id && toCurrencyId == settings.formalCurrency.id) {\n return value * settings.workingToFormalConversionRate;\n }\n else if (fromCurrencyId == settings.formalCurrency.id && toCurrencyId == settings.workingCurrency.id) {\n return value * settings.formalToWorkingConversionRate;\n }\n //historic currency conversion\n else if (settings.historicCurrency?.id && settings.historicConversionRate && settings.formalCurrency.id == settings.workingCurrency.id && fromCurrencyId == settings.historicCurrency?.id) {\n return value * (1 / settings.historicConversionRate);\n }\n else if (settings.historicCurrency?.id && settings.historicConversionRate && settings.formalCurrency.id == settings.workingCurrency.id && toCurrencyId == settings.historicCurrency?.id) {\n return value * settings.historicConversionRate;\n }\n\n throw new Error(\"Currency conversion failed! Attempted to convert to or from a currency not set as tenant's working or formal currency!\");\n }\n }\n}","import { OfficialRateModel, OfficialRateRuleModel } from \"@/components/property/official-rates/types\";\nimport { isArray } from \"lodash\";\nimport { PriceChange } from \"../calendar/inputs/PriceInput.vue\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\n\n/**\n * Gets the given culture's thousands and decimal separators\n * @param {string} locale - [optional] the locale that the number is represented in. Omit this parameter to use the current locale.\n */\nexport function getSeparators(locale?: string){\n const thousandSeparator = Intl.NumberFormat(locale)\n .format(11111)\n .replace(/\\p{Number}/gu, \"\");\n const decimalSeparator = Intl.NumberFormat(locale)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n\n return {\n thousands: thousandSeparator,\n decimals: decimalSeparator\n }\n}\n\n/**\n * Parse a localized number to a float.\n * @param {string?} stringNumber - the localized number\n * @param {string} locale - [optional] the locale that the number is represented in. Omit this parameter to use the current locale.\n */\nexport function parseLocaleNumber(\n stringNumber: string | null | undefined,\n locale?: string\n): number {\n // removing whitespaces from input\n if (stringNumber) { \n stringNumber = stringNumber.replaceAll(\" \", \"\");\n }\n\n if (\n !stringNumber ||\n stringNumber.trim() === \"\" ||\n stringNumber.trim() === \"-\"|| // dash\n stringNumber.trim() === \"−\" // Unicode Character “−” (U+2212)\n )\n return 0;\n\n const separators = getSeparators(locale);\n\n const result = parseFloat(\n stringNumber\n .replace(new RegExp(\"−\"), \"-\") // this is not the same, it replaces 'minus' wth 'dash'\n .replace(new RegExp(\"\\\\\" + separators.thousands, \"g\"), \"\")\n .replace(new RegExp(\"\\\\\" + separators.decimals), \".\")\n );\n\n return isNaN(result) ? 0 : result;\n}\n\nexport function formatLocaleNumber(\n number: number | null | undefined,\n decimals: number | [number,number] | undefined,\n locale?: string\n): string {\n const [min, max] = isArray(decimals)\n ? decimals\n : [decimals, decimals]\n\n if (number === 0 || number) {\n return Intl.NumberFormat(locale, {\n minimumFractionDigits: min,\n maximumFractionDigits: max,\n })\n .format(number)\n .replace(new RegExp(\"−\"), \"-\"); // this is not the same, it replaces 'minus' wth 'dash'\n // i'm handling it in parse function, but ... i officially hate this character now\n } else {\n return \"\";\n }\n}\n\nexport function round(value: number, decimals = 2){\n let internalValue = value;\n const isNegative = value < 0;\n\n // determine the number by which to multiply and later divide the value in order to get the correct number of decimal places\n const decimalCorrector = 10**decimals;\n\n // JS rounds UP instead of away-from-zero, so we need to flip negative numbers\n // Math.round(-1.5) = -1\n if (isNegative) internalValue *= -1;\n\n // round the value\n internalValue *= decimalCorrector;\n internalValue = Math.round(internalValue + Number.EPSILON);\n internalValue /= decimalCorrector;\n\n // end then flip them back when done\n if (isNegative) internalValue *= -1;\n\n return internalValue;\n}\n\nexport function autoCalculatePrice(\n isInputPriceChanged: boolean,\n officialRateInternal: OfficialRateModel | undefined,\n ownerPayoutPercent: number,\n index?: number,\n uniqueKey?: string\n): void {\n if (!officialRateInternal) return;\n\n const rule = getPriceRule(officialRateInternal, index, uniqueKey);\n\n if (rule) {\n const price = isInputPriceChanged ? rule.inputPrice || 0 : rule.price || 0;\n const newPrice = calculateNewPrice(price, ownerPayoutPercent, isInputPriceChanged);\n\n if (isInputPriceChanged) {\n rule.price = newPrice;\n } else {\n rule.inputPrice = newPrice;\n }\n }\n}\n\n// Helper function to calculate the new price\nfunction calculateNewPrice(\n price: number,\n ownerPayoutPercent: number,\n isInputPriceChanged: boolean\n): number {\n const priceToReturn = isInputPriceChanged\n ? price / (ownerPayoutPercent / 100)\n : price * (ownerPayoutPercent / 100);\n\n return round(priceToReturn);\n}\n\n// Helper function to get the correct price rule based on index or uniqueKey\nfunction getPriceRule(\n officialRateInternal: OfficialRateModel,\n index?: number,\n uniqueKey?: string\n): OfficialRateRuleModel | OfficialRateModel | undefined {\n if (index !== undefined) {\n return officialRateInternal.officialRateRules[index];\n } else if (uniqueKey) {\n return officialRateInternal.officialRateRules.find(\n (rule) => rule.uniqueKey === uniqueKey\n );\n } else {\n return officialRateInternal; // For the main price\n }\n}\n\nexport function autoCalculateAbsolutePrice(\n priceChange: PriceChange,\n inputPriceChanged: boolean,\n obr: OfficialRateRuleModel,\n officialRateInternal: OfficialRateModel | undefined\n) {\n const priceReference = inputPriceChanged \n ? (obr.price ?? 0) \n : (obr.inputPrice ?? 0);\n\n const amount = getRecalculatedAmount(priceChange, priceReference);\n\n if (officialRateInternal) {\n inputPriceChanged \n ? obr.inputPrice = !amount || (amount && amount >= 0) ? amount : 0 //if null -> save null, if negative -> save zero\n : obr.price = !amount || (amount && amount >= 0) ? amount : 0; //if null -> save null, if negative -> save zero\n }\n}\n\nexport function autoCalculatePriceWhenRelative(\n isInputPriceChanged: boolean, \n obr: OfficialRateRuleModel,\n accUnitType: AccomodationUnitTypeViewModel | undefined\n) {\n const ownerPayoutPercent = accUnitType?.propertyOwnerPayoutPercent ?? 0;\n\n if (isInputPriceChanged) {\n obr.price = round((obr.inputPrice || 0) / (ownerPayoutPercent / 100));\n } else {\n obr.inputPrice = round((obr.price || 0) * (ownerPayoutPercent / 100));\n }\n}\n\nexport function getRecalculatedAmount(priceChange: PriceChange, priceReference?: number) : number{\n let amount = !priceChange.percentage\n ? priceChange.value\n : round(((priceReference ?? 0) * (priceChange.value ?? 0)) / 100);\n\n if (!priceReference && priceChange.subtraction) {\n amount = 0;\n }\n\n if (priceChange.addition) {\n amount = (priceReference || priceReference == 0) && amount \n ? priceReference + amount \n : null;\n } \n else if (priceChange.subtraction) {\n amount = (priceReference || priceReference == 0) && amount \n ? priceReference - amount \n : null;\n }\n\n return round(amount ?? 0);\n}\n\nexport function calculatePrice(\n priceChange: PriceChange,\n officialRate: OfficialRateModel | undefined,\n userChangedInputPrice: boolean,\n priceReference?: number,\n options?: {\n isMain?: boolean;\n index?: number;\n uniqueKey?: string;\n }\n): boolean {\n if (!priceChange) return false ;\n\n let changeKey = false;\n \n const amount = getRecalculatedAmount(priceChange, priceReference)\n\n if (userChangedInputPrice) {\n if (options?.isMain && officialRate) {\n const oldValue = officialRate.inputPrice;\n officialRate.inputPrice = amount ?? 0;\n\n if (oldValue === officialRate.inputPrice) changeKey = true;\n } \n else if (options?.index != null && officialRate?.officialRateRules) {\n const oldValue = officialRate.officialRateRules[options.index].inputPrice;\n officialRate.officialRateRules[options.index].inputPrice = amount != null && amount >= 0 ? amount : 0;\n \n if (oldValue === officialRate.officialRateRules[options.index].inputPrice) changeKey = true;\n } \n else if (options?.uniqueKey && officialRate?.officialRateRules) {\n const rule = officialRate.officialRateRules.find((r) => r.uniqueKey === options.uniqueKey);\n \n if (rule) {\n const oldValue = rule.inputPrice;\n rule.inputPrice = amount != null && amount >= 0 ? amount : 0;\n \n if (oldValue === rule.inputPrice) changeKey = true;\n }\n }\n else {\n if (userChangedInputPrice && officialRate) {\n officialRate.inputPrice = amount;\n changeKey = true;\n }\n }\n } \n else {\n if (options?.isMain && officialRate) {\n const oldValue = officialRate.price;\n officialRate.price = amount != null ? amount : 0;\n \n if (oldValue === officialRate.price) changeKey = true;\n } \n else if (options?.index != null && officialRate?.officialRateRules) {\n const oldValue = officialRate.officialRateRules[options.index].price;\n officialRate.officialRateRules[options.index].price = amount != null && amount >= 0 ? amount : 0;\n \n if (oldValue === officialRate.officialRateRules[options.index].price) changeKey = true;\n } \n else if (options?.uniqueKey && officialRate?.officialRateRules) {\n const rule = officialRate.officialRateRules.find((r) => r.uniqueKey === options.uniqueKey);\n \n if (rule) {\n const oldValue = rule.price;\n rule.price = amount != null && amount >= 0 ? amount : 0;\n \n if (oldValue === rule.price) changeKey = true;\n }\n }\n else {\n if (officialRate) {\n officialRate.price = amount;\n changeKey = true;\n }\n }\n }\n\n return changeKey;\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackNav.vue?vue&type=style&index=0&id=c4954660&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_AuthLayout.vue?vue&type=style&index=0&id=76cd2daa&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",attrs:{\"open\":_vm.internalOpen,\"initial\":_vm.initialMessage,\"watched\":_vm.message,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.internalOpen = $event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"loading\":_vm.isSending,\"disabled\":_vm.sendingDisabled},on:{\"click\":_vm.sendMessage}},[_vm._v(_vm._s(_vm.$t(\"Send\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.isSending},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t(\"Message.New\")))])]),_c('v-fade-transition',[(_vm.loadingTemplate)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('v-form',{key:_vm.fkey,staticClass:\"px-6 form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Message.SourceType') + '*',\"item-value\":\"id\",\"item-text\":\"name\",\"items\":_vm.sourceTypes,\"item-disabled\":function (x) { return _vm.sourceTypeDisabled(x); },\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.message.sourceTypeId),callback:function ($$v) {_vm.$set(_vm.message, \"sourceTypeId\", $$v)},expression:\"message.sourceTypeId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Template'),\"item-value\":\"id\",\"item-text\":\"name\",\"items\":_vm.filteredTemplates,\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onTemplateChange},model:{value:(_vm.templateId),callback:function ($$v) {_vm.templateId=$$v},expression:\"templateId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Language'),\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.onTemplateChange},model:{value:(_vm.templateLanguage),callback:function ($$v) {_vm.templateLanguage=$$v},expression:\"templateLanguage\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"label\":_vm.$t('Message.To') + '*',\"items\":_vm.internalRecipients,\"multiple\":\"\",\"hide-selected\":\"\",\"chips\":\"\",\"deletable-chips\":\"\",\"item-text\":function (x) { return _vm.getItemValue(x); },\"rules\":[\n _vm.rules.recipientsRequired(_vm.message.to),\n _vm.message.sourceTypeId == 3 ? _vm.rules.emails(_vm.message.to) : _vm.rules.phone(_vm.message.to)\n ]},on:{\"change\":_vm.recipientsChanged},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.getItemText(item))+\" \")])]}}]),model:{value:(_vm.recipientsArray),callback:function ($$v) {_vm.recipientsArray=$$v},expression:\"recipientsArray\"}})],1),(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Message.Documents'),\"item-value\":\"financialDocumentId\",\"item-text\":function (x) { return ((x.documentType) + \" \" + (_vm.cashRegisterFeatureFlag ? x.documentInternalIdentifier : x.documentNumberComplete) + \" (\" + (_vm.$d(\n new Date(x.issueDate)\n )) + \") - \" + (_vm.$n(x.totalDueAmountAltCurrency, {\n style: 'currency',\n currency: x.altCurrency,\n currencyDisplay: 'code',\n }))); },\"items\":_vm.documents,\"multiple\":\"\",\"chips\":\"\"},model:{value:(_vm.message.attachedDocumentIds),callback:function ($$v) {_vm.$set(_vm.message, \"attachedDocumentIds\", $$v)},expression:\"message.attachedDocumentIds\"}})],1):_vm._e(),(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"v-text-field\"},[_c('label',{staticClass:\"v-label theme--dark\",attrs:{\"for\":\"fileInput\"}},[_vm._v(_vm._s(_vm.$t(\"Message.Attachments\")))]),_c('v-btn',{staticClass:\"mt-1\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.onPickFile}},[_c('v-icon',[_vm._v(\"fas fa-paperclip\")])],1),_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"fileInput\",\"type\":\"file\",\"multiple\":\"\"},on:{\"change\":_vm.onFilesPicked}}),_vm._l((_vm.uploadedFiles),function(file){return _c('v-chip',{key:file.id,staticClass:\"ma-05\",attrs:{\"close\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.downloadAttachment(file.id, file.filename)},\"click:close\":function($event){return _vm.deleteAttachments(file)}}},[_vm._v(\" \"+_vm._s(file.filename)+\" \")])})],2)]):_vm._e(),(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Message.Subject') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.message.subject),callback:function ($$v) {_vm.$set(_vm.message, \"subject\", $$v)},expression:\"message.subject\"}})],1):_vm._e(),(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('Message.Body') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.message.body),callback:function ($$v) {_vm.$set(_vm.message, \"body\", $$v)},expression:\"message.body\"}})],1):_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Message.Body') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.message.body),callback:function ($$v) {_vm.$set(_vm.message, \"body\", $$v)},expression:\"message.body\"}})],1),(_vm.isReplyOrForward)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.baseMessageBody)}})]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Vue,\n Prop,\n Watch,\n PropSync,\n Ref,\n} from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport {\n BaseMessageTypeEnum,\n ComposedMessage,\n MessageSourceTypeEnum,\n MessageViewModel,\n NewMessageModel,\n Recipient,\n} from \"./types\";\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport { MessageSourceType } from \"@/shared/models/messageSourceType\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { VFinancialDocument } from \"@/shared/models/VFinancialDocument\";\nimport * as _ from \"lodash\";\nimport { FinancialDocumentStatusEnum } from \"@/shared/models/enums.type\";\nimport { NotificationTemplateViewModel } from \"./templates/types\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { DateTime } from \"luxon\";\nimport { saveFile } from \"@/shared/saveFile\";\n\n@Component({\n components: {\n RightDrawer,\n RichTextEditor,\n },\n})\nexport default class MessageForm extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop({ default: () => [] }) recipients?: Recipient[];\n @Prop() baseMessage?: MessageViewModel;\n @Prop() baseMessageType?: number;\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeatureFlag?: boolean;\n\n fkey = 0;\n\n get isReplyOrForward() {\n return this.baseMessageType != BaseMessageTypeEnum.NewMessage\n ? true\n : false;\n }\n\n get attachments() {\n return this.baseMessage?.messageAttachments ?? [];\n }\n\n formatRecipients(item: MessageViewModel) {\n let newMessageRecipients: Recipient[] = [];\n\n if (\n this.baseMessageType == BaseMessageTypeEnum.Reply ||\n this.baseMessageType == BaseMessageTypeEnum.ReplyToAll\n ) {\n newMessageRecipients = [\n {\n name: \"\",\n type: \"Original sender\",\n email: item.from,\n } as Recipient,\n ];\n }\n\n if (this.baseMessageType == BaseMessageTypeEnum.ReplyToAll) {\n newMessageRecipients.push(\n ...item.messageRecipients\n .filter((y) => y.to !== item.from && !y.isBcc)\n .map((x) => {\n return {\n name: \"\",\n type: \"Recipient\",\n email: x.to,\n } as Recipient;\n })\n );\n }\n\n return newMessageRecipients;\n }\n\n formatSubject(item: MessageViewModel) {\n if (\n this.baseMessageType == BaseMessageTypeEnum.Reply ||\n this.baseMessageType == BaseMessageTypeEnum.ReplyToAll\n ) {\n if (item.subject.startsWith(\"RE: \") || item.subject.startsWith(\"RE:\")) {\n return item.subject;\n } else {\n return `RE: ${item.subject}`;\n }\n } else if (this.baseMessageType == BaseMessageTypeEnum.Forward) {\n if (item.subject.startsWith(\"FW: \") || item.subject.startsWith(\"FW:\")) {\n return item.subject;\n } else {\n return `FW: ${item.subject}`;\n }\n }\n\n return item.subject;\n }\n\n @Watch(\"open\")\n openWatch(fresh: boolean) {\n if (fresh) {\n this.fkey++;\n this.templateId = null;\n this.templateLanguage = this.internalLanguage;\n\n // set default values\n this.message = new NewMessageModel();\n\n this.isMsgSent = false;\n this.uploadedFiles = [];\n\n // set default source type\n this.message.reservationId = this.baseMessage?.reservationId ?? null;\n this.message.customerId = this.baseMessage?.customerId ?? null;\n this.message.sourceTypeId = MessageSourceTypeEnum.EMail;\n this.loadTemplates();\n\n if (this.baseMessage && this.isReplyOrForward) {\n this.message.attachmentsIds = this.baseMessage.messageAttachments.map(\n (x) => x.documentId\n );\n this.uploadedFiles = this.baseMessage.messageAttachments.map((x) => {\n return { filename: x.name, id: x.documentId, forwarded: true };\n });\n this.message.parentMessageId = this.baseMessage.id ?? null;\n this.message.subject = this.formatSubject(this.baseMessage);\n this.recipientsArray = this.formatRecipients(this.baseMessage);\n this.recipientsChanged(this.recipientsArray);\n }\n // set default recipient if they have the correct message source type value (email, phone number, etc.)\n else if (this.message.customerId) {\n const recipient = this.recipients?.find(\n (x) => x.id == this.message.customerId\n );\n if (recipient) {\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail: {\n if (recipient.email) this.recipientsArray = [recipient];\n break;\n }\n case MessageSourceTypeEnum.SMS: {\n if (recipient.telephoneNumber) this.recipientsArray = [recipient];\n break;\n }\n case MessageSourceTypeEnum.WhatsApp: {\n if (recipient.telephoneNumber) this.recipientsArray = [recipient];\n break;\n }\n default: {\n break;\n }\n }\n this.recipientsChanged(this.recipientsArray);\n }\n }\n\n // get available documents if message is for reservation\n if (this.message.reservationId) {\n this.getReservationDocuments();\n }\n\n // set initial message for change tracking\n this.initialMessage = _.cloneDeep(this.message);\n } else {\n this.deleteAttachments();\n }\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n @Getter(\"codebooks/messageSourceTypes\")\n sourceTypes?: MessageSourceType[];\n @Action(\"codebooks/refreshMessageSourceTypes\")\n refreshSourceTypes?: () => Promise;\n\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language?.split('-')[0] ?? \"hr-HR\";\n }\n @Getter(\"codebooks/languages\")\n languages?: LanguageView[];\n @Action(\"codebooks/refreshLanguages\")\n refreshLanguages?: () => Promise;\n\n async created() {\n const promises = [];\n\n if ((this.sourceTypes?.length ?? 0) === 0 && this.refreshSourceTypes) {\n promises.push(this.refreshSourceTypes());\n }\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n sourceTypeDisabled(type: MessageSourceType) {\n return type.id != MessageSourceTypeEnum.EMail && type.id != MessageSourceTypeEnum.SMS;\n }\n\n templateLanguage = \"\";\n templateId = null as number | null;\n loadingTemplate = false;\n templates = [] as NotificationTemplateViewModel[];\n\n get filteredTemplates() {\n return this.templates.filter((x) => x.sourceTypeIds?.includes(this.message.sourceTypeId))\n }\n\n \n loadTemplates() {\n this.axios\n .get>(\"/notificationTemplates\", {})\n .then((res) => {\n this.templates = res.data.result;\n });\n }\n onTemplateChange() {\n this.additionalRecipients = [];\n\n if (!this.templateId || !this.message.reservationId) return;\n\n this.loadingTemplate = true;\n this.axios\n .get(\"notificationTemplates/GetComposedMessage\", {\n params: {\n templateId: this.templateId,\n reservationId: this.message.reservationId,\n cultureCode: this.templateLanguage ?? this.internalLanguage,\n },\n })\n .then((res) => {\n this.additionalRecipients.push(...res.data.additionalRecipients.map(x => {\n return {\n id: 0,\n type: x.type,\n name: x.name,\n email: x.email\n } as Recipient\n }));\n\n this.message.subject =\n this.baseMessageType == BaseMessageTypeEnum.NewMessage\n ? res.data.subject\n : this.message.subject;\n this.message.body = res.data.body;\n this.message.attachedDocumentIds = this.documents\n .filter((x) =>\n res.data.attachmentDocumentsIds.includes(x.financialDocumentId)\n )\n .map((x) => x.financialDocumentId);\n\n if (this.baseMessage && this.isReplyOrForward) {\n this.recipientsArray = this.formatRecipients(this.baseMessage);\n this.recipientsChanged(this.recipientsArray);\n } else {\n let recipients = [\n ...(this.recipients?.filter((x) =>\n res.data.recipientsIds.includes(x.id)\n ) ?? []),\n ];\n\n // filter out recipients with missing source type value (email, phone number, etc.)\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail: {\n recipients = recipients.filter((x) => x.email).concat(this.additionalRecipients.filter(x => x.email));\n break;\n }\n case MessageSourceTypeEnum.SMS: {\n recipients = recipients.filter((x) => x.telephoneNumber);\n break;\n }\n case MessageSourceTypeEnum.WhatsApp: {\n recipients = recipients.filter((x) => x.telephoneNumber);\n break;\n }\n default: {\n recipients = [];\n break;\n }\n }\n\n this.recipientsArray = recipients;\n this.recipientsChanged(this.recipientsArray);\n }\n })\n .finally(() => {\n this.loadingTemplate = false;\n });\n }\n\n get baseMessageBody() {\n let bodyToReturn = \"\";\n\n if (this.baseMessage) {\n const date = DateTime.fromISO(this.baseMessage.date);\n bodyToReturn = bodyToReturn\n .concat(`

`)\n .concat(`
From: ${this.baseMessage.from}
`)\n .concat(`
Sent: ${date.toFormat(\"dd.MM.yyyy HH:mm\")}
`)\n .concat(\n `
To: ${this.baseMessage.messageRecipients\n .filter((y) => !y.isCc && !y.isBcc)\n .map((x) => x.to)\n .join(\"; \")}
`\n )\n .concat(\n `
Cc: ${this.baseMessage.messageRecipients\n .filter((y) => y.isCc)\n .map((x) => x.to)\n .join(\"; \")}
`\n )\n .concat(`
Subject: ${this.baseMessage.subject}

`)\n .concat(this.baseMessage.body);\n }\n\n return bodyToReturn;\n }\n\n recipientsArray: Recipient[] = [];\n\n message = new NewMessageModel();\n initialMessage = new NewMessageModel();\n isFormValid = false;\n isSending = false;\n get sendingDisabled() {\n return !this.isFormValid || this.isSending;\n }\n\n additionalRecipients: Recipient[] = [];\n get internalRecipients() {\n const recipients = this.recipients?.concat(...this.additionalRecipients);\n\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail:\n if (this.isReplyOrForward && this.baseMessage) {\n return this.formatRecipients(this.baseMessage);\n } else {\n return recipients?.filter((x) => x.email) ?? [];\n }\n case MessageSourceTypeEnum.SMS:\n return this.recipients?.filter((x) => x.telephoneNumber) ?? [];\n case MessageSourceTypeEnum.WhatsApp:\n return this.recipients?.filter((x) => x.telephoneNumber) ?? [];\n default:\n return [];\n }\n }\n\n @Watch(\"message.sourceTypeId\")\n watchSourceTypeId() {\n this.recipientsArray = [];\n this.message.body = \"\";\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail: {\n const recipientEmail = this.recipientsArray.find(x => x.type === 'Reservation holder');\n this.message.to = [recipientEmail?.email ?? ''];\n break;\n }\n case MessageSourceTypeEnum.SMS: {\n const recipientSMS = this.recipientsArray.find(x => x.type === 'Reservation holder');\n this.message.to = [recipientSMS?.telephoneNumber ?? ''];\n break;\n } \n case MessageSourceTypeEnum.WhatsApp: {\n const recipientSMS = this.recipientsArray.find(x => x.type === 'Reservation holder');\n this.message.to = [recipientSMS?.telephoneNumber ?? ''];\n break;\n } \n }\n }\n\n get isSMSOrWhatsApp() {\n return this.message.sourceTypeId == MessageSourceTypeEnum.WhatsApp || this.message.sourceTypeId == MessageSourceTypeEnum.SMS;\n }\n\n getItemText(item: Recipient) {\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail:\n return `${item.name} (${this.$t(item.type)}) - ${item.email}`;\n case MessageSourceTypeEnum.SMS:\n return `${item.name} (${this.$t(item.type)}) - ${item.telephoneNumber}`;\n case MessageSourceTypeEnum.WhatsApp:\n return `${item.name} (${this.$t(item.type)}) - ${item.telephoneNumber}`;\n default:\n return item.name;\n }\n }\n\n getItemValue(item: Recipient) {\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail:\n return item.email;\n case MessageSourceTypeEnum.SMS:\n return item.telephoneNumber;\n case MessageSourceTypeEnum.WhatsApp:\n return item.telephoneNumber;\n default:\n return item.name;\n }\n }\n\n recipientsChanged(values: any[]) {\n const result = [] as string[];\n switch (this.message.sourceTypeId) {\n case MessageSourceTypeEnum.EMail: {\n const maped = values.map((x) =>\n typeof x == \"string\" ? (x as string) : (x.email as string)\n );\n result.push(...maped);\n break;\n }\n case MessageSourceTypeEnum.SMS: {\n const maped = values.map((x) =>\n typeof x == \"string\" ? (x as string) : (x.telephoneNumber as string)\n );\n result.push(...maped);\n break;\n }\n case MessageSourceTypeEnum.WhatsApp: {\n const maped = values.map((x) =>\n typeof x == \"string\" ? (x as string) : (x.telephoneNumber as string)\n );\n result.push(...maped);\n break;\n }\n default: {\n break;\n }\n }\n\n this.message.to = result;\n }\n\n loading = false;\n documents: VFinancialDocument[] = [];\n excludeDocumentStatues = [FinancialDocumentStatusEnum.UIzradi];\n getReservationDocuments() {\n if (!this.message.reservationId) return;\n\n this.axios\n .get>(\"/financialDocuments\", {\n params: {\n $top: 1000,\n reservationId: this.message.reservationId,\n statusIdsExcluded: this.excludeDocumentStatues.join(\",\"),\n },\n })\n .then((x) => {\n this.documents = x.data.result;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n uploadedFiles: any[] = [];\n isMsgSent = false;\n\n sendMessage() {\n this.isSending = true;\n\n if(this.message.sourceTypeId === MessageSourceTypeEnum.SMS || this.message.sourceTypeId === MessageSourceTypeEnum.WhatsApp)\n {\n this.message.body = this.message.body.replace(/<(.|\\n)*?>/g, '');\n }\n\n this.axios\n .post(\"/messages/SendMessage\", this.message)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Message.SendSuccess\"),\n timeout: 5000,\n } as Notification);\n this.$emit(\"messageSent\");\n this.initialMessage = _.cloneDeep(this.message);\n this.internalOpen = false;\n this.isMsgSent = true;\n })\n .finally(() => {\n this.isSending = false;\n });\n }\n\n deleteAttachments(file?: any) {\n if (this.isMsgSent || this.message.attachmentsIds.length < 1) {\n return;\n }\n\n if (\n this.baseMessageType == BaseMessageTypeEnum.Forward &&\n file &&\n file.forwarded\n ) {\n this.message.attachmentsIds = this.message.attachmentsIds.filter(\n (x) => x !== file.id\n );\n this.uploadedFiles = this.uploadedFiles.filter((x) => x.id !== file.id);\n\n return;\n }\n\n let ids = [];\n if (file) {\n ids.push(file.id);\n } else {\n ids = this.uploadedFiles\n .filter((x) => x.forwarded != true)\n .map((x) => x.id);\n }\n if (ids.length > 0) {\n this.isSending = true;\n this.axios\n .delete(\"/documents/deleteDocuments\", { data: { ids: ids } })\n .then(() => {\n if (file) {\n this.message.attachmentsIds = this.message.attachmentsIds.filter(\n (x) => x !== file.id\n );\n this.uploadedFiles = this.uploadedFiles.filter(\n (x) => x.id !== file.id\n );\n } else {\n this.message.attachmentsIds = [];\n this.uploadedFiles = [];\n }\n })\n .finally(() => {\n this.isSending = false;\n });\n }\n }\n\n @Ref(\"fileInput\") fileInput?: HTMLInputElement;\n\n onPickFile() {\n this.fileInput?.click();\n }\n\n onFilesPicked() {\n const files = this.fileInput?.files;\n\n if (!files) {\n return;\n }\n\n this.isSending = true;\n const formData = new FormData();\n for (let i = 0; i < files.length; i++) {\n formData.append(\"files\", files[i]);\n }\n\n this.axios\n .post(\"/documents/uploadDocuments\", formData)\n .then((res) => {\n this.message.attachmentsIds = this.message.attachmentsIds.concat(\n res.data.map((x: any) => x.id)\n );\n this.uploadedFiles = this.uploadedFiles.concat(res.data);\n })\n .catch(() => {\n //google Chrome did not fire the change event on the same file, this reset input\n if (this.fileInput) {\n this.fileInput.value = \"\";\n }\n })\n .finally(() => {\n this.isSending = false;\n });\n }\n\n async downloadAttachment(documentId: number, attachmentName: string) {\n await this.$http\n .get(`documents/${documentId}`, {\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? attachmentName);\n });\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n recipientsRequired: (value: string[]) =>\n value?.length > 0 || this.$t(\"Validation.Required\"),\n emails: (value: string[]) => {\n if(this.message.sourceTypeId == MessageSourceTypeEnum.EMail) {\n return !value?.some((x) => !/^$|.+@.+\\..+/.test(x)) || this.$t(\"Validation.EmailFormat\");\n } else {\n return true;\n }\n },\n phone: (value: string[]) => {\n if(this.message.sourceTypeId == MessageSourceTypeEnum.SMS || this.message.sourceTypeId == MessageSourceTypeEnum.WhatsApp) {\n return !value?.some((x) => !/^\\+[1-9]\\d{1,14}$/.test(x)) || this.$t(\"Validation.PhoneFormat\");\n } else {\n return true;\n }\n }\n };\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MessageForm.vue?vue&type=template&id=3ccf1ca4&scoped=true&\"\nimport script from \"./MessageForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./MessageForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MessageForm.vue?vue&type=style&index=0&id=3ccf1ca4&scoped=true&lang=scss&\"\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 \"3ccf1ca4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBtn,VChip,VCol,VCombobox,VFadeTransition,VForm,VIcon,VOverlay,VProgressCircular,VRow,VSelect,VSpacer,VTextField,VToolbar})\n","import { RatePlanTranslation } from \"@/shared/models/ratePlanModel\";\nimport { PaymentQueryViewModel } from \"@/shared/models/payment\"\n\nexport class OwnerModel {\n id = 0;\n name = \"\";\n email = \"\";\n telephoneNumber = \"\";\n}\n\nexport class ReservationCustomerModel {\n id = 0;\n name = \"\";\n eMail = \"\";\n telephoneNumber = \"\";\n countryOfResidenceId: number | undefined = undefined;\n isLegalEntity = false;\n identificationNumber = \"\";\n status = false;\n}\n\nexport class ReservationGuestModel extends ReservationCustomerModel {\n reservationsAccUnitTypeGuestId = 0;\n checkInDate?: Date;\n checkOutDate?: Date;\n isCheckedIn = false;\n isCheckedOut = false;\n isEVisitorCheckedIn = false;\n isEVisitorCheckedOut = false;\n isRoomHolder = false;\n city?: string;\n dateOfBirth?: Date | string;\n eVisitorCheckInDate?: Date;\n eVisitorCheckOutDate?: Date;\n menuShown = false;\n}\n\nexport class ReservationGuestUpdateFeedbackModel {\n isSuccessful = true;\n guestsWithErrors: ReservationGuestWithErrorsModel[] = [];\n}\n\nexport class ReservationGuestWithErrorsModel {\n guestName = \"\";\n errorMessage = \"\";\n}\n\nexport class ReservationModel {\n id = 0;\n currencyId: number | null = null;\n\n // holder and sales channel\n customerId = 0;\n customer = new ReservationCustomerModel();\n distributionChannelTypeId = 0;\n salesChannelId: number | null = null;\n otaid: number | null = null;\n otareservationId = \"\";\n isChannexIdPresent = false;\n hasSavedCreditCard = false;\n bookingDate = new Date().toISOString().substr(0, 10);\n\n paymentMeansId: number | null = null;\n paymentMeanBaseId: number | null = null;\n cardTypeId: number | null = null;\n\n // stay period\n arrivalDate: Date | null = null;\n departureDate: Date | null = null;\n statusId = 1;\n optionExpirationDate: string | null = null;\n\n numberOfAdults?: number = 0;\n numberOfChildren?: number = 0;\n numberOfPets?: number = 0;\n numberOfUnits?: number = 0;\n\n childrenAges?: number[] = [];\n\n // units\n accomodationUnitTypes: ReservationAccUnitModel[] = [];\n originalUnitTypesReservationWasOpenedWith: ReservationAccUnitModel[] = [];\n\n // remarks\n guestRemarks = \"\";\n propertyStaffRemarks = \"\";\n remarksForOwner = \"\";\n maintenanceStaffRemarks = \"\";\n tags: string[] = [];\n\n colorCodeHex = null as string | null;\n\n hasCancelationOverride = false;\n hasPrepaymentOverride = false;\n\n isManualSalesChannelChanged = false;\n\n isOTACollect = false;\n\n invoiceStatusId: number | null = null;\n amountToInvoice: number | null = null;\n totalPaidByGuest = 0;\n}\n\nexport class ReservationAccUnitModel {\n id = 0;\n statusId?: number = undefined;\n reservationId = 0;\n isInvoiced = false;\n isInvoicedForOwner = false;\n\n accomodationUnitTypeId = 0;\n\n propertyId?: number = undefined;\n propertyPaysVat?: boolean = undefined;\n city?: string;\n propertyDefaultBusinessUnitId?: number = undefined;\n checkOutTimeUntil = \"\";\n\n agencyWorkModelId?: number = undefined;\n vatCategoryForPrepayments?: number = undefined;\n vatCategoryForPrepaymentTaxRateId?: number = undefined;\n ownerPaysVAT = false;\n ownerIsLegalEntity = false;\n ownerId?: number = undefined;\n ownerIsResident = false;\n ownerVatId = \"\";\n\n unitPaysCityTax?: boolean = undefined;\n propertyOwner = new OwnerModel();\n unitOwner = new OwnerModel();\n propertyManager = new OwnerModel();\n accomodationUnitId?: number = undefined;\n occupancyBasedRuleId?: number = undefined;\n\n ratePlan?: SelectedRatePlanModel = undefined;\n ratePlansAccomodationUnitTypeId?: number = undefined;\n\n arrivalDate = \"\";\n departureDate = \"\";\n numberOfNights = 0;\n expectedArrivalTime: string | null = null;\n expectedDepartureTime: string | null = null;\n\n numberOfAdults = 0;\n numberOfChildren = 0;\n numberOfPets = 0;\n childrenAges: number[] = [];\n\n guests: ReservationGuestModel[] = [];\n\n selectedServices: AddOnServiceModel[] = [];\n ownerAddOnServicesPrice?: number = undefined;\n ownerAccommodationPrice?: number = undefined;\n ownerTotalPrice?: number = undefined;\n\n translations: ReservationAccUnitTranslation[] = [];\n\n // available options (services, units, rate plans, obrs, serviceTypes)\n availableServices: AddOnServiceModel[] = [];\n accomodationUnitOptions: AccomodationUnitModel[] = [];\n ratePlanOptions: RatePlanModel[] = [];\n agencyFeesTotal: number | null = null;\n propertyAgencyFees: ReservationAgencyFeeModel[] = [];\n appliedAgencyFees: ReservationAgencyFeeModel[] = [];\n\n // price\n discountPercent: number | null = null;\n discountInputPercent: number | null = null;\n dayPrices: {\n date: Date;\n price: number;\n inputPrice: number;\n inputPriceBeforeCommission: number;\n serviceTypeId?: number | undefined;\n mergedCityTaxAmount: number;\n }[] = [];\n pricePerNight: number | null = null;\n userSetPricePerNightManually = false;\n\n currentDayPrices: {\n date: Date;\n price: number;\n ratePlanAccomodationUnitTypeId: number;\n occupancyBasedRuleId?: number;\n }[] = [];\n\n // rack rates\n officialRates: ReservationAccomodationUnitTypeOfficialRateModel[] = [];\n\n // display info\n propertyName = \"\";\n propertyCheckoutTimeUntil = \"\";\n accomodationUnitTypeName = \"\";\n accomodationUnitName = \"\";\n accomodationUnitStatus?: number = undefined;\n\n maxNumberOfAdults = 0;\n maxNumberOfChildren = 0;\n maxOccupancy = 0;\n allowedOccupancy = 0;\n\n damageDeposit?: number | \"\";\n depositCurrencyId?: number;\n\n channelCommission: number | null = null;\n channelCommissionPercent: number | null = null;\n ownerPaysOTACommission = false;\n inputPriceWasManuallyChanged = false;\n\n maintenanceStaffRemarks = \"\";\n guestPlaceholder: string | null = null;\n\n manuallyChangedRatePlan = false;\n}\n\nexport interface AddOnServiceModel {\n id: number;\n addOnServiceId: number;\n name: string;\n\n isInvoiced: boolean;\n\n netUnitPrice: number;\n quantity: number;\n decimalQuantity: number;\n defaultQuantity: number;\n grossPrice: number;\n grossUnitPrice: number;\n discountPercent: number;\n taxRateId: number;\n consumptionTaxRate: number | null;\n calculationMethodId: number;\n currencyId: number;\n taxExemptionReason: string;\n\n unitOfMeasureId: number;\n\n isIncludedInPrice: number;\n isCityTax: boolean;\n isBookingFee: boolean;\n isTransfer: boolean;\n isFee: boolean;\n isFoodAndBeverages: boolean;\n isEditedManually: boolean;\n isAddedAutomatically: boolean;\n mergeToAccommodationWhenInvoicing: boolean;\n pricesAreSeasonal: boolean;\n\n from: string;\n to: string;\n periods: AddOnServiceModelPeriod[];\n serviceDateFrom: string | null;\n serviceDateTo: string | null;\n serviceRange: (string | null)[];\n idx: number;\n\n ownerPayoutAmount?: number | null;\n ownerPayoutIsAbsolute?: boolean;\n\n isPPOM: boolean;\n ppomTaxCategoryId?: number;\n isOTASpecific: boolean;\n}\n\nexport interface AddOnServiceModelPeriod {\n from: string;\n to: string;\n amount: number;\n ownerPayoutSeasonal?: number | null;\n ownerPayoutSeasonalIsAbsolute?: boolean;\n}\n\nexport interface AccomodationUnitModel {\n id: number;\n name: string;\n ownerId: number | null;\n}\n\nexport interface SelectedRatePlanModel {\n id: number;\n ratePlansAccomodationUnitTypeId: number;\n parentRatePlanId?: number;\n name: string;\n currencyId: number;\n isDefault: boolean;\n minStay?: number;\n maxStay?: number;\n minPersons?: number;\n maxPersons?: number;\n losCategoryId: number | null;\n paxCategoryId: number | null;\n accomodationBookingFee: number | null;\n addOnServicesBookingFee: number | null;\n mergeAllBookingFeesIntoSingleItem: boolean;\n}\n\nexport interface RatePlanModel {\n id: number;\n ratePlanId: number;\n name: string;\n isDerived: boolean;\n parentRatePlanId?: number;\n currencyId: number;\n translations: RatePlanTranslation[];\n isDefault: boolean;\n minStay: number;\n maxStay: number;\n minPersons: number;\n maxPersons: number;\n losCategoryId: number | null;\n paxCategoryId: number | null;\n dayPrices: {\n date: Date;\n price: number;\n inputPrice: number;\n inputPriceBeforeCommission: number;\n serviceTypeId?: number;\n mergedCityTaxAmount: number;\n }[];\n defaultServiceTypeId?: number;\n status: boolean;\n accomodationBookingFee: number | null;\n addOnServicesBookingFee: number | null;\n mergeAllBookingFeesIntoSingleItem: boolean;\n}\n\nexport interface OccupancyBasedRuleModel {\n id: number;\n numberOfOccupants: number;\n priceDifference: number;\n priceDifferenceIsAbsolute: boolean;\n}\n\nexport interface SearchRestrictionsModel {\n period: Date[];\n numberOfUnits?: number;\n numberOfAdults?: number;\n numberOfChildren?: number;\n numberOfBedrooms?: number;\n numberOfBathrooms?: number;\n childrenAges?: number[];\n isFromCalendar?: boolean;\n isFromAvailabilitySearch?: boolean;\n}\n\nexport interface UnitAvailability {\n accomodationUnitTypeId: number;\n numberOfSelectedUnits: number;\n numberOfAvailableUnits: number;\n}\n\nexport interface PropertyOtaView {\n commissionPercent: number;\n paymentCollectByOTA: boolean;\n ownerPaysOTACommission: boolean;\n}\n\nexport class GuestModel {\n id: number | null = null;\n reservationsAccUnitTypeGuestId: number | null = null;\n isRoomHolder: boolean | false = false;\n constructor(id: number, reservationsAccUnitTypeGuestId: number, isRoomHolder: boolean) {\n this.id = id;\n this.reservationsAccUnitTypeGuestId = reservationsAccUnitTypeGuestId;\n this.isRoomHolder = isRoomHolder;\n }\n}\n\nexport interface ReservationAccUnitTranslation {\n id: number;\n accomodationUnitTypeId: number;\n cultureCode: string;\n nameTranslation: string;\n}\n\nexport interface ReservationAccomodationUnitTypeOfficialRateModel {\n id: number;\n accomodationUnitTypeId: number;\n ratePlanId: number | null;\n serviceTypeId: number | null;\n dateFrom: string;\n dateTo: string;\n price: number;\n currencyId: number;\n isMain: boolean;\n officialRateOccupancyBasedRules: ReservationAccomodationUnitTypeOfficialRateOBRModel[];\n}\n\nexport interface ReservationAccomodationUnitTypeOfficialRateOBRModel {\n id: number;\n accomodationUnitTypeOfficialRateId: number;\n price: number;\n minStay?: number;\n maxStay?: number;\n minPersons?: number;\n maxPersons?: number;\n losCategoryId: number | null;\n paxCategoryId: number | null;\n}\n\n// models used for create/update requests (stripped of needless properties)\nexport class ReservationRequestModel {\n constructor(reservation: ReservationModel) {\n this.id = reservation.id;\n this.customerId = reservation.customerId;\n this.distributionChannelTypeId = reservation.distributionChannelTypeId;\n this.salesChannelId = reservation.salesChannelId;\n this.bookingDate = reservation.bookingDate;\n this.paymentMeansId = reservation.paymentMeansId;\n this.paymentMeanBaseId = reservation.paymentMeanBaseId;\n this.cardTypeId = reservation.cardTypeId;\n this.arrivalDate = reservation.arrivalDate;\n this.departureDate = reservation.departureDate;\n this.statusId = reservation.statusId;\n this.optionExpirationDate = reservation.optionExpirationDate;\n this.numberOfAdults = reservation.numberOfAdults;\n this.numberOfChildren = reservation.numberOfChildren;\n this.numberOfPets = reservation.numberOfPets;\n this.numberOfUnits = reservation.numberOfUnits;\n this.guestRemarks = reservation.guestRemarks;\n this.propertyStaffRemarks = reservation.propertyStaffRemarks;\n this.remarksForOwner = reservation.remarksForOwner;\n this.maintenanceStaffRemarks = reservation.maintenanceStaffRemarks;\n this.tags = reservation.tags;\n this.otaid = reservation.otaid;\n this.isOTACollect = reservation.isOTACollect;\n this.colorCodeHex = reservation.colorCodeHex;\n\n this.accomodationUnitTypes = reservation.accomodationUnitTypes.map(x => ({\n id: x.id,\n statusId: x.statusId,\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n accomodationUnitId: x.accomodationUnitId,\n ratePlanId: x.ratePlan?.id,\n ratePlansAccomodationUnitTypeId: x.ratePlan?.ratePlansAccomodationUnitTypeId,\n manuallyChangedRatePlan: x.manuallyChangedRatePlan,\n occupancyBasedRuleId: x.occupancyBasedRuleId,\n arrivalDate: x.arrivalDate,\n departureDate: x.departureDate,\n expectedArrivalTime: x.expectedArrivalTime,\n expectedDepartureTime: x.expectedDepartureTime,\n numberOfAdults: x.numberOfAdults,\n numberOfChildren: x.numberOfChildren,\n numberOfPets: x.numberOfPets,\n childrenAges: x.childrenAges,\n guests: x.guests.map(g => new GuestModel(g.id, g.reservationsAccUnitTypeGuestId, g.isRoomHolder)),\n discountPercent: x.discountPercent,\n discountInputPercent: x.discountInputPercent,\n dayPrices: x.dayPrices,\n ownerPaysOTACommission: x.ownerPaysOTACommission,\n inputPriceWasManuallyChanged: x.inputPriceWasManuallyChanged,\n pricePerNight: x.pricePerNight,\n userSetPricePerNightManually: x.userSetPricePerNightManually,\n selectedServices: x.selectedServices,\n damageDeposit: x.damageDeposit === \"\" ? undefined : x.damageDeposit,\n depositCurrencyId: x.depositCurrencyId,\n channelCommission: x.channelCommission,\n channelCommissionPercent: x.channelCommissionPercent,\n maintenanceStaffRemarks: x.maintenanceStaffRemarks ?? null,\n guestPlaceholder: x.guestPlaceholder ?? null,\n hasChanges: true\n }));\n }\n\n id = 0;\n\n // holder and sales channel\n customerId = 0;\n distributionChannelTypeId = 0;\n salesChannelId: number | null = null;\n bookingDate = new Date().toISOString().substr(0, 10);\n\n paymentMeansId: number | null = null;\n paymentMeanBaseId: number | null = null;\n cardTypeId: number | null = null;\n otaid: number | null = null;\n\n isOTACollect: boolean | false;\n\n // stay period\n arrivalDate: Date | null = null;\n departureDate: Date | null = null;\n statusId = 1;\n optionExpirationDate: string | null = null;\n\n numberOfAdults?: number = 0;\n numberOfChildren?: number = 0;\n numberOfPets?: number = 0;\n numberOfUnits?: number = 0;\n\n // units\n accomodationUnitTypes: ReservationAccUnitRequestModel[] = [];\n\n // remarks and tags\n guestRemarks = \"\";\n propertyStaffRemarks = \"\";\n remarksForOwner = \"\";\n maintenanceStaffRemarks = \"\";\n tags: string[] = [];\n\n colorCodeHex: string | null = null;\n}\n\nexport class ReservationAccUnitRequestModel {\n id = 0;\n statusId?: number = undefined;\n\n accomodationUnitTypeId = 0;\n\n accomodationUnitId?: number = undefined;\n ratePlanId?: number = undefined;\n ratePlansAccomodationUnitTypeId?: number = undefined;\n occupancyBasedRuleId?: number = undefined;\n\n arrivalDate = \"\";\n departureDate = \"\";\n\n expectedArrivalTime: string | null = null;\n expectedDepartureTime: string | null = null;\n\n numberOfAdults = 0;\n numberOfChildren = 0;\n numberOfPets = 0;\n childrenAges: number[] = [];\n guests: GuestModel[] = [];\n\n // price\n discountPercent: number | null = null;\n discountInputPercent: number | null = null\n dayPrices: {\n date: Date;\n price: number;\n }[] = [];\n pricePerNight: number | null = null;\n userSetPricePerNightManually = false;\n\n selectedServices: AddOnServiceModel[] = [];\n\n damageDeposit?: number;\n depositCurrencyId?: number;\n\n channelCommission: number | null = null;\n channelCommissionPercent: number | null = null;\n\n maintenanceStaffRemarks: string | null = null;\n\n hasChanges = true;\n}\n\nexport class PaymentModel {\n constructor() {\n const today = new Date();\n this.paymentDate = today.toISOString();\n }\n\n id: number | null = null;\n customerName: string | null = null;\n customerId: number | null = null;\n paymentDate = \"\";\n amount: number | null = null;\n currencyId: number | null = null;\n paymentMeansId: number | null = null;\n paymentMeanBaseId: number | null = null;\n cardTypeId: number | null = null;\n reservationId: number | null = null;\n financialDocumentId: number | null = null;\n financialDocumentStatusId: number | null = null;\n financialDocumentTypeId: number | null = null;\n}\n\nexport class PaymentSlipModel {\n constructor(\n public documentTypeId: number,\n public businessUnitId: number | null,\n public cashRegisterId: number | null,\n ) {\n const today = new Date();\n this.id = null,\n this.documentTypeId = documentTypeId,\n this.transactionDate = today.toISOString().substring(0, 10);\n this.transactionTime = new Date(\n Date.UTC(\n today.getFullYear(),\n today.getMonth(),\n today.getDate(),\n today.getHours(),\n today.getMinutes()\n )\n ).toISOString().substring(11, 16),\n this.documentNumber = \"\",\n this.customerId = null,\n this.amount = 0,\n this.currencyId = null,\n this.businessUnitId = businessUnitId,\n this.cashRegisterId = cashRegisterId,\n this.transactionDescriptionId = null,\n this.additionalNoteForTransaction = \"\",\n this.customerName = \"\"\n }\n\n id: number | null = null;\n transactionDate = \"\";\n transactionTime = \"\";\n cashierId: number | null = null;\n documentNumber = \"\";\n documentInternalIdentifier = \"\";\n documentIdentifier = \"\";\n amount = 0;\n currencyId: number | null = null;\n transactionDescriptionId: number | null = null;\n additionalNoteForTransaction = \"\";\n customerId: number | null = null;\n customerName = \"\";\n}\n\n\nexport enum DistributionChannelTypesEnum {\n OTA = 1,\n WalkIn = 2,\n Telephone = 3,\n Email = 4,\n Website = 5,\n Facebook = 6,\n PartnerAgency = 7,\n OTAConversion = 10,\n OwnersReservation = 11\n}\n\nexport type ChangeRatePlanEvent = {\n ratePlansAccomodationUnitTypeId: number;\n updateOtherUnits: boolean;\n autoPriceRecalculation: boolean;\n inputPriceRecalculationOnly: boolean;\n};\n\nexport type AddRatePlanEvent = {\n ratePlanId: number;\n}\n\nexport type NotifyUnitEvent = {\n model: ReservationAccUnitModel;\n updateOtherUnits: boolean;\n autoPriceRecalculation: boolean;\n inputPriceRecalculationOnly: boolean;\n}\n\nexport type ChangeServiceTypeEvent = {\n serviceTypeId: number;\n updateOtherUnits: boolean;\n};\n\nexport type PayByLinkPrepayment = {\n dueDate: Date;\n amount: number;\n currencyId: number;\n}\n\nexport class PayByLinkInfoModel {\n prepayments: PayByLinkPrepayment[] = [];\n payments: PaymentQueryViewModel[] = [];\n isPossibleToChargeCreditCard = false;\n}\n\nexport interface ReservationAgencyFeeModel {\n agencyFeeId: number;\n propertyId: number;\n name: string;\n amount: number;\n currencyId: number;\n calculationMethodId: number;\n priceIsAbsolute: boolean;\n reservationAccUnitTypeId: number;\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeForm.vue?vue&type=style&index=0&id=a2e20a4e&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentsReport.vue?vue&type=style&index=0&id=04cf5068&scoped=true&lang=css&\"","import { ActionTree, GetterTree, MutationTree } from \"vuex\";\nimport Vue from \"vue\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { InvoiceDefaultDeliveryDateEnum } from \"@/shared/models/enums.type\";\n\nexport enum StayItemsNameSegments {\n PropertyName = 1,\n AccomodationUnitTypeName = 2,\n}\n\nlet ignoreRefresh = false;\nlet currentRequest: Promise | undefined = undefined;\n\nconst initialState = {\n loadedOn: 0, // ms since epoch, as Date.now()\n model: {\n paysVat: true,\n multiCurrency: true,\n cashiersReportStartingAmount: 0,\n workingToFormalConversionRate: 7.5,\n formalToWorkingConversionRate: 1 / 7.5,\n historicConversionRate: 0,\n bePaymentsInFormalCurrency : true,\n workingCurrency: { id: 2, isoCode: \"EUR\", name: \"Euro\" },\n formalCurrency: { id: 1, isoCode: \"HRK\", name: \"Hrvatska kuna\" },\n historicCurrency: { id: 0, isoCode: \"\", name: \"\" },\n historicCurrencyEndDate: \"\",\n primaryLanguage: { id: 1, languageCode: \"hr\", name: \"Hrvatski\" },\n secondaryLanguage: { id: 2, languageCode: \"en\", name: \"Engleski\" },\n taxRates: [] as TaxRateView[],\n outOfScopeTaxRate: {} as TaxRateView,\n exemptTaxRate: {} as TaxRateView,\n standardTaxRate: {} as TaxRateView,\n accomodationUnitTypesTaxRate: {} as TaxRateView,\n downpaymentItemsDefaultTaxRate: {} as TaxRateView,\n invoiceDueDays: 3,\n offerExpirationDays: 7,\n paymentMeansId: null as null | number,\n paymentMeanBaseId: null as null | number,\n showServicePeriod: true,\n enableServicePeriodEditing: false,\n showPaymentSummary: true,\n generatePaymentReferenceNumber: true,\n setFiscalNumberAsMain: false,\n fiscalizeOffers: false,\n fiscalizeDeliveryNotes: false,\n isFiscalizationObligor: false,\n usesExternalFiscalizationService: false,\n isLinkedToExternalFiscalizationService: false,\n numbering: {\n offer: \"\",\n downPayment: \"AV\",\n invoice: \"\",\n cancellation: \"\",\n },\n notes: {\n offer: [] as string[],\n downPayment: [] as string[],\n invoice: [] as string[],\n cancellation: [] as string[],\n },\n legalData: \"\",\n offerStayItemsNameSegments: [\n StayItemsNameSegments.PropertyName,\n StayItemsNameSegments.AccomodationUnitTypeName,\n ],\n downPaymentStayItemsNameSegments: [],\n invoiceStayItemsNameSegments: [\n StayItemsNameSegments.PropertyName,\n StayItemsNameSegments.AccomodationUnitTypeName,\n ],\n tenantId: 0,\n hasLogo: false,\n financialDocumentHeader: \"\",\n financialDocumentFooter: \"\",\n financialDocumentPaymentInstructions: \"\",\n invoicesDefaultDeliveryDate: InvoiceDefaultDeliveryDateEnum.ArrivalDate,\n tenantCanEditPAXCategories: false,\n tenantCanEditLOSCategories: false,\n tenantOBRsUseRelativePricing: false\n },\n};\n\nconst state = { ...initialState };\n\nexport type FinancialSettingsType = typeof state.model;\n\nconst getters: GetterTree = {\n loadedOn: (state) => state.loadedOn,\n isLoaded: (state) => state.loadedOn > 0,\n settings: (state) => state.loadedOn > 0 ? state.model : undefined,\n};\n\nconst actions: ActionTree = {\n saveModel: async ({ commit }, model) => {\n ignoreRefresh = true;\n\n try {\n await Vue.axios.put(\"FinancialSettings\", model);\n commit(\"setModel\", model);\n } finally {\n ignoreRefresh = false;\n }\n },\n refreshModel: async ({ commit }) => {\n // in case it's already loading, this will stop making another call\n if (ignoreRefresh) {\n return currentRequest;\n }\n\n ignoreRefresh = true;\n\n try {\n const loadPromise = Vue.axios\n .get(\"FinancialSettings\")\n .then((x) => x.data);\n currentRequest = loadPromise;\n const res = await loadPromise;\n\n const taxRates = res.taxRates || [];\n\n res.outOfScopeTaxRate =\n taxRates.find(e => e.isOutOfScope) ||\n taxRates.find(e => e.isStandard) ||\n taxRates[0] || {};\n\n res.standardTaxRate =\n taxRates.find(e => e.isStandard) ||\n taxRates[0] || {};\n\n res.exemptTaxRate =\n taxRates.find(e => e.isTaxExempt) ||\n taxRates.find(e => e.isStandard) ||\n taxRates[0] || {};\n\n res.accomodationUnitTypesTaxRate =\n taxRates.find((e) => e.id === (res.accomodationUnitTypesTaxRate?.id ?? 2)) ||\n taxRates.find((e) => e.isStandard) ||\n taxRates[0] || {};\n \n res.downpaymentItemsDefaultTaxRate =\n taxRates.find((e) => e.id === (res.downpaymentItemsDefaultTaxRate?.id ?? 1)) ||\n taxRates.find((e) => e.isStandard) ||\n taxRates[0] || {};\n\n commit(\"setModel\", res);\n } finally {\n currentRequest = undefined;\n ignoreRefresh = false;\n }\n },\n};\n\nconst mutations: MutationTree = {\n reset: () => {\n Object.assign(state, initialState);\n },\n setModel: (state, value: typeof state.model) => {\n state.loadedOn = Date.now();\n state.model = value;\n\n state.model.taxRates = value.taxRates || [];\n state.model.outOfScopeTaxRate = value.outOfScopeTaxRate || {};\n state.model.standardTaxRate = value.standardTaxRate || {};\n state.model.exemptTaxRate = value.exemptTaxRate || {};\n state.model.accomodationUnitTypesTaxRate = value.accomodationUnitTypesTaxRate || {};\n state.model.downpaymentItemsDefaultTaxRate = value.downpaymentItemsDefaultTaxRate || {}; \n },\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations,\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendPaymentLinkDialog.vue?vue&type=style&index=0&id=337fd699&scoped=true&lang=scss&\"","import Vue from \"*.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\n\nexport class EVisitorFacility {\n id = 0;\n propertyId = 0;\n facility = \"\";\n accountName = \"\";\n numberOfBeds = 0;\n numberOfUnits = 0;\n numberOfCheckedInBeds = 0;\n status = true;\n defaultForAccomodationUnitsIds = [] as number[];\n}\n\nexport type PropertyGroup = {\n propertyId: number;\n facilities: EVisitorFacility[];\n};\n\nexport type EVisitorFacilityService = {\n groups: PropertyGroup[];\n findGroup: (propId: number) => PropertyGroup | undefined;\n loadGroup: (propId: number) => Promise;\n};\n\nexport type CountOnFacility = {\n eVisitorFacilityId: number;\n count: number;\n};\n\nexport function eVisitorFacilityServiceFactory(\n vm: Vue,\n initialCheckedInGuestCountOnFacility = [] as CountOnFacility[]\n): EVisitorFacilityService {\n const service = {\n groups: [] as PropertyGroup[],\n\n findGroup: (propId: number) =>\n service.groups.find((x) => x.propertyId === propId),\n\n loadGroup: async (propId: number) => {\n let group = service.findGroup(propId);\n if (!group) {\n group = {\n propertyId: propId,\n facilities: [],\n };\n service.groups.push(group);\n }\n\n const { data } = await vm.axios.get>>(\n `properties/${propId}/eVisitorFacilities`\n );\n\n const facilities = data.result.map((x) => {\n const f = new EVisitorFacility();\n\n f.id = x.id ?? 0;\n f.propertyId = propId;\n f.facility = x.facility ?? \"\";\n f.accountName = x.accountName ?? x.facility ?? \"\";\n\n f.numberOfUnits = x.numberOfUnits ?? 0;\n f.numberOfBeds = x.numberOfBeds ?? 0;\n f.numberOfCheckedInBeds = x.numberOfCheckedInBeds ?? 0;\n\n f.status = x.status ?? false;\n\n f.defaultForAccomodationUnitsIds = x.defaultForAccomodationUnitsIds ?? [];\n\n // this adjusts numberOfCheckedInBeds by disregarding the ones\n // that were already saved on server, so dynamic counting is simplified\n if (initialCheckedInGuestCountOnFacility?.length) {\n const facCount =\n initialCheckedInGuestCountOnFacility.find(\n (x) => x.eVisitorFacilityId == f.id\n )?.count ?? 0;\n f.numberOfCheckedInBeds -= facCount;\n }\n\n return f;\n });\n\n group.facilities.splice(0, group.facilities.length, ...facilities);\n\n return facilities;\n },\n };\n\n return service;\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerFormMobile.vue?vue&type=style&index=0&id=65757086&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-form',{staticClass:\"fill-height\",attrs:{\"readonly\":_vm.loading},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card',{staticClass:\"invoice-routing-modal__card\",attrs:{\"height\":\"100%\"}},[_c('LoadingOverlay',{attrs:{\"loading\":_vm.loading}}),_c('v-toolbar',{staticClass:\"invoice-routing-modal__toolbar\"},[_c('v-toolbar-title',[_c('div',[(\n _vm.originDocumentTypeId === _vm.financialDocumentTypesEnum.Otpremnica\n )?_c('span',[_vm._v(_vm._s(_vm.$t(\"Create delivery note\"))+\" \")]):_c('span',[_vm._v(_vm._s(_vm.$t(\"Create invoice\"))+\" \")]),_vm._v(\" (\"),_c('span',[_vm._v(_vm._s(_vm.$t(\"Reservation\"))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.reservationId))]),_vm._v(\") \")])]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',{staticClass:\"invoice-routing-modal__content pb-0 px-3\"},[_c('v-row',{staticClass:\"invoices-container\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-card',{staticClass:\"invoice-items-card d-flex flex-column\"},[_c('div',{staticClass:\"d-flex subheader\"},[_c('div',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.Items\")))])]),_c('v-card-text',{staticClass:\"invoice-items-card-content\"},[_c('table',{staticClass:\"invoice-routing-form__list__items\"},[_c('colgroup',[_c('col',{staticStyle:{\"width\":\"32px\"}}),_c('col',{staticStyle:{\"width\":\"100%\"}}),_c('col',{staticStyle:{\"width\":\"52px\"}}),_c('col',{staticStyle:{\"width\":\"52px\"}}),(_vm.paysVat)?_c('col',{staticStyle:{\"width\":\"52px\"}}):_vm._e(),_c('col',{staticStyle:{\"width\":\"120px\"}}),(_vm.paysVat)?_c('col',{staticStyle:{\"width\":\"112px\"}}):_vm._e()]),_c('thead',[_c('tr',[_c('th'),_c('th'),_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.unitOfMeasure\")))])]),_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.quantity\")))])]),(_vm.paysVat)?_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.taxRate\")))])]):_vm._e(),_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netPrice\")))])]),(_vm.paysVat)?_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.grossPrice\")))])]):_vm._e()])]),_c('tbody',_vm._l((_vm.unassignedItems),function(item,$index){return _c('tr',{key:$index,attrs:{\"draggable\":true},on:{\"dragstart\":function($event){return _vm.setDrag($event, item)},\"drop\":_vm.dropped}},[_c('td',[_c('v-simple-checkbox',{attrs:{\"ripple\":false,\"color\":\"primary\"},model:{value:(item.isSelected),callback:function ($$v) {_vm.$set(item, \"isSelected\", $$v)},expression:\"item.isSelected\"}})],1),_c('td',{class:{\n 'secondary--text':\n item.reservationAccUnitTypeId &&\n !item.addOnServiceId,\n }},[_c('span',[_vm._v(_vm._s(item.itemName))])]),_c('td',[_c('span',[_vm._v(_vm._s(_vm.getUnitOfMeasureName(item.unitOfMeasureId)))])]),_c('td',[_c('span',[_vm._v(_vm._s(item.decimalQuantity))])]),(_vm.paysVat)?_c('td',[_c('span',[_vm._v(_vm._s(_vm.getTaxRateName(item.taxRateId)))])]):_vm._e(),_c('td',[_c('span',[_vm._v(_vm._s(_vm.$n(item.netPrice, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", })))])]),(_vm.paysVat)?_c('td',[_c('span',[_vm._v(_vm._s(_vm.$n(item.grossPrice, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", })))])]):_vm._e()])}),0)])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"text\":\"\",\"color\":\"primary\",\"elevation\":\"2\"},on:{\"click\":_vm.separateByUnit}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Separate by unit\")))])]),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"text\":\"\",\"color\":\"primary\",\"elevation\":\"2\"},on:{\"click\":_vm.separateByType}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Separate by type\")))])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_vm._l((_vm.invoices),function(invoice,$index){return _c('InvoiceRoutingInvoice',{key:$index,staticClass:\"mb-2\",attrs:{\"index\":$index,\"originDocumentTypeId\":_vm.originDocumentTypeId,\"invoice\":_vm.invoices[$index]},on:{\"update:invoice\":function($event){return _vm.$set(_vm.invoices, $index, $event)},\"dragIn\":function($event){return _vm.dragIn(invoice)},\"dragOut\":function($event){return _vm.dragOut(invoice)},\"dropped\":_vm.dropped,\"remove\":function($event){return _vm.removeInvoice(invoice)},\"removeItem\":function($event){return _vm.removeItem(invoice, $event)},\"addItems\":function($event){return _vm.addItems(invoice)}}})}),_c('v-card',{attrs:{\"width\":\"100%\",\"height\":\"120px\"}},[_c('v-card-text',{staticClass:\"fill-height\",on:{\"dragenter\":function($event){$event.preventDefault();},\"dragover\":function($event){$event.preventDefault();},\"drop\":function($event){return _vm.addInvoiceOrDeliveryNote(_vm.originDocumentTypeId)}}},[_c('div',{staticClass:\"outline-centered\"},[(\n _vm.originDocumentTypeId !==\n _vm.financialDocumentTypesEnum.Otpremnica\n )?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addInvoiceOrDeliveryNote(_vm.originDocumentTypeId)}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Add\"))+\" \"+_vm._s(_vm.$t(\"Invoice\")))])]):_vm._e(),(\n _vm.tenantGeneratesDeliveryNotes &&\n (_vm.originDocumentTypeId ===\n _vm.financialDocumentTypesEnum.Racun ||\n _vm.originDocumentTypeId ===\n _vm.financialDocumentTypesEnum.Otpremnica)\n )?_c('v-btn',{staticClass:\"ml-4\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addInvoiceOrDeliveryNote(\n _vm.financialDocumentTypesEnum.Otpremnica\n )}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AddDeliveryNote\")))])]):_vm._e()],1)])],1)],2)],1)],1),_c('v-card-actions',{staticClass:\"elevation-4\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"disabled\":_vm.disableSubmit,\"color\":\"primary\"},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { FinancialDocumentTypesEnum } from \"@/shared/models/enums.type\";\nimport { FinDocLineItemViewModel } from \"../FinancialDocumentFormParts/models\";\n\nexport class InvoiceRoutingInvoiceModel {\n index = 1;\n\n customerId = null as number | null;\n customerName = \"\";\n customerOib = \"\";\n paymentMeansId = null as number | null;\n cardTypeId = null as number | null;\n\n documentTypeId = FinancialDocumentTypesEnum.Racun;\n\n items: InvoiceRoutingLineItem[] = [];\n errors: string[] = [];\n}\n\nexport class InvoiceRoutingLineItem extends FinDocLineItemViewModel {\n propertyId = null as number | null;\n vatCategoryForPrepaymentsId = null as number | null;\n\n // clientside properties\n isSelected = false;\n isAssigned = false;\n originalTaxRateId = 0;\n\n businessUnitId: number | null = null;\n}\n\nexport interface InvoiceRoutingViewModel {\n items: InvoiceRoutingItemViewModel[];\n warnings: string[];\n}\n\nexport interface InvoiceRoutingItemViewModel {\n lineItem: InvoiceRoutingLineItem,\n propertyId: number | null;\n vatCategoryForPrepaymentsId: number | null;\n\n businessUnitId: number | null;\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('div',{staticClass:\"d-flex pl-4 pr-3\"},[(_vm.originDocumentTypeId === _vm.financialDocumentTypesEnum.Racun)?_c('div',{staticStyle:{\"width\":\"200px\"}},[_c('v-select',{attrs:{\"items\":_vm.titleItems,\"item-text\":function (x) { return x.text; },\"item-value\":function (x) { return x.value; }},model:{value:(_vm.internalInvoice.documentTypeId),callback:function ($$v) {_vm.$set(_vm.internalInvoice, \"documentTypeId\", $$v)},expression:\"internalInvoice.documentTypeId\"}})],1):_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"Invoice\"))+\" #\"+_vm._s(_vm.titleId))]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('remove')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fa fa-trash\")])],1)],1),_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.issueDate'),\"readonly\":\"\",\"outlined\":\"\",\"dense\":\"\",\"value\":_vm.$d(_vm.date)}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.name') + '*',\"outlined\":\"\",\"dense\":\"\",\"append-icon\":\"fas fa-search\",\"rules\":[_vm.rules.customerMustBeSelected]},on:{\"input\":_vm.unselect,\"click:append\":_vm.openCustomerLookup},model:{value:(_vm.internalInvoice.customerName),callback:function ($$v) {_vm.$set(_vm.internalInvoice, \"customerName\", $$v)},expression:\"internalInvoice.customerName\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.oib'),\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.customerMustBeSelected],\"append-icon\":\"fas fa-search\"},on:{\"input\":_vm.unselect,\"click:append\":_vm.openCustomerLookup},model:{value:(_vm.internalInvoice.customerOib),callback:function ($$v) {_vm.$set(_vm.internalInvoice, \"customerOib\", $$v)},expression:\"internalInvoice.customerOib\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"item-value\":\"id\",\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}]),model:{value:(_vm.internalInvoice.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.internalInvoice, \"paymentMeansId\", $$v)},expression:\"internalInvoice.paymentMeansId\"}})],1),(_vm.showCardTypeSelection)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"item-text\":\"name\",\"item-value\":\"id\",\"outlined\":\"\",\"dense\":\"\",\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans ? [_vm.rules.required] : []},model:{value:(_vm.internalInvoice.cardTypeId),callback:function ($$v) {_vm.$set(_vm.internalInvoice, \"cardTypeId\", $$v)},expression:\"internalInvoice.cardTypeId\"}})],1):_vm._e()],1),_c('CustomerLookup',{attrs:{\"open\":_vm.customerLookupOpen,\"filterPrefil\":_vm.filterPrefil,\"lookupHeaders\":_vm.lookupHeaders},on:{\"update:open\":function($event){_vm.customerLookupOpen=$event},\"selected\":_vm.selected}}),_c('table',{staticClass:\"invoice-routing-form__invoice__items\",on:{\"dragenter\":_vm.dragEnter,\"dragover\":_vm.dragOver,\"dragleave\":_vm.dragLeave,\"drop\":_vm.dropped}},[_c('colgroup',[_c('col',{staticStyle:{\"width\":\"100%\"}}),_c('col',{staticStyle:{\"width\":\"52px\"}}),_c('col',{staticStyle:{\"width\":\"52px\"}}),(_vm.paysVat)?_c('col',{staticStyle:{\"width\":\"52px\"}}):_vm._e(),_c('col',{staticStyle:{\"width\":\"120px\"}}),(_vm.paysVat)?_c('col',{staticStyle:{\"width\":\"112px\"}}):_vm._e(),_c('col',{staticStyle:{\"width\":\"28px\"}})]),_c('thead',[_c('tr',[_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.itemName\")))])]),_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.unitOfMeasure\")))])]),_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.quantity\")))])]),(_vm.paysVat)?_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.taxRate\")))])]):_vm._e(),_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netPrice\")))])]),(_vm.paysVat)?_c('th',[_c('span',[_vm._v(_vm._s(_vm.$t(\"VFinancialDocument.LineItem.grossPrice\")))])]):_vm._e(),_c('th',[_c('v-btn',{staticClass:\"add-button mb-2\",attrs:{\"tile\":\"\",\"x-small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$emit('addItems')}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)])]),_c('tbody',[_vm._l((_vm.internalInvoice.items),function(item,$index){return _c('tr',{key:$index},[_c('td',[_c('span',{class:{\n 'secondary--text':\n item.reservationAccUnitTypeId && !item.addOnServiceId,\n }},[_vm._v(_vm._s(item.itemName))])]),_c('td',[_c('span',[_vm._v(_vm._s(_vm.getUnitOfMeasureName(item.unitOfMeasureId)))])]),_c('td',[_c('span',[_vm._v(_vm._s(item.decimalQuantity))])]),(_vm.paysVat)?_c('td',[_c('span',[_vm._v(_vm._s(_vm.getTaxRateName(item.taxRateId)))])]):_vm._e(),_c('td',{staticClass:\"text-right\"},[_c('span',[_vm._v(_vm._s(_vm.$n(item.netPrice, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", })))])]),(_vm.paysVat)?_c('td',{staticClass:\"text-right\"},[_c('span',[_vm._v(_vm._s(_vm.$n(item.grossPrice, { style: \"currency\", currency: \"EUR\", currencyDisplay: \"code\", })))])]):_vm._e(),_c('td',{staticClass:\"actions\"},[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('removeItem', item)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fa fa-trash\")])],1)],1)])}),_c('tr',[_c('td',{attrs:{\"colspan\":\"7\"}},[_c('div',{staticClass:\"outline-centered primary--text pa-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Drag invoice items\"))+\" \")])])]),(_vm.errors)?_c('tr',[_c('td',{attrs:{\"colspan\":\"7\"}},_vm._l((_vm.errors),function(error,$index){return _c('div',{key:$index,staticClass:\"outline-centered error--text pa-2\"},[_vm._v(\" \"+_vm._s(error)+\" \")])}),0)]):_vm._e()],2)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { InvoiceRoutingInvoiceModel } from \"./models\";\nimport {\n FinancialDocumentTypesEnum,\n PaymentMeansEnum,\n} from \"@/shared/models/enums.type\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { UnitOfMeasureView } from \"@/shared/models/unitOfMeasure\";\nimport * as _ from \"lodash\";\n\n@Component({\n components: {\n CustomerLookup,\n },\n})\nexport default class InvoiceRoutingInvoice extends Vue {\n @PropSync(\"invoice\") internalInvoice!: InvoiceRoutingInvoiceModel;\n @Prop() index!: number;\n @Prop() originDocumentTypeId!: FinancialDocumentTypesEnum;\n\n financialDocumentTypesEnum = FinancialDocumentTypesEnum;\n\n get titleId() {\n return this.index + 1;\n }\n\n get titleItems() {\n const items = [\n {\n text: this.$t(\"Invoice\") + \" #\" + this.titleId,\n value: FinancialDocumentTypesEnum.Racun,\n },\n ];\n\n if (this.tenantGeneratesDeliveryNotes) {\n items.push({\n text: this.$t(\"DeliveryNote\") + \" #\" + this.titleId,\n value: FinancialDocumentTypesEnum.Otpremnica,\n });\n }\n\n return items;\n }\n\n get date() {\n return new Date();\n }\n\n get showCardTypeSelection() {\n const paymentMeansId = this.internalInvoice.paymentMeansId ?? 0;\n\n if (\n paymentMeansId === PaymentMeansEnum.KreditnaKartica ||\n paymentMeansId === PaymentMeansEnum.BankovnaKartica ||\n this.paymentMeanBaseId === PaymentMeansEnum.KreditnaKartica ||\n this.paymentMeanBaseId === PaymentMeansEnum.BankovnaKartica\n ) {\n return true;\n } else {\n this.internalInvoice.cardTypeId = null;\n return false;\n }\n }\n\n get paymentMeanBaseId() {\n return this.paymentMeans?.find(\n (e) => e.id === this.internalInvoice.paymentMeansId\n )?.paymentMeanBaseId;\n }\n\n customerLookupOpen = false;\n unselect() {\n if (this.internalInvoice.customerId) {\n this.internalInvoice.customerId = null;\n this.internalInvoice.customerName = \"\";\n this.internalInvoice.customerOib = \"\";\n }\n }\n\n get filterPrefil() {\n return {\n name: this.internalInvoice.customerName ?? \"\",\n identificationNumber: this.internalInvoice.customerOib ?? \"\",\n };\n }\n\n get lookupHeaders() {\n return [\n {\n text: \"VFinancialDocument.Customer.name\",\n value: \"name\",\n },\n {\n text: \"VFinancialDocument.Customer.oib\",\n value: \"identificationNumber\",\n },\n ];\n }\n\n selected(customer: VCustomer) {\n this.internalInvoice.customerId = customer.id;\n this.internalInvoice.customerName = customer.name;\n this.internalInvoice.customerOib = customer.isLegalEntity\n ? customer.identificationNumber\n : \"\";\n }\n\n openCustomerLookup() {\n this.customerLookupOpen = true;\n }\n\n getUnitOfMeasureName(id: number) {\n const unit = this.unitsOfMeasure?.find((e) => e.id === id);\n if (unit) return this.$t(unit.textResourceKey).toString();\n return \"\";\n }\n\n getTaxRateName(id: number) {\n const taxRate = this.taxRates?.find((e) => e.id === id);\n if (taxRate) return taxRate.name;\n return \"\";\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n customerMustBeSelected: () =>\n !!this.internalInvoice.customerId ||\n this.$t(\"Customer must be selected\"),\n };\n }\n\n get errors() {\n const groupedByPropertyId = _.map(\n _.groupBy(this.internalInvoice.items, (x) => x.propertyId),\n (x) => x\n ).length;\n const groupedByOwnerId = _.map(\n _.groupBy(this.internalInvoice.items, (x) => x.ownerId),\n (x) => x\n ).length;\n const groupedByWorkModel = _.map(\n _.groupBy(this.internalInvoice.items, (x) => x.agencyWorkModelId),\n (x) => x\n ).length;\n const groupedByVatCategoryForPrepayments = _.map(\n _.groupBy(\n this.internalInvoice.items,\n (x) => x.vatCategoryForPrepaymentsId\n ),\n (x) => x\n ).length;\n\n const errors = [\n groupedByPropertyId <= 1\n ? \"\"\n : this.$t(\n \"Same invoice cannot contain items from different properties\"\n ).toString(),\n // all for same owner, or routing is not done by owners and they have the same work model and prepayment VAT category\n // while the invoice is not a delivery note, or cancellation\n groupedByOwnerId <= 1 ||\n (this.internalInvoice.documentTypeId ===\n FinancialDocumentTypesEnum.Racun &&\n !this.internalInvoice.items.some((x) => x.isStayCancellation) &&\n !this.routeInvoicesForOwnNameAndOtherInvoice &&\n groupedByWorkModel <= 1 &&\n groupedByVatCategoryForPrepayments <= 1)\n ? \"\"\n : this.$t(\n \"Same invoice cannot contain items from different owners\"\n ).toString(),\n groupedByWorkModel <= 1\n ? \"\"\n : this.$t(\n \"Same invoice cannot contain items with different agency work models\"\n ).toString(),\n ];\n\n this.internalInvoice.errors = errors.filter((x) => !!x);\n return this.internalInvoice.errors;\n }\n\n // drag&drop\n entered = false;\n dragEnter(e: DragEvent) {\n if (this.entered) return;\n\n const check = e.dataTransfer?.types.includes(\"application/json+lineitem\");\n if (!check) return;\n\n this.entered = true;\n\n e.preventDefault();\n this.$emit(\"dragIn\");\n (e.currentTarget as HTMLTableElement).classList.add(\"drag\");\n }\n dragOver(e: DragEvent) {\n const check = e.dataTransfer?.types.includes(\"application/json+lineitem\");\n if (!check) {\n return;\n }\n\n e.preventDefault();\n }\n dragLeave(e: DragEvent) {\n if (!this.entered || e.currentTarget != e.target) return;\n\n this.entered = false;\n\n this.$emit(\"dragOut\");\n (e.currentTarget as HTMLTableElement).classList.remove(\"drag\");\n }\n dropped(e: DragEvent) {\n this.entered = false;\n this.$emit(\"dropped\");\n (e.currentTarget as HTMLTableElement).classList.remove(\"drag\");\n }\n\n @Getter(\"appParams/tenantGeneratesDeliveryNotes\")\n tenantGeneratesDeliveryNotes?: boolean;\n\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n @Getter(\"appParams/isCardTypeRequiredForCardPaymentMeans\")\n isCardTypeRequiredForCardPaymentMeans?: boolean;\n\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n @Getter(\"codebooks/unitsOfMeasure\") unitsOfMeasure?: UnitOfMeasureView[];\n\n @Getter(\"appParams/routeInvoicesForOwnNameAndOtherInvoice\")\n routeInvoicesForOwnNameAndOtherInvoice?: boolean;\n\n @Getter(\"appParams/tenantPaysVat\") tenantPaysVat?: boolean;\n get paysVat() {\n return this.tenantPaysVat ?? false;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceRoutingInvoice.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceRoutingInvoice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvoiceRoutingInvoice.vue?vue&type=template&id=96f61f6c&scoped=true&\"\nimport script from \"./InvoiceRoutingInvoice.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvoiceRoutingInvoice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvoiceRoutingInvoice.vue?vue&type=style&index=0&id=96f61f6c&lang=scss&scoped=true&\"\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 \"96f61f6c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VIcon,VListItem,VListItemContent,VListItemTitle,VRow,VSelect,VSpacer,VSubheader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport {\n InvoiceRoutingLineItem,\n InvoiceRoutingInvoiceModel,\n InvoiceRoutingViewModel,\n} from \"./models\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport InvoiceRoutingInvoice from \"./InvoiceRoutingInvoice.vue\";\nimport {\n FinancialDocumentTypesEnum,\n PaymentMeansEnum,\n} from \"@/shared/models/enums.type\";\nimport { AgencyWorkModelsEnum } from \"@/shared/models/agencyWorkModel\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { UnitOfMeasureView } from \"@/shared/models/unitOfMeasure\";\nimport {\n calculateLineItem,\n fillInvoiceEditingTaxExemptionReason,\n} from \"../FinancialDocumentFormParts/functions\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport {\n FinDocLineItemViewModel,\n FinDocViewModel,\n} from \"../FinancialDocumentFormParts/models\";\nimport * as _ from \"lodash\";\n\n@Component({\n components: {\n LoadingOverlay,\n InvoiceRoutingInvoice,\n },\n})\nexport default class InvoiceRoutingModal extends Vue {\n @PropSync(\"open\") isOpen?: boolean;\n @Prop() originDocumentTypeId?: FinancialDocumentTypesEnum;\n @Prop() isForCancellation?: boolean;\n\n @Prop() defaultCustomerId?: number;\n @Prop() defaultName?: string;\n @Prop() defaultOib?: any;\n @Prop() defaultPaymentMeansId?: number;\n @Prop() defaultCardTypeId?: number | null;\n @Prop() reservationId?: number;\n\n financialDocumentTypesEnum = FinancialDocumentTypesEnum;\n\n loading = false;\n\n allItems: InvoiceRoutingLineItem[] = [];\n invoices: InvoiceRoutingInvoiceModel[] = [];\n\n get unassignedItems() {\n return this.allItems.filter((e) => !e.isAssigned);\n }\n\n @Watch(\"isOpen\")\n openWatch(fresh: boolean) {\n if (!fresh) {\n this.invoices = [];\n this.allItems = [];\n this.loading = false;\n return;\n }\n\n const newInvoice = new InvoiceRoutingInvoiceModel();\n newInvoice.documentTypeId =\n this.originDocumentTypeId ?? FinancialDocumentTypesEnum.Racun;\n this.fillInvoiceDefaults(newInvoice);\n this.invoices.push(newInvoice);\n\n this.loadItems();\n }\n\n loadItems() {\n let routingType = \"\";\n if (\n this.originDocumentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam\n )\n routingType = \"PrepaymentInvoice\";\n if (this.originDocumentTypeId === FinancialDocumentTypesEnum.Otpremnica)\n routingType = \"DeliveryNote\";\n if (\n this.originDocumentTypeId === FinancialDocumentTypesEnum.Racun &&\n !this.isForCancellation\n )\n routingType = \"Invoice\";\n if (\n this.originDocumentTypeId === FinancialDocumentTypesEnum.Racun &&\n this.isForCancellation\n )\n routingType = \"CancellationInvoice\";\n\n this.loading = true;\n Vue.axios\n .get(\n \"financialDocuments/GetInvoiceRoutingItems\",\n {\n params: {\n reservationId: this.reservationId,\n culture: this.internalLanguage,\n routingType: routingType,\n },\n }\n )\n .then((res) => {\n if (res.data.warnings && res.data.warnings.length > 0) {\n res.data.warnings.forEach((e) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: e,\n timeout: 10000,\n localize: true,\n actions: [\n {\n text: this.$t(\"Continue\"),\n fun: () => {\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n this.close();\n return true;\n },\n },\n ],\n } as Notification);\n });\n }\n\n const items = res.data.items;\n items.forEach((e) =>\n calculateLineItem(\n e.lineItem,\n this.taxRates ?? [],\n this.workingToFormalConversionRate\n )\n );\n\n this.allItems = items.map((e) => {\n return {\n ...e.lineItem,\n propertyId: e.propertyId,\n vatCategoryForPrepaymentsId: e.vatCategoryForPrepaymentsId,\n isSelected: false,\n isAssigned: false,\n originalTaxRateId: e.lineItem.taxRateId,\n businessUnitId: e.businessUnitId,\n };\n });\n })\n .finally(() => (this.loading = false));\n }\n\n close() {\n this.isOpen = false;\n }\n\n removeInvoice(invoice: InvoiceRoutingInvoiceModel) {\n for (const item of invoice.items) {\n this.removeItem(invoice, item);\n\n if (\n invoice.documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam\n ) {\n item.taxRateId = item.originalTaxRateId;\n }\n }\n\n this.invoices = this.invoices.filter((x) => x != invoice);\n }\n\n removeItem(\n invoice: InvoiceRoutingInvoiceModel,\n item: InvoiceRoutingLineItem\n ) {\n invoice.items = invoice.items.filter((x) => x != item);\n item.isSelected = false;\n item.isAssigned = false;\n\n if (invoice.documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam) {\n this.setTaxRatesForPrepaymentInvoice(invoice);\n }\n }\n\n addItems(invoice: InvoiceRoutingInvoiceModel) {\n this.dragIn(invoice);\n this.dropped();\n }\n\n addInvoiceOrDeliveryNote(type: FinancialDocumentTypesEnum) {\n const invoice = new InvoiceRoutingInvoiceModel();\n invoice.documentTypeId = type;\n this.fillInvoiceDefaults(invoice);\n this.invoices.push(invoice);\n\n const selected =\n this.allItems?.filter((x) => x.isSelected && !x.isAssigned) ?? [];\n if (selected.length > 0) {\n invoice.items.push(...selected);\n invoice.items.sort((a, b) =>\n a.propertyId != b.propertyId\n ? (a.propertyId ?? 0) - (b.propertyId ?? 0)\n : (a.addOnServiceId ?? 0) - (b.addOnServiceId ?? 0)\n );\n }\n\n if (this.allItems)\n for (const item of this.allItems.filter((x) => x.isSelected))\n item.isAssigned = true;\n }\n\n fillInvoiceDefaults(invoice: InvoiceRoutingInvoiceModel) {\n invoice.customerId = this.defaultCustomerId ?? null;\n invoice.customerName = this.defaultName ?? \"\";\n invoice.customerOib = this.defaultOib;\n invoice.paymentMeansId =\n invoice.documentTypeId === FinancialDocumentTypesEnum.Otpremnica\n ? PaymentMeansEnum.TransakcijskiRacun\n : this.defaultPaymentMeansId ??\n this.storedSettings?.paymentMeansId ??\n null;\n invoice.cardTypeId = this.defaultCardTypeId ?? null;\n }\n\n // drag&drop\n setDrag(e: DragEvent, data: InvoiceRoutingLineItem) {\n if (!data.isSelected) {\n this.allItems\n ?.filter((x) => !x.isAssigned)\n .forEach((x) => (x.isSelected = false));\n data.isSelected = true;\n }\n\n if (e.dataTransfer) {\n e.dataTransfer.clearData();\n e.dataTransfer.setData(\"application/json+lineitem\", JSON.stringify(data));\n }\n }\n dragIn(invoice: InvoiceRoutingInvoiceModel) {\n const selected =\n this.allItems.filter((x) => x.isSelected && !x.isAssigned) ?? [];\n if (selected.length > 0) {\n invoice.items.push(...selected);\n invoice.items.sort((a, b) =>\n a.propertyId != b.propertyId\n ? (a.propertyId ?? 0) - (b.propertyId ?? 0)\n : (a.addOnServiceId ?? 0) - (b.addOnServiceId ?? 0)\n );\n\n if (\n invoice.documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam\n ) {\n this.setTaxRatesForPrepaymentInvoice(invoice);\n }\n }\n }\n dragOut(invoice: InvoiceRoutingInvoiceModel) {\n const removedItems = invoice.items.filter((x) => !x.isAssigned);\n invoice.items = invoice.items.filter((x) => x.isAssigned);\n\n if (invoice.documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam) {\n removedItems.forEach((x) => (x.taxRateId = x.originalTaxRateId));\n }\n }\n dropped() {\n if (this.allItems)\n for (const item of this.allItems.filter((x) => x.isSelected))\n item.isAssigned = true;\n }\n\n setTaxRatesForPrepaymentInvoice(invoice: InvoiceRoutingInvoiceModel) {\n if (\n invoice.items.every(\n (x) =>\n x.agencyWorkModelId === AgencyWorkModelsEnum.OwnNameAndOtherInvoice\n ) &&\n invoice.items.some(\n (x) =>\n x.originalTaxRateId ===\n this.storedSettings?.downpaymentItemsDefaultTaxRate.id\n )\n ) {\n invoice.items.forEach((x) => {\n if (this.storedSettings) {\n x.taxRateId = this.storedSettings.downpaymentItemsDefaultTaxRate.id;\n }\n });\n } else if (\n invoice.items.every(\n (x) =>\n x.agencyWorkModelId === AgencyWorkModelsEnum.OwnNameAndOtherInvoice\n )\n ) {\n invoice.items.forEach((x) => {\n if (this.storedSettings) {\n x.taxRateId = x.originalTaxRateId;\n }\n });\n }\n }\n\n isFormValid = false;\n\n get disableSubmit() {\n const anyErrors = this.invoices.flatMap((e) => e.errors).length > 0;\n return !this.isFormValid || anyErrors;\n }\n\n submit() {\n if (!this.activeBusinessUnit || !this.activeCashRegister) return;\n\n const request = {\n culture: this.internalLanguage,\n reservationId: this.reservationId,\n businessUnitId: this.activeBusinessUnit.id,\n cashRegisterId: this.activeCashRegister.id,\n invoices: this.invoices.map((e) => {\n return {\n customerId: e.customerId,\n paymentMeansId: e.paymentMeansId,\n cardTypeId: e.cardTypeId,\n documentTypeId: e.documentTypeId,\n // fake basic info just to generate tax exemption reasons\n basicInfo: {\n showOwnerDetails: true,\n },\n businessUnitid: e.items.find((li) => !!li.businessUnitId)\n ?.businessUnitId,\n lineItems: e.items.map((li) => {\n return {\n itemName: li.itemName,\n reservationAccUnitTypeId: li.reservationAccUnitTypeId,\n resAccUnitTypeAddOnServiceId: li.resAccUnitTypeAddOnServiceId,\n addOnServiceId: li.addOnServiceId,\n unitOfMeasureId: li.unitOfMeasureId,\n decimalQuantity: li.decimalQuantity,\n taxRateId: li.taxRateId,\n consumptionTaxRate: li.consumptionTaxRate,\n grossUnitPrice: li.grossUnitPrice,\n discountPercent: li.discountPercent,\n\n taxExemptionReasonFromAOS: li.taxExemptionReasonFromAOS,\n isGroupedStayLineItem: li.isGroupedStayLineItem,\n\n isCityTax: li.isCityTax,\n isStayCancellation: li.isStayCancellation,\n\n ownerId: li.ownerId,\n ownerIsLegalEntity: li.ownerIsLegalEntity,\n ownerPaysVAT: li.ownerPaysVAT,\n ownerIsResident: li.ownerIsResident,\n ownerVatId: li.ownerVatId,\n agencyWorkModelId: li.agencyWorkModelId,\n } as FinDocLineItemViewModel;\n }),\n taxExemptionReason: \"\",\n };\n }),\n overrideRules: [\"FinancialDocument.Validation.MustHaveTaxExemptionReason\"]\n };\n\n // figure out tax exemption reasons\n request.invoices.forEach((e) => {\n fillInvoiceEditingTaxExemptionReason(\n this,\n e as any as FinDocViewModel,\n this.isForCancellation ?? false,\n this.paysVat\n );\n });\n\n this.loading = true;\n\n Vue.axios\n .post(\"financialDocuments/CreateInvoiceRoutingDocuments\", request)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"FinancialDocument.SaveSuccess\"),\n timeout: 5000,\n });\n this.close();\n this.$emit(\"saved\");\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n getUnitOfMeasureName(id: number) {\n const unit = this.unitsOfMeasure?.find((e) => e.id === id);\n if (unit) return this.$t(unit.textResourceKey).toString();\n return \"\";\n }\n\n getTaxRateName(id: number) {\n const taxRate = this.taxRates?.find((e) => e.id === id);\n if (taxRate) return taxRate.name;\n return \"\";\n }\n\n reset() {\n this.invoices = [];\n this.allItems.forEach((e) => {\n e.isSelected = false;\n e.isAssigned = false;\n e.taxRateId = e.originalTaxRateId;\n });\n }\n\n separateByUnit() {\n this.reset();\n\n const groupedByUnit = _.groupBy(\n this.allItems,\n (e) => e.reservationAccUnitTypeId\n );\n for (const key in groupedByUnit) {\n const group = groupedByUnit[key];\n\n const newInvoice = new InvoiceRoutingInvoiceModel();\n newInvoice.documentTypeId =\n this.originDocumentTypeId ?? FinancialDocumentTypesEnum.Racun;\n this.fillInvoiceDefaults(newInvoice);\n\n group.forEach((e) => (e.isSelected = true));\n this.addItems(newInvoice);\n\n this.invoices.push(newInvoice);\n }\n }\n\n separateByType() {\n this.reset();\n\n const groupedByType = _.groupBy(\n this.allItems,\n (e) => `${e.reservationAccUnitTypeId}_${e.isCityTax || !e.addOnServiceId}`\n );\n for (const key in groupedByType) {\n const group = groupedByType[key];\n\n const newInvoice = new InvoiceRoutingInvoiceModel();\n newInvoice.documentTypeId =\n this.originDocumentTypeId ?? FinancialDocumentTypesEnum.Racun;\n this.fillInvoiceDefaults(newInvoice);\n\n group.forEach((e) => (e.isSelected = true));\n this.addItems(newInvoice);\n\n this.invoices.push(newInvoice);\n }\n }\n\n get workingToFormalConversionRate() {\n return this.storedSettings?.workingToFormalConversionRate ?? 1;\n }\n\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n @Getter(\"codebooks/unitsOfMeasure\") unitsOfMeasure?: UnitOfMeasureView[];\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n @Getter(\"appParams/tenantGeneratesDeliveryNotes\")\n tenantGeneratesDeliveryNotes?: boolean;\n\n @Getter(\"appParams/tenantPaysVat\") tenantPaysVat?: boolean;\n get paysVat() {\n return this.tenantPaysVat ?? false;\n }\n\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceRoutingModal.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceRoutingModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvoiceRoutingModal.vue?vue&type=template&id=6e5a9fbb&scoped=true&\"\nimport script from \"./InvoiceRoutingModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvoiceRoutingModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvoiceRoutingModal.vue?vue&type=style&index=0&id=6e5a9fbb&lang=scss&scoped=true&\"\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 \"6e5a9fbb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VForm,VIcon,VRow,VSimpleCheckbox,VSpacer,VToolbar,VToolbarTitle})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentSettings.vue?vue&type=style&index=0&id=1c5b71cb&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}}},[_c('v-toolbar',[_c('span',{staticClass:\"drawer-title\"},[_vm._v(_vm._s(_vm.$t(\"Property/Unit details\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('update:open', false)}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('AccomodationUnitTypeForm',{attrs:{\"readonly\":\"\",\"model\":_vm.details}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{class:{ form: true },attrs:{\"readonly\":_vm.readonly}},[_c('v-container',{staticClass:\"font-18\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{attrs:{\"color\":_vm.$vuetify.theme.dark ? 'primary' : 'secondary'}},[_vm._v(\"far fa-hotel\")])],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.model.name)+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.propertyName)+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('RatingInput',{attrs:{\"label\":_vm.$t('Accomodation unit type category'),\"readonly\":_vm.readonly,\"dense\":\"\"},model:{value:(_vm.category),callback:function ($$v) {_vm.category=$$v},expression:\"category\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{attrs:{\"color\":_vm.$vuetify.theme.dark ? 'primary' : 'secondary'}},[_vm._v(\"fas fa-city\")])],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Address\"))+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.propertyStreetName)+\" \"+_vm._s(_vm.model.propertyHouseNumber)+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"City\"))+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.propertyCityName)+\" \")])])])],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{attrs:{\"color\":_vm.$vuetify.theme.dark ? 'primary' : 'secondary'}},[_vm._v(\"fas fa-user-friends\")])],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Square size\"))+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.squareSize)+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Max occupancy\"))+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.maxOccupancy)+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"4\",\"offset\":\"1\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Max adults\"))+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.maxNumberOfAdults)+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Max children\"))+\" \")]),_c('div',{class:_vm.$vuetify.theme.dark ? 'primary--text' : 'secondary--text'},[_vm._v(\" \"+_vm._s(_vm.model.maxOccupancy - _vm.model.maxNumberOfAdults)+\" \")])])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.model.propertyAmenities,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"label\":_vm.$t('Property ammenities'),\"multiple\":\"\",\"chips\":\"\"},model:{value:(_vm.model.propertyAmenities),callback:function ($$v) {_vm.$set(_vm.model, \"propertyAmenities\", $$v)},expression:\"model.propertyAmenities\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.model.accomodationUnitTypeAmenities,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"label\":_vm.$t('Accomodation unit type ammenities'),\"multiple\":\"\",\"chips\":\"\"},model:{value:(_vm.model.accomodationUnitTypeAmenities),callback:function ($$v) {_vm.$set(_vm.model, \"accomodationUnitTypeAmenities\", $$v)},expression:\"model.accomodationUnitTypeAmenities\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { AccomodationUnitTypesWithDetailsView } from \"@/shared/models/accomodationUnitTypesWithDetailsView\";\nimport RatingInput from \"@/components/misc/RatingInput.vue\";\nimport { CategoriesEnum } from \"@/shared/models/enums.type\"\n\n@Component({\n components: {\n RatingInput,\n },\n})\nexport default class AccomodationUnitTypeForm extends Vue {\n @Prop()\n model?: AccomodationUnitTypesWithDetailsView;\n @Prop()\n readonly?: boolean;\n\n get category() {\n if (this.model){\n if (this.model.categoryId === CategoriesEnum.Empty){\n return 0;\n }\n return this.model.categoryId + 1;\n }\n return 0;\n }\n set category(val: number) {\n if (this.model && (val === 0 || (val === 1 && this.model.categoryId === CategoriesEnum.Star2))){\n this.model.categoryId = CategoriesEnum.Empty\n }\n else\n {\n if (this.model){\n this.model.categoryId = val - 1;\n if (val === 1){\n this.$nextTick(() => {\n if(this.model) this.model.categoryId = CategoriesEnum.Star2;\n });\n }\n }\n }\n }\n get propertyCategory() {\n return this.model ? this.model.categoryId + 1 : CategoriesEnum.Star3;\n }\n set propertyCategory(val: number) {\n if (this.model) {\n this.model.propertyCategoryId = val - 1;\n if (val < 2) {\n this.$nextTick(() => {\n if (this.model) this.model.propertyCategoryId = CategoriesEnum.Star2;\n });\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeForm.vue?vue&type=template&id=a2e20a4e&scoped=true&\"\nimport script from \"./AccomodationUnitTypeForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeForm.vue?vue&type=style&index=0&id=a2e20a4e&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 \"a2e20a4e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VContainer,VForm,VIcon,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport AccomodationUnitTypeForm from \"./AccomodationUnitTypeForm.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { AmenityView } from \"@/shared/models/amenities\";\nimport { AccomodationUnitTypesWithDetailsView } from '@/shared/models/accomodationUnitTypesWithDetailsView';\n\n@Component({\n components: {\n AccomodationUnitTypeForm,\n RightDrawer,\n },\n})\nexport default class AccomodationUnitTypeDrawer extends Vue {\n @Prop() open?: boolean;\n @Prop() accomodationUnitType?: { accomodationUnitTypeId: number };\n\n @Watch(\"accomodationUnitType\")\n async accomodationUnitTypeChanged(fresh: { accomodationUnitTypeId: number }) {\n if (fresh) {\n await this.loadDetails(fresh);\n } else {\n this.details = {\n accomodationUnitTypeAmenities: [] as AmenityView[],\n propertyAmenities: [] as AmenityView[],\n };\n }\n }\n\n details?: Partial = {\n accomodationUnitTypeAmenities: [] as AmenityView[],\n propertyAmenities: [] as AmenityView[],\n };\n\n async loadDetails({\n accomodationUnitTypeId,\n }: {\n accomodationUnitTypeId: number;\n }) {\n const response = await this.axios.get(\n `accomodationUnitTypes/${accomodationUnitTypeId}`\n );\n this.details = response.data;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeDrawer.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeDrawer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeDrawer.vue?vue&type=template&id=0d14b7d1&scoped=true&\"\nimport script from \"./AccomodationUnitTypeDrawer.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeDrawer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeDrawer.vue?vue&type=style&index=0&id=0d14b7d1&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 \"0d14b7d1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VIcon,VSpacer,VToolbar})\n","import Vue from \"*.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { AxiosAdapter, AxiosInstance, AxiosRequestConfig } from \"axios\";\nimport {\n CheckedInCustomersOnAccUnitType,\n ReservationCheckInCustomerData,\n SetCheckedInCustomers,\n} from \"./CheckinTypes\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\nexport function getRuleIgnoreAdapter(defaultAdapter: AxiosAdapter) {\n return function (c: any) {\n return defaultAdapter(c).catch((settlement: any) => {\n if (settlement && settlement.response && settlement.response.data) {\n try {\n const data = JSON.parse(settlement.response.data);\n\n if (data.code === \"RuleBroken\") {\n return Promise.resolve({ ...settlement.response, handled: true });\n }\n } catch {\n /* do nothing */\n }\n }\n throw settlement;\n });\n };\n}\n\nexport const loadReservationCustomers = (axios: AxiosInstance) => async (\n reservationId: number\n): Promise => {\n const guests = await axios.get>(\n `/reservations/${reservationId}/guests`,\n {\n params: {\n $top: 1000,\n },\n }\n );\n\n const res = new SetCheckedInCustomers(reservationId, false);\n res.payload = guests.data.result.map((x: CheckedInCustomersOnAccUnitType) => {\n const combined = Object.assign(new CheckedInCustomersOnAccUnitType(), x);\n\n combined.guests = x.guests.map((y: ReservationCheckInCustomerData) => {\n const g = Object.assign(new ReservationCheckInCustomerData(), y);\n g.eVisitorCheckInTime = g.eVisitorCheckInTime?.substr(0, 5) ?? null;\n g.eVisitorCheckoutTime = g.eVisitorCheckoutTime?.substr(0, 5) ?? null;\n g.eVisitorExpectedCheckoutTime =\n g.eVisitorExpectedCheckoutTime?.substr(0, 5) ?? null;\n g.isDirty = false;\n g.isEmpty = false;\n return g;\n });\n\n return combined;\n });\n\n return res;\n};\n\nexport const checkIn = (axios: AxiosInstance) => async (payload: {\n sendData: SetCheckedInCustomers;\n}) => {\n return await axios.post(`reservations/CheckInGuests`, payload.sendData);\n};\n\nexport const checkInToEVisitor = (vm: Vue) => async (\n guests: ReservationCheckInCustomerData[],\n eVisitorIntegration: EVisitorIntegrationModel\n) => {\n let allSucceded = true;\n\n for (const guest of guests) {\n if (guest.eVisitorIsCheckedIn || guest.eVisitorIsCheckedOut) {\n let messageKey = \"EVisitor.CheckIn.Skipped\";\n messageKey += guest.eVisitorIsCheckedOut ? \".AlreadyCheckedOut\" : \".AlreadyCheckedIn\";\n\n guest.eVisitorCheckinResult = {\n success: true,\n message: vm.$t(messageKey, { eVisitorServiceName: eVisitorIntegration.name }).toString(),\n };\n continue;\n }\n\n try {\n // revert to default behaviour (don't display toasts or anything)\n let config: AxiosRequestConfig | undefined;\n if (vm.axios.defaults.adapter) {\n config = {\n adapter: getRuleIgnoreAdapter(vm.axios.defaults.adapter),\n } as AxiosRequestConfig;\n }\n\n await vm.axios.post(\n `reservations/CheckInMultipleGuestsToEVisitor`,\n { guestIds: [guest.id] },\n config\n );\n\n guest.eVisitorCheckinResult = {\n success: true,\n message: vm.$t(\"EVisitor.CheckIn.Success\", { eVisitorServiceName: eVisitorIntegration.name }).toString(),\n };\n } catch (e) {\n allSucceded = false;\n if (e.handled) {\n guest.eVisitorCheckinResult = {\n success: false,\n message:\n e.data.brokenRules\n ?.map((x: { description: string }) =>\n vm.$t(x.description).toString()\n )\n .filter((x: string) => !!x && x.length > 0)\n .join(\"\\n\") ?? \"\",\n };\n } else {\n throw e;\n }\n }\n }\n\n return allSucceded;\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModal.vue?vue&type=style&index=0&id=401e7f61&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxRecap.vue?vue&type=style&index=0&id=02a873f6&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"drawer\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialService,\"watched\":_vm.service,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"service-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('div',{staticClass:\"service-form-title\"},[(!!_vm.service.id)?_c('span',[_vm._v(_vm._s(_vm.$t(\"AddOnService.Editing\"))+\" \"+_vm._s(_vm.initialService.name))]):_vm._e(),(!_vm.service.id)?_c('span',[_vm._v(_vm._s(_vm.$t(\"AddOnService.New\")))]):_vm._e()])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Basic information\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"AddOnService.Translations\")))]),(!_vm.accUnitId && !_vm.propertyId)?_c('v-tab',[_c('v-badge',{attrs:{\"content\":_vm.service.propertiesIds.length,\"value\":_vm.service.propertiesIds.length}},[_vm._v(_vm._s(_vm.$t(\"AddOnService.Properties\")))])],1):_vm._e()],1),_c('v-tabs-items',{staticClass:\"tab-items\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{staticClass:\"tab-item\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',{staticClass:\"form-description\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.descriptionTextResource))+\" \")])],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\",\"sm\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.CityTax')},on:{\"change\":function($event){return _vm.isCityTaxChanged()}},model:{value:(_vm.service.isCityTax),callback:function ($$v) {_vm.$set(_vm.service, \"isCityTax\", $$v)},expression:\"service.isCityTax\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\",\"sm\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.IsFoodAndBeverages')},on:{\"change\":_vm.isFoodAndBeveragesChanged},model:{value:(_vm.service.isFoodAndBeverages),callback:function ($$v) {_vm.$set(_vm.service, \"isFoodAndBeverages\", $$v)},expression:\"service.isFoodAndBeverages\"}})],1),(_vm.service.isFoodAndBeverages)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"suffix\":\"%\",\"validateInput\":true,\"label\":_vm.$t('AddOnService.ConsumptionTaxRate'),\"rules\":[\n _vm.rules.positiveButNotRequired(_vm.service.consumptionTaxRate) ]},model:{value:(_vm.service.consumptionTaxRate),callback:function ($$v) {_vm.$set(_vm.service, \"consumptionTaxRate\", $$v)},expression:\"service.consumptionTaxRate\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AddOnService.Name') + '*',\"rules\":[_vm.rules.required, _vm.maxLength(128)]},model:{value:(_vm.service.name),callback:function ($$v) {_vm.$set(_vm.service, \"name\", $$v)},expression:\"service.name\"}})],1)],1),(!_vm.service.isCityTax)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.PricesAreSeasonal')},model:{value:(_vm.service.pricesAreSeasonal),callback:function ($$v) {_vm.$set(_vm.service, \"pricesAreSeasonal\", $$v)},expression:\"service.pricesAreSeasonal\"}})],1)],1):_vm._e(),(_vm.service.pricesAreSeasonal)?[_vm._l((_vm.service.seasonPrices),function(seasonPrice,index){return _c('v-row',{key:index},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('AddOnService.DateFrom') + '*',\"rules\":[\n _vm.rules.untilDateAfterFromDate(\n seasonPrice.dateFrom,\n seasonPrice.dateUntil\n ) ].concat( (_vm.rules.Required || []),\n [_vm.validateDates()] ),\"editable\":true},model:{value:(seasonPrice.dateFrom),callback:function ($$v) {_vm.$set(seasonPrice, \"dateFrom\", $$v)},expression:\"seasonPrice.dateFrom\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('AddOnService.DateUntil') + '*',\"rules\":[\n _vm.rules.fromDateBeforeUntilDate(\n seasonPrice.dateFrom,\n seasonPrice.dateUntil\n ) ].concat( (_vm.rules.Required || []),\n [_vm.validateDates()] ),\"editable\":true},model:{value:(seasonPrice.dateUntil),callback:function ($$v) {_vm.$set(seasonPrice, \"dateUntil\", $$v)},expression:\"seasonPrice.dateUntil\"}})],1),(_vm.tenantPaysVat)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AddOnService.GrossPrice') + '*',\"rules\":[_vm.rules.zeroOrPositive(seasonPrice.grossPrice)],\"validateInput\":true},model:{value:(seasonPrice.grossPrice),callback:function ($$v) {_vm.$set(seasonPrice, \"grossPrice\", $$v)},expression:\"seasonPrice.grossPrice\"}})],1):_vm._e(),_c('v-col',{staticClass:\"d-flex align-baseline\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"value\":_vm.getNetPriceWithConsumptionTax(seasonPrice.grossPrice),\"disabled\":\"\",\"label\":_vm.$t('AddOnService.NetPrice') + '*',\"validateInput\":true}}),_c('v-icon',{staticClass:\"ml-4\",attrs:{\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeSeasonPrice(seasonPrice)}}},[_vm._v(\"fal fa-trash\")])],1),(_vm.isTenantAnAgency)?_c('v-row',[_c('v-col',{staticClass:\"left-margin\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AddOnService.OwnerPayoutAmount'),\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(seasonPrice.ownerPayoutIsAbsoluteSeason)?_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.service.currencyId}}):_c('span',[_vm._v(\"%\")])]},proxy:true}],null,true),model:{value:(seasonPrice.ownerPayoutAmountSeason),callback:function ($$v) {_vm.$set(seasonPrice, \"ownerPayoutAmountSeason\", $$v)},expression:\"seasonPrice.ownerPayoutAmountSeason\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.OwnerPayoutIsAbsolute')},model:{value:(seasonPrice.ownerPayoutIsAbsoluteSeason),callback:function ($$v) {_vm.$set(seasonPrice, \"ownerPayoutIsAbsoluteSeason\", $$v)},expression:\"seasonPrice.ownerPayoutIsAbsoluteSeason\"}})],1)],1):_vm._e()],1)}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{class:_vm.$vuetify.theme.light ? 'secondary--text' : 'primary--text',attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addSeasonPrice()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"AddOnService.SeasonPrice.Add\"))+\" \")])],1)],1)]:_vm._e(),(_vm.service.pricesAreSeasonal)?_c('v-divider',{staticClass:\"divider\"}):_vm._e(),_c('v-row',[(!_vm.service.pricesAreSeasonal)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AddOnService.GrossPrice') + '*',\"rules\":[_vm.rules.zeroOrPositive(_vm.service.grossPrice)],\"validateInput\":true,\"defaultToZeroWhenEmpty\":true},model:{value:(_vm.service.grossPrice),callback:function ($$v) {_vm.$set(_vm.service, \"grossPrice\", $$v)},expression:\"service.grossPrice\"}})],1):_vm._e(),(_vm.tenantPaysVat && !_vm.service.pricesAreSeasonal)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AddOnService.TaxRate') + '*',\"items\":_vm.taxRates,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"rules\":[_vm.rules.required],\"disabled\":_vm.service.isCityTax},model:{value:(_vm.service.taxRateId),callback:function ($$v) {_vm.$set(_vm.service, \"taxRateId\", $$v)},expression:\"service.taxRateId\"}})],1):_vm._e(),(_vm.tenantPaysVat && !_vm.service.pricesAreSeasonal)?_c('v-col',{staticClass:\"d-flex align-baseline\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"value\":_vm.getNetPriceWithConsumptionTax(_vm.service.grossPrice),\"disabled\":\"\",\"label\":_vm.$t('AddOnService.NetPrice') + '*'}})],1):_vm._e()],1),_c('v-row',[(_vm.showTaxExemptionReason && !_vm.service.pricesAreSeasonal)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('FinancialDocument.TaxExemptionReason') + '*',\"outlined\":\"\",\"rows\":\"3\",\"auto-grow\":\"\",\"counter\":\"500\",\"rules\":[_vm.rules.required, _vm.maxLength(500)]},model:{value:(_vm.service.taxExemptionReason),callback:function ($$v) {_vm.$set(_vm.service, \"taxExemptionReason\", $$v)},expression:\"service.taxExemptionReason\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AddOnService.UnitOfMeasure') + '*',\"items\":_vm.unitsOfMeasureSelectable,\"item-value\":\"id\",\"item-text\":\"text\",\"rules\":[_vm.rules.required]},model:{value:(_vm.service.unitOfMeasureId),callback:function ($$v) {_vm.$set(_vm.service, \"unitOfMeasureId\", $$v)},expression:\"service.unitOfMeasureId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-select',{attrs:{\"value\":_vm.currencyItems,\"items\":_vm.currencyItems,\"item-value\":\"id\",\"item-text\":\"text\",\"label\":_vm.$t('AddOnService.Currency'),\"readonly\":_vm.service.isCityTax},model:{value:(_vm.service.currencyId),callback:function ($$v) {_vm.$set(_vm.service, \"currencyId\", $$v)},expression:\"service.currencyId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AddOnService.CalculationMethod') + '*',\"items\":_vm.priceCalculationMethods,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"rules\":[_vm.rules.required]},model:{value:(_vm.service.calculationMethodId),callback:function ($$v) {_vm.$set(_vm.service, \"calculationMethodId\", $$v)},expression:\"service.calculationMethodId\"}})],1),(_vm.tenantPaysVat && _vm.service.pricesAreSeasonal)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AddOnService.TaxRate') + '*',\"items\":_vm.taxRates,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"rules\":[_vm.rules.required],\"disabled\":_vm.service.isCityTax},model:{value:(_vm.service.taxRateId),callback:function ($$v) {_vm.$set(_vm.service, \"taxRateId\", $$v)},expression:\"service.taxRateId\"}})],1):_vm._e()],1),(_vm.isTenantAnAgency)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.IsPPOM')},model:{value:(_vm.service.isPPOM),callback:function ($$v) {_vm.$set(_vm.service, \"isPPOM\", $$v)},expression:\"service.isPPOM\"}})],1),(_vm.service.isPPOM)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\",\"id\":\"ppom-tax-category\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AddOnService.PPOMTaxCategory'),\"items\":_vm.taxRates,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); }},model:{value:(_vm.service.ppomTaxCategoryId),callback:function ($$v) {_vm.$set(_vm.service, \"ppomTaxCategoryId\", $$v)},expression:\"service.ppomTaxCategoryId\"}})],1):_vm._e()],1):_vm._e(),_c('v-row',[(_vm.showTaxExemptionReason && _vm.service.pricesAreSeasonal)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('FinancialDocument.TaxExemptionReason') + '*',\"outlined\":\"\",\"rows\":\"3\",\"auto-grow\":\"\",\"counter\":\"500\",\"rules\":[_vm.rules.required, _vm.maxLength(500)]},model:{value:(_vm.service.taxExemptionReason),callback:function ($$v) {_vm.$set(_vm.service, \"taxExemptionReason\", $$v)},expression:\"service.taxExemptionReason\"}})],1):_vm._e()],1),(_vm.isTenantAnAgency && !_vm.service.pricesAreSeasonal)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AddOnService.OwnerPayoutAmount'),\"validateInput\":true,\"minValue\":{ value: 0, isExclusive: false }},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(_vm.service.ownerPayoutIsAbsolute)?_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.service.currencyId}}):_c('span',[_vm._v(\"%\")])]},proxy:true}],null,false,2988703343),model:{value:(_vm.service.ownerPayoutAmount),callback:function ($$v) {_vm.$set(_vm.service, \"ownerPayoutAmount\", $$v)},expression:\"service.ownerPayoutAmount\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.OwnerPayoutIsAbsolute')},model:{value:(_vm.service.ownerPayoutIsAbsolute),callback:function ($$v) {_vm.$set(_vm.service, \"ownerPayoutIsAbsolute\", $$v)},expression:\"service.ownerPayoutIsAbsolute\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.ApplyToAllProperties')},model:{value:(_vm.service.applyToAllProperties),callback:function ($$v) {_vm.$set(_vm.service, \"applyToAllProperties\", $$v)},expression:\"service.applyToAllProperties\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.AutomaticallyAddToReservations')},model:{value:(_vm.service.automaticallyAddToReservations),callback:function ($$v) {_vm.$set(_vm.service, \"automaticallyAddToReservations\", $$v)},expression:\"service.automaticallyAddToReservations\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AddOnService.IsAvailableViaBookingEngine')},model:{value:(_vm.service.isAvailableViaBookingEngine),callback:function ($$v) {_vm.$set(_vm.service, \"isAvailableViaBookingEngine\", $$v)},expression:\"service.isAvailableViaBookingEngine\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AddOnService.Konto'),\"rules\":[_vm.maxLength(20)]},model:{value:(_vm.service.konto),callback:function ($$v) {_vm.$set(_vm.service, \"konto\", $$v)},expression:\"service.konto\"}})],1)],1)],2),_c('v-tab-item',{staticClass:\"tab-item\"},[_vm._l((_vm.service.translations),function(translation,index){return _c('v-row',{key:index},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('AddOnService.Translation.CultureCode') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.rules.required]},model:{value:(translation.cultureCode),callback:function ($$v) {_vm.$set(translation, \"cultureCode\", $$v)},expression:\"translation.cultureCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AddOnService.Translation.Translation') + '*',\"rules\":[_vm.rules.required, _vm.maxLength(128)]},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeTranslation(translation)}}},[_vm._v(\"fal fa-trash\")])]},proxy:true}],null,true),model:{value:(translation.translation),callback:function ($$v) {_vm.$set(translation, \"translation\", $$v)},expression:\"translation.translation\"}})],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addTranslation()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"AddOnService.Translation.Add\"))+\" \")])],1)],1)],2),(!_vm.accUnitId && !_vm.propertyId)?_c('v-tab-item',{staticClass:\"property-access-tab\"},[_c('v-data-table',{attrs:{\"loading\":_vm.loadingProperties,\"headers\":_vm.translatedHeaders,\"items\":_vm.filteredProperties,\"item-key\":\"propertyId\",\"item-name\":\"name\",\"items-per-page\":15,\"fixed-header\":\"\",\"show-select\":\"\",\"height\":\"100%\"},on:{\"item-selected\":_vm.selectProperty},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"input-value\":_vm.areAllPropertiesSelected()},on:{\"change\":_vm.selectAllProperties}})]},proxy:true},{key:\"header.name\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.nameFilter),callback:function ($$v) {_vm.nameFilter=$$v},expression:\"nameFilter\"}})]}},{key:\"header.address\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.addressFilter),callback:function ($$v) {_vm.addressFilter=$$v},expression:\"addressFilter\"}})]}},{key:\"header.postalCodeAndCity\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.postalCodeFilter),callback:function ($$v) {_vm.postalCodeFilter=$$v},expression:\"postalCodeFilter\"}})]}},{key:\"top\",fn:function(){return [_c('form-description',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.$t(\"AddOnService.Properties.TableDesc\")))])]},proxy:true},{key:\"no-data\",fn:function(){return [(!_vm.loadingProperties)?_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fa-hotel\"}}):_vm._e()]},proxy:true}],null,false,187100789),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export type AddOnServiceView = {\n id: number;\n name: string;\n netPrice: number;\n taxRateId: number;\n grossPrice?: number;\n currencyId: number;\n unitOfMeasureId: number;\n calculationMethodId?: number;\n applyToAllProperties: boolean;\n automaticallyAddToReservations: boolean;\n isCityTax: boolean;\n isTransfer: boolean;\n isAvailableViaBookingEngine: boolean;\n pricesAreSeasonal: boolean;\n firstPropertyName: string;\n isPPOM: boolean;\n ppomTaxCategoryId?: number;\n};\n\nexport class AddOnServiceModel {\n id = 0;\n name = \"\";\n netPrice = 0;\n taxRateId = 0;\n grossPrice = 0;\n currencyId = 0;\n unitOfMeasureId = 1;\n calculationMethodId = 0;\n applyToAllProperties = false;\n automaticallyAddToReservations = false;\n isCityTax = false;\n isBookingFee = false;\n isTransfer = false;\n isAvailableViaBookingEngine = false;\n isFoodAndBeverages = false;\n konto = \"\";\n pricesAreSeasonal = false;\n consumptionTaxRate: number | null = null;\n ownerPayoutAmount: number | undefined;\n ownerPayoutIsAbsolute = false;\n taxExemptionReason = \"\";\n accUnitId = 0;\n\n translations = [] as AddOnServiceTranslation[];\n seasonPrices = [] as AddOnServicesSeasonPrice[];\n propertiesIds = [] as number[];\n\n isPPOM = false;\n ppomTaxCategoryId: number | null = null;\n}\n\nexport class AddOnServiceViewModel {\n addOnServiceId = 0;\n mergeToAccommodationWhenInvoicing = false;\n}\n\nexport class AddOnServiceTranslation {\n id = 0;\n addOnServiceId = 0;\n cultureCode = \"\";\n translation = \"\";\n}\n\nexport class AddOnServicesSeasonPrice {\n id = 0;\n addOnServiceId = 0;\n netPrice = 0;\n grossPrice = 0;\n dateFrom = \"\";\n dateUntil = \"\";\n ownerPayoutAmountSeason? = 0;\n ownerPayoutIsAbsoluteSeason? = false;\n}\n\nexport interface AddOnServiceViewForFinancialDocuments {\n id: number;\n name: string;\n grossPrice: number;\n taxRateId: number;\n currencyId: number;\n unitOfMeasureId: number;\n isCityTax: boolean;\n isBookingFee: boolean;\n consumptionTaxRate: number | null;\n isFoodAndBeverages: boolean;\n taxExemptionReason: string;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport {\n CalculationMethods,\n PriceCalculationMethodView,\n} from \"@/shared/models/priceCalculationMethods\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport * as _ from \"lodash\";\nimport { Currency } from \"@/shared/models/currency\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport {\n AddOnServiceModel,\n AddOnServicesSeasonPrice,\n AddOnServiceTranslation,\n} from \"@/shared/models/addOnService\";\nimport { PropertyWithPostalCode } from \"@/shared/models/property\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { UnitOfMeasureView } from \"@/shared/models/unitOfMeasure\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { TenantTypesEnum } from \"@/shared/models/enums.type\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport NumericInputImproved from \"./numbers/NumericInputImproved.vue\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\n\n@Component({\n components: {\n RightDrawer,\n FormDescription,\n NoData,\n NumericInputImproved,\n DateField,\n CurrencyDisplay,\n },\n})\nexport default class AddOnServicesAndFeesForm extends Vue {\n @Prop({ default: null }) addOnServiceId!: number | null;\n @Prop({ default: null }) propertyId?: number | null;\n @Prop({ default: null }) accUnitId?: number | null;\n @Prop({ default: false }) open!: boolean;\n @Prop() callback!: () => any;\n\n descriptionTextResource = \"AddOnService.FormInstructions\";\n\n tab = 0;\n\n fkey = 0;\n\n loading = false;\n saving = false;\n initialService = new AddOnServiceModel();\n service = new AddOnServiceModel();\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n this.tab = 0;\n }\n\n if (fresh && this.addOnServiceId) {\n await this.loadService();\n this.initialService = new AddOnServiceModel();\n } else {\n this.selected = [];\n this.service = new AddOnServiceModel();\n this.service.currencyId = this.workingCurrency?.id ?? 0;\n this.initialService = _.cloneDeep(this.service);\n\n this.nameFilter = \"\";\n this.addressFilter = \"\";\n this.postalCodeFilter = \"\";\n }\n }\n\n @Getter(\"appParams/tenantPaysVat\") tenantPaysVat?: boolean;\n\n // prettier-ignore\n @Action(\"codebooks/refreshPriceCalculationMethods\") refreshPriceCalculationMethods?: () => Promise;\n // prettier-ignore\n @Getter(\"codebooks/priceCalculationMethods\") priceCalculationMethods?: PriceCalculationMethodView[];\n // prettier-ignore\n @Action(\"codebooks/refreshTaxRates\")refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n @Getter(\"appParams/formalCurrency\") formalCurrency?: Currency;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n @Getter(\"appParams/countryId\") tenantcountryId?: number;\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n get currencyItems() {\n return [\n {\n id: this.formalCurrency?.id,\n text: this.formalCurrency?.isoCode,\n },\n {\n id: this.workingCurrency?.id,\n text: this.workingCurrency?.isoCode,\n },\n ];\n }\n\n get tenantTaxCategory() {\n return this.taxRates\n ?.filter((x) => x.countryId === this.tenantcountryId)\n .sort(function (a, b) {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n }\n\n // prettier-ignore\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n @Getter(\"codebooks/unitsOfMeasure\") unitsOfMeasure?: UnitOfMeasureView[];\n get unitsOfMeasureSelectable() {\n return this.unitsOfMeasure?.map((x) => ({\n id: x.id,\n text: this.$t(x.textResourceKey),\n }));\n }\n\n @Getter(\"language/language\") language?: string;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: number) => {\n return value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\");\n },\n positiveButNotRequired: (value: any) =>\n value === null ||\n value === undefined ||\n +value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n untilDateAfterFromDate: (dateFrom: Date, dateUntil: Date) =>\n !(dateFrom > dateUntil && dateFrom && dateUntil) ||\n this.$t(\"AddOnService.Validation.DateFromBeforeDateUntil\"),\n fromDateBeforeUntilDate: (dateFrom: Date, dateUntil: Date) =>\n !(dateFrom > dateUntil && dateFrom && dateUntil) ||\n this.$t(\"AddOnService.Validation.DateUntilAfterDateFrom\"),\n };\n }\n maxLength(max: number) {\n return (v: string) =>\n !v || v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n containsPerNightMethods(serviceCalculationMethodId: number) {\n const rangeCalculationMethods = [\n CalculationMethods.PerNight,\n CalculationMethods.PerPersonPerNight,\n CalculationMethods.PerChildPerNight,\n CalculationMethods.PerAdultPerNight,\n ];\n\n return rangeCalculationMethods.includes(serviceCalculationMethodId);\n }\n\n validateDates() {\n const sorted = _.cloneDeep(this.service);\n\n sorted.seasonPrices.sort((a, b) => (a.dateFrom > b.dateFrom ? 1 : -1));\n\n for (let i = 1; i < sorted.seasonPrices.length; i++) {\n if (this.containsPerNightMethods(this.service.calculationMethodId)) {\n if (\n sorted.seasonPrices[i].dateFrom.substring(0, 10) <\n sorted.seasonPrices[i - 1].dateUntil.substring(0, 10)\n ) {\n return this.$t(\"AddOnServicesSeasonPrices.OverlappingDates\");\n }\n } else {\n if (\n sorted.seasonPrices[i].dateFrom.substring(0, 10) <=\n sorted.seasonPrices[i - 1].dateUntil.substring(0, 10)\n ) {\n return this.$t(\"AddOnServicesSeasonPrices.OverlappingDates\");\n }\n }\n }\n return true;\n }\n\n async created() {\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 &&\n this.refreshPriceCalculationMethods\n ) {\n await this.refreshPriceCalculationMethods();\n }\n if (!this.storedSettings && this.refreshSettings) {\n await this.refreshSettings();\n }\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n await this.refreshTaxRates();\n }\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n await this.refreshLanguages();\n }\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n await this.refreshCurrencies();\n }\n\n this.loadProperties();\n }\n\n isCityTaxChanged() {\n if (this.service.isCityTax && this.formalCurrency && this.storedSettings) {\n this.service.currencyId = this.formalCurrency.id;\n this.service.taxRateId = this.storedSettings.outOfScopeTaxRate.id ?? this.taxRates?.filter(x => x.isOutOfScope).map(e => e.id)[0];\n }\n if (!this.service.isCityTax && this.workingCurrency) {\n this.service.currencyId = this.workingCurrency.id;\n }\n if (this.service.isCityTax) {\n this.service.isFoodAndBeverages = false;\n this.service.consumptionTaxRate = null;\n this.service.pricesAreSeasonal = false;\n this.service.seasonPrices = [];\n }\n }\n\n get AOSTaxRatesForExemption() {\n return this.taxRates?.filter(x => x.rate === 0).map(e => e.id) ?? [];\n }\n\n get showTaxExemptionReason() {\n return this.AOSTaxRatesForExemption.includes(this.service.taxRateId) && this.tenantPaysVat;\n }\n\n loadingProperties = true;\n properties: PropertyWithPostalCode[] = [];\n loadProperties() {\n this.loadingProperties = true;\n Vue.axios\n .get>(\n \"/properties/PropertiesWithPostalCode\",\n {\n params: {\n $count: true,\n $skip: this.properties.length,\n $orderby: \"propertyId\",\n },\n }\n )\n .then((res) => {\n this.properties.push(...res.data.result);\n if (res.data.count && this.properties.length < res.data.count) {\n this.loadProperties();\n }\n })\n .finally(() => (this.loadingProperties = false));\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading;\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & {\n validate: () => boolean;\n };\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n loadService() {\n this.loading = true;\n Vue.axios\n .get(\"/AddOnServices/\" + this.addOnServiceId)\n .then((res) => {\n this.service = res.data;\n\n this.selected =\n this.properties?.filter((x) =>\n this.service.propertiesIds.some((e) => e == x.propertyId)\n ) || [];\n this.initialService = _.cloneDeep(this.service);\n this.loading = false;\n });\n }\n\n async submit() {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n if (this.checkForDuplicateTranslations()) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"AddOnService.DuplicateTranslations\"),\n timeout: 5000,\n });\n\n return;\n }\n\n //submit\n this.saving = true;\n if (this.service.id && this.service.id !== 0) {\n await Vue.axios\n .put(\"/AddOnServices/\" + this.service.id, this.service)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AddOnService.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.$emit(\"update:open\", false);\n this.callback();\n })\n .finally(() => {\n this.saving = false;\n });\n } else {\n if (this.propertyId) {\n this.service.propertiesIds.push(this.propertyId);\n }\n if (this.accUnitId) {\n this.service.accUnitId = this.accUnitId;\n }\n await Vue.axios\n .post(\"/AddOnServices\", this.service)\n .then((res) => {\n this.service = {\n ...this.service,\n id: res.data,\n };\n\n this.initialService = _.cloneDeep(this.service);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AddOnService.SaveSuccess\"),\n timeout: 5000,\n });\n //from property/accUnitType - close all modals and reload\n if (this.propertyId || this.accUnitId) {\n this.$emit(\"serviceAdded\");\n }\n this.$emit(\"update:open\", false);\n this.callback();\n })\n .finally(() => {\n this.saving = false;\n });\n }\n }\n\n getNetPriceWithConsumptionTax(grossPrice: number) {\n const taxRateFactor =\n (this.taxRates?.find((e) => e.id === this.service.taxRateId)?.rate ?? 0) /\n 100;\n const conTaxFactor = (this.service.consumptionTaxRate ?? 0) / 100;\n const netPrice = grossPrice / (1 + taxRateFactor + conTaxFactor);\n return round(netPrice, 2);\n }\n\n isFoodAndBeveragesChanged() {\n if (!this.service.isFoodAndBeverages) {\n this.service.consumptionTaxRate = null;\n }\n if (this.service.isFoodAndBeverages) {\n this.service.isCityTax = false;\n }\n }\n\n addTranslation() {\n this.service.translations.push({\n id: 0,\n addOnServiceId: 0,\n cultureCode: \"\",\n translation: \"\",\n });\n }\n\n removeTranslation(translation: AddOnServiceTranslation) {\n const index = this.service.translations.findIndex((x) => x == translation);\n if (index != -1) {\n this.service.translations.splice(index, 1);\n }\n }\n\n checkForDuplicateTranslations() {\n const duplicatesArray: string[] = [];\n this.service.translations.forEach((x) =>\n duplicatesArray.push(x.cultureCode)\n );\n duplicatesArray.sort();\n for (let i = 0; i < duplicatesArray.length - 1; i++) {\n if (duplicatesArray[i + 1] == duplicatesArray[i]) {\n return true;\n }\n }\n return false;\n }\n\n addSeasonPrice() {\n this.service.seasonPrices.push({\n id: 0,\n addOnServiceId: 0,\n netPrice: 0,\n grossPrice: 0,\n dateFrom: \"\",\n dateUntil: \"\",\n ownerPayoutAmountSeason: this.service.ownerPayoutAmount ?? 0,\n ownerPayoutIsAbsoluteSeason: false,\n });\n }\n\n removeSeasonPrice(seasonPrice: AddOnServicesSeasonPrice) {\n const index = this.service.seasonPrices.findIndex((x) => x == seasonPrice);\n if (index != -1) {\n this.service.seasonPrices.splice(index, 1);\n }\n }\n\n headers = [\n {\n text: \"Property\",\n value: \"name\",\n },\n {\n text: \"Address\",\n value: \"address\",\n },\n {\n text: \"City\",\n value: \"postalCodeAndCity\",\n },\n ];\n\n get translatedHeaders() {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n selected = [] as PropertyWithPostalCode[];\n\n nameFilter = \"\";\n addressFilter = \"\";\n postalCodeFilter = \"\";\n\n get filteredProperties() {\n if (!this.properties) {\n return [];\n }\n\n return this.properties\n .filter(\n (e) =>\n !this.nameFilter ||\n e.name.toLowerCase().includes(this.nameFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.addressFilter ||\n e.address.toLowerCase().includes(this.addressFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.postalCodeFilter ||\n e.postalCodeAndCity\n .toLowerCase()\n .includes(this.postalCodeFilter.toLowerCase())\n );\n }\n\n areAllPropertiesSelected() {\n return !this.properties?.some(\n (e) =>\n this.service.propertiesIds.findIndex((acc) => acc == e.propertyId) == -1\n );\n }\n\n selectProperty({\n item,\n value,\n }: {\n item: PropertyWithPostalCode;\n value: boolean;\n }) {\n if (\n value &&\n !this.service.propertiesIds.some((x) => x == item.propertyId)\n ) {\n this.service.propertiesIds.push(item.propertyId);\n } else if (!value) {\n const index = this.service.propertiesIds.findIndex(\n (x) => x == item.propertyId\n );\n if (index != -1) {\n this.service.propertiesIds.splice(index, 1);\n }\n }\n }\n\n selectAllProperties(value: boolean) {\n if (!this.properties) {\n return;\n }\n\n if (value) {\n for (const prop of this.properties) {\n if (!this.service.propertiesIds.some((x) => x == prop.propertyId)) {\n this.service.propertiesIds.push(prop.propertyId);\n this.selected.push(prop);\n }\n }\n } else {\n for (const prop of this.properties) {\n const index = this.service.propertiesIds.findIndex(\n (x) => x == prop.propertyId\n );\n\n if (index != -1) {\n this.service.propertiesIds.splice(index, 1);\n }\n\n const selectedIndex = this.selected.findIndex(\n (x) => x.propertyId == prop.propertyId\n );\n if (selectedIndex != -1) {\n this.selected.splice(selectedIndex, 1);\n }\n }\n }\n }\n get isTenantAnAgency() {\n return this.tenantTypeId == TenantTypesEnum.Agency;\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddOnServicesAndFeesForm.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddOnServicesAndFeesForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddOnServicesAndFeesForm.vue?vue&type=template&id=56595140&scoped=true&\"\nimport script from \"./AddOnServicesAndFeesForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddOnServicesAndFeesForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddOnServicesAndFeesForm.vue?vue&type=style&index=0&id=56595140&scoped=true&lang=scss&\"\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 \"56595140\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBadge,VBtn,VCheckbox,VCol,VDataTable,VDivider,VForm,VIcon,VProgressLinear,VRow,VSelect,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTextarea,VToolbar})\n","export class AvailabilitySearchModel {\n arrivalDate!: Date;\n departureDate!: Date;\n includeOnlyWholeProperties?: boolean;\n ignoreRestrictions?: boolean;\n ignoreUnitTypeCount?: boolean;\n includeSpecialOffers?: boolean = true;\n \n cityId?: number;\n propertyName?: string;\n \n numberOfAdults?: number;\n numberOfChildren?: number;\n numberOfBedrooms?: number;\n numberOfBathrooms?: number;\n fromPrice?: number;\n toPrice?: number;\n distanceToBeach?: number;\n distanceToCityCenter?: number;\n\n numberOfUnits?: number;\n \n petsAllowed?: boolean;\n propertyTypes?: number[];\n categories?: number[];\n amenities?: number[];\n }\n\nexport interface AvailabilitySearchResult{\n propertyName: string;\n streetName: string;\n houseNumber: string;\n city: string;\n postalCode: string;\n accomodationUnitTypeId: number;\n accomodationUnitTypeName: string;\n totalNumberOfUnits: number;\n squareSize?: number;\n maxNumberOfAdults: number;\n maxNumberOfChildren: number;\n baseBedsCapacity: number;\n extraBedsCapacity: number;\n numberOfAvailableUnits: number;\n numberOfNights: number;\n\n ratesJSON: string;\n rates: Rate[];\n}\n\nexport interface SimpleAvailabilitySearchResult{\n accommodationUnitId: number;\n accommodationUnitName: string;\n accommodationUnitTypeId: number;\n accommodationUnitTypeName: string;\n isAvailable: boolean;\n ownerId: number | null;\n}\n\nexport interface Rate{\n accomodationUnitTypeId: number;\n ratePlanId: number;\n ratePlansAccomodationUnitTypeId: number;\n ratePlanName: string;\n isNonRefundable: boolean;\n includesBreakfast: boolean;\n isSpecialOrPackageOffer: boolean;\n totalPrice: number;\n averagePricePerNight: number;\n currencyId: number;\n\n isDefault: boolean;\n minPersons: number;\n maxPersons: number;\n minStay: number;\n maxStay: number;\n}\n\nexport class SelectedAvailability{\n accomodationUnitTypeId!: number;\n \n accomodationUnitId?: number;\n ratePlanId?: number;\n ratePlansAccomodationUnitTypeId?: number;\n\n numberOfOccupants?: number;\n\n static GetFirstIndexInArray(array: SelectedAvailability[], item: AvailabilitySearchResult, rate: Rate): number{\n return array.findIndex(x => \n x.accomodationUnitTypeId == item.accomodationUnitTypeId &&\n x.ratePlansAccomodationUnitTypeId == rate.ratePlansAccomodationUnitTypeId &&\n x.numberOfOccupants == item.maxNumberOfAdults\n );\n }\n\n static GetCountInArray(array: SelectedAvailability[], item: AvailabilitySearchResult, rate: Rate): number{\n return array.filter(x => \n x.accomodationUnitTypeId == item.accomodationUnitTypeId &&\n x.ratePlansAccomodationUnitTypeId == rate.ratePlansAccomodationUnitTypeId &&\n x.numberOfOccupants == item.maxNumberOfAdults\n ).length;\n }\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.workingCurrency && _vm.value !== undefined)?_c('span',[_vm._v(_vm._s(_vm.$n(_vm.value, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]):(_vm.workingCurrency)?_c('span',[_vm._v(_vm._s(_vm.workingCurrency.isoCode))]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\n\n// ? this component is a helper to display currency set on tenant\n// ? as to avoid all the ceremony of actions and getters\n\n@Component\nexport default class WorkingCurrencyDisplay extends Vue {\n @Prop() value?: number;\n\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise<\n void\n >;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n }\n\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n}\n\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkingCurrencyDisplay.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkingCurrencyDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WorkingCurrencyDisplay.vue?vue&type=template&id=116f3545&scoped=true&\"\nimport script from \"./WorkingCurrencyDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./WorkingCurrencyDisplay.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 \"116f3545\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signin.vue?vue&type=style&index=0&id=0b1cf970&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DescriptionsTiles.vue?vue&type=style&index=0&id=1f1b8a30&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Period'),\"range\":\"\",\"dense\":\"\",\"hint\":_vm.dateRangeText},on:{\"input\":function($event){return _vm.$emit('updateRestrictions')}},model:{value:(_vm.internalModel.period),callback:function ($$v) {_vm.$set(_vm.internalModel, \"period\", $$v)},expression:\"internalModel.period\"}})],1)],1),_c('v-subheader',{staticClass:\"additional-options-subheader\"},[_vm._v(_vm._s(_vm.$t(\"Additional options\"))+\":\")]),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"AvailabilitySearch.NumberOfUnits\"))+\":\")])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"AvailabilitySearch.NumberOfAdults\"))+\":\")])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"AvailabilitySearch.NumberOfChildren\"))+\":\")])]),_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.NoNegativeNumbers, _vm.rules.WholeNumbersOnly],\"small\":_vm.$vuetify.breakpoint.smAndDown},on:{\"input\":_vm.numberOfUnitsChanged},model:{value:(_vm.internalModel.numberOfUnits),callback:function ($$v) {_vm.$set(_vm.internalModel, \"numberOfUnits\", $$v)},expression:\"internalModel.numberOfUnits\"}})],1),_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.NoNegativeNumbers, _vm.rules.WholeNumbersOnly],\"small\":_vm.$vuetify.breakpoint.smAndDown},on:{\"input\":function($event){return _vm.$emit('updateRestrictions')}},model:{value:(_vm.internalModel.numberOfAdults),callback:function ($$v) {_vm.$set(_vm.internalModel, \"numberOfAdults\", $$v)},expression:\"internalModel.numberOfAdults\"}})],1),_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.NoNegativeNumbers, _vm.rules.WholeNumbersOnly],\"small\":_vm.$vuetify.breakpoint.smAndDown},on:{\"input\":_vm.updateChildAges},model:{value:(_vm.internalModel.numberOfChildren),callback:function ($$v) {_vm.$set(_vm.internalModel, \"numberOfChildren\", $$v)},expression:\"internalModel.numberOfChildren\"}})],1)],1),(_vm.internalModel.numberOfChildren > 0)?_c('v-row',_vm._l((_vm.internalModel.childAges),function(child,$index){return _c('v-col',{key:$index,attrs:{\"sm\":\"4\",\"md\":\"3\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('Child{index}Age', { index: $index }) + '*',\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"rules\":[\n _vm.rules.NoNegativeNumbers,\n _vm.rules.WholeNumbersOnly,\n _vm.rules.Required ]},on:{\"input\":function($event){return _vm.$emit('updateRestrictions')}},model:{value:(_vm.internalModel.childAges[$index]),callback:function ($$v) {_vm.$set(_vm.internalModel.childAges, $index, _vm._n($$v))},expression:\"internalModel.childAges[$index]\"}})],1)}),1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"AvailabilitySearch.NumberOfBedrooms\"))+\":\")])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"NumberOfBathrooms\"))+\":\")])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('label')]),_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.NoNegativeNumbers, _vm.rules.WholeNumbersOnly],\"small\":_vm.$vuetify.breakpoint.smAndDown},on:{\"input\":function($event){return _vm.$emit('updateRestrictions')}},model:{value:(_vm.internalModel.numberOfBedrooms),callback:function ($$v) {_vm.$set(_vm.internalModel, \"numberOfBedrooms\", $$v)},expression:\"internalModel.numberOfBedrooms\"}})],1),_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('NumericPicker',{attrs:{\"rules\":[_vm.rules.NoNegativeNumbers, _vm.rules.WholeNumbersOnly],\"small\":_vm.$vuetify.breakpoint.smAndDown},on:{\"input\":function($event){return _vm.$emit('updateRestrictions')}},model:{value:(_vm.internalModel.numberOfBathrooms),callback:function ($$v) {_vm.$set(_vm.internalModel, \"numberOfBathrooms\", $$v)},expression:\"internalModel.numberOfBathrooms\"}})],1)],1),_c('v-divider'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('DeferredAutocompleteWrapper',{attrs:{\"label\":_vm.$t('City'),\"fetch\":_vm.citiesFetch,\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":\"\",\"clearable\":true},model:{value:(_vm.internalModel.cityId),callback:function ($$v) {_vm.$set(_vm.internalModel, \"cityId\", $$v)},expression:\"internalModel.cityId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Property name'),\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.internalModel.propertyName),callback:function ($$v) {_vm.$set(_vm.internalModel, \"propertyName\", $$v)},expression:\"internalModel.propertyName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AvailabilitySearch.FromPrice'),\"outlined\":true,\"decimalPlaces\":0,\"dense\":true,\"hideDetails\":true,\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})]},proxy:true}]),model:{value:(_vm.internalModel.fromPrice),callback:function ($$v) {_vm.$set(_vm.internalModel, \"fromPrice\", $$v)},expression:\"internalModel.fromPrice\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AvailabilitySearch.ToPrice'),\"outlined\":true,\"decimalPlaces\":0,\"dense\":true,\"hideDetails\":true,\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})]},proxy:true}]),model:{value:(_vm.internalModel.toPrice),callback:function ($$v) {_vm.$set(_vm.internalModel, \"toPrice\", $$v)},expression:\"internalModel.toPrice\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.Type'),\"items\":_vm.sortedPropertyTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"outlined\":true,\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.internalModel.propertyTypes),callback:function ($$v) {_vm.$set(_vm.internalModel, \"propertyTypes\", $$v)},expression:\"internalModel.propertyTypes\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.Category'),\"items\":_vm.categories,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"outlined\":true,\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.internalModel.categories),callback:function ($$v) {_vm.$set(_vm.internalModel, \"categories\", $$v)},expression:\"internalModel.categories\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":true,\"label\":_vm.$t('AvailabilitySearch.ToCityCenter'),\"decimalPlaces\":0,\"dense\":true,\"hideDetails\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',[_vm._v(\"m\")])]},proxy:true}]),model:{value:(_vm.internalModel.distanceToCityCenter),callback:function ($$v) {_vm.$set(_vm.internalModel, \"distanceToCityCenter\", $$v)},expression:\"internalModel.distanceToCityCenter\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":true,\"label\":_vm.$t('AvailabilitySearch.ToBeach'),\"decimalPlaces\":0,\"dense\":true,\"hideDetails\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',[_vm._v(\"m\")])]},proxy:true}]),model:{value:(_vm.internalModel.distanceToBeach),callback:function ($$v) {_vm.$set(_vm.internalModel, \"distanceToBeach\", $$v)},expression:\"internalModel.distanceToBeach\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Include only whole properties\")))])]),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.internalModel.includeOnlyWholeProperties),callback:function ($$v) {_vm.$set(_vm.internalModel, \"includeOnlyWholeProperties\", $$v)},expression:\"internalModel.includeOnlyWholeProperties\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Ignore restrictions\")))])]),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.internalModel.ignoreRestrictions),callback:function ($$v) {_vm.$set(_vm.internalModel, \"ignoreRestrictions\", $$v)},expression:\"internalModel.ignoreRestrictions\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Ignore unit type count\")))])]),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-switch',{key:_vm.ignoreUnitTypeCountSwitchKey,attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.internalModel.ignoreUnitTypeCount),callback:function ($$v) {_vm.$set(_vm.internalModel, \"ignoreUnitTypeCount\", $$v)},expression:\"internalModel.ignoreUnitTypeCount\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Include special offers\")))])]),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.internalModel.includeSpecialOffers),callback:function ($$v) {_vm.$set(_vm.internalModel, \"includeSpecialOffers\", $$v)},expression:\"internalModel.includeSpecialOffers\"}})],1)],1),_c('v-divider'),_c('v-subheader',{staticClass:\"amenities-subheader\"},[_vm._v(_vm._s(_vm.$t(\"AvailabilitySearch.AdditionalContent\"))+\":\")]),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('label',[_c('v-icon',{staticClass:\"mr-5\"},[_vm._v(\"fa-paw\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"Pets allowed\")))],1)]),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.internalModel.petsAllowed),callback:function ($$v) {_vm.$set(_vm.internalModel, \"petsAllowed\", $$v)},expression:\"internalModel.petsAllowed\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"menu-props\":{\n 'min-width': 400,\n 'max-width': 400,\n 'content-class': 'selectAmenities'\n },\"label\":_vm.$t('Property/unit amenities'),\"items\":_vm.uniqueAmenities,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"outlined\":true,\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.internalModel.amenities),callback:function ($$v) {_vm.$set(_vm.internalModel, \"amenities\", $$v)},expression:\"internalModel.amenities\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, PropSync } from \"vue-property-decorator\";\nimport DateField, {\n formatCountOfNights,\n} from \"@/components/misc/DateField.vue\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport DeferredAutocompleteWrapper from \"@/components/misc/DeferredAutocompleteWrapper.vue\";\nimport { DefferedAutocompleteItem } from \"@/components/misc/DeferredAutocomplete.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { City } from \"@/shared/models/city\";\nimport { Category } from \"@/shared/models/category\";\nimport { Action, Getter } from \"vuex-class\";\nimport { PropertyType } from \"@/shared/models/propertyType\";\nimport { AmenityView } from \"@/shared/models/amenities\";\nimport PriceInput from \"@/components/calendar/inputs/PriceInput.vue\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\n\nexport interface AvailabilitySearchFormModel {\n period: string[];\n numberOfUnits?: number;\n numberOfAdults?: number;\n numberOfChildren?: number;\n numberOfBedrooms?: number;\n numberOfBathrooms?: number;\n fromPrice?: number;\n toPrice?: number;\n distanceToBeach?: number;\n distanceToCityCenter?: number;\n childAges: (number | null)[];\n\n cityId?: number;\n propertyName?: string;\n propertyTypes?: number[];\n categories?: number[];\n amenities?: number[];\n\n includeOnlyWholeProperties?: boolean;\n ignoreRestrictions?: boolean;\n ignoreUnitTypeCount?: boolean;\n includeSpecialOffers?: boolean;\n}\n\n@Component({\n components: {\n DateField,\n NumericPicker,\n DeferredAutocompleteWrapper,\n PriceInput,\n CurrencyDisplay,\n NumericInputImproved\n },\n})\nexport default class AvailabilitySearchForm extends Vue {\n @PropSync(\"searchModel\") internalModel?: AvailabilitySearchFormModel;\n\n @Action(\"codebooks/refreshPropertyTypes\") refreshPropertyTypes?: () => Promise;\n @Getter(\"codebooks/propertyTypes\") propertyTypes?: PropertyType[];\n \n @Action(\"codebooks/refreshCategories\") refreshCategories?: () => Promise;\n @Getter(\"codebooks/categories\") categories?: Category[];\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n \n @Action(\"codebooks/refreshAmenitiesAndGroups\")\n refreshAmenitiesAndGroups?: () => Promise;\n @Getter(\"codebooks/amenities\") amenities?: AmenityView[];\n\n @Getter(\"language/language\") language?: string;\n\n async created() {\n const promises = [];\n\n if ((this.propertyTypes?.length ?? 0) === 0 && this.refreshPropertyTypes) {\n promises.push(this.refreshPropertyTypes());\n }\n if ((this.categories?.length ?? 0) === 0 && this.refreshCategories) {\n promises.push(this.refreshCategories());\n }\n if (\n (this.amenities?.length ?? 0) === 0 && this.refreshAmenitiesAndGroups) {\n promises.push(this.refreshAmenitiesAndGroups());\n }\n if (this.storedSettings?.workingCurrency && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n await Promise.all(promises);\n }\n\n get dateRangeText() {\n if (!this.internalModel) return \"\";\n return formatCountOfNights(this)(this.internalModel.period);\n }\n\n get sortedPropertyTypes(){\n return this.propertyTypes?.sort((a,b) => this.$t(a.textResourceKey).toString().localeCompare(this.$t(b.textResourceKey).toString(), this.language)) ?? [];\n }\n\n get currencyId(){\n return this.storedSettings?.workingCurrency.id;\n }\n\n get uniqueAmenities(){\n const uniqueAmenities = [] as AmenityView[];\n // Push only unique values.\n this.amenities?.forEach(x => {\n if(!uniqueAmenities.map(uT => uT.textResourceKey).includes(x.textResourceKey)){\n uniqueAmenities.push(x);\n }\n })\n \n return uniqueAmenities.sort((a,b) => this.$t(a.textResourceKey).toString().localeCompare(this.$t(b.textResourceKey).toString(), this.language)) ?? []; \n }\n\n updateChildAges() {\n if (!this.internalModel) return;\n\n if (\n !this.internalModel.numberOfChildren ||\n this.internalModel.numberOfChildren <= 0\n ) {\n this.internalModel.childAges = [];\n return;\n }\n\n while (\n this.internalModel.childAges.length < this.internalModel.numberOfChildren\n ) {\n this.internalModel.childAges.push(0);\n }\n\n while (\n this.internalModel.childAges.length > this.internalModel.numberOfChildren\n ) {\n this.internalModel.childAges.pop();\n }\n\n this.$emit(\"updateRestrictions\");\n }\n\n citiesFetch(val: { search: string }): Promise {\n return this.axios\n .get>(\"codebooks/cities\", {\n params: {\n $orderby: \"name\",\n name: val.search,\n },\n })\n .then(({ data }) =>\n data.result.map((x) => ({\n id: x.id,\n text: x.name,\n }))\n );\n }\n\n ignoreUnitTypeCountSwitchKey = 0;\n numberOfUnitsChanged(value: number | null) {\n if (!this.internalModel) return;\n\n if (value == null) {\n this.internalModel.ignoreUnitTypeCount = true;\n this.ignoreUnitTypeCountSwitchKey += 1;\n }\n\n this.$emit(\"updateRestrictions\");\n }\n\n get rules() {\n return {\n Required: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n NoNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n WholeNumbersOnly: (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n };\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AvailabilitySearchForm.vue?vue&type=template&id=8b5e496e&scoped=true&\"\nimport script from \"./AvailabilitySearchForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AvailabilitySearchForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AvailabilitySearchForm.vue?vue&type=style&index=0&id=8b5e496e&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 \"8b5e496e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VCol,VDivider,VIcon,VRow,VSubheader,VSwitch,VTextField})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesOBAndLOSRules.vue?vue&type=style&index=0&id=199fe524&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"availability-results\"},[_c('div',{staticClass:\"results-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"AdvancedSearch.ResultCount\", _vm.items))+\" \"),_c('v-icon',{staticClass:\"ml-4\",attrs:{\"size\":\"16px\"},on:{\"click\":function($event){_vm.filterModalOpen = !_vm.filterModalOpen}}},[_vm._v(\"fas fa-filter\")])],1),_vm._l((_vm.items.result),function(unit,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"availability-card\"},[_c('div',{staticClass:\"title-row\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(\" \"+_vm._s(unit.propertyName)+\" \")])]),_c('div',{staticClass:\"text\"},[_vm._v(\" \"+_vm._s(unit.accomodationUnitTypeName)+\" - \"+_vm._s(_vm.getNumberOfAvailableUnits(unit))+\"/\"+_vm._s(unit.totalNumberOfUnits)+\" \")]),_c('div',{staticClass:\"text mb-3\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Number of occupants {count}\", { count: _vm.getMaxOccupancy(unit), }))+\" \")]),_c('v-divider'),_vm._l((_vm.ratePlans(unit)),function(rate,rpIndex){return _c('div',{key:rpIndex},[_c('div',{staticClass:\"rate-plan-name\"},[_vm._v(\" \"+_vm._s(_vm.getRateName(rate))+\" \")]),_c('div',{staticClass:\"text\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Average price per night\"))+\" : \"+_vm._s(_vm.$n(rate.averagePricePerNight, { style: \"currency\", currency: _vm.currencyEnum[rate.currencyId], display: \"code\", }))+\" \")]),_c('div',{staticClass:\"text\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Total price\"))+\" : \"+_vm._s(_vm.$n(rate.totalPrice, { style: \"currency\", currency: _vm.currencyEnum[rate.currencyId], display: \"code\", }))+\" \")]),_c('v-card-actions',[_c('v-spacer'),(!_vm.isGlobalSearch)?_c('div',[_c('v-icon',{attrs:{\"size\":\"18px\"},on:{\"click\":function($event){return _vm.selectAccommodation(unit, $event)}}},[_vm._v(\"fas fa-plus\")])],1):_c('div',[_c('NumericPicker',{attrs:{\"value\":_vm.getNumberOfTimesAvailabilityIsSelected(unit, rate),\"backgroundColor\":_vm.$vuetify.theme.dark ? '' : 'white'},on:{\"input\":function($event){return _vm.availabilitySelectionChange($event, unit, rate)}}})],1)],1)],1)})],2)],1)}),_c('MobileFilterModal',{attrs:{\"open\":_vm.filterModalOpen,\"isGlobalSearch\":_vm.isGlobalSearch,\"filterPrefill\":_vm.filterPrefill,\"filterType\":'availability',\"dialogOpen\":_vm.internalOpenFilter},on:{\"update:open\":function($event){_vm.filterModalOpen=$event},\"filterUpdated\":function($event){return _vm.updateFilter($event)},\"closingFilterModal\":function($event){return _vm.closingFilterModal()},\"update:dialogOpen\":function($event){_vm.internalOpenFilter=$event},\"update:dialog-open\":function($event){_vm.internalOpenFilter=$event}}}),_c('v-tooltip',{key:'tt' + _vm.tooltipKey,attrs:{\"value\":!!_vm.tooltip,\"position-x\":_vm.tootipPosition.x,\"position-y\":_vm.tootipPosition.y,\"bottom\":\"\"},on:{\"click\":function($event){_vm.tooltip = null}}},[(!!_vm.tooltip)?_c('div',[_c('div',[_vm._v(_vm._s(_vm.$t(\"Unit Added\")))])]):_vm._e()]),(_vm.isGlobalSearch)?_c('div',{staticClass:\"text-center\"},[_c('v-bottom-sheet',{attrs:{\"hide-overlay\":\"\",\"persistent\":\"\",\"no-click-animation\":\"\"},model:{value:(_vm.sheet),callback:function ($$v) {_vm.sheet=$$v},expression:\"sheet\"}},[_c('div',{staticClass:\"bottom-sheet px-3\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilitySearch.SelectedUnits\", { unitsCount: _vm.selectedAvailabilities.length, occupancy: _vm.maxOccupancy, }))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilitySearch.SelectedUnits.Missing\", { missingUnitsCount: _vm.missingUnits, missingOccupancy: _vm.missingOccupancy, }))+\" \"),(_vm.confirmSelectionLabel)?_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.$emit('confirmSelection')}}},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.confirmSelectionLabel))+\" \")]):_vm._e()],1)])],1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch, PropSync } from \"vue-property-decorator\";\nimport { DataTableHeader, DataOptions } from \"vuetify\";\nimport { ListModel } from \"../../shared/models/listModel\";\nimport { CurrencyEnum } from \"@/shared/models/enums.type\";\nimport AccomodationUnitTypeDrawer from \"@/components/accomodation-unit-type/AccomodationUnitTypeDrawer.vue\";\nimport {\n AvailabilitySearchResult,\n Rate,\n SelectedAvailability,\n} from \"@/shared/models/availability\";\nimport MoreLessSelect from \"@/components/misc/MoreLessSelect.vue\";\nimport NumericPicker from \"@/components/misc/NumericPicker.vue\";\nimport MobileFilterModal from \"@/components/misc/MobileFilterModal.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { Action, Getter } from \"vuex-class\";\nimport { SearchRestrictionsModel } from \"../reservation-form/types\";\nimport { AvailabilitySearchPrefillModel } from \"./types\";\n\n@Component({\n components: {\n AccomodationUnitTypeDrawer,\n MoreLessSelect,\n NumericPicker,\n MobileFilterModal,\n NoData,\n },\n})\nexport default class AvailabilitySearchResultsMobile extends Vue {\n isDetailsOpen = false;\n detailsItem: AvailabilitySearchResult | null = null;\n filterModalOpen = false;\n tooltipOpen = false;\n\n @PropSync(\"openFilter\") internalOpenFilter?: boolean;\n @Prop() items?: ListModel;\n @Prop({ default: null }) searchRestrictions?: SearchRestrictionsModel | null;\n @Prop() loading?: boolean;\n @Prop() takenAvailabilities?: SelectedAvailability[];\n @Prop() freedAvailabilities?: SelectedAvailability[];\n @Prop() selectedAvailabilities?: SelectedAvailability[];\n @Prop() confirmSelectionLabel?: string;\n @Prop({ default: true }) isGlobalSearch?: boolean;\n\n get filterPrefill() {\n return {\n period: undefined,\n numberOfAdults: 2,\n numberOfChildren: 0,\n numberOfUnits: 1,\n numberOfBedrooms: 0,\n numberOfBathrooms: 0,\n childrenAges: undefined,\n } as AvailabilitySearchPrefillModel;\n }\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n created() {\n if (!this.storedSettings && this.refreshSettings) {\n this.refreshSettings();\n }\n }\n\n get _selectedAvailabilities() {\n return this.selectedAvailabilities;\n }\n set _selectedAvailabilities(val) {\n this.$emit(\"update:selectedAvailabilities\", val);\n }\n\n gotSelected = false;\n\n @Watch(\"selectedAvailabilities\")\n selectedAvailabilitiesChanged() {\n this.gotSelected = true;\n }\n\n ratePlan(item: AvailabilitySearchResult) {\n return item.rates[0];\n }\n\n ratePlans(item: AvailabilitySearchResult) {\n return item.rates;\n }\n\n availableUnits(item: AvailabilitySearchResult) {\n return item.numberOfAvailableUnits + \"/\" + item.totalNumberOfUnits;\n }\n\n selectAccommodation(unit: AvailabilitySearchResult, event: MouseEvent) {\n this.showTooltip(unit, event);\n this.selectAvailability(1, unit, this.ratePlan(unit));\n }\n\n get sheet() {\n if (this.selectedAvailabilities) {\n return this.selectedAvailabilities?.length > 0;\n }\n return false;\n }\n\n get missingUnits() {\n if (!this.searchRestrictions) {\n return 0;\n }\n return Math.max(\n (this.searchRestrictions.numberOfUnits || 0) -\n (this.selectedAvailabilities?.length || 0),\n 0\n );\n }\n\n get missingOccupancy() {\n if (!this.searchRestrictions) {\n return 0;\n }\n return Math.max(\n (this.searchRestrictions.numberOfAdults || 0) +\n (this.searchRestrictions.numberOfChildren || 0) -\n this.maxOccupancy,\n 0\n );\n }\n\n get maxOccupancy() {\n return (\n this.selectedAvailabilities?.reduce(\n (sum, x) => sum + (x.numberOfOccupants || 0),\n 0\n ) || 0\n );\n }\n\n tooltip: any = null;\n get tooltipKey() {\n return this.tooltip?.accomodationUnitTypeId ?? 1;\n }\n get tootipPosition() {\n return { x: this.tooltip?.positionX ?? 0, y: this.tooltip?.positionY ?? 0 };\n }\n\n showTooltip(item: any, event: MouseEvent) {\n this.tooltip = {\n propertyName: item.propertyName,\n positionX: event.clientX,\n positionY: event.clientY,\n };\n setTimeout(() => {\n this.tooltip = null;\n }, 1500);\n }\n\n confirmSelection() {\n this.$emit(\"confirmSelection\");\n }\n\n currencyEnum = CurrencyEnum;\n\n expanded: AvailabilitySearchResult[] = [];\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n };\n\n @Watch(\"options\")\n optionsWatch() {\n this.$emit(\"paginationChange\", this.options);\n }\n\n headers: DataTableHeader[] = [\n {\n text: \"Accomodation unit\",\n value: \"propertyName\",\n },\n {\n text: \"Available units\",\n value: \"numberOfAvailableUnits\",\n },\n {\n text: \"Price range\",\n value: \"price\",\n },\n {\n text: \"Actions\",\n value: \"actions\",\n align: \"end\",\n },\n ];\n get translatedHeaders() {\n if (this.$vuetify.breakpoint.mdAndUp || this.$vuetify.breakpoint.xsOnly) {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n } else {\n return this.headers\n .filter((x) => x.value == \"propertyName\" || x.value == \"actions\")\n .map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n }\n\n updateFilter(filters: any) {\n this.$emit(\"filterUpdated\", filters);\n }\n\n isExpanded(item: AvailabilitySearchResult) {\n return this.expanded.some((x) => x == item);\n }\n\n getNumberOfAvailableUnits(item: AvailabilitySearchResult) {\n const timesSelected =\n this.selectedAvailabilities?.filter(\n (x) => x.accomodationUnitTypeId == item.accomodationUnitTypeId\n ).length || 0;\n const timesTaken =\n this.takenAvailabilities?.filter(\n (x) => x.accomodationUnitTypeId == item.accomodationUnitTypeId\n ).length || 0;\n const timesFreedUp =\n this.freedAvailabilities?.filter(\n (x) => x.accomodationUnitTypeId == item.accomodationUnitTypeId\n ).length || 0;\n\n return Math.max(\n item.numberOfAvailableUnits - timesSelected - timesTaken + timesFreedUp,\n 0\n );\n }\n\n getPrice(item: AvailabilitySearchResult, rate: Rate) {\n return rate.totalPrice;\n }\n\n getPriceRange(item: AvailabilitySearchResult) {\n const ratesPrices = item.rates.map((r) => r.totalPrice);\n const min = Math.min(...ratesPrices);\n\n const max = Math.max(...ratesPrices);\n\n const currencyId =\n item && item.rates && item.rates.length > 0\n ? item.rates[0].currencyId\n : this.storedSettings?.workingCurrency.id ?? this.currencyEnum.EUR; // Default EUR, but it should find tenant working currency\n const currencyISO3 = this.currencyEnum[currencyId];\n\n if (min !== max) {\n return (\n this.$n(min, {\n maximumFractionDigits: \"2\",\n minimumFractionDigits: \"2\",\n }) +\n \"-\" +\n this.$n(max, {\n style: \"currency\",\n currency: currencyISO3,\n display: \"code\",\n })\n );\n } else {\n return this.$n(min, {\n style: \"currency\",\n currency: currencyISO3,\n display: \"code\",\n });\n }\n }\n\n getAveragePricePerNight(item: AvailabilitySearchResult, rate: Rate) {\n const price = this.getPrice(item, rate);\n return price / item.numberOfNights;\n }\n\n // selection of availabilities\n availabilitySelectionChange(\n wantedAmount: number,\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n const timesAlreadySelected = this.getNumberOfTimesAvailabilityIsSelected(\n item,\n rate\n );\n\n if (typeof wantedAmount != \"number\" || wantedAmount < 0) {\n wantedAmount = 0;\n }\n\n if (timesAlreadySelected > wantedAmount) {\n this.deselectAvailability(\n timesAlreadySelected - wantedAmount,\n item,\n rate\n );\n } else if (timesAlreadySelected < wantedAmount) {\n this.selectAvailability(wantedAmount - timesAlreadySelected, item, rate);\n }\n }\n\n selectAvailability(\n amount: number,\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n if (!this._selectedAvailabilities) {\n return;\n }\n\n const temp = this._selectedAvailabilities.slice();\n for (let i = 0; i < amount; i++) {\n temp.push({\n accomodationUnitTypeId: item.accomodationUnitTypeId,\n ratePlansAccomodationUnitTypeId: rate.ratePlansAccomodationUnitTypeId,\n ratePlanId: rate.ratePlanId,\n numberOfOccupants: rate.maxPersons,\n });\n }\n this._selectedAvailabilities = temp.slice();\n }\n deselectAvailability(\n amount: number,\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n if (!this._selectedAvailabilities) {\n return;\n }\n\n const temp = this._selectedAvailabilities.slice();\n\n for (let i = 0; i < amount; i++) {\n const index = SelectedAvailability.GetFirstIndexInArray(temp, item, rate);\n\n if (index != -1) {\n temp.splice(index, 1);\n }\n }\n\n this._selectedAvailabilities = temp.slice();\n }\n\n getNumberOfTimesAvailabilityIsSelected(\n item: AvailabilitySearchResult,\n rate: Rate\n ) {\n if (!this._selectedAvailabilities) {\n return 0;\n }\n\n return SelectedAvailability.GetCountInArray(\n this._selectedAvailabilities,\n item,\n rate\n );\n }\n\n // details form opening\n openItemDetails(item: AvailabilitySearchResult) {\n this.detailsItem = item;\n this.isDetailsOpen = true;\n }\n\n // details form opening\n getMaxOccupancy(item: AvailabilitySearchResult) {\n if (item.extraBedsCapacity)\n return `${item.baseBedsCapacity}+${item.extraBedsCapacity}`;\n return `${item.baseBedsCapacity}`;\n }\n\n // functions for applying css classes representing selected availabilities\n highlightSelectedItem(item: AvailabilitySearchResult) {\n const toReturn = { \"is-selected-highlight\": false, item: false };\n\n if (this.expanded.indexOf(item) != -1) {\n toReturn.item = true;\n }\n\n if (!this._selectedAvailabilities) {\n return toReturn;\n }\n\n for (const rate of item.rates) {\n if (\n SelectedAvailability.GetFirstIndexInArray(\n this._selectedAvailabilities,\n item,\n rate\n ) != -1\n ) {\n toReturn[\"is-selected-highlight\"] = true;\n return toReturn;\n }\n }\n\n return toReturn;\n }\n\n highlightSelectedRate(item: AvailabilitySearchResult, rate: Rate) {\n if (!this._selectedAvailabilities) {\n return false;\n }\n\n if (\n SelectedAvailability.GetFirstIndexInArray(\n this._selectedAvailabilities,\n item,\n rate\n ) != -1\n ) {\n return true;\n }\n\n return false;\n }\n\n highlightSelectedOption(item: AvailabilitySearchResult, rate: Rate) {\n if (!this._selectedAvailabilities) {\n return false;\n }\n\n return (\n SelectedAvailability.GetFirstIndexInArray(\n this._selectedAvailabilities,\n item,\n rate\n ) != -1\n );\n }\n\n getRateColorClasses(index: number) {\n const evenOdd = index % 2 == 0 ? \"rate-even\" : \"rate-odd\";\n const lightDark = this.$vuetify.theme.dark ? \"theme--dark\" : \"theme--light\";\n return evenOdd + \" \" + lightDark;\n }\n\n getRateName(rate: Rate) {\n const paxSuffix =\n rate.minPersons === rate.maxPersons\n ? `${rate.minPersons} pax`\n : `${rate.minPersons}-${rate.maxPersons} pax`;\n const losSuffix =\n rate.maxStay === 0\n ? `${rate.minStay}+ LOS`\n : rate.minStay === rate.maxStay\n ? `${rate.minStay} LOS`\n : `${rate.minStay}-${rate.maxStay} LOS`;\n\n return `${rate.ratePlanName}, ${paxSuffix}, ${losSuffix}`;\n }\n\n closingFilterModal() {\n if (this.items?.count == 0) {\n this.internalOpenFilter = false;\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchResultsMobile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchResultsMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AvailabilitySearchResultsMobile.vue?vue&type=template&id=524ede52&scoped=true&\"\nimport script from \"./AvailabilitySearchResultsMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./AvailabilitySearchResultsMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AvailabilitySearchResultsMobile.vue?vue&type=style&index=0&id=524ede52&scoped=true&lang=scss&\"\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 \"524ede52\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBottomSheet } from 'vuetify/lib/components/VBottomSheet';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBottomSheet,VBtn,VCard,VCardActions,VCol,VDivider,VIcon,VSpacer,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeForm.vue?vue&type=style&index=0&id=5aa955d8&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"generic-pms-table-menu-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.applySettings}},[_vm._v(_vm._s(_vm.$t(\"Apply settings\")))]),_c('v-btn',{on:{\"click\":function($event){return _vm.resetToDefaultSettings()}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\"fal fa-fw fa-undo\")]),_vm._v(_vm._s(_vm.$t(\"Reset settings\"))+\" \")],1)],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"generic-pms-table-menu-title\"},[_vm._v(_vm._s(_vm.$t(\"Grid settings\")))]),_c('v-spacer'),_c('v-btn',{staticClass:\"modal-close-button\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('update:open', false)}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('div',{staticClass:\"generic-pms-table-menu-content\"},[(_vm.hasExportToExcel)?_c('div',[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"File export\")))]),(_vm.hasExportToExcel)?_c('v-list-item',{on:{\"click\":function($event){return _vm.exportToExcel()}}},[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\"fal fa-fw fa-file-excel\")]),_c('v-list-item-title',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.$t(\"Export to excel\")))])],1):_vm._e()],1):_vm._e(),_c('div',[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"Columns\")))]),_c('v-row',[_vm._l((_vm.localColumns),function(column){return _c('v-col',{key:column.value,attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-switch',{staticClass:\"switch\",attrs:{\"label\":_vm.$t(column.text),\"disabled\":column.default,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(column.active),callback:function ($$v) {_vm.$set(column, \"active\", $$v)},expression:\"column.active\"}})],1)}),(_vm.localExpandedRow)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-switch',{staticClass:\"switch\",attrs:{\"label\":_vm.$t(_vm.localExpandedRow.text),\"disabled\":_vm.localExpandedRow.default,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.localExpandedRow.active),callback:function ($$v) {_vm.$set(_vm.localExpandedRow, \"active\", $$v)},expression:\"localExpandedRow.active\"}})],1):_vm._e()],2)],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport * as _ from \"lodash\";\nimport { DataOptions } from \"vuetify\";\nimport { SortableTableHeader } from \"./SortableTableDirective\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\n\nclass GenericPMSTableSettingsModel {\n columns: Column[] = [];\n options?: DataOptions;\n expandedRow: Column | null = null;\n}\n\ntype Column = {\n value: string;\n active: boolean;\n index: number;\n width: string | number | undefined;\n};\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class GenericPMSTableMenu extends Vue {\n @Prop({ default: false }) open!: boolean;\n\n @Prop() columns!: SortableTableHeader[];\n @Prop({ required: true }) options!: DataOptions;\n @Prop({ default: null }) expandedRow!: SortableTableHeader | null;\n @Prop() tableName!: string;\n @Prop({ default: false }) hasExportToExcel?: boolean;\n @Prop({ default: false }) loadSettingsOnTableChange?: boolean;\n\n get _columns() {\n return this.columns;\n }\n set _columns(val) {\n this.$emit(\"update:columns\", val);\n }\n @Watch(\"columns\")\n columnsWatch(fresh: SortableTableHeader[], old: SortableTableHeader[]) {\n const resertWidths = fresh.some(\n (f) => !old.find((o) => o.value == f.value)?.active && f.active\n );\n\n this.onColumnsChange(resertWidths);\n }\n\n get _options() {\n return this.options;\n }\n set _options(val) {\n this.$emit(\"update:options\", val);\n }\n @Watch(\"options\")\n optionsWatch(fresh: any, old: any) {\n if (!_.isEqual(fresh, old)) {\n this.tableSettings.options = this._options;\n this.saveSettings();\n }\n }\n\n get _expandedRow() {\n return this.expandedRow;\n }\n set _expandedRow(val) {\n this.$emit(\"update:expandedRow\", val);\n }\n\n tableSettings!: GenericPMSTableSettingsModel;\n\n // defaults\n defaultColumns!: SortableTableHeader[];\n defaultOptions!: DataOptions;\n defaultExpandedRow!: SortableTableHeader | null;\n\n localColumns: SortableTableHeader[] = [];\n localExpandedRow: SortableTableHeader | null = null;\n\n @Watch(\"open\", { immediate: true })\n openWatch() {\n this.localColumns = _.cloneDeep(this._columns);\n this.localExpandedRow = _.cloneDeep(this._expandedRow);\n }\n\n @Watch(\"tableName\")\n tableNameWatch(fresh: string, old: string) {\n if (fresh !== old && this.loadSettingsOnTableChange) {\n this.loadSettings();\n this.localColumns = _.cloneDeep(this._columns);\n this.localExpandedRow = _.cloneDeep(this._expandedRow);\n }\n }\n\n mounted() {\n // remember defaults\n this.defaultColumns = _.cloneDeep(this._columns);\n this.defaultOptions = _.cloneDeep(this._options);\n this.defaultExpandedRow = this._expandedRow\n ? _.cloneDeep(this._expandedRow)\n : null;\n\n this.loadSettings();\n }\n\n loadSettings() {\n // get table settings from local storage\n const utid = this.$store.getters[\"auth/claims\"]?.utid;\n const userTableSettings = JSON.parse(\n localStorage.getItem(\"pms.utid_\" + utid + \"_tableSettings\") || \"{}\"\n );\n\n const tableSettings =\n (userTableSettings[this.tableName] as GenericPMSTableSettingsModel) ||\n new GenericPMSTableSettingsModel();\n\n if (!tableSettings.options) {\n tableSettings.options = this._options;\n }\n\n tableSettings.options.multiSort = false;\n tableSettings.options.mustSort = true;\n\n this.tableSettings = tableSettings;\n\n // set column status and order\n if (this.tableSettings.columns) {\n let temp = Array();\n let i = 0;\n for (const column of this._columns) {\n const storedColumn = this.tableSettings.columns.find(\n (ac) => ac.value == column.value\n );\n\n if (!column.default) {\n column.active = storedColumn?.active ?? column.active;\n }\n\n column.width = storedColumn?.width;\n\n temp.push({\n index: storedColumn\n ? storedColumn.index\n : this.tableSettings.columns.length + i++,\n item: column,\n });\n }\n temp = temp.sort((a, b) => a.index - b.index);\n this._columns = temp.map((x) => x.item).slice();\n }\n\n // set expanded row status\n if (this.tableSettings.expandedRow && this._expandedRow) {\n const temp = this._expandedRow;\n temp.active = this.tableSettings.expandedRow.active;\n this._expandedRow = temp;\n }\n\n // set table options - sort etc.\n if (this.tableSettings.options) {\n this.tableSettings.options.page = 1;\n this._options = this.tableSettings.options;\n }\n\n this.$emit(\"loaded:settings\");\n }\n\n onColumnsChange(resetWidths?: boolean) {\n // reset column sizes when a hidden column is shown\n // prevents breaking of table in certain cases\n if (resetWidths) {\n this._columns.forEach((c) => (c.width = undefined));\n }\n\n this.tableSettings.columns = this._columns.map((item, index) => {\n return {\n value: item.value,\n active: item.active,\n index: index,\n width: item.width,\n };\n });\n\n if (this._expandedRow) {\n this.tableSettings.expandedRow = {\n value: this._expandedRow.value,\n active: this._expandedRow.active,\n width: undefined,\n index: 0,\n };\n } else {\n this.tableSettings.expandedRow = null;\n }\n\n if (this.tableSettings.options && this.tableSettings.options.sortBy) {\n this.tableSettings.options.sortBy =\n this.tableSettings.options.sortBy.filter(\n (x) =>\n this.tableSettings.columns.find((c) => c.value == x)?.active ??\n false\n );\n }\n\n this.saveSettings();\n }\n\n saveSettings() {\n const utid = this.$store.getters[\"auth/claims\"]?.utid;\n const userTableSettings = JSON.parse(\n localStorage.getItem(\"pms.utid_\" + utid + \"_tableSettings\") || \"{}\"\n );\n userTableSettings[this.tableName] = this.tableSettings;\n localStorage.setItem(\n `pms.utid_${utid}_tableSettings`,\n JSON.stringify(userTableSettings)\n );\n }\n\n applySettings() {\n this._columns = _.cloneDeep(this.localColumns);\n this._expandedRow = _.cloneDeep(this.localExpandedRow);\n this.$emit(\"update:open\", false);\n }\n\n resetToDefaultSettings() {\n this._columns = _.cloneDeep(this.defaultColumns);\n this._options = _.cloneDeep(this.defaultOptions);\n this._expandedRow = this.defaultExpandedRow\n ? _.cloneDeep(this.defaultExpandedRow)\n : null;\n this.$emit(\"update:open\", false);\n }\n\n exportToExcel() {\n this.$emit(\"menu:excel\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPMSTableMenu.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPMSTableMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenericPMSTableMenu.vue?vue&type=template&id=36a894c9&scoped=true&\"\nimport script from \"./GenericPMSTableMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenericPMSTableMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenericPMSTableMenu.vue?vue&type=style&index=0&id=36a894c9&scoped=true&lang=scss&\"\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 \"36a894c9\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCol,VIcon,VListItem,VListItemTitle,VRow,VSpacer,VSubheader,VSwitch,VToolbar})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTable.vue?vue&type=style&index=0&id=0e29eb9d&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentsTable.vue?vue&type=style&index=0&id=66a37217&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTiles.vue?vue&type=style&index=0&id=7f5b1522&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckOutModalForm.vue?vue&type=style&index=0&id=103c3f08&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviews.vue?vue&type=style&index=0&id=0df08fc0&scoped=true&lang=scss&\"","export class RatePlanChangedFields {\n minStay = false;\n maxStay = false;\n minBookable = false;\n maxBookable = false;\n priceDiffType = false;\n priceDiff = false;\n} \n\nexport class PromoCode {\n id = 0;\n name = \"\";\n priceDifference = 0 as number | null;\n priceDifferenceIsAbsolute = false;\n currencyId = 0 as number | undefined;\n isForAccommodation = false;\n isForService = false;\n applicationMethodId = 1;\n}\n\nexport class RatePlanModel {\n id?: number;\n name = \"\";\n \n isSpecialOrPackageOffer = false;\n\n includesBreakFast = false;\n includesLunch = false;\n includesDinner = false;\n defaultServiceTypeId?: number;\n minimumStay?: number = 1;\n maximumStay?: number;\n minBookableBeforeCheckin?: number;\n maxBookableBeforeCheckin?: number;\n isDerived = false;\n parentRatePlanId?: number;\n priceDifference?: number;\n priceDifferenceIsAbsolute?: boolean;\n appliesToAllAccomodationUnitTypes = false;\n maxNumOfInstalments = 1;\n\n accomodationBookingFee = null as number | null;\n addOnServicesBookingFee = null as number | null;\n mergeAllBookingFeesIntoSingleItem = true;\n \n isAvailableViaBookingEngine = false;\n bookingEnginePriceOffset?: number;\n alwaysShowOnBoookingEngine = false;\n\n ratePlanOtas: RatePlanOtas[] = [];\n ratePlansCancelPoliciesIds: number[] = [];\n ratePlansPrepaymentPoliciesIds: number[] = [];\n promoCode = null as PromoCode | null;\n \n accomodationUnitTypeIds = [] as number[];\n ratePlanAccomodationUnitTypes = [] as RatePlanAccomodationUnitType[];\n \n translations = [] as RatePlanTranslation[];\n \n // special offer fields\n bookableFrom?: string;\n bookableUntil?: string;\n arrivalDateFrom?: string;\n arrivalDateUntil?: string;\n requiresEmailToUnlock = false;\n requiresNameToUnlock = false;\n requiresTelephoneNumberToUnlock = false;\n maxSellableGrossIncome?: number;\n maxSellableNights?: number;\n maxSellableReservations?: number;\n emphasizeOnBefeaturedOffers = false;\n emphasizeOnBepreheader = false;\n updateExistingAvailability = false;\n hasPhoto = false;\n \n addOnServices: RatePlanAddOnService[] = [];\n currencyId?: number;\n \n changedFields: RatePlanChangedFields = new RatePlanChangedFields();\n}\n\nexport interface RatePlanAccomodationUnitType {\n id: number;\n accomodationUnitTypeId: number;\n accomodationUnitTypesPAXCategoryId: number;\n accomodationUnitTypesLOSCategoryId: number;\n\n priceDifference: number | null;\n priceDifferenceIsAbsolute: boolean | null;\n}\n\nexport interface RatePlanOtas {\n otaid: number;\n name: string;\n priceDifference: number | null;\n}\n\nexport interface RatePlanOccupancyBasedRule extends RatePlanAccomodationUnitType {\n minPersons: number;\n maxPersons: number;\n minStay: number;\n maxStay: number;\n isDefault: boolean;\n}\n\nexport interface RatePlanTilesModel {\n id: number;\n name: string;\n isNonRefundable: boolean;\n currencyId: number;\n currencyCode: string;\n \n includesBreakfast: boolean;\n includesLunch: boolean;\n includesDinner: boolean;\n \n minimumStay: number;\n maximumStay: number;\n minBookableBeforeCheckin: number;\n maxBookableBeforeCheckin: number;\n \n isDerived: boolean;\n parentRatePlanId: number;\n parentRatePlanName: string;\n priceDifference: string;\n priceDifferenceIsAbsolute?: boolean;\n \n appliesToAllAccomodationUnitTypes: boolean;\n numberOfAccomodationUnitTypesRatePlanIsAppliedTo: number;\n numberOfPropertiesPlanIsAppliedTo: number;\n numberOfCancelationPolicies: number;\n numberOfPrepaymentPolicies: number;\n otas: string[];\n \n isAvailableViaBookingEngine: boolean;\n bookingEnginePriceOffset?: number;\n \n isSpecialOffer: boolean;\n isExpired: boolean;\n isDeactivated: boolean;\n}\n\nexport interface NonDerivedRatePlanModel {\n id: number;\n name: string;\n appliesToAllAccomodationUnitTypes: boolean;\n}\n\nexport class RatePlanTranslation {\n id = 0;\n cultureCode = \"\";\n translation = \"\";\n subtitleTranslation = \"\";\n descriptionTranslation = \"\";\n}\n\nexport class RatePlanAddOnService {\n id = 0;\n addOnServiceId = 0;\n addOnServiceName = \"\";\n defaultQuantity = 0;\n guestCanChangeQuantity = false;\n isIncludedInPrice = false;\n discountPercent = 0;\n calculationMethodId = 0 as number | undefined;\n}\n\nexport enum RatePlanTypeFilterEnum {\n All = 1,\n Normal = 2,\n ActiveOffers = 3,\n AllOffers = 4\n}\n\nexport interface UnitTypeViewModel {\n accomodationUnitTypeId: number;\n name: string;\n propertyId: number;\n propertyName: string;\n\n paxlosCombinations: UnitTypePAXLOSCombination[];\n}\n\nexport interface UnitTypePAXLOSCombination {\n accomodationUnitTypesPAXCategoryId: number;\n accomodationUnitTypesLOSCategoryId: number;\n minPersons: number;\n maxPersons: number;\n minStay: number;\n maxStay: number;\n isDefault: boolean;\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NumericPicker.vue?vue&type=style&index=0&lang=css&\"","import { DateTime } from \"luxon\";\nimport { differenceInDays } from \"@/shared/dateFormatUtils\";\nimport { BlockedAvailabilityModel } from \"@/store/modules/calendar\";\nimport _ from \"lodash\";\n\nexport type CalendarWindow = {\n w: number;\n h: number;\n l: number;\n t: number;\n};\n\nexport type CalendarBoxConfigCell = {\n w: number;\n h: number;\n hl: number;\n numberOfReservations?: number;\n};\n\nexport type CalendarBoxConfig = {\n cell: CalendarBoxConfigCell;\n preload: number;\n centerOffset: number;\n};\n\nexport type CalendarExpandableRow = {\n id: number;\n name: string;\n expanded: boolean;\n height: number;\n offset: number;\n};\n\nexport class CalendarPropertyView implements CalendarExpandableRow {\n height: number;\n offset = 0;\n\n constructor(\n public id: number,\n public name: string,\n public shortName: string,\n public expanded: boolean,\n public unitTypes: CalendarUnitTypeView[],\n public unitTypesToDisplay: CalendarUnitTypeView[],\n c: CalendarBoxConfigCell\n ) {\n this.height = c.h + unitTypes.length * c.h;\n }\n\n mergeOnRendered(availabilities: CalendarAvailabilityView[], reservations: any[]) {\n for (const ut of this.unitTypes) {\n ut.merge(availabilities.filter(a => a.unitTypeId == ut.id), reservations.filter(r => r.unitTypeId == ut.id));\n }\n }\n\n mergeBlockedAvailabilities(blockedAvailabilities: BlockedAvailabilityModel[]) {\n for (const ut of this.unitTypes) {\n ut.mergeBlockedAvailabilities(blockedAvailabilities.filter(x => x.unitTypeId === ut.id));\n }\n }\n\n h(\n propertyCount: number,\n c: CalendarBoxConfigCell,\n isMobile: boolean,\n showUnits: boolean,\n showRatePlans: boolean,\n showOBRules: boolean,\n showInputPrices: boolean,\n showRatePlanFields: string[],\n showListRatePlans: number[],\n highlightPeriod?: string[]\n ) {\n let labelHeight = 0;\n if (propertyCount > 1) {\n if (this.name.length > 56 && this.name.length <= 84) {\n labelHeight = isMobile ? 0 : 15;\n } else if (this.name.length > 84) {\n labelHeight = isMobile\n ? c.w >= 390\n ? 0\n : 6\n : 25;\n }\n }\n return (\n c.h + labelHeight +\n (this.expanded\n ? this.unitTypes.reduce(\n (acc, x) =>\n acc + x.h(c, isMobile, showUnits, showRatePlans, showOBRules, showInputPrices, showRatePlanFields, showListRatePlans, this.getUnitsToDisplay(x.units, highlightPeriod)),\n 0\n )\n : 0)\n );\n }\n\n getUnitsToDisplay(units: CalendarUnitView[], highlightPeriod?: string[]) {\n if (\n !highlightPeriod ||\n highlightPeriod.length === 0\n )\n return units.length;\n\n const highlightPeriodStart = highlightPeriod[0];\n const highlightPeriodEnd = highlightPeriod[1];\n\n return units.filter(\n (x) =>\n !x.reservations?.some(\n (r) =>\n r.arrivalDate.substring(0, 10) < highlightPeriodEnd &&\n r.departureDate.substring(0, 10) > highlightPeriodStart\n )\n ).length;\n }\n}\n\nexport class CalendarUnitTypeView implements CalendarExpandableRow {\n constructor(\n public id: number,\n public name: string,\n public baseBedsCapacity: number,\n public extraBedsCapacity: number,\n public expanded: boolean,\n public height: number,\n public offset: number,\n public ratePlansHeight: number,\n public ratePlans: CalendarRatePlanAccomodationUnitTypeView[],\n public units: CalendarUnitView[],\n public unitsToDisplay: CalendarUnitView[]\n ) { }\n\n availabilityOnDay(day: DateTime, isOwner?: boolean) {\n const ds = day.toISODate();\n\n // prettier-ignore\n if (this.ratePlans.length > 0) {\n if (!isOwner) {\n return this.ratePlans.flatMap(x => x.availability).find(a => a.date.substring(0, 10) === ds)?.quantity;\n }\n else {\n return this.ratePlans.flatMap(x => x.availability).find(a => a.date.substring(0, 10) === ds)?.ownerQuantity;\n }\n }\n }\n\n isBlockedOnDay(day: DateTime) {\n return !this.ratePlans.flatMap(x => x.availabilityOnDay(day)).some(x => x?.isBlocked === false);\n }\n\n merge(availabilities: CalendarAvailabilityView[], reservations: any[]) {\n for (const rp of this.ratePlans) {\n rp.merge(availabilities.filter((a) => a.ratePlansAccomodationUnitTypeId === rp.id));\n }\n\n for (const u of this.units) {\n const reservationsForUnit = reservations.filter(\n (x) => x.accomodationUnitId === u.id\n );\n u.reservations = [...reservationsForUnit];\n u.calculateOverbooking();\n }\n }\n\n mergeBlockedAvailabilities(blockedAvailabilities: BlockedAvailabilityModel[]) {\n for (const rp of this.ratePlans) {\n rp.mergeBlockedAvailabilities(blockedAvailabilities.filter((b) => b.ratePlansAccomodationUnitTypeId === rp.id));\n }\n }\n\n h(\n c: CalendarBoxConfigCell,\n isMobile: boolean,\n showUnits: boolean,\n showRatePlans: boolean,\n showOBRules: boolean,\n showInputPrices: boolean,\n showRatePlanFields: string[],\n showListRatePlans: number[],\n numberOfAvailableUnits?: number\n ) {\n const unitsHeight = showUnits\n ? this.units.slice(0, numberOfAvailableUnits).reduce((acc, x) => acc + x.height, 0)\n : 0\n\n const selectedAndExpandedRates = this.ratePlans.filter(x => showListRatePlans.includes(x.ratePlanId) && x.expanded).map(x => x.id);\n\n const obRatePlansHeight = showRatePlans && showOBRules\n ? !isMobile \n ? this.ratePlans.filter(x => !x.isDefault && selectedAndExpandedRates.includes(x.parentId ?? 0))\n .reduce(\n (acc, x) => acc + x.h(c, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length)\n + x.hi(c, showInputPrices, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length),\n 0\n )\n : this.ratePlans.filter(x => !x.isDefault && selectedAndExpandedRates.includes(x.parentId ?? 0)).length * 32\n : 0;\n\n const ratePlansHeight = showRatePlans\n ? this.ratePlans\n .filter(x => showListRatePlans.includes(x.ratePlanId) && x.isDefault)\n .reduce(\n (acc, x) => acc + x.h(c, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length)\n + x.hi(c, showInputPrices, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length),\n 0\n )\n : 0;\n\n if (isMobile) {\n return c.h + (this.expanded ? ratePlansHeight + obRatePlansHeight + unitsHeight + 34 : 0);\n }\n else {\n return c.h + (this.expanded ? ratePlansHeight + obRatePlansHeight + unitsHeight : 0);\n }\n }\n}\n\nexport class CalendarRatePlanAccomodationUnitTypeView implements CalendarExpandableRow {\n constructor(\n public id: number,\n public ratePlanId: number,\n public parentId: number | null,\n public parentRatePlanId: number | null,\n public name: string,\n public currencyId: number,\n public currencyCode: string,\n public isDerived: boolean,\n public isSpecialOrPackageOffer: boolean,\n public isDefault: boolean,\n public derivedFrom: string,\n public expanded: boolean,\n public height: number,\n public offset: number,\n public availability: any[],\n public minPersons: number,\n public maxPersons: number,\n public minStay: number,\n public maxStay: number,\n public groupSelected: boolean | null,\n public applyOBLOSCategories: boolean = false,\n ) { }\n\n availabilityOnDay(day: DateTime) {\n const ds = day.toISODate();\n // prettier-ignore\n return this.availability ? this.availability.find(a => a.date.substring(0, 10) === ds) : {};\n }\n\n merge(unitTypeAvailabilities: any[]) {\n this.expandLeft(unitTypeAvailabilities);\n this.availability = _.uniqBy(this.availability, x => x.date);\n }\n\n mergeBlockedAvailabilities(blockedAvailabilities: BlockedAvailabilityModel[]) {\n this.availability.forEach(x => x.isBlocked = blockedAvailabilities.some(e => e.date === x.date));\n }\n\n private expandLeft(unitTypeAvailabilities: any[]) {\n this.availability.splice(\n 0,\n 0,\n ...unitTypeAvailabilities\n );\n }\n\n h(c: CalendarBoxConfigCell, numOfRows: number) {\n return c.h + (this.expanded ? c.h * numOfRows : 0);\n }\n hi(c: CalendarBoxConfigCell, showInputPrices: boolean, numOfRows: number) {\n return (this.expanded && showInputPrices && numOfRows == 0) ? c.h : 0;\n }\n \n calculateRateBaseHeight(c: CalendarBoxConfigCell,\n showRatePlans: boolean,\n showInputPrices: boolean,\n showRatePlanFields: string[],\n showListRatePlans: number[],\n ) {\n if (!showRatePlans) return 0;\n if (!showListRatePlans.includes(this.ratePlanId)) return 0;\n\n const baseHeight = this.h(c, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length)\n + this.hi(c, showInputPrices, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length);\n\n return baseHeight;\n }\n\n //calculate rate height if it were to be expanded\n calculateRateExpandedHeight(c: CalendarBoxConfigCell,\n showRatePlans: boolean,\n showOBRules: boolean,\n showInputPrices: boolean,\n showRatePlanFields: string[],\n showListRatePlans: number[],\n obRules: CalendarRatePlanAccomodationUnitTypeView[]\n ) {\n if (!showRatePlans) return 0;\n if (!showListRatePlans.includes(this.ratePlanId)) return 0;\n \n const obRatePlansHeight = showOBRules && this.expanded ? obRules.reduce(\n (acc, x) => acc + x.h(c, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length)\n + x.hi(c, showInputPrices, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length),\n 0\n ) : 0\n\n return obRatePlansHeight;\n }\n\n\n calculateObRateTotalHeight(c: CalendarBoxConfigCell,\n showRatePlans: boolean,\n showOBRules: boolean,\n showInputPrices: boolean,\n showRatePlanFields: string[],\n parentId: number\n ) {\n if (!showRatePlans) return 0;\n if (!showOBRules) return 0;\n if (parentId !== this.parentId) return 0;\n\n const baseHeight = this.h(c, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length)\n + this.hi(c, showInputPrices, !showInputPrices && showRatePlanFields.length > 0 && showRatePlanFields.includes(\"inputPrice\") ? (showRatePlanFields.length - 1) : showRatePlanFields.length);\n\n return baseHeight;\n }\n}\n\nexport class CalendarAvailabilityView {\n constructor(\n id: number,\n unitTypeId: number,\n //ratePlanId: number,\n ratePlansAccomodationUnitTypeId: number,\n date: string,\n quantity: number,\n ownerQuantity: string,\n price: number,\n currencyId: number,\n minimumStay: number,\n maximumStay: number,\n minBookableBeforeCheckin: number,\n maxBookableBeforeCheckin: number,\n noArrivals: boolean,\n noDepartures: boolean,\n noSales: boolean,\n inputPrice: number,\n maxAvailability: number,\n availabilityOffset: number\n ) {\n this.id = id;\n this.unitTypeId = unitTypeId;\n //this.ratePlanId = ratePlanId;\n this.ratePlansAccomodationUnitTypeId = ratePlansAccomodationUnitTypeId;\n this.date = date;\n this.quantity = quantity;\n this.ownerQuantity = ownerQuantity;\n this.price = price;\n this.currencyId = currencyId;\n this.minimumStay = minimumStay;\n this.maximumStay = maximumStay;\n this.minBookableBeforeCheckin = minBookableBeforeCheckin;\n this.maxBookableBeforeCheckin = maxBookableBeforeCheckin;\n this.noArrivals = noArrivals;\n this.noDepartures = noDepartures;\n this.noSales = noSales;\n this.inputPrice = inputPrice;\n this.maxAvailability = maxAvailability;\n this.availabilityOffset = availabilityOffset;\n }\n\n id: number;\n unitTypeId: number;\n //ratePlanId: number;\n ratePlansAccomodationUnitTypeId: number;\n date: string;\n quantity: number;\n ownerQuantity: string;\n price: number;\n currencyId: number;\n minimumStay: number;\n maximumStay: number;\n minBookableBeforeCheckin: number;\n maxBookableBeforeCheckin: number;\n noArrivals: boolean;\n noDepartures: boolean;\n noSales: boolean;\n inputPrice: number;\n maxAvailability: number;\n availabilityOffset: number;\n}\n\nexport class CalendarUnitView {\n constructor(\n id: number,\n typeId: number,\n statusId: number,\n maintenanceAssignedToTenantUserId: number | null,\n name: string,\n shortName: string,\n note: string,\n height: number,\n reservations: any[]\n ) {\n this.id = id;\n this.typeId = typeId;\n this.statusId = statusId;\n this.name = name;\n this.shortName = shortName;\n this.note = note;\n this.baseHeight = height;\n this.height = height;\n this.reservations = reservations;\n this.maintenanceAssignedToTenantUserId = maintenanceAssignedToTenantUserId;\n }\n\n id = 0;\n typeId = 0;\n statusId = 1;\n maintenanceAssignedToTenantUserId = null as number | null;\n name = \"\";\n shortName = \"\";\n note = \"\";\n baseHeight = 0;\n height = 0;\n reservations?: any[] = [];\n tempReservations?: any[] = [];\n hideReservationIds: number[] = [];\n maxReservationsInDay?: number = 0;\n\n allReservations() {\n return this.reservations?.concat(this.tempReservations?.filter(x => !this.reservations?.some(y => y.id == x.id)) ?? []).filter(x => !this.hideReservationIds.includes(x.id));\n }\n\n addReservation(r: any) {\n this.tempReservations?.push(r);\n r.accomodationUnitId = this.id;\n this.calculateOverbooking();\n }\n\n removeReservation(r: any) {\n this.tempReservations = this.tempReservations?.filter((x) => x.id !== r.id);\n r.accomodationUnitId = 0;\n this.calculateOverbooking();\n }\n\n hideReservation(r: any) {\n this.hideReservationIds.push(r.id);\n }\n\n calculateOverbooking() {\n let maxReservationsInDay = 1;\n const allReservations = this.allReservations();\n\n allReservations && allReservations.forEach((x) => (x.index = 0));\n\n if (allReservations && allReservations.length > 1) {\n const minDate = new Date(\n Math.min(\n ...allReservations.map((x) => new Date(x.arrivalDate).getTime())\n )\n );\n const maxDate = new Date(\n Math.max(\n ...allReservations.map((x) => new Date(x.departureDate).getTime())\n )\n );\n\n const currentDate = _.cloneDeep(minDate);\n while (currentDate <= maxDate) {\n let reservationsOnDay = allReservations.filter(\n (x) =>\n (new Date(x.arrivalDate).getTime() <= currentDate.getTime() &&\n new Date(x.departureDate).getTime() > currentDate.getTime()) ||\n (new Date(x.arrivalDate).getTime() == currentDate.getTime() &&\n new Date(x.departureDate).getTime() == currentDate.getTime())\n );\n\n const reservationUniqueIndexes = new Set();\n let reservationIndex = 0;\n const hasOverbookingOnDate = reservationsOnDay\n // filter out day stays and reservations that end on the day other reservation begins.\n .filter(\n (x) =>\n !(new Date(x.arrivalDate).getTime() == new Date(x.departureDate).getTime()) &&\n !(new Date(x.arrivalDate).getTime() != new Date(x.departureDate).getTime() &&\n new Date(x.departureDate).getTime() == currentDate.getTime())\n ).length > 1;\n\n reservationsOnDay = reservationsOnDay.sort((a, b) => new Date(b.arrivalDate).getTime() - new Date(a.arrivalDate).getTime());\n\n reservationsOnDay.sort(function (a, b) {\n if (new Date(a.departureDate).getTime() == currentDate.getTime() &&\n new Date(b.arrivalDate).getTime() == currentDate.getTime()) {\n return -1\n }\n return differenceInDays(new Date(b.arrivalDate), new Date(b.departureDate)) -\n differenceInDays(new Date(a.arrivalDate), new Date(a.departureDate))\n }\n ).forEach(\n (x) => {\n x.index = Math.max(x.index ?? 0, reservationIndex++);\n\n if (reservationUniqueIndexes && reservationUniqueIndexes.has(x.index)) {\n x.index++;\n reservationIndex++;\n }\n reservationUniqueIndexes.add(x.index);\n // needs to be kept as 'true' if any earlier day set it to 'true', but must be reset to exact value when checking arrival date\n x.isOverbooked = new Date(x.arrivalDate).getTime() == currentDate.getTime() ? hasOverbookingOnDate : (x.isOverbooked ? x.isOverbooked : hasOverbookingOnDate);\n }\n );\n maxReservationsInDay = Math.max(\n maxReservationsInDay,\n reservationIndex\n );\n\n currentDate.setDate(currentDate.getDate() + 1);\n }\n }\n\n this.height = this.baseHeight * maxReservationsInDay;\n this.maxReservationsInDay = maxReservationsInDay;\n }\n}\n\nexport type RatePlanField = {\n key: string;\n textResource: string;\n textResourceShort: string;\n type: \"number\" | \"boolean\";\n isRestriction: boolean;\n isDerived: boolean;\n};\nexport const ratePlanFields: RatePlanField[] = [\n {\n textResource: \"RatePlan.InputPrice\",\n textResourceShort: \"RatePlan.InputPrice.Short\",\n key: \"inputPrice\",\n type: \"number\",\n isRestriction: false,\n isDerived: false\n },\n {\n textResource: \"RatePlan.MinimumStay\",\n textResourceShort: \"RatePlan.MinimumStay.Short\",\n key: \"minimumStay\",\n type: \"number\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.MaximumStay\",\n textResourceShort: \"RatePlan.MaximumStay.Short\",\n key: \"maximumStay\",\n type: \"number\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.MinBookableBeforeCheckin\",\n textResourceShort: \"RatePlan.MinBookableBeforeCheckin.Short\",\n key: \"minBookableBeforeCheckin\",\n type: \"number\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.MaxBookableBeforeCheckin\",\n textResourceShort: \"RatePlan.MaxBookableBeforeCheckin.Short\",\n key: \"maxBookableBeforeCheckin\",\n type: \"number\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.NoArrivals\",\n textResourceShort: \"RatePlan.NoArrivals.Short\",\n key: \"noArrivals\",\n type: \"boolean\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.NoDepartures\",\n textResourceShort: \"RatePlan.NoDepartures.Short\",\n key: \"noDepartures\",\n type: \"boolean\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.NoSales\",\n textResourceShort: \"RatePlan.NoSales.Short\",\n key: \"noSales\",\n type: \"boolean\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.MaxAvailability\",\n textResourceShort: \"RatePlan.MaxAvailability.Short\",\n key: \"maxAvailability\",\n type: \"number\",\n isRestriction: true,\n isDerived: true\n },\n {\n textResource: \"RatePlan.AvailabilityOffset\",\n textResourceShort: \"RatePlan.AvailabilityOffset.Short\",\n key: \"availabilityOffset\",\n type: \"number\",\n isRestriction: true,\n isDerived: true\n }\n];\n\nexport type RatePlan = {\n id: number;\n name: string;\n currencyId: number;\n currencyCode: string;\n isSpecialOrPackageOffer: boolean;\n isDerived: boolean;\n isOBSpecific: boolean;\n};\n\nexport type MaintenanceTeamMember = {\n tenantUserId: number;\n name: string;\n}\n\nexport type BulkEditResponseModel = {\n asyncBulkEditStarted: boolean;\n}\n\nexport type BulkEditRatePlanModel = {\n ratePlanId: number;\n applyOBLOSCategories: boolean;\n relatedRatePlansPriceUpdateType: number;\n relatedRatePlansRestrictionsUpdateType: number;\n}\n\nexport enum RelatedRatePlansPriceUpdateTypeEnum {\n ApplyOBLOSCategories = 1,\n ApplyChange = 2,\n DontUpdate = 3\n}\n\nexport enum RelatedRatePlansRestrictionsUpdateTypeEnum {\n UpdateDerivedAndOBSpecific = 1,\n UpdateDerivedOnly = 2,\n UpdateOBSpecificOnly = 3,\n DontUpdate = 4\n} ","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanFormAddOnServices.vue?vue&type=style&index=0&id=9d68bfa2&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericPMSTableMenu.vue?vue&type=style&index=0&id=36a894c9&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AmenitiesSelection.vue?vue&type=style&index=0&id=49400f32&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.value != undefined && _vm.currency)?_c('span',[_vm._v(_vm._s(_vm.$n(_vm.value, { style: \"currency\", currency: _vm.currency, currencyDisplay: \"code\", })))]):(_vm.currency)?_c('span',[_vm._v(_vm._s(_vm.currency))]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\n\n// ? this component is a helper to display currency set on tenant\n// ? as to avoid all the ceremony of actions and getters\n\n@Component\nexport default class CurrencyDisplay extends Vue {\n @Prop() value?: number;\n @Prop() currencyId?: number;\n\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise<\n void\n >;\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n }\n\n get currency() {\n if (this.currencyId == undefined){\n return this.workingCurrency?.isoCode;\n }\n\n const currency = this.currencies?.find((c) => c.id === this.currencyId);\n return currency?.isoCode;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrencyDisplay.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrencyDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CurrencyDisplay.vue?vue&type=template&id=ed0836d0&scoped=true&\"\nimport script from \"./CurrencyDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./CurrencyDisplay.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 \"ed0836d0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"unset\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_vm._t(\"default\",function(){return [_c('v-btn',_vm._g({attrs:{\"color\":_vm.value}},on),[_vm._v(\"Placeholder button\")])]},{\"on\":on})]}}],null,true),model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',[_c('v-card-text',{staticClass:\"d-flex\"},[_c('v-color-picker',{class:{ 'mr-4': _vm.hasPreview },attrs:{\"dot-size\":\"25\",\"mode\":\"hexa\",\"hide-mode-switch\":\"\",\"show-swatches\":\"\"},model:{value:(_vm.internalColor),callback:function ($$v) {_vm.internalColor=$$v},expression:\"internalColor\"}}),_vm._t(\"preview\",null,{\"color\":_vm.internalColor})],2),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.acceptColor()}}},[_vm._v(_vm._s(_vm.$t(\"Confirm\")))]),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.clearColor()}}},[_vm._v(_vm._s(_vm.$t(\"ColorPicker.Clear\")))]),_c('v-spacer'),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.open = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class ColorPicker extends Vue {\n @Prop({ default: \"\" }) value?: string;\n\n open = false;\n internalColor = \"\";\n\n acceptColor() {\n this.$emit(\"input\", this.internalColor);\n this.open = false;\n }\n\n clearColor() {\n this.$emit(\"input\", null);\n this.internalColor = \"\";\n this.open = false;\n }\n\n @Watch(\"open\")\n openWatch(fresh: string) {\n if (fresh && this.value) {\n this.internalColor = this.value;\n }\n }\n\n get hasPreview() {\n return !!this.$scopedSlots.preview;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColorPicker.vue?vue&type=template&id=4ca5d2ef&scoped=true&\"\nimport script from \"./ColorPicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColorPicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColorPicker.vue?vue&type=style&index=0&id=4ca5d2ef&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 \"4ca5d2ef\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VColorPicker } from 'vuetify/lib/components/VColorPicker';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VColorPicker,VDialog,VSpacer})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentGatewayTransactionLogModal.vue?vue&type=style&index=0&id=529a1d94&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleDocumentsInvoice.vue?vue&type=style&index=1&id=7306702b&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReservationHistoryTable.vue?vue&type=style&index=1&id=0e29eb9d&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleAvailabilitySearchModalMobile.vue?vue&type=style&index=1&id=68a56c5e&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceSummary.vue?vue&type=style&index=0&id=38704e85&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanForm.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorTable.vue?vue&type=style&index=0&id=49945674&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddOnServicesAndFeesForm.vue?vue&type=style&index=0&id=56595140&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"day-track\",class:{\n editable: _vm.selectable,\n mobile: _vm.isMobile,\n 'timeline-open': _vm.openTimelineOnClick,\n },on:{\"mousedown\":_vm.onMouseDown,\"dblclick\":_vm.onDblClick,\"click\":_vm.onClick,\"drop\":function($event){return _vm.$emit('drop', $event)},\"dragover\":function($event){return _vm.$emit('dragover', $event)}}},[_vm._l((_vm.days),function(day,i){return _c('div',{key:day.toMillis(),staticClass:\"day-track__day lighten-1 prevent-select\",class:[\n _vm.dayClass(day),\n _vm.selectedMobile(day),\n { 'timeline-hover': _vm.openTimelineOnClick } ],style:({\n left: (_vm.startIdx + i) * _vm.cell.w + 'px',\n height: _vm.cell.h + 'px',\n width: _vm.cell.w + 'px',\n })},[_vm._t(\"default\",null,{\"day\":day})],2)}),(_vm.emptySlots > 0)?_c('div',{staticClass:\"day-track__day__empty-slot\",style:({\n left: _vm.days.length * _vm.cell.w + 'px',\n height: _vm.cell.h + 'px',\n width: _vm.cell.w * _vm.emptySlots + 'px',\n })}):_vm._e(),(_vm.isForReservations)?_c('div',{staticClass:\"overlay\"},[_vm._t(\"overlay\")],2):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, PropSync } from \"vue-property-decorator\";\nimport { DateTime } from \"luxon\";\nimport { ContingentRowIdentifier } from \"../contingent/ContingentTypes\";\n\nexport type Pos = {\n x: number;\n y: number;\n};\n\nexport type SelectedEvent = {\n from: DateTime;\n to: DateTime;\n start: Pos;\n end: Pos;\n topLeft: Pos;\n bottomRight: Pos;\n};\n\n@Component\nexport default class BoxDayTrack extends Vue {\n @Prop() selectable?: boolean;\n @PropSync(\"selection\") selected?: [DateTime, DateTime] | null;\n @Prop({ default: 0 }) startIdx!: number;\n @Prop({ required: true }) from?: DateTime;\n @Prop({ required: true }) to?: DateTime;\n @Prop({ required: true }) cell!: { w: number; h: number };\n @Prop() isMobile?: boolean;\n @Prop() isContingent?: boolean;\n @Prop() identifier?: ContingentRowIdentifier;\n @PropSync(\"mobileSelection\") mobileSelected?: DateTime | null;\n @Prop() highlightPeriod?: string[];\n\n @Prop({ default: false }) openTimelineOnClick?: boolean;\n\n @Prop({ default: false }) isForReservations?: boolean;\n\n get days(): DateTime[] {\n if (!this.from || !this.to) return [];\n const f = this.from;\n return Array.from(\n Array(Math.ceil(this.to.diff(this.from, \"days\").days)),\n (_, i) => f.plus({ days: i })\n );\n }\n\n get emptySlots() {\n if (\n this.from &&\n this.to &&\n (!this.isContingent || this.to?.diff(this.from, \"days\").days <= 7)\n ) {\n return 0;\n }\n return 31 - this.days.length;\n }\n\n toAssignedMonth(date: DateTime) {\n return DateTime.local(date.year, this.identifier?.month, date.day);\n }\n\n get formatedSelectedArray() {\n if (\n this.isContingent &&\n this.identifier &&\n this.identifier.month != 0 &&\n this.selected\n ) {\n const fromFormatted = this.toAssignedMonth(this.selected[0]);\n const toFormatted = this.toAssignedMonth(this.selected[1]);\n return [fromFormatted, toFormatted];\n }\n\n return this.selected;\n }\n\n dayClass(day: DateTime) {\n const today = new Date();\n const isSelected = this.isSelected(day);\n const firstDay = day.day == 1;\n const isToday =\n day.day == today.getDate() &&\n day.month == today.getMonth() + 1 &&\n day.year == today.getFullYear();\n\n let highlight = false;\n if (this.highlightPeriod) {\n const highlightStart = DateTime.fromISO(this.highlightPeriod[0]);\n const highlightEnd = DateTime.fromISO(this.highlightPeriod[1]);\n highlight = day >= highlightStart && day <= highlightEnd;\n }\n\n return {\n firstDay: firstDay && !isSelected && !this.isContingent && !isToday,\n weekend:\n (day.weekday == 6 || day.weekday == 7) &&\n !isSelected &&\n !this.isContingent &&\n !isToday &&\n !firstDay,\n today: isToday && !this.isContingent,\n selected: isSelected,\n highlight: highlight,\n };\n }\n\n isSelected(day: DateTime) {\n return (\n this.formatedSelectedArray &&\n day >= this.formatedSelectedArray[0] &&\n day <= this.formatedSelectedArray[1]\n );\n }\n\n selectedMobile(day: DateTime) {\n return {\n selected: day.day === this.mobileSelected?.day,\n };\n }\n\n getMouseEventOffsetX(event: MouseEvent) {\n if (this.isForReservations) return event.offsetX;\n\n if (event.currentTarget) {\n return (\n event.clientX -\n (event.currentTarget as HTMLElement).getBoundingClientRect().left\n );\n }\n\n return 0;\n }\n\n getMouseEventOffsetY(event: MouseEvent) {\n if (this.isForReservations) return event.offsetY;\n\n if (event.currentTarget) {\n return (\n event.clientY -\n (event.currentTarget as HTMLElement).getBoundingClientRect().top\n );\n }\n\n return 0;\n }\n\n onDblClick(event: MouseEvent) {\n if (!this.selectable && !this.openTimelineOnClick) return;\n if (!this.from) return;\n\n const day = this.from.plus({\n days:\n Math.floor(this.getMouseEventOffsetX(event) / this.cell.w) -\n this.startIdx,\n });\n\n const tlx = event.pageX - (this.getMouseEventOffsetX(event) % this.cell.w);\n const tly = event.pageY - this.getMouseEventOffsetY(event);\n\n if (this.openTimelineOnClick) {\n this.$emit(\"openTimeline\", day.toISODate());\n } else {\n this.$emit(\"single\", {\n from: day,\n to: day,\n start: { x: event.pageX, y: event.pageY },\n end: { x: event.pageX, y: event.pageY },\n topLeft: { x: tlx, y: tly },\n bottomRight: { x: tlx + this.cell.w, y: tly + this.cell.h },\n } as SelectedEvent);\n }\n }\n\n clicked = false;\n firstClick: DateTime | null = null;\n\n onClick(event: MouseEvent) {\n if (this.openTimelineOnClick) {\n this.onDblClick(event);\n return;\n }\n\n if (!this.isMobile) {\n return;\n }\n\n if (!this.from) return;\n const day = this.from.plus({\n days:\n Math.floor(this.getMouseEventOffsetX(event) / this.cell.w) -\n this.startIdx,\n });\n\n const tlx = event.pageX - (this.getMouseEventOffsetX(event) % this.cell.w);\n const tly = event.pageY - this.getMouseEventOffsetY(event);\n\n if (!this.isMobile) {\n if (this.isContingent) {\n if (this.clicked && this.firstClick?.toISODate() == day.toISODate()) {\n this.clicked = false;\n this.firstClick = null;\n this.$emit(\"select\", {\n day: day,\n topLeft: { x: tlx, y: tly },\n bottomRight: { x: tlx + this.cell.w, y: tly + this.cell.h },\n });\n return;\n }\n this.clicked = true;\n this.firstClick = day;\n this.$emit(\"select\", {\n day: day,\n topLeft: { x: tlx, y: tly },\n bottomRight: { x: tlx + this.cell.w, y: tly + this.cell.h },\n });\n }\n return;\n }\n\n this.mobileSelected = day;\n\n this.onDblClick(event);\n }\n\n mouseDown = false;\n startOffset: Pos | null = null;\n startPoint: Pos | null = null;\n endPoint: Pos | null = null;\n\n onMouseDown(event: MouseEvent) {\n if (this.openTimelineOnClick) {\n return;\n }\n\n if (!this.selectable) return;\n // Ignore right clicks\n if (event.button === 2) return;\n\n this.mouseDown = true;\n this.startOffset = {\n x: this.getMouseEventOffsetX(event),\n y: this.getMouseEventOffsetY(event),\n };\n this.startPoint = {\n x: event.pageX,\n y: event.pageY,\n };\n this.endPoint = {\n x: event.pageX,\n y: event.pageY,\n };\n\n this.selected = this.calcSelection();\n\n // Start listening for mouse move and up events\n window.addEventListener(\"mousemove\", this.onMouseMove);\n window.addEventListener(\"mouseup\", this.onMouseUp);\n }\n onMouseMove(event: MouseEvent) {\n // Update the end point position\n if (this.mouseDown) {\n this.endPoint = {\n x: event.pageX,\n y: event.pageY,\n };\n\n this.selected = this.calcSelection();\n }\n }\n onMouseUp() {\n // Clean up event listeners\n window.removeEventListener(\"mousemove\", this.onMouseMove);\n window.removeEventListener(\"mouseup\", this.onMouseUp);\n\n const selected = this.calcSelection();\n if (selected) {\n if (this.startPoint && this.endPoint && this.startOffset && this.from) {\n const [start, end] =\n this.startPoint.x < this.endPoint.x\n ? [this.startPoint, this.endPoint]\n : [this.endPoint, this.startPoint];\n\n const topLeft = {\n x: this.startPoint.x - (this.startOffset.x % this.cell.w),\n y: this.startPoint.y - this.startOffset.y,\n };\n if (this.startPoint.x > this.endPoint.x) {\n topLeft.x =\n topLeft.x -\n selected[1].diff(selected[0], \"days\").days * this.cell.w;\n }\n\n const bottomRight = {\n x:\n topLeft.x +\n (selected[1].diff(selected[0], \"days\").days + 1) * this.cell.w,\n y: topLeft.y + this.cell.h,\n };\n\n this.$emit(\"selected\", {\n from: selected[0],\n to: selected[1],\n start,\n end,\n topLeft,\n bottomRight,\n } as SelectedEvent);\n }\n }\n\n // Reset state\n this.mouseDown = false;\n this.startOffset = null;\n this.startPoint = null;\n this.endPoint = null;\n }\n\n calcSelection(): [DateTime, DateTime] | null {\n if (!this.startPoint || !this.endPoint || !this.startOffset || !this.from) {\n return null;\n }\n\n const [top, bottom] = [\n this.startPoint.y - this.startOffset.y,\n this.startPoint.y - this.startOffset.y + this.cell.h,\n ];\n\n if (this.endPoint.y < top || this.endPoint.y > bottom) {\n return null;\n }\n\n const startDay = this.from.plus({\n days: Math.floor(this.startOffset.x / this.cell.w) - this.startIdx,\n });\n\n const endDay = this.from.plus({\n days:\n Math.floor(\n (this.startOffset.x + this.endPoint.x - this.startPoint.x) /\n this.cell.w\n ) - this.startIdx,\n });\n\n if (startDay.toISODate() === endDay.toISODate()) return null;\n\n return startDay < endDay ? [startDay, endDay] : [endDay, startDay];\n }\n\n beforeDestroy() {\n window.removeEventListener(\"mousemove\", this.onMouseMove);\n window.removeEventListener(\"mouseup\", this.onMouseUp);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BoxDayTrack.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BoxDayTrack.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BoxDayTrack.vue?vue&type=template&id=c323b2c6&scoped=true&\"\nimport script from \"./BoxDayTrack.vue?vue&type=script&lang=ts&\"\nexport * from \"./BoxDayTrack.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BoxDayTrack.vue?vue&type=style&index=0&id=c323b2c6&scoped=true&lang=scss&\"\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 \"c323b2c6\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertiesAndUnits.vue?vue&type=style&index=0&id=4fdfa342&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInOutEditForm.vue?vue&type=style&index=0&id=38c32c86&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/logo-colored.fc0adda3.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddOnServicesTable.vue?vue&type=style&index=0&id=92ed0e28&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackNav.vue?vue&type=style&index=0&id=0518ae29&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"time-track-nav\"},[_c('v-btn',{ref:\"navLeftBtn\",staticClass:\"mr-6\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.navLeft}},[_c('v-icon',[_vm._v(\"fal fa-caret-left\")])],1),_c('DateField',{attrs:{\"label\":_vm.$t('Period'),\"type\":\"month\",\"activePicker\":'MONTH',\"disabled\":_vm.loading,\"origin\":\"top center\",\"width\":316,\"nudge-left\":\"50%\"},on:{\"date-selected\":_vm.selected},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"time-track-nav__date\",attrs:{\"text\":\"\",\"disabled\":_vm.loading}},on),[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"fal fa-calendar-alt\")]),_c('span',[_vm._v(_vm._s(_vm.months)+\" \"+_vm._s(_vm.currentDay.year))])],1)]}}]),model:{value:(_vm.dateFieldModel),callback:function ($$v) {_vm.dateFieldModel=$$v},expression:\"dateFieldModel\"}}),_c('v-btn',{ref:\"navTodayBtn\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.navToday}},[_c('v-icon',[_vm._v(\"fa fa-map-marker\")])],1),_c('v-btn',{ref:\"navRightBtn\",staticClass:\"ml-6\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.navRight}},[_c('v-icon',[_vm._v(\"fal fa-caret-right\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DateTime } from \"luxon\";\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { Action, Getter } from \"vuex-class\";\n\n@Component({ components: { DateField } })\nexport default class TimeTrackNav extends Vue {\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"calendar/isLoading\") loading?: boolean;\n @Getter(\"calendar/currentDay\") currentDay?: DateTime;\n @Action(\"calendar/goToDay\") goToDay?: (payload: DateTime) => void;\n @Getter(\"calendar/months\") months?: string;\n\n dateFieldModel = DateTime.local().toISODate()?.substring(0, 7);\n\n @Watch(\"currentDay\", { immediate: true })\n currentChanged(fresh: DateTime) {\n this.dateFieldModel =\n fresh.toISODate() ?? new Date().toJSON().substring(0, 7);\n }\n\n selected(evt: string) {\n if (this.goToDay) {\n try {\n this.goToDay(DateTime.fromISO(evt));\n } catch {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Selected date is not a valid ISODate\"),\n timeout: 5000,\n });\n }\n }\n }\n\n /* Vuetify has a bug where it retains focus, :retain-focus-on-click=\"false\" doesn't fix it \n https://github.com/vuetifyjs/vuetify/issues/3125#issuecomment-527843283 */\n @Ref(\"navRightBtn\") navRightBtn?: Vue;\n navRight() {\n if (this.navRightBtn?.$el instanceof HTMLElement) {\n this.navRightBtn?.$el.blur();\n }\n if (this.goToDay && this.currentDay) {\n this.goToDay(this.currentDay.plus({ months: 1 }));\n }\n }\n @Ref(\"navLeftBtn\") navLeftBtn?: Vue;\n navLeft() {\n if (this.navLeftBtn?.$el instanceof HTMLElement) {\n this.navLeftBtn?.$el.blur();\n }\n if (this.goToDay && this.currentDay) {\n this.goToDay(this.currentDay.minus({ months: 1 }));\n }\n }\n @Ref(\"navTodayBtn\") navTodayBtn?: Vue;\n navToday() {\n if (this.navTodayBtn?.$el instanceof HTMLElement) {\n this.navTodayBtn?.$el.blur();\n }\n if (this.goToDay) {\n this.goToDay(DateTime.local().startOf(\"day\"));\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackNav.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackNav.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeTrackNav.vue?vue&type=template&id=c4954660&scoped=true&\"\nimport script from \"./TimeTrackNav.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeTrackNav.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeTrackNav.vue?vue&type=style&index=0&id=c4954660&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 \"c4954660\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.tenantUsesAvailabilityChangelog && !_vm.isOwner)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.toggleAvailabilityTimelineOpenOnClick(\n !_vm.openAvailabilityTimelineOnClick\n )}}},[_c('v-icon',{class:{\n 'changelog-active': _vm.openAvailabilityTimelineOnClick,\n }},[_vm._v(\"fal fa-history\")])],1):_vm._e(),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.open}},[_c('v-icon',[_vm._v(\"fal fa-ellipsis-v\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({ components: { RightDrawer } })\nexport default class Settings extends Vue {\n @Getter(\"calendar/isLoading\") loading?: boolean;\n @Getter(\"calendar/settingsOpen\") settingsOpen?: boolean;\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Getter(\"isDarkTheme\") isDarkTheme?: boolean;\n\n @Getter(\"appParams/tenantUsesAvailabilityChangelog\")\n tenantUsesAvailabilityChangelogParam?: boolean;\n\n @Action(\"calendar/openSettings\") open?: () => void;\n\n @Action(\"calendar/toggleAvailabilityTimelineOpenOnClick\")\n toggleAvailabilityTimelineOpenOnClick?: (value: boolean) => void;\n @Getter(\"calendar/availabilityTimelineOpenOnClick\")\n availabilityTimelineOpenOnClick?: boolean;\n get openAvailabilityTimelineOnClick() {\n return this.availabilityTimelineOpenOnClick ?? false;\n }\n\n get tenantUsesAvailabilityChangelog() {\n return this.tenantUsesAvailabilityChangelogParam ?? false;\n }\n\n get isOwner() {\n return policyChecker(\"IS_OWNER_ROLE\")(this.claims);\n }\n}\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--0-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--0-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=532bd209&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=532bd209&scoped=true&lang=scss&\"\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 \"532bd209\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"time-track-nav\"},[_c('v-btn',{ref:\"navLeftBtn\",staticClass:\"mr-6\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.navLeft}},[_c('v-icon',[_vm._v(\"fal fa-caret-left\")])],1),_c('DateField',{attrs:{\"label\":_vm.$t('Period'),\"type\":_vm.datePickerType,\"activePicker\":_vm.activeDatePicker,\"disabled\":_vm.loading,\"origin\":\"top center\",\"width\":316,\"nudge-left\":\"50%\"},on:{\"date-selected\":_vm.selected},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"time-track-nav__date\",attrs:{\"text\":\"\",\"disabled\":_vm.loading}},on),[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"fal fa-calendar-alt\")]),_c('span',[_vm._v(_vm._s(_vm.months)+\" \"+_vm._s(_vm.currentDay.year))])],1)]}}]),model:{value:(_vm.dateFieldModel),callback:function ($$v) {_vm.dateFieldModel=$$v},expression:\"dateFieldModel\"}}),_c('v-btn',{ref:\"navRightBtn\",staticClass:\"ml-6\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.navRight}},[_c('v-icon',[_vm._v(\"fal fa-caret-right\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DateTime } from \"luxon\";\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { ContingentDateSpans, ContingentSettings } from \"@/store/modules/contingent\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({ components: { DateField } })\nexport default class TimeTrackNav extends Vue {\n @Getter(\"language/language\") language?: string;\n\n @Getter(\"contingent/isLoading\") loading?: boolean;\n @Getter(\"contingent/currentDay\") currentDay?: DateTime;\n @Action(\"contingent/goToDay\") goToDay?: (payload: DateTime) => void;\n @Getter(\"contingent/months\") months?: string;\n @Getter(\"contingent/settings\") settingsList?: ContingentSettings[];\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n dateFieldModel = this.formatDateForPicker(DateTime.local());\n\n @Watch(\"currentDay\", { immediate: true })\n currentChanged(fresh: DateTime) {\n this.dateFieldModel =\n this.formatDateForPicker(fresh) ?? this.formatDateForPicker(DateTime.local());\n }\n\n @Watch(\"dateSpan\")\n dateSpanChanged() {\n if(this.currentDay) {\n this.dateFieldModel =\n this.formatDateForPicker(this.currentDay) ?? this.formatDateForPicker(DateTime.local());\n }\n }\n\n selected(evt: string) {\n if (this.goToDay) {\n try {\n this.goToDay(DateTime.fromISO(evt));\n } catch {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Selected date is not a valid ISODate\"),\n timeout: 5000,\n });\n }\n }\n }\n\n get currentTenantId() {\n return this.claims ? +this.claims.tid : 0;\n }\n\n get currentUserId() {\n return this.claims ? +this.claims.sid : 0;\n }\n\n get currentSettings() {\n const settings = this.settingsList?.find(x => x.userId == this.currentUserId && x.tenantId == this.currentTenantId);\n if (settings) {\n return settings;\n }\n return this.settingsList?.find((x) => x.userId == 0);\n }\n get dateSpan(): ContingentDateSpans {\n return this.currentSettings?.dateSpan ?? \"month\";\n }\n\n get datePickerType() {\n let toReturn = '';\n switch (this.currentSettings?.dateSpan) {\n case 'year':\n toReturn = 'year';\n break;\n\n case 'month':\n toReturn = 'month';\n break;\n\n case 'week':\n toReturn = 'date';\n break;\n\n default:\n toReturn = 'month';\n break;\n }\n\n return toReturn\n }\n\n get activeDatePicker() {\n let toReturn = '';\n switch (this.currentSettings?.dateSpan) {\n case 'year':\n toReturn = 'YEAR';\n break;\n\n case 'month':\n toReturn = 'MONTH';\n break;\n\n case 'week':\n toReturn = 'DATE';\n break;\n\n default:\n toReturn = 'MONTH';\n break;\n }\n\n return toReturn\n }\n\n // If we dont format, date picker wont show current selected date/month/year\n // this forma is tied to activeDatePicker value\n formatDateForPicker(date: DateTime) {\n let toReturn = '';\n switch (this.currentSettings?.dateSpan) {\n case 'year':\n toReturn = date.toISODate().substring(0, 7);\n break;\n\n case 'month':\n toReturn = date.toISODate().substring(0, 7);\n break;\n\n case 'week':\n toReturn = date.toISODate();\n break;\n\n default:\n toReturn = date.toISODate().substring(0, 7);\n break;\n }\n\n return toReturn\n }\n\n /* Vuetify has a bug where it retains focus, :retain-focus-on-click=\"false\" doesn't fix it \n https://github.com/vuetifyjs/vuetify/issues/3125#issuecomment-527843283 */\n @Ref(\"navRightBtn\") navRightBtn?: Vue;\n navRight() {\n if (this.navRightBtn?.$el instanceof HTMLElement) {\n this.navRightBtn?.$el.blur();\n }\n if (this.goToDay && this.currentDay) {\n switch (this.currentSettings?.dateSpan) {\n case 'year':\n this.goToDay(this.currentDay.plus({ years: 1 }));\n break;\n\n case 'month':\n this.goToDay(this.currentDay.plus({ months: 1 }));\n break;\n\n case 'week':\n this.goToDay(this.currentDay.plus({ weeks: 1 }));\n break;\n\n default:\n this.goToDay(this.currentDay.plus({ months: 1 }));\n break;\n }\n }\n }\n @Ref(\"navLeftBtn\") navLeftBtn?: Vue;\n navLeft() {\n if (this.navLeftBtn?.$el instanceof HTMLElement) {\n this.navLeftBtn?.$el.blur();\n }\n if (this.goToDay && this.currentDay) {\n switch (this.currentSettings?.dateSpan) {\n case 'year':\n this.goToDay(this.currentDay.minus({ years: 1 }));\n break;\n\n case 'month':\n this.goToDay(this.currentDay.minus({ months: 1 }));\n break;\n\n case 'week':\n this.goToDay(this.currentDay.minus({ weeks: 1 }));\n break;\n\n default:\n this.goToDay(this.currentDay.minus({ months: 1 }));\n break;\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackNav.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackNav.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeTrackNav.vue?vue&type=template&id=0518ae29&scoped=true&\"\nimport script from \"./TimeTrackNav.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeTrackNav.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeTrackNav.vue?vue&type=style&index=0&id=0518ae29&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 \"0518ae29\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-row\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"disabled\":_vm.loading},on:{\"click\":_vm.open}},[_c('v-icon',[_vm._v(\"fal fa-ellipsis-v\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-col',[_c('v-select',{staticClass:\"select\",attrs:{\"label\":_vm.$t('Property'),\"items\":_vm.properties,\"item-value\":function (x) { return x.propertyId; },\"item-text\":function (x) { return x.name; },\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.selectedProperty),callback:function ($$v) {_vm.selectedProperty=$$v},expression:\"selectedProperty\"}}),_c('v-select',{staticClass:\"select\",attrs:{\"disabled\":_vm.loading,\"items\":_vm.possibleDateSpans,\"item-value\":\"key\",\"item-text\":function (item) { return _vm.$t(item.text); },\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('Contingent.DateSpan')},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(item.text)))])]}}]),model:{value:(_vm.dateSpan),callback:function ($$v) {_vm.dateSpan=$$v},expression:\"dateSpan\"}}),_c('v-select',{staticClass:\"select\",attrs:{\"disabled\":_vm.loading,\"items\":_vm.dataFormatOptions,\"item-value\":\"key\",\"item-text\":function (item) { return _vm.$t(item.text); },\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('Contingent.DataFormat')},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(item.text)))])]}}]),model:{value:(_vm.dataFormat),callback:function ($$v) {_vm.dataFormat=$$v},expression:\"dataFormat\"}}),_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"Show on contingent\")))]),_c('v-switch',{staticClass:\"mb-4\",attrs:{\"label\":_vm.$t('Price'),\"color\":\"primary\"},model:{value:(_vm.showPrice),callback:function ($$v) {_vm.showPrice=$$v},expression:\"showPrice\"}}),(_vm.showPrice)?_c('v-switch',{staticClass:\"mb-4\",attrs:{\"label\":_vm.$t('PriceDifference'),\"color\":\"primary\"},model:{value:(_vm.showPriceDifference),callback:function ($$v) {_vm.showPriceDifference=$$v},expression:\"showPriceDifference\"}}):_vm._e(),(_vm.showPrice)?_c('v-select',{staticClass:\"mb-4\",attrs:{\"items\":_vm.nonDerivedRatePlans,\"label\":_vm.$t('Calendar.SelectRatePlans'),\"item-text\":\"name\",\"item-value\":\"id\"},on:{\"change\":_vm.updateListRatePlanSettings},model:{value:(_vm.selectedRatePlan),callback:function ($$v) {_vm.selectedRatePlan=$$v},expression:\"selectedRatePlan\"}}):_vm._e(),_c('div',{staticClass:\"color-palette\"},[_c('v-icon',{staticClass:\"event-status-low\"},[_vm._v(\" fas fa-square \")]),_c('div',{staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Contingent.DemandIcon.Low\"))+\" \")])],1),_c('div',{staticClass:\"color-palette\"},[_c('v-icon',{staticClass:\"event-status-medium\"},[_vm._v(\" fas fa-square \")]),_c('div',{staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Contingent.DemandIcon.Medium\"))+\" \")])],1),_c('div',{staticClass:\"color-palette\"},[_c('v-icon',{staticClass:\"event-status-high\"},[_vm._v(\" fas fa-square \")]),_c('div',{staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Contingent.DemandIcon.High\"))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport {\n ContingentDateSpans,\n ContingentDataFormat,\n ContingentSettings,\n} from \"@/store/modules/contingent\"\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { RatePlan } from \"@/components/calendar/CalendarTypes\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\n\n@Component\nexport default class ContingentSettingsForm extends Vue {\n @Getter(\"contingent/isLoading\") loading?: boolean;\n @Getter(\"contingent/settings\") settingsList?: ContingentSettings[];\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Action(\"contingent/updateSettings\") updateSettings?: (\n payload?: ContingentSettings\n ) => void;\n @Getter(\"calendar/nonOBRatePlans\") nonOBRatePlans?: RatePlan[];\n @Action(\"calendar/refreshNonOBRatePlans\") refreshNonOBRatePlans?: () => Promise;\n @Getter(\"globalFilters/filteredProperties\") properties?: GlobalFilterProperty[];\n\n\n async created () {\n if ((this.nonOBRatePlans?.length ?? 0) === 0 && this.refreshNonOBRatePlans) {\n await this.refreshNonOBRatePlans();\n }\n this.refreshSelectedRatePlan();\n }\n\n update(payload: Partial) {\n this.currentSettings &&\n this.updateSettings &&\n this.updateSettings({ ...this.currentSettings, ...payload, userId: this.currentUserId, tenantId: this.currentTenantId });\n }\n\n get currentTenantId() {\n return this.claims ? +this.claims.tid : 0;\n }\n\n get currentUserId() {\n return this.claims ? +this.claims.sid : 0;\n }\n\n get currentSettings() {\n const settings = this.settingsList?.find(x => x.userId == this.currentUserId && x.tenantId == this.currentTenantId);\n if(settings)\n {\n return settings;\n }\n return this.settingsList?.find(x => x.userId == 0);\n }\n\n possibleDateSpans: { key: ContingentDateSpans; text: string }[] = [\n { key: \"week\", text: \"Contingent.DateSpans.Week\" },\n { key: \"month\", text: \"Contingent.DateSpans.Month\" },\n { key: \"year\", text: \"Contingent.DateSpans.Year\" },\n ];\n get dateSpan(): ContingentDateSpans {\n return this.currentSettings?.dateSpan ?? \"month\";\n }\n set dateSpan(value: ContingentDateSpans) {\n this.currentSettings &&\n this.updateSettings &&\n this.updateSettings({ ...this.currentSettings, dateSpan: value });\n }\n\n dataFormatOptions: { key: ContingentDataFormat; text: string }[] = [\n { key: \"percentage\", text: \"Contingent.DataFormat.Percentage\" },\n { key: \"number\", text: \"Contingent.DataFormat.Number\" },\n ];\n get dataFormat(): ContingentDataFormat {\n return this.currentSettings?.dataFormat ?? \"percentage\";\n }\n set dataFormat(value: ContingentDataFormat) {\n this.update({ dataFormat: value });\n }\n\n get showPrice() {\n return this.currentSettings?.showPrice ?? false;\n }\n set showPrice(value: boolean) {\n this.update({ showPrice: value });\n }\n\n get showPriceDifference() {\n return this.currentSettings?.showPriceDifference ?? false;\n }\n set showPriceDifference(value: boolean) {\n this.update({ showPriceDifference: value });\n }\n\n get selectedProperty() {\n return this.currentSettings?.selectedPropertyId == undefined || this.currentSettings?.selectedPropertyId == 0\n ? this.properties?.find(x => x.status)?.propertyId ?? this.properties?.find(x => !x.status)?.propertyId ?? 0\n : this.currentSettings?.selectedPropertyId;\n }\n set selectedProperty(value: number) {\n if(this.currentSettings) {\n this.update({ selectedPropertyId: value });\n }\n }\n\n get nonDerivedRatePlans() {\n return this.nonOBRatePlans?.filter((x) => !x.isDerived) ?? [];\n }\n\n selectedRatePlan: number | null = null;\n\n refreshSelectedRatePlan() {\n const selectedRatePlan = this.currentSettings?.selectedRatePlanId ?? null;\n if(selectedRatePlan) {\n this.selectedRatePlan = selectedRatePlan;\n } else {\n this.selectedRatePlan = null\n }\n }\n\n updateListRatePlanSettings() {\n this.update({selectedRatePlanId: this.selectedRatePlan ?? null});\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentSettingsForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentSettingsForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContingentSettingsForm.vue?vue&type=template&id=7f8e09e4&scoped=true&\"\nimport script from \"./ContingentSettingsForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContingentSettingsForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContingentSettingsForm.vue?vue&type=style&index=0&id=7f8e09e4&scoped=true&lang=scss&\"\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 \"7f8e09e4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VCol,VContainer,VIcon,VSelect,VSubheader,VSwitch})\n","\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport ContingentSettingsForm from \"./ContingentSettingsForm.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\n\n@Component({ components: { ContingentSettingsForm, RightDrawer } })\nexport default class Settings extends Vue {\n @Getter(\"contingent/isLoading\") loading?: boolean;\n @Getter(\"contingent/settingsOpen\") settingsOpen?: boolean;\n @Action(\"contingent/openSettings\") open?: () => void;\n}\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--0-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--0-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=10544d4d&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 \"10544d4d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContingentBox',{key:_vm.sensitiveKey})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"resize\",rawName:\"v-resize.quiet\",value:(_vm.resized),expression:\"resized\",modifiers:{\"quiet\":true}},{name:\"scroll\",rawName:\"v-scroll.self\",value:(_vm.scrolled),expression:\"scrolled\",modifiers:{\"self\":true}},{name:\"dragscroll\",rawName:\"v-dragscroll:nochilddrag.x\",arg:\"nochilddrag\",modifiers:{\"x\":true}}],staticClass:\"calendar__container\",on:{\"dragscrollstart\":function($event){_vm.dragging = true},\"dragscrollend\":function($event){_vm.dragging = false},\"months\":_vm.months}},[_c('v-fade-transition',[(_vm.loading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('div',{staticClass:\"calendar__rows-wrapper\",style:(_vm.fullBoxStyle)},[_c('transition-group',{attrs:{\"name\":\"fade-slow\",\"tag\":\"div\"}},_vm._l((_vm.contingentData),function(row){return _c('CalendarBoxRow',{key:row.id,style:({ top: row.offset + 'px', position: 'absolute' }),attrs:{\"item\":row,\"cell\":{h: 32}}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"contingent__left--button upercase--text font-weight-bold property__row\",class:{\n 'secondary--text': !_vm.$vuetify.theme.dark,\n 'primary--text text--lighten-1': _vm.$vuetify.theme.dark,\n },on:{\"click\":function($event){return _vm.toggleExpand(row)}}},[_c('i',{staticClass:\"fal fa-calendar-alt mr-1\"}),_vm._v(\" \"+_vm._s(_vm.getRowName(row))+\" \"),_c('v-spacer')],1)]),_c('template',{slot:\"track\"},[_c('BoxTimeTrack',{attrs:{\"isContingent\":true,\"start\":_vm.getRowStartDate(row),\"end\":_vm.getRowEndDate(row),\"dayW\":_vm.config.cell.w,\"dragging\":_vm.dragging},on:{\"menu\":function($event){_vm.menu = !_vm.menu}}})],1),_c('div',[_vm._l((row.unitTypes),function(ut){return _c('CalendarBoxRow',{key:ut.id,attrs:{\"item\":ut,\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"contingent__left--button primary--text only-on-hover--trigger\",on:{\"click\":function($event){return _vm.toggleExpand(ut)}}},[_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small\"},[_c('i',{staticClass:\"fa fa-fw fa-bed\"})]),_c('div',[_vm._v(\" \"+_vm._s(ut.name)+\" \")]),_c('v-spacer'),_c('div',[(_vm.shownRatePlan(ut) && !ut.expanded)?_c('i',{staticClass:\"fas fa-angle-down\"}):(_vm.shownRatePlan(ut) && ut.expanded)?_c('i',{staticClass:\"fas fa-angle-up\"}):_vm._e()])],1)]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{staticClass:\"primary--text\",attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.getRowStartDate(row),\"to\":_vm.getRowEndDate(row),\"cell\":_vm.config.cell,\"isContingent\":true,\"selectable\":true},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [(_vm.currentSettings.dataFormat == 'number' && _vm.hasAvailability(ut, day))?_c('div',{staticClass:\"day-track--center bold\",class:_vm.demandChangingEvent(ut, day)},[_c('div',{class:{ 'success--text': _vm.available(ut, day) === 0 }},[_vm._v(\" \"+_vm._s(_vm.occupied(ut, day))+\" \")]),_c('div',{staticClass:\"error--text\"},[_vm._v(\" \"+_vm._s(_vm.available(ut, day))+\" \")])]):(_vm.hasAvailability(ut, day))?_c('div',{staticClass:\"day-track--center\",class:_vm.demandChangingEvent(ut, day)},[_c('div',[(_vm.occupancyPercentage(ut, day) != undefined)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.occupancyPercentage(ut, day) * 100, { maximumFractionDigits: 0 } ))+\" % \")]):_vm._e()])]):_vm._e()]}}],null,true)})],1),(_vm.currentSettings.showPrice)?_c('div',[(_vm.shownRatePlan(ut))?_c('CalendarBoxRow',{key:_vm.shownRatePlan(ut).id,attrs:{\"item\":_vm.shownRatePlan(ut),\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"contingent__left--button text--lighten-1 no-hover\"},[_c('div',{staticClass:\"v-btn v-btn--flat v-btn--round v-btn--icon v-size--x-small\"},[_c('i',{staticClass:\"fa fa-fw fa-wallet\"})]),_c('div',[_vm._v(\" \"+_vm._s(_vm.shownRatePlan(ut).name)+\" (\"+_vm._s(_vm.shownRatePlan(ut).currencyCode)+\") \")])])]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{ref:\"ratePlanTrack\",refInFor:true,attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.getRowStartDate(row),\"to\":_vm.getRowEndDate(row),\"cell\":_vm.config.cell,\"isContingent\":true,\"identifier\":_vm.getPriceRowIdentifier(row, ut),\"selectable\":_vm.allowedToModifyCalendar,\"selection\":_vm.checkSelection(row.id, ut.id) ? _vm.selection.selection : null},on:{\"select\":function($event){return _vm.select($event, ut, row)},\"single\":function($event){return _vm.single($event, ut, row)}},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [_c('div',{staticClass:\"day-track--center\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.price(_vm.shownRatePlan(ut), day))+\" \")]),(_vm.currentSettings.showPriceDifference)?_c('div',[(_vm.priceDifference(_vm.shownRatePlan(ut), day) > 0)?_c('span',[_vm._v(\"+\")]):_vm._e(),(_vm.priceDifference(_vm.shownRatePlan(ut), day) != undefined)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.priceDifference(_vm.shownRatePlan(ut), day), { maximumFractionDigits: 0 } ))+\" % \")]):_vm._e()]):_vm._e()])]}}],null,true)})],1)],2):_vm._e()],1):_vm._e()],2)}),_c('CalendarBoxRow',{attrs:{\"cell\":_vm.config.cell}},[_c('template',{slot:\"left\"},[_c('div',{staticClass:\"contingent__left--button primary--text no-hover\"},[_c('div',[_vm._v(\" Total: \")])])]),_c('template',{slot:\"track\"},[_c('BoxDayTrack',{staticClass:\"primary--text\",attrs:{\"startIdx\":_vm.boxDayStartIdx,\"from\":_vm.getRowStartDate(row),\"to\":_vm.getRowEndDate(row),\"cell\":_vm.config.cell,\"isContingent\":true,\"selectable\":true},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var day = ref.day;\nreturn [(_vm.currentSettings.dataFormat == 'number' && _vm.hasAvailiabilityTotalRow(row, day))?_c('div',{staticClass:\"day-track--center bold\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.totalOccupied(row, day))+\" \")]),_c('div',{staticClass:\"error--text\"},[_vm._v(\" \"+_vm._s(_vm.totalAvailable(row, day))+\" \")])]):(_vm.hasAvailiabilityTotalRow(row, day))?_c('div',{staticClass:\"day-track--center\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.averageOccupancyPercentage(row, day) * 100, { maximumFractionDigits: 0 } ))+\" % \")])]):_vm._e()]}}],null,true)})],1)],2)],2)],2)}),1)],1),_c('RightDrawer',{staticClass:\"settings-drawer\",attrs:{\"open\":_vm.internalSettingsOpen,\"width\":\"360px\"},on:{\"update:open\":function($event){_vm.internalSettingsOpen=$event}}},[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"d-flex justify-space-between align-center flex-fill\"},[_c('h3',[_vm._v(_vm._s(_vm.$t(\"Contingent.Settings\")))]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalSettingsOpen = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)]),_c('ContingentSettingsForm')],1),_c('CalendarEditor',{ref:\"editor\",on:{\"closed\":function($event){_vm.selectDatePeriod = []; _vm.selection = { row: [], selection: null }}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Ref, PropSync } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport CalendarBoxRow from \"@/components/calendar/CalendarBoxRow.vue\";\nimport ContingentSettingsForm from \"@/components/contingent/ContingentSettingsForm.vue\";\nimport BoxTimeTrack from \"@/components/calendar/BoxTimeTrack.vue\";\nimport BoxDayTrack from \"@/components/calendar/BoxDayTrack.vue\";\nimport CalendarEditor from \"@/components/calendar/CalendarEditor.vue\";\nimport { dragscroll } from \"vue-dragscroll\";\nimport { DateTime } from \"luxon\";\nimport { Action, Getter } from \"vuex-class\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { ContingentDateSpans, ContingentSettings } from \"@/store/modules/contingent\";\nimport { ContingentBoxConfig, \n ContingentDataRequest, \n ContingentExpandableRow, \n ContingentMonthView, \n ContingentRatePlanView, \n ContingentRowIdentifier, \n ContingentUnitTypeView, \n ContingentWindow\n} from \"./ContingentTypes\";\nimport { DemandChangingEventStatus } from \"@/shared/models/demandChangingEvent\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\n\nconst LEFT_W = 264;\n\nconst _cell = {\n w: 48,\n h: 48,\n hl: 32,\n};\n\nconst _config: ContingentBoxConfig = {\n cell: _cell,\n preload: 10,\n};\n\n@Component({\n components: {\n RightDrawer,\n ContingentSettingsForm,\n CalendarBoxRow,\n BoxTimeTrack,\n BoxDayTrack,\n CalendarEditor,\n },\n directives: {\n dragscroll,\n },\n})\nexport default class ContingentBox extends Vue {\n @PropSync(\"openModal\") isOpen?: boolean;\n\n @Getter(\"contingent/settings\") settingsList?: ContingentSettings[];\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Getter(\"language/language\") language?: string;\n @Getter(\"codebooks/demandChangingEventStatus\") demandEventStatuses?: DemandChangingEventStatus[];\n @Action(\"codebooks/refreshDemandChangingEventStatus\") refreshDemandChangingEventStatus?: () => void;\n\n get allowedToModifyCalendar() {\n return policyChecker(\"MODIFY_CALENDAR\")(this.claims);\n }\n\n get currentTenantId() {\n return this.claims ? +this.claims.tid : 0;\n }\n\n get currentUserId() {\n return this.claims ? +this.claims.sid : 0;\n }\n\n get currentSettings() {\n const settings = this.settingsList?.find(x => x.userId == this.currentUserId && x.tenantId == this.currentTenantId);\n if (settings) {\n return settings;\n }\n return this.settingsList?.find((x) => x.userId == 0);\n }\n get dateSpan(): ContingentDateSpans {\n return this.currentSettings?.dateSpan ?? \"month\";\n }\n get propertyId(): number {\n return this.currentSettings?.selectedPropertyId ?? 0;\n }\n get ratePlanId(): number {\n return this.currentSettings?.selectedRatePlanId ?? 0;\n }\n get showPrice(): boolean {\n return this.currentSettings?.showPrice ?? false;\n }\n \n @Getter(\"contingent/settingsOpen\") settingsOpen?: boolean;\n @Action(\"contingent/openSettings\") open?: () => void;\n @Action(\"contingent/closeSettings\") close?: () => void;\n get internalSettingsOpen() {\n return this.settingsOpen ?? false;\n }\n set internalSettingsOpen(val: boolean) {\n if (val) {\n if (this.open) this.open();\n } else {\n if (this.close) this.close();\n }\n }\n\n config = _config;\n\n selection: { row: any[]; selection: [DateTime, DateTime] | null } = {\n row: [],\n selection: null,\n };\n\n checkSelection(month: number, unitType: number) {\n const m = this.dateSpan == \"week\" ? 0 : month;\n const appliesTo = this.selection.row.findIndex((x) => x.month == m && x.unitType == unitType)\n return appliesTo === -1 ? false : true;\n }\n\n @Ref(\"editor\") editor?: CalendarEditor;\n @Ref(\"ratePlanTrack\") ratePlanTrack?: BoxDayTrack[];\n\n async created() {\n const promises = [];\n\n if((this.demandEventStatuses?.length ?? 0) === 0 && this.refreshDemandChangingEventStatus) {\n promises.push(this.refreshDemandChangingEventStatus());\n }\n\n await Promise.all(promises);\n }\n\n contingentData: ContingentMonthView[] = [];\n\n window: ContingentWindow = {\n w: 0,\n h: 0,\n l: this.config.preload * this.config.cell.w,\n };\n\n leftEdgeDay = DateTime.local().startOf(\"month\");\n rightEdgeDay = this.leftEdgeDay;\n\n get fullBox() {\n return {\n w:\n (this.dateSpan == 'week' ? 7 : 31) *\n this.config.cell.w +\n LEFT_W,\n h: this.contingentData.reduce((rAcc, r) => rAcc + r.height, 32),\n };\n }\n get fullBoxStyle() {\n return { width: this.fullBox.w + \"px\", height: this.fullBox.h + \"px\" };\n }\n\n get boxDayStartIdx() {\n return 0;\n }\n\n get months() {\n let firstDateMonth;\n let secondDateMonth;\n let month;\n\n if (this.dateSpan === \"week\" && this.language) {\n //First day + 6 days from start equals week\n firstDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx,\n })\n .setLocale(this.language).monthLong;\n\n secondDateMonth = this.leftEdgeDay\n .plus({\n days: this.boxDayStartIdx + 6,\n })\n .setLocale(this.language).monthLong;\n if (firstDateMonth === secondDateMonth) {\n month = firstDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n\n return month;\n } else {\n month = firstDateMonth + \"/\" + secondDateMonth;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n }\n } else if (this.dateSpan === \"month\" && this.language) {\n const month = this.leftEdgeDay.setLocale(this.language).monthLong;\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month\n }\n month = \"\";\n if (this.setMonths) {\n this.setMonths(month);\n }\n return month;\n }\n\n get boxDayStart() {\n return this.leftEdgeDay.plus({ days: this.boxDayStartIdx });\n }\n get boxDayEnd() {\n const daysToDisplay =\n Math.ceil((this.window.w - LEFT_W) / this.config.cell.w) +\n 1 +\n this.config.preload * 2;\n const res = this.boxDayStart.plus({ days: daysToDisplay });\n return this.rightEdgeDay < res ? this.rightEdgeDay : res;\n }\n\n @Getter(\"contingent/isLoading\") loading?: boolean;\n @Getter(\"contingent/contingentData\") rows?: ContingentMonthView[];\n @Action(\"contingent/fetchHierarchy\") fetchHierarchy?: (\n payload: ContingentDataRequest\n ) => Promise;\n\n @Getter(\"contingent/currentDay\") currentDay?: DateTime;\n @Action(\"contingent/goToDay\") goToDay?: (payload: DateTime) => void;\n @Action(\"contingent/setMonths\") setMonths?: (payload: string) => void;\n @Getter(\"globalFilters/filteredProperties\") properties?: GlobalFilterProperty[];\n\n @Action(\"setCustomBreadcrumbs\") setCustomBreadcrumbs?: (\n payload: string[] | undefined\n ) => Promise;\n @Getter(\"customBreadcrumbs\") customBreadcrumbs?: string[];\n\n @Watch(\"currentDay\")\n currentDayChanged(fresh: DateTime) {\n if (\n this.initialNavTo ||\n fresh.toISODate() !== this.internalCurrentDay?.toISODate()\n ) {\n this.navTo(fresh);\n }\n }\n\n @Watch(\"dateSpan\")\n dateSpanChanged() {\n if(this.currentDay) {\n this.navTo(this.currentDay);\n }\n }\n\n @Watch(\"propertyId\")\n propertyIdChanged() {\n if(this.currentDay) {\n this.navTo(this.currentDay);\n }\n }\n\n @Watch(\"ratePlanId\")\n ratePlanIdChanged() {\n this.calculateOffsets();\n }\n\n @Watch(\"showPrice\")\n showPriceChanged() {\n this.calculateOffsets();\n }\n\n getFrom(day: DateTime) {\n let toReturn;\n switch (this.dateSpan) {\n case \"week\":\n toReturn = day.startOf(\"week\");\n break;\n\n case \"month\":\n toReturn = day.startOf(\"month\");\n break;\n\n case \"year\":\n toReturn = day.startOf(\"year\");\n break;\n \n default:\n toReturn = day.startOf(\"month\");\n break;\n }\n\n return toReturn\n }\n\n getTo(day: DateTime) {\n let toReturn;\n switch (this.dateSpan) {\n case \"week\":\n toReturn = day.endOf(\"week\");\n break;\n\n case \"month\":\n toReturn = day.endOf(\"month\");\n break;\n\n case \"year\":\n toReturn = day.endOf(\"year\");\n break;\n \n default:\n toReturn = day.endOf(\"month\");\n break;\n }\n\n return toReturn\n }\n\n sanitizeDate(val: DateTime) {\n return new Date(val.toISODate());\n }\n\n get propertyIdForHierarchy() {\n\n if(this.currentSettings?.selectedPropertyId == undefined || this.currentSettings?.selectedPropertyId == 0)\n {\n return this.properties?.find(x => x.status)?.propertyId ?? this.properties?.find(x => !x.status)?.propertyId ?? 0\n }\n else\n {\n //check if currently selected property is stuck in settings from before hiding it in filtered properties or refreshing filtered properties or whatever\n const property = this.properties?.find(x => x.propertyId == this.currentSettings?.selectedPropertyId);\n\n if(property == undefined || property == null)\n {\n if(this.properties && this.properties.length > 0)\n {\n this.currentSettings.selectedPropertyId = this.properties[0].propertyId;\n return this.properties[0].propertyId;\n }\n }\n else\n {\n return property.propertyId;\n }\n\n return 0;\n }\n }\n\n\n initialNavTo = true;\n internalCurrentDay?: DateTime;\n\n navTo(day: DateTime | string) {\n this.setBounds();\n this.initialNavTo = false;\n\n const _day = day instanceof DateTime ? day : DateTime.fromISO(day);\n this.internalCurrentDay = _day;\n\n const from = this.getFrom(_day);\n const to = this.getTo(_day);\n\n const params = {\n from: this.sanitizeDate(from),\n to: this.sanitizeDate(to),\n propertyId: this.propertyIdForHierarchy,\n cell: this.config.cell \n } as ContingentDataRequest\n\n this.fetchHierarchy &&\n this.fetchHierarchy(params).then(() => {\n this.contingentData = this.rows ?? [];\n this.leftEdgeDay = from;\n this.rightEdgeDay = to;\n const propName = this.properties?.find((x) => x.propertyId == this.propertyIdForHierarchy)?.name ?? \"\";\n const breadcrumbs = [\n this.$t(\"Contingent\").toString() + \": \" + propName\n ];\n this.setCustomBreadcrumbs &&\n this.setCustomBreadcrumbs(breadcrumbs);\n\n this.window.l = this.config.preload * this.config.cell.w;\n this.$el.scrollTo({ left: this.window.l });\n\n this.calculateOffsets();\n });\n }\n\n mounted() {\n this.setBounds();\n\n const goTo = this.currentDay?.day === DateTime.local().day ? DateTime.local() : this.currentDay ?? DateTime.local();\n\n const from = this.getFrom(goTo);\n const to = this.getTo(goTo);\n\n this.leftEdgeDay = from;\n this.rightEdgeDay = to;\n this.$nextTick(() => this.$el.scrollTo({ left: this.window.l }));\n this.goToDay && this.goToDay(goTo);\n }\n\n toggleExpand(item: ContingentExpandableRow) {\n item.expanded = !item.expanded;\n this.calculateOffsets();\n }\n\n resized() {\n this.setBounds();\n }\n\n dragging = false;\n\n scrolled() {\n if (this.editor && this.editor.menu) {\n this.editor.close();\n }\n }\n\n setBounds() {\n this.window.w = this.$el.clientWidth;\n this.window.h = this.$el.clientHeight;\n\n let cellw = 48;\n switch (this.dateSpan) {\n case \"week\":\n cellw = Math.max(48, Math.floor((this.window.w - LEFT_W) / 7));\n break;\n default:\n cellw = Math.max(48, Math.floor((this.window.w - LEFT_W) / 31));\n break;\n }\n\n if (this.config.cell.w !== cellw) {\n this.$el.scrollLeft = Math.floor(\n (this.window.l / this.config.cell.w) * cellw\n );\n this.config.cell = { ...this.config.cell, w: cellw };\n }\n }\n\n getPriceEditorType() {\n return this.dateSpan === \"week\" ? \"contingentPriceWeek\" : \"contingentPriceMonthYear\";\n }\n\n openPriceEditor(\n rows: ContingentRowIdentifier[],\n event: any\n ) {\n if (!this.editor) return;\n this.editor.open(\n null,\n null,\n rows[0].ratePlan,\n null,\n this.getPriceEditorType(),\n this.orderedSelectDatePeriod[0],\n this.orderedSelectDatePeriod[1],\n { x: event.topLeft.x, y: event.topLeft.y + 48 },\n 0,\n rows,\n false,\n false\n );\n }\n\n selectDatePeriod: DateTime[] = [];\n\n get orderedSelectDatePeriod() {\n return this.selectDatePeriod.sort(\n (a, b) => a.toMillis() - b.toMillis()\n );\n }\n\n // we reference the array of ratePlan rows to find which two are clicked\n // and every row in between is selected\n getSelectedRows() {\n const selectedRows: ContingentRowIdentifier[] = [];\n if(this.ratePlanTrack) {\n const indexes: number[] = [];\n this.ratePlanTrack.filter((x) => x.clicked).forEach((s) => {\n if(this.ratePlanTrack) {\n indexes.push(this.ratePlanTrack?.findIndex((x) => x == s));\n }\n });\n if(indexes.length == 1) {\n indexes.push(indexes[0]);\n }\n for (let index = indexes[0]; index <= indexes[1]; index++) {\n const element = this.ratePlanTrack[index];\n if(element.identifier) {\n selectedRows.push(element.identifier);\n element.clicked = false;\n element.firstClick = null;\n }\n }\n }\n return selectedRows;\n }\n\n checkIfIsSameCell() {\n return this.selectDatePeriod[0].toISODate() == this.selectDatePeriod[1].toISODate()\n && this.selection.row[0].month == this.selection.row[1].month\n && this.selection.row[0].unitType == this.selection.row[1].unitType;\n }\n\n selectFirstClick: any;\n\n select(event: any, ut: ContingentUnitTypeView, m: ContingentMonthView) {\n if(this.selectDatePeriod.length == 0) {\n this.selectFirstClick = event;\n }\n this.selectDatePeriod.push(event.day);\n const field = { month: this.dateSpan == \"week\" ? 0 : m.id, unitType: ut.id};\n this.selection.row.push(field);\n this.selection.selection = [event.day, event.day];\n if(this.selectDatePeriod.length == 2) {\n // two clicks on the same cell means we want to deselect that cell\n if(!this.checkIfIsSameCell()) {\n const selectedRows = this.getSelectedRows();\n const rows = [];\n for (let index = 0; index < selectedRows.length; index++) {\n const element = selectedRows[index];\n rows.push({ month: element.month, unitType: element.unitType });\n }\n this.selection = {\n row: rows,\n selection: [this.orderedSelectDatePeriod[0], this.orderedSelectDatePeriod[1]] \n }\n this.openPriceEditor(\n selectedRows,\n this.selectFirstClick\n );\n }\n else {\n this.selection = { row: [], selection: null }\n }\n this.selectDatePeriod = [];\n }\n }\n\n single(event: any, ut: ContingentUnitTypeView, m: ContingentMonthView) {\n this.selectFirstClick = event;\n this.selectDatePeriod = [event.from, event.to];\n this.selection = {\n row: [{ month: this.dateSpan == \"week\" ? 0 : m.id, unitType: ut.id }],\n selection: [event.from, event.to] \n }\n const selectedRow = this.getPriceRowIdentifier(m, ut);\n this.openPriceEditor(\n [selectedRow],\n this.selectFirstClick\n );\n }\n\n getRowName(r: ContingentMonthView) {\n if(this.language) {\n if(this.dateSpan == \"week\") {\n return this.leftEdgeDay.month == this.rightEdgeDay.month\n ? this.leftEdgeDay.setLocale(this.language).monthLong\n : this.leftEdgeDay.setLocale(this.language).monthLong + \"/\" + this.rightEdgeDay.setLocale(this.language).monthLong;\n }\n return DateTime.fromISO(r.representationDate).setLocale(this.language).monthLong;\n }\n return DateTime.fromISO(r.representationDate).monthLong;\n }\n\n getPriceRowIdentifier(r: ContingentMonthView, ut: ContingentUnitTypeView) {\n return {\n month: this.dateSpan == \"week\" ? 0 : r.id,\n unitType: ut.id,\n ratePlan: this.shownRatePlan(ut) ?? null\n } as ContingentRowIdentifier;\n }\n\n getRowStartDate(r: ContingentMonthView) {\n return DateTime.fromISO(r.unitTypes[0].daysData[0].date);\n }\n getRowEndDate(r: ContingentMonthView) {\n const dateEndIndex = r.unitTypes[0].daysData.length - 1;\n return DateTime.fromISO(r.unitTypes[0].daysData[dateEndIndex].date).endOf(\"day\");\n }\n\n hasAvailability(ut: ContingentUnitTypeView, day: DateTime) {\n return this.occupied(ut, day) != 0 || this.available(ut, day) != 0;\n }\n hasAvailiabilityTotalRow(r: ContingentMonthView, day: DateTime) {\n return this.totalOccupied(r, day) != 0 || this.totalAvailable(r, day) != 0;\n }\n\n occupied(ut: ContingentUnitTypeView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n return ut.daysData.find(d => d.date.substring(8, 10) === ds)?.occupied;\n }\n totalOccupied(r: ContingentMonthView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n const totalOccupied = this.contingentData.find((x) => x.id == r.id)?.unitTypes\n .reduce(\n (occ, x) =>\n occ + (x.daysData.find((d) => d.date.substring(8, 10) == ds)?.occupied ?? 0),\n 0\n ) ?? 0;\n return totalOccupied;\n }\n\n available(ut: ContingentUnitTypeView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n return ut.daysData.find(d => d.date.substring(8, 10) === ds)?.available;\n }\n totalAvailable(r: ContingentMonthView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n const totalAvailable = this.contingentData.find((x) => x.id == r.id)?.unitTypes\n .reduce(\n (av, x) =>\n av + (x.daysData.find((d) => d.date.substring(8, 10) == ds)?.available ?? 0),\n 0\n ) ?? 0;\n return totalAvailable;\n }\n\n occupancyPercentage(ut: ContingentUnitTypeView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n return ut.daysData.find(d => d.date.substring(8, 10) === ds)?.occupancyPercentage;\n }\n averageOccupancyPercentage(r: ContingentMonthView, day: DateTime)\n {\n const occ = this.totalOccupied(r, day);\n const av = this.totalAvailable(r, day);\n const total = av + occ;\n return occ / total;\n }\n\n shownRatePlan(ut: ContingentUnitTypeView) {\n return ut.ratePlans.find((x) => x.id == this.currentSettings?.selectedRatePlanId);\n }\n\n price(rp: ContingentRatePlanView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n\n const item = rp.ratePlanData.find(d => d.date.substring(8, 10) === ds);\n\n const price = item?.initializedOnly ? undefined : item?.price;\n\n return price != undefined ? this.$n(price, { maximumFractionDigits: 0 }) : \"\";\n }\n\n priceDifference(rp: ContingentRatePlanView, day: DateTime)\n {\n const ds = day.toISODate().substring(8, 10);\n const item = rp.ratePlanData.find(d => d.date.substring(8, 10) === ds);\n\n return item?.initializedOnly ? undefined : item?.basePriceDifference;\n }\n\n demandChangingEvent(ut: ContingentUnitTypeView, day: DateTime) {\n const ds = day.toISODate().substring(8, 10);\n const demandData = ut.daysData.find(d => d.date.substring(8, 10) === ds)?.demandData;\n\n if(demandData){\n const highestDemand = Math.max(...demandData.map((d) => d.statusId));\n const statusName = this.demandEventStatuses?.find((s) => s.id == highestDemand)?.name ?? \"\";\n return \"event-status-\" + statusName.toLowerCase();\n }\n return '';\n }\n\n calculateOffsets() {\n let offset = 0;\n for (const r of this.contingentData) {\n r.height = r.h(\n this.config.cell,\n this.ratePlanId,\n this.currentSettings?.showPrice ?? false,\n );\n r.offset = offset;\n offset += r.height;\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentBox.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContingentBox.vue?vue&type=template&id=e53dd9d6&scoped=true&\"\nimport script from \"./ContingentBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContingentBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContingentBox.vue?vue&type=style&index=0&id=e53dd9d6&scoped=true&lang=scss&\"\nimport style1 from \"./ContingentBox.vue?vue&type=style&index=1&lang=scss&\"\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 \"e53dd9d6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VFadeTransition,VIcon,VOverlay,VProgressCircular,VSpacer,VToolbar})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\nimport Scroll from 'vuetify/lib/directives/scroll'\ninstallDirectives(component, {Resize,Scroll})\n","\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport ContingentBox from \"@/components/contingent/ContingentBox.vue\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport { Action, Getter } from \"vuex-class\";\nimport { NavigationGuardNext, Route } from \"vue-router\";\n\n@Component({\n components: { ContingentBox },\n mixins: [GlobalFilterSensitiveMixin],\n beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n const self = this as any;\n self.setCustomBreadcrumbs(undefined);\n next();\n }\n})\nexport default class Contingent extends Vue {\n breadcrumbs: string[] = [];\n\n @Action(\"setCustomBreadcrumbs\") setCustomBreadcrumbs?: (\n payload: string[] | undefined\n ) => Promise;\n @Getter(\"customBreadcrumbs\") customBreadcrumbs?: string[];\n}\n","import { AddOnServiceViewModel } from '@/shared/models/addOnService';\nimport { AgencyFeesPropertyModel } from '@/shared/models/agencyFee';\nimport { AmenityModel } from '@/shared/models/amenities';\nimport { OfficialRatesExportType } from '@/shared/models/enums.type';\nimport { isNumber } from 'lodash/fp';\n\nexport class PropertyFormModel {\n id = 0;\n name = \"\";\n typeId = 0;\n categoryId = 1;\n keyPickupLocationStreetName = \"\";\n keyPickupLocationHouseNumber = \"\";\n keyPickupLocationPostalCodeId: number | null = null;\n keyPickupLocationCityId: number | null = null;\n keyPickupLocationLatitude: number | null = null;\n keyPickupLocationLongitude: number | null = null;\n streetName = \"\";\n houseNumber = \"\";\n postalCodeId: number | null = null;\n cityId: number | null = null;\n countryId = 1;\n latitude: number | null = null;\n longitude: number | null = null;\n ownerId: number | null = null;\n propertyManagerId: number | null = null;\n pricingModelId = 2; // ? https://dev.azure.com/infranet/Development/_sprints/taskboard/Development%20Team/Development/Sprint%2041?workitem=2624\n smokingAllowed = false;\n petsAllowed = false;\n childrenAllowed = true;\n partiesAllowed = false;\n checkInTimeFrom = \"\";\n checkInTimeUntil = \"\";\n checkOutTimeFrom = \"\";\n checkOutTimeUntil = \"\";\n quietTime1From: string | null = null;\n quietTime1Until: string | null = null;\n quietTime2From: string | null = null;\n quietTime2Until: string | null = null;\n cutOffTime: string | null = null;\n cutOffDays: number | null = null;\n acceptsOnlyCash = false;\n paysVat = false;\n paysCityTax = false;\n sortOrderOnBookingEngine = 1;\n ownerPriceOffset = 0;\n webUrl = \"\";\n updateReservations = false; // used if user changes agency fee amount on property 'owner' page and decides to save property - it will update future reservations with the selected agency fees\n\n ownerDoesCleaning = false;\n ownerDoesCheckin = false;\n ownerDoesCheckout = false;\n ownerPricingModelId: number | null = null;\n ownerPayoutPercent: number | null = null;\n\n agencyWorkModelId: number | null = null;\n vatCategoryForPrepaymentsId: number | null = null;\n agencyCommissionPercentForPrepayments: number | null = 0;\n\n categorizationClass: string | null = null;\n categorizationNumber: string | null = null;\n categorizationDate?: Date;\n\n defaultBusinessUnitId: number | null = null;\n\n addOnServices: AddOnServiceViewModel[] = [];\n poiIds: number[] = [];\n cardTypeIds: number[] = [];\n languageIds: number[] = [];\n amenities: AmenityModel[] = [];\n agencyFeesProperty: AgencyFeesPropertyModel[] = [];\n\n get location() {\n const res = { lat: this.latitude, lng: this.longitude };\n return isNumber(res.lat) && isNumber(res.lng) ? res as LatLng : null;\n }\n\n set location(val: LatLng | null) {\n if (val) {\n this.latitude = val.lat;\n this.longitude = val.lng;\n } else {\n this.latitude = null;\n this.longitude = null;\n }\n }\n \n get keyPickupLocation() {\n const res = { lat: this.keyPickupLocationLatitude, lng: this.keyPickupLocationLongitude };\n return isNumber(res.lat) && isNumber(res.lng) ? res as LatLng : null;\n }\n\n set keyPickupLocation(val: LatLng | null) {\n if (val) {\n this.keyPickupLocationLatitude = val.lat;\n this.keyPickupLocationLongitude = val.lng;\n } else {\n this.keyPickupLocationLatitude = null;\n this.keyPickupLocationLongitude = null;\n }\n }\n}\n\nexport type LatLng = {\n lat: number;\n lng: number;\n};\n\nexport class PropertyDescriptionModel {\n id = 0;\n propertyId = 0;\n cultureCode = \"hr\";\n propertyDescription = \"\";\n shortPropertyDescription = \"\";\n areaDescription = \"\";\n activitiesDescription = \"\";\n arrivalInstructions = \"\";\n houseRulesDescription = \"\";\n policiesDescription = \"\";\n\n constructor(propertyId: number) {\n this.propertyId = propertyId;\n }\n}\n\nexport class PropertyPoiModel {\n id = 0;\n propertyId = 0;\n name = \"\";\n\n poiTypeId: number | null = null;\n distanceInMeters: number | null = null;\n walkingTimeInMinutes: number | null = null;\n drivingDistanceInMinutes: number | null = null;\n\n constructor(propertyId: number) {\n this.propertyId = propertyId;\n }\n}\n\nexport class PropertyOtaModel {\n propertyId = 0;\n otaId = 0;\n otaName = '';\n statusId: number | null = null;\n\n commissionPercent = 0;\n ownerPaysOTACommission = false;\n paymentCollectByOTA = false;\n paymentCollectCommission = 0;\n ratePlanId: number | null = null;\n accomodationUnitTypeId: number | null = null;\n\n constructor(propertyId: number) {\n this.propertyId = propertyId;\n }\n}\n\nexport enum PropertyOtaStatusEnum {\n ActivationPending = 1,\n Active = 2,\n DeactivationPending = 3,\n Deactivated = 4\n}\n\nexport class AccomodationUnitForOTASetupModel {\n id = 0;\n name = \"\";\n kroatiDeId = 0 as number | null;\n}\n\nexport class AccomodationUnitTypeForOTASetupModel {\n id = 0;\n name = \"\";\n atraveoId = \"\";\n}\n\nexport class KroatiDeSyncResult {\n isSuccess = true;\n errors = [] as KroatiDeSyncValidationModel[];\n}\n\nexport class KroatiDeSyncValidationModel {\n unitTypeName = \"\";\n officialRateName = \"\";\n errorTextResourceKey = \"\";\n}\n\nexport class AccomodationUnitTypeUnitOwners {\n id = 0;\n fullName = \"\";\n}\n\nexport class OwnersAddOnServices {\n id = 0;\n name = \"\";\n}\n\nexport class OfficialRateExportForOwners {\n propertyId = 0 as number | undefined;\n accUnitTypeId = 0 as number | undefined;\n ownerIds = \"\";\n ownerAddOnServiceIds = \"\";\n languageCode = \"\";\n specialNote = \"\";\n saveSpecialNote = true;\n isLandscape = true;\n exportType = 0 as OfficialRatesExportType;\n year = 0;\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contingent.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contingent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Contingent.vue?vue&type=template&id=4b9df0de&scoped=true&\"\nimport script from \"./Contingent.vue?vue&type=script&lang=ts&\"\nexport * from \"./Contingent.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 \"4b9df0de\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-wrapper\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : ''},[_c('PropertyForm',{ref:\"propertyForm\",attrs:{\"disable\":_vm.submitting,\"add\":_vm.id === 0,\"tab\":_vm.tab},on:{\"update:disable\":function($event){_vm.submitting=$event},\"update:tab\":function($event){_vm.tab=$event},\"submit\":_vm.submit,\"serviceAdded\":_vm.serviceAdded},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"rootForm\",staticClass:\"property-form\",attrs:{\"disabled\":_vm.internalDisable,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.form),callback:function ($$v) {_vm.form=$$v},expression:\"form\"}},[_c('v-tabs',{model:{value:(_vm.internalTab),callback:function ($$v) {_vm.internalTab=$$v},expression:\"internalTab\"}},[_c('v-tab',{class:{ 'red--text': !_vm.form && _vm.internalTab != 'details' },attrs:{\"href\":\"#details\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Details\")))]),(_vm.tenantTypeId === 2 && _vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#owner\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"Property.Owner\")))])],1)]}}],null,false,961379488)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_vm._e(),(_vm.tenantTypeId === 2 && !_vm.internalAdd)?_c('v-tab',{class:{ 'red--text': !_vm.ownerForm && _vm.internalTab != 'owner' },attrs:{\"href\":\"#owner\"}},[_vm._v(_vm._s(_vm.$t(\"Property.Owner\"))+\" \")]):_vm._e(),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#amenities\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"Property.Amenities\")))])],1)]}}],null,false,3175354144)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#amenities\"}},[_vm._v(_vm._s(_vm.$t(\"Property.Amenities\")))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#addOnServices\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.AddOnServices\")))])],1)]}}],null,false,50309135)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#addOnServices\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.AddOnServices\")))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#descriptions\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Descriptions\")))])],1)]}}],null,false,3116132719)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#descriptions\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Descriptions\")))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#photos\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Photos\")))])],1)]}}],null,false,2640752175)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#photos\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Photos\")))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#pois\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Pois\")))])],1)]}}],null,false,469033263)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#pois\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Pois\")))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#otas\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Otas\")))])],1)]}}],null,false,1682375151)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#otas\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.Otas\")))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#eVisitorFacility\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.eVisitorFacility\", { eVisitorServiceName: _vm.eVisitorIntegrationName, })))])],1)]}}],null,false,2945690256)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#eVisitorFacility\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.eVisitorFacility\", { eVisitorServiceName: _vm.eVisitorIntegrationName, })))]),(_vm.internalAdd)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#accommodationUnitTypes\",\"disabled\":_vm.internalAdd}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.AccomodationUnitTypes\")))])],1)]}}],null,false,658658338)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#accommodationUnitTypes\"}},[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Tab.AccomodationUnitTypes\")))])],1),_c('v-tabs-items',{staticClass:\"property-tab-items\",attrs:{\"value\":_vm.internalTab}},[_c('v-tab-item',{attrs:{\"value\":\"details\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('v-card',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Section.Basic\"))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Property.Name') + '*',\"rules\":[_vm.required, _vm.maxLength(100)],\"counter\":\"100\"},model:{value:(_vm.property.name),callback:function ($$v) {_vm.$set(_vm.property, \"name\", $$v)},expression:\"property.name\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.Type') + '*',\"item-value\":\"value\",\"item-text\":\"name\",\"items\":_vm.sortedPropertyTypes,\"rules\":[_vm.required]},model:{value:(_vm.property.typeId),callback:function ($$v) {_vm.$set(_vm.property, \"typeId\", $$v)},expression:\"property.typeId\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('RatingInput',{attrs:{\"label\":_vm.$t('AccomodationUnitType.Category')},model:{value:(_vm.category),callback:function ($$v) {_vm.category=$$v},expression:\"category\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.Languages'),\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"multiple\":\"\",\"chips\":\"\",\"deletable-chips\":\"\",\"small-chips\":\"\"},model:{value:(_vm.property.languageIds),callback:function ($$v) {_vm.$set(_vm.property, \"languageIds\", $$v)},expression:\"property.languageIds\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('Property.SortOrderOnBookingEngine'),\"rules\":[_vm.required]},model:{value:(_vm.property.sortOrderOnBookingEngine),callback:function ($$v) {_vm.$set(_vm.property, \"sortOrderOnBookingEngine\", _vm._n($$v))},expression:\"property.sortOrderOnBookingEngine\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('WebUrl'),\"rules\":[_vm.maxLength(2048)]},model:{value:(_vm.property.webUrl),callback:function ($$v) {_vm.$set(_vm.property, \"webUrl\", $$v)},expression:\"property.webUrl\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.Location\")))]),_c('LocationInput',{attrs:{\"marker\":_vm.property.location,\"hasCountry\":true,\"countryId\":_vm.property.countryId,\"postalId\":_vm.property.postalCodeId,\"cityId\":_vm.property.cityId,\"streetName\":_vm.property.streetName,\"houseNumber\":_vm.property.houseNumber},on:{\"update:marker\":function($event){return _vm.$set(_vm.property, \"location\", $event)},\"update:countryId\":function($event){return _vm.$set(_vm.property, \"countryId\", $event)},\"update:country-id\":function($event){return _vm.$set(_vm.property, \"countryId\", $event)},\"update:postalId\":function($event){return _vm.$set(_vm.property, \"postalCodeId\", $event)},\"update:postal-id\":function($event){return _vm.$set(_vm.property, \"postalCodeId\", $event)},\"update:cityId\":function($event){return _vm.$set(_vm.property, \"cityId\", $event)},\"update:city-id\":function($event){return _vm.$set(_vm.property, \"cityId\", $event)},\"update:streetName\":function($event){return _vm.$set(_vm.property, \"streetName\", $event)},\"update:street-name\":function($event){return _vm.$set(_vm.property, \"streetName\", $event)},\"update:houseNumber\":function($event){return _vm.$set(_vm.property, \"houseNumber\", $event)},\"update:house-number\":function($event){return _vm.$set(_vm.property, \"houseNumber\", $event)}}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"PropertyForm.KeyPickupLocation\")))]),_c('v-checkbox',{attrs:{\"label\":_vm.$t('PropertyForm.KeyPickupLocation.UseLocation')},model:{value:(_vm.useLocationAsKeyPickup),callback:function ($$v) {_vm.useLocationAsKeyPickup=$$v},expression:\"useLocationAsKeyPickup\"}}),(!_vm.useLocationAsKeyPickup)?_c('LocationInput',{attrs:{\"readonly\":_vm.useLocationAsKeyPickup,\"marker\":_vm.property.keyPickupLocation,\"hasCountry\":false,\"countryId\":_vm.property.countryId,\"postalId\":_vm.property.keyPickupLocationPostalCodeId,\"cityId\":_vm.property.keyPickupLocationCityId,\"streetName\":_vm.property.keyPickupLocationStreetName,\"houseNumber\":_vm.property.keyPickupLocationHouseNumber},on:{\"update:marker\":function($event){return _vm.$set(_vm.property, \"keyPickupLocation\", $event)},\"update:countryId\":function($event){return _vm.$set(_vm.property, \"countryId\", $event)},\"update:country-id\":function($event){return _vm.$set(_vm.property, \"countryId\", $event)},\"update:postalId\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationPostalCodeId\", $event)},\"update:postal-id\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationPostalCodeId\", $event)},\"update:cityId\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationCityId\", $event)},\"update:city-id\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationCityId\", $event)},\"update:streetName\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationStreetName\", $event)},\"update:street-name\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationStreetName\", $event)},\"update:houseNumber\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationHouseNumber\", $event)},\"update:house-number\":function($event){return _vm.$set(_vm.property, \"keyPickupLocationHouseNumber\", $event)}}}):_vm._e()],1)],1),_c('v-row',[_c('v-divider')],1),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Section.Financial\"))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.PaysCityTax')},model:{value:(_vm.property.paysCityTax),callback:function ($$v) {_vm.$set(_vm.property, \"paysCityTax\", $$v)},expression:\"property.paysCityTax\"}})],1),(_vm.tenantUsesPropertiesAsBusinessUnits)?_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Property.DefaultBusinessUnit'),\"items\":_vm.availableBusinessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"clearable\":\"\"},model:{value:(_vm.property.defaultBusinessUnitId),callback:function ($$v) {_vm.$set(_vm.property, \"defaultBusinessUnitId\", $$v)},expression:\"property.defaultBusinessUnitId\"}})],1):_vm._e(),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.PricingModel') + '*',\"items\":_vm.pricingModels,\"item-value\":\"id\",\"item-text\":\"name\",\"rules\":[_vm.required],\"readonly\":\"\"},model:{value:(_vm.property.pricingModelId),callback:function ($$v) {_vm.$set(_vm.property, \"pricingModelId\", $$v)},expression:\"property.pricingModelId\"}})],1)],1),_c('v-row',[_c('v-divider')],1),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Section.HouseRules\"))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.SmokingAllowed')},model:{value:(_vm.property.smokingAllowed),callback:function ($$v) {_vm.$set(_vm.property, \"smokingAllowed\", $$v)},expression:\"property.smokingAllowed\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.PetsAllowed')},model:{value:(_vm.property.petsAllowed),callback:function ($$v) {_vm.$set(_vm.property, \"petsAllowed\", $$v)},expression:\"property.petsAllowed\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.ChildrenAllowed')},model:{value:(_vm.property.childrenAllowed),callback:function ($$v) {_vm.$set(_vm.property, \"childrenAllowed\", $$v)},expression:\"property.childrenAllowed\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.PartiesAllowed')},model:{value:(_vm.property.partiesAllowed),callback:function ($$v) {_vm.$set(_vm.property, \"partiesAllowed\", $$v)},expression:\"property.partiesAllowed\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex align-baseline\",attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('TimeInput',{attrs:{\"required\":true,\"from\":_vm.property.checkInTimeFrom,\"to\":_vm.property.checkInTimeUntil,\"label\":_vm.$t('Property.CheckInTime') + '*'},on:{\"update:from\":function($event){return _vm.$set(_vm.property, \"checkInTimeFrom\", $event)},\"update:to\":function($event){return _vm.$set(_vm.property, \"checkInTimeUntil\", $event)}}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('TimeInput',{attrs:{\"required\":true,\"from\":_vm.property.checkOutTimeFrom,\"to\":_vm.property.checkOutTimeUntil,\"label\":_vm.$t('Property.CheckOutTime') + '*'},on:{\"update:from\":function($event){return _vm.$set(_vm.property, \"checkOutTimeFrom\", $event)},\"update:to\":function($event){return _vm.$set(_vm.property, \"checkOutTimeUntil\", $event)}}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('TimeInput',{attrs:{\"from\":_vm.property.quietTime1From,\"to\":_vm.property.quietTime1Until,\"label\":_vm.$t('Property.QuietTime1')},on:{\"update:from\":function($event){return _vm.$set(_vm.property, \"quietTime1From\", $event)},\"update:to\":function($event){return _vm.$set(_vm.property, \"quietTime1Until\", $event)}}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('TimeInput',{attrs:{\"from\":_vm.property.quietTime2From,\"to\":_vm.property.quietTime2Until,\"label\":_vm.$t('Property.QuietTime2')},on:{\"update:from\":function($event){return _vm.$set(_vm.property, \"quietTime2From\", $event)},\"update:to\":function($event){return _vm.$set(_vm.property, \"quietTime2Until\", $event)}}})],1)],1),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Section.CutOffTime\"))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('TimeInput',{attrs:{\"from\":_vm.property.cutOffTime,\"singleValue\":true,\"label\":_vm.$t('Property.CutOffTime') +\n (_vm.cutOffDaysHasValue ? '*' : ''),\"required\":_vm.cutOffDaysHasValue},on:{\"update:from\":function($event){return _vm.$set(_vm.property, \"cutOffTime\", $event)}}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('Property.CutOffDays') +\n (_vm.property.cutOffTime ? '*' : ''),\"rules\":[\n _vm.property.cutOffTime\n ? _vm.requiredWith0Allowed(_vm.property.cutOffDays)\n : null,\n _vm.mustBePositiveEmptyOrZero(_vm.property.cutOffDays) ],\"outlined\":false,\"decimalPlaces\":0,\"validateInput\":true},model:{value:(_vm.property.cutOffDays),callback:function ($$v) {_vm.$set(_vm.property, \"cutOffDays\", _vm._n($$v))},expression:\"property.cutOffDays\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Section.CutOffTime.Description\"))+\" \")])],1)],1)],1)],1)],1)],1)],1)],1),(_vm.tenantTypeId === 2)?_c('v-tab-item',{attrs:{\"value\":\"owner\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"ownerFormRef\",staticClass:\"form-container\",model:{value:(_vm.ownerForm),callback:function ($$v) {_vm.ownerForm=$$v},expression:\"ownerForm\"}},[_c('v-card',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('PropertyOwner',{attrs:{\"labelType\":\"propertyOwner\",\"showCustomerData\":_vm.property.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OtherNameAndOtherInvoice,\"isActive\":_vm.propertyOwnerFormActive,\"isForOwner\":true},on:{\"clear\":_vm.removeWorkModelAndCategorizationInfo,\"update:isActive\":function($event){_vm.propertyOwnerFormActive=$event},\"update:is-active\":function($event){_vm.propertyOwnerFormActive=$event}},model:{value:(_vm.property.ownerId),callback:function ($$v) {_vm.$set(_vm.property, \"ownerId\", $$v)},expression:\"property.ownerId\"}}),_c('PropertyOwner',{attrs:{\"labelType\":\"propertyManager\",\"isActive\":_vm.propertyManagerFormActive,\"isForPropertyManager\":true},on:{\"update:isActive\":function($event){_vm.propertyManagerFormActive=$event},\"update:is-active\":function($event){_vm.propertyManagerFormActive=$event}},model:{value:(_vm.property.propertyManagerId),callback:function ($$v) {_vm.$set(_vm.property, \"propertyManagerId\", $$v)},expression:\"property.propertyManagerId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.OwnerDoesCleaning')},model:{value:(_vm.property.ownerDoesCleaning),callback:function ($$v) {_vm.$set(_vm.property, \"ownerDoesCleaning\", $$v)},expression:\"property.ownerDoesCleaning\"}})],1),_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.OwnerDoesCheckin')},model:{value:(_vm.property.ownerDoesCheckin),callback:function ($$v) {_vm.$set(_vm.property, \"ownerDoesCheckin\", $$v)},expression:\"property.ownerDoesCheckin\"}})],1),_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.OwnerDoesCheckout')},model:{value:(_vm.property.ownerDoesCheckout),callback:function ($$v) {_vm.$set(_vm.property, \"ownerDoesCheckout\", $$v)},expression:\"property.ownerDoesCheckout\"}})],1)],1),_c('v-subheader',{staticClass:\"px-0\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"CategorizationDecision\"))+\" \")]),_c('v-card-text',{staticClass:\"px-0\"},[(_vm.property.ownerId)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CategorizationClass'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.property.categorizationClass),callback:function ($$v) {_vm.$set(_vm.property, \"categorizationClass\", $$v)},expression:\"property.categorizationClass\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CategorizationNumber'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.property.categorizationNumber),callback:function ($$v) {_vm.$set(_vm.property, \"categorizationNumber\", $$v)},expression:\"property.categorizationNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('CategorizationDate'),\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.property.categorizationDate),callback:function ($$v) {_vm.$set(_vm.property, \"categorizationDate\", $$v)},expression:\"property.categorizationDate\"}})],1)],1):_vm._e()],1)],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{class:_vm.showOwnerPriceOffset ? 'pt-0' : '',attrs:{\"label\":_vm.$t('Property.AgencyWorkModel') +\n (!!_vm.property.ownerId ? '*' : ''),\"hide-details\":_vm.showOwnerPriceOffset,\"items\":_vm.internalAgencyWorkModels,\"item-disabled\":\"disabled\",\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"clearable\":\"\",\"rules\":!!_vm.property.ownerId ? [_vm.required] : []},model:{value:(_vm.property.agencyWorkModelId),callback:function ($$v) {_vm.$set(_vm.property, \"agencyWorkModelId\", $$v)},expression:\"property.agencyWorkModelId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[(\n _vm.property.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OwnNameAndOtherInvoice\n )?_c('v-select',{class:_vm.showOwnerPriceOffset ? 'mt-0 pt-2' : 'pt-0',attrs:{\"label\":_vm.$t('Property.VATCategoryForPrepayments') + '*',\"items\":_vm.vatCategoriesForPrepayments,\"item-value\":\"id\",\"item-text\":function (name) { return _vm.$t(name.textResourceKey); },\"rules\":!!_vm.property.agencyWorkModelId ? [_vm.required] : []},model:{value:(_vm.property.vatCategoryForPrepaymentsId),callback:function ($$v) {_vm.$set(_vm.property, \"vatCategoryForPrepaymentsId\", $$v)},expression:\"property.vatCategoryForPrepaymentsId\"}}):_vm._e()],1),(\n _vm.tenantHasAgencyCommissionForPrepayments &&\n _vm.property.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OwnNameAndOtherInvoice\n )?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Agency commission on prepayments') + '*',\"suffix\":'%',\"validateInput\":true,\"rules\":[\n _vm.requiredWith0Allowed(\n _vm.property.agencyCommissionPercentForPrepayments\n ),\n _vm.mustBePositive(\n _vm.property.agencyCommissionPercentForPrepayments\n ),\n _vm.maxValue(100)(\n _vm.property.agencyCommissionPercentForPrepayments\n ) ]},model:{value:(\n _vm.property.agencyCommissionPercentForPrepayments\n ),callback:function ($$v) {_vm.$set(_vm.property, \"agencyCommissionPercentForPrepayments\", $$v)},expression:\"\\n property.agencyCommissionPercentForPrepayments\\n \"}})],1):_vm._e(),(_vm.showOwnerPriceOffset)?_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Owner price offset'),\"suffix\":'%',\"validateInput\":true,\"rules\":[_vm.requiredWith0Allowed]},model:{value:(_vm.property.ownerPriceOffset),callback:function ($$v) {_vm.$set(_vm.property, \"ownerPriceOffset\", $$v)},expression:\"property.ownerPriceOffset\"}})],1):_vm._e()],1),(_vm.tenantUsesInputPrice)?_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.ownerPricingModels,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"label\":_vm.$t('Property.InputPriceFormingModel') + '*',\"item-value\":\"id\",\"rules\":[_vm.required]},model:{value:(_vm.property.ownerPricingModelId),callback:function ($$v) {_vm.$set(_vm.property, \"ownerPricingModelId\", $$v)},expression:\"property.ownerPricingModelId\"}})],1),(_vm.property.ownerPricingModelId === 3)?_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Property.OwnerPayoutPercent') + '*',\"suffix\":'%',\"validateInput\":true,\"rules\":[_vm.required],\"minValue\":{value: 0, isExclusive: true},\"maxValue\":{value: 100, isExclusive: false}},model:{value:(_vm.property.ownerPayoutPercent),callback:function ($$v) {_vm.$set(_vm.property, \"ownerPayoutPercent\", $$v)},expression:\"property.ownerPayoutPercent\"}})],1):_vm._e()],1):_vm._e(),(_vm.tenantUsesAgencyFees)?_c('v-row',[_c('div',[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"AgencyFees\"))+\" \")]),(_vm.agencyFees.length !== 0)?_c('v-data-table',{attrs:{\"headers\":_vm.translatedAgencyFeeHeaders,\"items\":_vm.agencyFees,\"item-key\":\"agencyFeeId\",\"sort-by\":\"name\",\"must-sort\":\"\",\"footer-props\":{\n 'items-per-page-options': [5, 15, 30],\n },\"fixed-header\":\"\",\"height\":\"100%\"},scopedSlots:_vm._u([{key:\"item.price\",fn:function(ref){\n var item = ref.item;\nreturn [(item.priceIsAbsolute)?_c('NumericInputImproved',{attrs:{\"validateInput\":true,\"suffix\":_vm.getCurrencyCode(item.currencyId)},on:{\"change\":function($event){_vm.agencyFeePriceManuallyChanged = true}},model:{value:(item.price),callback:function ($$v) {_vm.$set(item, \"price\", $$v)},expression:\"item.price\"}}):_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"%\"},on:{\"change\":function($event){_vm.agencyFeePriceManuallyChanged = true}},model:{value:(item.price),callback:function ($$v) {_vm.$set(item, \"price\", _vm._n($$v))},expression:\"item.price\"}})]}},{key:\"item.calculationMethodId\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.getPriceCalculationMethodText( item.calculationMethodId ))+\" \")])]}},{key:\"header.actions\",fn:function(){return undefined},proxy:true},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.deleteAgencyFee(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)]}}],null,false,754154943),model:{value:(_vm.selectedAgencyFees),callback:function ($$v) {_vm.selectedAgencyFees=$$v},expression:\"selectedAgencyFees\"}}):_vm._e(),_c('div',{staticClass:\"d-flex justify-left align-items-center\"},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"color\":\"blue\",\"fab\":\"\"},on:{\"click\":function($event){_vm.addAgencyFeesOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),(_vm.agencyFees.length === 0)?_c('form-description',{staticClass:\"form-description ml-6\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Property.AgencyFee.Add\"))+\" \")]):_vm._e()],1)],1)]):_vm._e()],1)],1)],1)],1)],1)],1)],1):_vm._e(),_c('v-tab-item',{attrs:{\"value\":\"amenities\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('AmenitiesSelection',{attrs:{\"ids\":_vm.property.amenities,\"filter\":function (a) { return a.isPropertyLevelAmenity; }},on:{\"update:ids\":function($event){return _vm.$set(_vm.property, \"amenities\", $event)}}})],1)],1)],1)],1),_c('v-tab-item',{attrs:{\"value\":\"addOnServices\",\"eager\":\"\"}},[_c('AddOnServicesTable',{attrs:{\"services\":_vm.property.addOnServices,\"disabled\":_vm.internalDisable,\"automaticallySetServices\":!_vm.property.id,\"translateID\":'PropertyForm.AddOnServices.Description',\"propertyId\":_vm.property.id},on:{\"update:services\":function($event){return _vm.$set(_vm.property, \"addOnServices\", $event)},\"serviceAdded\":function($event){return _vm.$emit('serviceAdded')}}})],1),_c('v-tab-item',{attrs:{\"value\":\"descriptions\"}},[_c('DescriptionsTiles',{attrs:{\"propertyId\":_vm.property.id}})],1),_c('v-tab-item',{attrs:{\"value\":\"accommodationUnitTypes\"}},[_c('AccomodationUnitTypeTiles',{attrs:{\"propertyId\":_vm.property.id,\"propertyCategoryId\":_vm.property.categoryId}})],1),_c('v-tab-item',{attrs:{\"value\":\"photos\"}},[(_vm.property.id)?_c('PhotoEditor',{attrs:{\"endpoint\":(\"Properties/\" + (_vm.property.id) + \"/photos\"),\"descriptionTextResource\":'PropertyForm.Photos.Description'}}):_vm._e()],1),_c('v-tab-item',{attrs:{\"value\":\"pois\"}},[_c('PoisTiles',{attrs:{\"propertyId\":_vm.property.id}})],1),_c('v-tab-item',{attrs:{\"value\":\"otas\"}},[_c('Otas',{ref:\"otasRef\",attrs:{\"propertyId\":_vm.property.id,\"propertyName\":_vm.property.name}})],1),_c('v-tab-item',{attrs:{\"value\":\"eVisitorFacility\"}},[_c('EVisitorFacilitiesTable',{attrs:{\"disabled\":_vm.internalDisable,\"propertyId\":_vm.property.id}})],1)],1),_c('v-spacer'),_c('v-sheet',{staticClass:\"property-form-footer\"},[_c('v-slide-x-transition',{attrs:{\"group\":\"\"}},[_c('v-btn',{key:\"save\",staticClass:\"ma-2\",attrs:{\"type\":\"submit\",\"disabled\":_vm.internalDisable,\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),(_vm.tab === 'otas')?_c('div',{key:\"otasIframe\",staticClass:\"d-inline-block\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.otasRef.openOtasIframe()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.ChannexMapping\"))+\" \")])],1):_vm._e(),(_vm.tab === 'otas')?_c('div',{key:\"sync\",staticClass:\"d-inline-block\"},[_c('RequireRole',{attrs:{\"policy\":\"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\"}},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"disabled\":!_vm.form || _vm.internalDisable,\"color\":\"primary\",\"loading\":_vm.fullSyncLoading},on:{\"click\":function($event){return _vm.fullSync()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FullSyncWithOtaChannels\"))+\" \")])],1)],1):_vm._e()],1),(_vm.tenantUsesOfficialRates && _vm.tenantUsesInputPrice)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"disabled\":!(_vm.property.ownerId && _vm.property.id != 0)},on:{\"click\":function($event){_vm.exportOfficialRatesForOwnerOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reports.OfficialRate.ExportForOwner\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1),_c('v-dialog',{attrs:{\"max-width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.generateOwnerContractOpen),callback:function ($$v) {_vm.generateOwnerContractOpen=$$v},expression:\"generateOwnerContractOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"GenerateOwnerContract.ChooseDocument\")))]),_c('v-card-text',[_c('v-select',{attrs:{\"label\":_vm.$t('OwnerContractExportTypesPicker') + '*',\"items\":_vm.ownerContractExportTypes,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.value; },\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.ownerContractExportType),callback:function ($$v) {_vm.ownerContractExportType=$$v},expression:\"ownerContractExportType\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.loading || !_vm.ownerContractExportType},on:{\"click\":function($event){return _vm.submitOwnerContractGeneration()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Generate\"))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.generateOwnerContractOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\",\"persistent\":\"\"},model:{value:(_vm.addAgencyFeesOpen),callback:function ($$v) {_vm.addAgencyFeesOpen=$$v},expression:\"addAgencyFeesOpen\"}},[_c('PropertyFormAgencyFeeSelection',{attrs:{\"open\":_vm.addAgencyFeesOpen,\"selectedAgencyFees\":_vm.agencyFees,\"propertyId\":_vm.property.id},on:{\"update:open\":function($event){_vm.addAgencyFeesOpen=$event},\"update:selectedAgencyFees\":function($event){_vm.agencyFees=$event},\"update:selected-agency-fees\":function($event){_vm.agencyFees=$event},\"addAgencyFee\":function($event){return _vm.addAgencyFee($event)},\"callback\":_vm.loadAgencyFees}})],1),_c('v-dialog',{attrs:{\"max-width\":\"800\",\"persistent\":\"\"},model:{value:(_vm.exportOfficialRatesForOwnerOpen),callback:function ($$v) {_vm.exportOfficialRatesForOwnerOpen=$$v},expression:\"exportOfficialRatesForOwnerOpen\"}},[_c('OfficialRatesExportForOwners',{attrs:{\"open\":_vm.exportOfficialRatesForOwnerOpen,\"propertyId\":_vm.property.id},on:{\"update:open\":function($event){_vm.exportOfficialRatesForOwnerOpen=$event}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"time-input--wrapper\"},[_c('span',{staticClass:\"time-input--label\"},[_vm._v(_vm._s(_vm.label))]),_c('div',{staticClass:\"d-flex align-baseline\"},[_c('v-select',{attrs:{\"items\":_vm.timeOptions,\"rules\":_vm.rules,\"clearable\":!_vm.required},on:{\"click:clear\":function($event){_vm.selectTo = null}},model:{value:(_vm.selectFrom),callback:function ($$v) {_vm.selectFrom=$$v},expression:\"selectFrom\"}}),(!_vm.singleValue)?_c('span',{staticClass:\"ma-2\"},[_vm._v(\"-\")]):_vm._e(),(!_vm.singleValue)?_c('v-select',{attrs:{\"items\":_vm.timeOptions,\"rules\":_vm.rules,\"clearable\":!_vm.required},on:{\"click:clear\":function($event){_vm.selectFrom = null}},model:{value:(_vm.selectTo),callback:function ($$v) {_vm.selectTo=$$v},expression:\"selectTo\"}}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport _ from \"lodash\";\n\n@Component\nexport default class TimeInput extends Vue {\n @Prop() label?: string;\n @Prop({ default: false }) required?: boolean;\n @PropSync(\"from\") fromInternal?: string | null;\n @PropSync(\"to\") toInternal?: string | null;\n @Prop({ default: false }) singleValue?: boolean;\n\n get rules() {\n return this.required || !!this.selectFrom !== !!this.selectTo\n ? [this.requiredRule]\n : [];\n }\n requiredRule(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n\n timeOptions = Array.from(\n Array(48),\n (v, k) =>\n `${_.padStart(Math.floor(k / 2).toString(), 2, \"0\")}:${\n k % 2 ? \"30\" : \"00\"\n }`\n );\n\n get selectFrom(): string | null {\n return this.fromInternal?.substring(0, 5) ?? null;\n }\n set selectFrom(val: string | null) {\n this.fromInternal = val != null ? val + \":00\" : null;\n }\n get selectTo(): string | null {\n return this.toInternal?.substring(0, 5) ?? null;\n }\n set selectTo(val: string | null) {\n this.toInternal = val != null ? val + \":00\" : null;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeInput.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeInput.vue?vue&type=template&id=54cee43e&scoped=true&\"\nimport script from \"./TimeInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeInput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeInput.vue?vue&type=style&index=0&id=54cee43e&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 \"54cee43e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"10\",\"md\":\"9\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Property.StreetName') + '*',\"rules\":[_vm.required, _vm.maxLength(100)],\"counter\":\"100\",\"readonly\":_vm.readonly},model:{value:(_vm.internalStreetName),callback:function ($$v) {_vm.internalStreetName=$$v},expression:\"internalStreetName\"}})],1),_c('v-col',{attrs:{\"lg\":\"2\",\"md\":\"3\",\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Property.HouseNumber') + '*',\"rules\":[_vm.required, _vm.maxLength(10)],\"counter\":\"10\",\"readonly\":_vm.readonly},model:{value:(_vm.internalHouseNumber),callback:function ($$v) {_vm.internalHouseNumber=$$v},expression:\"internalHouseNumber\"}})],1)],1),(_vm.hasCountry)?_c('DeferredAutocomplete',{attrs:{\"label\":_vm.$t('Property.Country') + '*',\"items\":_vm.countryItems,\"rules\":[_vm.required],\"readonly\":_vm.readonly},model:{value:(_vm.internalCountryId),callback:function ($$v) {_vm.internalCountryId=$$v},expression:\"internalCountryId\"}}):_vm._e(),_c('DeferredAutocompleteWrapper',{attrs:{\"label\":_vm.$t('Property.PostalCode') + '*',\"disabled\":!_vm.internalCountryId,\"fetch\":_vm.postalFetch,\"rules\":[_vm.required],\"readonly\":_vm.readonly},model:{value:(_vm.internalPostalCodeId),callback:function ($$v) {_vm.internalPostalCodeId=$$v},expression:\"internalPostalCodeId\"}}),_c('DeferredAutocompleteWrapper',{attrs:{\"label\":_vm.$t('Property.City') + '*',\"disabled\":!_vm.internalPostalCodeId,\"fetch\":_vm.cityFetch,\"rules\":[_vm.required],\"readonly\":_vm.readonly},model:{value:(_vm.internalCityId),callback:function ($$v) {_vm.internalCityId=$$v},expression:\"internalCityId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"1\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('NumericInput',{attrs:{\"decimalPlaces\":7,\"outlined\":false,\"label\":_vm.$t('t.Latitude')},on:{\"blur\":function($event){return _vm.setMarkerToCoordinates(_vm.coordinates)}},model:{value:(_vm.coordinates.lat),callback:function ($$v) {_vm.$set(_vm.coordinates, \"lat\", $$v)},expression:\"coordinates.lat\"}}),_c('NumericInput',{staticClass:\"mt-4\",attrs:{\"decimalPlaces\":7,\"outlined\":false,\"label\":_vm.$t('t.Longitude')},on:{\"blur\":function($event){return _vm.setMarkerToCoordinates(_vm.coordinates)}},model:{value:(_vm.coordinates.lng),callback:function ($$v) {_vm.$set(_vm.coordinates, \"lng\", $$v)},expression:\"coordinates.lng\"}})],1)],1)],1),_c('v-col',{staticClass:\"d-flex align-center mapWrapper\",attrs:{\"md\":\"5\",\"cols\":\"12\"}},[_c('GmapMap',{ref:\"mapRef\",staticStyle:{\"width\":\"100%\",\"height\":\"280px\"},attrs:{\"center\":_vm.center,\"zoom\":_vm.zoom,\"map-type-id\":\"terrain\"},on:{\"click\":_vm.setMarker}},[(_vm.internalMarker)?_c('GmapMarker',{attrs:{\"position\":_vm.internalMarker,\"clickable\":true,\"draggable\":true},on:{\"click\":_vm.markerClicked,\"dragend\":_vm.setMarker}}):_vm._e()],1),_c('GmapAutocomplete',{staticClass:\"mapInputContainer elevation-2\",class:{ noCountry: !_vm.hasCountry },on:{\"place_changed\":_vm.setPlace},scopedSlots:_vm._u([{key:\"input\",fn:function(slotProps){return [_c('v-text-field',{ref:\"input\",staticClass:\"mapInput\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('Search'),\"background-color\":\"white\"},on:{\"listeners\":slotProps.listeners,\"attrs\":slotProps.attrs}})]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport DeferredAutocomplete from \"@/components/misc/DeferredAutocomplete.vue\";\nimport DeferredAutocompleteWrapper from \"@/components/misc/DeferredAutocompleteWrapper.vue\";\nimport { Country } from \"@/shared/models/country\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { LatLng } from \"./types\";\nimport { DefferedAutocompleteItem } from \"../misc/DeferredAutocomplete.vue\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\n\n@Component({\n components: {\n DeferredAutocomplete,\n DeferredAutocompleteWrapper,\n NumericInput,\n },\n})\nexport default class LocationInput extends Vue {\n @Prop() hasCountry?: boolean;\n @Prop() readonly?: boolean;\n @PropSync(\"marker\", { default: { lat: 0, lng: 0 } as LatLng })\n internalMarker?: LatLng;\n @PropSync(\"countryId\") internalCountryId?: number;\n @PropSync(\"postalId\") internalPostalCodeId?: number | null;\n @PropSync(\"cityId\") internalCityId?: number | null;\n @PropSync(\"streetName\") internalStreetName?: string;\n @PropSync(\"houseNumber\") internalHouseNumber?: string;\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n maxLength(max: number) {\n return (v: string) =>\n v && v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Ref(\"mapRef\") mapRef?: any;\n\n center?: LatLng;\n zoom?: number;\n skipMarkerWatch = false;\n\n get coordinates() {\n return {\n lat: this.internalMarker?.lat ?? undefined,\n lng: this.internalMarker?.lng ?? undefined,\n } as LatLng;\n }\n\n @Watch(\"internalMarker\", { immediate: true })\n markerChanged(fresh: LatLng | null) {\n if (!this.skipMarkerWatch) {\n this.center = fresh ?? { lat: 20, lng: 0 };\n this.zoom = fresh ? 19 : 1;\n this.mapRef?.$mapPromise.then((map: any) => {\n map.panTo(this.center);\n map.setZoom(this.zoom);\n });\n this.skipMarkerWatch = false;\n }\n }\n\n markerClicked(evt: any) {\n const c = { lat: evt.latLng.lat(), lng: evt.latLng.lng() } as LatLng;\n this.mapRef?.$mapPromise.then((map: any) => {\n map.panTo(c);\n map.setZoom(19);\n });\n }\n\n setMarkerToCoordinates(coordinates: LatLng) {\n if (!isNaN(coordinates.lat) && !isNaN(coordinates.lng)) {\n const event = {\n latLng: {\n lat: () => coordinates.lat,\n lng: () => coordinates.lng,\n },\n };\n\n this.setMarker(event);\n this.mapRef?.$mapPromise.then((map: any) => {\n map.panTo(coordinates);\n map.setZoom(16);\n });\n }\n }\n\n setMarker(evt: any) {\n if (this.readonly) return;\n\n const c = { lat: evt.latLng.lat(), lng: evt.latLng.lng() } as LatLng;\n this.skipMarkerWatch = true;\n this.internalMarker = c;\n }\n\n setPlace(place: any) {\n const lat = place.geometry.location.lat();\n const lng = place.geometry.location.lng();\n const c = { lat: lat, lng: lng } as LatLng;\n this.mapRef?.$mapPromise.then((map: any) => {\n map.panTo(c);\n map.setZoom(17);\n });\n\n this.skipMarkerWatch = true;\n this.internalMarker = c;\n }\n\n get countryItems() {\n return (\n this.countries\n ?.map((x) => ({\n id: x.id,\n text: this.$t(`Country.Official.${x.isoThreeLetterCode}`).toString(),\n }))\n .sort((a, b) => (a.text >= b.text ? 1 : -1)) ?? []\n );\n }\n\n isById(x: any): x is { id: number } {\n return x && (x as { id: number }).id !== undefined;\n }\n isBySearch(x: any): x is { search: string } {\n return x && !!(x as { search: string }).search;\n }\n\n @Watch(\"internalCountryId\")\n onCountryChanged(fresh: number, old?: number | null) {\n if (this.readonly) return;\n if (fresh === old || old === null || old === undefined) return;\n\n this.internalPostalCodeId = null;\n this.internalCityId = null;\n }\n\n postalFetch(\n val: { id: number } | { search: string }\n ): Promise {\n if (!this.internalCountryId) return Promise.resolve([]);\n\n if (this.isById(val)) {\n return this.axios\n .get(`codebooks/postalCodes/${val.id}`)\n .then(({ data }) => [\n {\n id: data.id,\n text: data.code,\n },\n ]);\n } else if (this.isBySearch(val)) {\n return this.axios\n .get>(\"codebooks/postalCodes\", {\n params: {\n $orderby: \"code\",\n countryId: this.internalCountryId,\n code: val.search,\n },\n })\n .then(({ data }) =>\n data.result.map((x) => ({\n id: x.id,\n text: x.code,\n }))\n );\n } else {\n return Promise.resolve([]);\n }\n }\n @Watch(\"internalPostalCodeId\")\n onPostalCodeChanged(fresh: number, old?: number | null) {\n if (this.readonly) return;\n if (fresh === old || old === null || old === undefined) return;\n\n this.internalCityId = null;\n }\n\n cityFetch(\n val: { id: number } | { search: string }\n ): Promise {\n if (!this.internalPostalCodeId) return Promise.resolve([]);\n\n if (this.isById(val)) {\n return this.axios\n .get(`codebooks/cities/${val.id}`)\n .then(({ data }) => [\n {\n id: data.id,\n text: data.name,\n },\n ]);\n } else if (this.isBySearch(val)) {\n return this.axios\n .get>(\"codebooks/cities\", {\n params: {\n $orderby: \"name\",\n postalCodeId: this.internalPostalCodeId,\n name: val.search,\n },\n })\n .then(({ data }) =>\n data.result.map((x) => ({\n id: x.id,\n text: x.name,\n }))\n );\n } else {\n return Promise.resolve([]);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationInput.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LocationInput.vue?vue&type=template&id=033a81df&scoped=true&\"\nimport script from \"./LocationInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./LocationInput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LocationInput.vue?vue&type=style&index=0&id=033a81df&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 \"033a81df\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.translateID))+\" \")])],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":5000,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"header.name\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.netPrice\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.taxRateId\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.grossPrice\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.calculationMethodId\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.select\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.actions\",fn:function(){return undefined},proxy:true},{key:\"item.taxRateId\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.taxRateDisplay(value))+\" \")]}},{key:\"item.netPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.pricesAreSeasonal)?_c('div',[_vm._v(_vm._s(_vm.currencyDisplay(item.netPrice, item.currencyId)))]):_c('div',[_vm._v(_vm._s(_vm.$t(\"AddOnService.Seasonal\")))])]}},{key:\"item.grossPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.pricesAreSeasonal)?_c('div',[_vm._v(_vm._s(_vm.currencyDisplay(item.grossPrice, item.currencyId)))]):_c('div',[_vm._v(_vm._s(_vm.$t(\"AddOnService.Seasonal\")))])]}},{key:\"item.calculationMethodId\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.priceCalculationMethodDisplay(value))+\" \")]}},{key:\"item.select\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"ripple\":false,\"value\":_vm.isSelected(item)},on:{\"input\":function($event){_vm.select(item, !_vm.isSelected(item))}}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.disabled,\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeService(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)]}}])})],1)],1),_c('v-btn',{key:\"add\",attrs:{\"fab\":\"\",\"left\":\"\",\"absolute\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.add}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('RightDrawer',{attrs:{\"open\":_vm.formOpen},on:{\"update:open\":function($event){_vm.formOpen=$event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.formOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('Add service'),\"items\":_vm.pickableItems,\"multiple\":\"\"},model:{value:(_vm.pickedServices),callback:function ($$v) {_vm.pickedServices=$$v},expression:\"pickedServices\"}})],1)],1),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.servicesFormOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"AddNewService\"))+\" \")])],1)],1),_c('AddOnServicesAndFeesForm',{attrs:{\"open\":_vm.servicesFormOpen,\"propertyId\":_vm.propertyId,\"accUnitId\":_vm.accUnitId},on:{\"update:open\":function($event){_vm.servicesFormOpen=$event},\"serviceAdded\":_vm.serviceAdded}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { AddOnServiceViewModel, AddOnServiceView } from \"@/shared/models/addOnService\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { PriceCalculationMethodView } from \"@/shared/models/priceCalculationMethods\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport AddOnServicesAndFeesForm from \"../AddOnServicesAndFeesForm.vue\";\n\n@Component({ components: { FormDescription, RightDrawer, AddOnServicesAndFeesForm } })\nexport default class AddOnServicesTable extends Vue {\n @PropSync(\"services\") internalServices?: AddOnServiceViewModel[];\n @Prop() disabled?: boolean;\n @Prop({ default: false }) automaticallySetServices?: boolean;\n @Prop() readonly translateID?: string;\n @Prop() propertyId?: number;\n @Prop() accUnitId?: number;\n\n @Action(\"appParams/refreshAppParams\") refreshAppParams?: () => Promise;\n @Getter(\"appParams/tenantPaysVat\") tenantPaysVat?: boolean;\n @Getter(\"appParams/tenantUsesOfficialRates\")\n tenantUsesOfficialRates?: boolean;\n\n allItems: AddOnServiceView[] = [];\n formOpen = false;\n servicesFormOpen = false;\n\n created() {\n if(this.tenantPaysVat === undefined && this.refreshAppParams) {\n this.refreshAppParams();\n }\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n this.refreshTaxRates();\n }\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 &&\n this.refreshPriceCalculationMethods\n ) {\n this.refreshPriceCalculationMethods();\n }\n if (!this.tenantPaysVat) {\n this.headers = this.headers.filter((x) => x.value !== \"netPrice\");\n this.headers = this.headers.filter((x) => x.value !== \"taxRateId\");\n }\n if (this.tenantUsesOfficialRates){\n this.headers = this.headers.filter((x => x.value !== \"select\"));\n }\n this.load();\n }\n\n load(){\n this.axios\n .get>(\"addOnServices\", {\n params: {\n excludeBookingFee: true,\n $orderby: \"name\"\n },\n })\n .then(({ data }) => {\n this.allItems = data.result;\n\n if (this.automaticallySetServices) {\n const autoInternalServices = this.allItems\n .filter((x) => x.applyToAllProperties && !this.internalServices?.map(s => s.addOnServiceId).includes(x.id))\n .map((x) => { return { addOnServiceId: x.id, mergeToAccommodationWhenInvoicing: false } as AddOnServiceViewModel });\n \n if(this.internalServices)\n {\n this.internalServices.push(...autoInternalServices);\n }\n else {\n this.internalServices = autoInternalServices;\n }\n }\n });\n }\n\n get items() {\n return this.allItems.filter((i) =>\n this.internalServices?.some((s) => i.id === s.addOnServiceId)\n );\n }\n get pickableItems() {\n return this.allItems.filter(\n (i) => !this.internalServices?.some((s) => i.id === s.addOnServiceId)\n );\n }\n\n headers = [\n { text: \"AddOnService.Name\", value: \"name\" },\n { text: \"AddOnService.NetPrice\", value: \"netPrice\" },\n { text: \"AddOnService.TaxRate\", value: \"taxRateId\" },\n { text: \"AddOnService.GrossPrice\", value: \"grossPrice\" },\n { text: \"AddOnService.CalculationMethod\", value: \"calculationMethodId\" },\n { text: \"AddOnService.MergeToAcc\", value: \"select\" },\n { text: \"\", value: \"actions\" },\n ];\n\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Action(\"codebooks/refreshTaxRates\") refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n @Action(\"codebooks/refreshPriceCalculationMethods\")\n refreshPriceCalculationMethods?: () => Promise;\n @Getter(\"codebooks/priceCalculationMethods\")\n priceCalculationMethods?: PriceCalculationMethodView[];\n\n taxRateDisplay(taxRateId: number) {\n const rate = this.taxRates?.find((tr) => tr.id === taxRateId);\n return rate ? this.$t(rate.textResourceKey) : \"\";\n }\n\n priceCalculationMethodDisplay(priceCalculationMethodId: number) {\n const pcm = this.priceCalculationMethods?.find(\n (tr) => tr.id === priceCalculationMethodId\n );\n return pcm ? this.$t(pcm.textResourceKey) : \"\";\n }\n\n currencyDisplay(amount: number, currencyId: number) {\n const currency = this.currencies?.find((c) => c.id === currencyId);\n return currency\n ? this.$n(amount, {\n style: \"currency\",\n currency: currency.isoCode,\n currencyDisplay: \"code\",\n })\n : \"\";\n }\n\n isSelected(item: any)\n {\n if (this.internalServices) {\n const changed = this.internalServices.findIndex((s) => s.addOnServiceId === item.id);\n if(changed !== -1) {\n return this.internalServices[changed].mergeToAccommodationWhenInvoicing;\n }\n }\n\n return false;\n }\n\n select(item: any, isSelected: boolean) {\n if (this.internalServices) {\n const changed = this.internalServices.findIndex((s) => s.addOnServiceId === item.id);\n if(changed !== -1) {\n this.internalServices[changed].mergeToAccommodationWhenInvoicing = isSelected;\n }\n }\n }\n\n add() {\n this.formOpen = true;\n this.pickedServices = [];\n }\n\n pickedServices: number[] = [];\n submit() {\n if (this.internalServices) {\n const autoInternalServices = this.pickedServices\n .map((x) => { return { addOnServiceId: x, mergeToAccommodationWhenInvoicing: false } as AddOnServiceViewModel });\n this.$emit(\"update:services\", [\n ...this.internalServices,\n ...autoInternalServices,\n ]);\n }\n this.pickedServices = [];\n this.formOpen = false;\n }\n\n removeService(item: AddOnServiceView) {\n if (this.internalServices) {\n this.$emit(\n \"update:services\",\n this.internalServices.filter((x) => x.addOnServiceId !== item.id)\n );\n }\n }\n\n serviceAdded(){\n this.load();\n this.servicesFormOpen = false;\n this.formOpen = false;\n this.$emit('serviceAdded')\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddOnServicesTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddOnServicesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddOnServicesTable.vue?vue&type=template&id=92ed0e28&scoped=true&\"\nimport script from \"./AddOnServicesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddOnServicesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddOnServicesTable.vue?vue&type=style&index=0&id=92ed0e28&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 \"92ed0e28\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\ninstallComponents(component, {VAutocomplete,VBtn,VCol,VContainer,VDataTable,VIcon,VRow,VSimpleCheckbox})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"items-per-page\":5000,\"hide-default-footer\":\"\"},on:{\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.facility\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text, { eVisitorServiceName: _vm.eVisitorIntegrationName }))+\" \")]}},{key:\"header.user\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.numberOfUnits\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.numberOfBeds\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.defaultNumberOfExtraBeds\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.accountName\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.actions\",fn:function(){return undefined},proxy:true},{key:\"item.autoCheckout\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"ripple\":false,\"value\":item.autoCheckout}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.disabled,\"color\":\"blue\"},on:{\"click\":function($event){return _vm.editFacility(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-btn',{staticClass:\"ml-4\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.disabled,\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeFacility(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)]}}])})],1)],1),_c('v-btn',{key:\"add\",attrs:{\"fab\":\"\",\"left\":\"\",\"absolute\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.add}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('RightDrawer',{attrs:{\"open\":_vm.formOpen,\"watched\":_vm.selected,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.formOpen=$event},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid || _vm.saving},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){return _vm.closeForm()}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-form',{ref:\"formRef\",attrs:{\"disabled\":_vm.saving,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('div',{staticClass:\"hide-hack\"},[_c('v-text-field',{attrs:{\"label\":\"name1\",\"type\":\"text\"}}),_c('v-text-field',{attrs:{\"label\":\"pass1\",\"type\":\"password\"}})],1),_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(!!_vm.selected.id)?_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.Facility.Editing\", { eVisitorServiceName: _vm.eVisitorIntegrationName, }) + \" - \" + _vm.$t(_vm.selected.facility))+\" \")]):_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.Facility.New\", { eVisitorServiceName: _vm.eVisitorIntegrationName, }))+\" \")])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('EVisitor.Facility', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }) + '*',\"rules\":[_vm.required, _vm.maxLength(32)],\"counter\":\"32\"},model:{value:(_vm.selected.facility),callback:function ($$v) {_vm.$set(_vm.selected, \"facility\", $$v)},expression:\"selected.facility\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Username') + '*',\"rules\":[_vm.required, _vm.maxLength(32)],\"counter\":\"32\",\"autocomplete\":\"off\",\"name\":\"eVisitorUsername\"},model:{value:(_vm.selected.user),callback:function ($$v) {_vm.$set(_vm.selected, \"user\", $$v)},expression:\"selected.user\"}})],1),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Password') + '*',\"rules\":[_vm.required, _vm.maxLength(32)],\"counter\":\"32\",\"autocomplete\":\"off\",\"name\":\"eVisitorPassword\",\"type\":_vm.showPassword ? 'text' : 'password',\"loading\":_vm.passwordLoading},on:{\"keydown\":_vm.clearFakePass},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}},[(!_vm.selected.id || _vm.selected.password)?_c('template',{slot:\"append\"},[_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":function($event){_vm.showPassword = !_vm.showPassword}}},[(_vm.showPassword)?_c('v-icon',[_vm._v(\"fa-eye-slash\")]):_c('v-icon',[_vm._v(\"fa-eye\")])],1)]):_c('template',{slot:\"append\"},[_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.fetchPassword}},[_c('v-icon',[_vm._v(\"fa-eye\")])],1)])],2)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('EVisitor.numberOfUnits') + '*',\"rules\":[_vm.required]},model:{value:(_vm.selected.numberOfUnits),callback:function ($$v) {_vm.$set(_vm.selected, \"numberOfUnits\", _vm._n($$v))},expression:\"selected.numberOfUnits\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.SL ? 3 : 6}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('EVisitor.numberOfBeds') + '*',\"rules\":[_vm.required]},model:{value:(_vm.selected.numberOfBeds),callback:function ($$v) {_vm.$set(_vm.selected, \"numberOfBeds\", _vm._n($$v))},expression:\"selected.numberOfBeds\"}})],1),(_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.SL)?_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('EVisitor.Facility.DefaultExtraBeds')},model:{value:(_vm.selected.defaultNumberOfExtraBeds),callback:function ($$v) {_vm.$set(_vm.selected, \"defaultNumberOfExtraBeds\", _vm._n($$v))},expression:\"selected.defaultNumberOfExtraBeds\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('EVisitor.accountName'),\"rules\":[_vm.maxLength(100)],\"counter\":\"100\"},model:{value:(_vm.selected.accountName),callback:function ($$v) {_vm.$set(_vm.selected, \"accountName\", $$v)},expression:\"selected.accountName\"}})],1)],1),(\n _vm.eVisitorFacilityStatuses && _vm.eVisitorFacilityStatuses.length > 0\n )?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.eVisitorFacilityStatuses,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"label\":_vm.$t('EVisitor.FacilityStatus')},model:{value:(_vm.selected.statusId),callback:function ($$v) {_vm.$set(_vm.selected, \"statusId\", $$v)},expression:\"selected.statusId\"}})],1)],1):_vm._e()],1),_c('div',{staticClass:\"hide-hack\"},[_c('v-text-field',{attrs:{\"label\":\"name2\",\"type\":\"text\"}}),_c('v-text-field',{attrs:{\"label\":\"pass2\",\"type\":\"password\"}})],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport {\n EVisitorIntegrationModel,\n EVisitorModel,\n EVisitorView,\n} from \"@/shared/models/eVisitor\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { Action, Getter } from \"vuex-class\";\nimport { EVisitorFacilityStatus } from \"@/shared/models/eVisitorFacilityStatus\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\n\n@Component({ components: { FormDescription, RightDrawer } })\nexport default class EVisitorFacilitiesTable extends Vue {\n @Prop() disabled?: boolean;\n @Prop() propertyId!: number;\n\n allItems: EVisitorView[] = [];\n selected: EVisitorModel = new EVisitorModel();\n formOpen = false;\n isFormValid = false;\n showPassword = false;\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n @Watch(\"propertyId\", { immediate: true })\n load() {\n if (!this.propertyId) return;\n\n this.axios\n .get>(\n `properties/${this.propertyId}/eVisitorFacilities`,\n {\n params: {\n status: true,\n },\n }\n )\n .then(({ data }) => {\n this.allItems = data.result;\n });\n }\n\n get items() {\n return this.allItems;\n }\n\n headers = [\n { text: \"EVisitor.Facility\", value: \"facility\" },\n { text: \"Username\", value: \"user\" },\n { text: \"EVisitor.numberOfUnits\", value: \"numberOfUnits\" },\n { text: \"EVisitor.numberOfBeds\", value: \"numberOfBeds\" },\n { text: \"EVisitor.accountName\", value: \"accountName\" },\n { text: \"\", value: \"actions\" },\n ];\n\n @Ref(\"formRef\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n rowDoubleClick(e: MouseEvent, { item }: { item: any }) {\n this.editFacility(item);\n }\n\n add() {\n Object.assign(this.selected, new EVisitorModel());\n\n this.formRef?.resetValidation();\n\n this.password = \"\";\n this.selected.propertyId = this.propertyId;\n\n this.formOpen = true;\n }\n\n saving = false;\n\n submit() {\n if (this.saving) {\n return;\n }\n\n if (!this.formRef?.validate()) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.saving = true;\n\n if (this.selected.id && this.selected.id !== 0) {\n Vue.axios\n .put(\"properties/editEVisitorFacility\", this.selected)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.Facility.SaveSuccess\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 5000,\n });\n this.formOpen = false;\n })\n .finally(() => {\n this.saving = false;\n this.load();\n });\n } else {\n Vue.axios\n .post(\"properties/addEVisitorFacility\", this.selected)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.Facility.SaveSuccess\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 5000,\n });\n\n this.formOpen = false;\n })\n .finally(() => {\n this.saving = false;\n this.load();\n });\n }\n }\n\n removeFacility(item: EVisitorView) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"EVisitor.Facility.DeleteConfirmation\", {\n value: item.facility,\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.removeConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n removeConfirm(item: EVisitorView) {\n this.axios\n .delete>(\n `properties/deleteEVisitorFacility/${item.id}`\n )\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.Facility.DeleteSuccess\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.load();\n });\n }\n\n clearFakePass() {\n if (!this.selected.password) {\n this.selected.password = \"\";\n }\n }\n\n passwordLoading = false;\n async fetchPassword() {\n if (this.passwordLoading) return;\n\n this.passwordLoading = true;\n\n try {\n const result = await this.axios.get<{ password: string }>(\n `properties/${this.propertyId}/eVisitorFacilities/${this.selected.id}/password`\n );\n\n this.password = result.data.password;\n this.showPassword = true;\n } finally {\n this.passwordLoading = false;\n }\n }\n\n get password() {\n return this.selected.id\n ? this.selected.password ?? \"******\"\n : this.selected.password ?? \"\";\n }\n set password(val: string | null) {\n this.selected.password = val ?? \"\";\n }\n\n editFacility(item: EVisitorView) {\n this.selected.id = item.id;\n this.selected.propertyId = this.propertyId;\n this.selected.facility = item.facility;\n this.selected.user = item.user;\n this.selected.numberOfUnits = item.numberOfUnits;\n this.selected.numberOfBeds = item.numberOfBeds;\n this.selected.defaultNumberOfExtraBeds = item.defaultNumberOfExtraBeds;\n this.selected.accountName = item.accountName;\n this.selected.password = null;\n this.selected.statusId = item.statusId;\n this.showPassword = false;\n this.formOpen = true;\n }\n\n closeForm() {\n this.selected = new EVisitorModel();\n this.formOpen = false;\n }\n\n @Getter(\"codebooks/eVisitorFacilityStatuses\")\n eVisitorFacilityStatuses?: EVisitorFacilityStatus[];\n @Action(\"codebooks/refreshEVisitorFacilityStatuses\")\n refreshEVisitorFacilityStatuses?: () => Promise;\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n eVisitorIntegrationEnum = EVisitorIntegrationEnum;\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n\n async created() {\n const promises = [];\n\n if (\n (!this.eVisitorFacilityStatuses ||\n this.eVisitorFacilityStatuses.length == 0) &&\n this.refreshEVisitorFacilityStatuses\n ) {\n promises.push(this.refreshEVisitorFacilityStatuses());\n }\n\n await Promise.all(promises);\n }\n\n mounted() {\n // add \"default extra number of beds\" table column for eTurizem\n if (this.eVisitorIntegrationId === EVisitorIntegrationEnum.SL) {\n const numberOfBedsIndex = this.headers.findIndex(\n (e) => e.value === \"numberOfBeds\"\n );\n this.headers.splice(numberOfBedsIndex + 1, 0, {\n text: \"EVisitor.defaultNumberOfExtraBeds\",\n value: \"defaultNumberOfExtraBeds\",\n });\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorFacilitiesTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorFacilitiesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EVisitorFacilitiesTable.vue?vue&type=template&id=58c1e160&scoped=true&\"\nimport script from \"./EVisitorFacilitiesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./EVisitorFacilitiesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EVisitorFacilitiesTable.vue?vue&type=style&index=0&id=58c1e160&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 \"58c1e160\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VDataTable,VForm,VIcon,VRow,VSelect,VSimpleCheckbox,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-data-table',{staticClass:\"table\",attrs:{\"fixed-header\":\"\",\"calculate-widths\":\"\",\"headers\":_vm.translatedHeaders,\"items\":_vm.amenityItems,\"items-per-page\":5000,\"hide-default-footer\":\"\",\"item-key\":\"id\",\"sort-by\":\"name\",\"group-by\":\"amenityGroupId\"},scopedSlots:_vm._u([_vm._l((_vm.translatedHeaders),function(header,i){return {key:(\"header.\" + (header.value)),fn:function(ref){return [_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('div',{key:i,on:{\"click\":function($event){$event.stopPropagation();}}},[(header.value == 'name')?_c('v-text-field',{key:i,staticClass:\"filters-textfield\",attrs:{\"type\":\"text\",\"placeholder\":header.text},model:{value:(_vm.multiSearch[header.value]),callback:function ($$v) {_vm.$set(_vm.multiSearch, header.value, $$v)},expression:\"multiSearch[header.value]\"}}):_vm._e(),(header.value == 'isSelected' ||\n header.value == 'isOnSite' ||\n header.value == 'isFree' ||\n header.value == 'emphasizeOnBookingPortal'\n )?_c('v-simple-checkbox',{key:i,staticClass:\"filters-checkbox\",attrs:{\"ripple\":false},model:{value:(_vm.multiSearch[header.value]),callback:function ($$v) {_vm.$set(_vm.multiSearch, header.value, $$v)},expression:\"multiSearch[header.value]\"}}):_vm._e()],1)]}}}),{key:\"group.header\",fn:function(ref){\n var group = ref.group;\n var headers = ref.headers;\n var toggle = ref.toggle;\n var isOpen = ref.isOpen;\nreturn [_c('td',{attrs:{\"colspan\":headers.length}},[_c('v-btn',{ref:group,attrs:{\"icon\":\"\"},on:{\"click\":toggle}},[(isOpen)?_c('v-icon',[_vm._v(\"fas fa-angle-up\")]):_c('v-icon',[_vm._v(\"fas fa-angle-down\")])],1),_c('span',{staticClass:\"ml-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t(_vm.textToTranslate(group))))])],1)]}},{key:\"item.isSelected\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"ripple\":false},on:{\"input\":function($event){return _vm.change(item, true)}},model:{value:(item.isSelected),callback:function ($$v) {_vm.$set(item, \"isSelected\", $$v)},expression:\"item.isSelected\"}})]}},{key:\"item.isFree\",fn:function(ref){\n var item = ref.item;\nreturn [(item.isSelected === true && item.userShouldSetIsFreeAttribute === true)?_c('span',[_c('v-select',{staticClass:\"selectItem\",attrs:{\"placeholder\":_vm.$t('Amenity.Undefined'),\"ripple\":false,\"items\":_vm.translatedSelectItems},on:{\"input\":function($event){return _vm.change(item)}},model:{value:(item.isFree),callback:function ($$v) {_vm.$set(item, \"isFree\", $$v)},expression:\"item.isFree\"}})],1):_vm._e()]}},{key:\"item.notes\",fn:function(ref){\n var item = ref.item;\nreturn [(item.isSelected === true)?_c('span',[_c('v-text-field',{attrs:{\"label\":_vm.$t('Amenities.Notes'),\"type\":\"text\",\"rules\":[_vm.maxLength(2048)]},on:{\"input\":function($event){return _vm.change(item)}},model:{value:(item.notes),callback:function ($$v) {_vm.$set(item, \"notes\", $$v)},expression:\"item.notes\"}})],1):_vm._e()]}},{key:\"item.isOnSite\",fn:function(ref){\n var item = ref.item;\nreturn [(item.isSelected === true && item.userShouldSetIsOnSiteAttribute === true)?_c('span',[_c('v-select',{staticClass:\"selectItem\",attrs:{\"placeholder\":_vm.$t('Amenity.Undefined'),\"ripple\":false,\"items\":_vm.translatedSelectItems},on:{\"input\":function($event){return _vm.change(item)}},model:{value:(item.isOnSite),callback:function ($$v) {_vm.$set(item, \"isOnSite\", $$v)},expression:\"item.isOnSite\"}})],1):_vm._e()]}},{key:\"item.emphasizeOnBookingPortal\",fn:function(ref){\n var item = ref.item;\nreturn [(item.isSelected === true && item.userShouldSetEmphasizeOnBEAttribute === true)?_c('v-simple-checkbox',{attrs:{\"ripple\":false,\"disabled\":!item.isSelected},on:{\"input\":function($event){return _vm.change(item)}},model:{value:(item.emphasizeOnBookingPortal),callback:function ($$v) {_vm.$set(item, \"emphasizeOnBookingPortal\", $$v)},expression:\"item.emphasizeOnBookingPortal\"}}):_vm._e()]}}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export type AmenityView = {\n id: number;\n name: string;\n textResourceKey: string;\n amenityGroupId: number;\n amenityGroupName: string;\n amenitySortOrder: number;\n isPropertyLevelAmenity: boolean;\n isAccomodationUnitTypeLevelAmenity: boolean;\n userShouldSetIsFreeAttribute: boolean;\n userShouldSetIsOnSiteAttribute: boolean;\n userShouldSetEmphasizeOnBEAttribute: boolean;\n notes: string;\n};\n\nexport class AmenityViewModel {\n id = 0;\n name = \"\";\n textResourceKey = \"\";\n amenityGroupId = 0;\n amenityGroupName = \"\";\n amenitySortOrder = 0;\n userShouldSetIsFreeAttribute = false;\n userShouldSetIsOnSiteAttribute = false;\n userShouldSetEmphasizeOnBEAttribute = false;\n isPropertyLevelAmenity = false;\n isAccomodationUnitTypeLevelAmenity = false;\n isSelected = false;\n isFree?: boolean;\n isOnSite?: boolean;\n emphasizeOnBookingPortal = false;\n notes = \"\";\n}\n\nexport class AmenityModel {\n amenityId = 0;\n notes = \"\";\n isFree? = false;\n isOnSite? = false;\n emphasizeOnBookingPortal = false;\n}\n\nexport type AmenityGroup = {\n id: number;\n name: string;\n textResourceKey: string;\n sortOrder: number;\n};","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AmenityModel, AmenityView, AmenityViewModel } from \"@/shared/models/amenities\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\n\n@Component\nexport default class AmenitiesSelection extends Vue {\n @PropSync(\"ids\") amenityModels?: AmenityModel[];\n @Prop() filter?: (a: AmenityView) => boolean;\n\n @Action(\"codebooks/refreshAmenitiesAndGroups\")\n refreshAmenitiesAndGroups?: () => Promise;\n @Getter(\"codebooks/amenities\") amenities?: AmenityView[];\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n mounted() {\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n this.refreshLanguages();\n }\n }\n\n get filteredItems() {\n const f = this.filter ?? (() => true);\n const filtered = this.amenities?.filter(x => {\n if (this.multiSearch.name == undefined) return f(x)\n else {\n return f(x) && (\n this.$t(x.textResourceKey).toString().toLowerCase().includes(this.multiSearch.name.toString().toLowerCase())\n )\n }\n });\n\n const list: AmenityViewModel[] = [];\n\n if(filtered)\n {\n filtered.forEach(function (value) {\n const x = new AmenityViewModel();\n x.id = value.id\n x.name = value.name\n x.textResourceKey = value.textResourceKey\n x.amenityGroupId = value.amenityGroupId\n x.amenitySortOrder = value.amenitySortOrder\n x.userShouldSetIsFreeAttribute = value.userShouldSetIsFreeAttribute\n x.userShouldSetIsOnSiteAttribute = value.userShouldSetIsOnSiteAttribute\n x.userShouldSetEmphasizeOnBEAttribute = value.userShouldSetEmphasizeOnBEAttribute\n x.isPropertyLevelAmenity = value.isPropertyLevelAmenity\n x.isAccomodationUnitTypeLevelAmenity = value.isAccomodationUnitTypeLevelAmenity\n x.amenityGroupName = value.amenityGroupName\n x.notes = value.notes\n\n list.push(x);\n });\n }\n\n const check = (id: number): AmenityModel | undefined => this.amenityModels?.find((a) => a.amenityId == id);\n\n let finalList = list.map((g) => {\n const x = new AmenityViewModel();\n x.id = g.id;\n x.name = this.$t(g.textResourceKey).toString();\n x.textResourceKey = g.textResourceKey;\n x.amenityGroupId = g.amenityGroupId;\n x.amenityGroupName = g.amenityGroupName;\n x.amenitySortOrder = g.amenitySortOrder;\n x.userShouldSetIsFreeAttribute = g.userShouldSetIsFreeAttribute\n x.userShouldSetIsOnSiteAttribute = g.userShouldSetIsOnSiteAttribute\n x.userShouldSetEmphasizeOnBEAttribute = g.userShouldSetEmphasizeOnBEAttribute\n x.isPropertyLevelAmenity = g.isPropertyLevelAmenity;\n x.isAccomodationUnitTypeLevelAmenity = g.isAccomodationUnitTypeLevelAmenity;\n x.isSelected = !!check(g.id);\n x.isFree = check(g.id)?.isFree;\n x.isOnSite = check(g.id)?.isOnSite;\n x.emphasizeOnBookingPortal = !!check(g.id)?.emphasizeOnBookingPortal;\n x.notes = check(g.id)?.notes ?? \"\";\n\n return x;\n });\n\n if (this.multiSearch.isSelected) {\n finalList = finalList.filter((x) => x.isSelected)\n }\n\n if (this.multiSearch.isOnSite) {\n finalList = finalList.filter((x) => x.isOnSite)\n }\n\n if (this.multiSearch.isFree) {\n finalList = finalList.filter((x) => x.isFree)\n }\n\n if (this.multiSearch.emphasizeOnBookingPortal) {\n finalList = finalList.filter((x) => x.emphasizeOnBookingPortal)\n }\n\n return finalList;\n }\n\n get amenityItems() {\n return this.filteredItems;\n }\n\n textToTranslate(id: number) {\n return this.filteredItems.find(x => x.amenityGroupId == id)?.amenityGroupName;\n }\n\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n change(item: AmenityViewModel, defaultEmphasizeOnBE?: boolean) {\n const index = this.amenityModels?.findIndex(x => x.amenityId == item.id)\n const data = {\n amenityId: item.id,\n isSelected: item.isSelected,\n notes: item.notes,\n isFree: item.isFree,\n isOnSite: item.isOnSite,\n emphasizeOnBookingPortal: defaultEmphasizeOnBE ?? item.emphasizeOnBookingPortal\n }\n if(index === undefined || index === -1)\n {\n this.amenityModels?.push(data)\n }\n else {\n if(data.isSelected == true)\n {\n this.amenityModels?.splice(index, 1, data);\n }\n else {\n this.amenityModels?.splice(index, 1);\n }\n }\n }\n\n async created() {\n if (\n (this.amenities?.length ?? 0) === 0 &&\n this.refreshAmenitiesAndGroups\n ) {\n await this.refreshAmenitiesAndGroups();\n }\n }\n\n get translatedHeaders() {\n return this.headers.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n get translatedSelectItems() {\n return this.selectItems.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n headers = [\n {\n text: 'Selected',\n value: 'isSelected',\n class: 'sticky-header',\n width: '5%',\n groupable: false,\n sortable: false,\n },\n {\n text: \"Property.Amenities\",\n align: 'start',\n value: 'name',\n class: 'sticky-header',\n width: '30%',\n groupable: false,\n sortable: false,\n },\n {\n text: \"Notes\",\n align: 'start',\n value: 'notes',\n class: 'sticky-header',\n width: '35%',\n groupable: false,\n sortable: false\n },\n {\n text: 'IsOnSite',\n value: 'isOnSite',\n class: 'sticky-header',\n width: '10%',\n groupable: false,\n sortable: false,\n },\n {\n text: 'IsFree',\n value: 'isFree',\n class: 'sticky-header',\n width: '10%',\n groupable: false,\n sortable: false,\n },\n {\n text: 'OnBookingPortal',\n value: 'emphasizeOnBookingPortal',\n class: 'sticky-header',\n align: 'center',\n width: '10%',\n groupable: false,\n sortable: false,\n },\n ]\n\n selectItems = [\n {\n text: \"Amenity.True\",\n value: true\n },\n {\n text: \"Amenity.False\",\n value: false\n },\n {\n text: \"Amenity.Undefined\",\n value: null\n },\n ]\n\n multiSearch: AmenityViewModel = new AmenityViewModel()\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AmenitiesSelection.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AmenitiesSelection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AmenitiesSelection.vue?vue&type=template&id=49400f32&scoped=true&\"\nimport script from \"./AmenitiesSelection.vue?vue&type=script&lang=ts&\"\nexport * from \"./AmenitiesSelection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AmenitiesSelection.vue?vue&type=style&index=0&id=49400f32&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 \"49400f32\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VDataTable,VIcon,VSelect,VSimpleCheckbox,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height\",staticStyle:{\"overflow-y\":\"auto\"}},[_c('v-container',{staticClass:\"mb-16\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Descriptions.Description\"))+\" \")])],1)],1),_c('v-row',[(_vm.loading)?_c('v-col',{attrs:{\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),_vm._l((_vm.descriptions),function(desc){return _c('v-col',{key:desc.id,attrs:{\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",on:{\"dblclick\":function($event){return _vm.update(desc)}}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(_vm.langTr(desc.cultureCode))))]),_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.fillCardText(desc))+\" \")]),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.update(desc)}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.remove(desc)}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)}),_c('v-col',{staticClass:\"d-flex\",attrs:{\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",attrs:{\"width\":\"100%\"},on:{\"click\":function($event){return _vm.add()}}},[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(_vm._s(_vm.$t(\"Add new\")))]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)],1)],2)],1),_c('RightDrawer',{attrs:{\"open\":_vm.formOpen,\"initial\":_vm.initialForm,\"watched\":_vm.form,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.formOpen=$event},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid || _vm.submiting},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.formOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-form',{ref:\"formRef\",attrs:{\"disabled\":_vm.submiting,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(!!_vm.form.id)?_c('h1',[_vm._v(_vm._s(_vm.$t(\"PropertyDescription.Editing\")))]):_c('h1',[_vm._v(_vm._s(_vm.$t(\"PropertyDescription.New\")))])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('PropertyDescription.CultureCode') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.required]},model:{value:(_vm.form.cultureCode),callback:function ($$v) {_vm.$set(_vm.form, \"cultureCode\", $$v)},expression:\"form.cultureCode\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.PropertyDescription'),\"rules\":[_vm.maxLength(2500)],\"counter\":\"2500\"},model:{value:(_vm.form.propertyDescription),callback:function ($$v) {_vm.$set(_vm.form, \"propertyDescription\", $$v)},expression:\"form.propertyDescription\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.ShortPropertyDescription'),\"rules\":[_vm.maxLength(500)],\"counter\":\"500\"},model:{value:(_vm.form.shortPropertyDescription),callback:function ($$v) {_vm.$set(_vm.form, \"shortPropertyDescription\", $$v)},expression:\"form.shortPropertyDescription\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.AreaDescription'),\"rules\":[_vm.maxLength(1000)],\"counter\":\"1000\"},model:{value:(_vm.form.areaDescription),callback:function ($$v) {_vm.$set(_vm.form, \"areaDescription\", $$v)},expression:\"form.areaDescription\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.ActivitiesDescription'),\"rules\":[_vm.maxLength(1000)],\"counter\":\"1000\"},model:{value:(_vm.form.activitiesDescription),callback:function ($$v) {_vm.$set(_vm.form, \"activitiesDescription\", $$v)},expression:\"form.activitiesDescription\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.ArrivalInstructions'),\"rules\":[_vm.maxLength(1000)],\"counter\":\"1000\"},model:{value:(_vm.form.arrivalInstructions),callback:function ($$v) {_vm.$set(_vm.form, \"arrivalInstructions\", $$v)},expression:\"form.arrivalInstructions\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.HouseRulesDescription'),\"rules\":[_vm.maxLength(1000)],\"counter\":\"1000\"},model:{value:(_vm.form.houseRulesDescription),callback:function ($$v) {_vm.$set(_vm.form, \"houseRulesDescription\", $$v)},expression:\"form.houseRulesDescription\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('PropertyDescription.PoliciesDescription'),\"rules\":[_vm.maxLength(1000)],\"counter\":\"1000\"},model:{value:(_vm.form.policiesDescription),callback:function ($$v) {_vm.$set(_vm.form, \"policiesDescription\", $$v)},expression:\"form.policiesDescription\"}})],1)],1)],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { PropertyDescriptionModel } from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { Action, Getter } from \"vuex-class\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\n\n@Component({\n components: {\n RightDrawer,\n FormDescription,\n },\n})\nexport default class DescriptionsTiles extends Vue {\n @Prop() propertyId?: number;\n\n descriptions: PropertyDescriptionModel[] = [];\n loading = true;\n\n formOpen = false;\n isFormValid = false;\n submiting = false;\n form = new PropertyDescriptionModel(0);\n initialForm = new PropertyDescriptionModel(0);\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n async created() {\n const promises = [];\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n @Watch(\"propertyId\", { immediate: true })\n load() {\n if (!this.propertyId) return;\n\n this.axios\n .get>(\n `/properties/${this.propertyId}/descriptions`\n )\n .then(\n ({ data }) =>\n (this.descriptions = data.result.map((x) =>\n Object.assign(new PropertyDescriptionModel(this.propertyId ?? 0), x)\n ))\n )\n .finally(() => (this.loading = false));\n }\n\n @Ref(\"formRef\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n add() {\n this.formRef?.resetValidation();\n this.form = new PropertyDescriptionModel(this.propertyId ?? 0);\n this.initialForm = new PropertyDescriptionModel(this.propertyId ?? 0);\n this.formOpen = true;\n }\n\n update(desc: PropertyDescriptionModel) {\n this.formRef?.resetValidation();\n this.form = Object.assign(\n new PropertyDescriptionModel(this.propertyId ?? 0),\n desc\n );\n this.initialForm = Object.assign(\n new PropertyDescriptionModel(this.propertyId ?? 0),\n desc\n );\n this.formOpen = true;\n }\n\n submit() {\n if (this.submiting) {\n return;\n }\n\n if (!this.formRef?.validate()) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.submiting = true;\n if (this.form.id) {\n // update\n this.axios\n .put(\n `/properties/${this.propertyId}/descriptions/${this.form.id}`,\n this.form\n )\n .then(() => {\n const idx = this.descriptions.findIndex((d) => d.id === this.form.id);\n if (idx !== -1) {\n this.descriptions.splice(idx, 1, this.form);\n }\n this.formOpen = false;\n })\n .finally(() => (this.submiting = false));\n } else {\n // add\n this.axios\n .post(`/properties/${this.propertyId}/descriptions`, this.form)\n .then((x) => {\n this.form.id = x.data;\n this.descriptions.push(this.form);\n this.formOpen = false;\n })\n .finally(() => (this.submiting = false));\n }\n }\n\n remove(desc: PropertyDescriptionModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PropertyDescription.DeleteConfirmation\", {\n value: this.$t(this.langTr(desc.cultureCode)),\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(desc.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteConfirmed(id: number) {\n Vue.axios\n .delete(`/properties/${this.propertyId}/descriptions/${id}`)\n .then(() => {\n const toRemove = this.descriptions.find((x) => x.id === id);\n if (toRemove) {\n this.descriptions = this.descriptions.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"PropertyDescription.DeleteSuccess\", {\n value: this.$t(this.langTr(toRemove.cultureCode)),\n }),\n timeout: 5000,\n } as Notification);\n }\n });\n }\n\n langTr(code: string) {\n return (\n this.languages?.find((x) => x.languageCode === code)?.textResourceKey ??\n code\n );\n }\n\n fillCardText(desc: PropertyDescriptionModel) {\n if(desc.shortPropertyDescription != \"\")\n {\n return desc.shortPropertyDescription;\n }\n for (let index = 0; index < Object.entries(desc).length; index++) {\n const el = Object.entries(desc)[index];\n if(!el[0].includes(\"cultureCode\") && typeof(el[1]) === \"string\" && el[1] != \"\")\n {\n return el[1];\n }\n }\n return this.$t(\"DescriptionIsEmpty\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DescriptionsTiles.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DescriptionsTiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DescriptionsTiles.vue?vue&type=template&id=1f1b8a30&scoped=true&\"\nimport script from \"./DescriptionsTiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./DescriptionsTiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DescriptionsTiles.vue?vue&type=style&index=0&id=1f1b8a30&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 \"1f1b8a30\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VIcon,VRow,VSkeletonLoader,VSpacer,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height\",staticStyle:{\"overflow-y\":\"auto\"}},[_c('v-container',{staticClass:\"mb-16\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.POI.Description\"))+\" \")])],1)],1),_c('v-row',[(_vm.loading)?_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),_vm._l((_vm.pois),function(poi){return _c('v-col',{key:poi.id,attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",on:{\"dblclick\":function($event){return _vm.update(poi)}}},[_c('v-card-title',[_vm._v(_vm._s(poi.name))]),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.$t(_vm.typeTr(poi.poiTypeId))))]),_c('v-card-text',{staticClass:\"text\"},[(poi.distanceInMeters)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyPoi.DistanceInMeters\"))+\": \"+_vm._s(poi.distanceInMeters)+\" \")]):_vm._e(),(poi.walkingTimeInMinutes)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyPoi.WalkingTimeInMinutes\"))+\": \"+_vm._s(poi.walkingTimeInMinutes)+\" \")]):_vm._e(),(poi.drivingDistanceInMinutes)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyPoi.DrivingDistanceInMinutes\"))+\": \"+_vm._s(poi.drivingDistanceInMinutes)+\" \")]):_vm._e()]),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.update(poi)}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.remove(poi)}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)}),_c('v-col',{staticClass:\"d-flex\",attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",attrs:{\"width\":\"100%\"},on:{\"click\":function($event){return _vm.add()}}},[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(_vm._s(_vm.$t(\"Add new\")))]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)],1)],2)],1),_c('RightDrawer',{attrs:{\"open\":_vm.formOpen,\"initial\":_vm.initialForm,\"watched\":_vm.form,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.formOpen=$event},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid || _vm.submiting},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.formOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-form',{ref:\"formRef\",attrs:{\"disabled\":_vm.submiting,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(!!_vm.form.id)?_c('h1',[_vm._v(_vm._s(_vm.$t(\"PropertyPoi.Editing\", _vm.form)))]):_c('h1',[_vm._v(_vm._s(_vm.$t(\"PropertyPoi.New\")))])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('PropertyPoi.Name') + '*',\"rules\":[_vm.required, _vm.maxLength(100)],\"counter\":\"100\"},model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('PropertyPoi.Type') + '*',\"item-value\":\"value\",\"item-text\":\"name\",\"items\":_vm.sortedPoiTypes,\"rules\":[_vm.required]},model:{value:(_vm.form.poiTypeId),callback:function ($$v) {_vm.$set(_vm.form, \"poiTypeId\", $$v)},expression:\"form.poiTypeId\"}})],1),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('PropertyPoi.DistanceInMeters')},model:{value:(_vm.distanceInMeters),callback:function ($$v) {_vm.distanceInMeters=_vm._n($$v)},expression:\"distanceInMeters\"}})],1),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('PropertyPoi.WalkingTimeInMinutes')},model:{value:(_vm.walkingTimeInMinutes),callback:function ($$v) {_vm.walkingTimeInMinutes=_vm._n($$v)},expression:\"walkingTimeInMinutes\"}})],1),_c('v-col',{attrs:{\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('PropertyPoi.DrivingDistanceInMinutes')},model:{value:(_vm.drivingDistanceInMinutes),callback:function ($$v) {_vm.drivingDistanceInMinutes=_vm._n($$v)},expression:\"drivingDistanceInMinutes\"}})],1)],1)],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { PropertyPoiModel } from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { Action, Getter } from \"vuex-class\";\nimport { PoiTypeView } from \"@/shared/models/poiType\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\n\n@Component({\n components: {\n RightDrawer,\n FormDescription,\n },\n})\nexport default class PoisTiles extends Vue {\n @Prop() propertyId?: number;\n\n pois: PropertyPoiModel[] = [];\n loading = true;\n\n formOpen = false;\n isFormValid = false;\n submiting = false;\n form = new PropertyPoiModel(0);\n initialForm = new PropertyPoiModel(0);\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n @Action(\"codebooks/refreshPoiTypes\") refreshPoiTypes?: () => Promise;\n @Getter(\"codebooks/poiTypes\") poiTypes?: PoiTypeView[];\n\n @Watch(\"propertyId\", { immediate: true })\n load() {\n if (!this.propertyId) return;\n\n this.axios\n .get>(\n `/properties/${this.propertyId}/pointsOfInterest`, {\n params:{\n $orderby: \"name asc\"\n }\n }\n )\n .then(\n ({ data }) =>\n (this.pois = data.result.map((x) =>\n Object.assign(new PropertyPoiModel(this.propertyId ?? 0), x)\n ))\n )\n .finally(() => (this.loading = false));\n\n if ((this.poiTypes?.length ?? 0) === 0 && this.refreshPoiTypes) {\n this.refreshPoiTypes();\n }\n }\n\n @Ref(\"formRef\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n add() {\n this.formRef?.resetValidation();\n this.form = new PropertyPoiModel(this.propertyId ?? 0);\n this.initialForm = new PropertyPoiModel(this.propertyId ?? 0);\n this.formOpen = true;\n }\n\n update(poi: PropertyPoiModel) {\n this.formRef?.resetValidation();\n this.form = Object.assign(new PropertyPoiModel(this.propertyId ?? 0), poi);\n this.initialForm = Object.assign(\n new PropertyPoiModel(this.propertyId ?? 0),\n poi\n );\n this.formOpen = true;\n }\n\n get distanceInMeters() {\n return this.form.distanceInMeters ?? \"\";\n }\n set distanceInMeters(val: number | \"\") {\n this.form.distanceInMeters = val === \"\" ? null : val;\n }\n get drivingDistanceInMinutes() {\n return this.form.drivingDistanceInMinutes ?? \"\";\n }\n set drivingDistanceInMinutes(val: number | \"\") {\n this.form.drivingDistanceInMinutes = val === \"\" ? null : val;\n }\n get walkingTimeInMinutes() {\n return this.form.walkingTimeInMinutes ?? \"\";\n }\n set walkingTimeInMinutes(val: number | \"\") {\n this.form.walkingTimeInMinutes = val === \"\" ? null : val;\n }\n get sortedPoiTypes() {\n return (\n this.poiTypes?.map((x) => {\n return {\n value: x.id,\n name: this.$t(x.textResourceKey),\n };\n }) ?? []\n ).sort((a, b) => (a.name > b.name ? 1 : -1));\n }\n\n submit() {\n if (this.submiting) {\n return;\n }\n\n if (!this.formRef?.validate()) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.submiting = true;\n if (this.form.id) {\n // update\n this.axios\n .put(\n `/properties/${this.propertyId}/pointsOfInterest/${this.form.id}`,\n this.form\n )\n .then(() => {\n const idx = this.pois.findIndex((d) => d.id === this.form.id);\n if (idx !== -1) {\n this.pois.splice(idx, 1, this.form);\n }\n this.formOpen = false;\n })\n .finally(() => (this.submiting = false));\n } else {\n // add\n this.axios\n .post(\n `/properties/${this.propertyId}/pointsOfInterest`,\n this.form\n )\n .then((x) => {\n this.form.id = x.data;\n this.pois.push(this.form);\n this.formOpen = false;\n })\n .finally(() => (this.submiting = false));\n }\n }\n\n remove(poi: PropertyPoiModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PropertyPoi.DeleteConfirmation\", {\n value: poi.name,\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(poi.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteConfirmed(id: number) {\n Vue.axios\n .delete(`/properties/${this.propertyId}/pointsOfInterest/${id}`)\n .then(() => {\n this.pois = this.pois.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"PropertyPoi.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n });\n }\n\n typeTr(typeId: number) {\n return this.poiTypes?.find((x) => x.id === typeId)?.textResourceKey ?? \"\";\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoisTiles.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoisTiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PoisTiles.vue?vue&type=template&id=d57b1ef0&scoped=true&\"\nimport script from \"./PoisTiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./PoisTiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PoisTiles.vue?vue&type=style&index=0&id=d57b1ef0&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 \"d57b1ef0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VContainer,VForm,VIcon,VRow,VSkeletonLoader,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height\",staticStyle:{\"overflow-y\":\"auto\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-container',{staticClass:\"mb-16\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"PropertyForm.Otas.Description\"))+\" \")])],1)],1),_c('v-row',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.otaUpdateLoading,\"minDelay\":550}}),(_vm.loading)?_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),_vm._l((_vm.otas.filter(function (e) { return e.otaId !== _vm.OTAChannelsEnum.GoogleVacationRentals || e.statusId === _vm.propertyOTAStatusEnum.Active; })),function(ota){return _c('v-col',{key:ota.otaId,attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"fill-height\",attrs:{\"disabled\":ota.otaId === _vm.OTAChannelsEnum.GoogleVacationRentals}},[_c('v-card-title',{staticClass:\"align-baseline\"},[_c('v-switch',{attrs:{\"input-value\":_vm.getValue(ota.statusId),\"color\":_vm.getColor(ota.statusId),\"disabled\":_vm.enableSwitch(),\"messages\":_vm.$t(_vm.getMessage(ota.statusId)),\"label\":ota.otaName},on:{\"change\":function($event){return _vm.otaChanged(ota, $event)}},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\nvar message = ref.message;\nreturn [_c('strong',{class:_vm.getColor(ota.statusId) + '--text'},[_vm._v(\" \"+_vm._s(message)+\" \")])]}}],null,true)}),_c('v-spacer'),(\n _vm.allowedToModifyOTAs &&\n ota.statusId &&\n ota.otaId === _vm.OTAChannelsEnum.KroatiDe\n )?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openKroatiDeSetupModal()}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1):_vm._e(),(\n _vm.allowedToModifyOTAs &&\n ota.statusId &&\n ota.otaId === _vm.OTAChannelsEnum.Atraveo\n )?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openAtraveoSetupModal()}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1):_vm._e()],1),(ota.otaId === _vm.OTAChannelsEnum.GoogleVacationRentals)?_c('v-card-text',[_c('FormDescription',{attrs:{\"type\":\"info\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"InDevelopment\"))+\" \")])])],1):_vm._e(),(_vm.allowedToModifyOTAs && ota.statusId)?_c('v-card-text',[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('OTA.CommissionPercent'),\"suffix\":'%',\"outlined\":true,\"rules\":[_vm.requiredWith0Allowed],\"dense\":\"\",\"validateInput\":true},on:{\"blur\":function($event){return _vm.otaUpdated(ota)}},model:{value:(ota.commissionPercent),callback:function ($$v) {_vm.$set(ota, \"commissionPercent\", $$v)},expression:\"ota.commissionPercent\"}}),(_vm.isTenantAnAgency)?_c('v-checkbox',{staticClass:\"mt-0 mb-5\",attrs:{\"label\":_vm.$t('OTA.OwnerPaysOTACommission'),\"hide-details\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.updateOta(ota)}},model:{value:(ota.ownerPaysOTACommission),callback:function ($$v) {_vm.$set(ota, \"ownerPaysOTACommission\", $$v)},expression:\"ota.ownerPaysOTACommission\"}}):_vm._e(),(ota.otaId !== _vm.OTAChannelsEnum.GoogleVacationRentals)?_c('v-checkbox',{staticClass:\"mt-0 mb-5\",attrs:{\"label\":_vm.$t('OTA.PaymentCollectByOTA'),\"hide-details\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.updateOta(ota)}},model:{value:(ota.paymentCollectByOTA),callback:function ($$v) {_vm.$set(ota, \"paymentCollectByOTA\", $$v)},expression:\"ota.paymentCollectByOTA\"}}):_vm._e(),(ota.paymentCollectByOTA)?_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('OTA.PaymentCollectCommission'),\"suffix\":'%',\"outlined\":true,\"rules\":[_vm.requiredWith0Allowed],\"dense\":\"\",\"validateInput\":true},on:{\"blur\":function($event){return _vm.otaUpdated(ota)}},model:{value:(ota.paymentCollectCommission),callback:function ($$v) {_vm.$set(ota, \"paymentCollectCommission\", $$v)},expression:\"ota.paymentCollectCommission\"}}):_vm._e(),(ota.otaId === _vm.OTAChannelsEnum.GoogleVacationRentals)?_c('v-autocomplete',{attrs:{\"label\":_vm.$t('OTA.AccomodationUnitType') + '*',\"items\":_vm.unitTypesForOTASetup,\"item-value\":\"id\",\"item-text\":\"name\"},on:{\"input\":function($event){return _vm.otaUpdated(ota)}},model:{value:(ota.accomodationUnitTypeId),callback:function ($$v) {_vm.$set(ota, \"accomodationUnitTypeId\", $$v)},expression:\"ota.accomodationUnitTypeId\"}}):_vm._e(),(\n ota.otaId === _vm.OTAChannelsEnum.KroatiDe ||\n ota.otaId === _vm.OTAChannelsEnum.GoogleVacationRentals\n )?_c('v-autocomplete',{attrs:{\"label\":_vm.$t('OTA.RatePlan') + '*',\"items\":_vm.standardRatePlans,\"item-value\":\"id\",\"item-text\":\"name\"},on:{\"input\":function($event){return _vm.otaUpdated(ota)}},model:{value:(ota.ratePlanId),callback:function ($$v) {_vm.$set(ota, \"ratePlanId\", $$v)},expression:\"ota.ratePlanId\"}}):_vm._e(),(ota.otaId === _vm.OTAChannelsEnum.Atraveo)?_c('v-autocomplete',{attrs:{\"label\":_vm.$t('OTA.RatePlan') + '*',\"items\":_vm.standardAndDerivedRatePlans,\"item-value\":\"id\",\"item-text\":\"name\"},on:{\"input\":function($event){return _vm.otaUpdated(ota)}},model:{value:(ota.ratePlanId),callback:function ($$v) {_vm.$set(ota, \"ratePlanId\", $$v)},expression:\"ota.ratePlanId\"}}):_vm._e()],1):_vm._e(),(\n _vm.allowedToModifyOTAs &&\n ota.statusId &&\n ota.otaId === _vm.OTAChannelsEnum.KroatiDe\n )?_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){_vm.kroatiDeSyncModalOpen = true}}},[_vm._v(_vm._s(_vm.$t(\"OTA.KroatiDe.Sync\")))])],1):_vm._e()],1)],1)})],2)],1)],1),_c('OtasIframe',{attrs:{\"open\":_vm.otasIframeIsOpen,\"iframePropertyId\":_vm.propertyId,\"iframePropertyName\":_vm.propertyName},on:{\"update:open\":function($event){_vm.otasIframeIsOpen=$event},\"update:iframePropertyId\":function($event){_vm.propertyId=$event},\"update:iframe-property-id\":function($event){_vm.propertyId=$event},\"update:iframePropertyName\":function($event){_vm.propertyName=$event},\"update:iframe-property-name\":function($event){_vm.propertyName=$event}}}),_c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":\"800\"},model:{value:(_vm.atraveoSetupModalOpen),callback:function ($$v) {_vm.atraveoSetupModalOpen=$$v},expression:\"atraveoSetupModalOpen\"}},[_c('v-card',[(_vm.loadingUnitTypesForOTASetup)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e(),_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.AtraveoId\")))]),_c('v-card-text',_vm._l((_vm.unitTypesForOTASetup),function(unitType){return _c('v-row',{key:unitType.id,staticClass:\"align-baseline\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnitType.Name'),\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(unitType.name),callback:function ($$v) {_vm.$set(unitType, \"name\", $$v)},expression:\"unitType.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnitType.AtraveoId'),\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-icon',{attrs:{\"dense\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.copyTemplate(unitType.atraveoId)}}},[_vm._v(\"fal fa-copy\")])]},proxy:true}],null,true),model:{value:(unitType.atraveoId),callback:function ($$v) {_vm.$set(unitType, \"atraveoId\", $$v)},expression:\"unitType.atraveoId\"}},[_vm._v(\" >\")])],1)],1)}),1),_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){return _vm.closeAtraveoSetupModal()}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":\"600\"},model:{value:(_vm.kroatiDeSetupModalOpen),callback:function ($$v) {_vm.kroatiDeSetupModalOpen=$$v},expression:\"kroatiDeSetupModalOpen\"}},[_c('v-card',[(_vm.loadingUnitsForOTASetup)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e(),_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"OTA.Setup.KrotiDe\")))]),_c('v-card-text',_vm._l((_vm.unitsForOTASetup),function(unit){return _c('v-row',{key:unit.id,staticClass:\"align-baseline\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"9\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnit.Name'),\"outlined\":\"\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(unit.name),callback:function ($$v) {_vm.$set(unit, \"name\", $$v)},expression:\"unit.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('AccomodationUnit.KroatiDeId'),\"rules\":[_vm.wholeNumbersOnly],\"outlined\":\"\",\"dense\":\"\"},model:{value:(unit.kroatiDeId),callback:function ($$v) {_vm.$set(unit, \"kroatiDeId\", _vm._n($$v))},expression:\"unit.kroatiDeId\"}})],1)],1)}),1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.submitUnitsForOTASetup()}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){return _vm.closeKroatiDeSetupModal()}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":\"600\"},model:{value:(_vm.kroatiDeSyncModalOpen),callback:function ($$v) {_vm.kroatiDeSyncModalOpen=$$v},expression:\"kroatiDeSyncModalOpen\"}},[_c('v-card',[(_vm.kroatiDeSyncInProgress)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e(),_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"OTA.KroatiDe.Sync.Title\")))]),_c('v-card-text',[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"OTA.KroatiDe.Sync.YearToSync.Hint\")))]),_c('v-select',{attrs:{\"label\":_vm.$t('OTA.KroatiDe.Sync.YearToSync'),\"items\":_vm.kroatiDeSyncYearList},model:{value:(_vm.yearToSync),callback:function ($$v) {_vm.yearToSync=$$v},expression:\"yearToSync\"}}),(_vm.kroatiDeSyncResult && !_vm.kroatiDeSyncResult.isSuccess)?_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"error\",\"border\":\"left\"}},[_c('ul',_vm._l((_vm.kroatiDeSyncResult.errors),function(error,$index){return _c('li',{key:$index,staticClass:\"d-flex\"},[_vm._v(\" \"+_vm._s((\"\" + (error.unitTypeName ? error.unitTypeName + \", \" : \"\") + (error.officialRateName ? error.officialRateName + \", \" : \"\")))+\" \"+_vm._s(_vm.$t(error.errorTextResourceKey))+\" \")])}),0)]):_vm._e(),(_vm.kroatiDeSyncResult && _vm.kroatiDeSyncResult.isSuccess)?_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"success\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OTA.KroatiDe.Sync.Success\"))+\" \")]):_vm._e()],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.submitKroatiDeSync()}}},[_vm._v(_vm._s(_vm.$t(\"OTA.KroatiDe.Sync\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.kroatiDeSyncModalOpen = false;\n _vm.kroatiDeSyncResult = null;}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-dialog',{attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\",\"eager\":\"\"},model:{value:(_vm.iframeOpen),callback:function ($$v) {_vm.iframeOpen=$$v},expression:\"iframeOpen\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dark\":\"\",\"color\":\"primary\"}},[_c('div',{staticClass:\"ml-8 form-subtitle\"},[_vm._v(\" \"+_vm._s(_vm.propertyName)+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeModal}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),(_vm.iframeUrl.length > 0)?_c('div',{staticClass:\"iframe\"},[_c('iframe',{attrs:{\"src\":_vm.iframeUrl,\"frameborder\":\"0\",\"scrolling\":\"no\"}})]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, PropSync, Watch } from \"vue-property-decorator\";\n\n@Component({\n components: {},\n})\nexport default class OtasIframe extends Vue {\n @PropSync(\"open\", { default: false }) isOpen?: boolean;\n @PropSync(\"iframePropertyId\", { default: null }) propertyId!: number | null;\n @PropSync(\"iframePropertyName\", { default: null }) propertyName!: string | null;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n await this.loadIframe();\n }\n }\n\n iframeOpen = false;\n loading = false;\n iframeUrl = \"\";\n\n loadIframe() {\n this.loading = true;\n this.iframeUrl = \"\";\n Vue.axios\n .post(\"/channex/GetIframeUrl\", { \"propertyId\": this.propertyId })\n .then((res) => {\n this.iframeOpen = true;\n this.iframeUrl = res.data.url;\n })\n .catch(() => {\n this.isOpen = false;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n\n closeModal() {\n this.iframeOpen = false;\n this.isOpen = false;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtasIframe.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtasIframe.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OtasIframe.vue?vue&type=template&id=0e803352&scoped=true&\"\nimport script from \"./OtasIframe.vue?vue&type=script&lang=ts&\"\nexport * from \"./OtasIframe.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OtasIframe.vue?vue&type=style&index=0&id=0e803352&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 \"0e803352\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VDialog,VIcon,VProgressLinear,VRow,VSpacer,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport {\n PropertyOtaModel,\n PropertyOtaStatusEnum,\n AccomodationUnitForOTASetupModel,\n KroatiDeSyncResult,\n AccomodationUnitTypeForOTASetupModel,\n} from \"./types\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport * as _ from \"lodash\";\nimport OtasIframe from \"./OtasIframe.vue\";\nimport { RatePlan } from \"../calendar/CalendarTypes\";\nimport { OTAChannels, TenantTypesEnum } from \"@/shared/models/enums.type\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport NumericInputImproved from \"../numbers/NumericInputImproved.vue\";\n\n@Component({\n components: {\n FormDescription,\n OtasIframe,\n NumericInputImproved,\n LoadingOverlay,\n },\n})\nexport default class Otas extends Vue {\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get allowedToModifyOTAs() {\n return policyChecker(\"REQUIRE_TENANT_ADMIN_OR_HIGHER\")(this.claims);\n }\n\n @Getter(\"calendar/nonOBRatePlans\") nonOBRatePlans?: RatePlan[];\n @Action(\"calendar/refreshNonOBRatePlans\")\n refreshNonOBRatePlans?: () => Promise;\n get standardRatePlans() {\n return (\n this.nonOBRatePlans?.filter(\n (x) => !x.isDerived && !x.isSpecialOrPackageOffer\n ) ?? []\n );\n }\n get standardAndDerivedRatePlans() {\n return this.nonOBRatePlans?.filter((x) => !x.isSpecialOrPackageOffer) ?? [];\n }\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n async created() {\n const promises = [];\n if (\n (this.nonOBRatePlans?.length ?? 0) === 0 &&\n this.refreshNonOBRatePlans\n ) {\n promises.push(this.refreshNonOBRatePlans());\n }\n await Promise.all(promises);\n }\n\n @Prop() propertyId?: number;\n @Prop() propertyName?: string;\n\n otas: PropertyOtaModel[] = [];\n OTAChannelsEnum = OTAChannels;\n propertyOTAStatusEnum = PropertyOtaStatusEnum;\n loading = true;\n\n submiting = false;\n\n @Watch(\"propertyId\", { immediate: true })\n load() {\n if (!this.propertyId) return;\n\n this.axios\n .get>(`/properties/${this.propertyId}/otas`)\n .then(\n ({ data }) =>\n (this.otas = data.result.map((x) =>\n Object.assign(new PropertyOtaModel(this.propertyId ?? 0), x)\n ))\n )\n .finally(() => {\n this.loading = false;\n this.otaUpdateLoading = false;\n });\n\n this.loadUnitTypesForOTASetup();\n }\n\n isFormValid = false;\n\n @Ref(\"formRef\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n copyTemplate(idApiKey: string) {\n navigator.clipboard.writeText(idApiKey);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"LinkCopiedToClipboard\"),\n timeout: 5000,\n });\n }\n\n otaChanged(ota: PropertyOtaModel, val: boolean) {\n const endpoint = val ? \"activate\" : \"deactivate\";\n ota.statusId = val\n ? PropertyOtaStatusEnum.Active\n : PropertyOtaStatusEnum.Deactivated;\n this.otaUpdateLoading = true;\n this.axios\n .post(`/properties/${this.propertyId}/otas/${endpoint}`, {\n otaId: ota.otaId,\n })\n .then()\n .finally(() => {\n this.submiting = false;\n this.load();\n });\n }\n\n otaUpdateLoading = false;\n otaUpdated(ota: PropertyOtaModel) {\n this.debouncedUpdate(ota);\n }\n\n debouncedUpdate = _.debounce(this.updateOta, 500);\n\n updateOta(ota: PropertyOtaModel) {\n this.otaUpdateLoading = true;\n\n this.axios\n .put(`/properties/${this.propertyId}/otas/${ota.otaId}`, {\n commissionPercent: ota.commissionPercent,\n ownerPaysOTACommission: ota.ownerPaysOTACommission,\n paymentCollectByOTA: ota.paymentCollectByOTA,\n paymentCollectCommission: ota.paymentCollectByOTA\n ? ota.paymentCollectCommission\n : 0,\n ratePlanId: ota.ratePlanId,\n accomodationUnitTypeId: ota.accomodationUnitTypeId,\n })\n .finally(() => {\n this.load();\n });\n }\n\n enableSwitch() {\n return this.loading && this.submiting;\n }\n\n otasIframeIsOpen = false;\n\n @Watch(\"otasIframeIsOpen\")\n otasIframeIsOpenWatch(fresh: boolean, old: boolean) {\n if (!fresh && old) {\n this.otaUpdateLoading = false;\n }\n }\n\n openOtasIframe() {\n this.otasIframeIsOpen = true;\n this.otaUpdateLoading = true;\n }\n\n getValue(statusId: number | null) {\n return (\n statusId !== null &&\n (statusId == PropertyOtaStatusEnum.Active ||\n statusId == PropertyOtaStatusEnum.ActivationPending)\n );\n }\n\n getMessage(statusId: number | null) {\n switch (statusId) {\n case null:\n return [];\n case PropertyOtaStatusEnum.ActivationPending:\n return \"PropertyForm.Otas.ActivationPending\";\n case PropertyOtaStatusEnum.Active:\n return \"PropertyForm.Otas.Active\";\n case PropertyOtaStatusEnum.DeactivationPending:\n return \"PropertyForm.Otas.DeactivationPending\";\n }\n }\n\n getColor(statusId: number | null) {\n switch (statusId) {\n case null:\n return \"default\";\n case PropertyOtaStatusEnum.ActivationPending:\n return \"primary\";\n case PropertyOtaStatusEnum.Active:\n return \"success\";\n case PropertyOtaStatusEnum.DeactivationPending:\n return \"error\";\n }\n }\n\n requiredWith0Allowed(value: any) {\n return !!value || value === 0\n ? true\n : this.$t(\"Validation.Required\").toString();\n }\n\n wholeNumbersOnly(value: number) {\n return (\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\")\n );\n }\n\n kroatiDeSetupModalOpen = false;\n loadingUnitsForOTASetup = false;\n atraveoSetupModalOpen = false;\n loadingUnitTypesForOTASetup = false;\n unitsForOTASetup: AccomodationUnitForOTASetupModel[] = [];\n unitTypesForOTASetup: AccomodationUnitTypeForOTASetupModel[] = [];\n\n openKroatiDeSetupModal() {\n this.loadUnitsForOTASetup();\n this.kroatiDeSetupModalOpen = true;\n }\n\n closeKroatiDeSetupModal() {\n this.kroatiDeSetupModalOpen = false;\n this.unitsForOTASetup = [];\n }\n openAtraveoSetupModal() {\n this.loadUnitTypesForOTASetup();\n this.atraveoSetupModalOpen = true;\n }\n\n closeAtraveoSetupModal() {\n this.atraveoSetupModalOpen = false;\n this.unitTypesForOTASetup = [];\n }\n\n loadUnitsForOTASetup() {\n this.loadingUnitsForOTASetup = true;\n this.axios\n .get(\n `/AccomodationUnits/GetUnitsForOTASetup`,\n {\n params: {\n propertyId: this.propertyId,\n },\n }\n )\n .then((res) => {\n this.unitsForOTASetup = res.data;\n })\n .finally(() => (this.loadingUnitsForOTASetup = false));\n }\n\n loadUnitTypesForOTASetup() {\n this.loadingUnitTypesForOTASetup = true;\n this.axios\n .get(\n `/AccomodationUnitTypes/GetUnitTypesForOTASetup`,\n {\n params: {\n propertyId: this.propertyId,\n },\n }\n )\n .then((res) => {\n this.unitTypesForOTASetup = res.data;\n })\n .finally(() => (this.loadingUnitTypesForOTASetup = false));\n }\n\n submitUnitsForOTASetup() {\n const request = {\n accomodationUnits: [...this.unitsForOTASetup],\n };\n\n request.accomodationUnits.forEach((x) => {\n if (x.kroatiDeId === undefined || (x.kroatiDeId as any) === \"\")\n x.kroatiDeId = null;\n });\n\n this.loadingUnitsForOTASetup = true;\n this.axios\n .post(`/AccomodationUnits/AccomodationUnitsOTASetup`, request)\n .then(() => this.closeKroatiDeSetupModal())\n .finally(() => (this.loadingUnitsForOTASetup = false));\n }\n\n kroatiDeSyncModalOpen = false;\n kroatiDeSyncResult = null as null | KroatiDeSyncResult;\n yearToSync = new Date().getFullYear();\n kroatiDeSyncYearList = [\n {\n text: this.yearToSync.toString(),\n value: this.yearToSync,\n },\n {\n text: (this.yearToSync + 1).toString(),\n value: this.yearToSync + 1,\n },\n {\n text: (this.yearToSync + 2).toString(),\n value: this.yearToSync + 2,\n },\n ];\n\n kroatiDeSyncInProgress = false;\n submitKroatiDeSync() {\n this.kroatiDeSyncInProgress = true;\n this.axios\n .post(\n `/properties/${this.propertyId}/otas/kroatidesync/${this.yearToSync}`\n )\n .then((x) => {\n this.kroatiDeSyncResult = x.data;\n })\n .finally(() => (this.kroatiDeSyncInProgress = false));\n }\n\n get isTenantAnAgency() {\n return this.tenantTypeId == TenantTypesEnum.Agency;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Otas.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Otas.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Otas.vue?vue&type=template&id=6dad74a7&scoped=true&\"\nimport script from \"./Otas.vue?vue&type=script&lang=ts&\"\nexport * from \"./Otas.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Otas.vue?vue&type=style&index=0&id=6dad74a7&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 \"6dad74a7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDialog,VForm,VIcon,VOverlay,VProgressCircular,VRow,VSelect,VSkeletonLoader,VSpacer,VSwitch,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height\",staticStyle:{\"overflow-y\":\"auto\"}},[_c('v-container',{staticClass:\"mb-16\",attrs:{\"fluid\":\"\"}},[_c('v-row',[(_vm.loading)?_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),_vm._l((_vm.unitTypes),function(unitType){return _c('v-col',{key:unitType.id,attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('AccomodationUnitTypeTile',{attrs:{\"unitType\":unitType},on:{\"update\":_vm.update,\"remove\":_vm.remove}})],1)}),_c('v-col',{staticClass:\"d-flex\",attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",attrs:{\"width\":\"100%\"},on:{\"click\":function($event){return _vm.add()}}},[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(_vm._s(_vm.$t(\"Add new\")))]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)],1)],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"d-flex flex-column fill-height\",on:{\"dblclick\":_vm.update}},[_c('v-card-title',[_vm._v(_vm._s(_vm.unitType.name))]),_c('v-card-subtitle',[_c('v-rating',{attrs:{\"value\":_vm.category,\"readonly\":\"\",\"color\":\"primary\",\"background-color\":\"rgba(128,128,128,0.5)\",\"x-small\":\"\"}})],1),_c('v-card-text',{staticClass:\"text\"},[(_vm.unitType.squareSize)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.SquareSize\"))+\": \"+_vm._s(_vm.unitType.squareSize)+\" \")]):_vm._e(),(_vm.unitType.maxOccupancy)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.MaxOccupancy\"))+\": \"+_vm._s(_vm.unitType.maxOccupancy)+\" \")]):_vm._e(),(_vm.unitType.baseBedsCapacity)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.BaseBedsCapacity\"))+\": \"+_vm._s(_vm.unitType.baseBedsCapacity)+\" \")]):_vm._e(),(_vm.unitType.extraBedsCapacity)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.ExtraBedsCapacity\"))+\": \"+_vm._s(_vm.unitType.extraBedsCapacity)+\" \")]):_vm._e(),(_vm.unitType.maxNumberOfAdults)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Max adults\"))+\": \"+_vm._s(_vm.unitType.maxNumberOfAdults)+\" \")]):_vm._e(),(_vm.unitType.quantity)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.!uantity\"))+\": \"+_vm._s(_vm.unitType.quantity)+\" \")]):_vm._e(),(_vm.unitType.basePrice)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.BasePrice\"))+\": \"+_vm._s(_vm.$n(_vm.unitType.basePrice, { style: \"currency\", currency: _vm.unitType.currencyCode, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.update}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.askForRemove}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Notification } from \"@/store/modules/notifications\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { AccomodationUnitTypesWithDetailsView } from \"@/shared/models/accomodationUnitTypesWithDetailsView\";\nimport { CategoriesEnum } from \"@/shared/models/enums.type\";\n\n@Component\nexport default class AccomodationUnitTypeTile extends Vue {\n @Prop() unitType?: AccomodationUnitTypesWithDetailsView;\n\n update() {\n this.$emit(\"update\", this.unitType);\n }\n\n askForRemove() {\n if (!this.unitType) return;\n\n const id = this.unitType.id;\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"AccomodationUnitType.DeleteConfirmation\", {\n value: this.unitType.name,\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.$emit(\"remove\", id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n get category() {\n if (this.unitType) {\n if (this.unitType.categoryId === CategoriesEnum.Empty) {\n return 0;\n }\n return this.unitType.categoryId + 1;\n }\n return 0;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeTile.vue?vue&type=template&id=74295104&scoped=true&\"\nimport script from \"./AccomodationUnitTypeTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeTile.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 \"74295104\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VRating } from 'vuetify/lib/components/VRating';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VRating,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { AccomodationUnitTypesWithDetailsView } from \"@/shared/models/accomodationUnitTypesWithDetailsView\";\nimport AccomodationUnitTypeTile from \"./AccomodationUnitTypeTile.vue\";\n\n@Component({\n components: {\n AccomodationUnitTypeTile,\n },\n})\nexport default class AccomodationUnitTypeTiles extends Vue {\n @Prop() propertyId?: number;\n @Prop() propertyCategoryId?: number;\n\n unitTypes: AccomodationUnitTypesWithDetailsView[] = [];\n\n loading = false;\n\n @Watch(\"propertyId\", { immediate: true })\n load() {\n this.loading = true;\n if (!this.propertyId) {\n this.loading = false;\n return;\n }\n\n this.axios\n .get>(\n `/properties/${this.propertyId}/AccomodationUnitTypes`\n )\n .then(({ data }) => (this.unitTypes = data.result))\n .finally(() => (this.loading = false));\n }\n\n add() {\n this.$router.push({\n name: \"New unit type\",\n params: {\n propertyId: this.propertyId?.toString() ?? \"\",\n propertyCategoryId: this.propertyCategoryId?.toString() ?? \"\"\n },\n });\n }\n\n update(unitType: AccomodationUnitTypesWithDetailsView) {\n this.$router.push({\n name: \"Edit unit type\",\n params: {\n propertyId: this.propertyId?.toString() ?? \"\",\n unitTypeId: unitType.id.toString(),\n },\n });\n }\n\n remove(id: number) {\n Vue.axios\n .delete(`/properties/${this.propertyId}/AccomodationUnitTypes/${id}`)\n .then(() => {\n this.unitTypes = this.unitTypes.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnitType.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTiles.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeTiles.vue?vue&type=template&id=7f5b1522&scoped=true&\"\nimport script from \"./AccomodationUnitTypeTiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeTiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeTiles.vue?vue&type=style&index=0&id=7f5b1522&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 \"7f5b1522\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VIcon,VRow,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"editor\",attrs:{\"fluid\":\"\"},on:{\"dragover\":function($event){$event.preventDefault();_vm.dragging = true}}},[(_vm.descriptionTextResource)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.descriptionTextResource))+\" \")])],1)],1):_vm._e(),_c('v-row',{directives:[{name:\"sortable-photos\",rawName:\"v-sortable-photos\",value:({ onEnd: _vm.onSortEnd }),expression:\"{ onEnd: onSortEnd }\"}],staticClass:\"mb-16\"},[_vm._l((_vm.photos),function(photo){return _c('v-col',{key:photo.id,staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"sm\":\"4\",\"md\":\"3\",\"lg\":\"2\"},on:{\"dragstart\":function($event){_vm.ignoreDragForUpload = true},\"dragend\":function($event){_vm.ignoreDragForUpload = false;\n _vm.dragging = false;}}},[_c('PhotoTile',{attrs:{\"endpoint\":_vm.endpoint,\"photo\":photo},on:{\"edit\":_vm.openItemDetails,\"delete\":_vm.deletePhoto}})],1)}),_c('v-col',{staticClass:\"d-flex\",attrs:{\"lg\":\"2\",\"md\":\"3\",\"sm\":\"4\",\"cols\":\"12\"}},[_c('v-tooltip',{key:\"tooltip\",attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-card',_vm._g(_vm._b({staticClass:\"d-flex flex-column fill-height\",attrs:{\"width\":\"100%\"},on:{\"click\":function($event){return _vm.add()}}},'v-card',attrs,false),on),[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(_vm._s(_vm.$t(\"Add new\")))]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)]}}])},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"PhotosUpload.DragAndDropHint\"))+\" \")])])],1)],2),_c('v-file-input',{ref:\"inputRef\",staticClass:\"hide-input-field\",attrs:{\"multiple\":\"\",\"accept\":\"image/*\"},model:{value:(_vm.filesToUpload),callback:function ($$v) {_vm.filesToUpload=$$v},expression:\"filesToUpload\"}}),(_vm.dragging && !_vm.ignoreDragForUpload)?_c('div',{staticClass:\"dropzone white--text\",on:{\"dragleave\":function($event){$event.preventDefault();_vm.dragging = false},\"dragend\":function($event){$event.preventDefault();_vm.dragging = false},\"drop\":function($event){$event.preventDefault();return _vm.dropFile.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"PhotosUpload.Dropzone\"))+\" \")]):_vm._e(),_c('v-overlay',{attrs:{\"absolute\":\"\",\"value\":_vm.uploading,\"z-index\":3}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"64\"}})],1),_c('PhotoForm',{attrs:{\"endpoint\":_vm.endpoint,\"open\":_vm.photoFormOpen,\"photo\":_vm.photoForForm,\"callback\":_vm.getPhotos},on:{\"update:open\":function($event){_vm.photoFormOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\"},on:{\"dblclick\":_vm.editPhoto}},[_c('v-img',{attrs:{\"width\":\"100%\",\"height\":\"200\",\"max-height\":\"200\",\"src\":_vm.src}},[_c('template',{slot:\"placeholder\"},[_c('v-skeleton-loader',{attrs:{\"loading\":true,\"type\":\"image\"}})],1)],2),(_vm.photo.isMain)?_c('v-badge',{staticClass:\"align-self-center main-badge\",attrs:{\"inline\":\"\",\"content\":_vm.$t('Photo.Main'),\"offset-x\":\"100%\",\"color\":\"primary\"}}):_vm._e(),_c('v-card-subtitle',[_vm._v(\" \"+_vm._s(_vm.photo.filename)+\" \")]),_c('v-card-text',{staticClass:\"d-flex align-center flex-wrap\"},_vm._l((_vm.getTags),function(tag,index){return _c('div',{key:tag,staticClass:\"tag\"},[(index < 2)?_c('v-chip',[_vm._v(\" \"+_vm._s(_vm.getTagText(tag))+\" \")]):_vm._e(),(index === 2)?_c('v-chip',[_vm._v(\" \"+_vm._s(\"+ \" + (_vm.photo.tagIds.length - 2))+\" \")]):_vm._e()],1)}),0),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.editPhoto()}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deletePhoto()}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { PhotoViewModel } from \"./types\";\nimport { Action, Getter } from \"vuex-class\";\nimport { PhotoTag } from \"@/shared/models/photoTag\";\n\n@Component\nexport default class PhotoTile extends Vue {\n @Prop() endpoint?: string;\n @Prop() photo?: PhotoViewModel;\n\n @Action(\"codebooks/refreshPhotoTags\") refreshTags?: () => Promise;\n @Getter(\"codebooks/photoTags\") tags?: PhotoTag[];\n\n src: any = \"\";\n mounted() {\n if (!this.photo?.id) {\n return;\n }\n\n Vue.axios\n .get(this.endpoint + \"/\" + this.photo?.id + \"?width=280&quality=95\", {\n responseType: \"blob\",\n })\n .then((res) => {\n const reader = new FileReader();\n reader.readAsDataURL(res.data);\n reader.onload = () => {\n this.src = reader.result;\n };\n })\n .catch(() => {\n this.src = require(\"@/assets/images/no-image-icon-23488.png\");\n });\n }\n\n async created() {\n if ((this.tags?.length ?? 0) === 0 && this.refreshTags) {\n await this.refreshTags();\n }\n }\n\n editPhoto() {\n this.$emit(\"edit\", this.photo);\n }\n\n deletePhoto() {\n this.$emit(\"delete\", this.photo);\n }\n\n get getTags() {\n return this.photo?.tagIds.slice(0, 3);\n }\n\n getTagText(id: number) {\n const tag = this.tags?.find((x) => x.id == id);\n if (!tag) {\n return \"\";\n }\n\n return this.$t(tag.textResourceKey);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoTile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotoTile.vue?vue&type=template&id=1184ea26&scoped=true&\"\nimport script from \"./PhotoTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotoTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PhotoTile.vue?vue&type=style&index=0&id=1184ea26&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 \"1184ea26\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBadge,VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VChip,VImg,VSkeletonLoader,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{staticClass:\"photo-form\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialPhoto,\"watched\":_vm.photo,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"photo-form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){return _vm.$emit('update:open', false)}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[(!_vm.simpleForm)?_c('div',{staticClass:\"photo-form-title\"},[(!!_vm.photo && !!_vm.photo.id)?_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t(\"Photo.Editing\"))+\" - \"+_vm._s(_vm.photo.filename)+\" \")]):_vm._e()]):_c('div',{staticClass:\"photo-form-title\"},[_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t(\"Photo.Editing\"))+\" \")])]),_c('v-form',{key:_vm.fkey,ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[(!_vm.simpleForm)?_c('v-container',{staticClass:\"tab-item\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Photo.Name') + '*',\"rules\":[_vm.rules.required],\"hide-details\":\"\"},model:{value:(_vm.model.filename),callback:function ($$v) {_vm.$set(_vm.model, \"filename\", $$v)},expression:\"model.filename\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Photo.Main'),\"hide-details\":\"\"},model:{value:(_vm.model.isMain),callback:function ($$v) {_vm.$set(_vm.model, \"isMain\", $$v)},expression:\"model.isMain\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":\"Title\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.model.title),callback:function ($$v) {_vm.$set(_vm.model, \"title\", $$v)},expression:\"model.title\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Alt\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.model.altText),callback:function ($$v) {_vm.$set(_vm.model, \"altText\", $$v)},expression:\"model.altText\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Aria-label\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.model.aria),callback:function ($$v) {_vm.$set(_vm.model, \"aria\", $$v)},expression:\"model.aria\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.tags,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\",\"chips\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"deletable-chips\":\"\",\"label\":_vm.$t('Photo.Tags')},model:{value:(_vm.model.tagIds),callback:function ($$v) {_vm.$set(_vm.model, \"tagIds\", $$v)},expression:\"model.tagIds\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.loadingPhoto)?_c('v-skeleton-loader',{attrs:{\"loading\":true,\"type\":\"image\",\"transition\":\"scale-transition\"}}):_vm._e(),(!_vm.loadingPhoto)?_c('v-img',{staticClass:\"photo\",attrs:{\"src\":_vm.src}}):_vm._e()],1)],1)],1):_c('v-container',{staticClass:\"tab-item\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":\"Title\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.model.title),callback:function ($$v) {_vm.$set(_vm.model, \"title\", $$v)},expression:\"model.title\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Alt\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.model.altText),callback:function ($$v) {_vm.$set(_vm.model, \"altText\", $$v)},expression:\"model.altText\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Aria-label\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.model.aria),callback:function ($$v) {_vm.$set(_vm.model, \"aria\", $$v)},expression:\"model.aria\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.loadingPhoto)?_c('v-skeleton-loader',{attrs:{\"loading\":true,\"type\":\"image\",\"transition\":\"scale-transition\"}}):_vm._e(),(!_vm.loadingPhoto)?_c('v-img',{staticClass:\"photo\",attrs:{\"src\":_vm.src}}):_vm._e()],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class PhotoViewModel {\n id = 0;\n accomodationUnitTypeId = 0;\n\n filename = \"\";\n isMain = false;\n order = 0;\n\n title = \"\";\n altText = \"\";\n aria = \"\";\n\n tagIds: number[] = [];\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { PhotoViewModel } from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { Action, Getter } from \"vuex-class\";\nimport { PhotoTag } from \"@/shared/models/photoTag\";\nimport _ from \"lodash\";\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class PhotoForm extends Vue {\n @Prop() endpoint?: string;\n @Prop() photo?: PhotoViewModel;\n\n @Prop({ default: false }) open!: boolean;\n @Prop() callback!: () => any;\n\n @Prop({ default: false }) simpleForm?: boolean;\n\n fkey = 0;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n }\n\n if (fresh) {\n this.model = _.cloneDeep(this.photo);\n this.initialPhoto = _.cloneDeep(this.model);\n this.loadPhoto();\n } else {\n this.model = new PhotoViewModel();\n this.initialPhoto = _.cloneDeep(this.model);\n }\n }\n\n src: any = \"\";\n\n model?: PhotoViewModel = new PhotoViewModel();\n initialPhoto?: PhotoViewModel = new PhotoViewModel();\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid;\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n submit() {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid\"),\n timeout: 5000,\n });\n\n return;\n }\n\n const model = {\n photo: this.model,\n };\n\n if (this.endpoint && this.photo) {\n const tempEndpoint = !this.simpleForm\n ? this.endpoint + \"/\" + this.photo.id\n : this.endpoint\n Vue.axios.put(tempEndpoint, model).then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Photo.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n\n this.$emit(\"update:open\", false);\n this.callback();\n });\n }\n }\n\n loadingPhoto = false;\n loadPhoto() {\n this.loadingPhoto = true;\n this.src = \"\";\n\n if (this.simpleForm && this.endpoint) {\n Vue.axios\n .get(this.endpoint + \"/details\")\n .then((res) => {\n this.model = res.data;\n });\n }\n\n if (!this.photo?.id) {\n return;\n }\n\n const tempEndpoint = !this.simpleForm\n ? this.endpoint + \"/\" + this.photo.id\n : this.endpoint\n\n Vue.axios\n .get(tempEndpoint + \"?width=920&quality=95\", {\n responseType: \"blob\",\n })\n .then((res) => {\n const reader = new FileReader();\n reader.readAsDataURL(res.data);\n reader.onload = () => {\n this.src = reader.result;\n };\n })\n .catch(() => {\n this.src = require(\"@/assets/images/no-image-icon-23488.png\");\n })\n .finally(() => {\n this.loadingPhoto = false;\n });\n }\n\n @Action(\"codebooks/refreshPhotoTags\") refreshTags?: () => Promise;\n @Getter(\"codebooks/photoTags\") tags?: PhotoTag[];\n\n rules = {};\n async created() {\n this.rules = {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n };\n\n if ((this.tags?.length ?? 0) === 0 && this.refreshTags) {\n await this.refreshTags();\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotoForm.vue?vue&type=template&id=2c1fed30&scoped=true&\"\nimport script from \"./PhotoForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotoForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PhotoForm.vue?vue&type=style&index=0&id=2c1fed30&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 \"2c1fed30\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VContainer,VForm,VImg,VRow,VSelect,VSkeletonLoader,VTextField})\n","import Vue from \"vue\";\nimport Sortable from \"sortablejs\";\n\nfunction watchClass(targetNode: any, classToWatch: any) {\n let lastClassState = targetNode.classList.contains(classToWatch);\n const observer = new MutationObserver((mutationsList) => {\n for (let i = 0; i < mutationsList.length; i++) {\n const mutation = mutationsList[i];\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"class\"\n ) {\n const currentClassState = (mutation.target as Element).classList.contains(\n classToWatch\n );\n if (lastClassState !== currentClassState) {\n lastClassState = currentClassState;\n if (!currentClassState) {\n (mutation.target as Element).classList.add(\"sortHandle\");\n }\n }\n }\n }\n });\n observer.observe(targetNode, { attributes: true });\n }\n \n const directive = Vue.directive(\"sortable-photos\", {\n inserted: (el, binding) => {\n el.querySelectorAll(\".v-card\").forEach((draggableEl) => {\n // Need a class watcher because sorting v-data-table rows asc/desc removes the sortHandle class\n watchClass(draggableEl, \"sortHandle\");\n draggableEl.classList.add(\"sortHandle\");\n });\n \n // const row = el.querySelector(\".row\");\n \n if (el) {\n Sortable.create(el, binding.value ? { ...binding.value } : { });\n }\n },\n });\n \n export default directive;","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { PhotoViewModel } from \"./types\";\nimport PhotoTile from \"./PhotoTile.vue\";\nimport PhotoForm from \"./PhotoForm.vue\";\nimport SortablePhotos from \"./SortablePhotosDirective\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\n\n@Component({\n components: {\n PhotoTile,\n PhotoForm,\n FormDescription\n },\n directives: {\n SortablePhotos,\n },\n})\nexport default class PhotoEditor extends Vue {\n @Prop() endpoint?: string;\n @Prop() descriptionTextResource?: string;\n\n photos: PhotoViewModel[] = [];\n\n mounted() {\n this.getPhotos();\n }\n\n getPhotos() {\n Vue.axios\n .get>(this.endpoint || \"\")\n .then((res) => {\n this.photos = res.data.result;\n });\n }\n\n onSortEnd(evt: any) {\n if (!this.photos) {\n return;\n }\n\n const photosTmp = this.photos;\n\n const originItem = photosTmp[evt.oldIndex];\n const targetItem = photosTmp[evt.newIndex];\n\n const originIndex = photosTmp.indexOf(originItem);\n const targetIndex = photosTmp.indexOf(targetItem);\n\n photosTmp.splice(targetIndex, 0, photosTmp.splice(originIndex, 1)[0]);\n\n this.saveOrder();\n }\n\n saveOrder() {\n const model = {\n photos: this.photos,\n };\n\n Vue.axios.put(this.endpoint || \"\", model).then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Photos.OrderSaved\"),\n timeout: 5000,\n } as Notification);\n });\n }\n\n // upload\n uploading = false;\n dragging = false;\n ignoreDragForUpload = false;\n filesToUpload: any = {};\n\n add() {\n ((this.$refs.inputRef as Vue).$el.lastElementChild?.firstElementChild\n ?.firstElementChild?.lastElementChild as HTMLElement).click();\n }\n\n dropFile(e: any) {\n this.dragging = false;\n\n const imageTypeRegex = new RegExp(/image\\/*/);\n\n for (const file of e.dataTransfer.files) {\n if (!imageTypeRegex.test(file.type)) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotosUpload.NotAllImages\"),\n timeout: 5000,\n } as Notification);\n return;\n }\n }\n this.filesToUpload = e.dataTransfer.files;\n }\n\n @Watch(\"filesToUpload\")\n uploadImages() {\n if (!this.filesToUpload || this.filesToUpload.length == 0) {\n return;\n }\n\n const formData = new FormData();\n for (let i = 0; i < this.filesToUpload.length; i++) {\n formData.append(\"images\", this.filesToUpload[i]);\n }\n\n this.uploading = true;\n Vue.axios\n .post(this.endpoint || \"\", formData)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"PhotosUpload.Success\"),\n timeout: 5000,\n } as Notification);\n\n // this.$emit(\"uploaded\");\n this.getPhotos();\n })\n .finally(() => (this.uploading = false));\n }\n\n // photo form\n photoFormOpen = false;\n photoForForm: PhotoViewModel | null = null;\n openItemDetails(photo: PhotoViewModel) {\n this.photoForForm = photo;\n this.photoFormOpen = true;\n }\n\n deletePhoto(photo: PhotoViewModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${photo.filename}'`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deletePhotoConfirm(photo);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deletePhotoConfirm({ id }: { id: number }) {\n Vue.axios\n .delete(this.endpoint + `/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Photo.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.getPhotos();\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoEditor.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotoEditor.vue?vue&type=template&id=95d842dc&scoped=true&\"\nimport script from \"./PhotoEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotoEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PhotoEditor.vue?vue&type=style&index=0&id=95d842dc&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 \"95d842dc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VFileInput,VIcon,VOverlay,VProgressCircular,VRow,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.updateCustomerVATStatusLoading}}),_c('v-row',[_c('v-col',{staticClass:\"d-flex align-baseline pt-0\",attrs:{\"cols\":\"12\"}},[_c('DeferredAutocompleteWrapper',{staticClass:\"flex-grow-1\",attrs:{\"label\":_vm.labelOwnerManager,\"fetch\":_vm.customerFetch,\"clearable\":\"\"},on:{\"search\":function($event){_vm.searchValue = $event.search},\"clear\":function($event){return _vm.$emit('clear')},\"blur\":_vm.onBlur,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onBlur.apply(null, arguments)}},model:{value:(_vm.customerId),callback:function ($$v) {_vm.customerId=$$v},expression:\"customerId\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.openCustomerForm()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-pen\")])],1)],1)],1),(!!_vm.clientInfoData && _vm.showCustomerData)?_c('v-row',{staticClass:\"property-owner-fields\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('PropertyOwner.OIB'),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.clientInfoData.oib),callback:function ($$v) {_vm.$set(_vm.clientInfoData, \"oib\", $$v)},expression:\"clientInfoData.oib\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('PropertyOwner.Address'),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.clientInfoData.address),callback:function ($$v) {_vm.$set(_vm.clientInfoData, \"address\", $$v)},expression:\"clientInfoData.address\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"value\":_vm.clientInfoData.city,\"label\":_vm.$t('PropertyOwner.City'),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('PropertyOwner.Country'),\"items\":_vm.sortedCountries,\"item-value\":\"id\",\"item-text\":\"text\",\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.clientInfoData.countryId),callback:function ($$v) {_vm.$set(_vm.clientInfoData, \"countryId\", $$v)},expression:\"clientInfoData.countryId\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"value\":_vm.clientInfoData.postalCode,\"label\":_vm.$t('PropertyOwner.PostalCode'),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{staticClass:\"mt-0 mb-4\",attrs:{\"label\":_vm.$t('PropertyOwner.OwnerPaysVAT'),\"hide-details\":\"\",\"dense\":\"\",\"ripple\":false},on:{\"change\":_vm.updateCustomerVATStatus},model:{value:(_vm.clientInfoData.ownerPaysVAT),callback:function ($$v) {_vm.$set(_vm.clientInfoData, \"ownerPaysVAT\", $$v)},expression:\"clientInfoData.ownerPaysVAT\"}})],1)],1):_vm._e(),_c('CustomerForm',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":_vm.formCustomerId,\"prefill\":!_vm.formCustomerId ? _vm.customerFormPrefilData : null,\"isForOwner\":_vm.isForOwner,\"isForPropertyManager\":_vm.isForPropertyManager},on:{\"update:open\":[function($event){_vm.customerFormOpen=$event},function($event){$event == false ? _vm.setCustomerAndLoad(null) : ''}],\"saved\":function($event){return _vm.setCustomerAndLoad($event.id)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport DeferredAutocompleteWrapper from \"@/components/misc/DeferredAutocompleteWrapper.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Country } from \"@/shared/models/country\";\nimport { DefferedAutocompleteItem } from \"@/components/misc/DeferredAutocomplete.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport CustomerForm from \"@/components/CustomerForm.vue\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\n\nexport type PropertyOwnerInfo = {\n id: number; // the important (payload) bit\n name: string | null;\n oib: string | null;\n\n address: string | null;\n postalCode: string | null;\n city: string | null;\n\n countryId: number | null;\n countryName: string | null;\n email: string | null;\n\n ownerPaysVAT: boolean;\n};\n\n@Component({\n components: {\n DeferredAutocompleteWrapper,\n CustomerForm,\n LoadingOverlay,\n },\n})\nexport default class PropertyOwner extends Vue {\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @PropSync(\"isActive\") internalActive?: boolean;\n\n async created() {\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n await this.refreshCountries();\n }\n }\n\n get sortedCountries() {\n return this.countries\n ?.map((x) => ({\n id: x.id,\n text: this.$t(`Country.Official.${x.isoThreeLetterCode}`).toString(),\n }))\n .sort((a, b) => a.text.localeCompare(b.text));\n }\n\n @Prop({ default: null }) value?: number | null;\n @Prop({ default: false }) showCustomerData?: boolean;\n @Prop({ default: false }) isForOwner?: boolean;\n @Prop({ default: false }) isForPropertyManager?: boolean;\n\n @Prop() labelType: string | undefined;\n\n customerId: number | null = null;\n formCustomerId: number | null = null;\n\n // sets the new customer info when a new is created\n // or the old if he was update or the customer form was just closed\n // the 'value' watcher triggers the load\n setCustomerAndLoad(customerId: number | null) {\n if (customerId || this.formCustomerId) {\n this.customerId = customerId ? customerId : this.formCustomerId;\n }\n }\n\n // by setting the current customer to null we prepare the autocomplete wrapper\n // to load the new customer info when we set him\n openCustomerForm() {\n this.formCustomerId = this.customerId;\n this.customerFormOpen = true;\n this.customerId = null;\n }\n\n searchValue = \"\";\n get customerFormPrefilData() {\n const names = (this.searchValue ?? \"\").split(\" \");\n return {\n firstName: names.splice(0, 1)[0] || \"\",\n lastName: names.join(\" \"),\n } as CustomerModel;\n }\n\n onBlur() {\n if (this.searchValue) {\n this.$nextTick(() => {\n if (!this.customerId) {\n this.openCustomerForm();\n }\n });\n }\n }\n\n get computedActive() {\n return !!this.searchValue && !this.customerId;\n }\n @Watch(\"computedActive\")\n computedActiveWatch(fresh: boolean) {\n this.internalActive = fresh;\n }\n\n @Watch(\"value\", { immediate: true })\n valueWatch(fresh: number | null) {\n this.customerId = fresh ?? null;\n\n if (this.customerId) {\n this.loadCustomerData();\n }\n }\n\n @Watch(\"customerId\")\n customerIdWatch(fresh: number | null) {\n this.$emit(\"input\", fresh);\n }\n\n get labelOwnerManager() {\n if (this.labelType == \"propertyOwner\") {\n return this.$t(\"Property.Owner\");\n }\n if (this.labelType == \"propertyManager\") {\n return this.$t(\"Property.PropertyManager\");\n }\n return \"\";\n }\n\n updateCustomerVATStatusLoading = false;\n updateCustomerVATStatus() {\n const data = {\n id: this.clientInfoData?.id,\n customerVATStatus: this.clientInfoData?.ownerPaysVAT,\n };\n\n this.updateCustomerVATStatusLoading = true;\n\n this.axios\n .put(`customers/UpdateCustomerVATStatus`, data)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"OwnerVATStatus.SaveSuccess\"),\n timeout: 5000,\n });\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"OwnerVATStatus.SaveFailure\"),\n timeout: 5000,\n });\n\n // reset the field in case of an error\n if (this.clientInfoData) {\n this.clientInfoData.ownerPaysVAT = !this.clientInfoData.ownerPaysVAT;\n }\n })\n .finally(() => (this.updateCustomerVATStatusLoading = false));\n }\n\n customerFormOpen = false;\n clientInfoData: PropertyOwnerInfo | null = null;\n loading = false;\n loadCustomerData() {\n if (this.customerId && !this.loading) {\n this.loading = true;\n this.axios\n .get(`customers/${this.customerId}`)\n .then(({ data }) => {\n this.clientInfoData = {\n id: data.id,\n email: data.eMail ?? \"\",\n name: data.isLegalEntity\n ? data.legalEntityName ?? \"\"\n : [data.firstName, data.lastName]\n .filter((x) => !!x && x.length > 0)\n .join(\" \"),\n oib: data.isLegalEntity\n ? data.businessId ?? \"\"\n : data.identificationDocumentNumber ?? \"\",\n address: [data.streetName, data.houseNumber]\n .filter((x) => !!x && x.length > 0)\n .join(\" \"),\n postalCode: data.postalCode ?? \"\",\n city: data.city ?? \"\",\n countryId: data.countryOfResidenceId ?? null,\n countryName: null,\n ownerPaysVAT: data.ownerPaysVAT,\n };\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n // autocomplete\n isById(x: any): x is { id: number } {\n return x && (x as { id: number }).id !== undefined;\n }\n isBySearch(x: any): x is { search: string } {\n return x && !!(x as { search: string }).search;\n }\n customerFetch(\n val: { id: number } | { search: string }\n ): Promise {\n if (this.isById(val)) {\n return this.axios.get(`customers/${val.id}`).then(({ data }) => [\n {\n id: data.id,\n text: data.isLegalEntity\n ? data.legalEntityName\n : // prettier-ignore\n `${data.firstName}${data.middleName ? ' '+ data.middleName : ''} ${data.lastName}`,\n },\n ]);\n } else if (this.isBySearch(val)) {\n return this.axios\n .get>(\"customers\", {\n params: {\n $orderby: \"name\",\n name: val.search,\n },\n })\n .then(({ data }) =>\n data.result.map((x) => ({\n id: x.id,\n text: x.name,\n }))\n );\n } else {\n return Promise.resolve([]);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyOwner.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyOwner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertyOwner.vue?vue&type=template&id=d56c83de&scoped=true&\"\nimport script from \"./PropertyOwner.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertyOwner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertyOwner.vue?vue&type=style&index=0&id=d56c83de&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 \"d56c83de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"800\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',{ref:\"form\"},[_c('v-card',{attrs:{\"min-height\":\"580\",\"max-height\":\"1000\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"ExportOfficialRates.Settings\"))+\" \")]),_c('v-card-text',[_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.OwnersToExport') + '*',\"items\":_vm.owners,\"item-text\":function (x) { return x.fullName; },\"item-value\":function (x) { return x.id; },\"rules\":[_vm.rules.atLeastOneSelected],\"multiple\":\"\",\"outlined\":\"\",\"small-chips\":\"\",\"dense\":\"\",\"calculate-widths\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index < 2)?_c('v-chip',{staticClass:\"mt-2 mb-1\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(item.fullName))])]):_vm._e(),(index === 2)?_c('v-chip',{staticClass:\"mt-1 mb-1\"},[_c('span',[_vm._v(\" ... \")])]):_vm._e()]}}]),model:{value:(_vm.selectedOwners),callback:function ($$v) {_vm.selectedOwners=$$v},expression:\"selectedOwners\"}})],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.OwnersAOSToExport'),\"items\":_vm.ownersAddOnServices,\"item-text\":function (x) { return x.name; },\"item-value\":function (x) { return x.id; },\"multiple\":\"\",\"outlined\":\"\",\"small-chips\":\"\",\"dense\":\"\",\"calculate-widths\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index < 2)?_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(item.name))])]):_vm._e(),(index === 2)?_c('v-chip',{staticClass:\"mt-1 mb-1\"},[_c('span',[_vm._v(\" ... \")])]):_vm._e()]}}]),model:{value:(_vm.selectedOwnersAddOnServices),callback:function ($$v) {_vm.selectedOwnersAddOnServices=$$v},expression:\"selectedOwnersAddOnServices\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0 pb-0\",attrs:{\"cols\":\"5\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('ExportOfficialRates.ChoosePrice') + '*',\"items\":_vm.exportTypes,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.value; },\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.officialRatesExportType),callback:function ($$v) {_vm.officialRatesExportType=$$v},expression:\"officialRatesExportType\"}})],1),_c('v-col',{staticClass:\"pt-0 pb-0\",attrs:{\"cols\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('ExportOfficialRates.ChooseYear') + '*',\"items\":_vm.years,\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.officialRatesYear),callback:function ($$v) {_vm.officialRatesYear=$$v},expression:\"officialRatesYear\"}})],1),_c('v-col',{staticClass:\"pt-0 pb-0\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.ExportLanguage') + '*',\"items\":_vm.supportedLanguages,\"item-value\":function (x) { return x.cultureCode; },\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.getSpecialNote($event)}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t(item.cultureCode)))])])]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(_vm.$t(item.cultureCode)))])])]}}]),model:{value:(_vm.cultureCode),callback:function ($$v) {_vm.cultureCode=$$v},expression:\"cultureCode\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0 pb-0\",attrs:{\"cols\":\"12\"}},[_c('RichTextEditor',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.SpecialNote'),\"editorToolbar\":_vm.editorToolbar},model:{value:(_vm.specialNote),callback:function ($$v) {_vm.specialNote=$$v},expression:\"specialNote\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0 pb-0\",attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.SaveSpecialNote')},model:{value:(_vm.officialRateExportForOwnerShouldSaveSpecialNote),callback:function ($$v) {_vm.officialRateExportForOwnerShouldSaveSpecialNote=$$v},expression:\"officialRateExportForOwnerShouldSaveSpecialNote\"}})],1),_c('v-col',{staticClass:\"pt-0 pb-0\",attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.LandscapeView')},model:{value:(_vm.officialRateExportShouldBeLandscape),callback:function ($$v) {_vm.officialRateExportShouldBeLandscape=$$v},expression:\"officialRateExportShouldBeLandscape\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.exportOfficialRates()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Ref, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DateTime } from \"luxon\";\nimport _ from \"lodash\";\nimport { Getter } from \"vuex-class\";\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport { PropertySpecialNotes } from \"@/shared/models/property\";\nimport { AccomodationUnitTypeUnitOwners, OfficialRateExportForOwners, OwnersAddOnServices } from \"../types\";\nimport { OfficialRatesExportType } from \"@/shared/models/enums.type\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { LanguageView } from \"@/shared/models/languages\";\n \nconst flagImages = require.context('@/assets/images/flags/', false, /\\.png$/)\n \n@Component({\n components: {RichTextEditor}\n})\n \nexport default class OfficialRatesExportForOwners extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() propertyId?: number;\n @Prop() accUnitTypeId?: number;\n \n @Getter(\"language/supportedLanguages\") supportedLanguages?: LanguageView[];\n @Getter(\"language/language\") language?: string;\n\n mounted() {\n this.cultureCode = this.language ?? \"\";\n this.loadSpecialNotes();\n this.getOwners();\n this.getOwnersAddOnServices();\n }\n \n officialRatesYear = DateTime.now().year;\n years = _.range(DateTime.now().year + 6, DateTime.now().year - 1, -1);\n\n specialNotes: PropertySpecialNotes[] = [];\n exportBody: OfficialRateExportForOwners = new OfficialRateExportForOwners;\n selectedOwners = [] as number[];\n selectedOwnersAddOnServices = [] as number[];\n \n cultureCode = \"\";\n specialNote = \"\";\n\n loading = false;\n\n officialRatesExportType = OfficialRatesExportType.InputPrice;\n\n officialRateExportShouldBeLandscape = false;\n officialRateExportForOwnerShouldSaveSpecialNote = true;\n\n editorToolbar = [\n [{'size': [ '16px', '32px', '24px', '18.7px', '14px', '12px' ]}],\n [\"bold\", \"italic\", \"underline\"],\n [\n { align: \"\" },\n { align: \"center\" },\n { align: \"right\" },\n { align: \"justify\" },\n ],\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n [{ indent: \"-1\" }, { indent: \"+1\" }],\n [{ color: [] }],\n ];\n\n exportTypes = [\n {\n value: OfficialRatesExportType.InputPrice,\n text: \"t.OfficialRateExport.InputPrice\",\n },\n {\n value: OfficialRatesExportType.InputAndOutputPrice,\n text: \"t.OfficialRateExport.InputAndOutputPrice\",\n },\n ];\n \n @Watch('internalOpen')\n onOpenChanged(fresh: boolean) {\n if(fresh) { \n this.cultureCode = this.language ?? \"\";\n this.loadSpecialNotes();\n this.getSpecialNote(this.cultureCode)\n this.getOwners();\n this.getOwnersAddOnServices();\n }\n this.form?.resetValidation();\n }\n \n @Ref('form') form?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n \n loadSpecialNotes() {\n this.loading = true;\n\n this.axios\n .get>\n (\"/Properties/\" + this.propertyId + \"/propertySpecialNotes\")\n .then((res) => {\n this.specialNotes = res.data.result;\n this.getSpecialNote(this.cultureCode)\n })\n .finally(() => {\n this.loading = false;\n })\n }\n \n\n owners: AccomodationUnitTypeUnitOwners[] = [];\n getOwners() {\n this.loading = true;\n\n Vue.axios\n .get(\n `/properties/${this.propertyId}/accomodationUnitTypesOwners/${this.accUnitTypeId ?? 0}`\n )\n .then((res) => {\n this.owners = res.data;\n })\n .finally(() => {\n this.loading = false;\n })\n }\n\n ownersAddOnServices: OwnersAddOnServices[] = [];\n getOwnersAddOnServices() {\n this.loading = true;\n\n Vue.axios\n .get(\n `/properties/${this.propertyId}/ownersAddOnServices/${this.accUnitTypeId ?? 0}`\n )\n .then((res) => {\n this.ownersAddOnServices = res.data;\n this.selectedOwnersAddOnServices = res.data.map((x) => x.id)\n })\n .finally(() => {\n this.loading = false;\n })\n }\n\n imgSrc(lang: string) {\n return flagImages('./' + lang + \".png\")\n }\n\n get getExportBody(){\n this.exportBody.propertyId = this.propertyId;\n this.exportBody.accUnitTypeId = this.accUnitTypeId;\n this.exportBody.ownerIds = this.selectedOwners.join(\",\");\n this.exportBody.ownerAddOnServiceIds = this.selectedOwnersAddOnServices.join(\",\");\n this.exportBody.languageCode = this.cultureCode;\n this.exportBody.specialNote = this.specialNote;\n this.exportBody.saveSpecialNote = this.officialRateExportForOwnerShouldSaveSpecialNote;\n this.exportBody.isLandscape = this.officialRateExportShouldBeLandscape;\n this.exportBody.exportType = this.officialRatesExportType;\n this.exportBody.year = this.officialRatesYear;\n\n return this.exportBody;\n }\n \n exportOfficialRates() {\n this.loading = true;\n const formValid = this.form?.validate();\n\n if(formValid){\n this.axios\n .post(`/properties/officialRates/exportForOwners`, \n this.getExportBody, \n { responseType: \"blob\" })\n .then((res) => {\n const groups = /filename=\"?(?[^;\"]+)\"?;/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"OfficialRates.pdf\");\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GenerateOfficialRatesSuccess\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.loading = false;\n });\n } else this.loading = false\n }\n \n getSpecialNote(event: string) {\n const specialNote = this.specialNotes.find(x => x.cultureCode === event);\n\n if (specialNote) {\n this.specialNote = specialNote.note;\n } else {\n this.specialNote = \"\";\n }\n }\n\n get rules() {\n return {\n atLeastOneSelected: (value: any[]) =>\n (!!value && value.length > 0) ||\n this.$t(\"Validation.Required\").toString()\n };\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesExportForOwners.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesExportForOwners.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesExportForOwners.vue?vue&type=template&id=60b02c03&scoped=true&\"\nimport script from \"./OfficialRatesExportForOwners.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesExportForOwners.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfficialRatesExportForOwners.vue?vue&type=style&index=0&id=60b02c03&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 \"60b02c03\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VChip,VCol,VDialog,VForm,VProgressLinear,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-dialog',{attrs:{\"max-width\":\"800\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"Property.AgencyFee.TableDescription\"))+\" \")]),_c('v-card-text',[_c('v-data-table',{class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"headers\":_vm.translatedAgencyFeeHeaders,\"items\":_vm.list.result,\"loading\":_vm.loading,\"item-key\":\"id\",\"show-select\":\"\",\"sort-by\":\"name\",\"must-sort\":\"\",\"footer-props\":{ 'items-per-page-options': [5, 10, 25, 50] },\"fixed-header\":\"\",\"height\":\"100%\"},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"input-value\":_vm.areAllAgencyFeesSelected()},on:{\"change\":_vm.selectAgencyFees}})]},proxy:true},{key:\"item.price\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.priceIsAbsolute)?_c('NumericInputImproved',{attrs:{\"validateInput\":true,\"suffix\":_vm.getCurrencyCode(item.currencyId)},model:{value:(item.price),callback:function ($$v) {_vm.$set(item, \"price\", $$v)},expression:\"item.price\"}}):_c('NumericInputImproved',{attrs:{\"validateInput\":true,\"suffix\":\"%\"},model:{value:(item.price),callback:function ($$v) {_vm.$set(item, \"price\", $$v)},expression:\"item.price\"}})]}},{key:\"item.calculationMethodId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.getPriceCalculationMethodText(item.calculationMethodId))+\" \")])]}},{key:\"no-data\",fn:function(){return [_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fa-hotel\"}})]},proxy:true}]),model:{value:(_vm.agencyFeesToAdd),callback:function ($$v) {_vm.agencyFeesToAdd=$$v},expression:\"agencyFeesToAdd\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"disabled\":!_vm.submitDisabled,\"color\":\"primary\"},on:{\"click\":_vm.popupForReservationUpdate}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Add\"))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { AgencyFeeModel, AgencyFeesPropertyModel, AgencyFeesPropertyRequest } from \"@/shared/models/agencyFee\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { CalculationMethods, PriceCalculationMethodView } from \"@/shared/models/priceCalculationMethods\";\nimport { DataOptions } from \"vuetify\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport _ from \"lodash\";\nimport NoData from \"../misc/NoData.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport NumericInputImproved from \"../numbers/NumericInputImproved.vue\";\n \n@Component({\n components: {\n NoData,\n NumericInputImproved,\n FormDescription\n },\n})\n\nexport default class PropertyFormAgencyFeeSelection extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @PropSync(\"selectedAgencyFees\") internalSelectedAgencyFees?: AgencyFeesPropertyModel[];\n @Prop() propertyId?: number;\n\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n // prettier-ignore\n @Action(\"codebooks/refreshPriceCalculationMethods\") refreshPriceCalculationMethods?: () => Promise;\n // prettier-ignore\n @Getter(\"codebooks/priceCalculationMethods\") priceCalculationMethods?: PriceCalculationMethodView[];\n\n agencyFeesToAdd = [] as AgencyFeeModel[];\n\n agencyFeeheaders = [\n {\n text: \"AgencyFee.Name\",\n value: \"name\"\n },\n {\n text: \"AgencyFee.Price\",\n value: \"price\"\n },\n {\n text: \"AgencyFee.CalculationMethod\",\n value: \"calculationMethodId\"\n }\n ];\n\n @Watch(\"internalOpen\", { immediate: true })\n async openWatch(fresh: boolean) {\n if (fresh && this.propertyId) {\n this.agencyFeesToAdd = []\n await this.load();\n } \n }\n\n manualMethod(){\n const manualMethod = this.priceCalculationMethods?.find(method => method.id === CalculationMethods.Manual);\n if(manualMethod){ \n manualMethod.textResourceKey = this.$t(\"t.PriceCalculationMethods.FixedAmount\").toString();\n }\n }\n\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n await this.refreshCurrencies();\n }\n\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 && this.refreshPriceCalculationMethods) {\n await this.refreshPriceCalculationMethods();\n }\n this.manualMethod();\n }\n\n filters = {\n name: \"\",\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"name\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n \n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: any) =>\n +value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\"),\n maxDecimals: (value: any) =>\n !(this.countDecimals(+value) > 2) ||\n this.$t(\"Validation.CanOnlyHaveTwoDecimals\"),\n };\n }\n get decimalSeparator() {\n const separator = Intl.NumberFormat(this.internalLanguage)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n return separator;\n }\n\n countDecimals(num: number) {\n return num.toString().split(this.decimalSeparator)[1]?.length || 0;\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n @Getter(\"language/language\") language?: string;\n get cultureCode(){\n return this.language ?? \"hr-HR\";\n }\n async load(): Promise>{\n this.loading = true;\n\n return (\n this.axios\n .get>(\"/AgencyFees/GetAvailableAgencyFeesForProperty/\", {\n params: {\n propertyId: this.propertyId,\n cultureCode: this.cultureCode,\n }})\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false))\n );\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n excludeBookingFee: true\n };\n }\n\n get translatedAgencyFeeHeaders() {\n return this.agencyFeeheaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n getCurrencyCode(currencyId: number) {\n return this.currencies?.find((x) => x.id == currencyId)?.isoCode;\n }\n \n getPriceCalculationMethodText(priceCalculationMethodId: number){\n return this.$t(this.priceCalculationMethods?.find(x => x.id == priceCalculationMethodId)?.textResourceKey || '');\n }\n\n areAllAgencyFeesSelected() {\n return !this.list.result.some(\n (e) => this.agencyFeesToAdd?.indexOf(e) === -1\n );\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading;\n }\n\n selectAgencyFees() {\n if (this.areAllAgencyFeesSelected()) {\n this.agencyFeesToAdd = [];\n } \n else {\n const unselected = this.list.result.filter(\n (e) => this.agencyFeesToAdd.indexOf(e) === -1\n );\n this.agencyFeesToAdd = this.agencyFeesToAdd.concat(unselected);\n }\n }\n\n fees = new AgencyFeesPropertyRequest();\n saving = false;\n\n popupForReservationUpdate() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PropertyAgencyFee.ApplyToFutureReservations\"),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.addSelectedAgencyFeesToProperty(true);\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n this.addSelectedAgencyFeesToProperty(false);\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n async addSelectedAgencyFeesToProperty(updateReservations: boolean){\n this.saving = true;\n this.fees.propertyId = this.propertyId ?? 0;\n this.fees.agencyFeesProperty = this.agencyFeesToAdd;\n this.fees.updateReservations = updateReservations;\n\n this.$emit(\"addAgencyFee\", this.fees);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyFormAgencyFeeSelection.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyFormAgencyFeeSelection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertyFormAgencyFeeSelection.vue?vue&type=template&id=4a9ac1c4&scoped=true&\"\nimport script from \"./PropertyFormAgencyFeeSelection.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertyFormAgencyFeeSelection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertyFormAgencyFeeSelection.vue?vue&type=style&index=0&id=4a9ac1c4&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 \"4a9ac1c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VDataTable,VDialog,VForm})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Model,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport RatingInput from \"@/components/misc/RatingInput.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Country } from \"@/shared/models/country\";\nimport { LatLng, PropertyFormModel } from \"./types\";\nimport TimeInput from \"./TimeInput.vue\";\nimport LocationInput from \"./LocationInput.vue\";\nimport AddOnServicesTable from \"./AddOnServicesTable.vue\";\nimport EVisitorFacilitiesTable from \"./EVisitorFacilitiesTable.vue\";\nimport AmenitiesSelection from \"./AmenitiesSelection.vue\";\nimport DescriptionsTiles from \"./DescriptionsTiles.vue\";\nimport PoisTiles from \"./PoisTiles.vue\";\nimport Otas from \"./Otas.vue\";\nimport AccomodationUnitTypeTiles from \"./AccomodationUnitTypeTiles.vue\";\nimport PhotoEditor from \"@/components/photo-editor/PhotoEditor.vue\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { PropertyType } from \"@/shared/models/propertyType\";\nimport { PricingModel } from \"@/shared/models/pricingModel\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport { OwnerPricingModel } from \"@/shared/models/ownerPricingModel\";\nimport PropertyOwner from \"./PropertyOwner.vue\";\nimport _ from \"lodash\";\nimport {\n AgencyWorkModel,\n AgencyWorkModelsEnum,\n} from \"@/shared/models/agencyWorkModel\";\nimport { VATCategoryForPrepayments } from \"@/shared/models/vatCategoryForPrepayments\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport {\n CategoriesEnum,\n EVisitorIntegrationNameEnum,\n OwnerContractExportType,\n OwnerPricingModelEnum,\n} from \"@/shared/models/enums.type\";\nimport { DateTime } from \"luxon\";\nimport OfficialRatesExportForOwners from \"@/components/property/official-rates/OfficialRatesExportForOwners.vue\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { PriceCalculationMethodView } from \"@/shared/models/priceCalculationMethods\";\nimport {\n AgencyFeesPropertyModel,\n AgencyFeesPropertyRequest,\n} from \"@/shared/models/agencyFee\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport PropertyFormAgencyFeeSelection from \"./PropertyFormAgencyFeeSelection.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\n@Component({\n components: {\n RatingInput,\n TimeInput,\n LocationInput,\n AddOnServicesTable,\n EVisitorFacilitiesTable,\n AmenitiesSelection,\n DescriptionsTiles,\n PoisTiles,\n AccomodationUnitTypeTiles,\n PhotoEditor,\n Otas,\n NumericInputImproved,\n RequireRole,\n PropertyOwner,\n DateField,\n OfficialRatesExportForOwners,\n FormDescription,\n PropertyFormAgencyFeeSelection,\n },\n})\nexport default class PropertyForm extends Vue {\n @Model() model!: PropertyFormModel;\n @PropSync(\"tab\") internalTab?: string;\n @PropSync(\"disable\") internalDisable?: boolean;\n @PropSync(\"add\") internalAdd?: boolean;\n\n current = new PropertyFormModel();\n original = new PropertyFormModel();\n useLocationAsKeyPickup = false;\n originalKeyPickup = false;\n generateOwnerContractOpen = false;\n exportOfficialRatesForOwnerOpen = false;\n addAgencyFeesOpen = false;\n selectedAgencyFees = [] as AgencyFeesPropertyModel[];\n agencyFeePriceManuallyChanged = false;\n\n officialRatesYear = DateTime.now().year;\n years = _.range(DateTime.now().year + 4, 2018, -1);\n\n @Watch(\"model\", { immediate: true })\n modelChanged(fresh: PropertyFormModel) {\n this.useLocationAsKeyPickup =\n fresh.postalCodeId === fresh.keyPickupLocationPostalCodeId &&\n fresh.cityId === fresh.keyPickupLocationCityId &&\n fresh.streetName === fresh.keyPickupLocationStreetName &&\n fresh.houseNumber === fresh.keyPickupLocationHouseNumber &&\n fresh.longitude === fresh.keyPickupLocationLongitude &&\n fresh.latitude === fresh.keyPickupLocationLatitude;\n this.originalKeyPickup = _.cloneDeep(this.useLocationAsKeyPickup);\n this.current = _.cloneDeep(fresh);\n this.original = _.cloneDeep(fresh);\n this.selectedAgencyFees = this.current.agencyFeesProperty;\n }\n @Watch(\"property\", { deep: true })\n propertyChanged() {\n this.$emit(\"input\", this.property);\n }\n\n get property() {\n return this.current;\n }\n\n @Watch(\"property.agencyWorkModelId\")\n ownNameElseAccount(workModel: AgencyWorkModelsEnum | string)\n {\n if(workModel === this.agencyWorkModelsEnum.OwnNameAndOtherInvoice && this.vatCategoriesForPrepayments?.length === 1)\n {\n this.property.vatCategoryForPrepaymentsId = this.property.vatCategoryForPrepaymentsId ?? this.vatCategoriesForPrepayments[0].id\n }\n }\n\n @Watch(\"property.ownerPricingModelId\")\n relativePricing(workModel: OwnerPricingModelEnum | string)\n {\n if (workModel === this.ownerPricingModelEnum.Relative){\n this.property.ownerPayoutPercent = this.property.ownerPayoutPercent ?? null;\n }\n }\n\n propertyOwnerFormActive = false;\n propertyManagerFormActive = false;\n\n get rules() {\n return {\n mustBeZeroOrPositive: (value: number) => {\n return value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\");\n },\n };\n }\n\n @Ref(\"rootForm\") rootForm?: { validate: () => boolean; inputs: any[] };\n @Ref(\"ownerFormRef\") ownerFormRef?: { validate: () => boolean };\n\n async created() {\n // #region codebooks\n const promises = [];\n\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries());\n }\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n if ((this.propertyTypes?.length ?? 0) === 0 && this.refreshPropertyTypes) {\n promises.push(this.refreshPropertyTypes());\n }\n if ((this.pricingModels?.length ?? 0) === 0 && this.refreshPricingModels) {\n promises.push(this.refreshPricingModels());\n }\n if (\n (this.ownerPricingModels?.length ?? 0) === 0 &&\n this.refreshOwnerPricingModels\n ) {\n promises.push(this.refreshOwnerPricingModels());\n }\n if (!this.storedSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n if (\n (this.agencyWorkModels?.length ?? 0) === 0 &&\n this.refreshAgencyWorkModels\n ) {\n promises.push(this.refreshAgencyWorkModels());\n }\n if (\n (this.vatCategoriesForPrepayments?.length ?? 0) === 0 &&\n this.refreshVATCategoriesForPrepayments\n ) {\n promises.push(this.refreshVATCategoriesForPrepayments());\n }\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 &&\n this.refreshPriceCalculationMethods\n ) {\n promises.push(this.refreshPriceCalculationMethods());\n }\n\n await Promise.all(promises);\n // #endregion\n }\n\n // #region codebooks\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n @Action(\"codebooks/refreshCardTypes\") refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n @Action(\"codebooks/refreshPropertyTypes\")\n refreshPropertyTypes?: () => Promise;\n @Getter(\"codebooks/propertyTypes\") propertyTypes?: PropertyType[];\n\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n // prettier-ignore\n @Action(\"codebooks/refreshPriceCalculationMethods\") refreshPriceCalculationMethods?: () => Promise;\n // prettier-ignore\n @Getter(\"codebooks/priceCalculationMethods\") priceCalculationMethods?: PriceCalculationMethodView[];\n\n get sortedPropertyTypes() {\n return (\n this.propertyTypes?.map((x) => {\n return {\n value: x.id,\n name: this.$t(x.textResourceKey),\n };\n }) ?? []\n ).sort((a, b) => (a.name > b.name ? 1 : -1));\n }\n\n @Action(\"codebooks/refreshPricingModels\")\n refreshPricingModels?: () => Promise;\n @Getter(\"codebooks/pricingModels\") pricingModels?: PricingModel[];\n\n @Action(\"codebooks/refreshOwnerPricingModels\")\n refreshOwnerPricingModels?: () => Promise;\n @Getter(\"codebooks/ownerPricingModels\")\n ownerPricingModels?: OwnerPricingModel[];\n\n @Action(\"codebooks/refreshAgencyWorkModels\")\n refreshAgencyWorkModels?: () => Promise;\n @Getter(\"codebooks/agencyWorkModels\") agencyWorkModels?: AgencyWorkModel[];\n agencyWorkModelsEnum = AgencyWorkModelsEnum;\n ownerPricingModelEnum = OwnerPricingModelEnum;\n\n get internalAgencyWorkModels() {\n return (\n this.agencyWorkModels?.map((x) => {\n return {\n ...x,\n disabled:\n !this.property.ownerId &&\n x.id != AgencyWorkModelsEnum.OwnNameAndOwnInvoice,\n };\n }) ?? []\n );\n }\n\n @Action(\"codebooks/refreshVATCategoriesForPrepayments\")\n refreshVATCategoriesForPrepayments?: () => Promise;\n @Getter(\"codebooks/vatCategoriesForPrepayments\")\n vatCategoriesForPrepayments?: VATCategoryForPrepayments[];\n\n // prettier-ignore\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n // #endregion\n\n @Getter(\"appParams/showOwnerPriceOffset\") showOwnerPriceOffset?: boolean;\n @Getter(\"appParams/tenantUsesPropertiesAsBusinessUnits\")\n tenantUsesPropertiesAsBusinessUnits?: boolean;\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n @Getter(\"appParams/tenantHasAgencyCommissionForPrepayments\")\n tenantHasAgencyCommissionForPrepayments?: boolean;\n\n @Getter(\"businessUnit/availableBusinessUnits\")\n availableBusinessUnits?: BusinessUnit[];\n\n @Getter(\"appParams/tenantUsesOfficialRates\")\n tenantUsesOfficialRates?: boolean;\n @Getter(\"appParams/tenantUsesInputPrice\")\n tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/tenantUsesAgencyFees\")\n tenantUsesAgencyFees?: boolean;\n\n center = { lat: 20, lng: 0 } as LatLng;\n zoom = 1;\n\n form = false;\n ownerForm = true;\n loading = false;\n\n ownerContractExportTypes = [\n {\n value: OwnerContractExportType.Resident,\n text: \"t.OwnerContractExportType.Resident\",\n },\n {\n value: OwnerContractExportType.NonResident,\n text: \"t.OwnerContractExportType.NonResident\",\n },\n {\n value: OwnerContractExportType.LegalEntity,\n text: \"t.OwnerContractExportType.LegalEntity\",\n },\n ];\n\n agencyFeeheaders = [\n {\n text: \"AgencyFee.Name\",\n value: \"name\",\n },\n {\n text: \"AgencyFee.Price\",\n value: \"price\",\n },\n {\n text: \"AgencyFee.CalculationMethod\",\n value: \"calculationMethodId\",\n },\n {\n text: \"Actions\",\n value: \"actions\",\n },\n ];\n\n get agencyFees() {\n return this.property.agencyFeesProperty;\n }\n\n get translatedAgencyFeeHeaders() {\n return this.agencyFeeheaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n ownerContractExportType = null;\n\n get disableOfficialRatesButton() {\n return !this.officialRatesYear || this.internalDisable;\n }\n\n submit() {\n const formValid = this.rootForm?.validate();\n const ownerFormValid = this.ownerFormRef\n ? this.ownerFormRef.validate()\n : true;\n\n if (!formValid || !ownerFormValid) {\n const invalidInputs = this.rootForm?.inputs.filter((x) => !x.valid) ?? [];\n if (invalidInputs.length > 0) {\n invalidInputs[0].$el.scrollIntoView({ behavior: \"smooth\" });\n }\n return;\n }\n\n this.internalDisable = true;\n\n if (this.form) {\n if (this.useLocationAsKeyPickup) {\n this.property.keyPickupLocationPostalCodeId =\n this.property.postalCodeId;\n this.property.keyPickupLocationCityId = this.property.cityId;\n this.property.keyPickupLocationStreetName = this.property.streetName;\n this.property.keyPickupLocationHouseNumber = this.property.houseNumber;\n this.property.keyPickupLocation = this.property.location;\n }\n\n this.property.agencyFeesProperty = this.selectedAgencyFees;\n\n const model = { ...this.property };\n\n if (this.property.acceptsOnlyCash) {\n model.cardTypeIds = [];\n }\n\n if (this.agencyFeePriceManuallyChanged) {\n this.popupForReservationUpdate(model, false);\n } else {\n this.$emit(\"submit\", model);\n }\n }\n }\n\n fullSyncLoading = false;\n fullSync() {\n if (!this.model.id) {\n return;\n }\n\n this.fullSyncLoading = true;\n this.axios\n .post(`/properties/${this.model.id}/otas/fullsync`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.FullSyncTriggered\"),\n timeout: 5000,\n });\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Property.FullSyncError\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.fullSyncLoading = false;\n });\n }\n\n async submitOwnerContractGeneration() {\n this.property.categorizationDate =\n this.property.categorizationDate?.toString() === \"\"\n ? undefined\n : this.property.categorizationDate;\n if (this.form) {\n const model = { ...this.property };\n this.$emit(\"submit\", model, this.ownerContractExportType);\n }\n }\n\n get showPropertyPaysVat() {\n return this.storedSettings?.paysVat ?? true;\n }\n\n getCurrencyCode(currencyId: number) {\n return this.currencies?.find((x) => x.id == currencyId)?.isoCode;\n }\n\n getPriceCalculationMethodText(priceCalculationMethodId: number) {\n return this.$t(\n this.priceCalculationMethods?.find(\n (x) => x.id == priceCalculationMethodId\n )?.textResourceKey || \"\"\n );\n }\n\n @Getter(\"language/language\") language?: string;\n\n get cultureCode() {\n return this.language ?? \"hr-HR\";\n }\n\n async loadAgencyFees() {\n this.loading = true;\n\n await this.axios\n .get>(\n \"/AgencyFees/GetAgencyFeesOnProperty\",\n {\n params: {\n propertyId: this.property.id,\n cultureCode: this.cultureCode,\n },\n }\n )\n .then((res) => {\n // We put it in 'original' as well to avoid the pending changes warning message that pops up because these changes are already saved.\n this.original.agencyFeesProperty = res.data.result;\n this.property.agencyFeesProperty = res.data.result;\n this.selectedAgencyFees = res.data.result;\n })\n .finally(() => (this.loading = false));\n }\n\n deleteAgencyFee(item: AgencyFeesPropertyModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${item?.name}'?`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.popupForReservationUpdate(item, true);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n async deleteAgencyFeeConfirm(\n item: AgencyFeesPropertyModel,\n updateReservations: boolean\n ) {\n await Vue.axios\n .delete(`/AgencyFees/DeleteAgencyFeeProperty/${item.id}`, {\n data: {\n id: item.id,\n propertyId: item.propertyId,\n agencyFeeId: item.agencyFeeId,\n updateReservations: updateReservations,\n },\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AgencyFee.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.loadAgencyFees();\n });\n }\n\n removeWorkModelAndCategorizationInfo() {\n this.property.categorizationClass = null;\n this.property.categorizationNumber = null;\n this.property.categorizationDate = undefined;\n this.property.agencyWorkModelId = null;\n }\n\n checkForChanges() {\n return (\n _.isEqual(this.property, this.original) &&\n _.isEqual(this.useLocationAsKeyPickup, this.originalKeyPickup)\n );\n }\n\n resetFormModel() {\n this.original = _.cloneDeep(this.property);\n this.originalKeyPickup = _.cloneDeep(this.useLocationAsKeyPickup);\n }\n\n close() {\n this.$router.back();\n }\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\").toString();\n }\n\n requiredWith0Allowed(value: any) {\n return !!value || value === 0\n ? true\n : this.$t(\"Validation.Required\").toString();\n }\n\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n mustBePositive(value: any) {\n return (!!value || value === 0) && value >= 0\n ? true\n : this.$t(\"Validation.MustBePositive\").toString();\n }\n\n mustBePositiveEmptyOrZero(value: any) {\n return !value || value === 0 || value > 0\n ? true\n : this.$t(\"Validation.MustBePositive\").toString();\n }\n\n maxValue(max: number) {\n return (v: any) =>\n v <= max ? true : this.$t(\"Validation.MaxValue\", { max: max });\n }\n\n wholeNumbersOnly(value: number) {\n return (\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\")\n );\n }\n\n get cutOffDaysHasValue() {\n return !!this.property.cutOffDays || this.property.cutOffDays === 0;\n }\n\n get category() {\n if (this.property.categoryId === CategoriesEnum.Empty) {\n return 0;\n }\n return this.property.categoryId + 1;\n }\n set category(val: number) {\n if (\n val === 0 ||\n (val === 1 && this.property.categoryId === CategoriesEnum.Star2)\n ) {\n this.property.categoryId = CategoriesEnum.Empty;\n } else {\n this.property.categoryId = val - 1;\n if (val === 1) {\n this.$nextTick(() => {\n this.property.categoryId = CategoriesEnum.Star2;\n });\n }\n }\n }\n\n async addAgencyFee(agencyFees: AgencyFeesPropertyRequest) {\n this.loading = true;\n await Vue.axios\n .post(\"/AgencyFees/CreateAgencyFeesProperty\", agencyFees)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AgencyFee.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.addAgencyFeesOpen = false;\n this.loadAgencyFees();\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n popupForReservationUpdate(item: any, isAgencyFeeDeletion: boolean) {\n if (isAgencyFeeDeletion === true) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PropertyAgencyFee.ApplyToFutureReservations\"),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.deleteAgencyFeeConfirm(item, true);\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n this.deleteAgencyFeeConfirm(item, false);\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PropertyAgencyFee.ApplyToFutureReservations\"),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n item.updateReservations = true;\n this.agencyFeePriceManuallyChanged = false;\n this.$emit(\"submit\", item);\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n item.updateReservations = false;\n this.agencyFeePriceManuallyChanged = false;\n this.$emit(\"submit\", item);\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n }\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertyForm.vue?vue&type=template&id=f92e203c&scoped=true&\"\nimport script from \"./PropertyForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertyForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertyForm.vue?vue&type=style&index=0&id=f92e203c&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 \"f92e203c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSlideXTransition } from 'vuetify/lib/components/transitions';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDataTable,VDialog,VDivider,VForm,VIcon,VRow,VSelect,VSheet,VSlideXTransition,VSpacer,VSubheader,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport PropertyForm from \"@/components/property/PropertyForm.vue\";\nimport { PropertyFormModel } from \"@/components/property/types\";\nimport { NavigationGuardNext, Route } from \"vue-router\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport { Action, Getter } from \"vuex-class\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { OwnerPricingModelEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n PropertyForm,\n },\n beforeRouteEnter(to: Route, from: Route, next: NavigationGuardNext) {\n const fresh = to.params.id;\n if (to.name === \"New property\") {\n next((vm: Vue) => {\n (vm as Property).model = new PropertyFormModel();\n (vm as Property).model.ownerPricingModelId = OwnerPricingModelEnum.AbsoluteSame;\n });\n } else {\n Vue.axios\n .get(`properties/${fresh}`)\n .then(({ data }) => {\n next(\n // prettier-ignore\n (vm: Vue) => {\n const that = vm as Property;\n that.model = Object.assign(new PropertyFormModel(), data);\n that.breadcrumbs = [that.$t(\"Edit property\").toString(), data.name];\n that.setCustomBreadcrumbs && that.setCustomBreadcrumbs(that.breadcrumbs);\n }\n );\n })\n .catch(() => next({ name: \"Properties and units\", replace: true }));\n }\n },\n beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n const self = this as any;\n if (to.name === \"Edit property\") {\n next();\n } else {\n const noChanges = self.propertyForm.checkForChanges();\n if (noChanges) {\n next();\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\n \"Changes pending. Are you sure you want to close the form?\"\n ),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n next();\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n next(false);\n return true;\n },\n },\n ],\n timeout: 5000,\n });\n }\n }\n },\n mixins: [GlobalFilterSensitiveMixin],\n})\nexport default class Property extends Vue {\n get id() {\n return this.$route.name === \"New property\" ? 0 : +this.$route.params.id;\n }\n\n @Action(\"setCustomBreadcrumbs\") setCustomBreadcrumbs?: (\n payload: string[] | undefined\n ) => Promise;\n @Getter(\"customBreadcrumbs\") customBreadcrumbs?: string[];\n\n async destroyed() {\n if (this.customBreadcrumbs == this.breadcrumbs) {\n this.setCustomBreadcrumbs && this.setCustomBreadcrumbs(undefined);\n }\n }\n\n @Ref(\"propertyForm\") propertyForm?: {\n resetFormModel: () => void;\n };\n\n model = new PropertyFormModel();\n\n breadcrumbs: string[] = [];\n\n get tab() {\n const tab = this.$route.query.tab;\n return tab;\n }\n\n set tab(fresh: string | (string | null)[]) {\n this.$router.replace({\n path: this.$route.path,\n params: this.$route.params,\n query: { tab: fresh },\n replace: true,\n });\n }\n\n // prettier-ignore\n @Action(\"globalFilters/refreshFilter\") refreshFilter?: ( replace?: boolean ) => void;\n // prettier-ignore\n @Action(\"businessUnit/refreshBusinessUnits\") refreshBusinessUnits?: () => void;\n\n submitting = false;\n submit(\n model: PropertyFormModel,\n ownerContractExportType?: number,\n ) {\n this.submitting = true;\n\n this.model.categorizationDate =\n this.model.categorizationDate?.toString() === \"\"\n ? undefined\n : this.model.categorizationDate;\n\n const notifySuccess = () => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.SaveSuccess\"),\n timeout: 5000,\n });\n };\n\n if (this.id === 0) {\n this.axios\n .post(\"/properties\", model)\n .then(({ data }) => {\n this.$router.replace({\n name: \"Edit property\",\n params: { id: data.toString() },\n replace: true,\n });\n\n if (this.refreshFilter) {\n this.refreshFilter();\n }\n if (this.refreshBusinessUnits) {\n this.refreshBusinessUnits();\n }\n })\n .then(notifySuccess)\n .then(() => this.propertyForm?.resetFormModel())\n .finally(() => (this.submitting = false));\n } else {\n this.axios\n .put(`/properties/${this.id}`, model)\n .then(() => {\n if (this.refreshFilter) {\n this.refreshFilter();\n }\n if (this.refreshBusinessUnits) {\n this.refreshBusinessUnits();\n }\n if (ownerContractExportType) {\n this.generateOwnerContract(ownerContractExportType);\n }\n })\n .then(notifySuccess)\n .then(() => this.propertyForm?.resetFormModel())\n .finally(() => (this.submitting = false));\n }\n }\n\n generateOwnerContract(ownerContractExportType: number) {\n this.axios\n .get(`/properties/generateOwnerContract`, {\n params: {\n propertyId: this.model.id,\n exportType: ownerContractExportType,\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=\"?(?[^;\"]+)\"?;/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"OwnerContract.docx\");\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GenerateOwnerContractSuccess\"),\n timeout: 5000,\n });\n });\n }\n\n @Watch(\"sensitiveKey\")\n tenantChanged(fresh: string, old: string) {\n const freshTenantParts = fresh?.split(\"_\");\n const oldTenantParts = old?.split(\"_\");\n\n const [freshTenant, oldTenant] = [\n freshTenantParts && freshTenantParts.length > 0\n ? freshTenantParts[0]\n : \"\",\n oldTenantParts && oldTenantParts.length > 0 ? oldTenantParts[0] : \"\",\n ];\n\n if (freshTenant !== oldTenant) {\n this.$router.push(\"Properties and units\");\n }\n }\n async serviceAdded() {\n await Vue.axios.get(`properties/${this.model.id}`).then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Property.AddOnService.AddSuccess\"),\n timeout: 5000,\n });\n this.model = res.data;\n });\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Property.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Property.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Property.vue?vue&type=template&id=3ed93b49&scoped=true&\"\nimport script from \"./Property.vue?vue&type=script&lang=ts&\"\nexport * from \"./Property.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Property.vue?vue&type=style&index=0&id=3ed93b49&scoped=true&lang=scss&\"\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 \"3ed93b49\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-wrapper\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : ''},[_c('AccomodationUnitTypeForm',{ref:\"accomodationUnitTypeForm\",attrs:{\"isSubmitting\":_vm.isSubmitting},on:{\"submit\":_vm.submit,\"serviceAdded\":_vm.serviceAdded},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"acc-unit-type-form-container\"},[_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading}}),_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',{class:{ 'red--text': !_vm.isBasicFormValid },attrs:{\"href\":\"#basicInfo\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.BasicInfo\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#units\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Units\")))])],1)]}}],null,false,1386038871)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isUnitsFormValid },attrs:{\"href\":\"#units\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Units\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#amenities\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Amenities\")))])],1)]}}],null,false,3613481303)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isAmenitiesFormValid },attrs:{\"href\":\"#amenities\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Amenities\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#addOnServices\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.AddOnServices\")))])],1)]}}],null,false,3337168983)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{attrs:{\"href\":\"#addOnServices\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.AddOnServices\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#layout\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Layout\")))])],1)]}}],null,false,3422657175)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isLayoutFormValid },attrs:{\"href\":\"#layout\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Layout\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#translations\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Translations\")))])],1)]}}],null,false,2230318935)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isTranslationsFormValid },attrs:{\"href\":\"#translations\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Translations\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#descriptions\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Descriptions\")))])],1)]}}],null,false,2305468215)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isDescriptionsFormValid },attrs:{\"href\":\"#descriptions\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Descriptions\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#photos\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Photos\")))])],1)]}}],null,false,4045925239)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isPhotosFormValid },attrs:{\"href\":\"#photos\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Photos\")))]),(!_vm.accUnitType.id)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#ratePlans\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.RatePlans\")))])],1)]}}],null,false,3445435223)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):_c('v-tab',{class:{ 'red--text': !_vm.isUnitsFormValid },attrs:{\"href\":\"#ratePlans\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.RatePlans\")))]),(!_vm.accUnitType.id && _vm.tenantCanEditLOSCategories)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#LOSCategories\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.LOSCategories\")))])],1)]}}],null,false,3248538103)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):(_vm.tenantCanEditLOSCategories)?_c('v-tab',{class:{ 'red--text': !_vm.isLOSCategoriesFormValid },attrs:{\"href\":\"#LOSCategories\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.LOSCategories\")))]):_vm._e(),(!_vm.accUnitType.id && _vm.tenantCanEditPAXCategories)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#PAXCategories\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.PAXCategories\")))])],1)]}}],null,false,2288524919)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):(_vm.tenantCanEditPAXCategories)?_c('v-tab',{class:{ 'red--text': !_vm.isPAXCategoriesFormValid },attrs:{\"href\":\"#PAXCategories\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.PAXCategories\")))]):_vm._e(),(!_vm.accUnitType.id && _vm.tenantUsesOfficialRates)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"v-tab\"},on),[_c('v-tab',{attrs:{\"href\":\"#officialRates\",\"disabled\":!_vm.accUnitType.id}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.OfficialRates\")))])],1)]}}],null,false,110749271)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.Tab.DisabledTooltipMessage\")))])]):(_vm.tenantUsesOfficialRates)?_c('v-tab',{class:{ 'red--text': !_vm.isUnitsFormValid },attrs:{\"href\":\"#officialRates\"}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.OfficialRates\")))]):_vm._e()],1),_c('v-tabs-items',{staticClass:\"unittype-tab-items\",attrs:{\"value\":_vm.tab}},[_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"basicInfo\",\"eager\":\"\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('v-card',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"formBasic\",attrs:{\"lazy-validation\":\"\",\"disabled\":_vm.loading},model:{value:(_vm.isBasicFormValid),callback:function ($$v) {_vm.isBasicFormValid=$$v},expression:\"isBasicFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnitType.Name') + '*',\"rules\":[_vm.rules.required, _vm.rules.name]},model:{value:(_vm.accUnitType.name),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"name\", $$v)},expression:\"accUnitType.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AccomodationUnitType.RepresentsWholeProperty')},model:{value:(_vm.accUnitType.representsWholeProperty),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"representsWholeProperty\", $$v)},expression:\"accUnitType.representsWholeProperty\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('AccomodationUnitType.SquareSize'),\"rules\":[_vm.rules.noNegativeNumbers]},model:{value:(_vm.accUnitType.squareSize),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"squareSize\", _vm._n($$v))},expression:\"accUnitType.squareSize\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('RatingInput',{attrs:{\"label\":_vm.$t('AccomodationUnitType.Category')},model:{value:(_vm.category),callback:function ($$v) {_vm.category=$$v},expression:\"category\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('AccomodationUnitType.BaseBedsCapacity') + '*',\"rules\":[\n _vm.rules.required,\n _vm.rules.wholeNumbersOnly,\n _vm.rules.noNegativeNumbers,\n _vm.rules.maxValue(_vm.accUnitType.baseBedsCapacity, 150)\n ]},model:{value:(_vm.accUnitType.baseBedsCapacity),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"baseBedsCapacity\", _vm._n($$v))},expression:\"accUnitType.baseBedsCapacity\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('AccomodationUnitType.ExtraBedsCapacity') + '*',\"rules\":[\n _vm.rules.requiredAllowed0(\n _vm.accUnitType.extraBedsCapacity\n ),\n _vm.rules.wholeNumbersOnly,\n _vm.rules.noNegativeNumbers,\n _vm.rules.maxValue(_vm.accUnitType.extraBedsCapacity, 100)\n ]},model:{value:(_vm.accUnitType.extraBedsCapacity),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"extraBedsCapacity\", _vm._n($$v))},expression:\"accUnitType.extraBedsCapacity\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('Max adults'),\"placeholder\":(\n _vm.accUnitType.baseBedsCapacity +\n _vm.accUnitType.extraBedsCapacity\n ).toString(),\"rules\":[\n _vm.rules.wholeNumbersOnly,\n _vm.rules.noNegativeNumbers,\n _vm.rules.inRange(\n _vm.accUnitType.maxNumberOfAdults,\n _vm.accUnitType.baseBedsCapacity,\n _vm.accUnitType.baseBedsCapacity +\n _vm.accUnitType.extraBedsCapacity,\n true\n ) ]},on:{\"mousedown\":_vm.handleMouseClick},model:{value:(_vm.accUnitType.maxNumberOfAdults),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"maxNumberOfAdults\", _vm._n($$v))},expression:\"accUnitType.maxNumberOfAdults\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AccomodationUnitType.BasePrice') + '*',\"validateInput\":true,\"rules\":[\n _vm.rules.requiredAllowed0,\n _vm.rules.noNegativeNumbers(_vm.accUnitType.basePrice) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('WorkingCurrencyDisplay')]},proxy:true}]),model:{value:(_vm.accUnitType.basePrice),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"basePrice\", $$v)},expression:\"accUnitType.basePrice\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"4\"}},[(_vm.tenantUsesInputPrice)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('AccomodationUnitType.BaseInputPrice') + '*',\"validateInput\":true,\"rules\":[\n _vm.rules.requiredAllowed0(_vm.accUnitType.baseInputPrice),\n _vm.rules.noNegativeNumbers(_vm.accUnitType.baseInputPrice)\n ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('WorkingCurrencyDisplay')]},proxy:true}],null,false,3842682426),model:{value:(_vm.accUnitType.baseInputPrice),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"baseInputPrice\", $$v)},expression:\"accUnitType.baseInputPrice\"}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\",\"sm\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('AccomodationUnitType.DamageDeposit'),\"validateInput\":true,\"rules\":[\n _vm.rules.noNegativeNumbers(_vm.accUnitType.damageDeposit)\n ]},model:{value:(_vm.accUnitType.damageDeposit),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"damageDeposit\", $$v)},expression:\"accUnitType.damageDeposit\"}})],1),(_vm.showDepositCurrency)?_c('v-col',{attrs:{\"cols\":\"4\",\"md\":\"2\",\"sm\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.currencies,\"item-value\":\"id\",\"item-text\":\"isoCode\",\"hide-details\":\"\",\"label\":_vm.$t('AccomodationUnitType.Currency') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.accUnitType.depositCurrencyId),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"depositCurrencyId\", $$v)},expression:\"accUnitType.depositCurrencyId\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('t.iCalLink')},model:{value:(_vm.accUnitType.iCalLink),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"iCalLink\", $$v)},expression:\"accUnitType.iCalLink\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\",\"sm\":\"1\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('AccomodationUnit.SortOrder')},model:{value:(_vm.accUnitType.sortOrder),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"sortOrder\", _vm._n($$v))},expression:\"accUnitType.sortOrder\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\"}},[_c('v-tooltip',{attrs:{\"slot\":\"append\",\"top\":\"\"},slot:\"append\",scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-checkbox',_vm._g({attrs:{\"label\":_vm.$t('AccomodationUnitType.IsInquiryOnly')},model:{value:(_vm.accUnitType.isInquiryOnly),callback:function ($$v) {_vm.$set(_vm.accUnitType, \"isInquiryOnly\", $$v)},expression:\"accUnitType.isInquiryOnly\"}},on))]}}])},[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitType.IsInquiryOnlyInfo\"))+\" \")])],1),_c('v-spacer')],1)],1)],1)],1)],1)],1)],1)],1),_c('v-tab-item',{attrs:{\"value\":\"units\",\"eager\":\"\"}},[_c('v-form',{ref:\"formUnits\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isUnitsFormValid),callback:function ($$v) {_vm.isUnitsFormValid=$$v},expression:\"isUnitsFormValid\"}},[_c('AccomodationUnitTable',{ref:\"units\",attrs:{\"accUnitTypeId\":_vm.accUnitType.id,\"ownerId\":_vm.model.propertyOwnerId,\"propertyOwnerPricingModelId\":_vm.model.propertyOwnerPricingModelId,\"propertyOwnerPayoutPercent\":_vm.accUnitType.propertyOwnerPayoutPercent,\"propertyId\":_vm.model.propertyId}})],1)],1),_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"amenities\",\"eager\":\"\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"formAmenities\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isAmenitiesFormValid),callback:function ($$v) {_vm.isAmenitiesFormValid=$$v},expression:\"isAmenitiesFormValid\"}},[_c('v-row',[_c('v-col',[_c('AmenitiesSelection',{attrs:{\"ids\":_vm.accUnitType.amenities,\"filter\":function (a) { return a.isAccomodationUnitTypeLevelAmenity; }},on:{\"update:ids\":function($event){return _vm.$set(_vm.accUnitType, \"amenities\", $event)}}})],1)],1)],1)],1)],1),_c('v-tab-item',{attrs:{\"value\":\"addOnServices\",\"eager\":\"\"}},[_c('AddOnServicesTable',{ref:\"addOnServices\",attrs:{\"services\":_vm.accUnitType.addOnServices,\"accUnitId\":_vm.accUnitType.id,\"disabled\":_vm.loading,\"translateID\":'AccomodationUnitType.AddOnServices.Description'},on:{\"update:services\":function($event){return _vm.$set(_vm.accUnitType, \"addOnServices\", $event)},\"serviceAdded\":function($event){return _vm.$emit('serviceAdded')}}})],1),_c('v-tab-item',{staticClass:\"tab-item rooms\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"layout\",\"eager\":\"\"}},[_c('v-form',{ref:\"formLayout\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isLayoutFormValid),callback:function ($$v) {_vm.isLayoutFormValid=$$v},expression:\"isLayoutFormValid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitTypeForm.Rooms.Description\"))+\" \")])],1)],1),_c('v-row',[_vm._l((_vm.accUnitType.rooms),function(room,roomIndex){return _c('v-col',{key:roomIndex,staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AccomodationUnitType.RoomType') + '*',\"items\":_vm.sortedRoomTypes,\"item-value\":\"value\",\"item-text\":function (x) { return x.name; },\"rules\":[_vm.rules.required]},model:{value:(room.roomTypeId),callback:function ($$v) {_vm.$set(room, \"roomTypeId\", $$v)},expression:\"room.roomTypeId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnitType.RoomSquareSize'),\"type\":\"number\",\"rules\":[_vm.rules.noNegativeNumbers]},model:{value:(room.squareSize),callback:function ($$v) {_vm.$set(room, \"squareSize\", _vm._n($$v))},expression:\"room.squareSize\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AccomodationUnitType.RoomIsShared'),\"hide-details\":\"\",\"dense\":\"\"},model:{value:(room.isShared),callback:function ($$v) {_vm.$set(room, \"isShared\", $$v)},expression:\"room.isShared\"}})],1)],1),_vm._l((room.beds),function(bed,bedIndex){return _c('div',{key:bedIndex},[_c('div',{staticClass:\"d-flex justify-space-between\",class:_vm.$vuetify.breakpoint.smAndDown ? 'flex-column' : ''},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AccomodationUnitType.RoomBedType') + '*',\"items\":_vm.bedTypes,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"rules\":[_vm.rules.required]},model:{value:(bed.bedTypeId),callback:function ($$v) {_vm.$set(bed, \"bedTypeId\", $$v)},expression:\"bed.bedTypeId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"quantity-delete d-flex align-center\"},[_c('MoreLessSelect',{staticClass:\"bed-quantity\",class:_vm.$vuetify.breakpoint.smAndDown ? 'sm' : '',attrs:{\"subtractDisabled\":bed.quantity <= 1},model:{value:(bed.quantity),callback:function ($$v) {_vm.$set(bed, \"quantity\", $$v)},expression:\"bed.quantity\"}}),_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return room.beds.splice(bedIndex, 1)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)],1)])],1)],1),(room.beds.length != bedIndex + 1)?_c('v-divider',{staticClass:\"mt-2\"}):_vm._e()],1)})],2),_c('v-spacer'),_c('v-card-actions',{staticClass:\"layout-room-actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-btn',{class:_vm.$vuetify.breakpoint.xsOnly ? 'mb-4' : '',attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addBed(room)}}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.RoomAddBed\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.accUnitType.rooms.splice(roomIndex, 1)}}},[_vm._v(_vm._s(_vm.$t(\"AccomodationUnitType.RoomRemove\")))])],1)],1)],1)}),_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-card',{attrs:{\"width\":\"100%\",\"min-height\":\"264\"},on:{\"click\":function($event){return _vm.addRoom()}}},[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(\"Add a room\")]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)],1)],2)],1)],1)],1),_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"translations\",\"eager\":\"\"}},[_c('v-form',{ref:\"formTranslations\",staticClass:\"fill-height\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isTranslationsFormValid),callback:function ($$v) {_vm.isTranslationsFormValid=$$v},expression:\"isTranslationsFormValid\"}},[(_vm.accUnitType.id)?_c('AccomodationUnitTypeTranslations',{ref:\"translations\",attrs:{\"accUnitTypeId\":_vm.accUnitType.id}}):_vm._e()],1)],1),_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"descriptions\",\"eager\":\"\"}},[_c('v-form',{ref:\"formDescriptions\",staticClass:\"fill-height\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isDescriptionsFormValid),callback:function ($$v) {_vm.isDescriptionsFormValid=$$v},expression:\"isDescriptionsFormValid\"}},[(_vm.accUnitType.id)?_c('AccomodationUnitTypeDescriptions',{ref:\"descriptions\",attrs:{\"accUnitTypeId\":_vm.accUnitType.id}}):_vm._e()],1)],1),_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"photos\",\"eager\":\"\"}},[_c('v-form',{ref:\"formPhotos\",staticClass:\"fill-height\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isPhotosFormValid),callback:function ($$v) {_vm.isPhotosFormValid=$$v},expression:\"isPhotosFormValid\"}},[(_vm.accUnitType.id)?_c('PhotoEditor',{ref:\"photos\",attrs:{\"endpoint\":(\"AccomodationUnitTypes/\" + (_vm.accUnitType.id) + \"/photos\"),\"descriptionTextResource\":'AccomodationUnitTypeForm.Photos.Description'}}):_vm._e()],1)],1),_c('v-tab-item',{attrs:{\"value\":\"ratePlans\"}},[_c('AccomodationUnitTypeRatePlanOverrides',{ref:\"ratePlans\",attrs:{\"accUnitTypeId\":_vm.accUnitType.id,\"accUnitTypeShownOnBE\":_vm.accUnitType.propertyIsAvailableViaBookingEngine}})],1),(_vm.tenantCanEditLOSCategories)?_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"LOSCategories\",\"eager\":\"\"}},[_c('v-form',{ref:\"formLOSCategories\",staticClass:\"fill-height\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isLOSCategoriesFormValid),callback:function ($$v) {_vm.isLOSCategoriesFormValid=$$v},expression:\"isLOSCategoriesFormValid\"}},[(_vm.accUnitType.id)?_c('AccomodationUnitTypeLOSCategoriesTable',{ref:\"losCategories\",attrs:{\"model\":_vm.accUnitType},on:{\"saved\":function($event){return _vm.refreshRatePlans()}}}):_vm._e()],1)],1):_vm._e(),(_vm.tenantCanEditPAXCategories)?_c('v-tab-item',{staticClass:\"tab-item\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"value\":\"PAXCategories\",\"eager\":\"\"}},[_c('v-form',{ref:\"formPAXCategories\",staticClass:\"fill-height\",attrs:{\"disabled\":_vm.loading,\"lazy-validation\":\"\"},model:{value:(_vm.isPAXCategoriesFormValid),callback:function ($$v) {_vm.isPAXCategoriesFormValid=$$v},expression:\"isPAXCategoriesFormValid\"}},[(_vm.accUnitType.id)?_c('AccomodationUnitTypeOBCategoriesTable',{ref:\"paxCategories\",attrs:{\"model\":_vm.accUnitType},on:{\"saved\":function($event){return _vm.refreshRatePlans()}}}):_vm._e()],1)],1):_vm._e(),(_vm.tenantUsesOfficialRates)?_c('v-tab-item',{attrs:{\"value\":\"officialRates\"}},[_c('OfficialRatesTable',{attrs:{\"accUnitType\":_vm.accUnitType}})],1):_vm._e()],1),_c('v-spacer'),_c('v-sheet',{staticClass:\"unittype-footer\"},[_c('v-slide-x-transition',{attrs:{\"group\":\"\"}},[(\n _vm.tab != 'units' &&\n _vm.tab != 'translations' &&\n _vm.tab != 'photos' &&\n _vm.tab != 'LOSCategories' &&\n _vm.tab != 'PAXCategories'\n )?_c('v-btn',{key:\"save\",staticClass:\"ma-2\",attrs:{\"type\":\"submit\",\"disabled\":!_vm.submitDisabled || _vm.isSubmitting,\"loading\":_vm.isSubmitting,\"color\":\"primary\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]):_c('v-tooltip',{key:\"add\",attrs:{\"right\":\"\",\"disabled\":_vm.tab !== 7},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({key:\"add\",attrs:{\"fab\":\"\",\"top\":\"\",\"left\":\"\",\"absolute\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.addBtn}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1)]}}])},[(_vm.tab === 7)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"PhotosUpload.DragAndDropHint\"))+\" \")]):_vm._e()])],1),_c('v-spacer'),_c('v-dialog',{attrs:{\"max-width\":1000,\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.openApiKeySelection),callback:function ($$v) {_vm.openApiKeySelection=$$v},expression:\"openApiKeySelection\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"ApiKey.iCal.ChooseKeyTitle\")))]),_c('v-card-text',{staticClass:\"pt-0\"},[_c('v-data-table',{attrs:{\"dense\":\"\",\"headers\":_vm.headers,\"items\":_vm.list.result,\"single-select\":true,\"item-key\":\"apiKey\",\"show-select\":\"\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('v-card-actions',[(_vm.model.id)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"disabled\":!_vm.selected.length > 0,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.copyiCalendarLink()}}},[_vm._v(_vm._s(_vm.$t(\"CopyiCalendarLink\")))]):_vm._e(),_c('v-btn',{on:{\"click\":function($event){_vm.openApiKeySelection = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),(_vm.model.id)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.checkApiKeys}},[_vm._v(_vm._s(_vm.$t(\"CopyiCalendarLink\")))]):_vm._e(),(\n _vm.model.id &&\n _vm.tenantUsesOfficialRates &&\n _vm.tenantUsesInputPrice &&\n _vm.tenantTypeId == 2 &&\n _vm.model.hasOwners\n )?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.exportOfficialRatesForOwnerOpen = true}}},[_vm._v(_vm._s(_vm.$t(\"Reports.OfficialRate.ExportForOwner\")))]):_vm._e(),(_vm.model.id && _vm.tenantUsesOfficialRates)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.exportOfficialRatesForGuestsOpen = true}}},[_vm._v(_vm._s(_vm.$t(\"Reports.OfficialRate.ExportForGuests\")))]):_vm._e(),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":function($event){return _vm.back()}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1),_c('OfficialRatesExportForOwners',{attrs:{\"open\":_vm.exportOfficialRatesForOwnerOpen,\"propertyId\":_vm.model.propertyId,\"accUnitTypeId\":_vm.model.id},on:{\"update:open\":function($event){_vm.exportOfficialRatesForOwnerOpen=$event}}}),_c('OfficialRatesExportForGuests',{attrs:{\"open\":_vm.exportOfficialRatesForGuestsOpen,\"propertyId\":_vm.accUnitType.propertyId,\"accUnitTypeId\":_vm.accUnitType.id},on:{\"update:open\":function($event){_vm.exportOfficialRatesForGuestsOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AddOnServiceViewModel } from \"./addOnService\";\nimport { AmenityModel } from \"./amenities\";\n\nexport class AccomodationUnitTypeViewModel {\n id?: number;\n propertyId = 0;\n propertyName = \"\";\n\n name = \"\";\n representsWholeProperty = false;\n propertyIsAvailableViaBookingEngine = false;\n squareSize?: number;\n categoryId = 1;\n maxNumberOfAdults?: number;\n maxNumberOfChildren?: number = 0;\n maxOccupancy?: number = 0;\n quantity?: number;\n basePrice?: number;\n baseInputPrice = 0;\n damageDeposit?: number;\n depositCurrencyId?: number;\n baseBedsCapacity = 0;\n extraBedsCapacity = 0;\n currencyId = 0;\n hasOwners = false;\n propertyOwnerId?: number | null = null;\n propertyAgencyWorkModelId: number | null = null; \n propertyOwnerPricingModelId: number | null = null;\n propertyVATCategoryForPrepaymentsId: number | null = null;\n propertyOwnerPayoutPercent: number | null = null;\n propertyOwnerPriceOffset: number | null = null;\n propertyAgencyCommissionPercentForPrepayments: number | null = null;\n propertyOwnerDoesCheckin = false;\n propertyOwnerDoesCheckout = false;\n propertyOwnerDoesCleaning = false;\n propertyCategorizationNumber: string | null = null;\n propertyCategorizationClass: string | null = null;\n propertyCategorizationDate: Date | null = null;\n iCalLink = \"\";\n\n addOnServices: AddOnServiceViewModel[] = [];\n amenities: AmenityModel[] = [];\n rooms: RoomViewModel[] = [];\n sortOrder: number | null = null;\n IsInquiryOnly = false;\n}\n\nexport class RoomViewModel {\n id?: number;\n\n roomTypeId = 0;\n squareSize?: number;\n isShared = false\n\n beds: BedViewModel[] = [];\n}\n\nexport class BedViewModel {\n id?: number;\n\n bedTypeId = 0;\n quantity = 1;\n}\n\nexport type RatePlansForOfficialRatesExport = {\n id: number;\n name: string;\n}\n\nexport class AccomodationUnitViewModel {\n id = 0;\n name = \"\";\n shortName = \"\";\n ownerId: number | null = null;\n ownerPriceOffset: number | null = null;\n ownerDoesCleaning = false;\n ownerDoesCheckin = false;\n ownerDoesCheckout = false;\n agencyWorkModelId: number | null = null;\n vatCategoryForPrepaymentsId: number | null = null;\n agencyCommissionPercentForPrepayments: number | null = 0;\n floor?: number;\n accomodationUnitTypeId?: number;\n sortOrder: number | null = null;\n paysCityTax = null as boolean | null;\n categorizationClass: string | null = null;\n categorizationNumber: string | null = null;\n categorizationDate?: Date | null = null;\n unlockCode: string | null = null;\n wiFiPassword: string | null = null;\n eVisitorFacilityId: number | null = null;\n kroatiDeId: number | null = null;\n}\n\nexport class AccomodationUnitTypeDescription {\n id = 0;\n accomodationUnitTypeId = 0;\n cultureCode = \"hr\";\n accUnitTypeDescription = \"\"\n\n constructor(accomodationUnitTypeId = 0){\n this.accomodationUnitTypeId = accomodationUnitTypeId;\n }\n}\n\nexport class AccomodationUnitTypeTranslation {\n id = 0;\n accomodationUnitTypeId = 0;\n cultureCode = \"hr\";\n nameTranslation = \"\";\n\n constructor(accomodationUnitTypeId = 0){\n this.accomodationUnitTypeId = accomodationUnitTypeId;\n }\n}\n\nexport class RatePlanAccUnitType {\n id = 0;\n ratePlanId = 0;\n parentRatePlanId: number | null = null;\n ratePlanName = \"\";\n minPersons = 0;\n maxPersons = 0;\n minStay = 0;\n maxStay = 0;\n isDefault = false;\n isAvailableViaBookingEngine = false;\n bookingEnginePriceOffset: number | null = null;\n bookingEnginePriceOffsetPlaceholder = 0;\n}\n\nexport class AccomodationUnitTypeLOSCategory{\n id = 0;\n accomodationUnitTypeId = 0;\n minStay = null as number | null;\n maxStay= null as number | null;\n isDefault = false;\n inputPriceDifference = null as number | null;\n inputPriceDifferenceIsAbsolute = null as boolean | null;\n outputPriceDifference = null as number | null;\n outputPriceDifferenceIsAbsolute = null as boolean | null;\n\n constructor(accomodationUnitTypeId = 0){\n this.accomodationUnitTypeId = accomodationUnitTypeId;\n }\n}\n\nexport class AccomodationUnitTypePAXCategory{\n id = 0;\n accomodationUnitTypeId = 0;\n minPersons = null as number | null;\n maxPersons = null as number | null;\n inputPriceDifference = null as number | null;\n inputPriceDifferenceIsAbsolute = null as boolean | null;\n outputPriceDifference = null as number | null;\n outputPriceDifferenceIsAbsolute = null as boolean | null;\n\n isDefault = false;\n\n constructor(accomodationUnitTypeId = 0, isDefault = false){\n this.accomodationUnitTypeId = accomodationUnitTypeId;\n this.isDefault = isDefault;\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-wrapper\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-data-table',{staticClass:\"table\",attrs:{\"headers\":_vm.translatedHeaders,\"items\":_vm.units,\"loading\":_vm.loading,\"item-key\":\"id\",\"sort-by\":\"id\",\"must-sort\":\"\",\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"fixed-header\":\"\",\"height\":\"100%\"},on:{\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-alert',{staticClass:\"mx-3 mt-2\",attrs:{\"outlined\":\"\",\"type\":\"info\"}},[_vm._v(_vm._s(_vm.$t('AccomodationUnitType.UnitsHint')))])]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.checkApiKeys(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fas fa-calendar-alt\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"CopyiCalendarLink\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.openItemDetails(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":1000,\"retain-focus\":false},model:{value:(_vm.openApiKeySelection),callback:function ($$v) {_vm.openApiKeySelection=$$v},expression:\"openApiKeySelection\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"ApiKey.iCal.ChooseKeyTitle\")))]),_c('v-card-text',{staticClass:\"pt-0\"},[_c('v-data-table',{attrs:{\"dense\":\"\",\"headers\":_vm.apiCredentialsHeaders,\"items\":_vm.list.result,\"single-select\":true,\"item-key\":\"apiKey\",\"show-select\":\"\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('v-card-actions',[(item.id)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"disabled\":!_vm.selected.length > 0,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.copyiCalendarLink(item.id)}}},[_vm._v(_vm._s(_vm.$t(\"CopyiCalendarLink\")))]):_vm._e(),_c('v-btn',{on:{\"click\":function($event){_vm.openApiKeySelection = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)]}}])}),_c('AccomodationUnitForm',{attrs:{\"open\":_vm.accomodationUnitFormOpen,\"unit\":_vm.accomodationUnit,\"propertyOwnerPricingModelId\":_vm.propertyOwnerPricingModelId,\"propertyOwnerPayoutPercent\":_vm.propertyOwnerPayoutPercent,\"propertyId\":_vm.propertyId},on:{\"update:open\":function($event){_vm.accomodationUnitFormOpen=$event},\"callback\":_vm.load}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"drawer\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialAccomodationUnit,\"watched\":_vm.accomodationUnit,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"unit-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('div',{staticClass:\"unit-form-title\"},[(!!_vm.accomodationUnit.id)?_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnit.Editing\"))+\" \"+_vm._s(_vm.initialAccomodationUnit.name))]):_vm._e(),(!_vm.accomodationUnit.id)?_c('span',[_vm._v(_vm._s(_vm.$t(\"AccomodationUnit.New\")))]):_vm._e()])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('div',{staticClass:\"form-items\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnit.Name') + '*',\"rules\":[_vm.rules.required, _vm.maxLength(50)]},model:{value:(_vm.accomodationUnit.name),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"name\", $$v)},expression:\"accomodationUnit.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnit.ShortName'),\"rules\":[_vm.maxLength(20)]},model:{value:(_vm.accomodationUnit.shortName),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"shortName\", $$v)},expression:\"accomodationUnit.shortName\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\",\"offset\":\"1\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Floor'),\"type\":\"number\",\"rules\":[_vm.rules.zeroOrPositive, _vm.rules.wholeNumber]},model:{value:(_vm.accomodationUnit.floor),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"floor\", _vm._n($$v))},expression:\"accomodationUnit.floor\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('AccomodationUnit.UnlockCode'),\"type\":\"text\",\"rules\":[_vm.maxLength(2048)]},model:{value:(_vm.accomodationUnit.unlockCode),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"unlockCode\", $$v)},expression:\"accomodationUnit.unlockCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('WiFiPassword'),\"type\":\"text\",\"rules\":[_vm.maxLength(128)]},model:{value:(_vm.accomodationUnit.wiFiPassword),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"wiFiPassword\", $$v)},expression:\"accomodationUnit.wiFiPassword\"}})],1)],1),_c('v-row',[(_vm.tenantTypeId === 2)?_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.accomodationUnit.ownerId != null)?_c('v-divider',{staticClass:\"mb-5\"}):_vm._e(),_c('PropertyOwner',{attrs:{\"labelType\":\"propertyOwner\",\"showCustomerData\":_vm.accomodationUnit.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OtherNameAndOtherInvoice,\"isForOwner\":true},on:{\"clear\":_vm.removeWorkModelAndCategorizationInfo},model:{value:(_vm.accomodationUnit.ownerId),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"ownerId\", $$v)},expression:\"accomodationUnit.ownerId\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AccomodationUnit.PaysCityTax'),\"items\":_vm.cityTaxItems,\"item-value\":\"value\",\"item-text\":function (x) { return _vm.$t(x.text); }},model:{value:(_vm.accomodationUnit.paysCityTax),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"paysCityTax\", $$v)},expression:\"accomodationUnit.paysCityTax\"}})],1)],1),_c('v-row',[(_vm.accomodationUnit.ownerId != null)?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('AccomodationUnit.AgencyWorkModel'),\"hide-details\":_vm.showOwnerPriceOffset,\"items\":_vm.agencyWorkModels,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"clearable\":\"\"},model:{value:(_vm.accomodationUnit.agencyWorkModelId),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"agencyWorkModelId\", $$v)},expression:\"accomodationUnit.agencyWorkModelId\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"4\"}},[(_vm.showOwnerPriceOffset)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Owner price offset'),\"validateInput\":true,\"suffix\":'%'},model:{value:(_vm.accomodationUnit.ownerPriceOffset),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"ownerPriceOffset\", $$v)},expression:\"accomodationUnit.ownerPriceOffset\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[(\n _vm.accomodationUnit.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OwnNameAndOtherInvoice\n )?_c('v-select',{attrs:{\"label\":_vm.$t('AccomodationUnit.VATCategoryForPrepayments'),\"hide-details\":\"\",\"items\":_vm.vatCategoriesForPrepayments,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); }},model:{value:(_vm.accomodationUnit.vatCategoryForPrepaymentsId),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"vatCategoryForPrepaymentsId\", $$v)},expression:\"accomodationUnit.vatCategoryForPrepaymentsId\"}}):_vm._e()],1)],1),(_vm.accomodationUnit.ownerId != null)?_c('v-row',[(_vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.ownerPricingModels,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"label\":_vm.$t('Property.InputPriceFormingModel'),\"item-value\":\"id\",\"disabled\":\"\"},model:{value:(_vm.propertyOwnerPricingModelId),callback:function ($$v) {_vm.propertyOwnerPricingModelId=$$v},expression:\"propertyOwnerPricingModelId\"}})],1):_vm._e(),(\n _vm.accomodationUnit.ownerId != null &&\n _vm.propertyOwnerPricingModelId === 3\n )?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Property.OwnerPayoutPercent'),\"suffix\":'%',\"validateInput\":true,\"disabled\":\"\"},model:{value:(_vm.propertyOwnerPayoutPercent),callback:function ($$v) {_vm.propertyOwnerPayoutPercent=$$v},expression:\"propertyOwnerPayoutPercent\"}})],1):_vm._e(),(\n _vm.tenantHasAgencyCommissionForPrepayments &&\n _vm.accomodationUnit.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OwnNameAndOtherInvoice\n )?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('Agency commission on prepayments') + '*',\"suffix\":'%',\"validateInput\":true,\"rules\":[\n _vm.rules.required0Allowed(\n _vm.accomodationUnit.agencyCommissionPercentForPrepayments\n ),\n _vm.rules.zeroOrPositive(\n _vm.accomodationUnit.agencyCommissionPercentForPrepayments\n ),\n _vm.maxValue(100)(\n _vm.accomodationUnit.agencyCommissionPercentForPrepayments\n ) ]},model:{value:(_vm.accomodationUnit.agencyCommissionPercentForPrepayments),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"agencyCommissionPercentForPrepayments\", $$v)},expression:\"accomodationUnit.agencyCommissionPercentForPrepayments\"}})],1):_vm._e()],1):_vm._e(),(_vm.accomodationUnit.ownerId != null)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"CategorizationDecision\"))+\" \")]):_vm._e(),(_vm.accomodationUnit.ownerId != null)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CategorizationClass'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.accomodationUnit.categorizationClass),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"categorizationClass\", $$v)},expression:\"accomodationUnit.categorizationClass\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('CategorizationNumber'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.accomodationUnit.categorizationNumber),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"categorizationNumber\", $$v)},expression:\"accomodationUnit.categorizationNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('CategorizationDate'),\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.accomodationUnit.categorizationDate),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"categorizationDate\", $$v)},expression:\"accomodationUnit.categorizationDate\"}})],1)],1):_vm._e(),(_vm.accomodationUnit.ownerId != null)?_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.generateOwnerContractOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"GenerateOwnerContract\"))+\" \")])],1)],1):_vm._e(),(_vm.accomodationUnit.ownerId != null)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.OwnerDoesCleaning')},model:{value:(_vm.accomodationUnit.ownerDoesCleaning),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"ownerDoesCleaning\", $$v)},expression:\"accomodationUnit.ownerDoesCleaning\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.OwnerDoesCheckin')},model:{value:(_vm.accomodationUnit.ownerDoesCheckin),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"ownerDoesCheckin\", $$v)},expression:\"accomodationUnit.ownerDoesCheckin\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('Property.OwnerDoesCheckout')},model:{value:(_vm.accomodationUnit.ownerDoesCheckout),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"ownerDoesCheckout\", $$v)},expression:\"accomodationUnit.ownerDoesCheckout\"}})],1)],1):_vm._e(),(_vm.accomodationUnit.ownerId != null)?_c('v-divider'):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\",\"sm\":\"2\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":_vm.$t('AccomodationUnit.SortOrder')},model:{value:(_vm.accomodationUnit.sortOrder),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"sortOrder\", _vm._n($$v))},expression:\"accomodationUnit.sortOrder\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('AccomodationUnit.EVisitorFacility', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }),\"items\":_vm.evisitorFacilities,\"item-value\":\"id\",\"item-text\":function (x) { return (x.accountName ? x.accountName : x.facility); },\"clearable\":\"\"},model:{value:(_vm.accomodationUnit.eVisitorFacilityId),callback:function ($$v) {_vm.$set(_vm.accomodationUnit, \"eVisitorFacilityId\", $$v)},expression:\"accomodationUnit.eVisitorFacilityId\"}})],1),_c('v-spacer')],1)],1)]),_c('v-dialog',{attrs:{\"max-width\":\"500\",\"persistent\":\"\"},model:{value:(_vm.generateOwnerContractOpen),callback:function ($$v) {_vm.generateOwnerContractOpen=$$v},expression:\"generateOwnerContractOpen\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"GenerateOwnerContract.ChooseDocument\")))]),_c('v-card-text',[_c('v-select',{attrs:{\"label\":_vm.$t('OwnerContractExportTypesPicker') + '*',\"items\":_vm.ownerContractExportTypes,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.value; },\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.ownerContractExportType),callback:function ($$v) {_vm.ownerContractExportType=$$v},expression:\"ownerContractExportType\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.loading || !_vm.ownerContractExportType},on:{\"click\":function($event){return _vm.submit(_vm.ownerContractExportType)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Generate\"))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){_vm.generateOwnerContractOpen = false;\n _vm.ownerContractExportType = null;}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport * as _ from \"lodash\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { AccomodationUnitViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { OwnerPricingModel } from \"@/shared/models/ownerPricingModel\";\nimport PropertyOwner from \"./PropertyOwner.vue\";\nimport {\n AgencyWorkModel,\n AgencyWorkModelsEnum,\n} from \"@/shared/models/agencyWorkModel\";\nimport { VATCategoryForPrepayments } from \"@/shared/models/vatCategoryForPrepayments\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport {\n EVisitorIntegrationNameEnum,\n OwnerContractExportType,\n} from \"@/shared/models/enums.type\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport {\n EVisitorIntegrationModel,\n EVisitorView,\n} from \"@/shared/models/eVisitor\";\n\n@Component({\n components: {\n RightDrawer,\n FormDescription,\n NoData,\n NumericInputImproved,\n PropertyOwner,\n DateField,\n },\n})\nexport default class AccomodationUnitForm extends Vue {\n @Prop({ default: null }) unit!: AccomodationUnitViewModel | null;\n @Prop({ default: false }) open!: boolean;\n @Prop() callback!: () => any;\n @Prop({ default: 0 }) propertyOwnerPricingModelId?: number | null;\n @Prop({ default: 0 }) propertyOwnerPayoutPercent?: number | null;\n @Prop() propertyId?: number;\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n @Action(\"codebooks/refreshOwnerPricingModels\")\n refreshOwnerPricingModels?: () => Promise;\n\n @Action(\"cashRegister/refreshCashRegisters\")\n refreshCashRegisters?: () => Promise;\n\n @Getter(\"codebooks/ownerPricingModels\")\n ownerPricingModels?: OwnerPricingModel[];\n\n @Action(\"codebooks/refreshAgencyWorkModels\")\n refreshAgencyWorkModels?: () => Promise;\n @Getter(\"codebooks/agencyWorkModels\") agencyWorkModels?: AgencyWorkModel[];\n agencyWorkModelsEnum = AgencyWorkModelsEnum;\n\n @Action(\"codebooks/refreshVATCategoriesForPrepayments\")\n refreshVATCategoriesForPrepayments?: () => Promise;\n @Getter(\"codebooks/vatCategoriesForPrepayments\")\n vatCategoriesForPrepayments?: VATCategoryForPrepayments[];\n\n @Getter(\"appParams/showOwnerPriceOffset\") showOwnerPriceOffset?: boolean;\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n @Getter(\"appParams/tenantHasAgencyCommissionForPrepayments\")\n tenantHasAgencyCommissionForPrepayments?: boolean;\n\n @Getter(\"appParams/tenantUsesInputPrice\")\n tenantUsesInputPrice?: boolean;\n\n tab = 0;\n\n fkey = 0;\n\n loading = false;\n saving = false;\n generateOwnerContractOpen = false;\n ownerContractExportType = null;\n cityTaxItems = [\n {\n value: true,\n text: \"Unit.PaysCityTax.True\",\n },\n {\n value: false,\n text: \"Unit.PaysCityTax.False\",\n },\n {\n value: null,\n text: \"Unit.PaysCityTax.ByProperty\",\n },\n ];\n\n initialAccomodationUnit = new AccomodationUnitViewModel();\n accomodationUnit = new AccomodationUnitViewModel();\n\n async created() {\n const promises = [];\n\n if (\n (this.ownerPricingModels?.length ?? 0) === 0 &&\n this.refreshOwnerPricingModels\n ) {\n promises.push(this.refreshOwnerPricingModels());\n }\n if (\n (this.agencyWorkModels?.length ?? 0) === 0 &&\n this.refreshAgencyWorkModels\n ) {\n promises.push(this.refreshAgencyWorkModels());\n }\n if (\n (this.vatCategoriesForPrepayments?.length ?? 0) === 0 &&\n this.refreshVATCategoriesForPrepayments\n ) {\n promises.push(this.refreshVATCategoriesForPrepayments());\n }\n\n await Promise.all(promises);\n }\n\n @Watch(\"accomodationUnit.sortOrder\")\n sortOrderWatch(fresh: number | string) {\n if (fresh === \"\") {\n this.accomodationUnit.sortOrder = null;\n }\n }\n\n @Watch(\"accomodationUnit.agencyWorkModelId\")\n ownNameElseAccount(workModel: AgencyWorkModelsEnum | string)\n {\n if(workModel === this.agencyWorkModelsEnum.OwnNameAndOtherInvoice && this.vatCategoriesForPrepayments?.length === 1)\n {\n this.accomodationUnit.vatCategoryForPrepaymentsId = this.vatCategoriesForPrepayments[0].id\n }\n }\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n this.tab = 0;\n\n if (!this.evisitorFacilities || this.evisitorFacilities.length == 0)\n this.loadPropertyEVisitoryFacilities();\n }\n\n if (fresh && this.unit) {\n this.accomodationUnit = this.unit;\n if (this.accomodationUnit.ownerId == null) {\n this.accomodationUnit.ownerPriceOffset = null;\n }\n this.initialAccomodationUnit = _.cloneDeep(this.accomodationUnit);\n } else {\n if (!this.showOwnerPriceOffset) {\n this.accomodationUnit.ownerPriceOffset = null;\n }\n this.accomodationUnit = new AccomodationUnitViewModel();\n this.initialAccomodationUnit = _.cloneDeep(this.accomodationUnit);\n }\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n required0Allowed: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: any) =>\n value == null ||\n value == undefined ||\n +value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n wholeNumber: (value: any) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n };\n }\n \n\n maxLength(max: number) {\n return (v: string) =>\n !v || v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n maxValue(max: number) {\n return (v: any) =>\n v <= max ? true : this.$t(\"Validation.MaxValue\", { max: max });\n }\n\n wholeNumbersOnly(value: number) {\n return (\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\")\n );\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading;\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n removeWorkModelAndCategorizationInfo() {\n this.accomodationUnit.categorizationClass = null;\n this.accomodationUnit.categorizationNumber = null;\n this.accomodationUnit.categorizationDate = undefined;\n this.accomodationUnit.agencyWorkModelId = null;\n }\n\n async submit(ownerContractExportType?: number) {\n this.accomodationUnit.categorizationDate =\n this.accomodationUnit.categorizationDate?.toString() === \"\"\n ? undefined\n : this.accomodationUnit.categorizationDate;\n\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n if (this.accomodationUnit.floor?.toString() === \"\") {\n this.accomodationUnit.floor = undefined;\n }\n if (this.accomodationUnit.shortName?.toString() === \"\") {\n this.accomodationUnit.shortName = this.accomodationUnit.name.substring(\n 0,\n 20\n );\n }\n\n if (\n this.accomodationUnit.ownerId == null ||\n this.accomodationUnit.ownerId == undefined\n ) {\n this.accomodationUnit.ownerPriceOffset = null;\n this.accomodationUnit.ownerDoesCleaning = false;\n this.accomodationUnit.ownerDoesCheckin = false;\n this.accomodationUnit.ownerDoesCheckout = false;\n }\n\n //submit\n this.saving = true;\n if (this.accomodationUnit.id && this.accomodationUnit.id !== 0) {\n await Vue.axios\n .put(\"/AccomodationUnits/\", this.accomodationUnit)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnit.SaveSuccess\"),\n timeout: 5000,\n });\n\n if (typeof ownerContractExportType == \"number\") {\n this.generateOwnerContract(ownerContractExportType);\n }\n\n this.$emit(\"update:open\", false);\n this.$emit(\"callback\");\n })\n .finally(() => {\n this.saving = false;\n });\n } else {\n await Vue.axios\n .post(\"AccomodationUnits\", this.accomodationUnit)\n .then((res) => {\n this.accomodationUnit = {\n ...this.accomodationUnit,\n id: res.data,\n };\n\n this.initialAccomodationUnit = _.cloneDeep(this.accomodationUnit);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnit.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.$emit(\"update:open\", false);\n this.$emit(\"callback\");\n })\n .finally(() => {\n this.saving = false;\n });\n }\n\n if (this.refreshCashRegisters) {\n this.refreshCashRegisters();\n }\n }\n\n generateOwnerContract(ownerContractExportType: number) {\n this.loading = true;\n this.axios\n .get(`/AccomodationUnits/generateOwnerContract`, {\n params: {\n accommodationUnitId: this.accomodationUnit.id,\n exportType: ownerContractExportType,\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=\"?(?[^;\"]+)\"?;/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"OwnerContract.docx\");\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GenerateOwnerContractSuccess\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.ownerContractExportType = null;\n this.loading = false;\n });\n }\n\n ownerContractExportTypes = [\n {\n value: OwnerContractExportType.Resident,\n text: \"t.OwnerContractExportType.Resident\",\n },\n {\n value: OwnerContractExportType.NonResident,\n text: \"t.OwnerContractExportType.NonResident\",\n },\n {\n value: OwnerContractExportType.LegalEntity,\n text: \"t.OwnerContractExportType.LegalEntity\",\n },\n ];\n\n evisitorFacilities: EVisitorView[] = [];\n loadPropertyEVisitoryFacilities() {\n this.axios\n .get>(\n `properties/${this.propertyId}/eVisitorFacilities`,\n {\n params: {\n status: true,\n },\n }\n )\n .then(({ data }) => {\n this.evisitorFacilities = data.result;\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitForm.vue?vue&type=template&id=ea8e06ca&scoped=true&\"\nimport script from \"./AccomodationUnitForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitForm.vue?vue&type=style&index=0&id=ea8e06ca&scoped=true&lang=scss&\"\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 \"ea8e06ca\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VDivider,VForm,VProgressLinear,VRow,VSelect,VSpacer,VSubheader,VTextField,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { AccomodationUnitViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport DeferredAutocompleteWrapper from \"@/components/misc/DeferredAutocompleteWrapper.vue\";\nimport { DefferedAutocompleteItem } from \"@/components/misc/DeferredAutocomplete.vue\";\nimport AccomodationUnitForm from \"@/components/property/AccomodationUnitForm.vue\";\nimport { ApiCredential } from \"@/shared/models/apiCredential\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\n\n@Component({\n components: {\n DeferredAutocompleteWrapper,\n AccomodationUnitForm,\n },\n})\nexport default class AccomodationUnitTable extends Vue {\n @Prop({ default: 0 }) accUnitTypeId?: number;\n @Prop({ default: 0 }) ownerId?: number;\n @Prop({ default: 0 }) propertyOwnerPricingModelId?: number | null;\n @Prop({ default: 0 }) propertyOwnerPayoutPercent?: number | null;\n @Prop() propertyId?: number;\n\n units: AccomodationUnitViewModel[] = [];\n\n headers = [\n {\n text: \"AccomodationUnit.Name\",\n value: \"name\",\n },\n {\n text: \"AccomodationUnit.ShortName\",\n value: \"shortName\",\n },\n {\n text: \"AccomodationUnit.Owner\",\n value: \"ownerName\",\n },\n {\n text: \"Floor\",\n value: \"floor\",\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n width: \"150\",\n align: \"center\",\n },\n ];\n\n openApiKeySelection = false;\n selected: ApiCredential[] = [];\n apiCredentialsHeaders = [\n {\n text: 'Name',\n align: 'start',\n sortable: false,\n value: 'name'\n },\n { text: 'Username', \n value: 'userTenantUsername',\n sortable: false\n },\n ];\n get translatedHeaders() {\n return this.headers.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n @Watch(\"accUnitTypeId\")\n accUnitTypeIdWatch() {\n this.load();\n }\n\n async mounted() {\n this.load();\n await this.loadApiCredentials();\n }\n\n load() {\n if (this.accUnitTypeId) {\n Vue.axios\n .get>(\"AccomodationUnits\", {\n params: {\n $skip: 0,\n $top: 100,\n $count: true,\n accomodationUnitTypeId: this.accUnitTypeId,\n },\n })\n .then((res) => {\n this.units = res.data.result;\n\n if (res.data.count && this.units.length < res.data.count) {\n this.loadMore();\n }\n });\n }\n }\n\n loadMore() {\n Vue.axios\n .get>(\"AccomodationUnits\", {\n params: {\n $skip: this.units.length,\n $top: 100,\n $count: true,\n accomodationUnitTypeId: this.accUnitTypeId,\n },\n })\n .then((res) => {\n this.units.push(...res.data.result);\n\n if (res.data.count && this.units.length < res.data.count) {\n this.loadMore();\n }\n });\n }\n\n accomodationUnitFormOpen = false;\n accomodationUnit: AccomodationUnitViewModel = new AccomodationUnitViewModel();\n loading = false;\n\n rowDoubleClick(e: MouseEvent, { item }: { item: AccomodationUnitViewModel }) {\n this.openItemDetails(item);\n }\n async openItemDetails(item: AccomodationUnitViewModel) {\n await this.loadAccomodationUnit(item.id);\n this.accomodationUnitFormOpen = true;\n }\n\n addUnit(\n propertyAgencyWorkModel: number,\n propertyVATCategory: number | null,\n propertyOwnerPriceOffset: number | null,\n propertyAgencyCommissionPercentForPrepayments: number | null,\n propertyOwnerDoesCheckin = false,\n propertyOwnerDoesCheckout = false,\n propertyOwnerDoesCleaning = false,\n propertyCategorizationNumber: string | null,\n propertyCategorizationClass: string | null,\n propertyCategorizationDate: Date | null = null\n ) {\n this.accomodationUnit = new AccomodationUnitViewModel();\n this.accomodationUnit.agencyWorkModelId = propertyAgencyWorkModel;\n this.accomodationUnit.accomodationUnitTypeId = this.accUnitTypeId;\n this.accomodationUnit.vatCategoryForPrepaymentsId = propertyVATCategory;\n this.accomodationUnit.ownerPriceOffset = propertyOwnerPriceOffset;\n this.accomodationUnit.agencyCommissionPercentForPrepayments = propertyAgencyCommissionPercentForPrepayments;\n this.accomodationUnit.ownerDoesCheckin = propertyOwnerDoesCheckin;\n this.accomodationUnit.ownerDoesCheckout = propertyOwnerDoesCheckout;\n this.accomodationUnit.ownerDoesCleaning = propertyOwnerDoesCleaning;\n this.accomodationUnit.categorizationNumber = propertyCategorizationNumber;\n this.accomodationUnit.categorizationClass = propertyCategorizationClass;\n this.accomodationUnit.categorizationDate = propertyCategorizationDate;\n this.setDefaultOwner();\n this.accomodationUnitFormOpen = true;\n }\n\n loadAccomodationUnit(id: number) {\n this.loading = true;\n return this.axios\n .get(\"/AccomodationUnits/\" + id)\n .then((res) => {\n this.accomodationUnit = {\n ...new AccomodationUnitViewModel(),\n ...res.data,\n };\n this.accomodationUnit.paysCityTax =\n res.data.paysCityTax == true || res.data.paysCityTax == false\n ? res.data.paysCityTax\n : null;\n this.accomodationUnit.accomodationUnitTypeId = this.accUnitTypeId;\n })\n .finally(() => (this.loading = false));\n }\n\n deleteItem(item: AccomodationUnitViewModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${item?.name}'`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteItemConfirm(id: number | undefined) {\n if (!id) {\n return;\n }\n this.loading = true;\n Vue.axios\n .delete(`/AccomodationUnits/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnit.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.load();\n this.loading = false;\n });\n }\n\n setDefaultOwner() {\n if (this.ownerId) {\n this.accomodationUnit.ownerId = this.ownerId;\n this.customerFetch({ id: this.ownerId });\n }\n }\n\n isById(x: any): x is { id: number } {\n return x && (x as { id: number }).id !== undefined;\n }\n\n isBySearch(x: any): x is { search: string } {\n return x && !!(x as { search: string }).search;\n }\n\n customerFetch(\n val: { id: number } | { search: string }\n ): Promise {\n if (this.isById(val)) {\n return this.axios.get(`customers/${val.id}`).then(({ data }) => [\n {\n id: data.id,\n text: data.isLegalEntity\n ? data.legalEntityName\n : // prettier-ignore\n `${data.firstName}${data.middleName ? ' '+ data.middleName : ''} ${data.lastName}`,\n },\n ]);\n } else if (this.isBySearch(val)) {\n return this.axios\n .get>(\"customers\", {\n params: {\n $orderby: \"name\",\n name: val.search,\n },\n })\n .then(({ data }) =>\n data.result.map((x) => ({\n id: x.id,\n text: x.name,\n }))\n );\n } else {\n return Promise.resolve([]);\n }\n }\n\n async copyiCalendarLink(unitId: number) {\n if(typeof ClipboardItem && navigator.clipboard.write) {\n // Safari locks down the clipboard API to only work when triggered by a direct user interaction. \n // We can't use it async in a promise, but we can wrap the promise in a ClipboardItem, and give that to the clipboard API.\n // reference: https://developer.apple.com/forums/thread/691873\n navigator.clipboard.write(\n [\n new ClipboardItem({\n \"text/plain\": this.fetchICalLink(unitId)\n .then(response => response)\n .then(text => new Blob([text], { type: \"text/plain\" }))\n })\n ]\n )\n }\n else {\n // Firefox has support for ClipboardItem and navigator.clipboard.write, but those are behind `dom.events.asyncClipboard.clipboardItem` preference.\n // On the other hand... Firefox can do this the \"standard\" way.\n navigator.clipboard.writeText(await this.fetchICalLink(unitId));\n }\n\n this.openApiKeySelection = false;\n this.selected = [];\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"LinkCopiedToClipboard\"),\n timeout: 5000,\n });\n }\n\n async fetchICalLink(unitId: number){\n let result = '';\n\n await this.axios\n .get(\"accomodationUnits/GetICalLink?id=\" + unitId + '&key=' + this.selected[0].id, {})\n .then((res) => {\n result = res.data;\n });\n\n return result;\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n async loadApiCredentials(): Promise> {\n this.loading = true;\n \n return (\n this.axios\n .get>(\"/ApiCredentials\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list.result = res.data.result.filter(x => x.name.includes('iCal'));\n this.list.count = this.list.result.length;\n\n return this.list;\n })\n .finally(() => {\n this.loading = false;\n })\n );\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"name\"],\n sortDesc: [false],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n \n get queryParams() {\n return {\n $skip: 0,\n $top: 100,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true\n };\n }\n\n async checkApiKeys(item: AccomodationUnitViewModel){\n if(!this.list.count){\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"ApiKey.iCal.AtLease1KeyRequired\"),\n timeout: 10000,\n });\n }\n else if(this.list.count && this.list.count > 1){\n this.openApiKeySelection = true\n }\n else{\n this.selected[0] = this.list.result[0]; \n this.copyiCalendarLink(item.id);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTable.vue?vue&type=template&id=7d163a22&scoped=true&\"\nimport script from \"./AccomodationUnitTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTable.vue?vue&type=style&index=0&id=7d163a22&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 \"7d163a22\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VDataTable,VDialog,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height wrapper\"},[_c('v-row',[(_vm.loading)?_c('v-col',{attrs:{\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),_vm._l((_vm.descriptions),function(desc){return _c('v-col',{key:desc.id,attrs:{\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",on:{\"dblclick\":function($event){return _vm.update(desc)}}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(_vm.langTr(desc.cultureCode))))]),_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.shortenDescription(desc.accUnitTypeDescription))+\" \")]),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.update(desc)}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.remove(desc)}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)}),_c('v-col',{staticClass:\"d-flex\",attrs:{\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",attrs:{\"width\":\"100%\"},on:{\"click\":function($event){return _vm.add()}}},[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(_vm._s(_vm.$t(\"Add new\")))]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)],1)],2),_c('RightDrawer',{attrs:{\"open\":_vm.formOpen,\"initial\":_vm.initialForm,\"watched\":_vm.form,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.formOpen=$event},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid || _vm.submiting},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.formOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-form',{ref:\"formRef\",attrs:{\"disabled\":_vm.submiting,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(!!_vm.form.id)?_c('h1',[_vm._v(_vm._s(_vm.$t(\"UnitTypeDescription.Editing\")))]):_c('h1',[_vm._v(_vm._s(_vm.$t(\"UnitTypeDescription.New\")))])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('UnitTypeDescription.CultureCode') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.required]},model:{value:(_vm.form.cultureCode),callback:function ($$v) {_vm.$set(_vm.form, \"cultureCode\", $$v)},expression:\"form.cultureCode\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('UnitTypeDescription.Description'),\"rules\":[_vm.maxLength(4000)],\"counter\":\"4000\"},model:{value:(_vm.form.accUnitTypeDescription),callback:function ($$v) {_vm.$set(_vm.form, \"accUnitTypeDescription\", $$v)},expression:\"form.accUnitTypeDescription\"}})],1)],1)],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AccomodationUnitTypeDescription } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { Getter, Action } from \"vuex-class\";\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Notification } from \"@/store/modules/notifications\";\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class AccomodationUnitTypeDescriptions extends Vue {\n formOpen = false;\n loading = true;\n submiting = false;\n\n @Prop() accUnitTypeId?: number;\n\n descriptions: AccomodationUnitTypeDescription[] = [];\n\n @Watch(\"accUnitTypeId\", { immediate: true })\n load() {\n if (!this.accUnitTypeId) return;\n\n this.axios\n .get>(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/descriptions`\n )\n .then((res) => {\n this.descriptions = res.data.result;\n })\n .finally(() => (this.loading = false));\n }\n\n isFormValid = false;\n\n form = new AccomodationUnitTypeDescription();\n initialForm = new AccomodationUnitTypeDescription();\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n async created() {\n const promises = [];\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n @Ref(\"formRef\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n add() {\n this.formRef?.resetValidation();\n this.form = new AccomodationUnitTypeDescription(\n this.accUnitTypeId ?? 0\n );\n this.initialForm = new AccomodationUnitTypeDescription(\n this.accUnitTypeId ?? 0\n );\n this.formOpen = true;\n }\n\n update(desc: AccomodationUnitTypeDescription) {\n this.formRef?.resetValidation();\n this.form = Object.assign(\n new AccomodationUnitTypeDescription(this.accUnitTypeId ?? 0),\n desc\n );\n this.initialForm = Object.assign(\n new AccomodationUnitTypeDescription(this.accUnitTypeId ?? 0),\n desc\n );\n this.formOpen = true;\n }\n\n submit() {\n if (this.submiting) {\n return;\n }\n\n if (!this.formRef?.validate()) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.submiting = true;\n if (this.form.id) {\n // update\n this.axios\n .put(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/descriptions/${this.form.id}`,\n this.form\n )\n .then(() => {\n const idx = this.descriptions.findIndex((d) => d.id === this.form.id);\n if (idx !== -1) {\n this.descriptions.splice(idx, 1, this.form);\n }\n this.formOpen = false;\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeDescription.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => (this.submiting = false));\n } else {\n // add\n this.axios\n .post(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/descriptions`,\n this.form\n )\n .then((x) => {\n this.form.id = x.data;\n this.descriptions.push(this.form);\n this.formOpen = false;\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeDescription.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => (this.submiting = false));\n }\n }\n\n remove(desc: AccomodationUnitTypeDescription) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"UnitTypeDescription.DeleteConfirmation\", {\n value: this.$t(this.langTr(desc.cultureCode)),\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(desc.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteConfirmed(id: number) {\n Vue.axios\n .delete(`/AccomodationUnitTypes/${this.accUnitTypeId}/descriptions/${id}`)\n .then(() => {\n const toRemove = this.descriptions.find((x) => x.id === id);\n if (toRemove) {\n this.descriptions = this.descriptions.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeDescription.DeleteSuccess\", {\n value: this.$t(this.langTr(toRemove.cultureCode)),\n }),\n timeout: 5000,\n } as Notification);\n }\n });\n }\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n langTr(code: string) {\n return (\n this.languages?.find((x) => x.languageCode === code)?.textResourceKey ??\n code\n );\n }\n\n shortenDescription(description: string){\n if(description && description.trim().length > 0)\n {\n if (description.length > 250){\n return description.substring(0, 247) + \"...\"\n }\n\n return description;\n }\n return this.$t(\"DescriptionIsEmpty\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeDescriptions.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeDescriptions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeDescriptions.vue?vue&type=template&id=559165f7&scoped=true&\"\nimport script from \"./AccomodationUnitTypeDescriptions.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeDescriptions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeDescriptions.vue?vue&type=style&index=0&id=559165f7&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 \"559165f7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VIcon,VRow,VSkeletonLoader,VSpacer,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-wrapper\"},[_c('SortableHeadersTable',{staticClass:\"pax-categories-table\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.paxCategories,\"options\":_vm.options,\"settingsOpen\":_vm.settingsOpen,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"sort-by\":\"id\",\"tableName\":\"paxCategories\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"item.minPersons\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.minPersons)+\" \")])]}},{key:\"item.maxPersons\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.maxPersons)+\" \")])]}},{key:\"item.inputPriceDifference\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.isDefault)?_c('div',[_vm._v(\" \"+_vm._s(_vm.inputPriceDifferenceData(item))+\" \")]):_vm._e()]}},{key:\"item.outputPriceDifference\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.isDefault)?_c('div',[_vm._v(\" \"+_vm._s(_vm.outputPriceDifferenceData(item))+\" \")]):_vm._e()]}},{key:\"item.isDefault\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-checkbox',{attrs:{\"disabled\":\"\",\"readonly\":\"\"},model:{value:(item.isDefault),callback:function ($$v) {_vm.$set(item, \"isDefault\", $$v)},expression:\"item.isDefault\"}})]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.update(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.remove(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}}])}),_c('AccomodationUnitTypeOBCategoriesForm',{attrs:{\"open\":_vm.formOpen,\"unitType\":_vm.model,\"existingCategories\":_vm.paxCategories,\"categoryId\":_vm.updateCategoryId},on:{\"update:open\":function($event){_vm.formOpen=$event},\"update:categoryId\":function($event){_vm.updateCategoryId=$event},\"update:category-id\":function($event){_vm.updateCategoryId=$event},\"saved\":_vm.refresh}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('RightDrawer',{attrs:{\"open\":_vm.internalOpen,\"initial\":_vm.initialModel,\"watched\":_vm.model,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.internalOpen=$event},\"save\":function($event){return _vm.submit()}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isSaveDisabled,\"loading\":_vm.submitting},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"form-title\"},[_vm._v(_vm._s(_vm.internalCategoryId ? _vm.$t(\"AccomodationUnitType.PAXCategories.Editing\") : _vm.$t(\"AccomodationUnitType.PAXCategories.New\")))])]),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('div',[(!_vm.internalCategoryId)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"CategoryTemplate.Info\")))])],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Templates'),\"items\":_vm.templateList,\"item-value\":\"id\",\"item-text\":\"templateName\",\"return-object\":\"\",\"clearable\":\"\"},on:{\"change\":_vm.selectTemplate},model:{value:(_vm.selectedTemplate),callback:function ($$v) {_vm.selectedTemplate=$$v},expression:\"selectedTemplate\"}})],1)],1):_vm._e(),(_vm.showPriceDiffNote)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"CategoryTemplatePriceDifference.Info\")))])],1)],1):_vm._e(),_vm._l((_vm.model),function(item,$index){return _c('v-row',{key:$index,attrs:{\"cols\":\"12\",\"dense\":\"\"}},[($index > 0)?_c('v-divider',{staticClass:\"my-3 divider\"}):_vm._e(),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AccomodationUnitType.PAXCategories.MinPersons') + '*',\"decimalPlaces\":0,\"outlined\":false,\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.required(item.minPersons),\n _vm.rules.oneOrPositive(item.minPersons),\n _vm.rules.minLowerThanMax(item.minPersons, item.maxPersons),\n _vm.rules.maxPersons(item.minPersons) ]},model:{value:(item.minPersons),callback:function ($$v) {_vm.$set(item, \"minPersons\", $$v)},expression:\"item.minPersons\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AccomodationUnitType.PAXCategories.MaxPersons') + '*',\"decimalPlaces\":0,\"outlined\":false,\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.required(item.maxPersons),\n _vm.rules.oneOrPositive(item.maxPersons),\n _vm.rules.minLowerThanMax(item.minPersons, item.maxPersons),\n _vm.rules.maxPersons(item.maxPersons) ]},model:{value:(item.maxPersons),callback:function ($$v) {_vm.$set(item, \"maxPersons\", $$v)},expression:\"item.maxPersons\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('AccomodationUnitType.LOSCategories.IsDefault'),\"dense\":\"\"},on:{\"change\":function($event){return _vm.defaultChanged($index)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCategory(item)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1)]},proxy:true}],null,true),model:{value:(item.isDefault),callback:function ($$v) {_vm.$set(item, \"isDefault\", $$v)},expression:\"item.isDefault\"}})],1),(!item.isDefault && _vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OB.LOS.Category.InputPriceDifference') +\n (item.inputPriceDifferenceIsAbsolute != null &&\n item.inputPriceDifferenceIsAbsolute != undefined\n ? '*'\n : ''),\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.greaterThanMinus100(item.inputPriceDifference, item.inputPriceDifferenceIsAbsolute),\n _vm.requiredIfDifferenceTypeEntered(\n item.inputPriceDifference,\n item.inputPriceDifferenceIsAbsolute\n ) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(item.inputPriceDifferenceIsAbsolute === false)?_c('span',[_vm._v(\"%\")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.inputPriceDifference),callback:function ($$v) {_vm.$set(item, \"inputPriceDifference\", $$v)},expression:\"item.inputPriceDifference\"}})],1):_vm._e(),(!item.isDefault && _vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('OB.LOS.Category.InputPriceDifferenceType') +\n (!!item.inputPriceDifference ? '*' : ''),\"dense\":\"\",\"rules\":[\n _vm.requiredIfPriceEntered(\n item.inputPriceDifference,\n item.inputPriceDifferenceIsAbsolute\n ) ],\"items\":_vm.priceDifferenceItems,\"clearable\":\"\",\"item-value\":\"value\"},model:{value:(item.inputPriceDifferenceIsAbsolute),callback:function ($$v) {_vm.$set(item, \"inputPriceDifferenceIsAbsolute\", $$v)},expression:\"item.inputPriceDifferenceIsAbsolute\"}})],1):_vm._e(),(!item.isDefault)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OB.LOS.Category.OutputPriceDifference') +\n (item.outputPriceDifferenceIsAbsolute != null &&\n item.outputPriceDifferenceIsAbsolute != undefined\n ? '*'\n : ''),\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.greaterThanMinus100(item.outputPriceDifference, item.outputPriceDifferenceIsAbsolute),\n _vm.requiredIfDifferenceTypeEntered(\n item.outputPriceDifference,\n item.outputPriceDifferenceIsAbsolute\n ) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(item.outputPriceDifferenceIsAbsolute === false)?_c('span',[_vm._v(\"%\")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.outputPriceDifference),callback:function ($$v) {_vm.$set(item, \"outputPriceDifference\", $$v)},expression:\"item.outputPriceDifference\"}})],1):_vm._e(),(!item.isDefault)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('OB.LOS.Category.OutputPriceDifferenceType') +\n (!!item.outputPriceDifference ? '*' : ''),\"dense\":\"\",\"rules\":[\n _vm.requiredIfPriceEntered(\n item.outputPriceDifference,\n item.outputPriceDifferenceIsAbsolute\n ) ],\"items\":_vm.priceDifferenceItems,\"clearable\":\"\",\"item-value\":\"value\"},model:{value:(item.outputPriceDifferenceIsAbsolute),callback:function ($$v) {_vm.$set(item, \"outputPriceDifferenceIsAbsolute\", $$v)},expression:\"item.outputPriceDifferenceIsAbsolute\"}})],1):_vm._e()],1)}),(!_vm.internalCategoryId)?_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addCategory()}}},[_vm._v(_vm._s(_vm.$t(\"OB.LOS.AddCategory\"))+\" \")]):_vm._e()],2)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport * as _ from \"lodash\";\nimport {\n AccomodationUnitTypePAXCategory,\n AccomodationUnitTypeViewModel,\n} from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { OBCategoryTemplateModel } from \"@/shared/models/obCategoryTemplate\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { AxiosResponse } from \"axios\";\n\n@Component({\n components: {\n NumericInputImproved,\n RightDrawer,\n SortableHeadersTable,\n },\n})\nexport default class AccomodationUnitTypeOBCategoriesForm extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() unitType?: AccomodationUnitTypeViewModel;\n @Prop() existingCategories?: AccomodationUnitTypePAXCategory[];\n @PropSync(\"categoryId\", { default: null }) internalCategoryId?: number | null;\n\n fkey = 0;\n isFormValid = false;\n submitting = false;\n loading = false;\n\n model = [] as AccomodationUnitTypePAXCategory[];\n initialModel = [] as AccomodationUnitTypePAXCategory[];\n\n selectedTemplate: OBCategoryTemplateModel | null = null;\n templateList: OBCategoryTemplateModel[] = [];\n\n loadOBCategoryTemplates() {\n this.axios\n .get>(\"/OBCategoryTemplates\")\n .then((res) => {\n this.templateList = res.data.result;\n });\n }\n\n selectTemplate() {\n if (this.selectedTemplate) {\n this.model = this.selectedTemplate.obCategoryTemplateItems.map((x) => {\n return {\n id: 0,\n accomodationUnitTypeId: this.unitType?.id ?? 0,\n isDefault:\n this.noDefaultCategory &&\n (this.unitType?.baseBedsCapacity ?? 0) >= (x.minPersons ?? 1) &&\n (this.unitType?.baseBedsCapacity ?? 0) <= (x.maxPersons ?? 0),\n minPersons: x.minPersons,\n maxPersons: x.maxPersons,\n inputPriceDifference: x.inputPriceDifference,\n inputPriceDifferenceIsAbsolute: x.inputPriceDifferenceIsAbsolute,\n outputPriceDifference: x.outputPriceDifference,\n outputPriceDifferenceIsAbsolute: x.outputPriceDifferenceIsAbsolute,\n } as AccomodationUnitTypePAXCategory;\n });\n } else {\n this.model = [new AccomodationUnitTypePAXCategory(this.unitType?.id)];\n }\n }\n\n @Watch(\"internalOpen\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n }\n\n if (fresh && this.internalCategoryId) {\n this.load();\n } else {\n this.model = [\n new AccomodationUnitTypePAXCategory(\n this.unitType?.id,\n this.noDefaultCategory\n ),\n ];\n this.initialModel = _.cloneDeep(this.model);\n }\n\n if (!fresh) {\n this.internalCategoryId = null;\n }\n }\n\n load() {\n this.loading = true;\n this.axios\n .get(\n `/AccomodationUnitTypes/${this.unitType?.id}/paxCategories/${this.internalCategoryId}`\n )\n .then((res) => {\n this.model = [res.data];\n this.initialModel = _.cloneDeep(this.model);\n })\n .finally(() => (this.loading = false));\n }\n\n @Ref(\"form\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n async created() {\n const promises = [];\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n mounted() {\n this.loadOBCategoryTemplates();\n }\n\n get showPriceDiffNote() {\n return this.model.some((e) => !e.isDefault);\n }\n\n get noDefaultCategory() {\n return (\n (this.existingCategories?.filter((x) => x.isDefault).length ?? 0) < 1\n );\n }\n\n addCategory() {\n this.model.push(new AccomodationUnitTypePAXCategory(this.unitType?.id));\n }\n\n removeCategory(item: AccomodationUnitTypePAXCategory) {\n const index = this.model.findIndex((x) => x == item);\n if (index != -1) {\n this.model.splice(index, 1);\n }\n }\n\n defaultChanged(index: number) {\n if (this.model[index].isDefault) {\n this.model.forEach((x, i) => {\n if (i !== index) x.isDefault = false;\n });\n }\n }\n\n get priceDifferenceItems() {\n return [\n {\n text: this.$t(\"OB.LOS.Category.IsPriceDifferenceAbsolute\"),\n value: true,\n },\n {\n text: this.$t(\"OB.LOS.Category.IsPriceDifferencePercentage\"),\n value: false,\n },\n ];\n }\n\n submit(overrides: string[] = []) {\n if (this.submitting) return;\n this.submitting = true;\n this.formRef?.validate();\n if (!this.isFormValid) {\n this.submitting = false;\n return;\n }\n\n const handleCodes = [\n \"AccomodationUnitType.OBCategories.DefaultAlreadyExists\",\n ];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n const isOverriding = overrides.length !== 0;\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const confirmOverrideNotification = (\n x: AxiosResponse & { handled: string[] }\n ) =>\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n\n const handleSuccess = () => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypePAXCategory.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n this.internalOpen = false;\n this.$emit(\"saved\");\n };\n\n // update\n if (this.internalCategoryId) {\n const request = {\n overrideRules: overrides,\n ...this.model[0],\n };\n\n this.axios\n .put(\n `/AccomodationUnitTypes/${this.unitType?.id}/paxCategories/${request.id}`,\n request,\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => handleSuccess())\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => (this.submitting = false));\n }\n // create\n else {\n this.axios\n .post(\n `/AccomodationUnitTypes/${this.unitType?.id}/paxCategories`,\n {\n overrideRules: overrides,\n items: this.model,\n },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => handleSuccess())\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => (this.submitting = false));\n }\n }\n\n get isSaveDisabled(){\n return !this.isFormValid || this.submitting;\n }\n // validation\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n oneOrPositive: (value: number) =>\n value >= 1 || this.$t(\"Validation.MustBeOneOrPositive\"),\n minLowerThanMax: (min: number | null, max: number | null) =>\n min === null ||\n max === null ||\n min <= max ||\n max === 0 || // 0 == infinite\n this.$t(\n \"AccomodationUnitType.OBCategories.MinPersonsGreaterThanMaxPersons\"\n ),\n maxPersons: (value: number) =>\n value <=\n (this.unitType?.baseBedsCapacity ?? 0) +\n (this.unitType?.extraBedsCapacity ?? 0) ||\n this.$t(\"AccomodationUnitType.OBCategories.MaxPersonsExceeded\"),\n greaterThanMinus100: (value: number | null, priceDifferenceIsAbsolute: boolean) =>\n value === null ||\n value === undefined ||\n value > -100 || \n priceDifferenceIsAbsolute ||\n this.$t(\"Validation.MinValue\"),\n };\n }\n\n requiredIfPriceEntered(num: number, val: boolean) {\n if (num && (val === undefined || val === null)) {\n return this.$t(\"Validation.RequiredIfPriceEntered\");\n } else {\n return true;\n }\n }\n\n requiredIfDifferenceTypeEntered(num: number, val: boolean) {\n if (\n val !== undefined &&\n val !== null &&\n (num === null || num === undefined)\n ) {\n return this.$t(\"Validation.Required\");\n } else {\n return true;\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeOBCategoriesForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeOBCategoriesForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeOBCategoriesForm.vue?vue&type=template&id=205d2bb7&scoped=true&\"\nimport script from \"./AccomodationUnitTypeOBCategoriesForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeOBCategoriesForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeOBCategoriesForm.vue?vue&type=style&index=0&id=205d2bb7&scoped=true&lang=scss&\"\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 \"205d2bb7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCheckbox,VCol,VDivider,VForm,VIcon,VRow,VSelect,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport * as _ from \"lodash\";\nimport {\n AccomodationUnitTypePAXCategory,\n AccomodationUnitTypeViewModel,\n} from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport { DataOptions } from \"vuetify\";\nimport AccomodationUnitTypeOBCategoriesForm from \"./AccomodationUnitTypeOBCategoriesForm.vue\";\nimport NumericInput from \"../misc/NumericInput.vue\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Currency } from \"@/shared/models/currency\";\n\n@Component({\n components: {\n NumericInput,\n RightDrawer,\n SortableHeadersTable,\n AccomodationUnitTypeOBCategoriesForm,\n },\n})\nexport default class AccomodationUnitTypeOBCategories extends Vue {\n @Prop() model?: AccomodationUnitTypeViewModel;\n\n loading = true;\n settingsOpen = false;\n paxCategories: AccomodationUnitTypePAXCategory[] = [];\n\n formOpen = false;\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n // load existing categories and global templates\n load() {\n if (!this.model?.id) return;\n this.loading = true;\n this.axios\n .get>(\n `/AccomodationUnitTypes/${this.model.id}/paxCategories`\n )\n .then((res) => {\n this.paxCategories = res.data.result;\n })\n .finally(() => (this.loading = false));\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n refresh() {\n this.debouncedLoad();\n this.$emit('saved');\n }\n\n headers: SortableTableHeader[] = [];\n\n setupHeaders() {\n this.headers = [\n {\n text: \"AccomodationUnitType.PAXCategories.MinPersons\",\n value: \"minPersons\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"AccomodationUnitType.PAXCategories.MaxPersons\",\n value: \"maxPersons\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ...(this.tenantUsesInputPrice\n ? [\n {\n text: \"OB.LOS.Category.InputPriceDifference\",\n value: \"inputPriceDifference\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : []),\n {\n text: \"OB.LOS.Category.OutputPriceDifference\",\n value: \"outputPriceDifference\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"AccomodationUnitType.LOSCategories.IsDefault\",\n value: \"isDefault\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"minPerson\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n async created() {\n this.setupHeaders();\n }\n\n mounted() {\n this.load();\n }\n\n add() {\n this.formOpen = true;\n }\n\n updateCategoryId: number | null = null;\n update(category: AccomodationUnitTypePAXCategory) {\n this.updateCategoryId = category.id;\n this.formOpen = true;\n }\n\n rowDoubleClick(\n e: MouseEvent,\n { item }: { item: AccomodationUnitTypePAXCategory }\n ) {\n this.update(item);\n }\n\n remove(category: AccomodationUnitTypePAXCategory) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"UnitTypePAXCategory.DeleteConfirmation\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(category.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteConfirmed(id: number, overrides: string[] = []) {\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n this.loading = true;\n\n Vue.axios\n .delete(`/AccomodationUnitTypes/${this.model?.id}/paxCategories/${id}`, {\n data: { overrideRules: overrides },\n adapter: isOverriding ? undefined : adapter,\n })\n .then(() => {\n const toRemove = this.paxCategories.find((x) => x.id === id);\n if (toRemove) {\n this.paxCategories = this.paxCategories.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypePAXCategory.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n }\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.deleteConfirmed(id, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => (this.loading = false));\n }\n\n inputPriceDifferenceData(item: AccomodationUnitTypePAXCategory) {\n if (\n item.inputPriceDifference &&\n item.inputPriceDifferenceIsAbsolute !== null\n ) {\n return (\n item.inputPriceDifference.toFixed(2) +\n (!item.inputPriceDifferenceIsAbsolute\n ? \"%\"\n : \" \" + this.workingCurrency?.isoCode)\n );\n }\n }\n\n outputPriceDifferenceData(item: AccomodationUnitTypePAXCategory) {\n if (\n item.outputPriceDifference &&\n item.outputPriceDifferenceIsAbsolute !== null\n ) {\n return (\n item.outputPriceDifference?.toFixed(2) +\n (!item.outputPriceDifferenceIsAbsolute\n ? \"%\"\n : \" \" + this.workingCurrency?.isoCode)\n );\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeOBCategoriesTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeOBCategoriesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeOBCategoriesTable.vue?vue&type=template&id=05f825e8&scoped=true&\"\nimport script from \"./AccomodationUnitTypeOBCategoriesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeOBCategoriesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeOBCategoriesTable.vue?vue&type=style&index=0&id=05f825e8&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 \"05f825e8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VCheckbox,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('v-data-table',{staticClass:\"table\",attrs:{\"headers\":_vm.translatedHeaders,\"items\":_vm.translations,\"item-key\":\"id\",\"sort-by\":\"id\",\"must-sort\":\"\",\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"fixed-header\":\"\",\"height\":\"100%\"},on:{\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"item.cultureCode\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.langTr(item.cultureCode)))+\" \")])]}},{key:\"item.nameTranslation\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.nameTranslation)+\" \")])]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.update(item)}}},[_vm._v(\"fal fa-pen\")]),_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.remove(item)}}},[_vm._v(\"fal fa-trash\")])]}}])}),_c('RightDrawer',{attrs:{\"open\":_vm.formOpen,\"initial\":_vm.initialForm,\"watched\":_vm.form,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.formOpen=$event},\"save\":_vm.submit},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid || _vm.submiting},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.formOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-form',{ref:\"formRef\",attrs:{\"disabled\":_vm.submiting,\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(!!_vm.form.id)?_c('h1',[_vm._v(_vm._s(_vm.$t(\"UnitTypeTranslation.Editing\")))]):_c('h1',[_vm._v(_vm._s(_vm.$t(\"UnitTypeTranslation.New\")))])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('UnitTypeTranslation.CultureCode') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.required]},model:{value:(_vm.form.cultureCode),callback:function ($$v) {_vm.$set(_vm.form, \"cultureCode\", $$v)},expression:\"form.cultureCode\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"filled\":\"\",\"label\":_vm.$t('UnitTypeTranslation.Name'),\"rules\":[_vm.maxLength(255)],\"counter\":\"255\"},model:{value:(_vm.form.nameTranslation),callback:function ($$v) {_vm.$set(_vm.form, \"nameTranslation\", $$v)},expression:\"form.nameTranslation\"}})],1)],1)],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { AccomodationUnitTypeTranslation } from \"@/shared/models/accomodationUnitTypeViewModel\";\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class AccomodationUnitTypeTranslations extends Vue {\n formOpen = false;\n loading = true;\n submiting = false;\n\n headers = [\n {\n text: \"UnitTypeTranslation.CultureCode\",\n value: \"cultureCode\",\n width: \"150\",\n },\n {\n text: \"UnitTypeTranslation.Name\",\n value: \"nameTranslation\",\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n width: \"150\",\n align: \"center\",\n },\n ];\n get translatedHeaders() {\n return this.headers.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n @Prop() accUnitTypeId?: number;\n\n translations: AccomodationUnitTypeTranslation[] = [];\n\n @Watch(\"accUnitTypeId\", { immediate: true })\n load() {\n if (!this.accUnitTypeId) return;\n\n this.axios\n .get>(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/translations`\n )\n .then((res) => {\n this.translations = res.data.result;\n })\n .finally(() => (this.loading = false));\n }\n\n isFormValid = false;\n\n form = new AccomodationUnitTypeTranslation();\n initialForm = new AccomodationUnitTypeTranslation();\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n async created() {\n const promises = [];\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n @Ref(\"formRef\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n add() {\n this.formRef?.resetValidation();\n this.form = new AccomodationUnitTypeTranslation(this.accUnitTypeId ?? 0);\n this.initialForm = new AccomodationUnitTypeTranslation(\n this.accUnitTypeId ?? 0\n );\n this.formOpen = true;\n }\n\n update(translation: AccomodationUnitTypeTranslation) {\n this.formRef?.resetValidation();\n this.form = Object.assign(\n new AccomodationUnitTypeTranslation(this.accUnitTypeId ?? 0),\n translation\n );\n this.initialForm = Object.assign(\n new AccomodationUnitTypeTranslation(this.accUnitTypeId ?? 0),\n translation\n );\n this.formOpen = true;\n }\n\n rowDoubleClick(e: MouseEvent, { item }: { item: AccomodationUnitTypeTranslation }) {\n this.update(item);\n }\n\n submit() {\n if (this.submiting) {\n return;\n }\n\n if (!this.formRef?.validate()) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.submiting = true;\n if (this.form.id) {\n // update\n this.axios\n .put(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/translations/${this.form.id}`,\n this.form\n )\n .then(() => {\n const idx = this.translations.findIndex((d) => d.id === this.form.id);\n if (idx !== -1) {\n this.translations.splice(idx, 1, this.form);\n }\n this.formOpen = false;\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeTranslation.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => (this.submiting = false));\n } else {\n // add\n this.axios\n .post(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/translations`,\n this.form\n )\n .then((x) => {\n this.form.id = x.data;\n this.translations.push(this.form);\n this.formOpen = false;\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeTranslation.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => (this.submiting = false));\n }\n }\n\n remove(translation: AccomodationUnitTypeTranslation) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"UnitTypeTranslation.DeleteConfirmation\", {\n value: this.$t(this.langTr(translation.cultureCode)),\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(translation.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteConfirmed(id: number) {\n Vue.axios\n .delete(`/AccomodationUnitTypes/${this.accUnitTypeId}/translations/${id}`)\n .then(() => {\n const toRemove = this.translations.find((x) => x.id === id);\n if (toRemove) {\n this.translations = this.translations.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeTranslation.DeleteSuccess\", {\n value: this.$t(this.langTr(toRemove.cultureCode)),\n }),\n timeout: 5000,\n } as Notification);\n }\n });\n }\n\n required(v: any) {\n return v ? true : this.$t(\"Validation.Required\");\n }\n maxLength(max: number) {\n return (v: string) =>\n v.length <= max ? true : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n langTr(code: string) {\n return (\n this.languages?.find((x) => x.languageCode === code)?.textResourceKey ??\n code\n );\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTranslations.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTranslations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeTranslations.vue?vue&type=template&id=f4969ba8&scoped=true&\"\nimport script from \"./AccomodationUnitTypeTranslations.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeTranslations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeTranslations.vue?vue&type=style&index=0&id=f4969ba8&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 \"f4969ba8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VAutocomplete,VBtn,VCol,VContainer,VDataTable,VForm,VIcon,VRow,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.headers.length != 0)?_c('SortableHeadersTable',{staticClass:\"officialRatesTable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"officialRatesTable\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"loaded\":function($event){_vm.loadedSettings = true},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.ratePlanId\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.serviceTypeId\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.currencyId\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.seasonName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.seasonName),callback:function ($$v) {_vm.$set(_vm.filters, \"seasonName\", $$v)},expression:\"filters.seasonName\"}})]}},{key:\"header.dateFrom\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.dateFromPeriod),callback:function ($$v) {_vm.dateFromPeriod=$$v},expression:\"dateFromPeriod\"}})]}},{key:\"header.dateTo\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.dateToPeriod),callback:function ($$v) {_vm.dateToPeriod=$$v},expression:\"dateToPeriod\"}})]}},{key:\"header.price\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.inputPrice\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.minimumStay\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.isMain\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.noDeparturesOn\",fn:function(ref){\nvar header = ref.header;\nreturn [_vm._v(\" \"+_vm._s(_vm.$t(header.text))+\" \")]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.ratePlanId\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.ratePlanDisplay(value))+\" \")]}},(_vm.tenantUsesServiceTypes)?{key:\"item.serviceTypeId\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.serviceTypeDisplay(value))+\" \")]}}:null,{key:\"item.seasonName\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(value)+\" \")]}},{key:\"item.currencyId\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.selectedCurrencyDisplay(value))+\" \")]}},{key:\"item.dateFrom\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.$d(new Date(value)))+\" \")]}},{key:\"item.dateTo\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(_vm.$d(new Date(value)))+\" \")]}},{key:\"item.price\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.currencyDisplay(item.price, item.currencyId)))])]}},{key:\"item.inputPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.currencyDisplay(item.inputPrice, item.currencyId)))])]}},{key:\"item.minimumStay\",fn:function(ref){\nvar value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(value)+\" \")]}},{key:\"item.isMain\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"disabled\":\"\"},model:{value:(item.isMain),callback:function ($$v) {_vm.$set(item, \"isMain\", $$v)},expression:\"item.isMain\"}})]}},{key:\"item.noDeparturesOn\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.noDeparturesDisplay(item))+\" \")]}},{key:\"item.noArrivalsOn\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.noArrivalsDisplay(item))+\" \")]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.openItemDetails(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}}],null,true)}):_vm._e()],1)],1),_c('v-btn',{key:\"add\",attrs:{\"fab\":\"\",\"left\":\"\",\"absolute\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.addOfficialRate}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('OfficialRatesFormNew',{attrs:{\"accUnitType\":_vm.accUnitType,\"officialRateId\":_vm.selectedOfficialRate,\"open\":_vm.formOpen,\"callback\":_vm.load},on:{\"update:open\":function($event){_vm.formOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"drawer\",attrs:{\"open\":_vm.open,\"saving\":_vm.saving,\"initial\":_vm.initialOfficialRate,\"watched\":_vm.officialRate,\"width\":\"1400px\"},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"officialrates-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.saving,\"disabled\":!_vm.submitDisabled},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600\",\"scrollable\":\"\"},model:{value:(_vm.saveDialogOpen),callback:function ($$v) {_vm.saveDialogOpen=$$v},expression:\"saveDialogOpen\"}},[_c('v-card',[_c('v-card-text',[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"OfficialRateUpdate.Info\")))]),_c('v-select',{key:_vm.dkey,attrs:{\"label\":_vm.$t('OfficialRateUpdate.UpdateType') + '*',\"rules\":[_vm.rules.required],\"items\":_vm.enumToArray(_vm.updateTypeEnum),\"item-text\":function (x) { return _vm.$t('OfficialRateUpdate.' + x.name); },\"item-value\":\"value\"},model:{value:(_vm.updateType),callback:function ($$v) {_vm.updateType=$$v},expression:\"updateType\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.saving,\"disabled\":!_vm.submitDisabled || !_vm.updateType},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":function($event){_vm.saveDialogOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('div',{staticClass:\"officialrates-form-title\"},[(!!_vm.officialRate.id)?_c('span',[_vm._v(_vm._s(_vm.$t(\"OfficialRate.Editing\"))+\" \"+_vm._s(_vm.officialRate.name))]):_vm._e(),(!_vm.officialRate.id)?_c('span',[_vm._v(_vm._s(_vm.$t(\"OfficialRate.New\")))]):_vm._e()])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading || _vm.saving},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('div',{staticClass:\"form-items\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('OfficialRate.DateFrom') + '*',\"rules\":[_vm.rules.required, _vm.rules.validPeriod()],\"editable\":true},on:{\"input\":function($event){!_vm.officialRate.dateTo ? (_vm.pickerDate = $event) : ''}},model:{value:(_vm.officialRate.dateFrom),callback:function ($$v) {_vm.$set(_vm.officialRate, \"dateFrom\", $$v)},expression:\"officialRate.dateFrom\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('DateField',{attrs:{\"pickerDate\":_vm.pickerDate,\"label\":_vm.$t('OfficialRate.DateTo') + '*',\"rules\":[_vm.rules.required, _vm.rules.validPeriod()],\"editable\":true},on:{\"update:picker-date\":function($event){_vm.pickerDate = $event}},model:{value:(_vm.officialRate.dateTo),callback:function ($$v) {_vm.$set(_vm.officialRate, \"dateTo\", $$v)},expression:\"officialRate.dateTo\"}})],1),(_vm.officialRatesUseSeasonNames)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('OfficialRate.SeasonName'),\"rules\":[_vm.maxLength(100)]},model:{value:(_vm.officialRate.seasonName),callback:function ($$v) {_vm.$set(_vm.officialRate, \"seasonName\", $$v)},expression:\"officialRate.seasonName\"}})],1):_vm._e(),(!_vm.tenantOBRsUseRelativePricing)?_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('OfficialRate.RatePlan') + '*',\"items\":_vm.ratePlansForOfficialRate,\"item-value\":\"id\",\"item-text\":function (x) { return x.name + ' (' + _vm.currencyIsoCode(x.currencyId) + ')'; },\"disabled\":_vm.ratePlanSelectDisabled,\"rules\":[_vm.rules.required]},model:{value:(_vm.officialRate.ratePlanId),callback:function ($$v) {_vm.$set(_vm.officialRate, \"ratePlanId\", $$v)},expression:\"officialRate.ratePlanId\"}})],1):_vm._e(),(_vm.tenantUsesServiceType)?_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('RatePlan.ServiceType'),\"items\":_vm.serviceTypes,\"item-value\":\"id\",\"item-text\":\"name\"},model:{value:(_vm.officialRate.serviceTypeId),callback:function ($$v) {_vm.$set(_vm.officialRate, \"serviceTypeId\", $$v)},expression:\"officialRate.serviceTypeId\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"1\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('OfficialRate.Currency') + '*',\"items\":_vm.currencyItems,\"item-value\":\"id\",\"item-text\":\"text\",\"rules\":[_vm.rules.required],\"disabled\":_vm.currencyItems.length == 1},model:{value:(_vm.officialRate.currencyId),callback:function ($$v) {_vm.$set(_vm.officialRate, \"currencyId\", $$v)},expression:\"officialRate.currencyId\"}})],1),(_vm.showPAXCategories && _vm.showLOSCategories)?_c('v-col',{staticClass:\"d-flex align-baseline\",attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Group by'),\"items\":_vm.enumToArray(_vm.officialRateRulesGroupingEnum),\"item-text\":function (x) { return _vm.$t('OfficialRates.Rules.Grouping.' + x.name); },\"hide-details\":\"\"},on:{\"change\":function($event){_vm.expanded = []}},model:{value:(_vm.grouping),callback:function ($$v) {_vm.grouping=$$v},expression:\"grouping\"}}),_c('v-btn',{staticClass:\"ml-6\",on:{\"click\":_vm.toggleExpandCollapse}},[_vm._v(_vm._s(_vm.$t(\"Expand all\")))])],1):_vm._e()],1),(!_vm.tenantUsesOfficialRateRules)?_c('OfficialRatesFormPrices',{attrs:{\"officialRate\":_vm.officialRate,\"accUnitType\":_vm.accUnitType},on:{\"update:officialRate\":function($event){_vm.officialRate=$event},\"update:official-rate\":function($event){_vm.officialRate=$event}}}):_vm._e(),(_vm.showPAXCategories && !_vm.showLOSCategories)?_c('OfficialRatesOBRules',{attrs:{\"officialRate\":_vm.officialRate,\"accUnitType\":_vm.accUnitType,\"saving\":_vm.saving},on:{\"update:saving\":function($event){_vm.saving=$event}}}):_vm._e(),(!_vm.showPAXCategories && _vm.showLOSCategories)?_c('OfficialRatesLOSRules',{attrs:{\"officialRate\":_vm.officialRate,\"accUnitType\":_vm.accUnitType,\"saving\":_vm.saving},on:{\"update:saving\":function($event){_vm.saving=$event}}}):_vm._e(),(_vm.showPAXCategories && _vm.showLOSCategories)?_c('OfficialRatesOBAndLOSRules',{ref:\"OBAndLOSRules\",attrs:{\"officialRate\":_vm.officialRate,\"accUnitType\":_vm.accUnitType,\"grouping\":_vm.grouping,\"saving\":_vm.saving},on:{\"update:saving\":function($event){_vm.saving=$event}}}):_vm._e(),_c('OfficialRatesArrivalsDepartures',{attrs:{\"officialRate\":_vm.officialRate}}),(!_vm.tenantOBRsUseRelativePricing)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"multiple\":\"\",\"chips\":\"\",\"return-object\":false,\"label\":_vm.$t('OfficialRate.DerivedRatePlanToUpdateRestriction'),\"items\":_vm.derivedRatePlansForRestrictionUpdate,\"item-value\":\"ratePlanId\",\"item-text\":function (x) { return x.ratePlanName; }},model:{value:(_vm.officialRate.derivedRatePlanIdsToUpdateRestrictions),callback:function ($$v) {_vm.$set(_vm.officialRate, \"derivedRatePlanIdsToUpdateRestrictions\", $$v)},expression:\"officialRate.derivedRatePlanIdsToUpdateRestrictions\"}}),_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t( \"OfficialRate.AvailabilityUpdateForDerivedRatePlanRestrictionsInfo\" ))+\" \")])],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('OfficialRate.IsMain')},model:{value:(_vm.officialRate.isMain),callback:function ($$v) {_vm.$set(_vm.officialRate, \"isMain\", $$v)},expression:\"officialRate.isMain\"}}),(_vm.officialRate.isMain)?_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"warning\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.IsMainOverwriteAlert\"))+\" \")]):_vm._e(),_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.IsMainHint\"))+\" \")])],1)],1),(_vm.tenantOBRsUseRelativePricing)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"multiple\":\"\",\"chips\":\"\",\"return-object\":false,\"label\":_vm.$t('OfficialRate.RatePlanToUpdate'),\"items\":_vm.ratePlansForUpdate,\"item-value\":\"id\",\"item-text\":function (x) { return x.name + ' (' + _vm.currencyIsoCode(x.currencyId) + ')'; }},on:{\"change\":function($event){return _vm.ratePlanIdsToUpdateChanged()}},model:{value:(_vm.officialRate.ratePlanIdsToUpdate),callback:function ($$v) {_vm.$set(_vm.officialRate, \"ratePlanIdsToUpdate\", $$v)},expression:\"officialRate.ratePlanIdsToUpdate\"}}),_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.AvailabilityUpdateInfo\"))+\" \")])],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"multiple\":\"\",\"chips\":\"\",\"return-object\":false,\"label\":_vm.$t('OfficialRate.DerivedRatePlanToUpdateRestriction'),\"items\":_vm.derivedRatePlansFromSelected,\"item-value\":\"ratePlanId\",\"item-text\":function (x) { return x.ratePlanName; }},model:{value:(_vm.officialRate.derivedRatePlanIdsToUpdateRestrictions),callback:function ($$v) {_vm.$set(_vm.officialRate, \"derivedRatePlanIdsToUpdateRestrictions\", $$v)},expression:\"officialRate.derivedRatePlanIdsToUpdateRestrictions\"}}),_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t( \"OfficialRate.AvailabilityUpdateForDerivedRatePlanRestrictionsInfo\" ))+\" \")])],1)],1):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.officialRateInternal.officialRateRules)?_c('div',[_c('v-row',[_c('v-col',{staticClass:\"d-flex pt-0 pb-1\"},[_c('v-btn',{attrs:{\"disabled\":_vm.savingInternal},on:{\"click\":function($event){_vm.automaticCalculationModal = true}}},[_vm._v(_vm._s(_vm.$t(\"Automatic calculation\")))])],1)],1),_c('v-row',{key:_vm.fkey,staticClass:\"obr-table mx-0\"},_vm._l((_vm.officialRateInternal.officialRateRules),function(obr,$index){return _c('v-col',{key:$index,staticClass:\"obr\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{class:{\n 'base-obr': _vm.isBaseRule(obr),\n }},[_vm._v(\" \"+_vm._s(_vm.getRuleHeader(obr))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-tooltip',{attrs:{\"slot\":\"append\",\"top\":\"\"},slot:\"append\",scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-checkbox',_vm._g({attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('OfficialRateForm.NoSales.Short')},model:{value:(obr.noSales),callback:function ($$v) {_vm.$set(obr, \"noSales\", $$v)},expression:\"obr.noSales\"}},on))]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.NoSales\"))+\" \")])],1)],1),(_vm.tenantUsesInputPrice && !_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(obr.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(obr.inputPrice)]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice($event, $index, false, true, obr.price)}}}):_vm._e(),(!_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(obr.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(obr.price)]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice($event, $index, false, false, obr.inputPrice)}}}):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(obr.inputPrice)]},on:{\"input\":function($event){return _vm.automaticCalculation(true, $index)}},model:{value:(obr.inputPrice),callback:function ($$v) {_vm.$set(obr, \"inputPrice\", $$v)},expression:\"obr.inputPrice\"}}):_vm._e(),(_vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(obr.price)]},on:{\"input\":function($event){return _vm.automaticCalculation(false, $index)}},model:{value:(obr.price),callback:function ($$v) {_vm.$set(obr, \"price\", $$v)},expression:\"obr.price\"}}):_vm._e()],1)}),1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.Restrictions\"))+\" \")])],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MinimumStay') + '*',\"validateInput\":true,\"rules\":[\n _vm.rules.required,\n _vm.rules.zeroOrPositive(_vm.officialRateInternal.minimumStay) ]},model:{value:(_vm.officialRateInternal.minimumStay),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"minimumStay\", $$v)},expression:\"officialRateInternal.minimumStay\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MaximumStay'),\"validateInput\":true,\"rules\":[_vm.rules.undefinedOrPositive(_vm.officialRateInternal.maximumStay)],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.maximumStay),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"maximumStay\", $$v)},expression:\"officialRateInternal.maximumStay\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MinBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.minBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.minBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"minBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.minBookableBeforeCheckin\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MaxBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.maxBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.maxBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"maxBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.maxBookableBeforeCheckin\"}})],1)],1),_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"persistent\":\"\",\"max-width\":\"700\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.automaticCalculationModal),callback:function ($$v) {_vm.automaticCalculationModal=$$v},expression:\"automaticCalculationModal\"}},[(!_vm.baseCategory)?_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"word-break\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.DefaultCategoryNotDefined\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)],1):_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-card-title',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Automatic calculation\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',[_c('div',{staticClass:\"base-obr\"},[_vm._v(\" \"+_vm._s(_vm.getRuleHeader(_vm.baseCategory))+\" \")]),_c('div',[(_vm.tenantUsesInputPrice && !_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(_vm.baseCategory.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"forRackRates\":true,\"required\":false,\"rules\":[\n _vm.rules.zeroOrPositive(_vm.baseCategory.inputPrice)\n ]},on:{\"calculatePrice\":function($event){return _vm.calculateAutomaticAbsolutePrice($event, true, _vm.baseCategory)}}}):_vm._e(),(!_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(_vm.baseCategory.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"forRackRates\":true,\"required\":false,\"rules\":[\n _vm.rules.zeroOrPositive(_vm.baseCategory.price)\n ]},on:{\"calculatePrice\":function($event){return _vm.calculateAutomaticAbsolutePrice($event, false, _vm.baseCategory)}}}):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[\n _vm.rules.zeroOrPositive(_vm.baseCategory.inputPrice)\n ]},on:{\"input\":function($event){return _vm.autoCalculateAutomaticRelativePrice(true, _vm.baseCategory)}},model:{value:(_vm.baseCategory.inputPrice),callback:function ($$v) {_vm.$set(_vm.baseCategory, \"inputPrice\", $$v)},expression:\"baseCategory.inputPrice\"}}):_vm._e(),(_vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"validateInput\":true,\"rules\":[\n _vm.rules.zeroOrPositive(_vm.baseCategory.price)\n ]},on:{\"input\":function($event){return _vm.autoCalculateAutomaticRelativePrice(false, _vm.baseCategory)}},model:{value:(_vm.baseCategory.price),callback:function ($$v) {_vm.$set(_vm.baseCategory, \"price\", $$v)},expression:\"baseCategory.price\"}}):_vm._e()],1)]),_c('v-card-actions',[(!_vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateAllPrices(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Calculate\"))+\" \")]):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateFromInputPrice(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.CalculateFromInputPrice\"))+\" \")]):_vm._e(),(_vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateFromOutputPrice(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.CalculateFromOutputPrice\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.automaticCalculationModal = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport PriceInput, { PriceChange } from \"../../calendar/inputs/PriceInput.vue\";\nimport { formatLocaleNumber } from \"@/components/numbers/numberFormatUtils\";\nimport { OfficialRateModel, OfficialRateRuleModel } from \"./types\";\nimport { OwnerPricingModelEnum } from \"@/shared/models/enums.type\";\nimport { autoCalculateAbsolutePrice, autoCalculatePrice, autoCalculatePriceWhenRelative, calculatePrice, round } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n NumericInputImproved,\n PriceInput,\n },\n})\nexport default class OfficialRatesOBRules extends Vue {\n @PropSync(\"officialRate\") officialRateInternal?: OfficialRateModel;\n @PropSync(\"saving\") savingInternal?: boolean;\n @Prop() accUnitType?: AccomodationUnitTypeViewModel;\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n\n @Getter(\"language/language\") language?: string;\n\n getRuleHeader(obr: OfficialRateRuleModel) {\n return obr.minPersons === obr.maxPersons\n ? `${obr.minPersons} pax`\n : `${obr.minPersons}-${obr.maxPersons} pax`;\n }\n\n isBaseRule(obr: OfficialRateRuleModel) {\n return (obr.isDefaultPAXCategory)\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get isPricingModelRelative() {\n return (\n this.accUnitType?.propertyOwnerPricingModelId ==\n OwnerPricingModelEnum.Relative\n );\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: any) =>\n value === null ||\n value === undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n undefinedOrPositive: (value: any) =>\n value === undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n };\n }\n\n fkey = 0;\n automaticCalculationModal = false;\n\n formatPrice(price?: number) {\n return price != null\n ? formatLocaleNumber(price, 2, this.internalLanguage)\n : \"\";\n }\n\n //if user changes 'inputPrice' -> 'priceReference' is outputPrice to calculate from (and the other way around)\n calculatePrice(\n priceChange: PriceChange,\n index: number,\n isMain: boolean,\n userChangedInputPrice: boolean,\n priceReference?: number\n ) {\n if (priceChange) {\n const changeKey = calculatePrice(\n priceChange,\n this.officialRateInternal,\n userChangedInputPrice,\n priceReference,\n { isMain, index }\n );\n\n if (changeKey) this.fkey++;\n }\n }\n \n calculateAutomaticAbsolutePrice(\n priceChange: PriceChange,\n inputPriceChanged: boolean,\n obr: OfficialRateRuleModel\n ) {\n if (priceChange) {\n autoCalculateAbsolutePrice(priceChange, inputPriceChanged, obr, this.officialRateInternal)\n }\n }\n\n automaticCalculation(isInputPriceChanged: boolean, index: number) {\n autoCalculatePrice(\n isInputPriceChanged,\n this.officialRateInternal,\n this.accUnitType?.propertyOwnerPayoutPercent ?? 0,\n index,\n undefined\n );\n }\n \n autoCalculateAutomaticRelativePrice(isInputPriceChanged: boolean, obr: OfficialRateRuleModel) {\n if (!this.officialRateInternal) return;\n \n autoCalculatePriceWhenRelative(isInputPriceChanged, obr, this.accUnitType);\n }\n //used in automatic calculation dialog to calculate all prices based on price differences of every category\n autoCalculateAllPrices(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let paxInputPricePart = 0;\n let paxOutputPricePart = 0;\n \n if (\n obr.inputPrice &&\n item.obInputPriceDifference &&\n this.tenantUsesInputPrice\n ) {\n paxInputPricePart = item.obInputPriceDifferenceIsAbsolute\n ? item.obInputPriceDifference\n : round(obr.inputPrice * (item.obInputPriceDifference / 100));\n }\n item.inputPrice = round((obr.inputPrice ?? 0) + paxInputPricePart); // Rounding on addition because javascript can behave really weird (for test, try this in console: 0.1 + 0.2 :))\n\n if (obr.price && item.obOutputPriceDifference) {\n paxOutputPricePart = item.obOutputPriceDifferenceIsAbsolute\n ? item.obOutputPriceDifference\n : round(obr.price * (item.obOutputPriceDifference / 100));\n }\n item.price = round((obr.price ?? 0) + paxOutputPricePart);\n }\n }\n }\n\n this.closeModal();\n }\n\n //when pricing model = relative\n //calculate all prices based on input prices price differences\n autoCalculateFromInputPrice(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let paxInputPricePart = 0;\n let paxOutputPricePart = 0;\n if (\n obr.inputPrice &&\n item.obInputPriceDifference &&\n this.tenantUsesInputPrice\n ) {\n paxInputPricePart = item.obInputPriceDifferenceIsAbsolute\n ? item.obInputPriceDifference\n : round(obr.inputPrice * (item.obInputPriceDifference / 100));\n }\n item.inputPrice = round((obr.inputPrice ?? 0) + paxInputPricePart); // Rounding on addition because javascript can behave really weird (for test, try this in console: 0.1 + 0.2 :))\n if (obr.price && item.obInputPriceDifference) {\n paxOutputPricePart = item.obInputPriceDifferenceIsAbsolute\n ? item.obInputPriceDifference\n : round(obr.price * (item.obInputPriceDifference / 100));\n }\n item.price = round((obr.price ?? 0) + paxOutputPricePart);\n }\n }\n }\n\n this.closeModal();\n }\n\n //when pricing model = relative\n //calculate all prices based on selling prices price differences\n autoCalculateFromOutputPrice(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let paxInputPricePart = 0;\n let paxOutputPricePart = 0;\n if (\n obr.inputPrice &&\n item.obOutputPriceDifference &&\n this.tenantUsesInputPrice\n ) {\n paxInputPricePart = item.obOutputPriceDifferenceIsAbsolute\n ? item.obOutputPriceDifference\n : round(obr.inputPrice * (item.obOutputPriceDifference / 100));\n }\n item.inputPrice = round((obr.inputPrice ?? 0) + paxInputPricePart); // Rounding on addition because javascript can behave really weird (for test, try this in console: 0.1 + 0.2 :))\n\n if (obr.price && item.obOutputPriceDifference) {\n paxOutputPricePart = item.obOutputPriceDifferenceIsAbsolute\n ? item.obOutputPriceDifference\n : round(obr.price * (item.obOutputPriceDifference / 100));\n }\n item.price = round((obr.price ?? 0) + paxOutputPricePart);\n }\n }\n }\n\n this.closeModal();\n }\n\n get baseCategory() {\n const toReturn = (this.officialRateInternal?.officialRateRules ?? []).find(\n (x) => x.isDefaultPAXCategory\n );\n\n return toReturn ?? null;\n }\n\n closeModal() {\n this.automaticCalculationModal = false;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesOBRules.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesOBRules.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesOBRules.vue?vue&type=template&id=7a4bad9b&scoped=true&\"\nimport script from \"./OfficialRatesOBRules.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesOBRules.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfficialRatesOBRules.vue?vue&type=style&index=0&id=7a4bad9b&scoped=true&lang=scss&\"\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 \"7a4bad9b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VIcon,VRow,VSpacer,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.officialRateInternal.officialRateRules)?_c('div',[_c('v-row',[_c('v-col',{staticClass:\"d-flex pt-0 pb-1\"},[_c('v-btn',{attrs:{\"disabled\":_vm.savingInternal},on:{\"click\":function($event){_vm.automaticCalculationModal = true}}},[_vm._v(_vm._s(_vm.$t(\"Automatic calculation\")))])],1)],1),_c('v-row',{key:_vm.fkey,staticClass:\"obr-table mx-0\"},_vm._l((_vm.officialRateInternal.officialRateRules),function(obr,$index){return _c('v-col',{key:$index,staticClass:\"obr\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{class:{\n 'base-obr': obr.isDefaultLOSCategory,\n }},[_vm._v(\" \"+_vm._s(_vm.getRuleHeader(obr))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-tooltip',{attrs:{\"slot\":\"append\",\"top\":\"\"},slot:\"append\",scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-checkbox',_vm._g({attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('OfficialRateForm.NoSales.Short')},model:{value:(obr.noSales),callback:function ($$v) {_vm.$set(obr, \"noSales\", $$v)},expression:\"obr.noSales\"}},on))]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.NoSales\"))+\" \")])],1)],1),(_vm.tenantUsesInputPrice && !_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(obr.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(obr.inputPrice)]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice($event, $index, false, true, obr.price)}}}):_vm._e(),(!_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(obr.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(obr.price)]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice($event, $index, false, false, obr.inputPrice)}}}):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(obr.inputPrice)]},on:{\"input\":function($event){return _vm.automaticCalculation(true, $index)}},model:{value:(obr.inputPrice),callback:function ($$v) {_vm.$set(obr, \"inputPrice\", $$v)},expression:\"obr.inputPrice\"}}):_vm._e(),(_vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(obr.price)]},on:{\"input\":function($event){return _vm.automaticCalculation(false, $index)}},model:{value:(obr.price),callback:function ($$v) {_vm.$set(obr, \"price\", $$v)},expression:\"obr.price\"}}):_vm._e()],1)}),1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.Restrictions\"))+\" \")])],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MinBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.minBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.minBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"minBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.minBookableBeforeCheckin\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MaxBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.maxBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.maxBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"maxBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.maxBookableBeforeCheckin\"}})],1)],1),_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"persistent\":\"\",\"max-width\":\"700\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.automaticCalculationModal),callback:function ($$v) {_vm.automaticCalculationModal=$$v},expression:\"automaticCalculationModal\"}},[(!_vm.baseCategory)?_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"word-break\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.DefaultCategoryNotDefined\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)],1):_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-card-title',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Automatic calculation\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',[_c('div',{staticClass:\"base-obr\"},[_vm._v(\" \"+_vm._s(_vm.getRuleHeader(_vm.baseCategory))+\" \")]),_c('div',[(_vm.tenantUsesInputPrice && !_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(_vm.baseCategory.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.inputPrice)]},on:{\"calculatePrice\":function($event){return _vm.calculateAutomaticAbsolutePrice($event, true, _vm.baseCategory)}}}):_vm._e(),(!_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(_vm.baseCategory.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.price)]},on:{\"calculatePrice\":function($event){return _vm.calculateAutomaticAbsolutePrice($event, false, _vm.baseCategory)}}}):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.inputPrice)]},on:{\"input\":function($event){return _vm.autoCalculateAutomaticRelativePrice(true, _vm.baseCategory)}},model:{value:(_vm.baseCategory.inputPrice),callback:function ($$v) {_vm.$set(_vm.baseCategory, \"inputPrice\", $$v)},expression:\"baseCategory.inputPrice\"}}):_vm._e(),(_vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.price)]},on:{\"input\":function($event){return _vm.autoCalculateAutomaticRelativePrice(false, _vm.baseCategory)}},model:{value:(_vm.baseCategory.price),callback:function ($$v) {_vm.$set(_vm.baseCategory, \"price\", $$v)},expression:\"baseCategory.price\"}}):_vm._e()],1)]),_c('v-card-actions',[(!_vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateAllPrices(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Calculate\"))+\" \")]):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateFromInputPrice(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.CalculateFromInputPrice\"))+\" \")]):_vm._e(),(_vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateFromOutputPrice(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.CalculateFromOutputPrice\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.automaticCalculationModal = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport PriceInput, { PriceChange } from \"../../calendar/inputs/PriceInput.vue\";\nimport { formatLocaleNumber } from \"@/components/numbers/numberFormatUtils\";\nimport { OfficialRateModel, OfficialRateRuleModel } from \"./types\";\nimport { OwnerPricingModelEnum } from \"@/shared/models/enums.type\";\nimport { autoCalculateAbsolutePrice, autoCalculatePrice, autoCalculatePriceWhenRelative, calculatePrice, round } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n NumericInputImproved,\n PriceInput,\n },\n})\nexport default class OfficialRatesLOSRules extends Vue {\n @PropSync(\"officialRate\") officialRateInternal?: OfficialRateModel;\n @PropSync(\"saving\") savingInternal?: boolean;\n @Prop() accUnitType?: AccomodationUnitTypeViewModel;\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n\n @Getter(\"language/language\") language?: string;\n\n automaticCalculationModal = false;\n\n getRuleHeader(obr: OfficialRateRuleModel) {\n return (obr.maxStay ?? 0) > 0\n ? `${obr.minStay}-${obr.maxStay} nights`\n : `${obr.minStay}+ nights`;\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get isPricingModelRelative() {\n return (\n this.accUnitType?.propertyOwnerPricingModelId ==\n OwnerPricingModelEnum.Relative\n );\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: any) =>\n value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\"),\n undefinedOrPositive: (value: any) =>\n value === undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n };\n }\n\n fkey = 0;\n\n formatPrice(price?: number) {\n return price != null\n ? formatLocaleNumber(price, 2, this.internalLanguage)\n : \"\";\n }\n\n //if user changes 'inputPrice' -> 'priceReference' is outputPrice to calculate from (and the other way around)\n calculatePrice(\n priceChange: PriceChange,\n index: number,\n isMain: boolean,\n userChangedInputPrice: boolean,\n priceReference?: number\n ) {\n if (priceChange) {\n const changeKey = calculatePrice(\n priceChange,\n this.officialRateInternal,\n userChangedInputPrice,\n priceReference,\n { isMain, index } \n );\n\n if (changeKey) this.fkey++;\n }\n }\n \n calculateAutomaticAbsolutePrice(\n priceChange: PriceChange,\n inputPriceChanged: boolean,\n obr: OfficialRateRuleModel\n ) {\n if (priceChange) {\n autoCalculateAbsolutePrice(priceChange, inputPriceChanged, obr, this.officialRateInternal)\n }\n }\n\n automaticCalculation(isInputPriceChanged: boolean, index: number) {\n autoCalculatePrice(\n isInputPriceChanged,\n this.officialRateInternal,\n this.accUnitType?.propertyOwnerPayoutPercent ?? 0,\n index,\n undefined\n );\n }\n \n autoCalculateAutomaticRelativePrice(isInputPriceChanged: boolean, obr: OfficialRateRuleModel) {\n if (!this.officialRateInternal) return;\n\n autoCalculatePriceWhenRelative(isInputPriceChanged, obr, this.accUnitType);\n }\n\n get baseCategory() {\n const toReturn = (this.officialRateInternal?.officialRateRules ?? []).find(\n (x) => x.isDefaultLOSCategory\n );\n\n return toReturn ?? null;\n }\n\n //used in automatic calculation dialog to calculate all prices based on price differences of every category\n autoCalculateAllPrices(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let losInputPricePart = 0;\n let losOutputPricePart = 0;\n\n if (\n obr.inputPrice &&\n item.losInputPriceDifference &&\n this.tenantUsesInputPrice\n ) {\n losInputPricePart = item.losInputPriceDifferenceIsAbsolute\n ? item.losInputPriceDifference\n : round(obr.inputPrice * (item.losInputPriceDifference / 100));\n }\n item.inputPrice = round((obr.inputPrice ?? 0) + losInputPricePart); // Rounding on addition because javascript can behave really weird (for test, try this in console: 0.1 + 0.2 :))\n\n if (obr.price && item.losOutputPriceDifference) {\n losOutputPricePart = item.losOutputPriceDifferenceIsAbsolute\n ? item.losOutputPriceDifference\n : round(obr.price * (item.losOutputPriceDifference / 100));\n }\n item.price = round((obr.price ?? 0) + losOutputPricePart);\n }\n }\n }\n\n this.closeModal();\n }\n\n //when pricing model = relative\n //calculate all prices based on input prices price differences\n autoCalculateFromInputPrice(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let losInputPricePart = 0;\n let losOutputPricePart = 0;\n\n if (\n obr.inputPrice &&\n item.losInputPriceDifference &&\n this.tenantUsesInputPrice\n ) {\n losInputPricePart = item.losInputPriceDifferenceIsAbsolute\n ? item.losInputPriceDifference\n : round(obr.inputPrice * (item.losInputPriceDifference / 100));\n }\n item.inputPrice = round((obr.inputPrice ?? 0) + losInputPricePart); // Rounding on addition because javascript can behave really weird (for test, try this in console: 0.1 + 0.2 :))\n\n if (obr.price && item.losInputPriceDifference) {\n losOutputPricePart = item.losInputPriceDifferenceIsAbsolute\n ? item.losInputPriceDifference\n : round(obr.price * (item.losInputPriceDifference / 100));\n }\n item.price = round((obr.price ?? 0) + losOutputPricePart);\n }\n }\n }\n\n this.closeModal();\n }\n\n //when pricing model = relative\n //calculate all prices based on selling prices price differences\n autoCalculateFromOutputPrice(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let losInputPricePart = 0;\n let losOutputPricePart = 0;\n \n if (\n obr.inputPrice &&\n item.losOutputPriceDifference &&\n this.tenantUsesInputPrice\n ) {\n losInputPricePart = item.losOutputPriceDifferenceIsAbsolute\n ? item.losOutputPriceDifference\n : round(obr.inputPrice * (item.losOutputPriceDifference / 100));\n }\n item.inputPrice = round((obr.inputPrice ?? 0) + losInputPricePart); // Rounding on addition because javascript can behave really weird (for test, try this in console: 0.1 + 0.2 :))\n\n if (obr.price && item.losOutputPriceDifference) {\n losOutputPricePart = item.losOutputPriceDifferenceIsAbsolute\n ? item.losOutputPriceDifference\n : round(obr.price * (item.losOutputPriceDifference / 100));\n }\n item.price = round((obr.price ?? 0) + losOutputPricePart);\n }\n }\n }\n\n this.closeModal();\n }\n\n closeModal() {\n this.automaticCalculationModal = false;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesLOSRules.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesLOSRules.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesLOSRules.vue?vue&type=template&id=6a1f2bd4&scoped=true&\"\nimport script from \"./OfficialRatesLOSRules.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesLOSRules.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfficialRatesLOSRules.vue?vue&type=style&index=0&id=6a1f2bd4&scoped=true&lang=scss&\"\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 \"6a1f2bd4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VIcon,VRow,VSpacer,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-btn',{staticClass:\"mb-2\",attrs:{\"disabled\":_vm.savingInternal},on:{\"click\":function($event){_vm.automaticCalculationModal = true}}},[_vm._v(_vm._s(_vm.$t(\"Automatic calculation\")))]),_c('v-expansion-panels',{key:_vm.grouping,attrs:{\"accordion\":\"\",\"multiple\":\"\"},model:{value:(_vm.expanded),callback:function ($$v) {_vm.expanded=$$v},expression:\"expanded\"}},_vm._l((_vm.rulesGroups),function(group,$index){return _c('v-expansion-panel',{key:$index},[_c('v-expansion-panel-header',{class:{\n 'base-obr':\n _vm.grouping === _vm.officialRateRulesGroupingEnum.ByOccupancy\n ? group.isDefaultPAXCategory\n : group.isDefaultLOSCategory,\n }},[_vm._v(\" \"+_vm._s(_vm.getGroupHeader(group))+\" \")]),_c('v-expansion-panel-content',[_c('v-row',{key:_vm.fkey,staticClass:\"obr-table\"},_vm._l((_vm.getGroupRules(group)),function(obr,$index){return _c('v-col',{key:$index,staticClass:\"obr\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{class:{\n 'base-obr':\n obr.isDefaultLOSCategory &&\n obr.isDefaultPAXCategory,\n }},[_vm._v(\" \"+_vm._s(_vm.getRuleHeader(obr))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-tooltip',{attrs:{\"slot\":\"append\",\"top\":\"\"},slot:\"append\",scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-checkbox',_vm._g({attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('OfficialRateForm.NoSales.Short')},model:{value:(obr.noSales),callback:function ($$v) {_vm.$set(obr, \"noSales\", $$v)},expression:\"obr.noSales\"}},on))]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.NoSales\"))+\" \")])],1)],1),_c('div',[(_vm.tenantUsesInputPrice && !_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(obr.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"forRackRates\":true,\"required\":false,\"rules\":[\n _vm.rules.zeroOrPositive(obr.inputPrice) ]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice(\n $event,\n obr.uniqueKey,\n false,\n true,\n obr.price\n )}}}):_vm._e(),(!_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(obr.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"forRackRates\":true,\"required\":false,\"rules\":[\n _vm.rules.zeroOrPositive(obr.price) ]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice(\n $event,\n obr.uniqueKey,\n false,\n false,\n obr.inputPrice\n )}}}):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[\n _vm.rules.zeroOrPositive(obr.inputPrice) ]},on:{\"input\":function($event){return _vm.automaticCalculation(true, obr.uniqueKey)}},model:{value:(obr.inputPrice),callback:function ($$v) {_vm.$set(obr, \"inputPrice\", $$v)},expression:\"obr.inputPrice\"}}):_vm._e(),(_vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"validateInput\":true,\"rules\":[\n _vm.rules.zeroOrPositive(obr.inputPrice) ]},on:{\"input\":function($event){return _vm.automaticCalculation(false, obr.uniqueKey)}},model:{value:(obr.price),callback:function ($$v) {_vm.$set(obr, \"price\", $$v)},expression:\"obr.price\"}}):_vm._e()],1)],1)}),1)],1)],1)}),1),_c('v-row',{key:_vm.rowKey},[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.Restrictions\"))+\" \")])],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MinBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.minBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.minBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"minBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.minBookableBeforeCheckin\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MaxBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.maxBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.maxBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"maxBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.maxBookableBeforeCheckin\"}})],1)],1),_c('v-dialog',{attrs:{\"transition\":\"dialog-bottom-transition\",\"persistent\":\"\",\"max-width\":\"700\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.closeModal()}},model:{value:(_vm.automaticCalculationModal),callback:function ($$v) {_vm.automaticCalculationModal=$$v},expression:\"automaticCalculationModal\"}},[(!_vm.baseCategory)?_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"word-break\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.DefaultCategoryNotDefined\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1)],1):_c('v-card',{staticClass:\"d-flex flex-column card\",attrs:{\"tile\":\"\"}},[_c('v-card-title',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Automatic calculation\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.closeModal()}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',[_c('div',{staticClass:\"base-obr\"},[_vm._v(\" \"+_vm._s(_vm.getGroupHeader(_vm.baseCategory))+\" \")]),_c('div',{staticClass:\"base-obr\"},[_vm._v(\" \"+_vm._s(_vm.getRuleHeader(_vm.baseCategory))+\" \")]),_c('div',[(_vm.tenantUsesInputPrice && !_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(_vm.baseCategory.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.inputPrice)]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice(\n $event,\n _vm.baseCategory.uniqueKey,\n false,\n true,\n _vm.baseCategory.price\n )}}}):_vm._e(),(!_vm.isPricingModelRelative)?_c('PriceInput',{attrs:{\"value\":_vm.formatPrice(_vm.baseCategory.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"forRackRates\":true,\"required\":false,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.price)]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice(\n $event,\n _vm.baseCategory.uniqueKey,\n false,\n false,\n _vm.baseCategory.inputPrice\n )}}}):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.inputPrice)]},on:{\"input\":function($event){return _vm.automaticCalculation(true, _vm.baseCategory.uniqueKey)}},model:{value:(_vm.baseCategory.inputPrice),callback:function ($$v) {_vm.$set(_vm.baseCategory, \"inputPrice\", $$v)},expression:\"baseCategory.inputPrice\"}}):_vm._e(),(_vm.isPricingModelRelative)?_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(_vm.baseCategory.price)]},on:{\"input\":function($event){return _vm.automaticCalculation(false, _vm.baseCategory.uniqueKey)}},model:{value:(_vm.baseCategory.price),callback:function ($$v) {_vm.$set(_vm.baseCategory, \"price\", $$v)},expression:\"baseCategory.price\"}}):_vm._e()],1)]),_c('v-card-actions',[(!_vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateAllPrices(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Calculate\"))+\" \")]):_vm._e(),(_vm.tenantUsesInputPrice && _vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateFromInputPrice(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.CalculateFromInputPrice\"))+\" \")]):_vm._e(),(_vm.isPricingModelRelative)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.autoCalculateFromOutputPrice(_vm.baseCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.CalculateFromOutputPrice\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.automaticCalculationModal = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export type OfficialRateView = {\n id: number;\n accomodationUnitTypeId: number;\n serviceTypeId: number | null;\n currencyId: number;\n seasonName: string;\n dateFrom: string;\n dateTo: string;\n price: number;\n inputPrice: number | null;\n minimumStay: number;\n isMain: boolean;\n \n noDeparturesMonday: boolean;\n noDeparturesTuesday: boolean;\n noDeparturesWednesday: boolean;\n noDeparturesThursday: boolean;\n noDeparturesFriday: boolean;\n noDeparturesSaturday: boolean;\n noDeparturesSunday: boolean;\n \n noArrivalsMonday: boolean;\n noArrivalsTuesday: boolean;\n noArrivalsWednesday: boolean;\n noArrivalsThursday: boolean;\n noArrivalsFriday: boolean;\n noArrivalsSaturday: boolean;\n noArrivalsSunday: boolean;\n};\n\nexport class OfficialRateModel {\n id = 0;\n accomodationUnitTypeId = 0;\n serviceTypeId = null as number | null;\n ratePlanId = null as number | null;\n currencyId = 0;\n seasonName = \"\";\n dateFrom = \"\";\n dateTo = \"\";\n price = 0 as number | null;\n inputPrice = null as number | null;\n minimumStay = 1;\n maximumStay = undefined as number | undefined;\n minBookableBeforeCheckin = undefined as number | undefined;\n maxBookableBeforeCheckin = undefined as number | undefined;\n isMain = false;\n\n noDeparturesMonday = false;\n noDeparturesTuesday = false;\n noDeparturesWednesday = false;\n noDeparturesThursday = false;\n noDeparturesFriday = false;\n noDeparturesSaturday = false;\n noDeparturesSunday = false;\n\n noArrivalsMonday = false;\n noArrivalsTuesday = false;\n noArrivalsWednesday = false;\n noArrivalsThursday = false;\n noArrivalsFriday = false;\n noArrivalsSaturday = false;\n noArrivalsSunday = false;\n noSales = false;\n\n officialRateRules = [] as OfficialRateRuleModel[];\n ratePlanIdsToUpdate = [] as number[];\n derivedRatePlanIdsToUpdateRestrictions = [] as number[];\n occupancyBasedRules = [] as OfficialRateOccupancyBasedRule[];\n}\n\nexport interface OfficialRateOccupancyBasedRule {\n id: number;\n price: number | null;\n inputPrice: number | null;\n minStay: number | null;\n maxStay: number | null;\n minPersons: number | null;\n maxPersons: number | null;\n isDefaultLOSCategory: boolean;\n isDefaultPAXCategory: boolean;\n uniqueKey: string;\n}\n\nexport interface OfficialRateRuleModel {\n minPersons: number | null;\n maxPersons: number | null;\n minStay: number | null;\n maxStay: number | null;\n isDefaultLOSCategory: boolean;\n isDefaultPAXCategory: boolean;\n price: number | null;\n inputPrice: number | null;\n uniqueKey: string;\n noSales: boolean;\n obInputPriceDifference: number | null;\n obInputPriceDifferenceIsAbsolute: boolean | null;\n obOutputPriceDifference: number | null;\n obOutputPriceDifferenceIsAbsolute: boolean | null;\n losInputPriceDifference: number | null;\n losInputPriceDifferenceIsAbsolute: boolean | null;\n losOutputPriceDifference: number | null;\n losOutputPriceDifferenceIsAbsolute: boolean | null;\n\n accomodationUnitTypesLOSCategoryId: number | null;\n accomodationUnitTypesPAXCategoryId: number | null;\n}\n\nexport interface LOSCategoryViewModel {\n id: number;\n minStay: number;\n maxStay: number;\n isDefault: boolean;\n losInputPriceDifference: number | null;\n losInputPriceDifferenceIsAbsolute: boolean | null;\n losOutputPriceDifference: number | null;\n losOutputPriceDifferenceIsAbsolute: boolean | null;\n}\n\nexport interface PAXCategoryViewModel {\n id: number;\n minPersons: number;\n maxPersons: number;\n isDefault: boolean;\n obInputPriceDifference: number | null;\n obInputPriceDifferenceIsAbsolute: boolean | null;\n obOutputPriceDifference: number | null;\n obOutputPriceDifferenceIsAbsolute: boolean | null;\n}\n\nexport interface OfficialRateRulesCategoriesViewModel {\n losCategories: LOSCategoryViewModel[];\n paxCategories: PAXCategoryViewModel[];\n}\n\nexport enum OfficialRateRulesGroupingEnum {\n ByOccupancy = 1,\n ByLengthOfStay = 2,\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport PriceInput, { PriceChange } from \"../../calendar/inputs/PriceInput.vue\";\nimport {\n OfficialRateModel,\n OfficialRateRuleModel,\n OfficialRateRulesGroupingEnum,\n} from \"./types\";\nimport { formatLocaleNumber } from \"@/components/numbers/numberFormatUtils\";\nimport { enumToArray } from \"@/shared/commonFunctions\";\nimport * as _ from \"lodash\";\nimport { OwnerPricingModelEnum } from \"@/shared/models/enums.type\";\nimport { autoCalculatePrice, calculatePrice, round } from \"@/components/numbers/numberFormatUtils\";\n\nexport interface RulesGroup {\n minPersons: number | null;\n maxPersons: number | null;\n minStay: number | null;\n maxStay: number | null;\n isDefaultLOSCategory: boolean;\n isDefaultPAXCategory: boolean;\n losCategoryId: number | null;\n paxCategoryId: number | null;\n inputPriceDifference?: number | null;\n inputPriceDifferenceIsAbsolute?: boolean | null;\n outputPriceDifference?: number | null;\n outputPriceDifferenceIsAbsolute?: boolean | null;\n}\n\n@Component({\n components: {\n NumericInputImproved,\n PriceInput,\n },\n})\nexport default class OfficialRatesOBAndLOSRules extends Vue {\n @PropSync(\"officialRate\") officialRateInternal?: OfficialRateModel;\n @PropSync(\"saving\") savingInternal?: boolean;\n @Prop() accUnitType?: AccomodationUnitTypeViewModel;\n @Prop({ default: OfficialRateRulesGroupingEnum.ByLengthOfStay })\n grouping?: OfficialRateRulesGroupingEnum;\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n\n @Getter(\"language/language\") language?: string;\n\n enumToArray = enumToArray;\n expanded = [] as number[];\n automaticCalculationModal = false;\n\n toggleExpandCollapse() {\n if (this.expanded.length === this.rulesGroups.length) {\n this.expanded = [];\n } else {\n for (let i = 0; i < this.rulesGroups.length; i++) {\n if (!this.expanded.includes(i)) {\n this.expanded.push(i);\n }\n }\n }\n }\n\n officialRateRulesGroupingEnum = OfficialRateRulesGroupingEnum;\n\n get rulesGroups() {\n const mapped =\n this.officialRateInternal?.officialRateRules.map((x) => {\n return {\n minPersons: x.minPersons,\n maxPersons: x.maxPersons,\n minStay: x.minStay,\n maxStay: x.maxStay,\n isDefaultLOSCategory: x.isDefaultLOSCategory,\n isDefaultPAXCategory: x.isDefaultPAXCategory,\n losCategoryId: x.accomodationUnitTypesLOSCategoryId,\n paxCategoryId: x.accomodationUnitTypesPAXCategoryId,\n noSales: x.noSales,\n } as RulesGroup;\n }) ?? [];\n\n if (this.grouping === OfficialRateRulesGroupingEnum.ByOccupancy) {\n return _.uniqBy(mapped, (x) => x.minPersons);\n } else {\n return _.uniqBy(mapped, (x) => x.minStay);\n }\n }\n\n getGroupHeader(group: RulesGroup) {\n if (this.grouping === OfficialRateRulesGroupingEnum.ByOccupancy) {\n return group.minPersons === group.maxPersons\n ? `${group.minPersons} pax`\n : `${group.minPersons}-${group.maxPersons} pax`;\n }\n\n return (group.maxStay ?? 0) > 0\n ? `${group.minStay}-${group.maxStay} nights`\n : `${group.minStay}+ nights`;\n }\n\n getRuleHeader(obr: OfficialRateRuleModel) {\n if (this.grouping === OfficialRateRulesGroupingEnum.ByLengthOfStay) {\n return obr.minPersons === obr.maxPersons\n ? `${obr.minPersons} pax`\n : `${obr.minPersons}-${obr.maxPersons} pax`;\n }\n\n return (obr.maxStay ?? 0) > 0\n ? `${obr.minStay}-${obr.maxStay} nights`\n : `${obr.minStay}+ nights`;\n }\n\n getGroupRules(group: any) {\n if (this.grouping === OfficialRateRulesGroupingEnum.ByOccupancy) {\n return this.officialRateInternal?.officialRateRules.filter(\n (x) => x.accomodationUnitTypesPAXCategoryId === group.paxCategoryId\n );\n }\n\n return this.officialRateInternal?.officialRateRules.filter(\n (x) => x.accomodationUnitTypesLOSCategoryId === group.losCategoryId\n );\n }\n\n get baseCategory() {\n const toReturn = (this.officialRateInternal?.officialRateRules ?? []).find(\n (x) =>\n x.isDefaultLOSCategory && x.isDefaultPAXCategory\n );\n\n return toReturn ?? null;\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get isPricingModelRelative() {\n return (\n this.accUnitType?.propertyOwnerPricingModelId ==\n OwnerPricingModelEnum.Relative\n );\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: any) =>\n value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\"),\n undefinedOrPositive: (value: any) =>\n value === undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n };\n }\n\n fkey = 0;\n rowKey = 0;\n\n formatPrice(price?: number) {\n return price != null\n ? formatLocaleNumber(price, 2, this.internalLanguage)\n : \"\";\n }\n\n //if user changes 'inputPrice' -> 'priceReference' is outputPrice to calculate from (and the other way around)\n calculatePrice(priceChange: PriceChange, uniqueKey: string, isMain: boolean, userChangedInputPrice: boolean, priceReference?: number) {\n const changeKey = calculatePrice(\n priceChange,\n this.officialRateInternal,\n userChangedInputPrice,\n priceReference,\n { isMain, uniqueKey }\n );\n\n if (changeKey) this.fkey++;\n }\n\n automaticCalculation(isInputPriceChanged: boolean, uniqueKey: string) {\n autoCalculatePrice(\n isInputPriceChanged,\n this.officialRateInternal,\n this.accUnitType?.propertyOwnerPayoutPercent ?? 0,\n undefined,\n uniqueKey\n );\n }\n\n //used in automatic calculation dialog to calculate all prices based on price differences of every category\n autoCalculateAllPrices(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let paxInputPricePart = 0;\n let paxOutputPricePart = 0;\n let losInputPricePart = 0;\n let losOutputPricePart = 0;\n\n if (obr.inputPrice){\n if (\n item.obInputPriceDifference &&\n this.tenantUsesInputPrice &&\n obr.accomodationUnitTypesPAXCategoryId !==\n item.accomodationUnitTypesPAXCategoryId\n ) {\n paxInputPricePart = item.obInputPriceDifferenceIsAbsolute\n ? item.obInputPriceDifference\n : round(obr.inputPrice * (item.obInputPriceDifference / 100));\n }\n if (\n item.losInputPriceDifference &&\n this.tenantUsesInputPrice &&\n obr.accomodationUnitTypesLOSCategoryId !==\n item.accomodationUnitTypesLOSCategoryId\n ) {\n losInputPricePart = item.losInputPriceDifferenceIsAbsolute\n ? item.losInputPriceDifference\n : round(obr.inputPrice * (item.losInputPriceDifference / 100));\n }\n }\n const inputPriceSum = paxInputPricePart + losInputPricePart // we do this because javascript is dumb :) (123,47 + (-12,35) + (-12,35) = 98,770000000000001 BUT 123,47 + (-24,7) = 98,77)\n item.inputPrice = round((obr.inputPrice ?? 0) + inputPriceSum); // rounding just to avoid further unexpected behavior.\n\n if (obr.price){\n if (\n item.obOutputPriceDifference &&\n obr.accomodationUnitTypesPAXCategoryId !==\n item.accomodationUnitTypesPAXCategoryId\n ) {\n paxOutputPricePart = item.obOutputPriceDifferenceIsAbsolute\n ? item.obOutputPriceDifference\n : round(obr.price * (item.obOutputPriceDifference / 100));\n }\n\n if (\n item.losOutputPriceDifference &&\n obr.accomodationUnitTypesLOSCategoryId !==\n item.accomodationUnitTypesLOSCategoryId\n ) {\n losOutputPricePart = item.losOutputPriceDifferenceIsAbsolute\n ? item.losOutputPriceDifference\n : round(obr.price * (item.losOutputPriceDifference / 100));\n }\n }\n const outputPriceSum = paxOutputPricePart + losOutputPricePart; // we do this because javascript is dumb :) (123,47 + (-12,35) + (-12,35) = 98,770000000000001 BUT 123,47 + (-24,7) = 98,77)\n item.price = round((obr.price ?? 0) + outputPriceSum); // rounding just to avoid further unexpected behavior.\n\n this.fkey++;\n this.rowKey++;\n }\n }\n }\n\n this.closeModal();\n }\n\n //when pricing model = relative\n //calculate all prices based on input prices price differences\n autoCalculateFromInputPrice(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let paxInputPricePart = 0;\n let losInputPricePart = 0;\n\n if (obr.inputPrice){\n if (\n item.obInputPriceDifference &&\n this.tenantUsesInputPrice &&\n obr.accomodationUnitTypesPAXCategoryId !==\n item.accomodationUnitTypesPAXCategoryId\n ) {\n paxInputPricePart = item.obInputPriceDifferenceIsAbsolute\n ? item.obInputPriceDifference\n : round(obr.inputPrice * (item.obInputPriceDifference / 100));\n }\n \n if (\n item.losInputPriceDifference &&\n this.tenantUsesInputPrice &&\n obr.accomodationUnitTypesLOSCategoryId !== item.accomodationUnitTypesLOSCategoryId\n ) {\n losInputPricePart = item.losInputPriceDifferenceIsAbsolute\n ? item.losInputPriceDifference\n : round(obr.inputPrice * (item.losInputPriceDifference / 100));\n }\n }\n\n const inputPriceSum = paxInputPricePart + losInputPricePart // we do this because javascript is dumb :) (123,47 + (-12,35) + (-12,35) = 98,770000000000001 BUT 123,47 + (-24,7) = 98,77)\n item.inputPrice = round((obr.inputPrice ?? 0) + inputPriceSum); // rounding just to avoid further unexpected behavior.\n\n const ownerPayoutPercent = this.accUnitType?.propertyOwnerPayoutPercent ?? 100;\n if (ownerPayoutPercent === 0) {\n item.price = 0;\n } else {\n item.price = round(item.inputPrice / (ownerPayoutPercent / 100));\n }\n\n this.fkey++;\n this.rowKey++;\n }\n }\n }\n\n this.closeModal();\n }\n\n //when pricing model = relative\n //calculate all prices based on selling prices price differences\n autoCalculateFromOutputPrice(obr: OfficialRateRuleModel) {\n if (this.officialRateInternal) {\n for (const item of this.officialRateInternal?.officialRateRules) {\n //skip the main (obr)\n if (item !== obr) {\n let paxOutputPricePart = 0;\n let losOutputPricePart = 0;\n \n if (obr.price){\n if (\n item.obOutputPriceDifference &&\n obr.accomodationUnitTypesPAXCategoryId !== item.accomodationUnitTypesPAXCategoryId\n ) {\n paxOutputPricePart = item.obOutputPriceDifferenceIsAbsolute\n ? item.obOutputPriceDifference\n : round(obr.price * (item.obOutputPriceDifference / 100));\n }\n\n if (\n item.losOutputPriceDifference &&\n obr.accomodationUnitTypesLOSCategoryId !== item.accomodationUnitTypesLOSCategoryId\n ) {\n losOutputPricePart = item.losOutputPriceDifferenceIsAbsolute\n ? item.losOutputPriceDifference\n : round(obr.price * (item.losOutputPriceDifference / 100));\n }\n }\n\n const outputPriceSum = paxOutputPricePart + losOutputPricePart; // we do this because javascript is dumb :) (123,47 + (-12,35) + (-12,35) = 98,770000000000001 BUT 123,47 + (-24,7) = 98,77)\n item.price = round((obr.price ?? 0) + outputPriceSum); // rounding just to avoid further unexpected behavior.\n\n const ownerPayoutPercent = this.accUnitType?.propertyOwnerPayoutPercent ?? 0;\n item.inputPrice = round(item.price * (ownerPayoutPercent / 100));\n\n this.fkey++;\n this.rowKey++;\n }\n }\n }\n\n this.closeModal();\n }\n\n closeModal() {\n this.automaticCalculationModal = false;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesOBAndLOSRules.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesOBAndLOSRules.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesOBAndLOSRules.vue?vue&type=template&id=199fe524&scoped=true&\"\nimport script from \"./OfficialRatesOBAndLOSRules.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesOBAndLOSRules.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfficialRatesOBAndLOSRules.vue?vue&type=style&index=0&id=199fe524&scoped=true&lang=scss&\"\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 \"199fe524\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VRow,VSpacer,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isPricingModelRelative)?_c('v-row',[(_vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('PriceInput',{key:_vm.inputPriceKey,attrs:{\"value\":_vm.formatPrice(_vm.officialRateInternal.inputPrice),\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice') + '*',\"forRackRates\":true,\"rules\":[_vm.rules.required, _vm.rules.zeroOrPositive, _vm.rules.maxDecimals]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice($event, true)}}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('PriceInput',{key:_vm.priceKey,attrs:{\"value\":_vm.formatPrice(_vm.officialRateInternal.price),\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price') + '*',\"forRackRates\":true,\"rules\":[_vm.rules.required, _vm.rules.zeroOrPositive, _vm.rules.maxDecimals]},on:{\"calculatePrice\":function($event){return _vm.calculatePrice($event, false)}}})],1)],1):_c('v-row',[(_vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.InputPrice'),\"validateInput\":true,\"rules\":[_vm.rules.zeroOrPositive(_vm.officialRateInternal.inputPrice)]},on:{\"input\":function($event){return _vm.automaticCalculation(true)}},model:{value:(_vm.officialRateInternal.inputPrice),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"inputPrice\", $$v)},expression:\"officialRateInternal.inputPrice\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OfficialRate.Price') + '*',\"validateInput\":true,\"rules\":[\n _vm.rules.zeroOrPositive(_vm.officialRateInternal.inputPrice),\n _vm.rules.required ]},on:{\"input\":function($event){return _vm.automaticCalculation(false)}},model:{value:(_vm.officialRateInternal.price),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"price\", $$v)},expression:\"officialRateInternal.price\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.Restrictions\"))+\" \")])],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MinimumStay') + '*',\"validateInput\":true,\"rules\":[\n _vm.rules.required,\n _vm.rules.zeroOrPositive(_vm.officialRateInternal.minimumStay) ]},model:{value:(_vm.officialRateInternal.minimumStay),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"minimumStay\", $$v)},expression:\"officialRateInternal.minimumStay\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MaximumStay'),\"validateInput\":true,\"rules\":[_vm.rules.undefinedOrPositive(_vm.officialRateInternal.maximumStay)],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.maximumStay),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"maximumStay\", $$v)},expression:\"officialRateInternal.maximumStay\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MinBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.minBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRate.minBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRate, \"minBookableBeforeCheckin\", $$v)},expression:\"officialRate.minBookableBeforeCheckin\"}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"6\",\"sm\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('OfficialRate.MaxBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[\n _vm.rules.undefinedOrPositive(\n _vm.officialRateInternal.maxBookableBeforeCheckin\n ) ],\"emptyReturn\":'undefined'},model:{value:(_vm.officialRateInternal.maxBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"maxBookableBeforeCheckin\", $$v)},expression:\"officialRateInternal.maxBookableBeforeCheckin\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { OfficialRateModel } from \"@/components/property/official-rates/types\";\nimport { formatLocaleNumber } from \"@/components/numbers/numberFormatUtils\";\nimport PriceInput, { PriceChange } from \"../../calendar/inputs/PriceInput.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { OwnerPricingModelEnum } from \"@/shared/models/enums.type\";\nimport { autoCalculatePrice, calculatePrice } from \"@/components/numbers/numberFormatUtils\";\n\n@Component({\n components: {\n PriceInput,\n NumericInputImproved,\n },\n})\nexport default class OfficialRatesPrices extends Vue {\n @Getter(\"language/language\") language?: string;\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n\n @PropSync(\"officialRate\") officialRateInternal?: OfficialRateModel;\n @Prop() accUnitType?: AccomodationUnitTypeViewModel;\n\n get isPricingModelRelative() {\n return (\n this.accUnitType?.propertyOwnerPricingModelId ==\n OwnerPricingModelEnum.Relative\n );\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n zeroOrPositive: (value: any) =>\n +value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\"),\n undefinedOrPositive: (value: any) =>\n value === undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBeZeroOrPositive\"),\n maxDecimals: (value: any) =>\n !(this.countDecimals(+value) > 2) ||\n this.$t(\"Validation.MaxDecimals{max}\", {\n max: 2,\n }),\n };\n }\n\n get decimalSeparator() {\n const separator = Intl.NumberFormat(this.internalLanguage)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n return separator;\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n countDecimals(num: number) {\n return num.toString().split(this.decimalSeparator)[1]?.length || 0;\n }\n\n formatPrice(price?: number | null) {\n return price != null\n ? formatLocaleNumber(price, 2, this.internalLanguage)\n : \"\";\n }\n\n inputPriceKey = 0;\n priceKey = 0;\n\n //if user changes 'inputPrice' -> 'priceReference' is outputPrice to calculate from (and the other way around)\n calculatePrice(priceChange: PriceChange, userChangedInputPrice: boolean) {\n if (priceChange) {\n const priceReference = userChangedInputPrice\n ? this.officialRateInternal?.price\n : this.officialRateInternal?.inputPrice;\n\n const changeKey = calculatePrice(\n priceChange,\n this.officialRateInternal,\n userChangedInputPrice,\n priceReference ?? 0\n );\n\n if (changeKey) {\n userChangedInputPrice \n ? this.inputPriceKey++ \n : this.priceKey++;\n }\n }\n }\n\n automaticCalculation(isInputPriceChanged: boolean) {\n autoCalculatePrice(\n isInputPriceChanged,\n this.officialRateInternal,\n this.accUnitType?.propertyOwnerPayoutPercent ?? 0,\n undefined,\n undefined\n );\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesFormPrices.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesFormPrices.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesFormPrices.vue?vue&type=template&id=60a60f12&\"\nimport script from \"./OfficialRatesFormPrices.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesFormPrices.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCol,VRow,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-checkbox',{staticClass:\"primary--text\",attrs:{\"indeterminate\":_vm.someArrivals && !_vm.allArrivals,\"value\":_vm.allArrivals},on:{\"change\":_vm.toggleArrivals},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.NoArrivalsOn\"))+\" \")])]},proxy:true}])}),_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"pr-6 pl-6\",attrs:{\"label\":_vm.$t('t.Calendar.MondayShort')},model:{value:(_vm.officialRateInternal.noArrivalsMonday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsMonday\", $$v)},expression:\"officialRateInternal.noArrivalsMonday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.TuesdayShort')},model:{value:(_vm.officialRateInternal.noArrivalsTuesday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsTuesday\", $$v)},expression:\"officialRateInternal.noArrivalsTuesday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.WednesdayShort')},model:{value:(_vm.officialRateInternal.noArrivalsWednesday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsWednesday\", $$v)},expression:\"officialRateInternal.noArrivalsWednesday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.ThursdayShort')},model:{value:(_vm.officialRateInternal.noArrivalsThursday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsThursday\", $$v)},expression:\"officialRateInternal.noArrivalsThursday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.FridayShort')},model:{value:(_vm.officialRateInternal.noArrivalsFriday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsFriday\", $$v)},expression:\"officialRateInternal.noArrivalsFriday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.SaturdayShort')},model:{value:(_vm.officialRateInternal.noArrivalsSaturday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsSaturday\", $$v)},expression:\"officialRateInternal.noArrivalsSaturday\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('t.Calendar.SundayShort')},model:{value:(_vm.officialRateInternal.noArrivalsSunday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noArrivalsSunday\", $$v)},expression:\"officialRateInternal.noArrivalsSunday\"}})],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('v-checkbox',{staticClass:\"primary--text\",attrs:{\"indeterminate\":_vm.someDepartures && !_vm.allDepartures,\"value\":_vm.allDepartures},on:{\"change\":_vm.toggleDepartures},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"OfficialRate.NoDeparturesOn\"))+\" \")])]},proxy:true}])}),_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"pr-6 pl-6\",attrs:{\"label\":_vm.$t('t.Calendar.MondayShort')},model:{value:(_vm.officialRateInternal.noDeparturesMonday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesMonday\", $$v)},expression:\"officialRateInternal.noDeparturesMonday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.TuesdayShort')},model:{value:(_vm.officialRateInternal.noDeparturesTuesday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesTuesday\", $$v)},expression:\"officialRateInternal.noDeparturesTuesday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.WednesdayShort')},model:{value:(_vm.officialRateInternal.noDeparturesWednesday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesWednesday\", $$v)},expression:\"officialRateInternal.noDeparturesWednesday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.ThursdayShort')},model:{value:(_vm.officialRateInternal.noDeparturesThursday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesThursday\", $$v)},expression:\"officialRateInternal.noDeparturesThursday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.FridayShort')},model:{value:(_vm.officialRateInternal.noDeparturesFriday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesFriday\", $$v)},expression:\"officialRateInternal.noDeparturesFriday\"}}),_c('v-checkbox',{staticClass:\"pr-6\",attrs:{\"label\":_vm.$t('t.Calendar.SaturdayShort')},model:{value:(_vm.officialRateInternal.noDeparturesSaturday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesSaturday\", $$v)},expression:\"officialRateInternal.noDeparturesSaturday\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('t.Calendar.SundayShort')},model:{value:(_vm.officialRateInternal.noDeparturesSunday),callback:function ($$v) {_vm.$set(_vm.officialRateInternal, \"noDeparturesSunday\", $$v)},expression:\"officialRateInternal.noDeparturesSunday\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport { OfficialRateModel } from \"@/components/property/official-rates/types\";\n\n@Component\nexport default class OfficialRatesArrivalsDepartures extends Vue {\n @PropSync(\"officialRate\") officialRateInternal?: OfficialRateModel;\n\n get someArrivals() {\n if (!this.officialRateInternal) return false;\n return (\n this.officialRateInternal.noArrivalsMonday ||\n this.officialRateInternal.noArrivalsTuesday ||\n this.officialRateInternal.noArrivalsWednesday ||\n this.officialRateInternal.noArrivalsThursday ||\n this.officialRateInternal.noArrivalsFriday ||\n this.officialRateInternal.noArrivalsSaturday ||\n this.officialRateInternal.noArrivalsSunday\n );\n }\n\n get allArrivals() {\n if (!this.officialRateInternal) return false;\n return (\n this.officialRateInternal.noArrivalsMonday &&\n this.officialRateInternal.noArrivalsTuesday &&\n this.officialRateInternal.noArrivalsWednesday &&\n this.officialRateInternal.noArrivalsThursday &&\n this.officialRateInternal.noArrivalsFriday &&\n this.officialRateInternal.noArrivalsSaturday &&\n this.officialRateInternal.noArrivalsSunday\n );\n }\n\n get someDepartures() {\n if (!this.officialRateInternal) return false;\n return (\n this.officialRateInternal.noDeparturesMonday ||\n this.officialRateInternal.noDeparturesTuesday ||\n this.officialRateInternal.noDeparturesWednesday ||\n this.officialRateInternal.noDeparturesThursday ||\n this.officialRateInternal.noDeparturesFriday ||\n this.officialRateInternal.noDeparturesSaturday ||\n this.officialRateInternal.noDeparturesSunday\n );\n }\n\n get allDepartures() {\n if (!this.officialRateInternal) return false;\n return (\n this.officialRateInternal.noDeparturesMonday &&\n this.officialRateInternal.noDeparturesTuesday &&\n this.officialRateInternal.noDeparturesWednesday &&\n this.officialRateInternal.noDeparturesThursday &&\n this.officialRateInternal.noDeparturesFriday &&\n this.officialRateInternal.noDeparturesSaturday &&\n this.officialRateInternal.noDeparturesSunday\n );\n }\n\n toggleArrivals() {\n if (!this.officialRateInternal) return;\n if (!this.allArrivals) {\n this.officialRateInternal.noArrivalsMonday = true;\n this.officialRateInternal.noArrivalsTuesday = true;\n this.officialRateInternal.noArrivalsWednesday = true;\n this.officialRateInternal.noArrivalsThursday = true;\n this.officialRateInternal.noArrivalsFriday = true;\n this.officialRateInternal.noArrivalsSaturday = true;\n this.officialRateInternal.noArrivalsSunday = true;\n } else {\n this.officialRateInternal.noArrivalsMonday = false;\n this.officialRateInternal.noArrivalsTuesday = false;\n this.officialRateInternal.noArrivalsWednesday = false;\n this.officialRateInternal.noArrivalsThursday = false;\n this.officialRateInternal.noArrivalsFriday = false;\n this.officialRateInternal.noArrivalsSaturday = false;\n this.officialRateInternal.noArrivalsSunday = false;\n }\n }\n\n toggleDepartures() {\n if (!this.officialRateInternal) return;\n if (!this.allDepartures) {\n this.officialRateInternal.noDeparturesMonday = true;\n this.officialRateInternal.noDeparturesTuesday = true;\n this.officialRateInternal.noDeparturesWednesday = true;\n this.officialRateInternal.noDeparturesThursday = true;\n this.officialRateInternal.noDeparturesFriday = true;\n this.officialRateInternal.noDeparturesSaturday = true;\n this.officialRateInternal.noDeparturesSunday = true;\n } else {\n this.officialRateInternal.noDeparturesMonday = false;\n this.officialRateInternal.noDeparturesTuesday = false;\n this.officialRateInternal.noDeparturesWednesday = false;\n this.officialRateInternal.noDeparturesThursday = false;\n this.officialRateInternal.noDeparturesFriday = false;\n this.officialRateInternal.noDeparturesSaturday = false;\n this.officialRateInternal.noDeparturesSunday = false;\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport OfficialRatesOBRules from \"./OfficialRatesOBRules.vue\";\nimport OfficialRatesLOSRules from \"./OfficialRatesLOSRules.vue\";\nimport OfficialRatesOBAndLOSRules from \"./OfficialRatesOBAndLOSRules.vue\";\nimport {\n AccomodationUnitTypeViewModel,\n RatePlanAccUnitType,\n} from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { RatePlan } from \"@/components/calendar/CalendarTypes\";\nimport { parseStringToDateJS } from \"@/shared/dateFormatUtils\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { enumToArray } from \"@/shared/commonFunctions\";\nimport PriceInput from \"../../calendar/inputs/PriceInput.vue\";\nimport OfficialRatesFormPrices from \"./OfficialRatesFormPrices.vue\";\nimport {\n OfficialRateModel,\n OfficialRateRulesCategoriesViewModel,\n OfficialRateRuleModel,\n OfficialRateRulesGroupingEnum,\n} from \"./types\";\nimport OfficialRatesArrivalsDepartures from \"./OfficialRatesArrivalsDepartures.vue\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport * as _ from \"lodash\";\nimport { DateTime } from \"luxon\";\n\nexport enum UpdateTypeEnum {\n Restrictions = 1,\n Prices = 2,\n RestrictionsAndPrices = 3,\n None = 4,\n}\n\n@Component({\n components: {\n RightDrawer,\n FormDescription,\n DateField,\n OfficialRatesOBRules,\n OfficialRatesLOSRules,\n OfficialRatesOBAndLOSRules,\n PriceInput,\n OfficialRatesFormPrices,\n OfficialRatesArrivalsDepartures,\n },\n})\nexport default class OfficialRatesFormNew extends Vue {\n @Prop({ default: null }) officialRateId!: number | null;\n @Prop({ default: false }) open!: boolean;\n @Prop() callback!: () => any;\n @Prop() accUnitType?: AccomodationUnitTypeViewModel;\n\n @Getter(\"appParams/tenantCanEditPAXCategories\")\n tenantCanEditPAXCategories?: boolean;\n @Getter(\"appParams/tenantAutomaticPAXCategoriesAreIndividual\")\n tenantAutomaticPAXCategoriesAreIndividual?: boolean;\n @Getter(\"appParams/tenantCanEditLOSCategories\")\n tenantCanEditLOSCategories?: boolean;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n get tenantUsesOfficialRateRules() {\n return !this.tenantOBRsUseRelativePricing;\n }\n\n get showPAXCategories() {\n return (\n this.tenantUsesOfficialRateRules &&\n ((this.tenantCanEditPAXCategories ?? false) ||\n (this.tenantAutomaticPAXCategoriesAreIndividual ?? false))\n );\n }\n\n get showLOSCategories() {\n return (\n this.tenantUsesOfficialRateRules &&\n (this.tenantCanEditLOSCategories ?? false)\n );\n }\n\n @Getter(\"appParams/tenantUsesInputPrice\")\n tenantUsesInputPrice?: boolean;\n\n descriptionTextResource = \"OfficialRate.FormInstructions\";\n\n fkey = 0;\n dkey = 0;\n pickerDate = \"\";\n\n loading = false;\n saving = false;\n saveDialogOpen = false;\n initialOfficialRate = new OfficialRateModel();\n officialRate = new OfficialRateModel();\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n }\n\n await this.loadRatePlans();\n\n if (fresh && this.officialRateId) {\n this.officialRate = new OfficialRateModel();\n await this.loadOfficialRate();\n } else if (fresh) {\n this.loading = true;\n this.officialRate = new OfficialRateModel();\n\n // select default currency\n this.officialRate.currencyId =\n this.tenantOfficialRateDefaultCurrencyId ??\n this.formalCurrency?.id ??\n 0;\n\n // select default rate plan\n this.officialRate.ratePlanId =\n this.ratePlansForOfficialRate.length > 0\n ? this.ratePlansForOfficialRate[0].id\n : null;\n\n // set default date from\n if (this.officialRatesDateFromDefaultsToPlus1Day) {\n await this.axios\n .get(\n `AccomodationUnitTypes/${this.accUnitType?.id}/officialRates/latestDateTo`\n )\n .then((x) => {\n if (x.data) {\n const date = parseStringToDateJS(x.data);\n date.setDate(date.getDate() + 1);\n this.officialRate.dateFrom = date.toISOString().substring(0, 10);\n this.pickerDate = this.officialRate.dateFrom;\n }\n });\n }\n }\n\n if (fresh) {\n await this.axios\n .get(\n `AccomodationUnitTypes/${this.accUnitType?.id}/officialRates/GetOfficialRatesRulesCategories`\n )\n .then((res) => {\n const rules = [] as OfficialRateRuleModel[];\n\n if (this.tenantUsesOfficialRateRules) {\n res.data.losCategories.forEach((los) => {\n res.data.paxCategories.forEach((pax) => {\n rules.push({\n minPersons: pax.minPersons,\n maxPersons: pax.maxPersons,\n minStay: los.minStay,\n maxStay: los.maxStay,\n isDefaultLOSCategory: los.isDefault,\n isDefaultPAXCategory: pax.isDefault,\n price: null,\n inputPrice: null,\n losInputPriceDifference: los.losInputPriceDifference,\n losInputPriceDifferenceIsAbsolute:\n los.losInputPriceDifferenceIsAbsolute,\n losOutputPriceDifference: los.losOutputPriceDifference,\n losOutputPriceDifferenceIsAbsolute:\n los.losOutputPriceDifferenceIsAbsolute,\n obInputPriceDifference: pax.obInputPriceDifference,\n obInputPriceDifferenceIsAbsolute:\n pax.obInputPriceDifferenceIsAbsolute,\n obOutputPriceDifference: pax.obOutputPriceDifference,\n obOutputPriceDifferenceIsAbsolute:\n pax.obOutputPriceDifferenceIsAbsolute,\n accomodationUnitTypesPAXCategoryId: pax.id,\n accomodationUnitTypesLOSCategoryId: los.id,\n uniqueKey: pax.id + \"_\" + los.id,\n noSales: false,\n });\n });\n });\n }\n\n // take prices from existing rules\n rules.forEach((r) => {\n const existing = this.officialRate.officialRateRules.find(\n (x) =>\n x.accomodationUnitTypesPAXCategoryId ==\n r.accomodationUnitTypesPAXCategoryId &&\n x.accomodationUnitTypesLOSCategoryId ==\n r.accomodationUnitTypesLOSCategoryId\n );\n if (existing) {\n r.price = existing.price;\n r.inputPrice = existing.inputPrice;\n r.noSales = existing.noSales;\n }\n });\n\n //prefill dropdown\n if (\n !this.tenantOBRsUseRelativePricing &&\n this.officialRate.ratePlanId\n ) {\n this.officialRate.derivedRatePlanIdsToUpdateRestrictions =\n this.accUnitTypeRatePlans\n .filter(\n (x) => x.parentRatePlanId === this.officialRate.ratePlanId\n )\n .map((x) => x.ratePlanId);\n }\n if (\n this.tenantOBRsUseRelativePricing &&\n this.officialRate.ratePlanId\n ) {\n this.officialRate.ratePlanIdsToUpdate = [\n this.officialRate.ratePlanId,\n ];\n this.officialRate.derivedRatePlanIdsToUpdateRestrictions =\n this.accUnitTypeRatePlans\n .filter((x) =>\n this.officialRate.ratePlanIdsToUpdate.includes(\n x.parentRatePlanId ?? 0\n )\n )\n .map((x) => x.ratePlanId);\n this.ratePlanIdsToUpdateChanged();\n }\n \n // finish rules setup\n this.officialRate.officialRateRules = _.cloneDeep(rules);\n this.initialOfficialRate = _.cloneDeep(this.officialRate);\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Getter(\"calendar/nonOBRatePlans\") nonOBRatePlans?: RatePlan[];\n @Action(\"calendar/refreshNonOBRatePlans\")\n refreshNonOBRatePlans?: () => Promise;\n\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\") serviceTypes?: ServiceType[];\n\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n @Getter(\"appParams/formalCurrency\") formalCurrency?: Currency;\n @Getter(\"appParams/allow0InputPriceForOfficialRate\") allow0InputPriceForOfficialRate?: boolean\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n @Getter(\"appParams/officialRatesDateFromDefaultsToPlus1Day\")\n officialRatesDateFromDefaultsToPlus1Day?: boolean;\n\n @Getter(\"appParams/tenantOfficialRateDefaultCurrencyId\")\n tenantOfficialRateDefaultCurrencyId?: number;\n @Getter(\"appParams/allowOfficialRatesInWorkingCurrency\")\n allowOfficialRatesInWorkingCurrency?: boolean;\n @Getter(\"appParams/officialRatesUseSeasonNames\")\n officialRatesUseSeasonNames?: boolean;\n\n get tenantUsesServiceType() {\n const param = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationTenantUsesServiceTypes\n );\n return param && param.value;\n }\n\n @Watch(\"officialRate.ratePlanId\")\n officialRatePlanChanged() {\n this.officialRate.derivedRatePlanIdsToUpdateRestrictions = [];\n }\n\n get currencyItems() {\n return [\n {\n id: this.formalCurrency?.id,\n text: this.formalCurrency?.isoCode,\n },\n ...(this.allowOfficialRatesInWorkingCurrency\n ? [\n {\n id: this.workingCurrency?.id,\n text: this.workingCurrency?.isoCode,\n },\n ]\n : []),\n ];\n }\n\n currencyIsoCode(currencyId: number) {\n if (this.currencies) {\n return this.currencies.find((x) => x.id == currencyId)?.isoCode ?? \"\";\n }\n\n return \"\";\n }\n\n get ratePlanSelectDisabled() {\n return this.ratePlansForOfficialRate.length === 1 || !!this.officialRate.id;\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n validPeriod: () =>\n this.periodValid() ||\n this.$t(\"OfficialRates.DateFromCantBeGreaterThanDateTo\"),\n };\n }\n\n periodValid() {\n const period = [this.officialRate.dateFrom, this.officialRate.dateTo];\n\n if (period[0] === \"\" || period[1] === \"\") {\n return true;\n }\n\n return period[0] <= period[1];\n }\n\n async created() {\n const promises = [];\n\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n promises.push(this.refreshServiceTypes());\n }\n\n if (\n (this.nonOBRatePlans?.length ?? 0) === 0 &&\n this.refreshNonOBRatePlans\n ) {\n promises.push(this.refreshNonOBRatePlans());\n }\n\n await Promise.all(promises);\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading;\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n async loadOfficialRate() {\n this.loading = true;\n await Vue.axios\n .get(\n `AccomodationUnitTypes/${this.accUnitType?.id}/officialRates/${this.officialRateId}`\n )\n .then((res) => {\n this.officialRate = res.data;\n this.officialRate.ratePlanIdsToUpdate = [] as number[];\n\n this.initialOfficialRate = _.cloneDeep(this.officialRate);\n });\n }\n\n accUnitTypeRatePlans = [] as RatePlanAccUnitType[];\n\n get ratePlansForUpdate() {\n if (!this.nonOBRatePlans || !this.accUnitTypeRatePlans) return [];\n\n return this.nonOBRatePlans.filter(\n (x) =>\n !x.isDerived &&\n this.accUnitTypeRatePlans.map((utr) => utr.ratePlanId).includes(x.id)\n );\n }\n\n derivedRatePlansFromSelected = [] as RatePlanAccUnitType[];\n\n ratePlanIdsToUpdateChanged() {\n if (this.officialRate.ratePlanIdsToUpdate.length === 0) {\n this.derivedRatePlansFromSelected = [];\n this.officialRate.derivedRatePlanIdsToUpdateRestrictions = [];\n return;\n }\n this.derivedRatePlansFromSelected = this.accUnitTypeRatePlans.filter((x) =>\n this.officialRate.ratePlanIdsToUpdate.includes(x.parentRatePlanId ?? 0)\n );\n //also unselect derived for unselected standard\n this.officialRate.derivedRatePlanIdsToUpdateRestrictions =\n this.officialRate.derivedRatePlanIdsToUpdateRestrictions.filter((x) =>\n this.derivedRatePlansFromSelected.map((r) => r.ratePlanId).includes(x)\n );\n }\n\n get derivedRatePlansForRestrictionUpdate() {\n if (\n (!this.nonOBRatePlans || !this.accUnitTypeRatePlans) &&\n !this.officialRate.ratePlanId\n )\n return [];\n\n return this.accUnitTypeRatePlans.filter(\n (x) => x.parentRatePlanId === this.officialRate.ratePlanId\n );\n }\n\n get ratePlansForOfficialRate() {\n return this.ratePlansForUpdate.filter((x) => !x.isSpecialOrPackageOffer).sort((a, b) => a.id - b.id);\n }\n\n async loadRatePlans() {\n await this.axios\n .get>(\n `/AccomodationUnitTypes/${this.accUnitType?.id}/ratePlans`\n )\n .then((res) => {\n this.accUnitTypeRatePlans = res.data.result;\n })\n .finally(() => {\n this.loading = false;\n this.saving = false;\n });\n }\n\n enumToArray = enumToArray;\n updateTypeEnum = UpdateTypeEnum;\n updateType: UpdateTypeEnum | null = null;\n officialRateRulesGroupingEnum = OfficialRateRulesGroupingEnum;\n\n grouping = OfficialRateRulesGroupingEnum.ByLengthOfStay;\n toggleExpandCollapse() {\n if (this.$refs.OBAndLOSRules) {\n (\n this.$refs.OBAndLOSRules as OfficialRatesOBAndLOSRules\n ).toggleExpandCollapse();\n }\n }\n\n maxLength(max: number) {\n return (v: string) =>\n !v || v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n automaticFillingOfPrices() {\n const rules = this.officialRate.officialRateRules.sort((a, b) => {\n if (this.grouping === OfficialRateRulesGroupingEnum.ByLengthOfStay){\n if (a.minStay !== b.minStay) {\n return (a.minStay ?? 0) - (b.minStay ?? 0);\n }\n return (a.minPersons ?? 0) - (b.minPersons ?? 0);\n }\n else {\n if (a.minPersons !== b.minPersons) {\n return (a.minPersons ?? 0) - (b.minPersons ?? 0);\n }\n return (a.minStay ?? 0) - (b.minStay ?? 0);\n }\n });\n\n for (let i = 0; i < rules.length; i++) {\n if (!rules[i].price) {\n for (let j = i + 1; j < rules.length; j++) {\n if (rules[j].price) {\n rules[i].price = rules[j].price;\n break;\n }\n }\n }\n if (this.tenantUsesInputPrice && !rules[i].inputPrice) {\n for (let j = i + 1; j < rules.length; j++) {\n if (rules[j].inputPrice || (this.allow0InputPriceForOfficialRate && rules[j].inputPrice === 0)) {\n rules[i].inputPrice = rules[j].inputPrice;\n break;\n }\n }\n }\n }\n if (!this.officialRate.officialRateRules.every(\n (x) => x.price && (this.tenantUsesInputPrice ? (x.inputPrice || (this.allow0InputPriceForOfficialRate && x.inputPrice === 0)) : true)))\n {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"OfficialRates.PricesAreStillMissingAfterAutoCalculation\"),\n actions: [\n {\n text: this.$t(\"Close\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n else {\n this.save();\n }\n }\n\n save() {\n const pricesAreFilled = this.officialRate.officialRateRules.every((x) => {\n /** to cover some specific cases, we need to allow 0 as a valid input price \n * @see https://dev.azure.com/infranet/Development/_workitems/edit/14090\n */\n const hasValidInputPrice = this.allow0InputPriceForOfficialRate\n ? (x.inputPrice || x.inputPrice == 0)\n : x.inputPrice\n\n return x.price &&\n (this.tenantUsesInputPrice \n ? hasValidInputPrice\n : true)\n });\n\n if (!pricesAreFilled)\n {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"OfficialRates.EmptyPricesWarning\"),\n actions: [\n {\n text: this.$t(\"OfficialRates.AutomaticallyFill\"),\n fun: () => {\n this.automaticFillingOfPrices();\n return true;\n },\n },\n {\n text: this.$t(\"OfficialRates.ManuallyFill\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n else if (\n this.tenantUsesOfficialRateRules &&\n this.showPAXCategories &&\n this.showLOSCategories\n ) {\n this.updateType = UpdateTypeEnum.RestrictionsAndPrices;\n this.submit();\n } else if (this.showPAXCategories || this.showLOSCategories || this.officialRate.ratePlanIdsToUpdate.length > 0) {\n this.updateType = null;\n this.dkey++;\n this.saveDialogOpen = true;\n } else {\n this.updateType = null;\n this.submit();\n }\n }\n\n currentDatetime = DateTime.now();\n\n submit(overrides: string[] = []) {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n //submit\n this.saving = true;\n if (this.officialRate.id && this.officialRate.id !== 0) {\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n \n Vue.axios\n .put(\n `AccomodationUnitTypes/${this.accUnitType?.id}/officialRates/${this.officialRate.id}`,\n {\n ...this.officialRate,\n ratePlanId: !this.tenantOBRsUseRelativePricing ? this.officialRate.ratePlanId : null,\n updatePrices:\n this.updateType == UpdateTypeEnum.Prices ||\n this.updateType == UpdateTypeEnum.RestrictionsAndPrices,\n updateRestrictions:\n this.updateType == UpdateTypeEnum.Restrictions ||\n this.updateType == UpdateTypeEnum.RestrictionsAndPrices,\n overrideRules: overrides,\n requestedAt: this.currentDatetime\n },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"OfficialRates.SuccessSave\"),\n timeout: 5000,\n });\n\n if (res.data.asyncUpdateStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async calendar update started\"),\n timeout: 10000,\n });\n }\n\n this.$emit(\"update:open\", false);\n\n this.$store.dispatch(\"calendar/refreshRatePlans\", undefined, {\n root: true,\n });\n\n this.callback();\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.saving = false;\n });\n } else {\n Vue.axios\n .post(`AccomodationUnitTypes/${this.accUnitType?.id}/officialRates`, {\n ...this.officialRate,\n ratePlanId: !this.tenantOBRsUseRelativePricing ? this.officialRate.ratePlanId : null,\n updatePrices:\n this.updateType == UpdateTypeEnum.Prices ||\n this.updateType == UpdateTypeEnum.RestrictionsAndPrices,\n updateRestrictions:\n this.updateType == UpdateTypeEnum.Restrictions ||\n this.updateType == UpdateTypeEnum.RestrictionsAndPrices,\n requestedAt: this.currentDatetime\n })\n .then((res) => {\n this.officialRate = {\n ...this.officialRate,\n id: res.data.officialRateId,\n };\n\n this.initialOfficialRate = _.cloneDeep(this.officialRate);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"OfficialRates.SuccessSave\"),\n timeout: 5000,\n });\n\n if (res.data.asyncUpdateStarted) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Async calendar update started\"),\n timeout: 10000,\n });\n }\n\n this.$emit(\"update:open\", false);\n\n this.$store.dispatch(\"calendar/refreshRatePlans\", undefined, {\n root: true,\n });\n\n this.callback();\n })\n .finally(() => {\n this.saving = false;\n });\n }\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesArrivalsDepartures.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesArrivalsDepartures.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesArrivalsDepartures.vue?vue&type=template&id=548db7af&\"\nimport script from \"./OfficialRatesArrivalsDepartures.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesArrivalsDepartures.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCheckbox,VCol,VRow,VSubheader})\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesFormNew.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesFormNew.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesFormNew.vue?vue&type=template&id=5028581f&scoped=true&\"\nimport script from \"./OfficialRatesFormNew.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesFormNew.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfficialRatesFormNew.vue?vue&type=style&index=0&id=5028581f&scoped=true&lang=scss&\"\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 \"5028581f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VDialog,VForm,VProgressLinear,VRow,VSelect,VSpacer,VTextField,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { DataOptions } from \"vuetify\";\nimport { OfficialRateView } from \"@/components/property/official-rates/types\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport OfficialRatesFormNew from \"./OfficialRatesFormNew.vue\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport * as _ from \"lodash\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { RatePlan } from \"@/components/calendar/CalendarTypes\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\n\n@Component({\n components: {\n FormDescription,\n RightDrawer,\n OfficialRatesFormNew,\n SortableHeadersTable,\n DateField,\n },\n})\nexport default class OfficialRatesTable extends Vue {\n @Prop() disabled?: boolean;\n @Prop() readonly translateID?: string;\n @Prop() accUnitType?: AccomodationUnitTypeViewModel;\n\n @Action(\"appParams/refreshAppParams\") refreshAppParams?: () => Promise;\n\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\") serviceTypes?: ServiceType[];\n\n @Getter(\"calendar/nonOBRatePlans\") nonOBRatePlans?: RatePlan[];\n @Action(\"calendar/refreshNonOBRatePlans\")\n refreshNonOBRatePlans?: () => Promise;\n\n items: OfficialRateView[] = [];\n formOpen = false;\n selectedOfficialRate: number | null = null;\n\n async created() {\n const promises = [];\n\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n promises.push(this.refreshServiceTypes());\n }\n\n if (\n (this.nonOBRatePlans?.length ?? 0) === 0 &&\n this.refreshNonOBRatePlans\n ) {\n promises.push(this.refreshNonOBRatePlans());\n }\n\n await Promise.all(promises);\n\n this.load();\n\n this.setupHeaders();\n }\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/reservationTenantUsesServiceTypes\")\n tenantUsesServiceTypes?: boolean;\n @Getter(\"appParams/officialRatesUseSeasonNames\")\n officialRatesUseSeasonNames?: boolean;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n headers: SortableTableHeader[] = [];\n\n setupHeaders() {\n this.headers = [\n ...(this.officialRatesUseSeasonNames\n ? [\n {\n text: \"OfficialRate.SeasonName\",\n value: \"seasonName\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : []),\n ...(!this.tenantOBRsUseRelativePricing\n ? [\n {\n text: \"OfficialRate.RatePlan\",\n value: \"ratePlanId\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : []),\n ...(this.tenantUsesServiceTypes\n ? [\n {\n text: \"RatePlan.ServiceType\",\n value: \"serviceTypeId\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : []),\n {\n text: \"OfficialRate.DateFrom\",\n value: \"dateFrom\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header date-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.DateTo\",\n value: \"dateTo\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header date-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.Price\",\n value: \"price\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ...(this.tenantUsesInputPrice\n ? [\n {\n text: \"OfficialRate.InputPrice\",\n value: \"inputPrice\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : []),\n {\n text: \"OfficialRate.MinimumStay\",\n value: \"minimumStay\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header min-stay-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.MaximumStay\",\n value: \"maximumStay\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header min-stay-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.MinBookableBeforeCheckin\",\n value: \"minBookableBeforeCheckin\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header min-stay-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.MaxBookableBeforeCheckin\",\n value: \"maxBookableBeforeCheckin\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header min-stay-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.NoDeparturesOn\",\n value: \"noDeparturesOn\",\n sortable: false,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.NoArrivalsOn\",\n value: \"noArrivalsOn\",\n sortable: false,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"OfficialRate.IsMain\",\n value: \"isMain\",\n sortable: true,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n currencyDisplay(amount: number, currencyId: number) {\n const currency = this.currencies?.find((c) => c.id === currencyId);\n return currency\n ? this.$n(amount, {\n style: \"currency\",\n currency: currency.isoCode,\n currencyDisplay: \"code\",\n })\n : \"\";\n }\n\n serviceTypeDisplay(serviceTypeId: number) {\n if (this.serviceTypes) {\n return this.serviceTypes.find((x) => x.id == serviceTypeId)?.name ?? \"\";\n }\n\n return \"\";\n }\n\n ratePlanDisplay(ratePlanId: number) {\n if (this.nonOBRatePlans) {\n return this.nonOBRatePlans.find((x) => x.id == ratePlanId)?.name ?? \"\";\n }\n\n return \"\";\n }\n\n selectedCurrencyDisplay(currencyId: number) {\n if (this.currencies) {\n return this.currencies.find((x) => x.id == currencyId)?.isoCode ?? \"\";\n }\n\n return \"\";\n }\n\n noDeparturesDisplay(item: OfficialRateView) {\n const days = [];\n\n if (item.noDeparturesMonday) {\n days.push(this.$t(\"t.Calendar.MondayShort\"));\n }\n\n if (item.noDeparturesTuesday) {\n days.push(this.$t(\"t.Calendar.TuesdayShort\"));\n }\n\n if (item.noDeparturesWednesday) {\n days.push(this.$t(\"t.Calendar.WednesdayShort\"));\n }\n\n if (item.noDeparturesThursday) {\n days.push(this.$t(\"t.Calendar.ThursdayShort\"));\n }\n\n if (item.noDeparturesFriday) {\n days.push(this.$t(\"t.Calendar.FridayShort\"));\n }\n\n if (item.noDeparturesSaturday) {\n days.push(this.$t(\"t.Calendar.SaturdayShort\"));\n }\n\n if (item.noDeparturesSunday) {\n days.push(this.$t(\"t.Calendar.SundayShort\"));\n }\n\n if (days.length > 0) {\n return days.join(\", \");\n }\n\n return \"\";\n }\n\n noArrivalsDisplay(item: OfficialRateView) {\n const days = [];\n\n if (item.noArrivalsMonday) {\n days.push(this.$t(\"t.Calendar.MondayShort\"));\n }\n\n if (item.noArrivalsTuesday) {\n days.push(this.$t(\"t.Calendar.TuesdayShort\"));\n }\n\n if (item.noArrivalsWednesday) {\n days.push(this.$t(\"t.Calendar.WednesdayShort\"));\n }\n\n if (item.noArrivalsThursday) {\n days.push(this.$t(\"t.Calendar.ThursdayShort\"));\n }\n\n if (item.noArrivalsFriday) {\n days.push(this.$t(\"t.Calendar.FridayShort\"));\n }\n\n if (item.noArrivalsSaturday) {\n days.push(this.$t(\"t.Calendar.SaturdayShort\"));\n }\n\n if (item.noArrivalsSunday) {\n days.push(this.$t(\"t.Calendar.SundayShort\"));\n }\n\n if (days.length > 0) {\n return days.join(\", \");\n }\n\n return \"\";\n }\n\n rowDoubleClick(e: MouseEvent, { item }: { item: OfficialRateView }) {\n this.selectedOfficialRate = item.id;\n this.formOpen = true;\n }\n\n openItemDetails(item: OfficialRateView) {\n this.selectedOfficialRate = item.id;\n this.formOpen = true;\n }\n\n addOfficialRate() {\n this.selectedOfficialRate = null;\n this.formOpen = true;\n }\n\n settingsOpen = false;\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\n `AccomodationUnitTypes/${this.accUnitType?.id}/officialRates`,\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!_.isEqual(fresh, old)) {\n this.load();\n }\n }\n\n filters = {\n seasonName: \"\",\n dateFromStart: \"\",\n dateFromEnd: \"\",\n dateToStart: \"\",\n dateToEnd: \"\",\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n get dateFromPeriod() {\n const res = [\n this.filters.dateFromStart\n ? this.filters.dateFromStart.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.dateFromEnd\n ? this.filters.dateFromEnd.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set dateFromPeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.dateFromStart = val.length > 0 ? val[0] : \"\";\n this.filters.dateFromEnd = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.dateFromStart = \"\";\n this.filters.dateFromEnd = \"\";\n }\n }\n\n get dateToPeriod() {\n const res = [\n this.filters.dateToStart\n ? this.filters.dateToStart.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.dateToEnd\n ? this.filters.dateToEnd.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set dateToPeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.dateToStart = val.length > 0 ? val[0] : \"\";\n this.filters.dateToEnd = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.dateToStart = \"\";\n this.filters.dateToEnd = \"\";\n }\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n };\n }\n\n deleteItem(item: OfficialRateView) {\n const itemName = \"'\" + (item?.seasonName ?? \"\") + \"'\";\n\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmationVariable\", {\n value: itemName,\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteItemConfirm(id: number, overrides: string[] = []) {\n this.loading = true;\n\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n Vue.axios\n .delete(\n `AccomodationUnitTypes/${this.accUnitType?.id}/officialRates/${id}`,\n {\n data: { overrideRules: overrides },\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"OfficialRate.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n\n this.load();\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.deleteItemConfirm(id, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.loading = false;\n });\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesTable.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesTable.vue?vue&type=template&id=63182ec4&scoped=true&\"\nimport script from \"./OfficialRatesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfficialRatesTable.vue?vue&type=style&index=0&id=63182ec4&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 \"63182ec4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VRow,VSimpleCheckbox,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height wrapper\"},[(!_vm.accUnitTypeShownOnBE)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccomodationUnitTypeForm.RatePlanOverrides.Description\"))+\" \")])],1)],1):_vm._e(),_c('v-row',[(_vm.saving)?_c('v-overlay',{staticClass:\"overlay\",attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e(),(_vm.loading)?_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article\",\"elevation\":\"2\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-expansion-panels',{staticClass:\"rate-plans-cards\"},_vm._l((_vm.ratePlans),function(group){return _c('v-expansion-panel',{key:group.ratePlanId},[_c('v-expansion-panel-header',[_c('div',[_vm._v(_vm._s(group.ratePlanName))]),_c('v-spacer'),_c('div',{staticClass:\"flex-grow-0 mr-6\"},[_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteRatePlan(group)}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1),_c('v-expansion-panel-content',_vm._l((group.ratePlanUnitTypes),function(plan){return _c('v-col',{key:plan.id,attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"fill-height\"},[_c('v-card-title',[_c('div',{staticClass:\"rate-plan-name\",class:{ 'base-obr': plan.isDefault }},[_vm._v(\" \"+_vm._s(_vm.getRatePlanFullName(plan))+\" \")])]),_c('v-card-text',[_c('v-checkbox',{attrs:{\"label\":_vm.$t('AccomodationUnitTypeRatePlan.BookingEngine')},on:{\"change\":function($event){return _vm.updateRatePlan(plan)}},model:{value:(plan.isAvailableViaBookingEngine),callback:function ($$v) {_vm.$set(plan, \"isAvailableViaBookingEngine\", $$v)},expression:\"plan.isAvailableViaBookingEngine\"}}),(plan.isAvailableViaBookingEngine)?_c('NumericInput',{attrs:{\"label\":_vm.$t('RatePlan.Otas.PriceDifference'),\"suffix\":'%',\"decimalPlaces\":2,\"dense\":\"\",\"placeholder\":_vm.formatLocaleNumber(\n plan.bookingEnginePriceOffsetPlaceholder,\n 2,\n _vm.internalLanguage\n )},on:{\"blur\":function($event){return _vm.updateRatePlan(plan)}},model:{value:(plan.bookingEnginePriceOffset),callback:function ($$v) {_vm.$set(plan, \"bookingEnginePriceOffset\", $$v)},expression:\"plan.bookingEnginePriceOffset\"}}):_vm._e()],1)],1)],1)}),1)],1)}),1)],1),_c('v-col',{staticClass:\"d-flex\",attrs:{\"lg\":\"3\",\"md\":\"4\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column fill-height\",attrs:{\"width\":\"100%\"},on:{\"click\":function () { return (_vm.ratePlanSelectOpen = true); }}},[_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addRoomText\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"AccommodationUnitType.AddNewRatePlan\"))+\" \")]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\"},model:{value:(_vm.ratePlanSelectOpen),callback:function ($$v) {_vm.ratePlanSelectOpen=$$v},expression:\"ratePlanSelectOpen\"}},[_c('v-card',{attrs:{\"loading\":_vm.saving,\"disabled\":_vm.saving}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t(\"Choose rate plan\")))]),_c('v-card-text',[_c('v-select',{attrs:{\"items\":_vm.availableRatePlans,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":_vm.$t('Rate plan'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.name)+\" (\"+_vm._s(item.currencyCode)+\")\")])]}},{key:\"item\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.name)+\" (\"+_vm._s(item.currencyCode)+\")\")])]}}]),model:{value:(_vm.ratePlanIdToAdd),callback:function ($$v) {_vm.ratePlanIdToAdd=$$v},expression:\"ratePlanIdToAdd\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.ratePlanIdToAdd},on:{\"click\":_vm.addRatePlan}},[_vm._v(_vm._s(_vm.$t(\"Confirm\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.ratePlanSelectOpen = false;\n _vm.ratePlanIdToAdd = null;}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { RatePlanAccUnitType } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\nimport { Notification } from \"../../store/modules/notifications\";\nimport { formatLocaleNumber } from \"@/components/numbers/numberFormatUtils\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport {\n RatePlanModel,\n RatePlanTypeFilterEnum,\n} from \"@/shared/models/ratePlanModel\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport * as _ from \"lodash\";\n\nexport interface RatePlanGroup {\n ratePlanId: number;\n ratePlanName: string;\n ratePlanUnitTypes: RatePlanAccUnitType[];\n}\n\n@Component({\n components: {\n NumericInput,\n FormDescription,\n },\n})\nexport default class AccomodationUnitTypeRatePlanOverrides extends Vue {\n @Prop({ default: 0 }) accUnitTypeId?: number;\n @Prop({ default: false }) accUnitTypeShownOnBE?: boolean;\n\n loading = true;\n saving = false;\n firstTimeLoad = true;\n ratePlanSelectOpen = false;\n\n ratePlans: RatePlanGroup[] = [];\n allRatePlans: RatePlanModel[] = [];\n\n formatLocaleNumber = formatLocaleNumber;\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n @Getter(\"appParams/showPAXSuffixInRatePlanName\")\n showPAXSuffixInRatePlanName?: boolean;\n @Getter(\"appParams/showLOSSuffixInRatePlanName\")\n showLOSSuffixInRatePlanName?: boolean;\n\n filters = {\n ratePlanType: RatePlanTypeFilterEnum.All,\n };\n\n get availableRatePlans() {\n const availableRatePlans = this.allRatePlans.filter((x) => {\n return !this.ratePlans.find((y) => {\n return y.ratePlanId === x.id;\n });\n });\n return availableRatePlans.filter(\n (x) =>\n !x.isDerived ||\n (x.isDerived &&\n this.ratePlans.some((y) => y.ratePlanId === x.parentRatePlanId))\n );\n }\n\n @Watch(\"accUnitTypeId\", { immediate: true })\n load() {\n if (!this.accUnitTypeId) return;\n\n this.axios\n .get>(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/ratePlanMappings`\n )\n .then((res) => {\n this.ratePlans = [];\n const grouped = _.groupBy(res.data.result, (x) => x.ratePlanId);\n for (const key in grouped) {\n const group = grouped[key];\n this.ratePlans.push({\n ratePlanId: group[0].ratePlanId,\n ratePlanName: group[0].ratePlanName,\n ratePlanUnitTypes: group.sort((a, b) =>\n a.minPersons - b.minPersons === 0\n ? a.minStay - b.minStay\n : a.minPersons - b.minPersons\n ),\n });\n }\n })\n .finally(() => {\n this.loading = false;\n this.saving = false;\n });\n\n if (this.firstTimeLoad) {\n this.loading = true;\n this.firstTimeLoad = false;\n Vue.axios\n .get>(\"RatePlans/\", {\n params: this.filters,\n })\n .then((res) => {\n this.allRatePlans = res.data.result;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n ratePlanIdToAdd: number | null = null;\n addRatePlan() {\n this.saving = true;\n this.axios\n .post(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/ratePlans/${this.ratePlanIdToAdd}`\n )\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"RatePlan.SaveSuccess\"),\n timeout: 5000,\n });\n this.ratePlanIdToAdd = null;\n this.ratePlanSelectOpen = false;\n })\n .finally(() => {\n this.load();\n this.saving = false;\n });\n }\n\n updateRatePlan(plan: RatePlanAccUnitType) {\n this.saving = true;\n this.axios\n .put(\n `/AccomodationUnitTypes/${this.accUnitTypeId}/ratePlans/${plan.id}`,\n {\n id: plan.id,\n isAvailableViaBookingEngine: plan.isAvailableViaBookingEngine,\n bookingEnginePriceOffset: plan.isAvailableViaBookingEngine\n ? plan.bookingEnginePriceOffset\n : null,\n }\n )\n .finally(() => this.load());\n }\n\n deleteRatePlan(group: RatePlanGroup) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"AccommodationUnitType.DeleteRatePlanConfirmation\", {\n value: group.ratePlanName,\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteRatePlanConfirm(group.ratePlanId, []);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteRatePlanConfirm(id: number, overrides: string[]) {\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n this.saving = true;\n this.axios\n .delete(`/AccomodationUnitTypes/${this.accUnitTypeId}/ratePlans/${id}`, {\n data: { overrideRules: overrides },\n adapter: isOverriding ? undefined : adapter,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"RatePlan.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.deleteRatePlanConfirm(id, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => this.load());\n }\n\n getRatePlanFullName(ratePlan: RatePlanAccUnitType) {\n let paxSuffix = \"\";\n let losSuffix = \"\";\n\n if (this.showPAXSuffixInRatePlanName) {\n paxSuffix =\n ratePlan.minPersons === ratePlan.maxPersons\n ? `, ${ratePlan.minPersons} pax`\n : `, ${ratePlan.minPersons}-${ratePlan.maxPersons} pax`;\n }\n\n if (this.showLOSSuffixInRatePlanName) {\n losSuffix =\n ratePlan.maxStay === 0\n ? `, ${ratePlan.minStay}+ LOS`\n : ratePlan.minStay === ratePlan.maxStay\n ? `, ${ratePlan.minStay} LOS`\n : `, ${ratePlan.minStay}-${ratePlan.maxStay} LOS`;\n }\n\n return ratePlan.ratePlanName + paxSuffix + losSuffix;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeRatePlanOverrides.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeRatePlanOverrides.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeRatePlanOverrides.vue?vue&type=template&id=36b14c1f&scoped=true&\"\nimport script from \"./AccomodationUnitTypeRatePlanOverrides.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeRatePlanOverrides.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeRatePlanOverrides.vue?vue&type=style&index=0&id=36b14c1f&scoped=true&lang=scss&\"\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 \"36b14c1f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VOverlay,VProgressCircular,VRow,VSelect,VSkeletonLoader,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-wrapper\"},[_c('SortableHeadersTable',{staticClass:\"pax-categories-table\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.losCategories,\"options\":_vm.options,\"settingsOpen\":_vm.settingsOpen,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"sort-by\":\"id\",\"tableName\":\"losCategories\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"item.minStay\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.minStay)+\" \")])]}},{key:\"item.maxStay\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.maxStay)+\" \")])]}},{key:\"item.inputPriceDifference\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.isDefault)?_c('div',[_vm._v(\" \"+_vm._s(_vm.inputPriceDifferenceData(item))+\" \")]):_vm._e()]}},{key:\"item.outputPriceDifference\",fn:function(ref){\nvar item = ref.item;\nreturn [(!item.isDefault)?_c('div',[_vm._v(\" \"+_vm._s(_vm.outputPriceDifferenceData(item))+\" \")]):_vm._e()]}},{key:\"item.isDefault\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-checkbox',{attrs:{\"disabled\":\"\",\"readonly\":\"\"},model:{value:(item.isDefault),callback:function ($$v) {_vm.$set(item, \"isDefault\", $$v)},expression:\"item.isDefault\"}})]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.update(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.remove(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}}])}),_c('AccomodationUnitTypeLOSCategoriesForm',{attrs:{\"open\":_vm.formOpen,\"unitType\":_vm.model,\"existingCategories\":_vm.losCategories,\"categoryId\":_vm.updateCategoryId},on:{\"update:open\":function($event){_vm.formOpen=$event},\"update:categoryId\":function($event){_vm.updateCategoryId=$event},\"update:category-id\":function($event){_vm.updateCategoryId=$event},\"saved\":_vm.refresh}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('RightDrawer',{attrs:{\"open\":_vm.internalOpen,\"initial\":_vm.initialModel,\"watched\":_vm.model,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){_vm.internalOpen=$event},\"save\":function($event){return _vm.submit()}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isSaveDisabled,\"loading\":_vm.submitting},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"form-title\"},[_vm._v(_vm._s(_vm.internalCategoryId ? _vm.$t(\"AccomodationUnitType.LOSCategories.Editing\") : _vm.$t(\"AccomodationUnitType.LOSCategories.New\")))])]),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('div',[(!_vm.internalCategoryId)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"CategoryTemplate.Info\")))])],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Templates'),\"items\":_vm.templateList,\"item-value\":\"id\",\"item-text\":\"templateName\",\"return-object\":\"\",\"clearable\":\"\"},on:{\"change\":_vm.selectTemplate},model:{value:(_vm.selectedTemplate),callback:function ($$v) {_vm.selectedTemplate=$$v},expression:\"selectedTemplate\"}})],1)],1):_vm._e(),(_vm.showPriceDiffNote)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"CategoryTemplatePriceDifference.Info\")))])],1)],1):_vm._e(),_vm._l((_vm.model),function(item,$index){return _c('v-row',{key:$index,attrs:{\"cols\":\"12\",\"dense\":\"\"}},[($index > 0)?_c('v-divider',{staticClass:\"my-3 divider\"}):_vm._e(),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AccomodationUnitType.LOSCategories.MinStay') + '*',\"decimalPlaces\":0,\"outlined\":false,\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.required(item.minStay),\n _vm.rules.oneOrPositive(item.minStay),\n _vm.rules.minLowerThanMax(item.minStay, item.maxStay) ]},model:{value:(item.minStay),callback:function ($$v) {_vm.$set(item, \"minStay\", $$v)},expression:\"item.minStay\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('AccomodationUnitType.LOSCategories.MaxStay') + '*',\"decimalPlaces\":0,\"outlined\":false,\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.required(item.maxStay),\n _vm.rules.minLowerThanMax(item.minStay, item.maxStay),\n _vm.rules.zeroOrPositive(item.maxStay)\n ]},model:{value:(item.maxStay),callback:function ($$v) {_vm.$set(item, \"maxStay\", $$v)},expression:\"item.maxStay\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('AccomodationUnitType.LOSCategories.IsDefault'),\"dense\":\"\"},on:{\"change\":function($event){return _vm.defaultChanged($index)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCategory(item)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1)]},proxy:true}],null,true),model:{value:(item.isDefault),callback:function ($$v) {_vm.$set(item, \"isDefault\", $$v)},expression:\"item.isDefault\"}})],1),(!item.isDefault && _vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OB.LOS.Category.InputPriceDifference') +\n (item.inputPriceDifferenceIsAbsolute != null &&\n item.inputPriceDifferenceIsAbsolute != undefined\n ? '*'\n : ''),\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.greaterThanMinus100(item.inputPriceDifference, item.inputPriceDifferenceIsAbsolute),\n _vm.requiredIfDifferenceTypeEntered(\n item.inputPriceDifference,\n item.inputPriceDifferenceIsAbsolute\n ) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(item.inputPriceDifferenceIsAbsolute === false)?_c('span',[_vm._v(\"%\")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.inputPriceDifference),callback:function ($$v) {_vm.$set(item, \"inputPriceDifference\", $$v)},expression:\"item.inputPriceDifference\"}})],1):_vm._e(),(!item.isDefault && _vm.tenantUsesInputPrice)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('OB.LOS.Category.InputPriceDifferenceType') +\n (!!item.inputPriceDifference ? '*' : ''),\"dense\":\"\",\"rules\":[\n _vm.requiredIfPriceEntered(\n item.inputPriceDifference,\n item.inputPriceDifferenceIsAbsolute\n ) ],\"items\":_vm.priceDifferenceItems,\"clearable\":\"\",\"item-value\":\"value\"},model:{value:(item.inputPriceDifferenceIsAbsolute),callback:function ($$v) {_vm.$set(item, \"inputPriceDifferenceIsAbsolute\", $$v)},expression:\"item.inputPriceDifferenceIsAbsolute\"}})],1):_vm._e(),(!item.isDefault)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('OB.LOS.Category.OutputPriceDifference') +\n (item.outputPriceDifferenceIsAbsolute != null &&\n item.outputPriceDifferenceIsAbsolute != undefined\n ? '*'\n : ''),\"dense\":true,\"validateInput\":true,\"rules\":[\n _vm.rules.greaterThanMinus100(item.outputPriceDifference, item.outputPriceDifferenceIsAbsolute),\n _vm.requiredIfDifferenceTypeEntered(\n item.outputPriceDifference,\n item.outputPriceDifferenceIsAbsolute\n ) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(item.outputPriceDifferenceIsAbsolute === false)?_c('span',[_vm._v(\"%\")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.outputPriceDifference),callback:function ($$v) {_vm.$set(item, \"outputPriceDifference\", $$v)},expression:\"item.outputPriceDifference\"}})],1):_vm._e(),(!item.isDefault)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('OB.LOS.Category.OutputPriceDifferenceType') +\n (!!item.outputPriceDifference ? '*' : ''),\"dense\":\"\",\"rules\":[\n _vm.requiredIfPriceEntered(\n item.outputPriceDifference,\n item.outputPriceDifferenceIsAbsolute\n ) ],\"items\":_vm.priceDifferenceItems,\"clearable\":\"\",\"item-value\":\"value\"},model:{value:(item.outputPriceDifferenceIsAbsolute),callback:function ($$v) {_vm.$set(item, \"outputPriceDifferenceIsAbsolute\", $$v)},expression:\"item.outputPriceDifferenceIsAbsolute\"}})],1):_vm._e()],1)}),(!_vm.internalCategoryId)?_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addCategory()}}},[_vm._v(_vm._s(_vm.$t(\"OB.LOS.AddCategory\"))+\" \")]):_vm._e()],2)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport * as _ from \"lodash\";\nimport {\n AccomodationUnitTypeLOSCategory,\n AccomodationUnitTypeViewModel,\n} from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { LOSCategoryTemplateModel } from \"@/shared/models/losCategoryTemplate\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { AxiosResponse } from \"axios\";\n\n@Component({\n components: {\n NumericInputImproved,\n RightDrawer,\n SortableHeadersTable,\n },\n})\nexport default class AccomodationUnitTypeLOSCategoriesForm extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() unitType?: AccomodationUnitTypeViewModel;\n @Prop() existingCategories?: AccomodationUnitTypeLOSCategory[];\n @PropSync(\"categoryId\", { default: null }) internalCategoryId?: number | null;\n\n fkey = 0;\n isFormValid = false;\n submitting = false;\n loading = false;\n\n model = [] as AccomodationUnitTypeLOSCategory[];\n initialModel = [] as AccomodationUnitTypeLOSCategory[];\n\n selectedTemplate: LOSCategoryTemplateModel | null = null;\n templateList: LOSCategoryTemplateModel[] = [];\n\n loadLOSCategoryTemplates() {\n this.axios\n .get>(\"/LOSCategoryTemplates\")\n .then((res) => {\n this.templateList = res.data.result;\n });\n }\n\n selectTemplate() {\n if (this.selectedTemplate) {\n this.model = this.selectedTemplate.losCategoryTemplateItems.map((x) => {\n return {\n id: 0,\n accomodationUnitTypeId: this.unitType?.id ?? 0,\n isDefault: false,\n minStay: x.minStay,\n maxStay: x.maxStay,\n inputPriceDifference: x.inputPriceDifference,\n inputPriceDifferenceIsAbsolute: x.inputPriceDifferenceIsAbsolute,\n outputPriceDifference: x.outputPriceDifference,\n outputPriceDifferenceIsAbsolute: x.outputPriceDifference,\n } as AccomodationUnitTypeLOSCategory;\n });\n } else {\n this.model = [new AccomodationUnitTypeLOSCategory(this.unitType?.id)];\n }\n }\n\n @Watch(\"internalOpen\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n }\n\n if (fresh && this.internalCategoryId) {\n this.load();\n } else {\n this.model = [new AccomodationUnitTypeLOSCategory(this.unitType?.id)];\n this.model[0].isDefault = this.noDefaultCategory;\n this.initialModel = _.cloneDeep(this.model);\n }\n\n if (!fresh) {\n this.internalCategoryId = null;\n }\n }\n\n load() {\n this.loading = true;\n this.axios\n .get(\n `/AccomodationUnitTypes/${this.unitType?.id}/losCategories/${this.internalCategoryId}`\n )\n .then((res) => {\n this.model = [res.data];\n this.initialModel = _.cloneDeep(this.model);\n })\n .finally(() => (this.loading = false));\n }\n\n @Ref(\"form\") formRef?: {\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n async created() {\n const promises = [];\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n mounted() {\n this.loadLOSCategoryTemplates();\n }\n\n get showPriceDiffNote() {\n return this.model.some((e) => !e.isDefault);\n }\n\n get noDefaultCategory() {\n return (\n (this.existingCategories?.filter((x) => x.isDefault).length ?? 0) < 1\n );\n }\n\n addCategory() {\n this.model.push(new AccomodationUnitTypeLOSCategory(this.unitType?.id));\n }\n\n removeCategory(item: AccomodationUnitTypeLOSCategory) {\n const index = this.model.findIndex((x) => x == item);\n if (index != -1) {\n this.model.splice(index, 1);\n }\n }\n\n defaultChanged(index: number) {\n if (this.model[index].isDefault) {\n this.model.forEach((x, i) => {\n if (i !== index) x.isDefault = false;\n });\n }\n }\n\n get priceDifferenceItems() {\n return [\n {\n text: this.$t(\"OB.LOS.Category.IsPriceDifferenceAbsolute\"),\n value: true,\n },\n {\n text: this.$t(\"OB.LOS.Category.IsPriceDifferencePercentage\"),\n value: false,\n },\n ];\n }\n\n submit(overrides: string[] = []) {\n if (this.submitting) return;\n this.submitting = true;\n this.formRef?.validate();\n if (!this.isFormValid) {\n this.submitting = false; \n return;\n }\n\n const handleCodes = [\n \"AccomodationUnitType.LOSCategories.DefaultAlreadyExists\",\n ];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n const isOverriding = overrides.length !== 0;\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const confirmOverrideNotification = (\n x: AxiosResponse & { handled: string[] }\n ) =>\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n\n const handleSuccess = () => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeLOSCategory.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n this.internalOpen = false;\n this.$emit(\"saved\");\n };\n\n // update \n if (this.internalCategoryId) {\n const request = {\n overrideRules: overrides,\n ...this.model[0],\n };\n\n this.axios\n .put(\n `/AccomodationUnitTypes/${this.unitType?.id}/losCategories/${request.id}`,\n request,\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => handleSuccess())\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => (this.submitting = false));\n }\n // create\n else {\n this.axios\n .post(\n `/AccomodationUnitTypes/${this.unitType?.id}/losCategories`,\n {\n overrideRules: overrides,\n items: this.model,\n },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => handleSuccess())\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n confirmOverrideNotification(x);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => (this.submitting = false));\n }\n }\n\n get isSaveDisabled(){\n return !this.isFormValid || this.submitting;\n }\n\n // validation\n get rules() {\n return {\n required: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n oneOrPositive: (value: number) =>\n value >= 1 || this.$t(\"Validation.MustBeOneOrPositive\"),\n zeroOrPositive: (value: any) =>\n +value >= 0 || this.$t(\"Validation.MustBeZeroOrPositive\"),\n minLowerThanMax: (min: number | null, max: number | null) =>\n min === null ||\n max === null ||\n min <= max ||\n max === 0 || // 0 == infinite\n this.$t(\n \"AccomodationUnitType.LOSCategories.MinStaysGreaterThanMaxStays\"\n ),\n greaterThanMinus100: (value: number | null, priceDifferenceIsAbsolute: boolean | null) =>\n value === null ||\n value === undefined || \n value > -100 ||\n priceDifferenceIsAbsolute ||\n this.$t(\"Validation.MinValue\"),\n };\n }\n\n requiredIfPriceEntered(num: number, val: boolean) {\n if (num && (val === undefined || val === null)) {\n return this.$t(\"Validation.RequiredIfPriceEntered\");\n } else {\n return true;\n }\n }\n\n requiredIfDifferenceTypeEntered(num: number, val: boolean) {\n if (\n val !== undefined &&\n val !== null &&\n (num === null || num === undefined)\n ) {\n return this.$t(\"Validation.Required\");\n } else {\n return true;\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeLOSCategoriesForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeLOSCategoriesForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeLOSCategoriesForm.vue?vue&type=template&id=522bc718&scoped=true&\"\nimport script from \"./AccomodationUnitTypeLOSCategoriesForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeLOSCategoriesForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeLOSCategoriesForm.vue?vue&type=style&index=0&id=522bc718&scoped=true&lang=scss&\"\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 \"522bc718\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCheckbox,VCol,VDivider,VForm,VIcon,VRow,VSelect,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport _ from \"lodash\";\nimport {\n AccomodationUnitTypeLOSCategory,\n AccomodationUnitTypeViewModel,\n} from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport { DataOptions } from \"vuetify\";\nimport NumericInput from \"../misc/NumericInput.vue\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Currency } from \"@/shared/models/currency\";\nimport AccomodationUnitTypeLOSCategoriesForm from \"./AccomodationUnitTypeLOSCategoriesForm.vue\";\n\n@Component({\n components: {\n NumericInput,\n RightDrawer,\n SortableHeadersTable,\n AccomodationUnitTypeLOSCategoriesForm,\n },\n})\nexport default class AccomodationUnitTypeLOSCategories extends Vue {\n @Prop() model?: AccomodationUnitTypeViewModel;\n\n loading = true;\n settingsOpen = false;\n losCategories: AccomodationUnitTypeLOSCategory[] = [];\n\n formOpen = false;\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n // load existing categories and global templates\n load() {\n if (!this.model?.id) return;\n this.loading = true;\n this.axios\n .get>(\n `/AccomodationUnitTypes/${this.model.id}/losCategories`\n )\n .then((res) => {\n this.losCategories = res.data.result;\n })\n .finally(() => (this.loading = false));\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n refresh() {\n this.debouncedLoad();\n this.$emit('saved');\n }\n\n headers: SortableTableHeader[] = [];\n\n setupHeaders() {\n this.headers = [\n {\n text: \"AccomodationUnitType.LOSCategories.MinStay\",\n value: \"minStay\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"AccomodationUnitType.LOSCategories.MaxStay\",\n value: \"maxStay\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ...(this.tenantUsesInputPrice\n ? [\n {\n text: \"OB.LOS.Category.InputPriceDifference\",\n value: \"inputPriceDifference\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : []),\n {\n text: \"OB.LOS.Category.OutputPriceDifference\",\n value: \"outputPriceDifference\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"AccomodationUnitType.LOSCategories.IsDefault\",\n value: \"isDefault\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"minStay\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n async created() {\n this.setupHeaders();\n }\n\n mounted() {\n this.load();\n }\n\n add() {\n this.formOpen = true;\n }\n\n updateCategoryId: number | null = null;\n update(category: AccomodationUnitTypeLOSCategory) {\n this.updateCategoryId = category.id;\n this.formOpen = true;\n }\n\n rowDoubleClick(\n e: MouseEvent,\n { item }: { item: AccomodationUnitTypeLOSCategory }\n ) {\n this.update(item);\n }\n\n remove(category: AccomodationUnitTypeLOSCategory) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"UnitTypeLOSCategory.DeleteConfirmation\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(category.id);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteConfirmed(id: number, overrides: string[] = []) {\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n this.loading = true;\n\n Vue.axios\n .delete(`/AccomodationUnitTypes/${this.model?.id}/losCategories/${id}`, {\n data: { overrideRules: overrides },\n adapter: isOverriding ? undefined : adapter,\n })\n .then(() => {\n const toRemove = this.losCategories.find((x) => x.id === id);\n if (toRemove) {\n this.losCategories = this.losCategories.filter((x) => x.id !== id);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"UnitTypeLOSCategory.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n }\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.deleteConfirmed(id, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => (this.loading = false));\n }\n\n inputPriceDifferenceData(item: AccomodationUnitTypeLOSCategory) {\n if (\n item.inputPriceDifference &&\n item.inputPriceDifferenceIsAbsolute !== null\n ) {\n return (\n item.inputPriceDifference.toFixed(2) +\n (!item.inputPriceDifferenceIsAbsolute\n ? \"%\"\n : \" \" + this.workingCurrency?.isoCode)\n );\n }\n }\n \n outputPriceDifferenceData(item: AccomodationUnitTypeLOSCategory) {\n if (\n item.outputPriceDifference &&\n item.outputPriceDifferenceIsAbsolute !== null\n ) {\n return (\n item.outputPriceDifference?.toFixed(2) +\n (!item.outputPriceDifferenceIsAbsolute\n ? \"%\"\n : \" \" + this.workingCurrency?.isoCode)\n );\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeLOSCategoriesTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeLOSCategoriesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeLOSCategoriesTable.vue?vue&type=template&id=59aad598&scoped=true&\"\nimport script from \"./AccomodationUnitTypeLOSCategoriesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeLOSCategoriesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeLOSCategoriesTable.vue?vue&type=style&index=0&id=59aad598&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 \"59aad598\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VCheckbox,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"min-height\":\"605\",\"max-height\":\"1000\",\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card',{attrs:{\"min-height\":\"605\",\"max-height\":\"1000\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"ExportOfficialRates.Settings\"))+\" \")]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('ExportOfficialRates.ChooseYear') + '*',\"items\":_vm.years,\"calculate-widths\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"rules\":[_vm.rules.required]},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedYear),callback:function ($$v) {_vm.selectedYear=$$v},expression:\"selectedYear\"}})],1),(!_vm.tenantOBRsUseRelativePricing)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Rate plans') + '*',\"items\":_vm.ratePlansForExport,\"item-text\":function (x) { return _vm.$t(x.name); },\"item-value\":function (x) { return x.id; },\"multiple\":\"\",\"calculate-widths\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"rules\":[].concat( _vm.rules.requiredArray )},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedRatePlans),callback:function ($$v) {_vm.selectedRatePlans=$$v},expression:\"selectedRatePlans\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('OfficialRateExport.ValidFrom') + '*',\"rules\":[_vm.rules.required],\"editable\":true,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.validFrom),callback:function ($$v) {_vm.validFrom=$$v},expression:\"validFrom\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.FirstLanguagePicker') + '*',\"items\":_vm.supportedLanguages,\"item-value\":function (x) { return x.cultureCode; },\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required]},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.languageChanged(true, $event)}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(_vm.$t(item.cultureCode)))])])]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(_vm.$t(item.cultureCode)))])])]}}]),model:{value:(_vm.firstLanguageCultureCode),callback:function ($$v) {_vm.firstLanguageCultureCode=$$v},expression:\"firstLanguageCultureCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.SecondLanguagePicker') + '*',\"items\":_vm.supportedLanguages,\"item-value\":function (x) { return x.cultureCode; },\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required]},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.languageChanged(false, $event)}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(_vm.$t(item.cultureCode)))])])]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('img',{attrs:{\"src\":_vm.imgSrc(item.cultureCode),\"width\":\"32\",\"height\":\"32\",\"alt\":\"flag\"}}),_c('div',{staticClass:\"pa-2\"},[_vm._v(_vm._s(_vm.$t(item.cultureCode)))])])]}}]),model:{value:(_vm.secondLanguageCultureCode),callback:function ($$v) {_vm.secondLanguageCultureCode=$$v},expression:\"secondLanguageCultureCode\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('RichTextEditor',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.FirstSpecialNote'),\"editorToolbar\":_vm.editorToolbar},model:{value:(_vm.firstLanguageSpecialNote),callback:function ($$v) {_vm.firstLanguageSpecialNote=$$v},expression:\"firstLanguageSpecialNote\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('RichTextEditor',{attrs:{\"label\":_vm.$t('Reports.OfficialRate.SecondSpecialNote'),\"editorToolbar\":_vm.editorToolbar},model:{value:(_vm.secondLanguageSpecialNote),callback:function ($$v) {_vm.secondLanguageSpecialNote=$$v},expression:\"secondLanguageSpecialNote\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('Reports.OfficialRate.SaveSpecialNote')},model:{value:(_vm.saveSpecialNotes),callback:function ($$v) {_vm.saveSpecialNotes=$$v},expression:\"saveSpecialNotes\"}}),_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('Reports.OfficialRate.SeparateBySection')},model:{value:(_vm.separateBySections),callback:function ($$v) {_vm.separateBySections=$$v},expression:\"separateBySections\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.exportOfficialRates()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-btn',{attrs:{\"loading\":_vm.loading},on:{\"click\":function($event){_vm.internalOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DateTime } from \"luxon\";\nimport _ from \"lodash\";\nimport { RatePlansForOfficialRatesExport } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport { Getter } from \"vuex-class\";\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport { PropertySpecialNotes } from \"@/shared/models/property\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { LanguageView } from \"@/shared/models/languages\";\n\nconst flagImages = require.context(\"@/assets/images/flags/\", false, /\\.png$/);\n\n@Component({\n components: { RichTextEditor, DateField },\n})\nexport default class OfficialRatesExportForGuests extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @Prop() propertyId?: number;\n @Prop() accUnitTypeId?: number;\n\n @Getter(\"language/supportedLanguages\") supportedLanguages?: LanguageView[];\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n loading = false;\n\n selectedYear = DateTime.now().year;\n years = _.range(DateTime.now().year + 4, DateTime.now().year - 1, -1);\n\n ratePlansForExport = [] as RatePlansForOfficialRatesExport[];\n selectedRatePlans = [] as number[];\n\n specialNotes: PropertySpecialNotes[] = [];\n\n firstLanguageCultureCode = \"\";\n secondLanguageCultureCode = \"\";\n\n firstLanguageSpecialNote = \"\";\n secondLanguageSpecialNote = \"\";\n\n validFrom = \"\";\n\n editorToolbar = [\n [{ size: [\"16px\", \"32px\", \"24px\", \"18.7px\", \"14px\", \"12px\"] }],\n [\"bold\", \"italic\", \"underline\"],\n [\n { align: \"\" },\n { align: \"center\" },\n { align: \"right\" },\n { align: \"justify\" },\n ],\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n [{ indent: \"-1\" }, { indent: \"+1\" }],\n [{ color: [] }],\n ];\n\n saveSpecialNotes = true; //true by default\n separateBySections = false;\n\n @Watch(\"internalOpen\")\n onOpenChanged(fresh: boolean) {\n if (fresh) {\n this.loadRatePlans();\n this.loadSpecialNotes();\n }\n this.firstLanguageSpecialNote = \"\";\n this.secondLanguageSpecialNote = \"\";\n this.firstLanguageCultureCode = \"\";\n this.secondLanguageCultureCode = \"\";\n this.validFrom = \"\";\n this.selectedRatePlans = [];\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n loadRatePlans() {\n this.loading = true;\n this.axios\n .get>(\n \"/AccomodationUnitTypes/\" +\n this.accUnitTypeId +\n \"/ratePlansForOfficialRatesExport\"\n )\n .then((res) => {\n this.ratePlansForExport = res.data.result;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n loadSpecialNotes() {\n this.loading = true;\n this.axios\n .get>(\n \"/Properties/\" + this.propertyId + \"/propertySpecialNotes\"\n )\n .then((res) => {\n this.specialNotes = res.data.result;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n imgSrc(lang: string) {\n return flagImages(\"./\" + lang + \".png\");\n }\n\n isFormValid = false;\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n requiredArray: [\n (value: any[]) => value.length > 0 || this.$t(\"Validation.Required\"),\n ],\n };\n }\n\n async exportOfficialRates() {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n const request = {\n accUnitTypeId: this.accUnitTypeId,\n propertyId: this.propertyId,\n ratePlanIds: this.selectedRatePlans.join(\",\"),\n year: this.selectedYear,\n firstLanguageCultureCode: this.firstLanguageCultureCode,\n secondLanguageCultureCode: this.secondLanguageCultureCode,\n firstLanguageSpecialNote: this.firstLanguageSpecialNote,\n secondLanguageSpecialNote: this.secondLanguageSpecialNote,\n saveSpecialNotes: this.saveSpecialNotes,\n validFrom: this.validFrom,\n separateBySections: this.separateBySections,\n };\n this.loading = true;\n await this.axios\n .post(\n \"AccomodationUnitTypes/\" +\n this.accUnitTypeId +\n \"/officialRatesExportForGuests\",\n request,\n {\n responseType: \"blob\",\n }\n )\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? `OfficialRateForGuests.pdf`);\n this.loadSpecialNotes();\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n languageChanged(first: boolean, event: string) {\n const specialNote = this.specialNotes.find((x) => x.cultureCode === event);\n if (specialNote) {\n if (first) {\n this.firstLanguageSpecialNote = specialNote.note;\n } else {\n this.secondLanguageSpecialNote = specialNote.note;\n }\n } else {\n if (first) {\n this.firstLanguageSpecialNote = \"\";\n } else {\n this.secondLanguageSpecialNote = \"\";\n }\n }\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesExportForGuests.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesExportForGuests.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfficialRatesExportForGuests.vue?vue&type=template&id=367c2abc&\"\nimport script from \"./OfficialRatesExportForGuests.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfficialRatesExportForGuests.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VForm,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Model,\n Prop,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Currency } from \"@/shared/models/currency\";\nimport {\n AccomodationUnitTypeViewModel,\n RoomViewModel,\n BedViewModel,\n} from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport MoreLessSelect from \"@/components/misc/MoreLessSelect.vue\";\nimport RatingInput from \"@/components/misc/RatingInput.vue\";\nimport WorkingCurrencyDisplay from \"@/components/misc/WorkingCurrencyDisplay.vue\";\nimport AccomodationUnitTable from \"./AccomodationUnitTable.vue\";\nimport AmenitiesSelection from \"./AmenitiesSelection.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport { RoomType } from \"@/shared/models/roomType\";\nimport { BedType } from \"@/shared/models/bedType\";\nimport PhotoEditor from \"@/components/photo-editor/PhotoEditor.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport AccomodationUnitTypeDescriptions from \"@/components/property/AccomodationUnitTypeDescriptions.vue\";\nimport AccomodationUnitTypeOBCategoriesTable from \"@/components/property/AccomodationUnitTypeOBCategoriesTable.vue\";\nimport AccomodationUnitTypeTranslations from \"@/components/property/AccomodationUnitTypeTranslations.vue\";\nimport AddOnServicesTable from \"./AddOnServicesTable.vue\";\nimport OfficialRatesTable from \"./official-rates/OfficialRatesTable.vue\";\nimport AccomodationUnitTypeRatePlanOverrides from \"./AccomodationUnitTypeRatePlanOverrides.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport _ from \"lodash\";\nimport {\n CategoriesEnum,\n OfficialRatesExportType,\n} from \"@/shared/models/enums.type\";\nimport { DateTime } from \"luxon\";\nimport AccomodationUnitTypeLOSCategoriesTable from \"@/components/property/AccomodationUnitTypeLOSCategoriesTable.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { ApiCredential } from \"@/shared/models/apiCredential\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { DataOptions } from \"vuetify\";\nimport OfficialRatesExportForOwners from \"@/components/property/official-rates/OfficialRatesExportForOwners.vue\";\nimport OfficialRatesExportForGuests from \"./official-rates/OfficialRatesExportForGuests.vue\";\n\n@Component({\n components: {\n MoreLessSelect,\n RatingInput,\n AccomodationUnitTable,\n WorkingCurrencyDisplay,\n AmenitiesSelection,\n PhotoEditor,\n FormDescription,\n AccomodationUnitTypeDescriptions,\n AccomodationUnitTypeOBCategoriesTable,\n AccomodationUnitTypeTranslations,\n AddOnServicesTable,\n OfficialRatesTable,\n AccomodationUnitTypeRatePlanOverrides,\n NumericInputImproved,\n AccomodationUnitTypeLOSCategoriesTable,\n OfficialRatesExportForOwners,\n OfficialRatesExportForGuests,\n },\n})\nexport default class AccomodationUnitTypeForm extends Vue {\n tab = \"basicInfo\";\n\n propertyId?: number;\n accUnitType: AccomodationUnitTypeViewModel =\n new AccomodationUnitTypeViewModel();\n original: AccomodationUnitTypeViewModel = new AccomodationUnitTypeViewModel();\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n\n @Getter(\"appParams/tenantCanEditLOSCategories\")\n tenantCanEditLOSCategories?: boolean;\n @Getter(\"appParams/tenantCanEditPAXCategories\")\n tenantCanEditPAXCategories?: boolean;\n\n @Model() model!: AccomodationUnitTypeViewModel;\n\n @Watch(\"model\", { immediate: true })\n modelChanged() {\n this.accUnitType = { ...this.model };\n this.original = _.cloneDeep(this.accUnitType);\n }\n @Watch(\"accUnitType\", { deep: true })\n accUnitTypeChanged() {\n this.$emit(\"input\", this.accUnitType);\n }\n\n @Watch(\"accUnitType.sortOrder\")\n sortOrderWatch(fresh: number | string) {\n if (fresh === \"\") {\n this.accUnitType.sortOrder = null;\n }\n }\n\n @Watch(\"accUnitType.damageDeposit\")\n depositChanged(fresh: number, old?: number) {\n if (fresh && !old) {\n this.accUnitType.depositCurrencyId = this.workingCurrency?.id;\n }\n }\n\n @Prop({ default: false }) isSubmitting?: boolean;\n\n loading = false;\n isBasicFormValid = false;\n isAmenitiesFormValid = false;\n isLayoutFormValid = false;\n isTranslationsFormValid = false;\n isDescriptionsFormValid = false;\n isPAXCategoriesFormValid = false;\n isPhotosFormValid = false;\n isUnitsFormValid = false;\n isLosCategoriesFormValid = false;\n exportOfficialRatesForOwnerOpen = false;\n exportOfficialRatesForGuestsOpen = false;\n officialRatesExportType = null;\n isLOSCategoriesFormValid = false;\n openApiKeySelection = false;\n selected: ApiCredential[] = [];\n headers = [\n {\n text: \"Name\",\n align: \"start\",\n sortable: false,\n value: \"name\",\n },\n { text: \"Username\", value: \"userTenantUsername\", sortable: false },\n ];\n\n officialRatesYear = DateTime.now().year;\n years = _.range(DateTime.now().year + 4, 2018, -1);\n\n officialRatesExportTypes = [\n {\n value: OfficialRatesExportType.InputPrice,\n text: \"t.OfficialRateExport.InputPrice\",\n },\n {\n value: OfficialRatesExportType.OutputPrice,\n text: \"t.OfficialRateExport.OutputPrice\",\n },\n {\n value: OfficialRatesExportType.InputAndOutputPrice,\n text: \"t.OfficialRateExport.InputAndOutputPrice\",\n },\n ];\n\n get submitDisabled(): boolean {\n return (\n !this.loading &&\n !this.isSubmitting &&\n this.isBasicFormValid &&\n this.isAmenitiesFormValid &&\n this.isLayoutFormValid &&\n this.isTranslationsFormValid &&\n this.isDescriptionsFormValid &&\n this.isPhotosFormValid &&\n this.isUnitsFormValid\n );\n }\n\n @Ref(\"formBasic\") formBasic?: { validate: () => boolean };\n @Ref(\"formAmenities\") formAmenities?: { validate: () => boolean };\n @Ref(\"formLayout\") formLayout?: { validate: () => boolean };\n @Ref(\"formTranslations\") formTranslations?: { validate: () => boolean };\n @Ref(\"formDescriptions\") formDescriptions?: { validate: () => boolean };\n @Ref(\"formPhotos\") formPhotos?: { validate: () => boolean };\n @Ref(\"formUnits\") formUnits?: { validate: () => boolean };\n @Ref(\"formLOSCategories\") formLOSCategories?: { validate: () => boolean };\n @Ref(\"formPAXCategories\") formPAXCategories?: { validate: () => boolean };\n @Ref(\"ratePlans\") ratePlansTab?: AccomodationUnitTypeRatePlanOverrides;\n\n refreshRatePlans() {\n if (this.ratePlansTab) {\n this.ratePlansTab.load();\n }\n }\n\n sanitizeNumberInputValuesOnModel() {\n // if the field is cleared after having a value, the value is \"\" instead of undefined\n // it's because how vue handles v-model.number because of some js particularity\n if (typeof this.accUnitType.squareSize != \"number\") {\n this.accUnitType.squareSize = undefined;\n }\n if (typeof this.accUnitType.maxNumberOfAdults != \"number\") {\n this.accUnitType.maxNumberOfAdults = undefined;\n }\n if (typeof this.accUnitType.basePrice != \"number\") {\n this.accUnitType.basePrice = undefined;\n }\n if (typeof this.accUnitType.damageDeposit != \"number\") {\n this.accUnitType.damageDeposit = undefined;\n }\n\n if (this.accUnitType.rooms) {\n for (const room of this.accUnitType.rooms) {\n if (typeof room.squareSize != \"number\") {\n room.squareSize = undefined;\n }\n }\n }\n }\n\n submit() {\n this.sanitizeNumberInputValuesOnModel();\n // validate\n const basicFormValid = this.formBasic?.validate();\n const basicAmenitiesValid = this.formAmenities?.validate();\n const basicLayoutValid = this.formLayout?.validate();\n const basicTranslationsValid = this.formTranslations?.validate();\n const basicDescriptionsValid = this.formPhotos?.validate();\n const basicPhotosValid = this.formPhotos?.validate();\n const basicUnitsValid = this.formUnits?.validate();\n const basicLOSCategoriesValid = this.formLOSCategories?.validate();\n const basicPAXCategoriesValid = this.formPAXCategories?.validate();\n\n if (\n !basicFormValid ||\n !basicAmenitiesValid ||\n !basicLayoutValid ||\n !basicTranslationsValid ||\n !basicDescriptionsValid ||\n !basicPhotosValid ||\n !basicUnitsValid ||\n (!basicLOSCategoriesValid && this.tenantCanEditLOSCategories) ||\n (!basicPAXCategoriesValid && this.tenantCanEditPAXCategories)\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n //submit\n this.$emit(\"submit\", this.accUnitType);\n }\n\n @Ref(\"translations\") translationsRef?: { add: () => void };\n @Ref(\"descriptions\") descriptionsRef?: { add: () => void };\n @Ref(\"losCategories\") losCategoriesRef?: { add: () => void };\n @Ref(\"paxCategories\") paxCategoriesRef?: { add: () => void };\n @Ref(\"photos\") photosRef?: { add: () => void };\n @Ref(\"addOnServices\") addOnServicesRef?: { add: () => void };\n @Ref(\"units\") unitsRef?: {\n addUnit: (\n propertyAgencyWorkModel: number | null,\n propertyVATCategory: number | null,\n propertyOwnerPriceOffset: number | null,\n propertyAgencyCommissionPercentForPrepayments: number | null,\n propertyOwnerDoesCheckin: boolean | null,\n propertyOwnerDoesCheckout: boolean | null,\n propertyOwnerDoesCleaning: boolean | null,\n propertyCategorizationNumber: string | null,\n propertyCategorizationClass: string | null,\n propertyCategorizationDate: Date | null\n ) => void;\n };\n\n addBtn() {\n switch (this.tab) {\n case \"units\":\n this.unitsRef?.addUnit(\n this.model.propertyAgencyWorkModelId,\n this.model.propertyVATCategoryForPrepaymentsId,\n this.model.propertyOwnerPriceOffset,\n this.model.propertyAgencyCommissionPercentForPrepayments,\n this.model.propertyOwnerDoesCheckin,\n this.model.propertyOwnerDoesCheckout,\n this.model.propertyOwnerDoesCleaning,\n this.model.propertyCategorizationNumber,\n this.model.propertyCategorizationClass,\n this.model.propertyCategorizationDate\n );\n break;\n case \"translations\":\n this.translationsRef?.add();\n break;\n case \"photos\":\n this.photosRef?.add();\n break;\n case \"LOSCategories\":\n this.losCategoriesRef?.add();\n break;\n case \"PAXCategories\":\n this.paxCategoriesRef?.add();\n break;\n }\n }\n\n checkForChanges() {\n return _.isEqual(this.accUnitType, this.original);\n }\n\n resetFormModel() {\n this.original = _.cloneDeep(this.accUnitType);\n }\n\n back() {\n this.$router.back();\n }\n\n rules = {};\n\n async created() {\n this.rules = {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n requiredAllowed0: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n name: (value: string) =>\n !value ||\n value.length <= 50 ||\n this.$t(\"Validation.MaxLength\", { count: 50 }),\n wholeNumbersOnly: (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n noNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n maxValue: (value: number, max: number) =>\n value == null ||\n value == undefined ||\n value <= max ||\n this.$t(\"Validation.MaxValue\", { max: max }),\n inRange: (\n value: number | string, // vue... v-model.number when the field is empty returns and empty string...\n min: number,\n max: number,\n emptyAllowed: boolean\n ) =>\n ((value == null || value == undefined || value === \"\") &&\n emptyAllowed) ||\n (value >= min && value <= max) ||\n this.$t(\"Validation.MustBeInRange{min}{max}\", { min: min, max: max }),\n };\n\n const promises = [];\n\n if ((this.bedTypes?.length ?? 0) === 0 && this.refreshBedTypes) {\n promises.push(this.refreshBedTypes());\n }\n if ((this.roomTypes?.length ?? 0) === 0 && this.refreshRoomTypes) {\n promises.push(this.refreshRoomTypes());\n }\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n\n await Promise.all(promises);\n }\n\n async mounted() {\n await this.load();\n }\n\n get showDepositCurrency() {\n return (\n !!this.accUnitType.damageDeposit || this.accUnitType.damageDeposit === 0\n );\n }\n\n @Action(\"codebooks/refreshBedTypes\") refreshBedTypes?: () => Promise;\n @Getter(\"codebooks/bedTypes\") bedTypes?: BedType[];\n\n @Action(\"codebooks/refreshRoomTypes\") refreshRoomTypes?: () => Promise;\n @Getter(\"codebooks/roomTypes\") roomTypes?: RoomType[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n @Getter(\"language/language\") language?: string;\n @Getter(\"appParams/tenantUsesOfficialRates\")\n tenantUsesOfficialRates?: boolean;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get category() {\n if (this.accUnitType.categoryId === CategoriesEnum.Empty) {\n return 0;\n }\n return this.accUnitType.categoryId + 1;\n }\n set category(val: number) {\n if (\n val === 0 ||\n (val === 1 && this.accUnitType.categoryId === CategoriesEnum.Star2)\n ) {\n this.accUnitType.categoryId = CategoriesEnum.Empty;\n } else {\n this.accUnitType.categoryId = val - 1;\n if (val === 1) {\n this.$nextTick(() => {\n this.accUnitType.categoryId = CategoriesEnum.Star2;\n });\n }\n }\n }\n \n handleMouseClick() {\n if (this.accUnitType.maxNumberOfAdults === undefined) {\n this.accUnitType.maxNumberOfAdults = this.accUnitType.baseBedsCapacity + this.accUnitType.extraBedsCapacity;\n }\n }\n\n get sortedRoomTypes() {\n return (\n this.roomTypes?.map((x) => {\n return {\n value: x.id,\n name: this.$t(x.textResourceKey),\n };\n }) ?? []\n ).sort((a, b) => (a.name > b.name ? 1 : -1));\n }\n\n addRoom() {\n this.accUnitType.rooms.push(new RoomViewModel());\n }\n\n addBed(room: RoomViewModel) {\n room.beds.push(new BedViewModel());\n }\n\n async copyiCalendarLink() {\n if (typeof ClipboardItem && navigator.clipboard.write) {\n // Safari locks down the clipboard API to only work when triggered by a direct user interaction.\n // We can't use it async in a promise, but we can wrap the promise in a ClipboardItem, and give that to the clipboard API.\n // reference: https://developer.apple.com/forums/thread/691873\n navigator.clipboard.write([\n new ClipboardItem({\n \"text/plain\": this.fetchICalLink().then(\n (text) => new Blob([text], { type: \"text/plain\" })\n ),\n }),\n ]);\n } else {\n // Firefox has support for ClipboardItem and navigator.clipboard.write, but those are behind `dom.events.asyncClipboard.clipboardItem` preference.\n // On the other hand... Firefox can do this the \"standard\" way.\n navigator.clipboard.writeText(await this.fetchICalLink());\n }\n\n this.openApiKeySelection = false;\n this.selected = [];\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"LinkCopiedToClipboard\"),\n timeout: 5000,\n });\n }\n\n async fetchICalLink() {\n let result = \"\";\n\n await this.axios\n .get(\n \"accomodationUnitTypes/GetICalLink?id=\" +\n this.model.id +\n \"&key=\" +\n this.selected[0].id,\n {}\n )\n .then((res) => {\n result = res.data;\n });\n\n return result;\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n async load(): Promise> {\n this.loading = true;\n\n return this.axios\n .get>(\"/ApiCredentials\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list.result = res.data.result.filter((x) =>\n x.name.includes(\"iCal\")\n );\n this.list.count = this.list.result.length;\n\n return this.list;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"name\"],\n sortDesc: [false],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n get queryParams() {\n return {\n $skip: 0,\n $top: 100,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n };\n }\n\n async checkApiKeys() {\n if (!this.list.count) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"ApiKey.iCal.AtLease1KeyRequired\"),\n timeout: 10000,\n });\n } else if (this.list.count && this.list.count > 1) {\n this.openApiKeySelection = true;\n } else {\n this.selected[0] = this.list.result[0];\n this.copyiCalendarLink();\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitTypeForm.vue?vue&type=template&id=5aa955d8&scoped=true&\"\nimport script from \"./AccomodationUnitTypeForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitTypeForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitTypeForm.vue?vue&type=style&index=0&id=5aa955d8&scoped=true&lang=scss&\"\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 \"5aa955d8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSlideXTransition } from 'vuetify/lib/components/transitions';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDataTable,VDialog,VDivider,VForm,VIcon,VProgressLinear,VRow,VSelect,VSheet,VSlideXTransition,VSpacer,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { NavigationGuardNext, Route } from \"vue-router\";\nimport AccomodationUnitTypeForm from \"@/components/property/AccomodationUnitTypeForm.vue\";\nimport { AccomodationUnitTypeViewModel } from \"@/shared/models/accomodationUnitTypeViewModel\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport { Action, Getter } from \"vuex-class\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport { Notification } from \"@/store/modules/notifications\";\n\n@Component({\n components: {\n AccomodationUnitTypeForm,\n },\n mixins: [GlobalFilterSensitiveMixin],\n beforeRouteEnter(to: Route, from: Route, next: NavigationGuardNext) {\n const propertyId = Number.parseInt(to.params.propertyId);\n const propertyCategoryId = Number.parseInt(to.params.propertyCategoryId);\n const unitTypeId = to.params.unitTypeId;\n if (to.name === \"New unit type\") {\n next((vm: Vue) => {\n (vm as AccomodationUnitType).model =\n new AccomodationUnitTypeViewModel();\n (vm as AccomodationUnitType).model.propertyId = propertyId;\n (vm as AccomodationUnitType).model.categoryId = propertyCategoryId;\n });\n } else {\n Vue.axios\n .get(\n \"accomodationUnitTypes/GetForEdit/\" + unitTypeId\n )\n .then((res) => {\n next((vm: Vue) => {\n const that = vm as AccomodationUnitType;\n that.model = Object.assign(\n new AccomodationUnitTypeViewModel(),\n res.data\n );\n that.breadcrumbs = [\n that.$t(\"Edit property\").toString(),\n res.data.propertyName,\n res.data.name,\n ];\n that.setCustomBreadcrumbs &&\n that.setCustomBreadcrumbs(that.breadcrumbs);\n });\n })\n .catch(() => {\n next(() => next({ name: \"Properties and units\", replace: true }));\n });\n }\n },\n beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n const self = this as any;\n if (to.name === \"Edit unit type\") {\n next();\n } else {\n const noChanges = self.accomodationUnitTypeForm.checkForChanges();\n if (noChanges) {\n next();\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\n \"Changes pending. Are you sure you want to close the form?\"\n ),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n next();\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n next(false);\n return true;\n },\n },\n ],\n timeout: 5000,\n });\n }\n }\n },\n})\nexport default class AccomodationUnitType extends Vue {\n model = new AccomodationUnitTypeViewModel();\n\n breadcrumbs: string[] = [];\n\n @Ref(\"accomodationUnitTypeForm\") accomodationUnitTypeForm?: {\n resetFormModel: () => void;\n };\n\n @Action(\"setCustomBreadcrumbs\") setCustomBreadcrumbs?: (\n payload: string[] | undefined\n ) => Promise;\n @Getter(\"customBreadcrumbs\") customBreadcrumbs?: string[];\n\n async destroyed() {\n if (this.customBreadcrumbs == this.breadcrumbs) {\n this.setCustomBreadcrumbs && this.setCustomBreadcrumbs(undefined);\n }\n }\n\n isSubmitting = false;\n submit(model: AccomodationUnitTypeViewModel, overrides: string[] = []) {\n this.isSubmitting = true;\n\n if (!model.id) {\n this.axios\n .post(\"/AccomodationUnitTypes\", model)\n .then((res) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnitType.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.$router.replace({\n name: \"Edit unit type\",\n params: {\n propertyId: model.propertyId.toString() || \"0\",\n unitTypeId: res.data.toString() || \"0\",\n },\n });\n })\n .then(() => this.accomodationUnitTypeForm?.resetFormModel())\n .finally(() => (this.isSubmitting = false));\n } else {\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n this.axios\n .put(\n \"/AccomodationUnitTypes\",\n { ...model, overrideRules: overrides },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnitType.SaveSuccess\"),\n timeout: 5000,\n });\n\n this.axios\n .get(\n \"accomodationUnitTypes/GetForEdit/\" + model.id\n )\n .then((res) => {\n this.model = { ...res.data };\n })\n .finally(() => (this.isSubmitting = false));\n })\n .then(() => this.accomodationUnitTypeForm?.resetFormModel())\n .catch((x) => {\n this.isSubmitting = false;\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(model, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n });\n }\n }\n\n @Watch(\"sensitiveKey\")\n tenantChanged(fresh: string, old: string) {\n const freshTenant = fresh.split(\"_\")[0];\n const oldTenant = old.split(\"_\")[0];\n\n if (freshTenant != oldTenant) {\n this.$router.push(\"Properties and units\");\n }\n }\n async serviceAdded() {\n await Vue.axios\n .get(\"accomodationUnitTypes/GetForEdit/\" + this.model.id)\n .then((res) => {\n this.model = res.data;\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"AccomodationUnitType.AddOnService.AddSuccess\"),\n timeout: 5000,\n });\n });\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitType.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitType.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccomodationUnitType.vue?vue&type=template&id=58c4b3f5&scoped=true&\"\nimport script from \"./AccomodationUnitType.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccomodationUnitType.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccomodationUnitType.vue?vue&type=style&index=0&id=58c4b3f5&scoped=true&lang=scss&\"\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 \"58c4b3f5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RatePlansTiles',{key:_vm.sensitiveKey,staticClass:\"rate-plans\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-fade-transition',[(_vm.deleting)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-select',{attrs:{\"items\":_vm.filterOptions,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.name); }},model:{value:(_vm.filters.ratePlanType),callback:function ($$v) {_vm.$set(_vm.filters, \"ratePlanType\", $$v)},expression:\"filters.ratePlanType\"}})],1)],1),_c('v-row',[(_vm.loading)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"article, actions\",\"elevation\":\"2\"}})],1):_vm._e(),_vm._l((_vm.ratePlans),function(ratePlan){return _c('v-col',{key:ratePlan.id,staticClass:\"d-flex\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\"}},[_c('v-card-title',[_vm._v(_vm._s(ratePlan.name)+\" (\"+_vm._s(ratePlan.currencyCode)+\")\")]),_c('v-card-subtitle',[_c('div',[_vm._v(\" \"+_vm._s(ratePlan.isDerived ? _vm.$t(\"RatePlan.Tiles.DerivedFrom {value}\", { value: ratePlan.parentRatePlanName, }) : _vm.$t(\"RatePlan.Tiles.NotDerived\"))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getStatusText(ratePlan))+\" \")])]),_c('v-card-text',{staticClass:\"text\"},[_c('div',[_vm._v(\" \"+_vm._s(ratePlan.isNonRefundable ? _vm.$t(\"RatePlan.Tiles.NonRefundable\") : _vm.$t(\"RatePlan.Tiles.Refundable\"))+\" \")]),(ratePlan.numberOfCancelationPolicies)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc( \"RatePlan.Tiles.NumberOfCancelationPolicies {count}\", ratePlan.numberOfCancelationPolicies, { count: ratePlan.numberOfCancelationPolicies } ))+\" \")]):_vm._e(),(ratePlan.numberOfPrepaymentPolicies)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc( \"RatePlan.Tiles.NumberOfPrepaymentPolicies {count}\", ratePlan.numberOfPrepaymentPolicies, { counts: ratePlan.numberOfPrepaymentPolicies } ))+\" \")]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.getIncludesText(ratePlan)))]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc( \"RatePlan.Tiles.MinimumStay {value}\", ratePlan.minimumStay > 1 ? ratePlan.minimumStay : 1, { value: ratePlan.minimumStay > 1 ? ratePlan.minimumStay : 1, } ))+\" \")]),(ratePlan.maximumStay)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc( \"RatePlan.Tiles.MaximumStay {value}\", ratePlan.maximumStay, { value: ratePlan.maximumStay } ))+\" \")]):_vm._e(),(ratePlan.minBookableBeforeCheckin)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc( \"RatePlan.Tiles.MinBookableBeforeCheckin {value}\", ratePlan.minBookableBeforeCheckin, { value: ratePlan.minBookableBeforeCheckin } ))+\" \")]):_vm._e(),(ratePlan.maxBookableBeforeCheckin)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$tc( \"RatePlan.Tiles.MaxBookableBeforeCheckin {value}\", ratePlan.maxBookableBeforeCheckin, { value: ratePlan.maxBookableBeforeCheckin } ))+\" \")]):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"RatePlan.Tiles.AppliedTo{accUnits}AccomodationUnitTypesInProperties{properties}\", { accUnits: ratePlan.numberOfAccomodationUnitTypesRatePlanIsAppliedTo, properties: ratePlan.numberOfPropertiesPlanIsAppliedTo, } ))+\" \")]),(ratePlan.appliesToAllAccomodationUnitTypes)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.Tiles.AppliesToNewAccomodationUnitTypes\"))+\" \")]):_vm._e(),(ratePlan.otas.length > 0)?_c('div',[_vm._v(\" \"+_vm._s(ratePlan.otas.length == 1 ? _vm.$t(\"RatePlan.Tiles.AppliesToOta {value}\", { value: ratePlan.otas[0], }) : _vm.$t(\"RatePlan.Tiles.AppliesTo{count}Otas\", { count: ratePlan.otas.length, }))+\" \")]):_vm._e(),(ratePlan.isAvailableViaBookingEngine)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( \"RatePlan.IsAvailableViaBookingEngineWithPriceDifference{value}\", { value: ratePlan.bookingEnginePriceOffset ? ratePlan.bookingEnginePriceOffset : 0, } ))+\" \")]):_vm._e()]),_c('v-spacer'),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.editRatePlan(ratePlan.id)}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),(!ratePlan.isDerived && !ratePlan.isSpecialOffer)?_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.createDerivedRatePlan(ratePlan)}}},[_vm._v(_vm._s(_vm.$t(\"CreateDerived\")))]):_vm._e(),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteRatePlan(ratePlan)}}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)}),((!_vm.ratePlans || _vm.ratePlans.length == 0) && !_vm.loading)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fas fa-hand-holding-usd\"}})],1):_vm._e()],2)],1),_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addRatePlan()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('RatePlanForm',{attrs:{\"open\":_vm.formOpen,\"ratePlanId\":_vm.formRatePlanId,\"parentRatePlanId\":_vm.formParentRatePlanId,\"callback\":_vm.load},on:{\"update:open\":function($event){_vm.formOpen=$event},\"update:parentRatePlanId\":function($event){_vm.formParentRatePlanId=$event},\"update:parent-rate-plan-id\":function($event){_vm.formParentRatePlanId=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",staticClass:\"drawer\",attrs:{\"open\":_vm.open,\"saving\":_vm.saving,\"initial\":_vm.initialRatePlan,\"watched\":_vm.ratePlan,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.submitConfirm},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"rate-plan-form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.submitDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.submitConfirm}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[(!!_vm.ratePlan.id)?_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.Editing\") + \" - \" + _vm.initialRatePlan.name + \" (ID: \" + _vm.initialRatePlan.id + \")\")+\" \")]):_vm._e(),(!_vm.ratePlan.id && _vm.ratePlan.isDerived)?_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.NewDerived\"))+\" \"+_vm._s(_vm.parentRatePlanName)+\" \")]):(!_vm.ratePlan.id)?_c('span',{staticClass:\"form-title\"},[_vm._v(_vm._s(_vm.$t(\"RatePlan.New\")))]):_vm._e()]),_c('v-fade-transition',[(_vm.savingPhoto)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading || _vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.submitConfirm.apply(null, arguments)}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Basic information\")))]),(_vm.ratePlan.isSpecialOrPackageOffer)?_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Special offer\"))+\" \")]):_vm._e(),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"RatePlan.Translations\")))]),_c('v-tab',[_c('v-badge',{attrs:{\"content\":_vm.selectedUnitTypesCount,\"value\":_vm.selectedUnitTypesCount}},[_vm._v(_vm._s(_vm.$t(\"RatePlan.AccomodationUnitTypes\"))+\" \")])],1),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"PromoCode\")))]),(_vm.tenantOBRsUseRelativePricing)?_c('v-tab',[_c('v-badge',{attrs:{\"content\":_vm.ratePlanAccUnitTypesWithObRulesCount,\"value\":_vm.ratePlanAccUnitTypesWithObRulesCount}},[_vm._v(_vm._s(_vm.$t(\"Occupancy based rules\"))+\" \")])],1):_vm._e()],1),_c('v-tabs-items',{staticClass:\"tab-items\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{staticClass:\"tab-item\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('RatePlan.Name') + '*',\"counter\":\"50\",\"rules\":_vm.rules.Required.concat( [_vm.maxLength(50)])},model:{value:(_vm.ratePlan.name),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"name\", $$v)},expression:\"ratePlan.name\"}})],1)],1),(_vm.ratePlan.isDerived)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('RatePlan.ParentRatePlan') +\n (_vm.ratePlan.isDerived ? '*' : ''),\"items\":_vm.nonDerivedRatePlans,\"item-value\":\"id\",\"item-text\":\"name\",\"readonly\":\"\"},model:{value:(_vm.ratePlan.parentRatePlanId),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"parentRatePlanId\", $$v)},expression:\"ratePlan.parentRatePlanId\"}})],1)],1):_vm._e(),(_vm.ratePlan.isDerived)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('RatePlan.PriceDifference'),\"items\":_vm.priceDifferenceItems,\"item-value\":\"value\"},on:{\"input\":function($event){_vm.ratePlan.changedFields.priceDiffType = true}},model:{value:(_vm.ratePlan.priceDifferenceIsAbsolute),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"priceDifferenceIsAbsolute\", $$v)},expression:\"ratePlan.priceDifferenceIsAbsolute\"}})],1),(\n _vm.ratePlan.priceDifferenceIsAbsolute != undefined &&\n _vm.ratePlan.priceDifferenceIsAbsolute != null\n )?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('RatePlan.PriceDifference'),\"validateInput\":true,\"rules\":[\n _vm.rules.GreaterThanMinus100(\n _vm.ratePlan.priceDifference,\n _vm.ratePlan.priceDifferenceIsAbsolute\n ) ]},on:{\"input\":function($event){return _vm.priceDiffChanged()}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(!_vm.ratePlan.priceDifferenceIsAbsolute)?_c('span',[_vm._v(\"%\")]):_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.ratePlan.currencyId}})]},proxy:true}],null,false,1132269043),model:{value:(_vm.ratePlan.priceDifference),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"priceDifference\", $$v)},expression:\"ratePlan.priceDifference\"}})],1):_vm._e()],1):_vm._e(),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\"}},[_c('form-description',{staticClass:\"ma-0\"},[_vm._v(_vm._s(_vm.$t(\"RatePlan.AppliesToAllAccomodationUnitTypes.Description\")))])],1)],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.IsSpecialOrPackageOffer'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.ratePlan.isSpecialOrPackageOffer),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"isSpecialOrPackageOffer\", $$v)},expression:\"ratePlan.isSpecialOrPackageOffer\"}})],1)],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.AppliesToAllAccomodationUnitTypes'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.canEditAppliesToAllAUT},model:{value:(_vm.ratePlan.appliesToAllAccomodationUnitTypes),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"appliesToAllAccomodationUnitTypes\", $$v)},expression:\"ratePlan.appliesToAllAccomodationUnitTypes\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.IncludesBreakfast'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.ratePlan.includesBreakfast),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"includesBreakfast\", $$v)},expression:\"ratePlan.includesBreakfast\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.IncludesLunch'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.ratePlan.includesLunch),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"includesLunch\", $$v)},expression:\"ratePlan.includesLunch\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.IncludesDinner'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.ratePlan.includesDinner),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"includesDinner\", $$v)},expression:\"ratePlan.includesDinner\"}})],1)],1),(_vm.tenantUsesServiceType)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('RatePlan.ServiceType') + '*',\"items\":_vm.serviceTypes,\"item-value\":\"id\",\"item-text\":\"name\",\"rules\":[].concat( _vm.rules.Required )},model:{value:(_vm.ratePlan.defaultServiceTypeId),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"defaultServiceTypeId\", $$v)},expression:\"ratePlan.defaultServiceTypeId\"}})],1)],1):_vm._e(),(!_vm.tenantCanEditLOSCategories)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"suffix\":_vm.$t('day(s)'),\"label\":_vm.$t('RatePlan.MinimumStay'),\"validateInput\":true,\"rules\":[_vm.rules.OneOrGreater, _vm.rules.NoNegativeNumbers]},on:{\"input\":function($event){return _vm.minStayChanged()}},model:{value:(_vm.ratePlan.minimumStay),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"minimumStay\", $$v)},expression:\"ratePlan.minimumStay\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"suffix\":_vm.$t('day(s)'),\"label\":_vm.$t('RatePlan.MaximumStay'),\"validateInput\":true,\"rules\":[_vm.rules.NoNegativeNumbers]},on:{\"input\":function($event){return _vm.maxStayChanged()}},model:{value:(_vm.ratePlan.maximumStay),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"maximumStay\", $$v)},expression:\"ratePlan.maximumStay\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"suffix\":_vm.$t('day(s)'),\"label\":_vm.$t('RatePlan.MinBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[_vm.rules.NoNegativeNumbers]},on:{\"input\":function($event){return _vm.minBookableChanged()}},model:{value:(_vm.ratePlan.minBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"minBookableBeforeCheckin\", $$v)},expression:\"ratePlan.minBookableBeforeCheckin\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"suffix\":_vm.$t('day(s)'),\"label\":_vm.$t('RatePlan.MaxBookableBeforeCheckin'),\"validateInput\":true,\"rules\":[_vm.rules.NoNegativeNumbers]},on:{\"input\":function($event){return _vm.maxBookableChanged()}},model:{value:(_vm.ratePlan.maxBookableBeforeCheckin),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"maxBookableBeforeCheckin\", $$v)},expression:\"ratePlan.maxBookableBeforeCheckin\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.currenciesForSelect,\"item-text\":function (x) { return x.isoCode; },\"item-value\":\"id\",\"label\":_vm.$t('Currency') + '*',\"rules\":[].concat( _vm.rules.Required ),\"disabled\":_vm.ratePlan.id !== undefined && _vm.ratePlan.id !== 0},model:{value:(_vm.ratePlan.currencyId),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"currencyId\", $$v)},expression:\"ratePlan.currencyId\"}})],1),(_vm.tenantUsesInstalments)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"decimalPlaces\":0,\"outlined\":false,\"label\":_vm.$t('RatePlan.MaxNumOfInstalments') + '*',\"validateInput\":true,\"rules\":[_vm.rules.NoNegativeNumbers ].concat( _vm.rules.Required)},model:{value:(_vm.ratePlan.maxNumOfInstalments),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"maxNumOfInstalments\", $$v)},expression:\"ratePlan.maxNumOfInstalments\"}})],1):_vm._e()],1),(_vm.tenantUsesBookingFees)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('RatePlan.AccomodationBookingFee'),\"suffix\":'%',\"validateInput\":true},model:{value:(_vm.ratePlan.accomodationBookingFee),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"accomodationBookingFee\", $$v)},expression:\"ratePlan.accomodationBookingFee\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"outlined\":false,\"label\":_vm.$t('RatePlan.AddOnServicesBookingFee'),\"suffix\":'%',\"validateInput\":true},model:{value:(_vm.ratePlan.addOnServicesBookingFee),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"addOnServicesBookingFee\", $$v)},expression:\"ratePlan.addOnServicesBookingFee\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-checkbox',{staticClass:\"checkbox\",attrs:{\"disabled\":\"\",\"label\":_vm.$t('RatePlan.MergeAllBookingFeesIntoSingleItem'),\"hide-details\":\"\"},model:{value:(_vm.ratePlan.mergeAllBookingFeesIntoSingleItem),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"mergeAllBookingFeesIntoSingleItem\", $$v)},expression:\"ratePlan.mergeAllBookingFeesIntoSingleItem\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"menu-props\":{\n 'max-width': 800,\n 'content-class': 'selectRatePlansCancelPolicies',\n },\"label\":_vm.$t('RatePlan.RatePlansCancelPolicies') + '*',\"items\":_vm.cancelationPolicies,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\",\"chips\":\"\",\"rules\":[].concat( _vm.rules.RequiredArray )},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])])]}}]),model:{value:(_vm.ratePlan.ratePlansCancelPoliciesIds),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"ratePlansCancelPoliciesIds\", $$v)},expression:\"ratePlan.ratePlansCancelPoliciesIds\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"menu-props\":{\n 'max-width': 800,\n 'content-class': 'selectRatePlansPrepaymentPolicies',\n },\"label\":_vm.$t('RatePlan.RatePlansPrepaymentPolicies'),\"items\":_vm.prepaymentPolicies,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-chip',{staticClass:\"mt-2 mb-1 text-overflow\"},[_c('span',{staticClass:\"text-overflow\"},[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])])]}}]),model:{value:(_vm.ratePlan.ratePlansPrepaymentPoliciesIds),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"ratePlansPrepaymentPoliciesIds\", $$v)},expression:\"ratePlan.ratePlansPrepaymentPoliciesIds\"}})],1)],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-checkbox',{staticClass:\"checkbox\",attrs:{\"label\":_vm.$t('RatePlan.BookingEngine'),\"hide-details\":\"\"},model:{value:(_vm.ratePlan.isAvailableViaBookingEngine),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"isAvailableViaBookingEngine\", $$v)},expression:\"ratePlan.isAvailableViaBookingEngine\"}})],1),(_vm.ratePlan.isAvailableViaBookingEngine)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('RatePlan.Otas.PriceDifference'),\"suffix\":'%',\"validateInput\":true,\"rules\":[\n _vm.rules.GreaterThanMinus100(\n _vm.ratePlan.bookingEnginePriceOffset,\n false\n ) ],\"disabled\":!_vm.ratePlan.isAvailableViaBookingEngine},model:{value:(_vm.ratePlan.bookingEnginePriceOffset),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"bookingEnginePriceOffset\", $$v)},expression:\"ratePlan.bookingEnginePriceOffset\"}})],1):_vm._e(),(_vm.ratePlan.isAvailableViaBookingEngine)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\",\"offset-md\":\"1\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.AlwaysShowOnBoookingEngine'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.ratePlan.alwaysShowOnBoookingEngine),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"alwaysShowOnBoookingEngine\", $$v)},expression:\"ratePlan.alwaysShowOnBoookingEngine\"}})],1):_vm._e()],1)],1),(_vm.ratePlan.isSpecialOrPackageOffer)?_c('v-tab-item',{staticClass:\"tab-item\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"clearable\":true,\"label\":_vm.$t('RatePlan.BookableFrom'),\"outlined\":false,\"dense\":\"\",\"rules\":[].concat( _vm.rules.FromDateBeforeUntilDate(_vm.ratePlan.bookableFrom, _vm.ratePlan.bookableUntil) )},model:{value:(_vm.ratePlan.bookableFrom),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"bookableFrom\", $$v)},expression:\"ratePlan.bookableFrom\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"clearable\":true,\"label\":_vm.$t('RatePlan.BookableUntil'),\"outlined\":false,\"dense\":\"\"},model:{value:(_vm.ratePlan.bookableUntil),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"bookableUntil\", $$v)},expression:\"ratePlan.bookableUntil\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"clearable\":true,\"label\":_vm.$t('RatePlan.ArrivalDateFrom'),\"outlined\":false,\"dense\":\"\",\"rules\":[].concat( _vm.rules.FromDateBeforeUntilDate(_vm.ratePlan.arrivalDateFrom, _vm.ratePlan.arrivalDateUntil) )},model:{value:(_vm.ratePlan.arrivalDateFrom),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"arrivalDateFrom\", $$v)},expression:\"ratePlan.arrivalDateFrom\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('DateField',{attrs:{\"clearable\":true,\"label\":_vm.$t('RatePlan.ArrivalDateUntil'),\"outlined\":false,\"dense\":\"\"},model:{value:(_vm.ratePlan.arrivalDateUntil),callback:function ($$v) {_vm.$set(_vm.ratePlan, \"arrivalDateUntil\", $$v)},expression:\"ratePlan.arrivalDateUntil\"}})],1)],1)],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(!_vm.ratePlan.hasPhoto)?_c('v-card',{staticClass:\"d-flex\",class:{ 'align-center': !_vm.ratePlan.hasPhoto },attrs:{\"min-height\":\"245\",\"max-height\":\"262\",\"disabled\":!_vm.ratePlan.id},on:{\"click\":function($event){return _vm.addPhoto()},\"dragover\":function($event){$event.preventDefault();_vm.dragging = true}}},[(!_vm.dragging)?_c('v-card-text',{staticClass:\"fill-height d-flex align-center justify-center flex-column\"},[_c('div',{staticClass:\"mb-2 addPhotoText\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Add new photo click or drag\"))+\" \")]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1):_c('v-card-text',{staticClass:\"dropzone rounded-t white--text\",on:{\"dragleave\":function($event){$event.preventDefault();_vm.dragging = false},\"dragend\":function($event){$event.preventDefault();_vm.dragging = false},\"drop\":function($event){$event.preventDefault();return _vm.dropPhoto.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"PhotosUpload.Dropzone\"))+\" \")])],1):_c('v-card',{staticClass:\"d-flex flex-column\",class:{ 'align-center': !_vm.ratePlan.hasPhoto },attrs:{\"min-height\":\"245\",\"disabled\":!_vm.ratePlan.id},on:{\"dragover\":function($event){$event.preventDefault();_vm.dragging = true}}},[_c('v-img',{attrs:{\"width\":\"100%\",\"min-height\":\"245\",\"max-height\":\"262\",\"src\":_vm.photoSrc}},[_c('template',{slot:\"placeholder\"},[_c('v-skeleton-loader',{attrs:{\"loading\":true,\"type\":\"image\"}})],1)],2),_c('v-card-actions',{staticClass:\"actions\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs' : ''},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.openPhotoForm()}}},[_vm._v(_vm._s(_vm.$t(\"Edit\")))]),_c('v-btn',{attrs:{\"color\":\"red\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.deletePhotoConfirmation}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1),_c('form-description',{staticClass:\"mt-3 mb-0\"},[_vm._v(_vm._s(_vm.$t(\"RatePlan.PhotoUploadHint\")))])],1)],1),_c('v-file-input',{ref:\"photoInputRef\",staticClass:\"hide-input-field\",attrs:{\"accept\":\"image/*\"},model:{value:(_vm.filesToUpload),callback:function ($$v) {_vm.filesToUpload=$$v},expression:\"filesToUpload\"}}),_c('br'),_c('v-expansion-panels',{ref:'servicesPanel',on:{\"change\":_vm.servicesPanelOpened}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.AddOnServices\"))+\" \")]),_c('v-expansion-panel-content',[_c('RatePlanFormAddOnServices',{attrs:{\"addOnServices\":_vm.ratePlan.addOnServices},on:{\"update:addOnServices\":function($event){return _vm.$set(_vm.ratePlan, \"addOnServices\", $event)},\"update:add-on-services\":function($event){return _vm.$set(_vm.ratePlan, \"addOnServices\", $event)}}})],1)],1)],1)],1):_vm._e(),_c('v-tab-item',{staticClass:\"tab-item\"},[_vm._l((_vm.ratePlan.translations),function(translation,index){return _c('div',{key:index},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('RatePlan.Translation.CultureCode') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[].concat( _vm.rules.Required )},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",class:{\n 'v-data-table__expand-icon--active':\n _vm.expandedTranslation === index,\n },on:{\"click\":function($event){_vm.expandedTranslation =\n _vm.expandedTranslation === index ? null : index}}},[_vm._v(\"fas fa-chevron-down\")])]},proxy:true}],null,true),model:{value:(translation.cultureCode),callback:function ($$v) {_vm.$set(translation, \"cultureCode\", $$v)},expression:\"translation.cultureCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('v-text-field',{attrs:{\"counter\":\"255\",\"label\":_vm.$t('RatePlan.Translation.Translation') + '*',\"rules\":_vm.rules.Required.concat( [_vm.maxLength(255)])},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeTranslation(translation)}}},[_vm._v(\"fal fa-trash\")])]},proxy:true}],null,true),model:{value:(translation.translation),callback:function ($$v) {_vm.$set(translation, \"translation\", $$v)},expression:\"translation.translation\"}})],1),_c('v-expand-transition',[(_vm.expandedTranslation === index)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"counter\":\"255\",\"rows\":\"3\",\"label\":_vm.$t('RatePlan.Translation.SubtitleTranslation'),\"rules\":[_vm.maxLength(255)]},model:{value:(translation.subtitleTranslation),callback:function ($$v) {_vm.$set(translation, \"subtitleTranslation\", $$v)},expression:\"translation.subtitleTranslation\"}})],1):_vm._e()],1),_c('v-expand-transition',[(_vm.expandedTranslation === index)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('RichTextEditor',{attrs:{\"rules\":[_vm.maxLength(4000)],\"label\":_vm.$t('RatePlan.Translation.DescriptionTranslation')},model:{value:(translation.descriptionTranslation),callback:function ($$v) {_vm.$set(translation, \"descriptionTranslation\", $$v)},expression:\"translation.descriptionTranslation\"}})],1):_vm._e()],1)],1),_c('v-divider',{staticClass:\"mt-3\"})],1)}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addTranslation()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.Translation.Add\"))+\" \")])],1)],1),_c('HTMLPreviewModal',{attrs:{\"open\":_vm.openPreview,\"value\":_vm.previewHtml},on:{\"update:open\":function($event){_vm.openPreview=$event}}})],2),_c('v-tab-item',{staticClass:\"tab-item-table\"},[_c('v-data-table',{staticClass:\"table\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"headers\":_vm.translatedUnitTypeHeaders,\"items\":_vm.filteredUnitTypes,\"item-key\":\"accomodationUnitTypeId\",\"show-select\":\"\",\"sort-by\":\"propertyName\",\"must-sort\":\"\",\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"fixed-header\":\"\",\"height\":\"100%\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('form-description',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.$t(\"RatePlan.AccommodationUnitTypesTabDesc\")))])]},proxy:true},{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"input-value\":_vm.areAllUnitTypeselected()},on:{\"change\":_vm.selectAllUnitTypes}})]},proxy:true},{key:\"header.propertyName\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.unitTypesFilter),callback:function ($$v) {_vm.unitTypesFilter=$$v},expression:\"unitTypesFilter\"}})]}},{key:\"item.propertyName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.propertyName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.name))])]}},{key:\"no-data\",fn:function(){return [_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fa-hotel\"}})]},proxy:true}]),model:{value:(_vm.selectedUnitTypes),callback:function ($$v) {_vm.selectedUnitTypes=$$v},expression:\"selectedUnitTypes\"}})],1),_c('v-tab-item',{staticClass:\"tab-item\"},[(_vm.showPromoCode)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.rules.Required.concat( [_vm.maxLength(50)]),\"label\":_vm.$t('RatePlan.Name') + '*',\"counter\":\"50\"},model:{value:(_vm.ratePlan.promoCode.name),callback:function ($$v) {_vm.$set(_vm.ratePlan.promoCode, \"name\", $$v)},expression:\"ratePlan.promoCode.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\",\"md\":\"6\"}},[_c('PriceInput',{attrs:{\"label\":_vm.$t('RatePlan.PromoCode.PriceDifference') + '*',\"currencyId\":_vm.ratePlan.currencyId,\"value\":_vm.initialPromoCodePrice,\"required\":true,\"forPromoCode\":true,\"outlined\":false,\"placeholderHint\":_vm.$t('RatePlan.PromoCode.PriceHint')},on:{\"change\":function($event){return _vm.onPriceChanged($event)}}})],1)],1):_vm._e(),(_vm.showPromoCode)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.PromoCode.IsForAccommodation'),\"error-messages\":_vm.promoCodeCheckboxesErrors},model:{value:(_vm.ratePlan.promoCode.isForAccommodation),callback:function ($$v) {_vm.$set(_vm.ratePlan.promoCode, \"isForAccommodation\", $$v)},expression:\"ratePlan.promoCode.isForAccommodation\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('RatePlan.PromoCode.IsForService'),\"error-messages\":_vm.promoCodeCheckboxesErrors},model:{value:(_vm.ratePlan.promoCode.isForService),callback:function ($$v) {_vm.$set(_vm.ratePlan.promoCode, \"isForService\", $$v)},expression:\"ratePlan.promoCode.isForService\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('RatePlan.PromoCode.ApplicationMethod'),\"items\":_vm.ratePlansPromoCodeApplicationMethods,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); }},model:{value:(_vm.ratePlan.promoCode.applicationMethodId),callback:function ($$v) {_vm.$set(_vm.ratePlan.promoCode, \"applicationMethodId\", $$v)},expression:\"ratePlan.promoCode.applicationMethodId\"}})],1)],1):_vm._e(),_c('v-divider',{staticClass:\"mt-3\"}),(!_vm.showPromoCode)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addPromoCode()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.PromoCode.Add\"))+\" \")])],1)],1):_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removePromoCode()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"RatePlan.PromoCode.Remove\"))+\" \")])],1)],1)],1),(_vm.tenantOBRsUseRelativePricing)?_c('v-tab-item',{staticClass:\"tab-item-table\"},[_c('v-data-table',{staticClass:\"table\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"headers\":_vm.translatedHeadersObr,\"items\":_vm.groupedOccupancyBasedRules,\"item-key\":\"accomodationUnitTypeId\",\"sort-by\":\"propertyName\",\"must-sort\":\"\",\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"show-expand\":\"\",\"single-expand\":\"\",\"fixed-header\":\"\",\"height\":\"100%\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('form-description',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.$t(\"RatePlan.OccupancyBasedRulesTabDesc\")))])]},proxy:true},{key:\"header.propertyName\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.occupancyBasedRulesFilter),callback:function ($$v) {_vm.occupancyBasedRulesFilter=$$v},expression:\"occupancyBasedRulesFilter\"}})]}},{key:\"item.propertyName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.propertyName))]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.name))])]}},{key:\"item.numberOfObrs\",fn:function(ref){\n var item = ref.item;\nreturn [(item.occupancyBasedRules.length > 0)?_c('v-chip',[_vm._v(_vm._s(item.occupancyBasedRules.length))]):_vm._e()]}},{key:\"expanded-item\",fn:function(ref){\n var headers = ref.headers;\n var item = ref.item;\nreturn [_c('td',{attrs:{\"colspan\":headers.length}},_vm._l((item.occupancyBasedRules),function(rule,index){return _c('div',{key:index,class:{ 'base-obr': rule.isDefault }},[_c('v-row',{staticClass:\"align-end\"},[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"2\"}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"RatePlan.OBR.NumberOfOccupants\"))+\": \")]),(rule.minPersons === rule.maxPersons)?_c('div',[_vm._v(\" \"+_vm._s(rule.minPersons)+\" pax \")]):_c('div',[_vm._v(\" \"+_vm._s(rule.minPersons)+\"-\"+_vm._s(rule.maxPersons)+\" pax \")])]),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('RatePlan.PriceDifference'),\"outlined\":false,\"dense\":true,\"disabled\":rule.isDefault,\"validateInput\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(rule.priceDifferenceIsAbsolute)?_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.ratePlan.currencyId}}):_c('span',[_vm._v(\"%\")])]},proxy:true}],null,true),model:{value:(rule.priceDifference),callback:function ($$v) {_vm.$set(rule, \"priceDifference\", $$v)},expression:\"rule.priceDifference\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\",\"md\":\"3\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('RatePlan.IsPriceDifferenceAbsolute'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":rule.isDefault},model:{value:(rule.priceDifferenceIsAbsolute),callback:function ($$v) {_vm.$set(rule, \"priceDifferenceIsAbsolute\", $$v)},expression:\"rule.priceDifferenceIsAbsolute\"}})],1)],1),_c('v-divider')],1)}),0)]}},{key:\"no-data\",fn:function(){return [_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fa-hotel\"}})]},proxy:true}],null,false,2207247409)})],1):_vm._e()],1),_c('v-btn',{staticClass:\"d-none\",attrs:{\"type\":\"submit\",\"color\":\"primary\"}})],1),_c('PhotoForm',{attrs:{\"endpoint\":(\"RatePlans/\" + (_vm.ratePlan.id) + \"/photo\"),\"open\":_vm.photoFormOpen,\"photo\":_vm.photo,\"simpleForm\":true},on:{\"update:open\":function($event){_vm.photoFormOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"600\",\"persistent\":\"\"},model:{value:(_vm.openInternal),callback:function ($$v) {_vm.openInternal=$$v},expression:\"openInternal\"}},[_c('v-card',[_c('v-card-text',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.value)}})]),_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){_vm.openInternal = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, PropSync } from \"vue-property-decorator\";\n\n@Component\nexport default class HTMLPreviewModal extends Vue {\n @Prop({ default: \"\" }) value?: string;\n @PropSync(\"open\") openInternal?: boolean;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HTMLPreviewModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HTMLPreviewModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HTMLPreviewModal.vue?vue&type=template&id=24888fa7&\"\nimport script from \"./HTMLPreviewModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./HTMLPreviewModal.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-data-table',{attrs:{\"headers\":_vm.translatedHeaders,\"items\":_vm.services,\"item-key\":\"addOnServiceId\",\"items-per-page\":-1,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.defaultQuantity\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.calculationMethodId === _vm.calculationMethods.Manual)?_c('v-text-field',{staticClass:\"input-font-size mb-2\",attrs:{\"type\":\"number\",\"rules\":_vm.rules.Required.concat( [_vm.rules.WholeNumbersOnly],\n [_vm.rules.NoNegativeNumbers] )},model:{value:(item.defaultQuantity),callback:function ($$v) {_vm.$set(item, \"defaultQuantity\", _vm._n($$v))},expression:\"item.defaultQuantity\"}}):_c('v-text-field',{staticClass:\"input-font-size mb-2\",attrs:{\"placeholder\":_vm.getCalculationMethod(item.calculationMethodId),\"disabled\":\"\",\"type\":\"number\"}})]}},{key:\"item.discountPercent\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-text-field',{staticClass:\"input-font-size mb-2\",attrs:{\"type\":\"number\",\"suffix\":\"%\",\"rules\":_vm.rules.Required.concat( [_vm.rules.WholeNumbersOnly],\n [_vm.rules.NoNegativeNumbers] )},model:{value:(item.discountPercent),callback:function ($$v) {_vm.$set(item, \"discountPercent\", _vm._n($$v))},expression:\"item.discountPercent\"}})]}},{key:\"item.isIncludedInPrice\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"ripple\":false},model:{value:(item.isIncludedInPrice),callback:function ($$v) {_vm.$set(item, \"isIncludedInPrice\", $$v)},expression:\"item.isIncludedInPrice\"}})]}},{key:\"item.guestCanChangeQuantity\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"ripple\":false},model:{value:(item.guestCanChangeQuantity),callback:function ($$v) {_vm.$set(item, \"guestCanChangeQuantity\", $$v)},expression:\"item.guestCanChangeQuantity\"}})]}},{key:\"header.actions\",fn:function(){return undefined},proxy:true},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeService(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash\")])],1)]}}])}),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.formOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('RightDrawer',{attrs:{\"width\":_vm.$vuetify.breakpoint.thresholds.xs,\"open\":_vm.formOpen},on:{\"update:open\":function($event){_vm.formOpen=$event}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.addServices}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.formOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"return-object\":\"\",\"item-text\":\"addOnServiceName\",\"label\":_vm.$t('Add service'),\"items\":_vm.pickableItems,\"multiple\":\"\"},model:{value:(_vm.pickedServices),callback:function ($$v) {_vm.pickedServices=$$v},expression:\"pickedServices\"}})],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, PropSync } from \"vue-property-decorator\";\nimport { RatePlanAddOnService } from \"@/shared/models/ratePlanModel\";\nimport { AddOnServiceView } from \"@/shared/models/addOnService\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport {\n PriceCalculationMethodView,\n CalculationMethods,\n} from \"@/shared/models/priceCalculationMethods\";\n\n@Component({\n components: {\n RightDrawer,\n },\n})\nexport default class RatePlanFormAddOnServices extends Vue {\n @PropSync(\"addOnServices\") services?: RatePlanAddOnService[];\n\n calculationMethods = CalculationMethods;\n\n allServices: AddOnServiceView[] = [];\n pickedServices: RatePlanAddOnService[] = [];\n formOpen = false;\n\n get pickableItems() {\n return this.allServices\n .filter((x) => !this.services?.some((s) => s.addOnServiceId == x.id))\n .map((x) => {\n return {\n id: 0,\n addOnServiceId: x.id,\n addOnServiceName: x.name,\n defaultQuantity: 0,\n discountPercent: 0,\n guestCanChangeQuantity: false,\n isIncludedInPrice: false,\n calculationMethodId: x.calculationMethodId,\n };\n })\n .sort((a, b) => a.addOnServiceName.localeCompare(b.addOnServiceName));\n }\n\n async created() {\n if (\n (this.priceCalculationMethods?.length ?? 0) === 0 &&\n this.refreshPriceCalculationMethods\n ) {\n await this.refreshPriceCalculationMethods();\n }\n\n this.axios\n .get>(\"addOnServices\", {\n params: {\n excludeBookingFee: true\n },\n })\n .then(({ data }) => {\n this.allServices = data.result;\n });\n }\n\n headers = [\n { text: \"AddOnService.Name\", value: \"addOnServiceName\", align: \"center\" },\n {\n text: \"RatePlans.AddOnService.DefaultQuantity\",\n value: \"defaultQuantity\",\n align: \"center\",\n },\n {\n text: \"RatePlans.AddOnService.DiscountPercent\",\n value: \"discountPercent\",\n align: \"center\",\n },\n {\n text: \"RatePlans.AddOnService.IsIncludedInPrice\",\n value: \"isIncludedInPrice\",\n align: \"center\",\n },\n {\n text: \"RatePlans.AddOnService.GuestCanChangeQuantity\",\n value: \"guestCanChangeQuantity\",\n align: \"center\",\n },\n { text: \"\", value: \"actions\" },\n ];\n\n get translatedHeaders() {\n return this.headers.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n removeService(item: RatePlanAddOnService) {\n this.services = this.services?.filter(\n (x) => x.addOnServiceId != item.addOnServiceId\n );\n }\n\n addServices() {\n if (!this.services) {\n this.services = [];\n }\n this.services.push(...this.pickedServices);\n this.pickedServices = [];\n this.formOpen = false;\n }\n\n rules = {\n Required: [\n (value: any) => !!value || value === 0 || this.$t(\"Validation.Required\"),\n ],\n WholeNumbersOnly: (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n NoNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n };\n\n getCalculationMethod(id: number) {\n const method = this.priceCalculationMethods?.find((x) => x.id == id);\n if (!method) return \"\";\n\n return this.$t(method.textResourceKey);\n }\n\n @Action(\"codebooks/refreshPriceCalculationMethods\")\n refreshPriceCalculationMethods?: () => Promise;\n @Getter(\"codebooks/priceCalculationMethods\")\n priceCalculationMethods?: PriceCalculationMethodView[];\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanFormAddOnServices.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanFormAddOnServices.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlanFormAddOnServices.vue?vue&type=template&id=9d68bfa2&scoped=true&\"\nimport script from \"./RatePlanFormAddOnServices.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlanFormAddOnServices.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlanFormAddOnServices.vue?vue&type=style&index=0&id=9d68bfa2&scoped=true&lang=scss&\"\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 \"9d68bfa2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCol,VContainer,VDataTable,VIcon,VRow,VSimpleCheckbox,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Vue,\n Watch,\n Prop,\n Ref,\n PropSync,\n} from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport {\n RatePlanModel,\n RatePlanOtas,\n NonDerivedRatePlanModel,\n RatePlanTranslation,\n RatePlanChangedFields,\n UnitTypeViewModel,\n RatePlanOccupancyBasedRule,\n RatePlanAccomodationUnitType,\n} from \"@/shared/models/ratePlanModel\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { PrepaymentPolicy } from \"@/shared/models/prepaymentPolicy\";\nimport { CancelationPolicy } from \"@/shared/models/cancelationPolicy\";\nimport { Ota } from \"@/shared/models/ota\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\nimport { Action, Getter } from \"vuex-class\";\nimport * as _ from \"lodash\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport HTMLPreviewModal from \"@/components/misc/HTMLPreviewModal.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport RatePlanFormAddOnServices from \"@/components/RatePlanFormAddOnServices.vue\";\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport { Currency } from \"@/shared/models/currency\";\nimport PriceInput, { PriceChange } from \"./calendar/inputs/PriceInput.vue\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { RatePlansPromoCodeApplicationMethod } from \"@/shared/models/ratePlansPromoCodeApplicationMethod\";\nimport { RatePlansPromoCodeApplicationMethodsEnum } from \"@/shared/models/enums.type\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport PhotoForm from \"./photo-editor/PhotoForm.vue\";\nimport { PhotoViewModel } from \"./photo-editor/types\";\nimport NumericInputImproved from \"./numbers/NumericInputImproved.vue\";\n\n@Component({\n components: {\n RightDrawer,\n FormDescription,\n CurrencyDisplay,\n NoData,\n HTMLPreviewModal,\n DateField,\n RatePlanFormAddOnServices,\n RichTextEditor,\n PriceInput,\n PhotoForm,\n NumericInputImproved,\n },\n})\nexport default class RatePlanForm extends Vue {\n //#region props, getters and actions\n @Prop({ default: null }) ratePlanId!: number | null;\n @PropSync(\"parentRatePlanId\", { default: null }) internalParentRatePlanId!:\n | number\n | null;\n @Prop({ default: false }) open!: boolean;\n @Prop() callback!: () => any;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Getter(\"appParams/tenantCanEditLOSCategories\")\n tenantCanEditLOSCategories?: boolean;\n\n @Action(\"codebooks/refreshCurrencies\")\n refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Action(\"codebooks/refreshRatePlansPromoCodeApplicationMethods\")\n refreshRatePlansPromoCodeApplicationMethods?: () => Promise;\n @Getter(\"codebooks/ratePlansPromoCodeApplicationMethods\")\n ratePlansPromoCodeApplicationMethods?: RatePlansPromoCodeApplicationMethod[];\n\n @Getter(\"language/language\") language?: string;\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n @Getter(\"appParams/asyncRatePlanAvailabiltyUpdateThresholdSize\")\n asyncRatePlanAvailabiltyUpdateThresholdSize?: number;\n\n @Action(\"codebooks/refreshPrepaymentPolicies\")\n refreshPrepaymentPolicies?: () => Promise;\n @Getter(\"codebooks/prepaymentPolicies\")\n prepaymentPolicies?: PrepaymentPolicy[];\n\n @Action(\"codebooks/refreshCancelationPolicies\")\n refreshCancelationPolicies?: () => Promise;\n @Getter(\"codebooks/cancelationPolicies\")\n cancelationPolicies?: CancelationPolicy[];\n\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\")\n serviceTypes?: ServiceType[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n //#endregion\n\n //#region properties\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n tab = 0;\n fkey = 0;\n photoFormOpen = false;\n\n initialRatePlan: RatePlanModel = new RatePlanModel();\n ratePlan = new RatePlanModel();\n\n OTAs: Ota[] = [];\n nonDerivedRatePlans: NonDerivedRatePlanModel[] = [];\n\n //#endregion\n\n //#region computed properties\n get tenantUsesServiceType() {\n const param = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ReservationTenantUsesServiceTypes\n );\n return param && param.value;\n }\n\n get tenantUsesInstalments() {\n const param = this.appParams?.find(\n (x) => x.id === AppParamsEnum.TenantUsesInstalments\n );\n return param && param.value;\n }\n\n get tenantUsesBookingFees() {\n const param = this.appParams?.find(\n (x) => x.id === AppParamsEnum.TenantUsesBookingFees\n );\n return param && param.value;\n }\n\n get applyRatePlansToAllAccomodationUnitTypes() {\n const param = this.appParams?.find(\n (x) => x.id == AppParamsEnum.ApplyRatePlansToAllAccomodationUnitTypes\n );\n return param && param.value;\n }\n\n get currenciesForSelect() {\n //for now only HRK and EUR\n return this.currencies?.filter(\n (x) =>\n x.id == this.storedSettings?.workingCurrency.id ||\n x.id == this.storedSettings?.formalCurrency.id\n );\n }\n\n get parentRatePlanName() {\n return (\n this.nonDerivedRatePlans.find(\n (x) => x.id == this.ratePlan.parentRatePlanId\n )?.name || \"\"\n );\n }\n\n get canEditAppliesToAllAUT() {\n return (\n this.nonDerivedRatePlans.find(\n (x) =>\n x.id === this.ratePlan.parentRatePlanId && this.ratePlan.isDerived\n )?.appliesToAllAccomodationUnitTypes ?? true\n );\n }\n\n get channels() {\n if (!this.ratePlan && !this.OTAs) {\n return [];\n }\n\n const res: RatePlanOtas[] = [];\n res.push(...this.ratePlan.ratePlanOtas);\n\n const missing = this.OTAs.filter(\n (x) => !res.some((y) => y.otaid == x.id)\n ).map((x) => {\n return {\n otaid: x.id,\n name: x.name,\n priceDifference: null,\n };\n });\n res.push(...missing);\n\n return res.sort((a, b) => a.otaid - b.otaid);\n }\n\n get priceDifferenceItems() {\n return [\n {\n text: this.$t(\"RatePlan.IsPriceDifferenceAbsolute\"),\n value: true,\n },\n {\n text: this.$t(\"RatePlan.IsPriceDifferencePercentage\"),\n value: false,\n },\n ];\n }\n //#endregion\n\n //#region lifecycle\n async created() {\n this.setUpRules();\n\n const promises = [];\n\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n promises.push(this.refreshCurrencies());\n }\n\n if (\n (this.ratePlansPromoCodeApplicationMethods?.length ?? 0) === 0 &&\n this.refreshRatePlansPromoCodeApplicationMethods\n ) {\n promises.push(this.refreshRatePlansPromoCodeApplicationMethods());\n }\n\n if (!this.storedSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n await Promise.all(promises);\n }\n\n mounted() {\n this.loadOTAs();\n this.loadNonDerivedRatePlans();\n\n if (\n (this.prepaymentPolicies?.length ?? 0) === 0 &&\n this.refreshPrepaymentPolicies\n ) {\n this.refreshPrepaymentPolicies();\n }\n if (\n (this.cancelationPolicies?.length ?? 0) === 0 &&\n this.refreshCancelationPolicies\n ) {\n this.refreshCancelationPolicies();\n }\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n this.refreshServiceTypes();\n }\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n this.refreshLanguages();\n }\n }\n //#endregion\n\n //#region validation and sanitation\n isFormValid = false;\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n get submitDisabled(): boolean {\n const promoCodeValid =\n !this.ratePlan.promoCode ||\n this.ratePlan.promoCode.isForAccommodation ||\n this.ratePlan.promoCode.isForService;\n return this.loading || this.saving || !promoCodeValid || !this.isFormValid;\n }\n\n rules = {};\n setUpRules() {\n this.rules = {\n Required: [(value: any) => !!value || this.$t(\"Validation.Required\")],\n RequiredArray: [\n (value: any[]) => value.length > 0 || this.$t(\"Validation.Required\"),\n ],\n WholeNumbersOnly: [\n (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n ],\n NoNegativeNumbers: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n MustBeNegativeAbsolute: (value: string) =>\n value == null ||\n value == undefined ||\n parseInt(value) <= 0 ||\n !this.ratePlan.promoCode?.priceDifferenceIsAbsolute ||\n this.$t(\"Validation.MustBeNegativeWhenAbsolute\"),\n OneOrGreater: (value: number) =>\n value == null ||\n value == undefined ||\n value >= 1 ||\n this.$t(\"Validation.MustBeOneOrGreater\"),\n NotEqual: (value: number, x: number) =>\n value != x || this.$t(\"Validation.NotEqual\", { value: x }),\n LessOrEqual: (value: number, x: number) =>\n value <= x || this.$t(\"Validation.LessOrEqual\", { value: x }),\n GreaterThanMinus100: (\n value: number,\n priceDifferenceIsAbsolute: boolean\n ) =>\n value === null ||\n value === undefined ||\n value > -100 ||\n priceDifferenceIsAbsolute ||\n this.$t(\"Validation.MinValue\"),\n FromDateBeforeUntilDate: (dateFrom: Date, dateUntil: Date) =>\n !(dateFrom && dateUntil && dateFrom > dateUntil) ||\n this.$t(\"AddOnService.Validation.DateFromBeforeDateUntil\")\n };\n }\n\n maxLength(max: number) {\n return (v: string) =>\n !v || v.length <= max\n ? true\n : this.$t(\"Validation.MaxLength\", { count: max });\n }\n\n maxDecimals(value: any) {\n if (value !== undefined) {\n return !(this.countDecimals(value) > 2)\n ? true\n : this.$t(\"Validation.MaxDecimals{max}\", {\n max: 2,\n });\n } else {\n return true;\n }\n }\n\n get decimalSeparator() {\n const separator = Intl.NumberFormat(this.internalLanguage)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n return separator;\n }\n\n countDecimals(num: number) {\n return num.toString().split(this.decimalSeparator)[1]?.length || 0;\n }\n\n get promoCodeCheckboxesErrors() {\n if (\n this.ratePlan.promoCode?.isForAccommodation ||\n this.ratePlan.promoCode?.isForService\n )\n return [];\n\n return [\n this.$t(\"RatePlan.PromoCode.AppliesToAccomodationOrService\").toString(),\n ];\n }\n\n validate() {\n this.form.validate();\n\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n }\n\n // v-model on inputs, when cleared, sets the value to '' rather than null or undefined\n // which causes errors as BL expects numbers and not strings\n sanitizeRatePlanModel(ratePlan: RatePlanModel) {\n ratePlan.minimumStay =\n ratePlan.minimumStay?.toString() === \"\"\n ? undefined\n : ratePlan.minimumStay;\n ratePlan.maximumStay =\n ratePlan.maximumStay?.toString() === \"\"\n ? undefined\n : ratePlan.maximumStay;\n ratePlan.minBookableBeforeCheckin =\n ratePlan.minBookableBeforeCheckin?.toString() === \"\"\n ? undefined\n : ratePlan.minBookableBeforeCheckin;\n ratePlan.maxBookableBeforeCheckin =\n ratePlan.maxBookableBeforeCheckin?.toString() === \"\"\n ? undefined\n : ratePlan.maxBookableBeforeCheckin;\n\n ratePlan.priceDifference = !ratePlan.priceDifference\n ? 0\n : ratePlan.priceDifference;\n\n ratePlan.bookingEnginePriceOffset =\n ratePlan.bookingEnginePriceOffset?.toString() === \"\"\n ? undefined\n : ratePlan.bookingEnginePriceOffset;\n\n ratePlan.ratePlanOtas.forEach((e) => {\n e.priceDifference =\n e.priceDifference?.toString() === \"\" ? null : e.priceDifference;\n });\n\n ratePlan.bookableFrom =\n ratePlan.bookableFrom === \"\" ? undefined : ratePlan.bookableFrom;\n ratePlan.bookableUntil =\n ratePlan.bookableUntil === \"\" ? undefined : ratePlan.bookableUntil;\n ratePlan.arrivalDateFrom =\n ratePlan.arrivalDateFrom === \"\" ? undefined : ratePlan.arrivalDateFrom;\n ratePlan.arrivalDateUntil =\n ratePlan.arrivalDateUntil === \"\" ? undefined : ratePlan.arrivalDateUntil;\n ratePlan.maxSellableNights =\n ratePlan.maxSellableNights?.toString() === \"\"\n ? undefined\n : ratePlan.maxSellableNights;\n ratePlan.maxSellableReservations =\n ratePlan.maxSellableReservations?.toString() === \"\"\n ? undefined\n : ratePlan.maxSellableReservations;\n }\n //#endregion\n\n //#region loading\n loading = false;\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n this.tab = 0;\n }\n\n if (fresh && this.ratePlanId) {\n this.initialRatePlan = new RatePlanModel();\n await this.load();\n if (this.internalParentRatePlanId) {\n await this.loadParent();\n }\n } else if (fresh && this.internalParentRatePlanId) {\n this.initialRatePlan = new RatePlanModel();\n await this.loadParent();\n this.createDerived();\n } else if (fresh) {\n this.ratePlan = new RatePlanModel();\n this.ratePlan.currencyId = this.storedSettings?.workingCurrency.id;\n\n if (this.applyRatePlansToAllAccomodationUnitTypes) {\n this.selectAllUnitTypes();\n }\n\n this.initialRatePlan = _.cloneDeep(this.ratePlan);\n\n this.expandedTranslation = null;\n this.previewHtml = \"\";\n this.photoSrc = \"\";\n this.ratePlan.promoCode = null;\n this.showPromoCode = false;\n this.initialPromoCodePrice = \"\";\n }\n\n if (fresh) {\n this.loading = true;\n const promises = [];\n promises.push(this.loadNonDerivedRatePlans());\n promises.push(this.loadAccomodationUnitTypes());\n await Promise.all(promises);\n this.selectUnitTypeRange(this.ratePlan.accomodationUnitTypeIds);\n this.loading = false;\n }\n\n if (!fresh) {\n this.showPromoCode = false;\n this.ratePlan = new RatePlanModel();\n this.selectedUnitTypes = [];\n this.availableUnitTypes = [];\n this.occupancyBasedRules = [];\n this.unitTypesFilter = \"\";\n this.occupancyBasedRulesFilter = \"\";\n }\n }\n\n async load() {\n this.loading = true;\n\n await Vue.axios\n .get(\"RatePlans/\" + this.ratePlanId)\n .then((res) => {\n this.ratePlan = {\n ...new RatePlanModel(),\n ...res.data,\n };\n this.ratePlan.changedFields = new RatePlanChangedFields();\n\n if (this.ratePlan.parentRatePlanId) {\n this.internalParentRatePlanId = this.ratePlan.parentRatePlanId;\n }\n\n this.initialRatePlan = _.cloneDeep(this.ratePlan);\n\n this.loading = false;\n\n if (this.ratePlan.hasPhoto) {\n this.loadPhoto();\n }\n\n this.formatInitialPromoCodePrice();\n\n this.showPromoCode = !!this.ratePlan.promoCode;\n\n this.loading = false;\n });\n }\n\n parentRatePlan: RatePlanModel | null = null;\n async loadParent() {\n this.loading = true;\n\n await Vue.axios\n .get(\"RatePlans/\" + this.internalParentRatePlanId)\n .then((res) => {\n this.parentRatePlan = res.data;\n this.loading = false;\n });\n }\n\n createDerived() {\n if (this.parentRatePlan) {\n this.ratePlan = _.cloneDeep(this.parentRatePlan);\n\n this.ratePlan.changedFields = new RatePlanChangedFields();\n\n this.ratePlan.isDerived = true;\n this.ratePlan.parentRatePlanId = this.ratePlan.id;\n this.ratePlan.id = undefined;\n this.ratePlan.name = \"\";\n Vue.set(this.ratePlan, \"priceDifferenceIsAbsolute\", false);\n Vue.set(this.ratePlan, \"priceDifference\", 0);\n\n this.ratePlan.translations.forEach((element) => {\n const translationsLength = this.ratePlan.translations.length;\n const index = this.ratePlan.translations.findIndex(\n () => element.translation\n );\n if (index != -1) {\n this.ratePlan.translations.splice(index, translationsLength);\n }\n });\n\n this.initialRatePlan = _.cloneDeep(this.ratePlan);\n\n this.showPromoCode = this.ratePlan.promoCode != undefined;\n\n this.loading = false;\n }\n }\n\n loadOTAs() {\n Vue.axios.get>(\"OTAs\").then((res) => {\n this.OTAs = res.data.result;\n });\n }\n\n async loadNonDerivedRatePlans() {\n return Vue.axios\n .get>(\n \"RatePlans/GetNonDerivedRatePlans\"\n )\n .then((res) => {\n this.nonDerivedRatePlans = res.data.result;\n\n // in case derived is clicked and nonDerived were slow lo load :/\n if (\n this.ratePlan &&\n this.ratePlan.isDerived &&\n this.nonDerivedRatePlans &&\n this.nonDerivedRatePlans.length === 1\n ) {\n this.ratePlan.parentRatePlanId = this.nonDerivedRatePlans[0].id;\n }\n });\n }\n\n loadPhoto() {\n Vue.axios\n .get(\"RatePlans/\" + this.ratePlan.id + \"/photo/details\")\n .then((res) => {\n this.photo = res.data;\n });\n\n Vue.axios\n .get(\"RatePlans/\" + this.ratePlan.id + \"/Photo?width=420&quality=95\", {\n responseType: \"blob\",\n })\n .then((res) => {\n const reader = new FileReader();\n reader.readAsDataURL(res.data);\n reader.onload = () => {\n this.photoSrc = reader.result;\n };\n })\n .catch(() => {\n this.photoSrc = require(\"@/assets/images/no-image-icon-23488.png\");\n });\n }\n\n async loadAccomodationUnitTypes() {\n return Vue.axios\n .get(\"AccomodationUnitTypes/GetForRatePlanForm\")\n .then((res) => {\n this.availableUnitTypes = res.data.filter(\n (x) =>\n !this.ratePlan.isDerived ||\n this.parentRatePlan?.accomodationUnitTypeIds.includes(\n x.accomodationUnitTypeId\n )\n );\n });\n }\n //#endregion\n\n //#region submit\n saving = false;\n\n get showSaveAndUpdateButton() {\n let existingOBRs = this.ratePlan.ratePlanAccomodationUnitTypes.map((x) => {\n return {\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n accomodationUnitTypesLOSCategoryId:\n x.accomodationUnitTypesLOSCategoryId,\n accomodationUnitTypesPAXCategoryId:\n x.accomodationUnitTypesPAXCategoryId,\n priceDifference: x.priceDifference,\n priceDifferenceIsAbsolute: x.priceDifferenceIsAbsolute ?? false,\n } as RatePlanAccomodationUnitType;\n });\n\n let currentOBRs = !this.tenantOBRsUseRelativePricing\n ? []\n : this.occupancyBasedRules.map((x) => {\n return {\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n accomodationUnitTypesLOSCategoryId:\n x.accomodationUnitTypesLOSCategoryId,\n accomodationUnitTypesPAXCategoryId:\n x.accomodationUnitTypesPAXCategoryId,\n priceDifference: x.priceDifference,\n priceDifferenceIsAbsolute: x.priceDifferenceIsAbsolute ?? false,\n } as RatePlanAccomodationUnitType;\n });\n\n currentOBRs = currentOBRs.filter((c) =>\n existingOBRs.some(\n (e) =>\n e.accomodationUnitTypeId === c.accomodationUnitTypeId &&\n e.accomodationUnitTypesPAXCategoryId ===\n c.accomodationUnitTypesPAXCategoryId &&\n e.accomodationUnitTypesLOSCategoryId ===\n c.accomodationUnitTypesLOSCategoryId\n )\n );\n\n existingOBRs = _.sortBy(\n existingOBRs,\n (e) => e.accomodationUnitTypeId,\n (e) => e.accomodationUnitTypesPAXCategoryId,\n (e) => e.accomodationUnitTypesLOSCategoryId\n );\n currentOBRs = _.sortBy(\n currentOBRs,\n (e) => e.accomodationUnitTypeId,\n (e) => e.accomodationUnitTypesPAXCategoryId,\n (e) => e.accomodationUnitTypesLOSCategoryId\n );\n\n return (\n this.ratePlan.changedFields.minStay ||\n this.ratePlan.changedFields.maxStay ||\n this.ratePlan.changedFields.minBookable ||\n this.ratePlan.changedFields.maxBookable ||\n this.ratePlan.changedFields.priceDiffType ||\n this.ratePlan.changedFields.priceDiff ||\n !_.isEqual(currentOBRs, existingOBRs)\n );\n }\n\n get actions() {\n return [\n {\n text: this.$t(\"Save\"),\n fun: () => {\n this.submit();\n return true;\n },\n },\n ...(this.showSaveAndUpdateButton\n ? [\n {\n text: this.$t(\"Save and update\"),\n fun: () => {\n this.ratePlan.updateExistingAvailability = true;\n this.submit();\n return true;\n },\n },\n ]\n : []),\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ];\n }\n\n priceDiffChanged() {\n this.ratePlan.changedFields.priceDiff = true;\n }\n\n minStayChanged() {\n this.ratePlan.changedFields.minStay = true;\n }\n\n maxStayChanged() {\n this.ratePlan.changedFields.maxStay = true;\n }\n\n minBookableChanged() {\n this.ratePlan.changedFields.minBookable = true;\n }\n\n maxBookableChanged() {\n this.ratePlan.changedFields.maxBookable = true;\n }\n\n submitConfirm() {\n if (\n this.ratePlan.id &&\n this.ratePlan.id !== 0 &&\n this.showSaveAndUpdateButton\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"RatePlan.UpdateConfirmation\"),\n actions: this.actions,\n timeout: 30000,\n } as Notification);\n } else {\n this.submit();\n }\n }\n\n submit(overrides: string[] = []) {\n this.sanitizeRatePlanModel(this.ratePlan);\n\n this.validate();\n\n if (_.isEmpty(this.ratePlan.promoCode)) {\n this.ratePlan.promoCode = null;\n }\n\n if (!this.isFormValid) {\n return;\n }\n\n const requestRatePlanModel = {\n ...this.ratePlan,\n accomodationUnitTypeIds: this.selectedUnitTypes.map(\n (e) => e.accomodationUnitTypeId\n ),\n ratePlanAccomodationUnitTypes: !this.tenantOBRsUseRelativePricing\n ? []\n : this.occupancyBasedRules,\n };\n\n //submit\n this.saving = true;\n if (this.ratePlan.id && this.ratePlan.id !== 0) {\n const handleCodes = [\"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n Vue.axios\n .put(\n \"/RatePlans\",\n { ...requestRatePlanModel, overrideRules: overrides },\n {\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"RatePlan.SaveSuccess\"),\n timeout: 5000,\n });\n\n // Only show the message if the calendar availability update will be done async\n if (\n this.asyncRatePlanAvailabiltyUpdateThresholdSize &&\n this.selectedUnitTypesCount >\n this.asyncRatePlanAvailabiltyUpdateThresholdSize &&\n (this.areNewAUTsSelected(\n this.initialSelectedUnitTypes,\n this.selectedUnitTypes\n ) ||\n (this.ratePlan.updateExistingAvailability &&\n requestRatePlanModel.changedFields &&\n (requestRatePlanModel.changedFields.maxBookable ||\n requestRatePlanModel.changedFields.minBookable ||\n requestRatePlanModel.changedFields.maxStay ||\n requestRatePlanModel.changedFields.minStay ||\n requestRatePlanModel.changedFields.priceDiff ||\n requestRatePlanModel.changedFields.priceDiffType)))\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n \"RatePlan.AsyncRatePlanAvailabilityUpdateStarted\"\n ),\n timeout: 10000,\n });\n }\n\n this.$emit(\"update:open\", false);\n this.$store.dispatch(\"calendar/refreshRatePlans\", undefined, {\n root: true,\n });\n this.callback();\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.submit(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.saving = false;\n });\n } else {\n Vue.axios\n .post(\"/RatePlans\", requestRatePlanModel)\n .then((res) => {\n this.ratePlan.id = res.data;\n\n this.initialRatePlan = _.cloneDeep(this.ratePlan);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"RatePlan.SaveSuccess\"),\n timeout: 5000,\n });\n\n // Only show the message if the calendar availability update will be done async\n if (\n this.asyncRatePlanAvailabiltyUpdateThresholdSize &&\n this.selectedUnitTypesCount >\n this.asyncRatePlanAvailabiltyUpdateThresholdSize\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\n \"RatePlan.AsyncRatePlanAvailabilityUpdateStarted\"\n ),\n timeout: 10000,\n });\n }\n\n this.$emit(\"update:open\", false);\n this.$store.dispatch(\"calendar/refreshRatePlans\", undefined, {\n root: true,\n });\n this.callback();\n })\n .finally(() => {\n this.saving = false;\n });\n }\n }\n //#endregion\n\n //#region translations\n expandedTranslation = null as number | null;\n previewHtml = \"\";\n openPreview = false;\n\n addTranslation() {\n this.ratePlan.translations.push({\n id: 0,\n cultureCode: \"\",\n translation: \"\",\n subtitleTranslation: \"\",\n descriptionTranslation: \"\",\n });\n }\n\n removeTranslation(translation: RatePlanTranslation) {\n const index = this.ratePlan.translations.findIndex((x) => x == translation);\n if (index != -1) {\n this.ratePlan.translations.splice(index, 1);\n }\n }\n //#endregion\n\n //#region promo codes\n showPromoCode = false;\n initialPromoCodePrice = \"\";\n\n promoPriceDiffChange: PriceChange = {\n value: null,\n percentage: false,\n addition: false,\n subtraction: false,\n valid: true,\n };\n\n onPriceChanged(change: PriceChange) {\n Object.assign(this.promoPriceDiffChange, change);\n if (this.ratePlan.promoCode && (change.value || change.value === 0)) {\n this.ratePlan.promoCode.priceDifference = change.subtraction\n ? change.value * -1\n : change.value;\n this.ratePlan.promoCode.priceDifferenceIsAbsolute = !change.percentage;\n }\n }\n\n formatInitialPromoCodePrice() {\n if (\n this.ratePlan.promoCode?.priceDifference ||\n this.ratePlan.promoCode?.priceDifference === 0\n ) {\n this.initialPromoCodePrice =\n this.ratePlan.promoCode.priceDifference.toString();\n this.initialPromoCodePrice += !this.ratePlan.promoCode\n .priceDifferenceIsAbsolute\n ? \"%\"\n : \"\";\n }\n }\n\n addPromoCode() {\n this.showPromoCode = true;\n if (!this.ratePlan.promoCode) {\n this.ratePlan.promoCode = {\n id: 0,\n name: \"\",\n currencyId: this.ratePlan.currencyId,\n applicationMethodId:\n RatePlansPromoCodeApplicationMethodsEnum.OnlyWithCode,\n priceDifference: null,\n priceDifferenceIsAbsolute: false,\n isForService: false,\n isForAccommodation: true,\n };\n }\n }\n\n removePromoCode() {\n this.showPromoCode = false;\n this.ratePlan.promoCode = null;\n this.initialPromoCodePrice = \"\";\n }\n //#endregion\n\n //#region photos\n photo: PhotoViewModel | null = null;\n savingPhoto = false;\n dragging = false;\n filesToUpload: any = {};\n photoSrc: any = \"\";\n\n openPhotoForm() {\n this.photoFormOpen = true;\n }\n\n addPhoto() {\n (\n (this.$refs.photoInputRef as Vue).$el.lastElementChild?.firstElementChild\n ?.firstElementChild?.lastElementChild as HTMLElement\n ).click();\n }\n\n dropPhoto(e: any) {\n this.dragging = false;\n\n const imageTypeRegex = new RegExp(/image\\/*/);\n\n for (const file of e.dataTransfer.files) {\n if (!imageTypeRegex.test(file.type)) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotosUpload.NotAllImages\"),\n timeout: 5000,\n } as Notification);\n return;\n }\n }\n this.filesToUpload = e.dataTransfer.files;\n }\n\n @Watch(\"filesToUpload\")\n uploadPhoto() {\n if (!this.ratePlan.id) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"RatePlans.MustBeSavedFirst\"),\n timeout: 5000,\n } as Notification);\n }\n if (this.filesToUpload.length > 1) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotosUpload.CannotUploadMultiplePhotos\"),\n timeout: 5000,\n } as Notification);\n return;\n }\n\n if (!this.filesToUpload || this.filesToUpload.length == 0) {\n return;\n }\n\n const formData = new FormData();\n if (this.filesToUpload.length) {\n for (let i = 0; i < this.filesToUpload.length; i++) {\n formData.append(\"images\", this.filesToUpload[i]);\n }\n } else {\n formData.append(\"images\", this.filesToUpload);\n }\n\n this.savingPhoto = true;\n Vue.axios\n .post(`RatePlans/${this.ratePlan.id}/photos`, formData)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"PhotosUpload.Success\"),\n timeout: 5000,\n } as Notification);\n\n this.ratePlan.hasPhoto = true;\n this.loadPhoto();\n })\n .finally(() => (this.savingPhoto = false));\n }\n\n deletePhotoConfirmation() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PhotoDelete.Confirmation\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deletePhoto();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deletePhoto() {\n this.savingPhoto = true;\n Vue.axios\n .delete(\"RatePlans/\" + this.ratePlan.id + \"/Photo\")\n .then(() => {\n this.ratePlan.hasPhoto = false;\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotoDelete.Failed\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.savingPhoto = false;\n });\n }\n //#endregion\n\n //#region unit types\n availableUnitTypes = [] as UnitTypeViewModel[];\n selectedUnitTypes = [] as UnitTypeViewModel[];\n initialSelectedUnitTypes = [] as UnitTypeViewModel[];\n unitTypesFilter = \"\";\n\n unitTypeHeaders = [\n {\n text: \"Property\",\n value: \"propertyName\",\n },\n ];\n\n get translatedUnitTypeHeaders() {\n return this.unitTypeHeaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n get filteredUnitTypes() {\n if (!this.unitTypesFilter) return this.availableUnitTypes;\n\n return this.availableUnitTypes.filter((x) =>\n x.propertyName.toLowerCase().includes(this.unitTypesFilter.toLowerCase())\n );\n }\n\n get selectedUnitTypesCount() {\n return this.selectedUnitTypes.length;\n }\n\n areAllUnitTypeselected() {\n return !this.filteredUnitTypes.some(\n (e) => this.selectedUnitTypes.indexOf(e) === -1\n );\n }\n selectAllUnitTypes() {\n if (this.areAllUnitTypeselected()) {\n this.selectedUnitTypes = [];\n } else {\n const unselected = this.filteredUnitTypes.filter(\n (e) => this.selectedUnitTypes.indexOf(e) === -1\n );\n this.selectedUnitTypes = this.selectedUnitTypes.concat(unselected);\n }\n }\n\n selectUnitTypeRange(ids: number[]) {\n this.selectedUnitTypes = this.availableUnitTypes.filter((x) =>\n ids.includes(x.accomodationUnitTypeId)\n );\n this.initialSelectedUnitTypes = this.availableUnitTypes.filter((x) =>\n ids.includes(x.accomodationUnitTypeId)\n );\n }\n\n areNewAUTsSelected(\n initialSelectedAUTs: UnitTypeViewModel[],\n selectedAUTs: UnitTypeViewModel[]\n ) {\n const existingAUTIds = initialSelectedAUTs.map(\n (x) => x.accomodationUnitTypeId\n );\n const newAUTIds = selectedAUTs.map((x) => x.accomodationUnitTypeId);\n\n if (newAUTIds.length > existingAUTIds.length) return true;\n\n if (newAUTIds.some((x) => !existingAUTIds.includes(x))) return true;\n\n return false;\n }\n\n //#endregion\n\n //#region occupancy based rules\n occupancyBasedRules = [] as RatePlanOccupancyBasedRule[];\n occupancyBasedRulesFilter = \"\";\n\n occupancyBasedRulesHeaders = [\n ...this.unitTypeHeaders,\n {\n text: \"RatePlan.NumberOfOBRs\",\n value: \"numberOfObrs\",\n sortable: false,\n filterable: false,\n },\n ];\n\n get translatedHeadersObr() {\n return this.occupancyBasedRulesHeaders.map((x) => ({\n ...x,\n text: this.$t(x.text),\n }));\n }\n\n get groupedOccupancyBasedRules() {\n const filteredUnitTypes = this.occupancyBasedRulesFilter\n ? this.selectedUnitTypes.filter((x) =>\n x.propertyName\n .toLowerCase()\n .includes(this.occupancyBasedRulesFilter.toLowerCase())\n )\n : this.selectedUnitTypes;\n\n return filteredUnitTypes.map((x) => {\n return {\n accomodationUnitTypeId: x.accomodationUnitTypeId,\n name: x.name,\n propertyName: x.propertyName,\n occupancyBasedRules: this.occupancyBasedRules\n .filter((r) => r.accomodationUnitTypeId === x.accomodationUnitTypeId)\n .sort((a, b) => a.minPersons - b.minPersons),\n };\n });\n }\n\n get ratePlanAccUnitTypesWithObRulesCount() {\n return this.selectedUnitTypes.filter((x) => x.paxlosCombinations.length > 1)\n .length;\n }\n\n // map occupancy based rules whenever the list of selected unit types changes\n // any rules which are already in the list are kept as-is when new unit types are selected\n // if the rate plan has any rules fetched from the server when the form is opened they are added to the list as-is when their unit type is selected\n @Watch(\"selectedUnitTypes\", { deep: true, immediate: true })\n selectedUnitTypesOccupancyBasedRulesWatch(fresh: UnitTypeViewModel[]) {\n if (fresh.length === 0) {\n this.occupancyBasedRules = [];\n return;\n }\n\n let existingRules = _.cloneDeep(this.occupancyBasedRules);\n const selectedUnitsIds = fresh.map((x) => x.accomodationUnitTypeId);\n existingRules = existingRules.filter((x) =>\n selectedUnitsIds.includes(x.accomodationUnitTypeId)\n );\n\n const allRules = fresh.flatMap((ut) =>\n ut.paxlosCombinations.map((c) => {\n return {\n id: -1,\n accomodationUnitTypeId: ut.accomodationUnitTypeId,\n accomodationUnitTypesPAXCategoryId:\n c.accomodationUnitTypesPAXCategoryId,\n accomodationUnitTypesLOSCategoryId:\n c.accomodationUnitTypesLOSCategoryId,\n minPersons: c.minPersons,\n maxPersons: c.maxPersons,\n minStay: c.minStay,\n maxStay: c.maxStay,\n priceDifference: null,\n priceDifferenceIsAbsolute: null,\n isDefault: c.isDefault,\n } as RatePlanOccupancyBasedRule;\n })\n );\n\n if (this.ratePlan.ratePlanAccomodationUnitTypes.length !== 0) {\n this.ratePlan.ratePlanAccomodationUnitTypes.forEach((rput) => {\n const rule = allRules.find(\n (r) =>\n r.accomodationUnitTypeId === rput.accomodationUnitTypeId &&\n r.accomodationUnitTypesPAXCategoryId ===\n rput.accomodationUnitTypesPAXCategoryId &&\n r.accomodationUnitTypesLOSCategoryId ===\n rput.accomodationUnitTypesLOSCategoryId\n );\n\n if (rule) {\n rule.id = rput.id;\n rule.priceDifference = rput.priceDifference;\n rule.priceDifferenceIsAbsolute = rput.priceDifferenceIsAbsolute;\n }\n });\n }\n\n this.occupancyBasedRules = _.unionBy(\n existingRules,\n allRules,\n (x) =>\n `${x.id}_${x.accomodationUnitTypeId}_${x.accomodationUnitTypesPAXCategoryId}_${x.accomodationUnitTypesLOSCategoryId}`\n );\n }\n //#endregion\n\n //#region helper functions\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n resetDerivedPlanValues() {\n this.ratePlan.parentRatePlanId = undefined;\n this.ratePlan.priceDifferenceIsAbsolute = undefined;\n this.ratePlan.priceDifference = undefined;\n }\n\n // scroll to add on services when opened\n servicesPanelOpened(index: number) {\n if (index === 0) {\n setTimeout(() => {\n const x = this.$refs.servicesPanel as any;\n x.$el.scrollIntoView({ behavior: \"smooth\" });\n }, 350);\n }\n }\n\n //#endregion\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanForm.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlanForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlanForm.vue?vue&type=template&id=24d35220&scoped=true&\"\nimport script from \"./RatePlanForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlanForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlanForm.vue?vue&type=style&index=0&id=24d35220&scoped=true&lang=scss&\"\nimport style1 from \"./RatePlanForm.vue?vue&type=style&index=1&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 \"24d35220\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBadge,VBtn,VCard,VCardActions,VCardText,VCheckbox,VChip,VCol,VDataTable,VDivider,VExpandTransition,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VFadeTransition,VFileInput,VForm,VIcon,VImg,VOverlay,VProgressCircular,VProgressLinear,VRow,VSelect,VSkeletonLoader,VSpacer,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTextarea,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport {\n RatePlanTilesModel,\n RatePlanTypeFilterEnum,\n} from \"@/shared/models/ratePlanModel\";\nimport RatePlanForm from \"./RatePlanForm.vue\";\nimport { Notification } from \"../store/modules/notifications\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\nimport NoData from \"@/components/misc/NoData.vue\";\n\n@Component({\n components: {\n RatePlanForm,\n NoData,\n },\n})\nexport default class RatePlansTiles extends Vue { \n ratePlans: RatePlanTilesModel[] = [];\n\n loading = true;\n deleting = false;\n\n mounted() {\n this.load();\n }\n\n get filterOptions() {\n return [\n {\n id: RatePlanTypeFilterEnum.All,\n name: \"RatePlans.All\",\n },\n {\n id: RatePlanTypeFilterEnum.Normal,\n name: \"RatePlans.Normal\",\n },\n {\n id: RatePlanTypeFilterEnum.ActiveOffers,\n name: \"RatePlans.ActiveOffers\",\n },\n {\n id: RatePlanTypeFilterEnum.AllOffers,\n name: \"RatePlans.AllOffers\",\n },\n ];\n }\n\n filters = {\n ratePlanType: RatePlanTypeFilterEnum.All,\n };\n\n @Watch(\"filters\", { deep: true })\n filtersWatch() {\n this.load();\n }\n\n load() {\n this.loading = true;\n this.ratePlans = [];\n Vue.axios\n .get>(\"RatePlans\", {\n params: this.filters,\n })\n .then((res) => {\n this.ratePlans = [];\n if(\n this.filters.ratePlanType == RatePlanTypeFilterEnum.ActiveOffers || \n this.filters.ratePlanType == RatePlanTypeFilterEnum.AllOffers\n ) {\n this.ratePlans = res.data.result;\n }\n else {\n for (const ratePlan of res.data.result.filter((x) => !x.isDerived)) {\n this.ratePlans.push(ratePlan);\n\n this.ratePlans.push(\n ...res.data.result.filter((x) => x.parentRatePlanId == ratePlan.id)\n );\n }\n }\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n formOpen = false;\n formRatePlanId: number | null = null;\n formParentRatePlanId: number | null = null;\n addRatePlan() {\n this.formRatePlanId = null;\n this.formParentRatePlanId = null;\n this.formOpen = true;\n }\n\n editRatePlan(ratePlanId: number) {\n this.formRatePlanId = ratePlanId;\n this.formParentRatePlanId = null;\n this.formOpen = true;\n }\n\n createDerivedRatePlan(ratePlan: RatePlanTilesModel) {\n if (ratePlan.isSpecialOffer) return;\n this.formRatePlanId = null;\n this.formParentRatePlanId = ratePlan.id;\n this.formOpen = true;\n }\n\n deleteRatePlan(ratePlan: RatePlanTilesModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"RatePlan.DeleteConfirmation\", {\n value: ratePlan?.name,\n }),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed(ratePlan.id, []);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteConfirmed(id: number, overrides: string[]) {\n const handleCodes = [\"RatePlan.DeleteConfirmation.LastOnUnitType\", \"RatePlan.DeleteValidation.OtaSync\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n this.deleting = true;\n Vue.axios\n .delete(`/RatePlans/${id}`, {\n data: { overrideRules: overrides },\n adapter: isOverriding ? undefined : adapter,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"RatePlan.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n\n this.load();\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)} ${this.$t(\"Do you wish to continue anyway?\")}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.deleteConfirmed(id, x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.deleting = false;\n });\n }\n\n getIncludesText(ratePlan: RatePlanTilesModel) {\n const includes: string[] = [];\n if (ratePlan.includesBreakfast) {\n includes.push(this.$t(\"breakfast\").toString());\n }\n if (ratePlan.includesLunch) {\n includes.push(this.$t(\"lunch\").toString());\n }\n if (ratePlan.includesDinner) {\n includes.push(this.$t(\"dinner\").toString());\n }\n\n if (includes.length > 0) {\n return this.$t(\"Includes\") + \" \" + includes.join(\", \");\n } else {\n return \"\";\n }\n }\n\n getStatusText(ratePlan: RatePlanTilesModel) {\n if (!ratePlan.isSpecialOffer) {\n return \"\";\n }\n\n return (\n this.$t(\"RatePlans.SpecialOrPackageOffer\") +\n (ratePlan.isExpired ? ` - ${this.$t(\"RatePlans.Expired\")}` : \"\") +\n (ratePlan.isDeactivated ? ` - ${this.$t(\"RatePlans.Deactivated\")}` : \"\")\n );\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlansTiles.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlansTiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlansTiles.vue?vue&type=template&id=720de1ae&scoped=true&\"\nimport script from \"./RatePlansTiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlansTiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlansTiles.vue?vue&type=style&index=0&id=720de1ae&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 \"720de1ae\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VCol,VFadeTransition,VIcon,VOverlay,VProgressCircular,VRow,VSelect,VSkeletonLoader,VSpacer})\n","\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport RatePlansTiles from \"@/components/RatePlansTiles.vue\";\nimport GlobalFilterSensitiveMixin from '@/mixins/GlobalFilterSensitiveMixin';\n\n@Component({\n components: {\n RatePlansTiles,\n },\n mixins: [\n GlobalFilterSensitiveMixin\n ]\n})\nexport default class Reservations extends Vue {}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlans.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlans.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RatePlans.vue?vue&type=template&id=60328633&scoped=true&\"\nimport script from \"./RatePlans.vue?vue&type=script&lang=ts&\"\nexport * from \"./RatePlans.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RatePlans.vue?vue&type=style&index=0&id=60328633&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 \"60328633\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"finances\"},[(_vm.loaded)?_c('FinancesTable',{key:_vm.sensitiveKey,staticClass:\"finances-table\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : '',on:{\"open-reservation\":_vm.openModal}}):_vm._e(),_c('ReservationModal',{attrs:{\"open\":_vm.reservationModalOpen,\"reservationId\":_vm.reservationId},on:{\"update:open\":function($event){_vm.reservationModalOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport FinancesTable from \"@/components/finances/PagedFinancesTable.vue\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport ReservationModal from \"@/components/reservation-form/ReservationModal.vue\";\nimport { Action } from \"vuex-class\";\n\n@Component({\n components: {\n FinancesTable,\n ReservationModal,\n },\n mixins: [GlobalFilterSensitiveMixin],\n})\nexport default class Finances extends Vue {\n @Action(\"globalFilters/refreshFilter\") refreshFilter?: ( replace?: boolean ) => void;\n\n reservationModalOpen = false;\n reservationId = 0;\n loaded = false;\n \n async openModal(reservationId: number) {\n this.reservationId = reservationId;\n let reservationExists = false;\n \n await Vue.axios\n .get(`Reservations/ReservationExists/${this.reservationId}`)\n .then((res) => {\n reservationExists = res.data;\n\n if(reservationExists){\n this.reservationModalOpen = true;\n }\n else{ \n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Reservation.Deleted\"),\n timeout: 5000,\n });\n }\n }); \n }\n\n async created() {\n if(this.refreshFilter){\n this.refreshFilter();\n }\n }\n\n @Watch(\"sensitiveKey\", {immediate: false})\n watchSensitiveKeyChange()\n {\n this.loaded = true;\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Finances.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Finances.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Finances.vue?vue&type=template&id=61f5be58&scoped=true&\"\nimport script from \"./Finances.vue?vue&type=script&lang=ts&\"\nexport * from \"./Finances.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Finances.vue?vue&type=style&index=0&id=61f5be58&scoped=true&lang=scss&\"\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 \"61f5be58\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"customers d-flex flex-column fill-height\"},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Customers.All\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Customers.ReservationHolder\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Customers.Guest\")))]),(_vm.tenantTypeId === 2)?_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Customers.Owner\")))]):_vm._e()],1),_c('v-tabs-items',{staticClass:\"fill-height\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('CustomersTable',{key:_vm.sensitiveKey,ref:\"all\",staticClass:\"customers-table\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' ),attrs:{\"custmerType\":\"all\"},on:{\"refresh\":_vm.refreshAll}})],1),_c('v-tab-item',[_c('CustomersTable',{key:_vm.sensitiveKey,ref:\"reservationHolder\",staticClass:\"customers-table\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' ),attrs:{\"custmerType\":\"reservationHolder\"},on:{\"refresh\":_vm.refreshAll}})],1),_c('v-tab-item',[_c('CustomersTable',{key:_vm.sensitiveKey,ref:\"guest\",staticClass:\"customers-table\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' ),attrs:{\"custmerType\":\"guest\"},on:{\"refresh\":_vm.refreshAll}})],1),(_vm.tenantTypeId === 2)?_c('v-tab-item',[_c('CustomersTable',{key:_vm.sensitiveKey,ref:\"owner\",staticClass:\"customers-table\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' ),attrs:{\"custmerType\":\"owner\"},on:{\"refresh\":_vm.refreshAll}})],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"customers\"},[_c('SortableHeadersTable',{staticClass:\"row-double-clickable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"expanded\":_vm.expanded,\"loading\":_vm.loading,\"headers\":_vm.headers,\"expandedRow\":_vm.expandedRow,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"customers\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:expandedRow\":function($event){_vm.expandedRow=$event},\"update:expanded-row\":function($event){_vm.expandedRow=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick,\"menu:excel\":_vm.exportToExcel},scopedSlots:_vm._u([{key:\"header.name\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.name),callback:function ($$v) {_vm.$set(_vm.filters, \"name\", $$v)},expression:\"filters.name\"}})]}},{key:\"item.countryOfResidenceName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(item.countryOfResidenceName)))])]}},{key:\"header.eMail\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.eMail),callback:function ($$v) {_vm.$set(_vm.filters, \"eMail\", $$v)},expression:\"filters.eMail\"}})]}},{key:\"header.telephoneNumber\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.filters, \"telephoneNumber\", $$v)},expression:\"filters.telephoneNumber\"}})]}},{key:\"header.identificationNumber\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.identificationNumber),callback:function ($$v) {_vm.$set(_vm.filters, \"identificationNumber\", $$v)},expression:\"filters.identificationNumber\"}})]}},{key:\"item.identificationDocumentTypeId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( _vm.identificationDocumentTypeStyle(item.identificationDocumentTypeId) .textResourceKey ))+\" \")])]}},{key:\"item.isLegalEntity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isLegalEntity,\"disabled\":\"\"}})]}},{key:\"expanded-item\",fn:function(ref){\nvar headers = ref.headers;\nvar item = ref.item;\nreturn [_c('td',{attrs:{\"colspan\":headers.length}},[_c('v-edit-dialog',{staticClass:\"editable-trigger\",attrs:{\"return-value\":item.remarks,\"large\":\"\",\"save-text\":_vm.$t('Save'),\"cancel-text\":_vm.$t('Cancel')},on:{\"update:returnValue\":function($event){return _vm.$set(item, \"remarks\", $event)},\"update:return-value\":function($event){return _vm.$set(item, \"remarks\", $event)},\"save\":function($event){return _vm.saveRemark(item)}},scopedSlots:_vm._u([{key:\"input\",fn:function(){return [_c('v-text-field',{ref:\"editDialog\",attrs:{\"label\":_vm.$t('Remarks'),\"counter\":\"\",\"auto-grow\":\"\",\"rows\":\"5\",\"rules\":[_vm.rules.maxLength]},model:{value:(item.remarks),callback:function ($$v) {_vm.$set(item, \"remarks\", $$v)},expression:\"item.remarks\"}})]},proxy:true}],null,true)},[_c('div',{staticClass:\"editable-trigger-2\"},[_c('v-icon',{staticClass:\"mr-2 fa-fw fa-w-16\"},[_vm._v(\"fas fa-exclamation-circle\")]),_c('div',[_vm._v(\" \"+_vm._s(item.remarks)+\" \")])],1)])],1)]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"z-index\":\"0\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openItemDetails(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openReservationsTab(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-concierge-bell\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Reservations\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openMessages(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-comments\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Messages\")))])],1)],1),_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-address-book\"}})],1):_vm._e()]},proxy:true}])}),_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addItem()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('CustomerForm',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":_vm.customerFormCustomerId},on:{\"update:open\":function($event){_vm.customerFormOpen=$event},\"saved\":_vm.refreshAll}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport GenericPMSTableMenu from \"@/components/generic-pms-table/GenericPMSTableMenu.vue\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableTable from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport CustomerForm from \"@/components/CustomerForm.vue\";\nimport * as _ from \"lodash\";\nimport { Notification } from \"../store/modules/notifications\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport { CustomerTypeEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n GenericPMSTableMenu,\n SortableHeadersTable,\n CustomerForm,\n NoData,\n },\n directives: {\n SortableTable,\n },\n})\nexport default class CustomersTable extends Vue {\n settingsOpen = false;\n\n @Prop() custmerType?: \"all\" | \"reservationHolder\" | \"guest\" | \"owner\";\n\n mounted() {\n if (\n !this.identificationDocumentTypes ||\n this.identificationDocumentTypes.length == 0\n ) {\n this.refreshIdentificationDocumentTypes?.();\n }\n\n if (this.custmerType === \"all\") {\n this.filters.customerTypeId = null;\n }\n if (this.custmerType === \"reservationHolder\") {\n this.filters.customerTypeId = CustomerTypeEnum.ReservationHolder;\n }\n if (this.custmerType === \"guest\") {\n this.filters.customerTypeId = CustomerTypeEnum.Guest;\n }\n if (this.custmerType === \"owner\") {\n this.filters.customerTypeId = CustomerTypeEnum.Owner;\n }\n }\n\n headers: SortableTableHeader[] = [\n {\n text: \"VCustomer.name\",\n value: \"name\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"name\"],\n },\n {\n text: \"VCustomer.countryOfResidenceName\",\n value: \"countryOfResidenceName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"countryOfResidenceName\"],\n },\n {\n text: \"VCustomer.eMail\",\n value: \"eMail\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"eMail\"],\n },\n {\n text: \"VCustomer.telephoneNumber\",\n value: \"telephoneNumber\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"telephoneNumber\"],\n },\n {\n text: \"VCustomer.identificationNumber\",\n value: \"identificationNumber\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"identificationNumber\"],\n },\n {\n text: \"VCustomer.isLegalEntity\",\n value: \"isLegalEntity\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"isLegalEntity\"],\n align: \"center\",\n },\n {\n text: \"VCustomer.identificationDocumentType\",\n value: \"identificationDocumentTypeId\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"identificationDocumentTypeId\"],\n },\n {\n text: \"VCustomer.numberOfReservations\",\n value: \"numberOfReservations\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"numberOfReservations\"],\n },\n {\n text: \"VCustomer.numberOfStays\",\n value: \"numberOfStays\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"numberOfStays\"],\n },\n {\n text: \"VCustomer.numberOfNights\",\n value: \"numberOfNights\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"numberOfNights\"],\n },\n {\n text: \"VCustomer.numberOfCancelations\",\n value: \"numberOfCancelations\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"numberOfCancelations\"],\n },\n {\n text: \"VCustomer.numberOfNoShows\",\n value: \"numberOfNoShows\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"numberOfNoShows\"],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n\n expandedRow: SortableTableHeader = {\n text: \"VCustomer.remarks\",\n value: \"expandedRow\",\n active: false,\n default: false,\n exportHeaders: [\"remarks\"],\n };\n\n filters = {\n name: \"\",\n eMail: \"\",\n telephoneNumber: \"\",\n identificationNumber: \"\",\n countryOfResidenceName: null,\n customerTypeId: null as any,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n get translatedActiveHeaders() {\n return this.headers\n .filter((x) => x.active)\n .map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n @Ref(\"editDialog\") editDialog?: {\n validate: () => boolean;\n };\n\n saveRemark(item: VCustomer) {\n const dialogValid = this.editDialog?.validate();\n if (!dialogValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Customers.RemarksLenght\",\n timeout: 5000,\n localize: true,\n } as Notification);\n\n this.load();\n return;\n }\n Vue.axios\n .post(`/Customers/UpdateCustomerRemark`, {\n id: item.id,\n remarks: item.remarks,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Customers.RemarkEditSuccess\"),\n timeout: 5000,\n } as Notification);\n });\n }\n\n get rules() {\n return {\n maxLength: (value: string) =>\n !value ||\n value.length <= 500 ||\n this.$t(\"Validation.MaxLength\", { count: 500 }),\n };\n }\n\n customerFormOpen = false;\n customerFormCustomerId: number | null = null;\n rowDoubleClick(e: MouseEvent, { item }: { item: VCustomer }) {\n this.openItemDetails(item);\n }\n openItemDetails(item: VCustomer) {\n this.customerFormCustomerId = item.id;\n this.customerFormOpen = true;\n }\n addItem() {\n this.customerFormCustomerId = null;\n this.customerFormOpen = true;\n }\n\n deleteItem(item: VCustomer) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${item?.name}'`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteItemConfirm({ id }: { id: number }) {\n Vue.axios\n .delete(`/customers/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"Customer.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.$emit(\"refresh\");\n });\n }\n\n openReservationsTab(item: VCustomer) {\n this.$router.push({\n name: \"Customers.Reservations\",\n query: {\n customerRole: this.filters.customerTypeId,\n customerId: item.id.toString(),\n },\n });\n }\n\n openMessages(id: number) {\n this.$router.push({\n name: \"Messages\",\n query: {\n customerId: id.toString(),\n },\n });\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"orderByName\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n get expanded() {\n if (this.expandedRow.active) {\n return this.list.result.filter((x) => !!x.remarks);\n } else {\n return [];\n }\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/customers\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n refresh() {\n this.debouncedLoad();\n }\n\n refreshAll() {\n this.$emit(\"refresh\");\n }\n\n exportToExcel() {\n this.loading = true;\n\n return this.axios\n .get(\"customers/export/excel\", {\n params: {\n ...this.queryParams,\n $skip: 0,\n $top: null,\n headers: this.headers\n .concat(this.expandedRow)\n .filter((h) => h.active)\n .flatMap((h) => h.exportHeaders)\n .join(\",\"),\n },\n responseType: \"blob\",\n })\n .then((res) => {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Customers.xlsx\");\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == 'name' ? [\"orderByName\"] : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n };\n }\n\n isLegalEntity(value: number) {\n return value === 1;\n }\n\n @Getter(\"codebooks/identificationDocumentTypes\")\n identificationDocumentTypes?: IdentificationDocumentType[];\n @Action(\"codebooks/refreshIdentificationDocumentTypes\")\n refreshIdentificationDocumentTypes?: () => Promise;\n\n identificationDocumentTypeStyle(identificationDocumentTypeId: number) {\n if (this.identificationDocumentTypes) {\n return (\n this.identificationDocumentTypes.find(\n (x) => x.id == identificationDocumentTypeId\n ) ?? {}\n );\n }\n\n return {};\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomersTable.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomersTable.vue?vue&type=template&id=6291c153&scoped=true&\"\nimport script from \"./CustomersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomersTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CustomersTable.vue?vue&type=style&index=0&id=6291c153&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 \"6291c153\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VEditDialog } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VEditDialog,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VSimpleCheckbox,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Ref } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport CustomersTable from \"@/components/CustomersTable.vue\";\nimport GlobalFilterSensitiveMixin from '@/mixins/GlobalFilterSensitiveMixin';\n\n@Component({\n components: {\n CustomersTable\n },\n mixins: [\n GlobalFilterSensitiveMixin\n ]\n})\nexport default class Customers extends Vue {\n\n @Ref(\"all\") all?: CustomersTable;\n @Ref(\"reservationHolder\") reservationHolder?: CustomersTable;\n @Ref(\"guest\") guest?: CustomersTable;\n @Ref(\"owner\") owner?: CustomersTable;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n get tab() {\n const tab = this.$route.query.tab;\n return tab && !isNaN(+tab) ? +tab - 1 : 0;\n }\n\n set tab(fresh: number) {\n this.$router.replace({\n path: this.$route.path,\n params: this.$route.params,\n query: { tab: (fresh + 1).toString() },\n replace: true,\n });\n }\n\n refreshAll() {\n this.all?.refresh();\n this.reservationHolder?.refresh();\n this.guest?.refresh();\n this.owner?.refresh();\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Customers.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Customers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Customers.vue?vue&type=template&id=16b4a56d&scoped=true&\"\nimport script from \"./Customers.vue?vue&type=script&lang=ts&\"\nexport * from \"./Customers.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Customers.vue?vue&type=style&index=0&id=16b4a56d&scoped=true&lang=scss&\"\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 \"16b4a56d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabItem,VTabs,VTabsItems})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column fill-height\"},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"EVisitors.NotCheckedIn\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"EVisitors.CheckedIn\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"EVisitors.CheckedOut\")))])],1),_c('v-tabs-items',{staticClass:\"fill-height\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('EVisitorTable',{key:_vm.sensitiveKey,ref:\"notCheckedIn\",staticClass:\"evisitors-table\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : '',attrs:{\"status\":'notCheckedIn',\"tableName\":\"evisitors_notCheckedIn\"},on:{\"open-reservation\":_vm.openReservation,\"refresh\":_vm.refreshAll}})],1),_c('v-tab-item',[_c('EVisitorTable',{key:_vm.sensitiveKey,ref:\"checkedIn\",staticClass:\"evisitors-table\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : '',attrs:{\"status\":'checkedIn',\"tableName\":\"evisitors_checkedIn\"},on:{\"open-reservation\":_vm.openReservation,\"refresh\":_vm.refreshAll}})],1),_c('v-tab-item',[_c('EVisitorTable',{key:_vm.sensitiveKey,ref:\"checkedOut\",staticClass:\"evisitors-table\",class:_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' : '',attrs:{\"status\":'checkedOut',\"tableName\":\"evisitors_checkedOut\"},on:{\"open-reservation\":_vm.openReservation,\"refresh\":_vm.refreshAll}})],1)],1),_c('ReservationModal',{attrs:{\"open\":_vm.reservationModalOpen,\"reservationId\":_vm.reservationId},on:{\"update:open\":function($event){_vm.reservationModalOpen=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Ref } from \"vue-property-decorator\";\nimport EVisitorTable from \"@/components/EVisitorTable.vue\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport ReservationModal from \"@/components/reservation-form/ReservationModal.vue\";\n\n@Component({\n components: {\n EVisitorTable,\n ReservationModal,\n },\n mixins: [GlobalFilterSensitiveMixin],\n})\nexport default class EVisitors extends Vue {\n reservationModalOpen = false;\n reservationId = 0;\n\n async openReservation(id: number) {\n this.reservationId = id;\n let reservationExists = false;\n \n await Vue.axios\n .get(`Reservations/ReservationExists/${this.reservationId}`)\n .then((res) => {\n reservationExists = res.data;\n\n if(reservationExists){\n this.reservationModalOpen = true;\n }\n else{ \n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Reservation.Deleted\"),\n timeout: 5000,\n });\n }\n }); \n }\n\n @Ref(\"notCheckedIn\") notCheckedInTable?: EVisitorTable;\n @Ref(\"checkedIn\") checkedInTable?: EVisitorTable;\n @Ref(\"checkedOut\") checkedOutTable?: EVisitorTable;\n\n refreshAll() {\n this.notCheckedInTable?.refresh();\n this.checkedInTable?.refresh();\n this.checkedOutTable?.refresh();\n }\n\n get tab() {\n const tab = this.$route.query.tab;\n return tab && !isNaN(+tab) ? +tab - 1 : 0;\n }\n\n set tab(fresh: number) {\n this.$router.replace({\n path: this.$route.path,\n params: this.$route.params,\n query: { tab: (fresh + 1).toString() },\n replace: true,\n });\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitors.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitors.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EVisitors.vue?vue&type=template&id=684999e4&scoped=true&\"\nimport script from \"./EVisitors.vue?vue&type=script&lang=ts&\"\nexport * from \"./EVisitors.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EVisitors.vue?vue&type=style&index=0&id=684999e4&scoped=true&lang=scss&\"\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 \"684999e4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabItem,VTabs,VTabsItems})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('div',{staticClass:\"wrapper\",class:{ mobile: _vm.$vuetify.breakpoint.mobile }},[_c('div',{staticClass:\"lang-picker-wrapper\"},[_c('LangPicker',{attrs:{\"hide-labels\":true,\"single-line\":true,\"dense\":true}})],1),_c('div',{staticClass:\"img-wrapper\"}),_c('div',{staticClass:\"form-wrapper\"},[_c('div',{staticClass:\"form-wrapper-inner\"},[_c('div',{staticClass:\"logo-wrapper\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/logo-colored.svg\"),\"alt\":\"logo\"}})]),(_vm.isSignin)?_c('div',[_c('h1',{staticClass:\"primary--text\",domProps:{\"textContent\":_vm._s(_vm.$t(_vm.title))}}),_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@/assets/images/nokumo-text-light-blue.svg\")}})]):_c('div',[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@/assets/images/nokumo-text-light-blue.svg\")}}),_c('h1',{staticClass:\"primary--text mb-4\",domProps:{\"textContent\":_vm._s(_vm.$t(_vm.title))}})]),_c('router-view')],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { Getter } from 'vuex-class';\nimport LangPicker from \"@/components/misc/LangPicker.vue\";\n\n@Component({\n components: {\n LangPicker\n }\n})\nexport default class AuthLayout extends Vue {\n @Getter(\"isDarkTheme\") isDarkTheme?: boolean;\n \n get title() {\n return this.$route.meta?.title ?? this.$route.name;\n }\n\n get isSignin() {\n return this.$route.meta?.title === \"SigninTo\";\n }\n\n mounted() {\n this.$vuetify.theme.dark = false;\n }\n\n destroyed() {\n this.$vuetify.theme.dark = this.isDarkTheme || false;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_AuthLayout.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./_AuthLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./_AuthLayout.vue?vue&type=template&id=76cd2daa&scoped=true&\"\nimport script from \"./_AuthLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./_AuthLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./_AuthLayout.vue?vue&type=style&index=0&id=76cd2daa&lang=scss&scoped=true&\"\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 \"76cd2daa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{attrs:{\"disabled\":_vm.isSubmitting},on:{\"submit\":function($event){$event.preventDefault();return _vm.signin()}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-text-field',{attrs:{\"type\":\"search\",\"autocomplete\":\"off\",\"rules\":[_vm.rules.required(_vm.model.username)],\"label\":_vm.$t('Username'),\"tabindex\":\"1\",\"outlined\":\"\",\"color\":\"#2790e5\",\"autofocus\":\"\"},on:{\"input\":function($event){_vm.showErrors = false}},model:{value:(_vm.model.username),callback:function ($$v) {_vm.$set(_vm.model, \"username\", $$v)},expression:\"model.username\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('Password') + '*',\"rules\":[_vm.rules.required(_vm.model.password)],\"type\":_vm.showPassword ? 'text' : 'password',\"tabindex\":\"2\",\"outlined\":\"\",\"color\":\"#2790e5\"},on:{\"input\":function($event){_vm.showErrors = false}},model:{value:(_vm.model.password),callback:function ($$v) {_vm.$set(_vm.model, \"password\", $$v)},expression:\"model.password\"}},[_c('template',{slot:\"append\"},[_c('span',{staticClass:\"cursor-pointer\",on:{\"click\":function($event){_vm.showPassword = !_vm.showPassword}}},[(_vm.showPassword)?_c('v-icon',[_vm._v(\"fa-eye-slash\")]):_c('v-icon',[_vm._v(\"fa-eye\")])],1)])],2),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.isSubmitting,\"tabindex\":\"3\",\"width\":\"100%\",\"height\":\"48\",\"depressed\":\"\"}},[_vm._v(_vm._s(_vm.$t(\"Signin\")))]),(_vm.showErrors)?_c('div',{staticClass:\"errors-wrapper\"},_vm._l((_vm.errors),function(error,index){return _c('div',{key:index,staticClass:\"error--text text-caption\"},[_vm._v(\" \"+_vm._s(_vm.$t(error))+\" \")])}),0):_vm._e(),_c('v-btn',{staticClass:\"forgotten-password-btn\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":\"/forgotten-password\",\"color\":\"primary\",\"tabindex\":\"3\"}},[_vm._v(_vm._s(_vm.$t(\"Forgotten password\")))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport router from \"@/router\";\nimport { BrokenRule } from \"@/shared/models/apiErrors\";\n\nexport class LoginModel {\n username = \"\";\n password = \"\";\n}\n\n@Component\nexport default class Signin extends Vue {\n model = new LoginModel();\n\n isFormValid = false;\n isSubmitting = false;\n showPassword = false;\n\n showErrors = false;\n errors: string[] = [];\n\n get submitDisabled(): boolean {\n return this.isFormValid && !this.isSubmitting;\n }\n\n get rules() {\n return {\n required: (value: string) => !!value || this.$t(\"Validation.Required\"),\n };\n }\n\n async signin(): Promise {\n this.isSubmitting = true;\n\n const signin = await this.$store.dispatch(\n \"auth/checkIfFirstSignin\",\n this.model\n );\n\n if (signin.isSignedIn) {\n await router.replace({ name: \"Dashboard\" });\n } else {\n this.errors = signin.errors.map((x: BrokenRule) => x.name);\n if (this.errors.length > 0) {\n this.showErrors = true;\n }\n }\n\n this.isSubmitting = false;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signin.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signin.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Signin.vue?vue&type=template&id=0b1cf970&scoped=true&\"\nimport script from \"./Signin.vue?vue&type=script&lang=ts&\"\nexport * from \"./Signin.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Signin.vue?vue&type=style&index=0&id=0b1cf970&lang=scss&scoped=true&\"\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 \"0b1cf970\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VForm,VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isExpired)?_c('v-form',{attrs:{\"disabled\":_vm.isSubmitting},on:{\"submit\":function($event){$event.preventDefault();return _vm.send()}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('form-description',[_vm._v(_vm._s(_vm.$t(\"ResetPassword.Description\", { email: _vm.email })))]),_c('v-text-field',{attrs:{\"rules\":[_vm.rules.Required],\"label\":_vm.$t('Password') + '*',\"type\":_vm.showPassword1 ? 'text' : 'password',\"tabindex\":\"1\",\"outlined\":\"\",\"color\":\"#2790e5\",\"autofocus\":\"\"},on:{\"input\":function($event){_vm.showErrors = false}},model:{value:(_vm.model.password),callback:function ($$v) {_vm.$set(_vm.model, \"password\", $$v)},expression:\"model.password\"}},[_c('template',{slot:\"append\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"tabindex\":\"-1\"},on:{\"click\":function($event){_vm.showPassword1 = !_vm.showPassword1}}},[(_vm.showPassword1)?_c('v-icon',[_vm._v(\"fa-eye-slash\")]):_c('v-icon',[_vm._v(\"fa-eye\")])],1)],1)],2),_c('v-text-field',{attrs:{\"rules\":[\n // prettier-ignore\n _vm.rules.PasswordsMustMatch ? _vm.rules.PasswordsMustMatch(_vm.repeatedPassword, _vm.model.password) : '',\n _vm.rules.Required ],\"label\":_vm.$t('Password confirm') + '*',\"type\":_vm.showPassword2 ? 'text' : 'password',\"tabindex\":\"2\",\"outlined\":\"\",\"color\":\"#2790e5\"},on:{\"input\":function($event){_vm.showErrors = false}},model:{value:(_vm.repeatedPassword),callback:function ($$v) {_vm.repeatedPassword=$$v},expression:\"repeatedPassword\"}},[_c('template',{slot:\"append\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"tabindex\":\"-1\"},on:{\"click\":function($event){_vm.showPassword2 = !_vm.showPassword2}}},[(_vm.showPassword2)?_c('v-icon',[_vm._v(\"fa-eye-slash\")]):_c('v-icon',[_vm._v(\"fa-eye\")])],1)],1)],2),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.isSubmitting,\"tabindex\":\"3\",\"width\":\"100%\",\"height\":\"48\",\"depressed\":\"\"}},[_vm._v(_vm._s(_vm.$t(\"Reset password\"))+\" \")]),(_vm.showErrors)?_c('div',{staticClass:\"errors-wrapper\"},_vm._l((_vm.errors),function(error,index){return _c('div',{key:index,staticClass:\"error--text text-caption\"},[_vm._v(\" \"+_vm._s(_vm.$t(error))+\" \")])}),0):_vm._e()],1):_c('form-description',{attrs:{\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"ResetPassword.TokenExpired\"))+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class Token {\n public values: any;\n public raw: string;\n\n constructor(urlStringified: string) {\n this.raw = urlStringified;\n this.values = {};\n\n if (this.raw) {\n let str = urlStringified\n .replace('_', '+')\n .replace('-', '/');\n\n if (str.length % 4 !== 0) {\n str = str.padEnd(str.length + 4 - (str.length % 4), '=')\n }\n\n this.values = JSON.parse(atob(str));\n }\n }\n\n get exp(): number {\n return Date.parse(this.values.exp) || Date.parse(\"1970-01-01T00:00:00Z\");\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { BrokenRule } from \"@/shared/models/apiErrors\";\nimport { Token } from \"@/shared/models/token\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\n\nexport class ResetPasswordModel {\n password = \"\";\n token = \"\";\n}\n\n@Component({\n components: { FormDescription },\n})\nexport default class ResetPassword extends Vue {\n token?: Token;\n model = new ResetPasswordModel();\n\n expires = 0;\n email = \"\";\n\n repeatedPassword = \"\";\n showPassword1 = false;\n showPassword2 = false;\n\n showErrors = false;\n errors: string[] = [];\n\n isFormValid = false;\n isSubmitting = false;\n\n get submitDisabled(): boolean {\n return this.isFormValid && !this.isSubmitting;\n }\n\n get rules() {\n return {\n Required: (value: string) =>\n value ? true : this.$t(\"Validation.Required\"),\n PasswordsMustMatch: (value: string, x: string) =>\n value === x ? true : this.$t(\"Validation.PasswordsMustMatch\"),\n };\n }\n\n mounted() {\n const queryToken = this.$router.currentRoute.query[\"token\"];\n if (typeof queryToken === \"string\") {\n this.token = new Token(queryToken);\n\n this.expires = this.token.exp;\n this.model.token = this.token.raw;\n this.email = this.token.values[\"email\"];\n }\n }\n\n async send(): Promise {\n this.isSubmitting = true;\n\n const resetPassword = await this.$store.dispatch(\n \"auth/resetPassword\",\n this.model\n );\n\n if (resetPassword.isSignedIn) {\n await this.$router.replace({ name: \"Dashboard\" });\n } else {\n this.errors = resetPassword.errors.map((x: BrokenRule) => x.name);\n this.showErrors = true;\n }\n\n this.isSubmitting = false;\n }\n\n get isExpired() {\n return this.expires < Date.now();\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=9905ca36&scoped=true&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.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 \"9905ca36\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VForm,VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.resetEmailSent)?_c('v-form',{attrs:{\"disabled\":_vm.isSubmitting},on:{\"submit\":function($event){$event.preventDefault();return _vm.send()}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('form-description',[_vm._v(_vm._s(_vm.$t(\"ForgottenPassword.Description\")))]),_c('v-text-field',{attrs:{\"rules\":[_vm.rules.Required],\"label\":_vm.$t('Username') + '*',\"tabindex\":\"1\",\"outlined\":\"\",\"color\":\"#2790e5\",\"autofocus\":\"\"},on:{\"input\":function($event){_vm.showErrors = false}},model:{value:(_vm.model.username),callback:function ($$v) {_vm.$set(_vm.model, \"username\", $$v)},expression:\"model.username\"}}),_c('v-alert',{attrs:{\"dismissible\":true,\"dark\":\"\",\"dense\":\"\",\"color\":\"error\"},model:{value:(_vm.showErrors),callback:function ($$v) {_vm.showErrors=$$v},expression:\"showErrors\"}},_vm._l((_vm.errors),function(error,index){return _c('div',{key:index,staticClass:\"text-caption\"},[_vm._v(\" \"+_vm._s(_vm.$t(error))+\" \")])}),0),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"primary\",\"disabled\":!_vm.submitDisabled,\"loading\":_vm.isSubmitting,\"tabindex\":\"2\",\"width\":\"100%\",\"height\":\"48\",\"depressed\":\"\"}},[_vm._v(_vm._s(_vm.$t(\"Send\"))+\" \")])],1):_c('form-description',{attrs:{\"type\":\"success\"}},[_vm._v(_vm._s(_vm.$t(\"ForgottenPassword.EmailSent\")))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { BrokenRule } from \"@/shared/models/apiErrors\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\n\nexport class ForgottenPasswordModel {\n username = \"\";\n}\n\n@Component({\n components: { FormDescription },\n})\nexport default class ForgottenPassword extends Vue {\n model = new ForgottenPasswordModel();\n\n isFormValid = false;\n isSubmitting = false;\n\n showErrors = false;\n errors: string[] = [];\n\n resetEmailSent = false;\n \n get submitDisabled(): boolean {\n return this.isFormValid && !this.isSubmitting;\n }\n\n get rules() {\n return {\n Required: (value: string) =>\n value ? true : this.$t(\"Validation.Required\")\n };\n }\n\n async send(): Promise {\n this.isSubmitting = true;\n\n const forgottenPassword = await this.$store.dispatch(\n \"auth/forgottenPassword\",\n this.model\n );\n\n if (forgottenPassword.resetEmailSent) {\n this.resetEmailSent = true;\n } else {\n this.errors = forgottenPassword.errors.map((x: BrokenRule) => x.name);\n this.showErrors = true;\n }\n\n this.isSubmitting = false;\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForgottenPassword.vue?vue&type=template&id=f9e115da&scoped=true&\"\nimport script from \"./ForgottenPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgottenPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForgottenPassword.vue?vue&type=style&index=0&id=f9e115da&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 \"f9e115da\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VForm,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"messages d-flex flex-column fill-height\"},[_c('v-tabs',{attrs:{\"grow\":\"\",\"show-arrows\":\"\",\"center-active\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.All\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.Inbound\")))]),_c('v-tab',[_vm._v(_vm._s(_vm.$t(\"Messages.Outbound\")))])],1),_c('MessagesTable',{key:_vm.sensitiveKey,staticClass:\"fill-height\",attrs:{\"direction\":_vm.tab}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport MessagesTable from \"@/components/messages/MessagesTable.vue\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\n\n@Component({\n components: {\n MessagesTable,\n },\n mixins: [GlobalFilterSensitiveMixin],\n})\nexport default class Messages extends Vue {\n tab = 0;\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Messages.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Messages.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Messages.vue?vue&type=template&id=10549744&scoped=true&\"\nimport script from \"./Messages.vue?vue&type=script&lang=ts&\"\nexport * from \"./Messages.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Messages.vue?vue&type=style&index=0&id=10549744&scoped=true&lang=scss&\"\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 \"10549744\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabs})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('NotificationTemplatesTable',{staticClass:\"templates\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"templates\"},[_c('SortableHeadersTable',{staticClass:\"notificationTemplatesTable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"notificationTemplates\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.name\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.name),callback:function ($$v) {_vm.$set(_vm.filters, \"name\", $$v)},expression:\"filters.name\"}})]}},{key:\"header.isDraft\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.isDraft,\"item-text\":function (x) { return _vm.$t(x.name); },\"item-value\":\"status\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.isDraft ),callback:function ($$v) {_vm.$set(_vm.filters, \"isDraft\", $$v)},expression:\"filters.isDraft \"}})]}},{key:\"item.isDraft\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.isDraft ? _vm.$t(\"NotificationSchedule.Active\") : _vm.$t(\"NotificationSchedule.Draft\")))])]}},{key:\"header.sourceTypes\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.sourceTypes,\"item-text\":function (x) { return (x.name); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.sourceTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"sourceTypeId\", $$v)},expression:\"filters.sourceTypeId\"}})]}},{key:\"item.sourceTypes\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.getSourceTypeNames(item.sourceTypeIds)))])]}},{key:\"header.languages\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.languages,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"languageCode\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.cultureCode),callback:function ($$v) {_vm.$set(_vm.filters, \"cultureCode\", $$v)},expression:\"filters.cultureCode\"}})]}},{key:\"item.languages\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.getLanguageName(item.cultureCode)))])]}},{key:\"header.recipients\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.recipients,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.recipientId),callback:function ($$v) {_vm.$set(_vm.filters, \"recipientId\", $$v)},expression:\"filters.recipientId\"}})]}},{key:\"item.recipients\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.getRecipientNames(item.recipientIds)))])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"z-index\":\"0\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[(!item.isDefault)?_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.editTemplate(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.copyTemplate(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Copy\")))])],1)],1),_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fal fa-comments\"}})],1):_vm._e()]},proxy:true}])}),_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addTemplate()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport GenericPMSTableMenu from \"@/components/generic-pms-table/GenericPMSTableMenu.vue\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { NotificationTemplateViewModel } from \"./types\";\nimport * as _ from \"lodash\";\nimport { Action, Getter } from \"vuex-class\";\nimport { MessageSourceType } from \"@/shared/models/messageSourceType\";\nimport { NotificationTemplateRecipient } from \"@/shared/models/notificationTemplateRecipient\";\nimport { LanguageView } from \"@/shared/models/languages\";\n\n@Component({\n components: {\n GenericPMSTableMenu,\n SortableHeadersTable,\n NoData,\n },\n})\nexport default class NotificationTemplatesTable extends Vue {\n settingsOpen = false;\n\n @Action(\"codebooks/refreshMessageSourceTypes\") refreshSourceTypes?: () => Promise;\n @Getter(\"codebooks/messageSourceTypes\") sourceTypes?: MessageSourceType[];\n\n @Action(\"codebooks/refreshNotificationTemplateRecipients\") refreshNotificationTemplateRecipients?: () => Promise;\n @Getter(\"codebooks/notificationTemplateRecipients\") recipients?: NotificationTemplateRecipient[];\n\n @Action(\"codebooks/refreshLanguages\") refreshLanguages?: () => Promise;\n @Getter(\"codebooks/languages\") languages?: LanguageView[];\n\n isDraft = [{status: true, name: \"NotificationSchedule.Active\"},{status: false, name:\"NotificationSchedule.Draft\"}]\n\n async created(){\n const promises = [];\n\n if ((this.sourceTypes?.length ?? 0) === 0 && this.refreshSourceTypes) {\n promises.push(this.refreshSourceTypes());\n }\n if ((this.recipients?.length ?? 0) === 0 && this.refreshNotificationTemplateRecipients) {\n promises.push(this.refreshNotificationTemplateRecipients());\n }\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n await Promise.all(promises);\n }\n\n headers: SortableTableHeader[] = [\n {\n text: \"Name\",\n value: \"name\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"NotificationTemplate.Status\",\n value: \"isDraft\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Message.SourceType\",\n value: \"sourceTypes\",\n active: true,\n default: false,\n class: \"resize-header\",\n sortable: false,\n exportHeaders: [],\n },\n {\n text: \"Language\",\n value: \"languages\",\n active: true,\n default: false,\n sortable: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"NotificationTemplate.Recipients\",\n value: \"recipients\",\n active: true,\n default: false,\n sortable: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n\n filters = {\n name: \"\",\n isDraft: undefined as boolean | undefined,\n sourceTypeId: null as number | null,\n cultureCode: \"\",\n recipientId: null as number | null\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n get translatedActiveHeaders() {\n return this.headers\n .filter((x) => x.active)\n .map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"name\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/notificationTemplates\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n };\n }\n\n getSourceTypeNames(items: number[]){\n const list = this.sourceTypes?.filter(x => items.includes(x.id)).map(y => y.name)\n return list?.join(\", \");\n }\n\n getLanguageName(item: string){\n const language = this.languages?.find(x => x.languageCode == item);\n if (language)\n return this.$t(language.textResourceKey);\n }\n\n getRecipientNames(items: number[]){\n const list = this.recipients?.filter(x => items.includes(x.id)).map(y => this.$t(y.textResourceKey));\n return list?.join(\", \")\n }\n\n addTemplate() {\n this.$router.push({ path: \"/settings/notification-templates/new\" });\n }\n\n editTemplate(id: number) {\n this.$router.push({ path: `/settings/notification-templates/${id}` });\n }\n rowDoubleClick(\n e: MouseEvent,\n { item }: { item: NotificationTemplateViewModel }\n ) {\n this.editTemplate(item.id);\n }\n\n copyTemplate(id: number) {\n this.$router.push({\n path: \"/settings/notification-templates/new?copy=\" + id,\n });\n }\n\n deleteItem(item: NotificationTemplateViewModel) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${item?.name}'`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteItemConfirm({ id }: { id: number }) {\n Vue.axios\n .delete(`/notificationTemplates/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"NotificationTemplate.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.load();\n });\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplatesTable.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplatesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationTemplatesTable.vue?vue&type=template&id=47cfb5f6&scoped=true&\"\nimport script from \"./NotificationTemplatesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationTemplatesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationTemplatesTable.vue?vue&type=style&index=0&id=47cfb5f6&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 \"47cfb5f6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VSelect,VTextField})\n","\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport NotificationTemplatesTable from \"@/components/messages/templates/NotificationTemplatesTable.vue\";\n\n@Component({\n components: {\n NotificationTemplatesTable,\n },\n})\nexport default class NotificationTemplates extends Vue {}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplates.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationTemplates.vue?vue&type=template&id=5ce23948&scoped=true&\"\nimport script from \"./NotificationTemplates.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationTemplates.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationTemplates.vue?vue&type=style&index=0&id=5ce23948&scoped=true&lang=scss&\"\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 \"5ce23948\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"px-3 templates-wrapper\"},[_c('v-col',{staticClass:\"fill-height\",attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('NotificationTemplateVariables',{attrs:{\"useSimpleVariables\":_vm.useSimpleVariables}})],1)],1),_c('v-col',{staticClass:\"fill-height\",attrs:{\"cols\":\"12\",\"sm\":\"9\"}},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('v-form',{ref:\"form\",staticClass:\"flex-grow-1 overflow-auto d-flex flex-column\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card-text',{staticClass:\"fill-height overflow-auto d-flex flex-column\"},[_c('v-row',{staticClass:\"flex-grow-0\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"label\":_vm.$t('NotificationTemplate.Name') + '*',\"rules\":[_vm.rules.required, _vm.rules.maxLength(_vm.template.name, 128)],\"counter\":\"128\",\"dense\":\"\"},on:{\"drop\":function($event){$event.preventDefault();}},model:{value:(_vm.template.name),callback:function ($$v) {_vm.$set(_vm.template, \"name\", $$v)},expression:\"template.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationTemplate.SourceTypes') + '*',\"multiple\":\"\",\"item-value\":\"id\",\"item-text\":\"name\",\"items\":_vm.activeSorceTypes,\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.template.sourceTypes),callback:function ($$v) {_vm.$set(_vm.template, \"sourceTypes\", $$v)},expression:\"template.sourceTypes\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('NotificationTemplate.Language') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.template.cultureCode),callback:function ($$v) {_vm.$set(_vm.template, \"cultureCode\", $$v)},expression:\"template.cultureCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"5\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationTemplate.Recipients') + '*',\"multiple\":\"\",\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.recipients,\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.template.recipients),callback:function ($$v) {_vm.$set(_vm.template, \"recipients\", $$v)},expression:\"template.recipients\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"5\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationTemplate.Attachments'),\"multiple\":\"\",\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.attachments,\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.template.attachments),callback:function ($$v) {_vm.$set(_vm.template, \"attachments\", $$v)},expression:\"template.attachments\"}})],1),(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"label\":_vm.$t('NotificationTemplate.Subject') + '*',\"dense\":\"\",\"rules\":[\n _vm.rules.required,\n _vm.rules.maxLength(_vm.template.subject, 255) ],\"counter\":\"255\"},model:{value:(_vm.template.subject),callback:function ($$v) {_vm.$set(_vm.template, \"subject\", $$v)},expression:\"template.subject\"}})],1):_vm._e()],1),_c('v-row',[(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('NotificationTemplate.Body') + '*',\"outlined\":true,\"rules\":[_vm.rules.required]},model:{value:(_vm.template.body),callback:function ($$v) {_vm.$set(_vm.template, \"body\", $$v)},expression:\"template.body\"}})],1):_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('NotificationTemplate.Body') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.template.body),callback:function ($$v) {_vm.$set(_vm.template, \"body\", $$v)},expression:\"template.body\"}})],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.loading,\"disabled\":!_vm.submitDisabled},on:{\"click\":function($event){return _vm.save([])}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled || !_vm.isUnchanged},on:{\"click\":function($event){_vm.scheduleOpen = !_vm.scheduleOpen}}},[_vm._v(\" \"+_vm._s(_vm.template.notificationScheduleId ? _vm.$t(\"NotificationTemplate.EditSchedule\") : _vm.$t(\"NotificationTemplate.CreateSchedule\"))+\" \")]),_c('v-btn',{attrs:{\"color\":_vm.isTranslationsFormValid ? 'primary' : 'error'},on:{\"click\":function($event){_vm.translationsDrawerOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"NotificationTemplate.Translations\"))+\" (\"+_vm._s(_vm.template.translations.length)+\") \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.template.sourceTypes.length === 0},on:{\"click\":function($event){_vm.testDialogOpen = true}}},[_vm._v(_vm._s(_vm.$t(\"NotificationTemplate.SendTest\")))]),_c('v-btn',{on:{\"click\":_vm.checkClose}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1),_c('v-form',{ref:\"translationsForm\",model:{value:(_vm.isTranslationsFormValid),callback:function ($$v) {_vm.isTranslationsFormValid=$$v},expression:\"isTranslationsFormValid\"}},[_c('NotificationTemplateTranslations',{attrs:{\"open\":_vm.translationsDrawerOpen,\"template\":_vm.template},on:{\"update:open\":function($event){_vm.translationsDrawerOpen=$event},\"update:template\":function($event){_vm.template=$event}}})],1)],1)],1)],1),_c('v-dialog',{attrs:{\"scrollable\":\"\",\"persistent\":\"\",\"max-width\":\"700\"},model:{value:(_vm.testDialogOpen),callback:function ($$v) {_vm.testDialogOpen=$$v},expression:\"testDialogOpen\"}},[_c('v-card',[_c('v-card-text',[_c('v-form',{ref:\"testForm\",model:{value:(_vm.isTestFormValid),callback:function ($$v) {_vm.isTestFormValid=$$v},expression:\"isTestFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('form-description',{staticClass:\"mb-1\"},[_vm._v(_vm._s(_vm.$t(\"NotificationTemplate.Test.Hint\")))])],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('NotificationTemplate.Language') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.rules.required]},model:{value:(_vm.notificationTestModel.cultureCode),callback:function ($$v) {_vm.$set(_vm.notificationTestModel, \"cultureCode\", $$v)},expression:\"notificationTestModel.cultureCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('NotificationTemplate.Test.ReservationId') + '*',\"type\":\"number\",\"rules\":[_vm.rules.required]},model:{value:(_vm.notificationTestModel.reservationId),callback:function ($$v) {_vm.$set(_vm.notificationTestModel, \"reservationId\", _vm._n($$v))},expression:\"notificationTestModel.reservationId\"}})],1)],1),_c('v-row',[(!_vm.isSMSOrWhatsApp)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('NotificationTemplate.Test.Email') + '*',\"rules\":[_vm.rules.required, _vm.rules.emailFormat]},model:{value:(_vm.notificationTestModel.to),callback:function ($$v) {_vm.$set(_vm.notificationTestModel, \"to\", $$v)},expression:\"notificationTestModel.to\"}})],1):_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('NotificationTemplate.Test.Phone') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.notificationTestModel.to),callback:function ($$v) {_vm.$set(_vm.notificationTestModel, \"to\", $$v)},expression:\"notificationTestModel.to\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.sendingTest,\"disabled\":!_vm.isTestFormValid || _vm.sendingTest},on:{\"click\":_vm.submitNotificationTest}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Send\"))+\" \")]),_c('v-btn',{attrs:{\"loading\":_vm.sendingTest,\"disabled\":_vm.sendingTest},on:{\"click\":function($event){_vm.testDialogOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1),_c('NotificationScheduleForm',{attrs:{\"open\":_vm.scheduleOpen,\"templateId\":_vm.template.id,\"scheduleId\":_vm.template.notificationScheduleId},on:{\"update:open\":function($event){_vm.scheduleOpen=$event},\"created\":_vm.scheduleCreated,\"deleted\":_vm.scheduleDeleted}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"eager\":\"\",\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.close.apply(null, arguments)}},model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('v-card',{staticClass:\"background\",attrs:{\"tile\":\"\",\"height\":\"100%\"}},[_c('v-toolbar',{staticClass:\"flex-grow-0\"},[_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"NotificationTemplate.Translations\"))+\" \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"modal-close-button\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-row',{staticClass:\"ma-0 overflow-auto\"},[_c('v-col',{staticClass:\"fill-height\",attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('v-card',{staticClass:\"d-flex flex-column\",attrs:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('NotificationTemplateVariables')],1)],1),_c('v-col',{staticClass:\"fill-height\",attrs:{\"cols\":\"12\",\"sm\":\"9\"}},[_c('v-card',{staticClass:\"d-flex flex-column overflow-auto\",attrs:{\"width\":\"100%\",\"height\":\"100%\"}},[_c('v-card-text',{staticClass:\"overflow-auto\"},[_c('div',[_vm._l((_vm.internalTemplate.translations),function(translation,$index){return _c('div',{key:$index},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('NotificationTemplate.Language') + '*',\"item-value\":\"languageCode\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"items\":_vm.languages,\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"mr-2\",class:{\n 'v-data-table__expand-icon--active':\n _vm.expandedTranslation === $index,\n },on:{\"click\":function($event){_vm.expandedTranslation =\n _vm.expandedTranslation === $index ? null : $index}}},[_vm._v(\"fas fa-chevron-down\")])]},proxy:true}],null,true),model:{value:(translation.cultureCode),callback:function ($$v) {_vm.$set(translation, \"cultureCode\", $$v)},expression:\"translation.cultureCode\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('NotificationTemplate.Subject') + '*',\"rules\":[\n _vm.rules.required,\n _vm.rules.maxLength(translation.subject, 255) ],\"counter\":\"255\",\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeTranslation(translation)}}},[_vm._v(\"fal fa-trash\")])]},proxy:true}],null,true),model:{value:(translation.subject),callback:function ($$v) {_vm.$set(translation, \"subject\", $$v)},expression:\"translation.subject\"}})],1),_c('v-expand-transition',[(_vm.expandedTranslation === $index)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('RichTextEditor',{class:{ 'white--text': _vm.$vuetify.theme.dark },attrs:{\"outlined\":true,\"label\":_vm.$t('NotificationTemplate.Body'),\"rules\":[_vm.rules.required]},model:{value:(translation.body),callback:function ($$v) {_vm.$set(translation, \"body\", $$v)},expression:\"translation.body\"}})],1):_vm._e()],1)],1),_c('v-divider',{staticClass:\"mt-3\"})],1)}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addTranslation()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"NotificationTemplate.Translation.Add\"))+\" \")])],1)],1)],2)])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card-text',{staticClass:\"flex-grow-1 overflow-auto\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('NotificationTemplate.Variables')},model:{value:(_vm.variableFilter),callback:function ($$v) {_vm.variableFilter=$$v},expression:\"variableFilter\"}}),_vm._l((_vm.filteredVariables),function(item,$index){return _c('div',{key:$index},[_c('div',{staticClass:\"py-3 variable\",class:_vm.$vuetify.theme.dark ? 'white--text' : 'black--text',attrs:{\"draggable\":\"\"},on:{\"dragstart\":function($event){return _vm.dragStart($event, item)}}},[_c('div',[_vm._v(_vm._s(item.name))]),_c('v-spacer'),(item.htmlPreview)?_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"fal fa-info-circle \")])]}}],null,true)},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.useSimpleVariables ? (item.htmlPreviewSimple || item.htmlPreview) : item.htmlPreview)}})]):_vm._e()],1),_c('v-divider')],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport { TemplateVariable } from \"./types\";\n\n@Component\nexport default class NotificationTemplateVariables extends Vue {\n @Prop() useSimpleVariables?: boolean;\n\n @Getter(\"codebooks/notificationTemplateVariables\")\n variables?: TemplateVariable[];\n @Action(\"codebooks/refreshNotificationTemplateVariables\")\n refreshVariables?: () => Promise;\n\n async created() {\n const promises = [];\n\n if ((this.variables?.length ?? 0) === 0 && this.refreshVariables) {\n promises.push(this.refreshVariables());\n }\n\n await Promise.all(promises);\n }\n\n variableFilter = \"\";\n\n get filteredVariables() {\n if (!this.variables) {\n return [];\n }\n\n let variables = this.variables;\n\n if (this.variableFilter)\n variables = this.variables\n .filter((x) => x.name.toLowerCase().includes(this.variableFilter.toLowerCase()));\n\n return variables;\n }\n\n dragStart(e: DragEvent, data: any) {\n e.dataTransfer?.setData(\"text\", data.name);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateVariables.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateVariables.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationTemplateVariables.vue?vue&type=template&id=4ca616f1&scoped=true&\"\nimport script from \"./NotificationTemplateVariables.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationTemplateVariables.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationTemplateVariables.vue?vue&type=style&index=0&id=4ca616f1&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 \"4ca616f1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCardText,VDivider,VIcon,VSpacer,VTextField,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Vue,\n Prop,\n PropSync,\n Ref,\n} from \"vue-property-decorator\";\nimport {\n NotificationTemplateModel,\n NotificationTemplateTranslationModel,\n TemplateVariable,\n} from \"./types\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { Getter } from \"vuex-class\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport NotificationTemplateVariables from \"./NotificationTemplateVariables.vue\";\n\n@Component({\n components: {\n RightDrawer,\n RichTextEditor,\n NotificationTemplateVariables,\n },\n})\nexport default class NotificationTemplateTranslations extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop() variables?: TemplateVariable[];\n @PropSync(\"template\")\n internalTemplate?: NotificationTemplateModel;\n\n @Getter(\"codebooks/languages\")\n languages?: LanguageView[];\n\n variableFilter = \"\";\n\n get filteredVariables() {\n if (!this.variables) {\n return [];\n }\n if (!this.variableFilter) return this.variables;\n return this.variables.filter((x) => x.name.includes(this.variableFilter));\n }\n\n headers = [\n {\n text: \"name\",\n value: \"name\",\n },\n ];\n\n dragStart(e: DragEvent, data: any) {\n e.dataTransfer?.setData(\"text\", data.name);\n }\n\n expandedTranslation = null as number | null;\n\n addTranslation() {\n this.internalTemplate?.translations?.push({\n id: 0,\n cultureCode: \"\",\n subject: this.internalTemplate.subject,\n body: this.internalTemplate.body,\n });\n }\n\n removeTranslation(translation: NotificationTemplateTranslationModel) {\n if (this.internalTemplate?.translations) {\n const index = this.internalTemplate.translations.findIndex(\n (x) => x == translation\n );\n if (index != -1) {\n this.internalTemplate.translations.splice(index, 1);\n }\n }\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n close() {\n this.$emit(\"update:open\", false);\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n maxLength: (value: string, max: number) =>\n value.length <= max || this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateTranslations.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateTranslations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationTemplateTranslations.vue?vue&type=template&id=15ee08df&scoped=true&\"\nimport script from \"./NotificationTemplateTranslations.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationTemplateTranslations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationTemplateTranslations.vue?vue&type=style&index=0&id=15ee08df&scoped=true&lang=scss&\"\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 \"15ee08df\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardText,VCol,VDialog,VDivider,VExpandTransition,VIcon,VRow,VSpacer,VTextField,VToolbar})\n","export class NotificationTemplateModel {\n id = 0;\n name = \"\";\n subject = \"\";\n body = \"\";\n sourceTypes = [] as number[]\n cultureCode = \"\";\n recipients = [] as number[];\n attachments = [] as number[];\n translations = [] as NotificationTemplateTranslationModel[];\n\n notificationScheduleId = null as number | null;\n}\n\nexport type NotificationTemplateViewModel = {\n id: number;\n name: string;\n subject: string;\n sourceTypeIds: number[];\n isDefault: boolean;\n}\n\nexport class NotificationTemplateTranslationModel {\n id = 0;\n subject = \"\";\n body = \"\";\n cultureCode = \"\";\n}\n\nexport type TemplateVariable = {\n name: string;\n htmlPreview: string;\n htmlPreviewSimple: string;\n}","export type NotificationSchedulesTriggerDate = {\n id: number;\n name: string;\n textResourceKey: string;\n}\n\nexport enum NotificationSchedulesTriggerDateEnum {\n BookingDate = 1,\n ConfirmationDate = 2,\n OptionExpirationDate = 3,\n ArrivalDate = 4,\n DepartureDate = 5,\n OfferExpirationDate = 6,\n InvoiceDueDate = 7,\n AdvanceInvoicePaymentDate = 8,\n ReservationPaymentDate = 9\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{ref:\"drawer\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialModel,\"watched\":_vm.model,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"loading\":_vm.saving,\"color\":\"primary\"},on:{\"click\":_vm.submit}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-spacer'),(_vm.model.id)?_c('v-btn',{staticClass:\"mr-2\",attrs:{\"loading\":_vm.saving,\"color\":\"primary\"},on:{\"click\":_vm.deleteSchedule}},[_vm._v(_vm._s(_vm.$t(\"Delete\")))]):_vm._e(),_c('v-btn',{attrs:{\"loading\":_vm.saving},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.model.id ? _vm.$t(\"NotificationSchedule.Edit\") : _vm.$t(\"NotificationSchedule.New\")))])]),_c('v-fade-transition',[(_vm.loading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"px-6 form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('Name') + '*',\"rules\":[_vm.rules.required, _vm.rules.maxLength(_vm.model.name, 128)],\"counter\":\"128\"},model:{value:(_vm.model.name),callback:function ($$v) {_vm.$set(_vm.model, \"name\", $$v)},expression:\"model.name\"}})],1),_c('v-col',{staticClass:\"d-flex justify-center align-center\",attrs:{\"cols\":\"4\"}},[_c('v-switch',{attrs:{\"label\":_vm.model.isDraft\n ? _vm.$t('NotificationSchedule.Deactivate')\n : _vm.$t('NotificationSchedule.Activate')},model:{value:(_vm.isActive),callback:function ($$v) {_vm.isActive=$$v},expression:\"isActive\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationSchedule.Offset') + '*',\"items\":_vm.offsets,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"rules\":[_vm.rules.required]},model:{value:(_vm.model.notificationScheduleOffsetId),callback:function ($$v) {_vm.$set(_vm.model, \"notificationScheduleOffsetId\", $$v)},expression:\"model.notificationScheduleOffsetId\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationSchedule.BeforeOrAfter') + '*',\"items\":_vm.beforeAfter,\"item-value\":\"value\",\"item-text\":function (x) { return _vm.$t(x.name); },\"rules\":[_vm.rules.notNull]},model:{value:(_vm.model.isOffsetBeforeTriggerDate),callback:function ($$v) {_vm.$set(_vm.model, \"isOffsetBeforeTriggerDate\", $$v)},expression:\"model.isOffsetBeforeTriggerDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationSchedule.When') + '*',\"items\":_vm.allowedTriggerDates,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-disabled\":\"disabled\",\"rules\":[_vm.rules.required]},model:{value:(_vm.model.notificationScheduleTriggerDateId),callback:function ($$v) {_vm.$set(_vm.model, \"notificationScheduleTriggerDateId\", $$v)},expression:\"model.notificationScheduleTriggerDateId\"}})],1)],1),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"NotificationSchedule.Conditions\"))+\" \")]),_c('form-description',[_vm._v(\" \"+_vm._s(_vm.$t(\"NotificationSchedule.Conditions.Hint\"))+\" \")]),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('DistributionChannel'),\"items\":_vm.allowedDistributionChannelTypes,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\"},model:{value:(_vm.model.distributionChannelTypeIds),callback:function ($$v) {_vm.$set(_vm.model, \"distributionChannelTypeIds\", $$v)},expression:\"model.distributionChannelTypeIds\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[(\n _vm.model.distributionChannelTypeIds.some(\n function (x) { return x == _vm.DistributionChannelTypesEnum.OTA ||\n x == _vm.DistributionChannelTypesEnum.OTAConversion; }\n )\n )?_c('v-select',{attrs:{\"label\":_vm.$t('t.DistributionChannelTypes.OTA'),\"items\":_vm.otas,\"item-value\":\"id\",\"item-text\":\"name\",\"multiple\":\"\"},model:{value:(_vm.model.otaIds),callback:function ($$v) {_vm.$set(_vm.model, \"otaIds\", $$v)},expression:\"model.otaIds\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[(\n _vm.model.distributionChannelTypeIds.some(\n function (x) { return x == _vm.DistributionChannelTypesEnum.PartnerAgency; }\n )\n )?_c('v-select',{attrs:{\"label\":_vm.$t('t.DistributionChannelTypes.PartnerAgency'),\"items\":_vm.salesChannels,\"item-value\":\"id\",\"item-text\":\"name\",\"multiple\":\"\"},model:{value:(_vm.model.salesChannelIds),callback:function ($$v) {_vm.$set(_vm.model, \"salesChannelIds\", $$v)},expression:\"model.salesChannelIds\"}}):_vm._e()],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationSchedule.ReservationStatus'),\"items\":_vm.reservationStatuses,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\"},model:{value:(_vm.model.reservationStatusIds),callback:function ($$v) {_vm.$set(_vm.model, \"reservationStatusIds\", $$v)},expression:\"model.reservationStatusIds\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('NotificationSchedule.PaymentMean'),\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"multiple\":\"\"},model:{value:(_vm.model.paymentMeanIds),callback:function ($$v) {_vm.$set(_vm.model, \"paymentMeanIds\", $$v)},expression:\"model.paymentMeanIds\"}})],1)],1),_c('v-data-table',{attrs:{\"loading\":_vm.loadingProperties,\"headers\":_vm.translatedHeaders,\"items\":_vm.items,\"item-key\":\"propertyId\",\"item-name\":\"name\",\"items-per-page\":15,\"fixed-header\":\"\",\"show-select\":\"\",\"height\":\"100%\"},on:{\"item-selected\":_vm.selectProperty},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"input-value\":_vm.areAllPropertiesSelected()},on:{\"change\":_vm.selectAllProperties}})]},proxy:true},{key:\"header.name\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.nameFilter),callback:function ($$v) {_vm.nameFilter=$$v},expression:\"nameFilter\"}})]}},{key:\"header.address\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.addressFilter),callback:function ($$v) {_vm.addressFilter=$$v},expression:\"addressFilter\"}})]}},{key:\"header.postalCodeAndCity\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.postalCodeFilter),callback:function ($$v) {_vm.postalCodeFilter=$$v},expression:\"postalCodeFilter\"}})]}},{key:\"top\",fn:function(){return [_c('form-description',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.$t(\"NotificationTemplate.PropertyFilterDesc\")))])]},proxy:true},{key:\"no-data\",fn:function(){return [(_vm.loadingProperties)?_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fa-hotel\"}}):_vm._e()]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class ScheduleModel {\n id = 0;\n name = \"\";\n notificationTemplateId = 0;\n notificationScheduleOffsetId = 0\n notificationScheduleTriggerDateId = 0;\n isOffsetBeforeTriggerDate = null as boolean | null;\n isDraft = true;\n\n distributionChannelTypeIds = [] as number[];\n otaIds = [] as number[];\n salesChannelIds = [] as number[];\n paymentMeanIds = [] as number[];\n reservationStatusIds = [] as number[];\n propertiesIds = [] as number[];\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop, Ref } from \"vue-property-decorator\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport { ScheduleModel } from \"./types\";\nimport { Getter, Action } from \"vuex-class\";\nimport { DistributionChannelType } from \"@/shared/models/distributionChannelType\";\nimport { Ota } from \"@/shared/models/ota\";\nimport { SalesChannelView } from \"@/shared/models/salesChannel\";\nimport { ReservationStatus } from \"@/shared/models/reservationStatus\";\nimport { DistributionChannelTypesEnum } from \"@/components/reservation-form/types\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { NotificationSchedulesOffset } from \"@/shared/models/notificationSchedulesOffset\";\nimport {\n NotificationSchedulesTriggerDate,\n NotificationSchedulesTriggerDateEnum,\n} from \"@/shared/models/notificationSchedulesTriggerDate\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport * as _ from \"lodash\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { PropertyWithPostalCode } from \"@/shared/models/property\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { TenantTypesEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n RightDrawer,\n FormDescription\n },\n})\nexport default class NotificationScheduleForm extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop({ default: 0 }) templateId?: number;\n @Prop() scheduleId?: number;\n\n fkey = 0;\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n isFormValid = false;\n\n model = new ScheduleModel();\n initialModel = new ScheduleModel();\n\n loading = false;\n\n @Watch(\"open\")\n openWatch(fresh: boolean) {\n if (fresh) {\n this.fkey++;\n\n if (this.scheduleId) {\n this.loading = true;\n this.axios\n .get(\"/notificationSchedules/\" + this.scheduleId)\n .then((res) => {\n this.model = res.data;\n this.initialModel = _.cloneDeep(this.model);\n })\n .finally(() => {\n this.loading = false;\n });\n } else {\n this.model = new ScheduleModel();\n if (this.templateId) {\n this.model.notificationTemplateId = this.templateId;\n }\n\n this.initialModel = _.cloneDeep(this.model);\n }\n }\n }\n\n get selected() {\n return this.items.filter((x) => this.model.propertiesIds.includes(x.propertyId));\n }\n\n set selected(val: PropertyWithPostalCode[]) {\n const selectedIds = val.map((x) => x.propertyId);\n this.model.propertiesIds = [\n ...new Set([...this.model.propertiesIds, ...selectedIds])\n ];\n }\n\n nameFilter = \"\";\n addressFilter = \"\";\n postalCodeFilter = \"\";\n selectedOnly = false;\n loadingProperties = true;\n\n properties: PropertyWithPostalCode[] = [];\n loadProperties() {\n this.loadingProperties = true;\n Vue.axios\n .get>(\n \"/properties/PropertiesWithPostalCode\",\n {\n params: {\n $count: true,\n $skip: this.properties.length,\n $orderby: \"propertyId\",\n },\n }\n )\n .then((res) => {\n this.properties.push(...res.data.result);\n if (res.data.count && this.properties.length < res.data.count) {\n this.loadProperties();\n }\n }).finally(() => this.loadingProperties = false);\n }\n\n get items(): PropertyWithPostalCode[] {\n let items = this.properties ?? [];\n\n if (this.selectedOnly) {\n items = items.filter((e) =>\n this.selected.some((s) => e.propertyId == s.propertyId)\n );\n }\n\n return items\n .filter(\n (e) =>\n !this.nameFilter ||\n e.name.toLowerCase().includes(this.nameFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.addressFilter ||\n e.address.toLowerCase().includes(this.addressFilter.toLowerCase())\n )\n .filter(\n (e) =>\n !this.postalCodeFilter ||\n e.postalCodeAndCity\n .toLowerCase()\n .includes(this.postalCodeFilter.toLowerCase())\n );\n }\n\n selectAllProperties(value: boolean) {\n if (value) {\n for (const prop of this.items) {\n if (!this.model.propertiesIds.some((x) => x == prop.propertyId)) {\n this.model.propertiesIds.push(prop.propertyId);\n this.selected.push(prop);\n }\n }\n } else {\n for (const prop of this.items) {\n const index = this.model.propertiesIds.findIndex(\n (x) => x == prop.propertyId\n );\n\n if (index != -1) {\n this.model.propertiesIds.splice(index, 1);\n }\n\n const selectedIndex = this.selected.findIndex(\n (x) => x.propertyId == prop.propertyId\n );\n if (selectedIndex != -1) {\n this.selected.splice(selectedIndex, 1);\n }\n }\n }\n }\n\n selectProperty({\n item,\n value,\n }: {\n item: PropertyWithPostalCode;\n value: boolean;\n }) {\n if (value && !this.model.propertiesIds.some((x) => x == item.propertyId)) {\n this.model.propertiesIds.push(item.propertyId);\n } else if (!value) {\n const index = this.model.propertiesIds.findIndex(\n (x) => x == item.propertyId\n );\n if (index != -1) {\n this.model.propertiesIds.splice(index, 1);\n }\n }\n }\n\n areAllPropertiesSelected() {\n return !this.items.some(\n (e) =>\n this.model.propertiesIds.findIndex((acc) => acc == e.propertyId) == -1\n );\n }\n\n headers = [\n {\n text: \"Property\",\n value: \"name\",\n },\n {\n text: \"Address\",\n value: \"address\",\n },\n {\n text: \"City\",\n value: \"postalCodeAndCity\",\n },\n ];\n\n get translatedHeaders() {\n return this.headers.map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n get isTenantTypeAgency(){\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n \n get allowedDistributionChannelTypes() {\n if (!this.distributionChannelTypes) {\n return [];\n }\n const types = _.cloneDeep(this.distributionChannelTypes);\n \n if (this.isTenantTypeAgency) {\n return types;\n } \n else {\n return types?.filter(\n channel => channel.id != DistributionChannelTypesEnum.OwnersReservation);\n }\n }\n\n @Getter(\"codebooks/notificationSchedulesOffsets\")\n offsets?: NotificationSchedulesOffset[];\n @Action(\"codebooks/refreshNotificationSchedulesOffsets\")\n refreshOffsets?: () => Promise;\n\n @Getter(\"codebooks/notificationSchedulesTriggerDates\")\n triggerDates?: NotificationSchedulesTriggerDate[];\n @Action(\"codebooks/refreshNotificationSchedulesTriggerDates\")\n refreshTriggerDates?: () => Promise;\n\n @Action(\"codebooks/refreshOtas\") refreshOtas?: () => Promise;\n @Getter(\"codebooks/otas\") otas?: Ota[];\n\n @Action(\"codebooks/refreshSalesChannels\")\n refreshSalesChannels?: () => Promise;\n @Getter(\"codebooks/salesChannels\") salesChannels?: SalesChannelView[];\n\n @Action(\"codebooks/refreshDistributionChannelTypes\")\n refreshDistributionChannelTypes?: () => Promise;\n @Getter(\"codebooks/distributionChannelTypes\")\n distributionChannelTypes?: DistributionChannelType[];\n\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\")\n paymentMeans?: PaymentMean[];\n\n @Action(\"codebooks/refreshReservationStatuses\")\n refreshReservationStatuses?: () => Promise;\n @Getter(\"codebooks/reservationStatuses\")\n reservationStatuses?: ReservationStatus[];\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n \n async created() {\n this.loadProperties();\n\n const promises = [];\n\n if ((this.offsets?.length ?? 0) === 0 && this.refreshOffsets) {\n promises.push(this.refreshOffsets());\n }\n\n if ((this.triggerDates?.length ?? 0) === 0 && this.refreshTriggerDates) {\n promises.push(this.refreshTriggerDates());\n }\n\n if (\n (this.distributionChannelTypes?.length ?? 0) === 0 &&\n this.refreshDistributionChannelTypes\n ) {\n promises.push(this.refreshDistributionChannelTypes());\n }\n\n if (\n (this.paymentMeans?.length ?? 0) === 0 &&\n this.refreshPaymentMeans\n ) {\n promises.push(this.refreshPaymentMeans());\n }\n\n if ((this.otas?.length ?? 0) === 0 && this.refreshOtas) {\n promises.push(this.refreshOtas());\n }\n\n if ((this.salesChannels?.length ?? 0) === 0 && this.refreshSalesChannels) {\n promises.push(this.refreshSalesChannels());\n }\n\n if (\n (this.reservationStatuses?.length ?? 0) === 0 &&\n this.refreshReservationStatuses\n ) {\n promises.push(this.refreshReservationStatuses());\n }\n\n await Promise.all(promises);\n }\n\n beforeAfter = [\n {\n value: true,\n name: \"Before\",\n },\n {\n value: false,\n name: \"After\",\n },\n ];\n\n DistributionChannelTypesEnum = DistributionChannelTypesEnum;\n\n get isActive() {\n return !this.model.isDraft;\n }\n\n set isActive(value) {\n this.model.isDraft = !value;\n }\n\n get allowedTriggerDates() {\n const notImplementedTriggers = [\n NotificationSchedulesTriggerDateEnum.OfferExpirationDate,\n NotificationSchedulesTriggerDateEnum.InvoiceDueDate,\n NotificationSchedulesTriggerDateEnum.AdvanceInvoicePaymentDate,\n NotificationSchedulesTriggerDateEnum.ReservationPaymentDate,\n ];\n\n return (\n this.triggerDates?.map((x) => {\n return {\n ...x,\n disabled: notImplementedTriggers.some((e) => e == x.id),\n };\n }) ?? []\n );\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n saving = false;\n submit() {\n this.form.validate();\n if (!this.isFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n this.saving = true;\n\n if (!this.model.id) {\n this.axios\n .post(\"/notificationSchedules\", this.model)\n .then((res) => {\n this.model.id = res.data;\n this.saveSuccess();\n this.$emit(\"created\", this.model.id);\n })\n .finally(() => {\n this.saving = false;\n });\n } else {\n this.axios\n .put(\"/notificationSchedules\", this.model)\n .then(() => {\n this.saveSuccess();\n })\n .finally(() => {\n this.saving = false;\n });\n }\n }\n\n saveSuccess() {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"NotificationSchedule.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n\n this.initialModel = _.cloneDeep(this.model);\n }\n\n deleteSchedule() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\") + ` '${this.model?.name}'`,\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteConfirmed();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deleteConfirmed() {\n if (this.model.id) {\n this.axios.delete(\"/notificationSchedules/\" + this.model.id).then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"NotificationSchedule.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n\n this.$emit(\"deleted\");\n });\n }\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n notNull: (value: any) =>\n (value != null && value != undefined) || this.$t(\"Validation.Required\"),\n maxLength: (value: string, max: number) =>\n value.length <= max || this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationScheduleForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationScheduleForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationScheduleForm.vue?vue&type=template&id=90444554&scoped=true&\"\nimport script from \"./NotificationScheduleForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationScheduleForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationScheduleForm.vue?vue&type=style&index=0&id=90444554&scoped=true&lang=scss&\"\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 \"90444554\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VDataTable,VFadeTransition,VForm,VOverlay,VProgressCircular,VRow,VSelect,VSpacer,VSubheader,VSwitch,VTextField,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport NotificationTemplateTranslations from \"./NotificationTemplateTranslations.vue\";\nimport NotificationTemplateVariables from \"./NotificationTemplateVariables.vue\";\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport { NotificationTemplateModel } from \"./types\";\nimport { Getter, Action } from \"vuex-class\";\nimport { MessageSourceType } from \"@/shared/models/messageSourceType\";\nimport { LanguageView } from \"@/shared/models/languages\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport NotificationScheduleForm from \"../schedules/NotificationScheduleForm.vue\";\nimport { NotificationTemplateAttachment } from \"@/shared/models/notificationTemplateAttachment\";\nimport { NotificationTemplateRecipient } from \"@/shared/models/notificationTemplateRecipient\";\nimport * as _ from \"lodash\";\nimport { MessageSourceTypeEnum } from \"../types\";\nimport handleBrokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\n\n@Component({\n components: {\n RichTextEditor,\n NotificationTemplateTranslations,\n NotificationTemplateVariables,\n FormDescription,\n NotificationScheduleForm,\n },\n})\nexport default class NotificationTemplateForm extends Vue {\n @Getter(\"codebooks/languages\")\n languages?: LanguageView[];\n @Action(\"codebooks/refreshLanguages\")\n refreshLanguages?: () => Promise;\n\n @Getter(\"codebooks/messageSourceTypes\")\n sourceTypes?: MessageSourceType[];\n @Action(\"codebooks/refreshMessageSourceTypes\")\n refreshSourceTypes?: () => Promise;\n\n @Getter(\"codebooks/notificationTemplateRecipients\")\n recipients?: NotificationTemplateRecipient[];\n @Action(\"codebooks/refreshNotificationTemplateRecipients\")\n refreshRecipients?: () => Promise;\n\n @Getter(\"codebooks/notificationTemplateAttachments\")\n attachments?: NotificationTemplateAttachment[];\n @Action(\"codebooks/refreshNotificationTemplateAttachments\")\n refreshAttachments?: () => Promise;\n\n translationsDrawerOpen = false;\n testDialogOpen = false;\n scheduleOpen = false;\n\n async created() {\n const promises = [];\n\n if (this.$route.params.id || this.$route.query.copy) {\n const id = this.$route.params.id\n ? Number.parseInt(this.$route.params.id)\n : Number.parseInt(this.$route.query.copy as string);\n this.loadTemplate(id);\n } else {\n this.loadTemplate(null);\n }\n\n if ((this.languages?.length ?? 0) === 0 && this.refreshLanguages) {\n promises.push(this.refreshLanguages());\n }\n\n if ((this.sourceTypes?.length ?? 0) === 0 && this.refreshSourceTypes) {\n promises.push(this.refreshSourceTypes());\n }\n\n if ((this.recipients?.length ?? 0) === 0 && this.refreshRecipients) {\n promises.push(this.refreshRecipients());\n }\n\n if ((this.attachments?.length ?? 0) === 0 && this.refreshAttachments) {\n promises.push(this.refreshAttachments());\n }\n\n await Promise.all(promises);\n }\n\n loadTemplate(id: number | null) {\n this.loading = true;\n if (id) {\n this.axios\n .get(\"/notificationTemplates/\" + id)\n .then((res) => {\n this.template = { ...res.data };\n\n if (this.$route.query.copy) {\n this.template.id = 0;\n }\n\n this.initialTemplate = _.cloneDeep(this.template);\n })\n .finally(() => {\n this.loading = false;\n });\n } else {\n this.template = new NotificationTemplateModel();\n this.initialTemplate = _.cloneDeep(this.template);\n this.loading = false;\n }\n }\n\n template = new NotificationTemplateModel();\n initialTemplate: NotificationTemplateModel | null = null;\n\n isFormValid = false;\n isTranslationsFormValid = false;\n useSimpleVariables = false;\n\n @Watch(\"template.sourceTypes\")\n watchTemplateSourceTypes(fresh: number[]) {\n if(fresh.some(x => x === MessageSourceTypeEnum[\"SMS\"] || x === MessageSourceTypeEnum[\"WhatsApp\"])) {\n this.useSimpleVariables = true;\n this.template.body = this.template.body.replace(/(<([^>]+)>)/ig, '');\n } else {\n this.useSimpleVariables = false;\n }\n }\n\n get submitDisabled(): boolean {\n return this.isFormValid && this.isTranslationsFormValid && !this.loading;\n }\n\n get activeSorceTypes() {\n return this.sourceTypes?.filter(x => x.id === MessageSourceTypeEnum.EMail || \n x.id === MessageSourceTypeEnum.WhatsApp || x.id === MessageSourceTypeEnum.SMS) \n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n get translationsForm(): Vue & { validate: () => boolean } {\n return this.$refs.translationsForm as Vue & { validate: () => boolean };\n }\n\n loading = false;\n save(overrides: string[]) {\n this.form.validate();\n this.translationsForm.validate();\n\n if (!this.isFormValid || !this.isTranslationsFormValid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Changes are invalid or incomplete\"),\n timeout: 5000,\n });\n\n return;\n }\n\n const handleCodes = [\"NotificationTemplates.Validation.MessageTemplateTooManyCharacters\"];\n const adapter = handleBrokenRuleAdapter(this.axios, handleCodes);\n\n // prettier-ignore\n const formatBrokenRuleNames = (x: string[]) => x\n .map((h) => this.$t(h).toString())\n .map((th) => th.endsWith(\".\") ? th : th + \".\")\n .join(\" \");\n\n const isOverriding = overrides.length !== 0;\n\n this.loading = true;\n if (!this.template.id) {\n this.axios\n .post(\"/notificationTemplates\", {...this.template, overrideRules: overrides}, {adapter})\n .then((res) => {\n this.saveSuccess();\n this.$router.replace({\n name: \"NotificationTemplateEdit\",\n params: { id: res.data.toString() },\n replace: true,\n });\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.save(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.loading = false;\n });\n } else {\n this.axios\n .put(\"/notificationTemplates\", {...this.template, overrideRules: overrides}, {adapter})\n .then(() => {\n this.saveSuccess();\n })\n .catch((x) => {\n if (x && x.isHandleBrokenRuleResult && !isOverriding) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message:\n // prettier-ignore\n `${formatBrokenRuleNames(x.handled)}`,\n timeout: 30000,\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.save(x.handled);\n return true;\n },\n },\n { text: this.$t(\"Cancel\"), fun: () => true },\n ],\n } as Notification);\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(x.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n saveSuccess() {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"NotificationTemplate.SaveSuccess\"),\n timeout: 5000,\n } as Notification);\n\n this.initialTemplate = _.cloneDeep(this.template);\n }\n\n notificationTestModel = {\n reservationId: null as number | null,\n to: \"\",\n cultureCode: \"\",\n sourceTypeId: null as number | null\n };\n\n get testForm(): Vue & { validate: () => boolean } {\n return this.$refs.testForm as Vue & { validate: () => boolean };\n }\n isTestFormValid = false;\n sendingTest = false;\n submitNotificationTest() {\n if (this.notificationTestModel.reservationId?.toString() === \"\") {\n this.notificationTestModel.reservationId = null;\n }\n\n //TODO: make multiple send by source type\n this.notificationTestModel.sourceTypeId = this.template.sourceTypes[0];\n\n this.sendingTest = true;\n\n this.axios\n .post(\"/notificationTemplates/SendTestNotification\", {\n ...this.template,\n notificationTemplateId: this.template.id,\n ...this.notificationTestModel,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"NotificationTemplate.TestSentSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.sendingTest = false;\n });\n }\n\n get rules() {\n return {\n required: (value: any) => (Array.isArray(value) ? !!value.length : !!value) || this.$t(\"Validation.Required\"),\n maxLength: (value: string, max: number) =>\n value.length <= max || this.$t(\"Validation.MaxLength\", { count: max }),\n emailFormat: (value: string) =>\n !value ||\n /^$|.+@.+\\..+/.test(value) ||\n this.$t(\"Validation.EmailFormat\"),\n };\n }\n\n checkClose() {\n if (!this.isUnchanged) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\n \"Changes pending. Are you sure you want to close the form?\"\n ),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.close();\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 5000,\n } as Notification);\n } else {\n this.close();\n }\n }\n\n close() {\n this.$router.push({ path: \"/settings/notification-templates\" });\n }\n\n get isUnchanged(){\n return _.isEqual(this.template, this.initialTemplate);\n }\n\n scheduleCreated(id: number){\n this.template.notificationScheduleId = id;\n if (this.initialTemplate){\n this.initialTemplate.notificationScheduleId = id;\n }\n }\n\n scheduleDeleted() {\n this.template.notificationScheduleId = null;\n if (this.initialTemplate) {\n this.initialTemplate.notificationScheduleId = null;\n }\n\n this.scheduleOpen = false;\n }\n\n get isSMSOrWhatsApp() {\n return this.template.sourceTypes.some(x => x === MessageSourceTypeEnum[\"WhatsApp\"] || x === MessageSourceTypeEnum[\"SMS\"]);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationTemplateForm.vue?vue&type=template&id=8c5de70e&scoped=true&\"\nimport script from \"./NotificationTemplateForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationTemplateForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationTemplateForm.vue?vue&type=style&index=0&id=8c5de70e&scoped=true&lang=scss&\"\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 \"8c5de70e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VForm,VRow,VSelect,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-wrapper\"},[_c('div',{staticClass:\"financial-page__form\"},[_c('DocumentSettingsForm',{ref:\"settings-form\",model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('v-spacer'),_c('v-sheet',{staticClass:\"financial-page__actions d-flex flex-row pa-2\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":!_vm.loaded},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"to\":\"/settings\"}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"form\",staticClass:\"fill-height\",attrs:{\"lazy-validation\":\"\",\"readonly\":_vm.isLocked}},[(_vm.model)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"stretch\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-card',{staticClass:\"mb-2\",attrs:{\"height\":\"100%\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"6\",\"offset\":\"3\"}},[_c('v-card',{staticClass:\"d-flex\",class:{ 'align-center': !this.model.hasLogo },attrs:{\"min-height\":\"245\",\"max-height\":\"262\"},on:{\"click\":function($event){return _vm.addPhoto()},\"dragover\":function($event){$event.preventDefault();_vm.dragging = true}}},[(this.model.hasLogo)?_c('v-img',{attrs:{\"width\":\"100%\",\"contain\":true,\"src\":_vm.photoSrc}},[_c('template',{slot:\"placeholder\"},[_c('v-skeleton-loader',{attrs:{\"loading\":true,\"type\":\"image\"}})],1),_c('v-btn',{staticClass:\"delete-photo\",attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"red\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deletePhotoConfirmation.apply(null, arguments)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" fal fa-trash \")])],1)],2):(!_vm.dragging)?_c('v-card-text',{staticClass:\"\\n fill-height\\n d-flex\\n align-center\\n justify-center\\n flex-column\\n \"},[_c('div',{staticClass:\"mb-2 addPhotoText\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Add new photo click or drag\"))+\" \")]),_c('v-icon',{staticClass:\"mt-2 mb-6\",attrs:{\"x-large\":\"\"}},[_vm._v(\"fal fa-plus\")])],1):_vm._e(),(_vm.dragging)?_c('v-card-text',{staticClass:\"dropzone rounded-t white--text\",on:{\"dragleave\":function($event){$event.preventDefault();_vm.dragging = false},\"dragend\":function($event){$event.preventDefault();_vm.dragging = false},\"drop\":function($event){$event.preventDefault();return _vm.dropPhoto.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"PhotosUpload.Dropzone\"))+\" \")]):_vm._e()],1),_c('form-description',{staticClass:\"mt-3 mb-0\"},[_vm._v(_vm._s(_vm.$t(\"FinancialSettings.LogoUploadHint\")))])],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"mt-3 mb-0\"},[_c('v-card-text',[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('FinancialSettings.DocumentHeader')},model:{value:(_vm.model.financialDocumentHeader),callback:function ($$v) {_vm.$set(_vm.model, \"financialDocumentHeader\", $$v)},expression:\"model.financialDocumentHeader\"}})],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"mt-3 mb-0\"},[_c('v-card-text',[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('FinancialSettings.DocumentFooter')},model:{value:(_vm.model.financialDocumentFooter),callback:function ($$v) {_vm.$set(_vm.model, \"financialDocumentFooter\", $$v)},expression:\"model.financialDocumentFooter\"}})],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"mt-3 mb-0\"},[_c('v-card-text',[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('FinancialSettings.PaymentInstructions')},model:{value:(_vm.model.financialDocumentPaymentInstructions),callback:function ($$v) {_vm.$set(_vm.model, \"financialDocumentPaymentInstructions\", $$v)},expression:\"model.financialDocumentPaymentInstructions\"}})],1)],1)],1)],1),_c('v-file-input',{ref:\"photoInputRef\",staticClass:\"hide-input-field\",attrs:{\"accept\":\"image/*\"},model:{value:(_vm.filesToUpload),callback:function ($$v) {_vm.filesToUpload=$$v},expression:\"filesToUpload\"}})],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-card',{staticClass:\"mb-2\",attrs:{\"height\":\"100%\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"mt-3 mb-0\"},[_c('v-card-text',[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('DocumentSettings.NonFinancialDocumentHeader')},model:{value:(_vm.model.nonFinancialDocumentHeader),callback:function ($$v) {_vm.$set(_vm.model, \"nonFinancialDocumentHeader\", $$v)},expression:\"model.nonFinancialDocumentHeader\"}})],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"mt-3 mb-0\"},[_c('v-card-text',[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('DocumentSettings.KeyInfo')},model:{value:(_vm.model.documentKeyInfoTemplate),callback:function ($$v) {_vm.$set(_vm.model, \"documentKeyInfoTemplate\", $$v)},expression:\"model.documentKeyInfoTemplate\"}})],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"mt-3 mb-0\"},[_c('v-card-text',[_c('RichTextEditor',{staticClass:\"richTextEditor\",attrs:{\"label\":_vm.$t('DocumentSettings.HouseRules')},model:{value:(_vm.model.documentHouseRulesTemplate),callback:function ($$v) {_vm.$set(_vm.model, \"documentHouseRulesTemplate\", $$v)},expression:\"model.documentHouseRulesTemplate\"}})],1)],1)],1)],1)],1)],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport RichTextEditor from \"@/components/misc/RichTextEditor.vue\";\nimport { Component, Model, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport FormDescription from \"@/components/misc/FormDescription.vue\";\nimport { DocumentSettingsType } from \"@/store/modules/documents\";\nimport { Notification } from \"@/store/modules/notifications\";\n\n@Component({ components: { FormDescription,RichTextEditor } })\nexport default class DocumentSettingsForm extends Vue {\n @Ref(\"form\") formRef?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n\n @Model() model?: DocumentSettingsType;\n\n get isLocked() {\n return false;\n }\n\n @Watch('model')\n onModelLoad(model: DocumentSettingsType, oldModel: DocumentSettingsType | null | undefined)\n {\n if(oldModel === null || oldModel === undefined)\n {\n this.loadPhoto();\n }\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n maxLength: (max: number) => (v: string) =>\n !v || (v.length <= max) ||\n this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n\n // photos\n savingPhoto = false;\n dragging = false;\n filesToUpload: any = {};\n photoSrc: any = \"\";\n\n addPhoto() {\n (\n (this.$refs.photoInputRef as Vue).$el.lastElementChild?.firstElementChild\n ?.firstElementChild?.lastElementChild as HTMLElement\n ).click();\n }\n\n dropPhoto(e: any) {\n this.dragging = false;\n\n const imageTypeRegex = new RegExp(/image\\/*/);\n\n for (const file of e.dataTransfer.files) {\n if (!imageTypeRegex.test(file.type)) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotosUpload.NotAllImages\"),\n timeout: 5000,\n } as Notification);\n return;\n }\n }\n this.filesToUpload = e.dataTransfer.files;\n }\n\n @Watch(\"filesToUpload\")\n uploadPhoto() {\n if (this.filesToUpload.length > 1) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotosUpload.CannotUploadMultiplePhotos\"),\n timeout: 5000,\n } as Notification);\n return;\n }\n\n if (!this.filesToUpload || this.filesToUpload.length == 0) {\n return;\n }\n\n const formData = new FormData();\n if (this.filesToUpload.length) {\n for (let i = 0; i < this.filesToUpload.length; i++) {\n formData.append(\"logo\", this.filesToUpload[i]);\n }\n } else {\n formData.append(\"logo\", this.filesToUpload);\n }\n\n this.savingPhoto = true;\n Vue.axios\n .post(`tenants/${this.model?.tenantId}/logo`, formData)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"PhotosUpload.Success\"),\n timeout: 5000,\n } as Notification);\n\n if(this.model)\n {\n this.model.hasLogo = true;\n this.loadPhoto();\n }\n })\n .finally(() => (this.savingPhoto = false));\n }\n\n deletePhotoConfirmation() {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"PhotoDelete.Confirmation\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deletePhoto();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n\n deletePhoto() {\n this.savingPhoto = true;\n Vue.axios\n .delete(\"tenants/\" + this.model?.tenantId + \"/logo\")\n .then(() => {\n if(this.model)\n {\n this.model.hasLogo = false;\n }\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"PhotoDelete.Failed\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.savingPhoto = false;\n });\n }\n\n loadPhoto() {\n Vue.axios\n .get(\"system/GetTenantLogo/\" + this.model?.tenantId, {\n responseType: \"blob\",\n })\n .then((res) => {\n const reader = new FileReader();\n reader.readAsDataURL(res.data);\n reader.onload = () => {\n this.photoSrc = reader.result;\n };\n })\n .catch(() => {\n this.photoSrc = require(\"@/assets/images/no-image-icon-23488.png\");\n });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentSettingsForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentSettingsForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentSettingsForm.vue?vue&type=template&id=7c6f0729&scoped=true&\"\nimport script from \"./DocumentSettingsForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentSettingsForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentSettingsForm.vue?vue&type=style&index=0&id=7c6f0729&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 \"7c6f0729\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VFileInput,VForm,VIcon,VImg,VRow,VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport DocumentSettingsForm from \"@/components/documents/DocumentSettingsForm.vue\";\nimport { Action, Getter } from \"vuex-class\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport { DocumentSettingsType } from \"@/store/modules/documents\";\nimport { cloneDeep } from \"lodash\";\n\n@Component({\n components: { DocumentSettingsForm },\n mixins: [GlobalFilterSensitiveMixin],\n})\nexport default class Financial extends Vue {\n @Getter(\"documents/settings\") storedSettings?: DocumentSettingsType;\n @Action(\"documents/refreshModel\") refreshSettings?: () => Promise;\n\n loaded = false;\n model = null as DocumentSettingsType | null;\n\n @Ref(\"settings-form\") form?: DocumentSettingsForm;\n\n async refresh() {\n if (!this.refreshSettings) return;\n this.loaded = false;\n try {\n await this.refreshSettings();\n this.model = this.storedSettings ? { ...this.storedSettings } : null;\n this.loaded = true;\n } catch {\n this.$router.replace({ name: \"Settings\" });\n }\n }\n\n async created() {\n await this.refresh();\n }\n\n @Action(\"documents/saveModel\") saveSettings?: (\n x: DocumentSettingsType\n ) => Promise;\n async save() {\n this.loaded = false;\n\n const cleanedModel = this.cleanPaymentInstructions();\n\n try {\n if (this.saveSettings && cleanedModel && this.form?.formRef?.validate()) {\n\n await this.saveSettings(cleanedModel);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"FinancialSettings.SaveSuccess\"),\n timeout: 5000,\n });\n await this.refresh();\n }\n } finally {\n this.loaded = true;\n }\n }\n\n /**\n * Payment instructions need to be \"cleaned\" before save because RTE leaves HTML content \n * inside even if you delete everything in the GUI. We need the string to be empty so \n * we're able to discriminate between existing/non-existing payment instructions as the\n * entire block is expected to be shown/not shown on documents depending if the payment \n * instructions are filled in or not. \n * \n * The method just searches for text in the RTE DOM since when the content is empty in\n * the RTE it usually leaves something like `
` or `

` as the \"empty\n * content\".\n */\n cleanPaymentInstructions()\n {\n const parser = new DOMParser();\n\n const internalModel = cloneDeep(this.model);\n\n const { textContent } = parser.parseFromString(internalModel?.financialDocumentPaymentInstructions ?? \"\", \"text/html\").documentElement;\n\n if(!textContent?.trim() && internalModel != null)\n {\n internalModel.financialDocumentPaymentInstructions = \"\";\n }\n\n return internalModel;\n }\n\n @Watch(\"sensitiveKey\")\n async tenantChanged() {\n await this.refresh();\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentSettings.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentSettings.vue?vue&type=template&id=1c5b71cb&scoped=true&\"\nimport script from \"./DocumentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentSettings.vue?vue&type=style&index=0&id=1c5b71cb&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 \"1c5b71cb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VSheet,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"guestReviews\"},[_c('GuestReviewTable',{key:_vm.sensitiveKey,staticClass:\"guestReviews-table\",class:(_vm.$vuetify.breakpoint.xsOnly ? 'xs mt-4' :'' )})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"guestReviews\"},[_c('SortableHeadersTable',{staticClass:\"guestReviewsTable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"guestReviews\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick},scopedSlots:_vm._u([{key:\"header.reviewSubmitDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reviewSubmitDate),callback:function ($$v) {_vm.$set(_vm.filters, \"reviewSubmitDate\", $$v)},expression:\"filters.reviewSubmitDate\"}})]}},{key:\"item.reviewSubmitDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex\"},[(item.reviewSubmitDate)?_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.reviewSubmitDate)))+\" \")])]):_vm._e()])]}},{key:\"header.reviewApprovalDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reviewApprovalDate),callback:function ($$v) {_vm.$set(_vm.filters, \"reviewApprovalDate\", $$v)},expression:\"filters.reviewApprovalDate\"}})]}},{key:\"item.reviewApprovalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex\"},[(item.reviewApprovalDate)?_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.reviewApprovalDate)))+\" \")])]):_vm._e()])]}},{key:\"header.guestName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.guestName),callback:function ($$v) {_vm.$set(_vm.filters, \"guestName\", $$v)},expression:\"filters.guestName\"}})]}},{key:\"header.propertyName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.propertyName),callback:function ($$v) {_vm.$set(_vm.filters, \"propertyName\", $$v)},expression:\"filters.propertyName\"}})]}},{key:\"header.accomodationUnitTypeName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.accomodationUnitTypeName),callback:function ($$v) {_vm.$set(_vm.filters, \"accomodationUnitTypeName\", $$v)},expression:\"filters.accomodationUnitTypeName\"}})]}},{key:\"header.statusId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.guestReviewStatuses,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.statusId),callback:function ($$v) {_vm.$set(_vm.filters, \"statusId\", $$v)},expression:\"filters.statusId\"}})]}},{key:\"item.statusId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(_vm.getStatusText(item.statusId))))])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.openItemDetails(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),_c('v-list-item',{attrs:{\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.deleteItem(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Delete\")))])],1)],1)],1)],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-briefcase\"}})],1):_vm._e()]},proxy:true}])}),_c('v-btn',{staticClass:\"add-button\",attrs:{\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addItem()}}},[_c('v-icon',[_vm._v(\"fal fa-plus\")])],1),_c('GuestReviewForm',{attrs:{\"open\":_vm.guestReviewFormOpen,\"reviewId\":_vm.guestReviewId,\"guestReviewStatuses\":_vm.guestReviewStatuses},on:{\"update:open\":function($event){_vm.guestReviewFormOpen=$event},\"callback\":_vm.load}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('RightDrawer',{ref:\"drawer\",attrs:{\"open\":_vm.open,\"initial\":_vm.initialReview,\"watched\":_vm.review,\"is-watched-valid\":_vm.isFormValid,\"width\":\"960px\"},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)},\"save\":_vm.save},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.submitDisabled},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[(_vm.review.id)?_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"GuestReview.updateReview\"))+\" \")]):_c('span',{staticClass:\"form-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"GuestReview.newReview\"))+\" \")])]),_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading,\"bottom\":\"\"}}),_c('v-form',{key:_vm.fkey,ref:\"form\",staticClass:\"form\",attrs:{\"disabled\":_vm.loading},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('div',{staticClass:\"form-items\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"6\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('GuestReview.GuestName') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.review.guestName),callback:function ($$v) {_vm.$set(_vm.review, \"guestName\", $$v)},expression:\"review.guestName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"6\",\"sm\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Country'),\"items\":_vm.countries,\"item-text\":function (x) { return (_vm.language === 'hr-HR' ? x.name : x.englishName); },\"item-value\":\"id\"},model:{value:(_vm.review.countryId),callback:function ($$v) {_vm.$set(_vm.review, \"countryId\", $$v)},expression:\"review.countryId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"6\",\"sm\":\"12\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('GuestReview.SubmittedDate') + '*',\"rules\":[_vm.rules.required]},model:{value:(_vm.review.reviewSubmitDate),callback:function ($$v) {_vm.$set(_vm.review, \"reviewSubmitDate\", $$v)},expression:\"review.reviewSubmitDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"6\",\"sm\":\"12\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('GuestReview.ApprovalDate'),\"clearable\":true},model:{value:(_vm.review.reviewApprovalDate),callback:function ($$v) {_vm.$set(_vm.review, \"reviewApprovalDate\", $$v)},expression:\"review.reviewApprovalDate\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"6\",\"sm\":\"12\"}},[_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('GuestReview.Status') + '*',\"items\":_vm.guestReviewStatuses,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"rules\":[_vm.rules.required]},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.review.statusId),callback:function ($$v) {_vm.$set(_vm.review, \"statusId\", $$v)},expression:\"review.statusId\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"lg\":\"6\",\"sm\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('GuestReview.Property'),\"items\":_vm.properties,\"item-text\":function (x) { return x.name; },\"item-value\":\"propertyId\"},model:{value:(_vm.review.propertyId),callback:function ($$v) {_vm.$set(_vm.review, \"propertyId\", $$v)},expression:\"review.propertyId\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"2\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.GeneralScore'),\"rules\":[_vm.rules.oneToTen, _vm.rules.maxDecimals]},model:{value:(_vm.review.generalScore),callback:function ($$v) {_vm.$set(_vm.review, \"generalScore\", _vm._n($$v))},expression:\"review.generalScore\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{staticClass:\"centered-input\",attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.CleanlinessScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.cleanlinessScore),callback:function ($$v) {_vm.$set(_vm.review, \"cleanlinessScore\", _vm._n($$v))},expression:\"review.cleanlinessScore\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.LocationScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.locationScore),callback:function ($$v) {_vm.$set(_vm.review, \"locationScore\", _vm._n($$v))},expression:\"review.locationScore\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.ValueForMoneyScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.valueForMoneyScore),callback:function ($$v) {_vm.$set(_vm.review, \"valueForMoneyScore\", _vm._n($$v))},expression:\"review.valueForMoneyScore\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.FacilitiesScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.facilitiesScore),callback:function ($$v) {_vm.$set(_vm.review, \"facilitiesScore\", _vm._n($$v))},expression:\"review.facilitiesScore\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.StaffScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.staffScore),callback:function ($$v) {_vm.$set(_vm.review, \"staffScore\", _vm._n($$v))},expression:\"review.staffScore\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.ComfortScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.comfortScore),callback:function ($$v) {_vm.$set(_vm.review, \"comfortScore\", _vm._n($$v))},expression:\"review.comfortScore\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"sm\":\"3\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"suffix\":\"/10\",\"label\":_vm.$t('GuestReview.WifiScore'),\"rules\":[_vm.rules.oneToTen ].concat( (_vm.rules.wholeNumbersOnly || []))},model:{value:(_vm.review.wifiScore),callback:function ($$v) {_vm.$set(_vm.review, \"wifiScore\", _vm._n($$v))},expression:\"review.wifiScore\"}})],1)],1),_c('v-row',[_c('v-textarea',{staticClass:\"review-textarea\",attrs:{\"label\":_vm.$t('GuestReview.ReviewTextGeneral'),\"rules\":[_vm.rules.maxLength(2000)],\"outlined\":\"\"},model:{value:(_vm.review.reviewTextGeneral),callback:function ($$v) {_vm.$set(_vm.review, \"reviewTextGeneral\", $$v)},expression:\"review.reviewTextGeneral\"}})],1),_c('v-row',[_c('v-textarea',{staticClass:\"review-textarea\",attrs:{\"label\":_vm.$t('GuestReview.ReviewTextPros'),\"rules\":[_vm.rules.maxLength(2000)],\"outlined\":\"\"},model:{value:(_vm.review.reviewTextPros),callback:function ($$v) {_vm.$set(_vm.review, \"reviewTextPros\", $$v)},expression:\"review.reviewTextPros\"}})],1),_c('v-row',[_c('v-textarea',{staticClass:\"review-textarea\",attrs:{\"label\":_vm.$t('GuestReview.ReviewTextCons'),\"rules\":[_vm.rules.maxLength(2000)],\"outlined\":\"\"},model:{value:(_vm.review.reviewTextCons),callback:function ($$v) {_vm.$set(_vm.review, \"reviewTextCons\", $$v)},expression:\"review.reviewTextCons\"}})],1)],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export type GuestReview = {\n id: number;\n propertyId: number;\n propertyName: string;\n accomodationUnitTypeId: number;\n accomodationUnitTypeName: string;\n guestName: string;\n countryId: number;\n reviewSubmitDate: string;\n reviewApprovalDate: string;\n reviewTextGeneral: string;\n reviewTextPros: string;\n reviewTextCons: string;\n generalScore: number;\n cleanlinessScore: number;\n locationScore: number;\n valueForMoneyScore: number;\n facilitiesScore: number;\n staffScore: number;\n comfortScore: number;\n wifiScore: number;\n sortOrder: number;\n statusId: number;\n}\n\nexport type GuestReviewStatus = {\n id: number;\n name: string;\n textResourceKey: string;\n}\n\nexport class GuestReviewModel {\n id: number | null = null;\n guestName: string | null = null;\n reviewSubmitDate = new Date().toISOString().substr(0, 10);\n reviewApprovalDate: string | null = null;\n propertyId: number | null = null;\n accomodationUnitTypeId: number | null = null;\n countryId: number | null = null;\n reviewTextGeneral: string | null = null;\n reviewTextPros: string | null = null;\n reviewTextCons: string | null = null;\n generalScore: number | null = null;\n cleanlinessScore: number | null = null;\n locationScore: number | null = null;\n valueForMoneyScore: number | null = null;\n facilitiesScore: number | null = null;\n staffScore: number | null = null;\n comfortScore: number | null = null;\n wifiScore: number | null = null;\n statusId = 1;\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Watch, Vue, Ref } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport {\n GuestReviewModel,\n GuestReviewStatus,\n} from \"@/shared/models/guestReview\";\nimport _ from \"lodash\";\nimport { Country } from \"@/shared/models/country\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\n\n@Component({\n components: {\n RightDrawer,\n DateField,\n NumericInput,\n TimeField,\n },\n})\nexport default class GuestReviewForm extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop() reviewId?: number | null;\n @Prop() callback!: () => any;\n @Prop() guestReviewStatuses?: GuestReviewStatus[];\n\n fkey = 0;\n saving = false;\n loading = false;\n\n initialReview: GuestReviewModel = new GuestReviewModel();\n review: GuestReviewModel = new GuestReviewModel();\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"codebooks/countries\") _countries?: Country[];\n\n @Getter(\"globalFilters/properties\") _properties?: GlobalFilterProperty[];\n\n @Watch(\"open\")\n async openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n\n if (fresh && this.reviewId) {\n await this.loadReview();\n this.initialReview = _.cloneDeep(this.review);\n } else {\n this.review = new GuestReviewModel();\n this.initialReview = _.cloneDeep(this.review);\n }\n }\n }\n get countries() {\n if (!this._countries) {\n return [];\n }\n if (this.language === \"hr-HR\")\n return this._countries.sort((a, b) =>\n a.name > b.name ? 1 : a.name < b.name ? -1 : 0\n );\n else\n return this._countries.sort((a, b) =>\n a.englishName > b.englishName\n ? 1\n : a.englishName < b.englishName\n ? -1\n : 0\n );\n }\n\n get properties() {\n if (!this._properties) return [];\n\n return this._properties\n .filter((x) => x.status)\n .sort((a, b) => (a.name > b.name ? 1 : a.name < b.name ? -1 : 0));\n }\n\n async mounted() {\n if (!this.countries || this.countries.length == 0) {\n this.$store.dispatch(\"codebooks/refreshCountries\");\n }\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n return this.isFormValid && !this.loading && !this.saving;\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n countDecimals(num: number) {\n return num.toString().split(\".\")[1]?.length || 0;\n }\n\n get rules() {\n return {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n oneToTen: (value: any) =>\n value == undefined ||\n value === \"\" ||\n (value >= 1 && value <= 10) ||\n this.$t(\"Validation.MustBeFromOneToTen\"),\n wholeNumbersOnly: [\n (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n ],\n maxDecimals: (value: any) =>\n !(this.countDecimals(+value) > 2) ||\n this.$t(\"Validation.CanOnlyHaveTwoDecimals\"),\n maxLength: (max: number) => (value: string) =>\n !value ||\n value.length <= max ||\n this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n\n async loadReview() {\n this.loading = true;\n await Vue.axios\n .get(\"/guestReviews/\" + this.reviewId)\n .then((res) => {\n this.review = res.data;\n\n const value = new Date(res.data.reviewSubmitDate.substring(0, 10));\n this.review.reviewSubmitDate = value.toISOString().substring(0, 10);\n\n if (res.data.reviewApprovalDate) {\n const value = new Date(res.data.reviewApprovalDate.substring(0, 10));\n this.review.reviewApprovalDate = value.toISOString().substring(0, 10);\n }\n this.initialReview = _.cloneDeep(this.review);\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n refresh() {\n if (this.callback instanceof Function) {\n this.callback();\n }\n }\n\n @Ref(\"drawer\") rightDrawer?: RightDrawer;\n\n close() {\n this.rightDrawer?.clickOverlay();\n }\n\n async save() {\n //server returns error for empty string\n if (this.review.reviewApprovalDate === \"\") {\n this.review.reviewApprovalDate = null;\n }\n\n if (this.review.id) {\n await this.update();\n return;\n }\n\n await this.axios\n .post(\"/guestReviews\", { ...this.review })\n .then(() => {\n this.initialReview = _.cloneDeep(this.review);\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GuestReview.SaveSuccess\"),\n timeout: 5000,\n localize: true,\n });\n this.$emit(\"update:open\", false);\n this.$emit(\"callback\");\n })\n .finally(() => {\n this.refresh();\n });\n }\n\n //v-text-field will bind empty string if user deletes value inside of it\n //and we need it to be null - otherwise server returns error that data is wrong\n validateScores() {\n if (_.isEqual(this.review.cleanlinessScore, \"\")) {\n this.review.cleanlinessScore = null;\n }\n if (_.isEqual(this.review.locationScore, \"\")) {\n this.review.locationScore = null;\n }\n if (_.isEqual(this.review.valueForMoneyScore, \"\")) {\n this.review.valueForMoneyScore = null;\n }\n if (_.isEqual(this.review.facilitiesScore, \"\")) {\n this.review.facilitiesScore = null;\n }\n if (_.isEqual(this.review.staffScore, \"\")) {\n this.review.staffScore = null;\n }\n if (_.isEqual(this.review.comfortScore, \"\")) {\n this.review.comfortScore = null;\n }\n if (_.isEqual(this.review.wifiScore, \"\")) {\n this.review.wifiScore = null;\n }\n return true;\n }\n\n async update() {\n this.validateScores();\n await this.axios\n .put(\"/guestReviews/\" + this.review.id, { ...this.review })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GuestReview.SaveSuccess\"),\n timeout: 5000,\n localize: true,\n });\n this.$emit(\"update:open\", false);\n this.$emit(\"callback\");\n })\n .finally(() => {\n this.refresh();\n });\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviewForm.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviewForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GuestReviewForm.vue?vue&type=template&id=298fc638&scoped=true&\"\nimport script from \"./GuestReviewForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GuestReviewForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GuestReviewForm.vue?vue&type=style&index=0&id=298fc638&scoped=true&lang=scss&\"\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 \"298fc638\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBtn,VCol,VForm,VProgressLinear,VRow,VSelect,VTextField,VTextarea,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport GenericPMSTableMenu from \"@/components/generic-pms-table/GenericPMSTableMenu.vue\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableTable from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport GuestReviewForm from \"../components/GuestReviewForm.vue\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { Notification } from \"../store/modules/notifications\";\nimport * as _ from \"lodash\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { GuestReview, GuestReviewStatus } from \"@/shared/models/guestReview\";\nimport { Action, Getter } from \"vuex-class\";\nimport { GuestReviewStatusEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n GenericPMSTableMenu,\n SortableHeadersTable,\n GuestReviewForm,\n DateField,\n NoData\n },\n directives: {\n SortableTable,\n },\n})\nexport default class GuestReviewTable extends Vue {\n\n @Action(\"codebooks/refreshGuestReviewStatuses\")\n refreshGuestReviewStatuses?: () => Promise;\n @Getter(\"codebooks/guestReviewStatuses\")\n guestReviewStatuses?: GuestReviewStatus[];\n \n settingsOpen = false;\n\n async created(){\n const promises = [];\n\n if (\n (this.guestReviewStatuses?.length ?? 0) === 0 &&\n this.refreshGuestReviewStatuses\n ) {\n promises.push(this.refreshGuestReviewStatuses());\n }\n\n await Promise.all(promises);\n }\n\n headers: SortableTableHeader[] = [\n {\n text: \"GuestReview.SubmittedDate\",\n value: \"reviewSubmitDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"reviewSubmitDate\"],\n },\n {\n text: \"GuestReview.ApprovalDate\",\n value: \"reviewApprovalDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"GuestReview.GuestName\",\n value: \"guestName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"GuestReview.Property\",\n value: \"propertyName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"GuestReview.UnitType\",\n value: \"accomodationUnitTypeName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"GuestReview.GeneralScore\",\n value: \"generalScore\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"GuestReview.Status\",\n value: \"statusId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n\n filters = {\n reviewSubmitDate: \"\",\n reviewApprovalDate: \"\",\n guestName: \"\",\n propertyName: \"\",\n accomodationUnitTypeName: \"\",\n statusId: null as number | null,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise> {\n this.loading = true;\n\n return (\n this.axios\n .get>(\"/GuestReviews\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false))\n );\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n };\n }\n\n guestReviewFormOpen = false;\n guestReviewId: number | null = null;\n\n rowDoubleClick(e: MouseEvent, { item }: { item: GuestReview }) {\n this.openItemDetails(item);\n }\n async openItemDetails(item: GuestReview) {\n this.guestReviewId = item.id\n this.guestReviewFormOpen = true;\n }\n\n addItem() {\n this.guestReviewId = null;\n this.guestReviewFormOpen = true;\n }\n\n deleteItem(item: GuestReview) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteConfirmation\"),\n actions: [\n {\n text: this.$t(\"Delete\"),\n fun: () => {\n this.deleteItemConfirm(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n } as Notification);\n }\n deleteItemConfirm({ id }: { id: number }) {\n Vue.axios\n .delete(`/GuestReviews/${id}`)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"GuestReview.DeleteSuccess\"),\n timeout: 5000,\n } as Notification);\n })\n .finally(() => {\n this.load();\n });\n }\n\n getStatusText(statusId: number) {\n switch(statusId){\n case GuestReviewStatusEnum.Submitted:\n return \"t.GuestReviewStatus.Submitted\"\n case GuestReviewStatusEnum.Approved:\n return \"t.GuestReviewStatus.Approved\"\n case GuestReviewStatusEnum.Removed:\n return \"t.GuestReviewStatus.Removed\"\n }\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviewTable.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviewTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GuestReviewTable.vue?vue&type=template&id=1aed249e&scoped=true&\"\nimport script from \"./GuestReviewTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./GuestReviewTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GuestReviewTable.vue?vue&type=style&index=0&id=1aed249e&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 \"1aed249e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VSelect,VTextField})\n","\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport GuestReviewTable from \"@/components/GuestReviewTable.vue\";\nimport GlobalFilterSensitiveMixin from '@/mixins/GlobalFilterSensitiveMixin';\n\n@Component({\n components: {\n GuestReviewTable\n },\n mixins: [\n GlobalFilterSensitiveMixin\n ]\n})\nexport default class GuestReviews extends Vue {}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviews.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviews.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GuestReviews.vue?vue&type=template&id=0df08fc0&scoped=true&\"\nimport script from \"./GuestReviews.vue?vue&type=script&lang=ts&\"\nexport * from \"./GuestReviews.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GuestReviews.vue?vue&type=style&index=0&id=0df08fc0&scoped=true&lang=scss&\"\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 \"0df08fc0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MaintenanceGrid')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ScrollLoader',{attrs:{\"loadOffset\":100,\"element\":_vm.scrollEl},on:{\"offsetReached\":_vm.loadMore}},[_c('div',{staticClass:\"d-flex space-between header-row\"},[_c('div',[_vm._v(_vm._s(_vm.title))]),_c('v-icon',{staticClass:\"ml-3\",attrs:{\"size\":\"18\"},on:{\"click\":function($event){_vm.filterModalOpen = !_vm.filterModalOpen}}},[_vm._v(\"fas fa-fw fa-filter\")])],1),_c('v-fade-transition',[(_vm.loading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('div',{ref:\"scrollEl\",staticClass:\"scroll-wrapper custom-gutters\"},[_c('v-row',[_vm._l((_vm.items),function(item,$index){return _c('v-col',{key:$index,attrs:{\"cols\":\"12\"}},[_c('MaintenanceGridTile',{key:item.maintenanceAssignedToTenantUserId,attrs:{\"item\":item},on:{\"edit\":function($event){_vm.editingItem = $event;\n _vm.editingModalOpen = true;}}})],1)}),((!_vm.items || _vm.items.length == 0) && _vm.isInitialLoadDone && !_vm.loading)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('NoData',{staticClass:\"no-data\",attrs:{\"icon\":\"fas fa-vacuum\"}})],1):_vm._e()],2)],1),_c('MobileFilterModal',{attrs:{\"open\":_vm.filterModalOpen,\"filterType\":'maintenance',\"sortOptions\":_vm.sortOptions,\"sortPrefil\":_vm.sortPrefil},on:{\"update:open\":function($event){_vm.filterModalOpen=$event},\"filterUpdated\":function($event){return _vm.updateFilter($event)}}}),_c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\"},model:{value:(_vm.editingModalOpen),callback:function ($$v) {_vm.editingModalOpen=$$v},expression:\"editingModalOpen\"}},[(_vm.editingItem)?_c('v-card',[_c('v-card-text',[_c('v-select',{attrs:{\"items\":_vm.accomodationUnitStatuses,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"hide-details\":\"\"},model:{value:(_vm.editingItem.statusId),callback:function ($$v) {_vm.$set(_vm.editingItem, \"statusId\", $$v)},expression:\"editingItem.statusId\"}}),_c('v-select',{attrs:{\"label\":_vm.$t('AccommodationUnit.AssignedMaintenanceTeamMember'),\"items\":_vm.maintenanceTeamMembers,\"item-value\":\"tenantUserId\",\"item-text\":\"name\",\"hide-details\":\"\",\"clearable\":\"\"},model:{value:(_vm.editingItem.maintenanceAssignedToTenantUserId),callback:function ($$v) {_vm.$set(_vm.editingItem, \"maintenanceAssignedToTenantUserId\", $$v)},expression:\"editingItem.maintenanceAssignedToTenantUserId\"}}),_c('v-textarea',{attrs:{\"counter\":1024,\"rules\":[\n function (v) { return (v || '').length <= 1024 ||\n _vm.$t('AccommodationUnit.NoteLengthErrorMessage'); } ],\"label\":_vm.$t('Maintenance.CalendarUnitRemark')},model:{value:(_vm.editingItem.calendarUnitRemark),callback:function ($$v) {_vm.$set(_vm.editingItem, \"calendarUnitRemark\", $$v)},expression:\"editingItem.calendarUnitRemark\"}}),_c('v-textarea',{attrs:{\"counter\":1024,\"rules\":[\n function (v) { return (v || '').length <= 1024 ||\n _vm.$t('AccommodationUnit.NoteLengthErrorMessage'); } ],\"label\":_vm.$t('Maintenance.ReservationUnitRemark')},model:{value:(_vm.editingItem.reservationUnitRemark),callback:function ($$v) {_vm.$set(_vm.editingItem, \"reservationUnitRemark\", $$v)},expression:\"editingItem.reservationUnitRemark\"}}),_c('v-textarea',{attrs:{\"counter\":1024,\"rules\":[\n function (v) { return (v || '').length <= 1024 ||\n _vm.$t('AccommodationUnit.NoteLengthErrorMessage'); } ],\"label\":_vm.$t('Maintenance.ReservationRemark')},model:{value:(_vm.editingItem.reservationRemark),callback:function ($$v) {_vm.$set(_vm.editingItem, \"reservationRemark\", $$v)},expression:\"editingItem.reservationRemark\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"loading\":_vm.submitting},on:{\"click\":_vm.closeEditModal}},[_vm._v(_vm._s(_vm.$t(\"Close\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"loading\":_vm.submitting},on:{\"click\":_vm.saveChanges}},[_vm._v(_vm._s(_vm.$t(\"Save\")))])],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"pa-3\"},[_c('div',[_c('div',{staticClass:\"d-flex justify-space-between align-baseline\"},[_c('div',[(_vm.emphasizedLine)?_c('div',{staticClass:\"text-bold\"},[_vm._v(\" \"+_vm._s(_vm.emphasizedLine)+\" \")]):_vm._e(),(_vm.deEmphasizedLine)?_c('div',{staticClass:\"text-colored\"},[_vm._v(\" \"+_vm._s(_vm.deEmphasizedLine)+\" \")]):_vm._e(),(_vm.emphasizedLine || _vm.deEmphasizedLine)?_c('div',{staticClass:\"pt-3\"}):_vm._e()]),_c('v-icon',{staticClass:\"text-colored\",attrs:{\"small\":\"\"},on:{\"click\":_vm.edit}},[_vm._v(\"fas fa-pen\")])],1),(_vm.statusResourceKey)?_c('div',{class:{\n 'orange-text':\n _vm.item.statusId == _vm.accomodationUnitStatusEnum.NeedsCleaning ||\n _vm.item.statusId == _vm.accomodationUnitStatusEnum.CleaningInProgress,\n 'red-text':\n _vm.item.statusId == _vm.accomodationUnitStatusEnum.NeedsRepair ||\n _vm.item.statusId == _vm.accomodationUnitStatusEnum.RepairInProgress,\n }},[_c('v-icon',{attrs:{\"x-small\":\"\",\"left\":\"\"}},[_vm._v(_vm._s(_vm.statusIcon))]),_vm._v(_vm._s(_vm.$t(_vm.statusResourceKey))+\" \")],1):_vm._e(),(_vm.assignedMaintenanceTeamMemberName)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"AccommodationUnit.AssignedMaintenanceTeamMember\"))+\": \"+_vm._s(_vm.assignedMaintenanceTeamMemberName)+\" \")]):_vm._e(),_c('div',{staticClass:\"pt-3\"}),(_vm.item.checkInTimeFrom)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"ExpectedArrivalTime\"))+\": \"+_vm._s(_vm.item.checkInTimeFrom)+\" \")]):_vm._e(),(_vm.item.checkOutTimeUntil)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"ExpectedDepartureTime\"))+\": \"+_vm._s(_vm.item.checkOutTimeUntil)+\" \")]):_vm._e(),(_vm.item.nextArrivalDate)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Next arrival date\"))+\": \"+_vm._s(_vm.$d(new Date(_vm.item.nextArrivalDate)))+\" \")]):_vm._e(),(_vm.item.numberOfNights != null && _vm.item.numberOfNights != undefined)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Number of nights\"))+\": \"+_vm._s(_vm.item.numberOfNights)+\" \")]):_vm._e(),(_vm.guests)?_c('div',[_vm._v(_vm._s(_vm.$t(\"Guests\"))+\": \"+_vm._s(_vm.guests))]):_vm._e(),(_vm.item.numberOfBathrooms)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"NumberOfBathrooms\"))+\": \"+_vm._s(_vm.item.numberOfBathrooms)+\" \")]):_vm._e(),(_vm.item.beds)?_c('div',[_vm._v(_vm._s(_vm.$t(\"Beds\"))+\": \"+_vm._s(_vm.item.beds))]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { MaintenanceTaskViewModel } from \"./types\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport { MaintenanceTeamMember } from \"../calendar/CalendarTypes\";\nimport { AccomodationUnitStatusEnum } from \"@/shared/models/enums.type\";\n\n@Component\nexport default class MaintenanceGridTile extends Vue {\n @Getter(\"appParams/unitRenderTypeLineOne\") renderTemplateTypeLineOne?: string;\n @Getter(\"appParams/unitRenderTypeLineTwo\") renderTemplateTypeLineTwo?: string;\n\n @Getter(\"codebooks/accomodationUnitStatuses\")\n accomodationUnitStatuses?: AccomodationUnitStatus[];\n @Getter(\"maintenance/maintenanceTeam\") maintenanceTeam?: MaintenanceTeamMember[];\n\n @Prop() item?: MaintenanceTaskViewModel;\n accomodationUnitStatusEnum = AccomodationUnitStatusEnum;\n\n get emphasizedLine() {\n if (\n this.renderTemplateTypeLineOne === \"\" &&\n this.renderTemplateTypeLineTwo === \"\"\n ) {\n return this.item?.propertyName ?? \"\";\n }\n\n return this.$t(this.renderTemplateTypeLineOne ?? \"\", this.renderProps);\n }\n\n get deEmphasizedLine() {\n if (\n this.renderTemplateTypeLineTwo === \"\" &&\n this.renderTemplateTypeLineOne === \"\"\n ) {\n return (\n (this.item?.unitTypeName ?? \"\") +\n (this.item?.unitName ?? \"\" ? \", \" + (this.item?.unitName ?? \"\") : \"\")\n );\n }\n\n return this.$t(this.renderTemplateTypeLineTwo ?? \"\", this.renderProps);\n }\n\n get renderProps() {\n return {\n unitName: this.item?.unitName ?? \"\",\n unitTypeName: this.item?.unitTypeName ?? \"\",\n propertyName: this.item?.propertyName ?? \"\",\n };\n }\n\n get guests() {\n if (!this.item?.numberOfAdults && !this.item?.numberOfChildren) return null;\n\n return `${this.item.numberOfAdults}${\n this.item.numberOfChildren ? \" + \" + this.item.numberOfChildren : \"\"\n }`;\n }\n\n get statusResourceKey() {\n return (\n this.accomodationUnitStatuses?.find((x) => x.id == this.item?.statusId)\n ?.textResourceKey ?? \"\"\n );\n }\n\n get assignedMaintenanceTeamMemberName() {\n return (\n this.maintenanceTeam?.find(\n (x) => x.tenantUserId == this.item?.maintenanceAssignedToTenantUserId\n )?.name ?? \"\"\n );\n }\n\n get statusIcon() {\n switch (this.item?.statusId) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.NeedsRepair:\n return \"fa-tools\";\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return \"fa-sync\";\n case AccomodationUnitStatusEnum.RepairInProgress:\n return \"fa-sync\";\n default:\n return \"fa-map-marker-alt\";\n }\n }\n\n edit() {\n this.$emit(\"edit\", { ...this.item });\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MaintenanceGridTile.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MaintenanceGridTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MaintenanceGridTile.vue?vue&type=template&id=0db05859&scoped=true&\"\nimport script from \"./MaintenanceGridTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./MaintenanceGridTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MaintenanceGridTile.vue?vue&type=style&index=0&id=0db05859&scoped=true&lang=scss&\"\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 \"0db05859\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VCard,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport {\n AccomodationUnitStatusEnum,\n DashboardPeriodEnum,\n} from \"@/shared/models/enums.type\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { DateTime } from \"luxon\";\nimport { MaintenanceTaskViewModel } from \"./types\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport { MaintenanceTeamMember } from \"../calendar/CalendarTypes\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { RolesEnum, userHasAnyRole } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport MaintenanceGridTile from \"./MaintenanceGridTile.vue\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nimport MobileFilterModal from \"@/components/misc/MobileFilterModal.vue\";\nimport GlobalFilterSensitiveMixin from \"@/mixins/GlobalFilterSensitiveMixin\";\nimport NoData from \"@/components/misc/NoData.vue\";\n\n@Component({\n components: {\n MaintenanceGridTile,\n ScrollLoader,\n MobileFilterModal,\n NoData,\n },\n mixins: [GlobalFilterSensitiveMixin],\n})\nexport default class MaintenanceGrid extends Vue {\n @Getter(\"codebooks/accomodationUnitStatuses\")\n accomodationUnitStatuses?: AccomodationUnitStatus[];\n @Action(\"codebooks/refreshAccomodationUnitStatuses\")\n refreshAccomodationUnitStatuses?: () => Promise;\n\n @Getter(\"maintenance/maintenanceTeam\")\n maintenanceTeam?: MaintenanceTeamMember[];\n @Action(\"maintenance/refreshMaintenanceTeam\")\n refreshMaintenanceTeam?: () => Promise;\n\n @Getter(\"calendar/currentDay\") currentDay?: DateTime;\n @Watch(\"currentDay\", { immediate: true })\n currentDayWatch() {\n this.filters.date = this.currentDay?.toISODate() ?? \"\";\n }\n\n get title() {\n switch (this.filters.source) {\n case \"arrivals\":\n return this.$t(\"Dashboard.MaintenanceArrivals\");\n case \"departures\":\n return this.$t(\"Dashboard.MaintenanceDepartures\");\n default:\n return this.$t(\"Dashboard.MaintenanceGeneral\");\n }\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get userIsMaintenanceTeamLeader() {\n return userHasAnyRole([RolesEnum.MaintenanceTeamLeader])(this.claims);\n }\n get maintenanceTeamMembers() {\n if (this.userIsMaintenanceTeamLeader) return this.maintenanceTeam ?? [];\n return (\n this.maintenanceTeam?.filter(\n (x) => x.tenantUserId.toString() == this.claims?.utid\n ) ?? []\n );\n }\n\n scrollEl = null as HTMLElement | null;\n items: MaintenanceTaskViewModel[] = [];\n loading = false;\n isDone = false;\n isInitialLoadDone = false;\n\n editingItem: MaintenanceTaskViewModel | null = null;\n editingModalOpen = false;\n submitting = false;\n\n @Watch(\"editingItem.statusId\")\n editingItemStatusWatch(fresh: number, old: number) {\n if (\n this.editingItem &&\n this.claims?.utid &&\n !this.userIsMaintenanceTeamLeader &&\n (fresh === AccomodationUnitStatusEnum.CleaningInProgress ||\n fresh === AccomodationUnitStatusEnum.RepairInProgress) &&\n old != undefined\n ) {\n this.editingItem.maintenanceAssignedToTenantUserId = Number.parseInt(\n this.claims.utid\n );\n }\n }\n\n closeEditModal() {\n this.editingModalOpen = false;\n this.editingItem = null;\n }\n\n saveChanges() {\n if (!this.editingItem) {\n this.editingModalOpen = false;\n return;\n }\n\n this.submitting = true;\n this.axios\n .put(\"/maintenance/AccomodationUnitStatusUpdate\", {\n id: this.editingItem.accomodationUnitId,\n reservationAccUnitTypeId: this.editingItem.reservationAccUnitTypeId,\n statusId: this.editingItem.statusId,\n maintenanceAssignedToTenantUserId:\n this.editingItem.maintenanceAssignedToTenantUserId,\n calendarUnitRemark: this.editingItem.calendarUnitRemark,\n reservationUnitRemark: this.editingItem.reservationUnitRemark,\n reservationRemark: this.editingItem.reservationRemark,\n })\n .then(() => {\n const editedItem = this.items.find(\n (x) => x.accomodationUnitId == this.editingItem?.accomodationUnitId\n );\n if (editedItem && this.editingItem) {\n editedItem.statusId = this.editingItem.statusId;\n editedItem.maintenanceAssignedToTenantUserId =\n this.editingItem.maintenanceAssignedToTenantUserId;\n editedItem.calendarUnitRemark = this.editingItem.calendarUnitRemark;\n editedItem.reservationUnitRemark =\n this.editingItem.reservationUnitRemark;\n editedItem.reservationRemark = this.editingItem.reservationRemark;\n }\n\n this.closeEditModal();\n })\n .finally(() => (this.submitting = false));\n }\n\n options: DataOptions = {\n page: 0,\n itemsPerPage: 25,\n sortBy: [\"sortOrderHasValue\", \"sortOrder\", \"unitName\"],\n sortDesc: [false, false, false],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n filterModalOpen = false;\n filters = {\n source: \"general\",\n filter: DashboardPeriodEnum.OnDate,\n date: \"\",\n propertyName: \"\",\n statusId: null as null | number,\n };\n @Watch(\"filters\", { deep: true })\n filtersWatch() {\n this.refresh();\n }\n\n updateFilter(filters: any) {\n let filtersNotChanged = false;\n if (\n this.filters.propertyName === filters.nameFilter &&\n this.filters.statusId === filters.statusId\n ) {\n filtersNotChanged = true;\n }\n\n this.filters.propertyName = filters.nameFilter;\n this.filters.statusId = filters.statusId;\n\n this.options.sortBy = (filters.sortBy as string).split(\";\");\n this.options.sortDesc = [filters.sortDesc];\n\n while (this.options.sortDesc.length < this.options.sortBy.length) {\n this.options.sortDesc.push(this.options.sortDesc[0]);\n }\n\n if (filtersNotChanged) {\n this.refresh();\n }\n }\n\n refresh() {\n this.items = [];\n this.isDone = false;\n this.isInitialLoadDone = false;\n this.loadMore();\n }\n\n get sortOptions() {\n const options = [\n {\n text: this.$t(\"Property\"),\n value: \"sortOrderHasValue;sortOrder;unitName\",\n },\n ];\n\n if (this.filters.source === \"arrivals\")\n options.push({\n text: this.$t(\"ExpectedArrivalTime\"),\n value: \"checkInTimeFrom\",\n });\n\n if (this.filters.source === \"departures\")\n options.push({\n text: this.$t(\"ExpectedDepartureTime\"),\n value: \"checkOutTimeUntil\",\n });\n\n return options;\n }\n\n @Watch(\"sensitiveKey\")\n sensitiveKeyChanged(fresh: string, old: string) {\n if (fresh !== old) {\n this.refresh();\n }\n }\n\n get sortPrefil() {\n return {\n sortBy: this.options.sortBy.join(\";\"),\n desc: this.options.sortDesc[0],\n };\n }\n\n created() {\n if (\n (this.accomodationUnitStatuses?.length ?? 0) === 0 &&\n this.refreshAccomodationUnitStatuses\n ) {\n this.refreshAccomodationUnitStatuses();\n }\n\n if (\n (this.maintenanceTeam?.length ?? 0) === 0 &&\n this.refreshMaintenanceTeam\n ) {\n this.refreshMaintenanceTeam();\n }\n }\n\n mounted() {\n this.scrollEl = (this.$refs[\"scrollEl\"] as HTMLElement) ?? null;\n\n const queryParams = this.$router.currentRoute.query ?? {\n source: \"general\",\n };\n\n this.filters.source =\n typeof queryParams.source === \"string\" ? queryParams.source : \"general\";\n\n this.loadMore();\n }\n\n async loadMore() {\n if (!this.loading && !this.isDone) {\n this.loading = true;\n const res = await this.load();\n this.items.splice(this.items.length, 0, ...(res.result || []));\n\n this.isInitialLoadDone = true;\n this.loading = false;\n }\n }\n\n async load() {\n const res = await this.axios\n .get>(\n \"/maintenance/GetMaintenanceTasks\",\n {\n params: {\n ...this.queryParams,\n },\n }\n )\n .then((res) => {\n return res.data;\n });\n\n if (res.result.length < this.options.itemsPerPage) {\n this.isDone = true;\n }\n\n return res;\n }\n\n get queryParams() {\n return {\n $skip: this.items.length,\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: false,\n ...this.filters,\n };\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MaintenanceGrid.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MaintenanceGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MaintenanceGrid.vue?vue&type=template&id=e5d5799a&scoped=true&\"\nimport script from \"./MaintenanceGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./MaintenanceGrid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MaintenanceGrid.vue?vue&type=style&index=0&id=e5d5799a&scoped=true&lang=scss&\"\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 \"e5d5799a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VFadeTransition,VIcon,VOverlay,VProgressCircular,VRow,VSelect,VSpacer,VTextarea})\n","\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport MaintenanceGrid from \"@/components/maintenance/MaintenanceGrid.vue\";\n\n@Component({\n components: {\n MaintenanceGrid,\n },\n})\nexport default class Maintenance extends Vue {}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maintenance.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maintenance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Maintenance.vue?vue&type=template&id=00220d24&\"\nimport script from \"./Maintenance.vue?vue&type=script&lang=ts&\"\nexport * from \"./Maintenance.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","\nimport Vue from \"vue\";\nimport { Route, NavigationGuardNext } from \"vue-router\";\nimport { policyChecker } from \"@/shared/roles\";\nimport store from \"@/store\";\n\nexport function policyGuard(to: Route, next: NavigationGuardNext) {\n if (to.matched.some((x) => x.meta.policy)) {\n const poly = to.matched.find((x) => x.meta.policy)?.meta.policy;\n if (policyChecker(poly)(store.getters[\"auth/claims\"])) {\n next();\n } else {\n next({ name: \"Dashboard\" });\n }\n } else {\n next();\n }\n}","/**\n * Breakpoint configuration to be in line with element-ui's standards\n * @type {{LABELS: string[], VALUES: number[]}}\n */\n const BREAKPOINTS = {\n LABELS: ['xs', 'md'],\n VALUES: [0, 961, Infinity]\n};\n\n\n/**\n * @typedef ViewFactory\n * @type function\n * A function which returns a promise which resolves to a view. Used to dynamically fetch a view file on the fly during\n * run time on a need basis\n */\n\n\n/**\n * A helper to get a responsive route factory which renders different views based on the current view point\n * @param {{xs:[ViewFactory],sm:[ViewFactory],md:[ViewFactory],lg:[ViewFactory]}} map - A map of breakpoint key to a ViewFactory\n * @returns {ViewFactory} - A view factory which invokes and returns an item supplied in the map based on the current viewport size\n */\nexport default function responsiveRoute(map: any) {\n return function getResponsiveView() {\n const screenWidth = window.innerWidth;\n\n // Find the matching index for the current screen width\n const matchIndex = BREAKPOINTS.VALUES.findIndex((item, idx) => {\n if (idx === 0) {\n return false;\n }\n return screenWidth >= BREAKPOINTS.VALUES[idx - 1] && screenWidth < BREAKPOINTS.VALUES[idx];\n }) - 1;\n\n\n if (map[BREAKPOINTS.LABELS[matchIndex]]) {\n // Perfect match, use it\n return map[BREAKPOINTS.LABELS[matchIndex]]();\n } else {\n // Go down the responsive break points list until a match is found\n let counter = matchIndex;\n while (counter-- > 0) {\n if (map[BREAKPOINTS.LABELS[counter]]) {\n return map[BREAKPOINTS.LABELS[counter]]();\n }\n }\n return Promise.reject({\n code: 500,\n info: 'No component matched the breakpoint - probably a configuration error'\n });\n }\n };\n}","import Vue from \"vue\";\nimport VueRouter, { RouteConfig } from \"vue-router\";\nimport CalendarTimeTrackNav from \"@/components/calendar/TimeTrackNav.vue\";\nimport CalendarSettings from \"@/components/calendar/Settings.vue\";\nimport ContingentTimeTrackNav from \"@/components/contingent/TimeTrackNav.vue\";\nimport ContingentSettings from \"@/components/contingent/Settings.vue\";\nimport Contingent from \"../views/Contingent.vue\";\nimport PropertiesAndUnits from \"../views/PropertiesAndUnits.vue\";\nimport Property from \"../views/Property.vue\";\nimport AccomodationUnitType from \"../views/AccomodationUnitType.vue\";\nimport RatePlans from \"../views/RatePlans.vue\";\nimport Reservations from \"../views/Reservations.vue\";\nimport ReservationsMobile from \"../views/ReservationsMobile.vue\";\nimport Finances from \"../views/Finances.vue\";\nimport Customers from \"../views/Customers.vue\";\nimport EVisitors from \"../views/EVisitors.vue\";\nimport AuthLayout from \"@/views/auth/_AuthLayout.vue\";\nimport Signin from \"@/views/auth/Signin.vue\";\nimport ResetPassword from \"@/views/auth/ResetPassword.vue\";\nimport ForgottenPassword from \"@/views/auth/ForgottenPassword.vue\";\nimport Messages from \"@/views/Messages.vue\";\nimport NotificationTemplates from \"@/views/Settings/NotificationTemplates.vue\";\nimport NotificationTemplateForm from \"@/components/messages/templates/NotificationTemplateForm.vue\";\nimport DocumentSettings from \"@/views/Settings/DocumentSettings.vue\";\nimport GuestReviews from \"../views/GuestReviews.vue\"\nimport Maintenance from \"@/views/Maintenance.vue\";\nimport store from \"@/store\";\n\nimport { policyGuard } from \"./policyGuard\";\n\nimport responsiveRoute from \"./layoutSwitcher\";\n\nVue.use(VueRouter);\n\nconst routes: Array = [\n {\n path: \"/signin\",\n component: AuthLayout, \n children: [{\n path: \"/\",\n name: \"Signin\",\n component: Signin,\n meta: {\n title: 'SigninTo'\n }\n }]\n },\n {\n path: \"/reset-password\",\n component: AuthLayout, \n children: [{\n path: \"/\",\n name: \"Reset password\",\n component: ResetPassword\n }]\n },\n {\n path: \"/forgotten-password\",\n component: AuthLayout, \n children: [{\n path: \"/\",\n name: \"Forgotten password\",\n component: ForgottenPassword\n }]\n },\n {\n path: \"/\",\n name: \"DefaultLayout\",\n meta: {\n requiresSignin: true,\n },\n component: responsiveRoute({\n // route level code-splitting\n // this generates a separate chunk (\"webpackChunkName\".[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n xs: () => import(/* webpackChunkName: \"_MobileLayout\" */ '../views/_MobileLayout.vue'),\n // sm key is missing, it falls back to xs\n md: () => import(/* webpackChunkName: \"_DefaultLayout\" */ '../views/_DefaultLayout.vue'),\n // lg, xl keys are missing falls back to md,\n }),\n children: [\n {\n path: \"/dashboard\",\n name: \"Dashboard\",\n component: responsiveRoute({\n xs: () => import(/* webpackChunkName: \"HomeMobile\" */ '../views/HomeMobile.vue'),\n md: () => import(/* webpackChunkName: \"Home\" */ '../views/Home.vue'),\n }),\n meta: {\n crumbs: [\n { name: \"Dashboard\"}\n ]\n }\n },\n {\n path: \"/calendar\",\n name: \"Calendar\",\n component: responsiveRoute({\n xs: () => import(/* webpackChunkName: \"CalendarMobile\" */ '../views/CalendarMobile.vue'),\n md: () => import(/* webpackChunkName: \"Calendar\" */ '../views/Calendar.vue'),\n }),\n meta: {\n policy: \"READ_CALENDAR\",\n crumbs: [\n { name: \"Calendar\"}\n ]\n },\n components: {\n default: responsiveRoute({\n xs: () => import(/* webpackChunkName: \"CalendarMobile\" */ '../views/CalendarMobile.vue'),\n md: () => import(/* webpackChunkName: \"Calendar\" */ '../views/Calendar.vue'),\n }),\n header: CalendarTimeTrackNav,\n menu: CalendarSettings\n }\n },\n {\n path: \"/contingent\",\n name: \"Contingent\",\n component: Contingent,\n meta: {\n policy: \"READ_CALENDAR\",\n crumbs: [\n { name: \"Contingent\"}\n ]\n },\n components: {\n default: Contingent,\n header: ContingentTimeTrackNav,\n menu: ContingentSettings\n }\n },\n {\n path: \"/reservations\",\n name: \"Reservations\",\n component: responsiveRoute({\n xs: () => import(/* webpackChunkName: \"ReservationsMobile\" */ '../views/ReservationsMobile.vue'),\n md: () => import(/* webpackChunkName: \"Reservations\" */ '../views/Reservations.vue'),\n }),\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"/reservations\",\n datePicker: false,\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Customers.Reservations\",\n component: Reservations,\n meta: {\n policy: \"READ_RESERVATIONS\",\n crumbs: [\n { name: \"Reservations\" }\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Reservations.New\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/NewReservations\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Reservations.Modified\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"/dashboard/ModifiedReservations\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Reservations.Canceled\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"/dashboard/CanceledReservations\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Arrivals.Pending\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/Arrivals\",\n completedFilter: \"0\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Arrivals.Done\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/Arrivals\",\n completedFilter: \"1\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"AllArrivals\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/Arrivals\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"AllDepartures\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/Departures\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Departures.Pending\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/Departures\",\n completedFilter: \"0\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Departures.Done\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/Departures\",\n completedFilter: \"1\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.Occupancy\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/occupancy\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/reservations\",\n name: \"Dashboard.CurrentStays\",\n component: ReservationsMobile,\n meta: {\n policy: \"READ_RESERVATIONS\",\n endpoint: \"dashboard/CurrentStays\",\n crumbs: [\n { name: \"Reservations\"}\n ]\n },\n },\n {\n path: \"/financial-documents\",\n name: \"Financial documents\",\n component: Finances,\n meta: {\n policy: \"READ_FINANCIAL_DOCUMENTS\",\n crumbs: [\n { name: \"Financial documents\"}\n ]\n },\n },\n {\n path: \"/customers\",\n name: \"Customers\",\n component: Customers,\n meta: {\n policy: \"READ_CUSTOMERS_GRID\",\n crumbs: [\n { name: \"Customers\"}\n ]\n },\n },\n {\n path: \"/evisitors\",\n name: \"EVisitors\",\n component: EVisitors,\n meta: {\n policy: \"MODIFY_RESERVATIONS\",\n crumbs: [\n { name: \"EVisitors\"}\n ]\n },\n },\n {\n path: \"/guest-reviews\",\n name: \"GuestReviews\",\n component: GuestReviews,\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Guest reviews\"}\n ]\n }\n },\n {\n path: \"/properties\",\n name: \"Properties and units\",\n component: PropertiesAndUnits,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Properties and units\"}\n ]\n }\n },\n {\n path: \"/properties/new\",\n name: \"New property\",\n component: Property,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Properties and units\", link: \"/properties\" },\n { name: \"New property\"}\n ]\n },\n },\n {\n path: \"/properties/:id(\\\\d+)\",\n name: \"Edit property\",\n component: Property,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Properties and units\", link: \"/properties\" },\n { name: \"Edit property\"}\n ]\n },\n },\n \n {\n path: \"/properties/:propertyId(\\\\d+)/unittypes/new\",\n name: \"New unit type\",\n component: AccomodationUnitType,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Properties and units\", link: \"/properties\" },\n { name: \"Edit property\", link: \"/properties/:propertyId\" },\n { name: \"New unit type\"}\n ]\n }\n },\n {\n path: \"/properties/:propertyId(\\\\d+)/unittypes/:unitTypeId(\\\\d+)\",\n name: \"Edit unit type\",\n component: AccomodationUnitType,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Properties and units\", link: \"/properties\" },\n { name: \"Edit property\", link: \"/properties/:propertyId\" },\n { name: \"Edit unit type\"}\n ]\n }\n },\n\n {\n path: \"/properties/*\",\n redirect: \"/properties\"\n },\n {\n path: \"/rate-plans\",\n name: \"Rate plans\",\n component: RatePlans,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Rate plans\"}\n ]\n }\n },\n {\n path: \"/reports\",\n name: \"Reports\",\n component: responsiveRoute({\n xs: () => import(/* webpackChunkName: \"ReportsMobile\" */ '../views/ReportsMobile.vue'),\n md: () => import(/* webpackChunkName: \"Reports\" */ '../views/Reports.vue'),\n }),\n meta: {\n policy: \"READ_REPORTS\",\n datePicker: false,\n crumbs: [\n { name: \"Reports\"}\n ]\n }\n },\n {\n path: \"/settings\",\n name: \"Settings\",\n component: () => import(\"../views/Settings/Settings.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\"}\n ]\n }\n },\n {\n path: \"/settings/users\",\n name: \"Users\",\n component: () => import(\"../views/Settings/Users.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"Users\"}\n ]\n }\n },\n {\n path: \"/settings/add-on-services-and-fees\",\n name: \"ServicesAndFees\",\n component: () => import(\"../views/Settings/AddOnServicesAndFees.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"ServicesAndFees\"}\n ]\n }\n },\n {\n path: \"/settings/agency-fees\",\n name: \"AgencyFees\",\n component: () => import(\"../views/Settings/AgencyFees.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"AgencyFees\"}\n ]\n }\n },\n {\n path: \"/settings/financial\",\n name: \"FinancialSettings\",\n component: () => import(\"../views/Settings/Financial.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"FinancialSettings\"}\n ]\n }\n },\n {\n path: \"/settings/sales-channels\",\n name: \"SalesChannels\",\n component: () => import(\"../views/Settings/SalesChannels.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"SalesChannels\"}\n ]\n }\n },\n {\n path: \"/settings/service-types\",\n name: \"ServiceTypes\",\n component: () => import(\"../views/Settings/ServiceTypes.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"ServiceTypes\"}\n ]\n }\n },\n {\n path: \"/settings/tax-rates\",\n name: \"CityTaxRate\",\n component: () => import(\"../views/Settings/CityTaxRates.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"CityTaxRate\"}\n ]\n }\n },\n {\n path: \"/settings/demand-changing-events\",\n name: \"DemandChangingEvents\",\n component: () => import(\"../views/Settings/DemandChangingEvents.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"DemandChangingEvents\"}\n ]\n }\n },\n {\n path: \"/messages\",\n name: \"Messages\",\n component: Messages,\n meta: {\n policy: \"REQUIRE_ACCOMODATION_UNIT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Messages\"}\n ]\n }\n },\n {\n path: \"/settings/notification-templates\",\n name: \"NotificationTemplates\",\n component: NotificationTemplates,\n meta:{\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"NotificationTemplates\"}\n ]\n }\n },\n {\n path: \"/settings/notification-templates/new\",\n name: \"NotificationTemplateNew\",\n component: NotificationTemplateForm,\n meta:{\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"NotificationTemplates\", link: \"/settings/notification-templates\"},\n { name: \"NotificationTemplateNew\" }\n ]\n }\n },\n {\n path: \"/settings/notification-templates/:id(\\\\d+)\",\n name: \"NotificationTemplateEdit\",\n component: NotificationTemplateForm,\n meta:{\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"NotificationTemplates\", link: \"/settings/notification-templates\"},\n { name: \"NotificationTemplateEdit\" }\n ]\n }\n },\n {\n path: \"/settings/document-settings/\",\n name: \"DocumentSettings\",\n component: DocumentSettings,\n meta:{\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"DocumentSettings\" }\n ]\n }\n },\n {\n path: \"/maintenance\",\n name: \"Maintenance\",\n component: Maintenance,\n meta:{\n crumbs: [\n { name: \"Maintenance\"}\n ]\n }\n },\n {\n path: \"/settings/api-credentials\",\n name: \"ApiCredentials\",\n component: () => import(\"../views/Settings/ApiCredentials.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"ApiCredentials\"}\n ]\n }\n },\n {\n path: \"/settings/los-category-templates\",\n name: \"LOSCategoryTemplates\",\n component: () => import(\"../views/Settings/LOSCategoryTemplates.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"LOSCategoryTemplate\"}\n ]\n }\n },\n {\n path: \"/settings/ob-category-templates\",\n name: \"OBCategoryTemplates\",\n component: () => import(\"../views/Settings/OBCategoryTemplates.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"OBCategoryTemplate\"}\n ]\n }\n },\n {\n path: \"/settings/business-units\",\n name: \"BusinessUnits\",\n component: () => import(\"../views/Settings/BusinessUnits.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"BusinessUnits\"}\n ]\n }\n },\n {\n path: \"/settings/deposit-withdrawal-codebook\",\n name: \"TransactionDescriptionCodebook\",\n component: () => import(\"../views/Settings/DepositWithdrawalCodebook.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"TransactionDescriptionCodebook\"}\n ]\n }\n },\n {\n path: \"/settings/cash-registers\",\n name: \"CashRegisters\",\n component: () => import(\"../views/Settings/CashRegisters.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"CashRegisters\"}\n ]\n }\n },\n {\n path: \"/settings/application-appearance\",\n name: \"DistributionChannelAppearance\",\n component: () => import(\"../views/Settings/ApplicationAppearance.vue\"),\n meta: {\n policy: \"REQUIRE_TENANT_ADMIN_OR_HIGHER\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"DistributionChannelAppearance\"}\n ]\n }\n },\n {\n path: \"/settings/app-params-sys-admin\",\n name: \"AppParamsSettings\",\n component: () => import(\"../views/Settings/AppParamsSettings.vue\"),\n meta: {\n policy: \"REQUIRE_SYS_ADMIN\",\n crumbs: [\n { name: \"Settings\", link: \"/settings\" },\n { name: \"AppParamsSettings\"}\n ]\n }\n },\n {\n path: \"**\",\n redirect: \"/dashboard\",\n },\n ],\n },\n];\n\nconst router = new VueRouter({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes,\n}); \n\n\n// authguard\nrouter.beforeEach((to, from, next) => {\n if (to.matched.some((x) => x.meta.requiresSignin)) {\n // this timeout means app has 5s to aquire a token\n const timeout = new Promise((x) => setTimeout(() => x(), 5000));\n\n Promise.race([timeout, store.getters[\"auth/ready\"]]).then(() => {\n if (!store.getters[\"auth/isSignedIn\"]) {\n next({ name: \"Signin\" });\n } else {\n policyGuard(to, next);\n }\n });\n } else {\n next();\n }\n});\n\nexport default router;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PoisTiles.vue?vue&type=style&index=0&id=d57b1ef0&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchResultsMobile.vue?vue&type=style&index=0&id=524ede52&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Customers.vue?vue&type=style&index=0&id=16b4a56d&scoped=true&lang=scss&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitGuests.vue?vue&type=style&index=0&id=9b6def06&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{staticStyle:{\"overflow-y\":\"hidden\"},attrs:{\"scrollable\":\"\",\"max-width\":\"480\"},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"filter-title\"},[_c('div',[_vm._v(\" \"+_vm._s(\"Filter\")+\" \")]),_c('v-spacer'),_c('div',[_c('v-icon',{attrs:{\"size\":\"24\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"fas fa-times\")])],1)],1),_c('v-card-text',[(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('DateField',{attrs:{\"label\":_vm.$t('Period') + '*',\"range\":\"\",\"dense\":\"\"},model:{value:(_vm.dateRangeDates),callback:function ($$v) {_vm.dateRangeDates=$$v},expression:\"dateRangeDates\"}}):_vm._e(),(\n _vm.filterType !== 'reservation' &&\n _vm.filterType !== 'accommodationUnit' &&\n _vm.filterType !== 'guestHistory' &&\n _vm.filterType !== 'availability'\n )?_c('v-text-field',{attrs:{\"label\":_vm.filterType === 'customer' ? _vm.$t('VCustomer.name') : _vm.$t('Property'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.nameFilter),callback:function ($$v) {_vm.nameFilter=$$v},expression:\"nameFilter\"}}):_vm._e(),(_vm.filterType === 'availability')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Property'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.availabilitySearchModel.propertyName),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"propertyName\", $$v)},expression:\"availabilitySearchModel.propertyName\"}}):_vm._e(),(_vm.filterType === 'availability')?_c('v-autocomplete',{staticClass:\"mb-6\",attrs:{\"items\":_vm.cities,\"loading\":_vm.loadingCities,\"attach\":\"\",\"search-input\":_vm.citiesSearchInput,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":_vm.$t('City'),\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-no-data\":!_vm.citiesSearchInput,\"clearable\":\"\"},on:{\"update:searchInput\":function($event){_vm.citiesSearchInput=$event},\"update:search-input\":function($event){_vm.citiesSearchInput=$event}},model:{value:(_vm.availabilitySearchModel.cityId),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"cityId\", $$v)},expression:\"availabilitySearchModel.cityId\"}}):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',{staticClass:\"mb-2 ml-1\",attrs:{\"dense\":\"\"}},[_c('div',{staticClass:\"numeric-picker\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfUnits\"))+\" \")]),_c('NumericPicker',{attrs:{\"rules\":(_vm.rules.NoNegativeNumbers || []).concat( (_vm.rules.WholeNumbersOnly || []) ),\"isMobile\":true},model:{value:(_vm.availabilitySearchModel.numberOfUnits),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"numberOfUnits\", $$v)},expression:\"availabilitySearchModel.numberOfUnits\"}})],1)]):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',{staticClass:\"mb-2 ml-1\",attrs:{\"dense\":\"\"}},[_c('div',{staticClass:\"numeric-picker mr-10\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfAdults\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":(_vm.rules.NoNegativeNumbers || []).concat( (_vm.rules.WholeNumbersOnly || []) ),\"isMobile\":true},model:{value:(_vm.availabilitySearchModel.numberOfAdults),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"numberOfAdults\", $$v)},expression:\"availabilitySearchModel.numberOfAdults\"}})],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Reservation.NumberOfChildren\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":(_vm.rules.NoNegativeNumbers || []).concat( (_vm.rules.WholeNumbersOnly || []) ),\"isMobile\":true},model:{value:(_vm.availabilitySearchModel.numberOfChildren),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"numberOfChildren\", $$v)},expression:\"availabilitySearchModel.numberOfChildren\"}})],1)]):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',{staticClass:\"mb-2 ml-1\",attrs:{\"dense\":\"\"}},[_c('div',{staticClass:\"numeric-picker mr-10\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilitySearch.NumberOfBedrooms\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":(_vm.rules.NoNegativeNumbers || []).concat( (_vm.rules.WholeNumbersOnly || []) ),\"isMobile\":true},model:{value:(_vm.availabilitySearchModel.numberOfBedrooms),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"numberOfBedrooms\", $$v)},expression:\"availabilitySearchModel.numberOfBedrooms\"}})],1),_c('div',{staticClass:\"numeric-picker\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"NumberOfBathrooms\"))+\" \"),_c('NumericPicker',{attrs:{\"rules\":(_vm.rules.NoNegativeNumbers || []).concat( (_vm.rules.WholeNumbersOnly || []) ),\"isMobile\":true},model:{value:(_vm.availabilitySearchModel.numberOfBathrooms),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"numberOfBathrooms\", $$v)},expression:\"availabilitySearchModel.numberOfBathrooms\"}})],1)]):_vm._e(),(_vm.filterType === 'availability')?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInput',{attrs:{\"label\":_vm.$t('AvailabilitySearch.FromPrice'),\"outlined\":true,\"decimalPlaces\":2,\"dense\":true,\"hideDetails\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})]},proxy:true}],null,false,2629077399),model:{value:(_vm.availabilitySearchModel.fromPrice),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"fromPrice\", $$v)},expression:\"availabilitySearchModel.fromPrice\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInput',{attrs:{\"label\":_vm.$t('AvailabilitySearch.ToPrice'),\"outlined\":true,\"decimalPlaces\":2,\"dense\":true,\"hideDetails\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{attrs:{\"currencyId\":_vm.currencyId}})]},proxy:true}],null,false,2629077399),model:{value:(_vm.availabilitySearchModel.toPrice),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"toPrice\", $$v)},expression:\"availabilitySearchModel.toPrice\"}})],1)],1):_vm._e(),(_vm.filterType === 'availability')?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.Type'),\"items\":_vm.sortedPropertyTypes,\"item-value\":\"value\",\"item-text\":\"name\",\"outlined\":true,\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.availabilitySearchModel.propertyTypes),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"propertyTypes\", $$v)},expression:\"availabilitySearchModel.propertyTypes\"}})],1)],1):_vm._e(),(_vm.filterType === 'availability')?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property.Category'),\"items\":_vm.categories,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"outlined\":true,\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.availabilitySearchModel.categories),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"categories\", $$v)},expression:\"availabilitySearchModel.categories\"}})],1)],1):_vm._e(),(_vm.filterType === 'availability')?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInput',{attrs:{\"outlined\":true,\"label\":_vm.$t('AvailabilitySearch.ToCityCenter'),\"decimalPlaces\":0,\"dense\":true,\"hideDetails\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',[_vm._v(\"m\")])]},proxy:true}],null,false,1549734309),model:{value:(_vm.availabilitySearchModel.distanceToCityCenter),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"distanceToCityCenter\", $$v)},expression:\"availabilitySearchModel.distanceToCityCenter\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInput',{attrs:{\"outlined\":true,\"label\":_vm.$t('AvailabilitySearch.ToBeach'),\"decimalPlaces\":0,\"dense\":true,\"hideDetails\":true},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('span',[_vm._v(\"m\")])]},proxy:true}],null,false,1549734309),model:{value:(_vm.availabilitySearchModel.distanceToBeach),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"distanceToBeach\", $$v)},expression:\"availabilitySearchModel.distanceToBeach\"}})],1)],1):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',[_c('v-col',{staticClass:\"ml-1\",attrs:{\"sm\":\"8\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Include only whole properties\")))])]),_c('v-col',{staticClass:\"switch-display-right\",attrs:{\"sm\":\"4\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.availabilitySearchModel.includeOnlyWholeProperties),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"includeOnlyWholeProperties\", $$v)},expression:\"availabilitySearchModel.includeOnlyWholeProperties\"}})],1)],1):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',[_c('v-col',{staticClass:\"ml-1\",attrs:{\"sm\":\"8\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Ignore restrictions\")))])]),_c('v-col',{staticClass:\"switch-display-right\",attrs:{\"sm\":\"4\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.availabilitySearchModel.ignoreRestrictions),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"ignoreRestrictions\", $$v)},expression:\"availabilitySearchModel.ignoreRestrictions\"}})],1)],1):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',[_c('v-col',{staticClass:\"ml-1\",attrs:{\"sm\":\"8\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Ignore unit type count\")))])]),_c('v-col',{staticClass:\"switch-display-right\",attrs:{\"sm\":\"4\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.availabilitySearchModel.ignoreUnitTypeCount),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"ignoreUnitTypeCount\", $$v)},expression:\"availabilitySearchModel.ignoreUnitTypeCount\"}})],1)],1):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',[_c('v-col',{staticClass:\"ml-1\",attrs:{\"sm\":\"8\"}},[_c('label',[_vm._v(_vm._s(_vm.$t(\"Include special offers\")))])]),_c('v-col',{staticClass:\"switch-display-right\",attrs:{\"sm\":\"4\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.availabilitySearchModel.includeSpecialOffers),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"includeSpecialOffers\", $$v)},expression:\"availabilitySearchModel.includeSpecialOffers\"}})],1)],1):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-divider'):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-subheader',{staticClass:\"amenities-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"AvailabilitySearch.AdditionalContent\"))+\": \")]):_vm._e(),(_vm.isGlobalSearch && _vm.filterType === 'availability')?_c('v-row',[_c('v-col',{staticClass:\"ml-1\",attrs:{\"sm\":\"8\"}},[_c('label',[_c('v-icon',{staticClass:\"mr-4\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-paw\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"Pets allowed\")))],1)]),_c('v-col',{staticClass:\"switch-display-right\",attrs:{\"sm\":\"4\"}},[_c('v-switch',{attrs:{\"true-value\":true,\"false-value\":null,\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.availabilitySearchModel.petsAllowed),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"petsAllowed\", $$v)},expression:\"availabilitySearchModel.petsAllowed\"}})],1)],1):_vm._e(),(_vm.filterType === 'availability')?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"menu-props\":{\n 'min-width': 300,\n 'max-width': 300,\n 'content-class': 'selectAmenities'\n },\"label\":_vm.$t('Property/unit amenities'),\"items\":_vm.uniqueAmenities,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.id; },\"outlined\":true,\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.availabilitySearchModel.amenities),callback:function ($$v) {_vm.$set(_vm.availabilitySearchModel, \"amenities\", $$v)},expression:\"availabilitySearchModel.amenities\"}})],1)],1):_vm._e(),(_vm.filterType === 'property')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Address'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressFilter),callback:function ($$v) {_vm.addressFilter=$$v},expression:\"addressFilter\"}}):_vm._e(),(_vm.filterType === 'property')?_c('v-text-field',{attrs:{\"label\":_vm.$t('City'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.postalCodeFilter),callback:function ($$v) {_vm.postalCodeFilter=$$v},expression:\"postalCodeFilter\"}}):_vm._e(),(_vm.filterType === 'property')?_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('Property.Type'),\"items\":_vm.propertyTypes,\"outlined\":\"\",\"dense\":\"\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":function (x) { return x.textResourceKey; },\"multiple\":\"\"},model:{value:(_vm.propertyTypeFilter),callback:function ($$v) {_vm.propertyTypeFilter=$$v},expression:\"propertyTypeFilter\"}}):_vm._e(),(_vm.filterType === 'property')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Owner'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.ownerFilter),callback:function ($$v) {_vm.ownerFilter=$$v},expression:\"ownerFilter\"}}):_vm._e(),(_vm.filterType === 'customer' && _vm.showEmail)?_c('v-text-field',{attrs:{\"label\":_vm.$t('VCustomer.eMail'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.eMailFilter),callback:function ($$v) {_vm.eMailFilter=$$v},expression:\"eMailFilter\"}}):_vm._e(),(_vm.filterType === 'customer' && _vm.isAllowedToSeeTelephoneNumber)?_c('v-text-field',{attrs:{\"label\":_vm.$t('VCustomer.telephoneNumber'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.telephoneNumberFilter),callback:function ($$v) {_vm.telephoneNumberFilter=$$v},expression:\"telephoneNumberFilter\"}}):_vm._e(),(_vm.filterType === 'reservation' || _vm.filterType === 'guestHistory')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Reservation Id'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.reservationId),callback:function ($$v) {_vm.reservationId=$$v},expression:\"reservationId\"}}):_vm._e(),(\n _vm.filterType === 'reservation' ||\n _vm.filterType === 'accommodationUnit' ||\n _vm.filterType === 'guestHistory'\n )?_c('v-text-field',{attrs:{\"label\":_vm.$t('Accomodation unit'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.accomodationUnitName),callback:function ($$v) {_vm.accomodationUnitName=$$v},expression:\"accomodationUnitName\"}}):_vm._e(),(_vm.filterType === 'accommodationUnit')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Accomodation unit type'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.accomodationUnitTypeName),callback:function ($$v) {_vm.accomodationUnitTypeName=$$v},expression:\"accomodationUnitTypeName\"}}):_vm._e(),(_vm.filterType === 'reservation')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Name and surname'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.reservationHolderName),callback:function ($$v) {_vm.reservationHolderName=$$v},expression:\"reservationHolderName\"}}):_vm._e(),(_vm.filterType === 'reservation' || _vm.filterType === 'guestHistory')?_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('Period'),\"clearable\":true,\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.arrivalOrDepartureDate),callback:function ($$v) {_vm.arrivalOrDepartureDate=$$v},expression:\"arrivalOrDepartureDate\"}}):_vm._e(),(_vm.filterType === 'reservation')?_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('Arrival date'),\"clearable\":true,\"dense\":\"\",\"outlined\":\"\",\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.arrivalDatePeriod),callback:function ($$v) {_vm.arrivalDatePeriod=$$v},expression:\"arrivalDatePeriod\"}}):_vm._e(),(_vm.filterType === 'reservation')?_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('Departure date'),\"clearable\":true,\"dense\":\"\",\"outlined\":\"\",\"range\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.departureDatePeriod),callback:function ($$v) {_vm.departureDatePeriod=$$v},expression:\"departureDatePeriod\"}}):_vm._e(),(_vm.filterType === 'reservation')?_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('Booking date'),\"clearable\":true,\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.bookingDate),callback:function ($$v) {_vm.bookingDate=$$v},expression:\"bookingDate\"}}):_vm._e(),(_vm.filterType === 'reservation')?_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t('Option expiration'),\"clearable\":true,\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.optionExpirationDate),callback:function ($$v) {_vm.optionExpirationDate=$$v},expression:\"optionExpirationDate\"}}):_vm._e(),(_vm.filterType === 'reservation')?_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.statuses,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.id; },\"label\":_vm.$t('Reservation status'),\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.statusId),callback:function ($$v) {_vm.statusId=$$v},expression:\"statusId\"}}):_vm._e(),(_vm.filterType === 'guestHistory')?_c('v-text-field',{attrs:{\"label\":_vm.$t('Service type'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.serviceTypeName),callback:function ($$v) {_vm.serviceTypeName=$$v},expression:\"serviceTypeName\"}}):_vm._e(),(_vm.filterType === 'maintenance')?_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.accomodationUnitStatuses,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"label\":_vm.$t('AccommodationUnit.Status'),\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\",\"dense\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.statusId),callback:function ($$v) {_vm.statusId=$$v},expression:\"statusId\"}}):_vm._e()],1),(_vm.filterType === 'maintenance')?_c('v-card-title',{staticClass:\"filter-title\"},[_vm._v(_vm._s(_vm.$t(\"Sort\")))]):_vm._e(),(_vm.filterType === 'maintenance')?_c('v-card-text',{staticClass:\"d-flex align-baseline\"},[_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.sortOptions,\"item-value\":\"value\",\"item-text\":\"text\",\"label\":_vm.$t('SortBy'),\"calculate-widths\":\"\",\"dense\":\"\",\"outlined\":\"\",\"disabled\":!_vm.sortOptions || _vm.sortOptions.length <= 1},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.sortBy),callback:function ($$v) {_vm.sortBy=$$v},expression:\"sortBy\"}}),_c('v-icon',{attrs:{\"right\":\"\",\"size\":\"20\"},on:{\"click\":function($event){_vm.sortDesc = !_vm.sortDesc}}},[_vm._v(_vm._s(_vm.sortDesc ? \"fas fa-arrow-down\" : \"fas fa-arrow-up\"))])],1):_vm._e(),_c('v-card-actions',[_c('v-btn',{staticClass:\"button\",attrs:{\"disabled\":_vm.submitDisabled,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.apply()}}},[_vm._v(_vm._s(_vm.$t(\"Search\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Getter, Action } from \"vuex-class\";\nimport { City } from \"@/shared/models/city\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { reservationStatuses } from \"@/shared/models/vReservation\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport * as _ from \"lodash\";\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { AccomodationUnitStatus } from \"@/shared/models/accomodationUnitStatus\";\nimport { AvailabilitySearchModel } from \"@/shared/models/availability\";\nimport NumericPicker from \"./NumericPicker.vue\";\nimport { PropertyType } from \"@/shared/models/propertyType\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport NumericInput from \"@/components/misc/NumericInput.vue\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { AmenityView } from \"@/shared/models/amenities\";\nimport { Category } from \"@/shared/models/category\";\n\n@Component({\n components: {\n DateField,\n NumericPicker,\n NumericInput,\n CurrencyDisplay,\n },\n})\nexport default class MobileFilterModal extends Vue {\n @PropSync(\"open\") internalOpen?: boolean;\n @PropSync(\"dialogOpen\") globalFilterOpen?: boolean;\n @Prop() filterType?: string;\n @Prop() filterPrefill?: any;\n @Prop() sortOptions?: {\n text: string;\n value: string;\n }[];\n @Prop() sortPrefil?: {\n sortBy: \"\";\n desc: boolean;\n };\n @Prop({ default: true }) isGlobalSearch?: boolean;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n \n @Action(\"codebooks/refreshCategories\") refreshCategories?: () => Promise;\n @Getter(\"codebooks/categories\") categories?: Category[];\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n \n @Action(\"codebooks/refreshAmenitiesAndGroups\")\n refreshAmenitiesAndGroups?: () => Promise;\n @Getter(\"codebooks/amenities\") amenities?: AmenityView[];\n\n @Getter(\"language/language\") language?: string;\n @Action(\"codebooks/refreshPropertyTypes\")\n refreshPropertyTypes?: () => Promise;\n @Getter(\"codebooks/propertyTypes\") propertyTypes?: PropertyType[];\n\n async created() {\n const promises = [];\n\n if ((this.propertyTypes?.length ?? 0) === 0 && this.refreshPropertyTypes) {\n promises.push(this.refreshPropertyTypes());\n }\n if ((this.categories?.length ?? 0) === 0 && this.refreshCategories) {\n promises.push(this.refreshCategories());\n }\n if (\n (this.amenities?.length ?? 0) === 0 && this.refreshAmenitiesAndGroups) {\n promises.push(this.refreshAmenitiesAndGroups());\n }\n if (this.storedSettings?.workingCurrency && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n await Promise.all(promises);\n }\n\n nameFilter = \"\";\n addressFilter = \"\";\n postalCodeFilter = \"\";\n eMailFilter = \"\";\n telephoneNumberFilter = \"\";\n ownerFilter = \"\";\n propertyTypeFilter=[] as string[];\n\n cityId?: number = 0;\n \n dateRangeDates: string[] = [];\n\n reservationId = \"\";\n arrivalOrDepartureDate = \"\";\n arrivalDateFromPeriod = \"\";\n arrivalDateToPeriod = \"\";\n departureDateFromPeriod = \"\";\n departureDateToPeriod = \"\";\n bookingDate = \"\";\n isFilteredByDate: boolean | null = null;\n optionExpirationDate = \"\";\n reservationHolderName = \"\";\n accomodationUnitName = \"\";\n accomodationUnitTypeName = \"\";\n statusId: number | null = null;\n serviceTypeName = \"\";\n\n sortBy = \"\";\n sortDesc = false;\n\n statuses = reservationStatuses;\n \n availabilitySearchModel: AvailabilitySearchModel = new AvailabilitySearchModel();\n\n @Getter(\"codebooks/accomodationUnitStatuses\")\n accomodationUnitStatuses?: AccomodationUnitStatus[];\n\n mounted() {\n this.setUpRules();\n }\n\n //when we open global filter, open and clear filter\n @Watch(\"dialogOpen\", { immediate: true })\n globalFilterOpenChanged(){\n if (this.globalFilterOpen){\n this.availabilitySearchModel = new AvailabilitySearchModel();\n this.availabilitySearchModel.numberOfUnits = this.filterPrefill.numberOfUnits;\n this.availabilitySearchModel.numberOfAdults = this.filterPrefill.numberOfAdults;\n this.availabilitySearchModel.numberOfChildren = this.filterPrefill.numberOfChildren;\n this.availabilitySearchModel.numberOfBedrooms = this.filterPrefill.numberOfBathrooms;\n this.availabilitySearchModel.numberOfBathrooms = this.filterPrefill.numberOfBedrooms;\n this.dateRangeDates = [];\n this.internalOpen = true;\n }\n }\n\n isFormValid = false;\n get submitDisabled(): boolean {\n if(this.filterType === \"availability\"){\n return this.dateRangeDates.length != 2;\n }\n return !this.isFormValid;\n }\n\n get form(): Vue & { validate: () => boolean } {\n return this.$refs.form as Vue & { validate: () => boolean };\n }\n\n @Watch(\"dateRangeDates\")\n dateRangeDatesWatch() {\n if (this.dateRangeDates.length == 2) {\n if (this.dateRangeDates[1] < this.dateRangeDates[0]) {\n this.dateRangeDates = this.dateRangeDates.reverse();\n }\n }\n }\n\n get sortedPropertyTypes() {\n return (\n this.propertyTypes?.map((x) => {\n return {\n value: x.id,\n name: this.$t(x.textResourceKey),\n };\n }) ?? []\n ).sort((a, b) => (a.name > b.name ? 1 : -1));\n }\n\n get currencyId(){\n return this.storedSettings?.workingCurrency.id;\n }\n\n get arrivalDatePeriod() {\n const res = [\n this.arrivalDateFromPeriod\n ? this.arrivalDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.arrivalDateToPeriod\n ? this.arrivalDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set arrivalDatePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.arrivalDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.arrivalDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.arrivalDateFromPeriod = \"\";\n this.arrivalDateToPeriod = \"\";\n }\n }\n\n get departureDatePeriod() {\n const res = [\n this.departureDateFromPeriod\n ? this.departureDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.departureDateToPeriod\n ? this.departureDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set departureDatePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.departureDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.departureDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.departureDateFromPeriod = \"\";\n this.departureDateToPeriod = \"\";\n }\n }\n \n get uniqueAmenities(){\n const uniqueAmenities = [] as AmenityView[];\n // Push only unique values.\n this.amenities?.forEach(x => {\n if(!uniqueAmenities.map(uT => uT.textResourceKey).includes(x.textResourceKey)){\n uniqueAmenities.push(x);\n }\n })\n \n return uniqueAmenities; \n }\n\n citiesSearchInput = \"\";\n cities: City[] = [];\n loadingCities = false;\n @Watch(\"citiesSearchInput\")\n citiesSearchWatch(fresh: string) {\n if (!fresh) {\n this.availabilitySearchModel.cityId = undefined;\n this.cities = [];\n }\n this.debouncedSearchCities();\n }\n debouncedSearchCities = _.debounce(this.searchCities, 500);\n searchCities() {\n if (!this.citiesSearchInput) {\n return;\n }\n\n this.loadingCities = true;\n this.axios\n .get>(\"codebooks/cities\", {\n params: {\n name: this.citiesSearchInput,\n },\n })\n .then((res) => {\n this.cities = res.data.result;\n this.loadingCities = false;\n });\n }\n\n @Watch(\"open\")\n onOpenChanged(fresh: boolean, old: boolean) {\n if (fresh && !old){\n const promises = [];\n if ((this.propertyTypes?.length ?? 0) === 0 && this.refreshPropertyTypes) {\n promises.push(this.refreshPropertyTypes());\n }\n Promise.all(promises);\n }\n if (this.filterType !== 'reservation') {\n this.accomodationUnitName = \"\";\n this.statusId = null;\n }\n this.nameFilter = \"\";\n this.addressFilter = \"\";\n this.postalCodeFilter = \"\";\n this.eMailFilter = \"\";\n this.telephoneNumberFilter = \"\";\n this.accomodationUnitTypeName = \"\";\n this.serviceTypeName = \"\";\n this.ownerFilter=\"\";\n this.propertyTypeFilter=[];\n\n if (this.filterPrefill) {\n this.nameFilter = this.filterPrefill.name;\n this.eMailFilter = this.filterPrefill.eMail;\n this.telephoneNumberFilter = this.filterPrefill.telephoneNumber;\n }\n\n if (this.sortPrefil) {\n this.sortBy = this.sortPrefil.sortBy;\n this.sortDesc = this.sortPrefil.desc;\n }\n }\n\n @Watch(\"$route\")\n routeChanged() {\n this.internalOpen = false;\n }\n\n get showEmail() {\n return policyChecker(\"READ_CUSTOMER_EMAIL\")(this.claims)\n }\n\n get isAllowedToSeeTelephoneNumber() {\n return policyChecker(\"READ_CUSTOMER_TELEPHONE_NUMBER\")(this.claims)\n }\n\n \n @Watch(\"dateFilterApplied\", { immediate: true })\n applyDateFilterSwitch(filters: any) {\n this.$emit(\"filterUpdated\", filters);\n }\n\n apply() {\n const filters = {\n nameFilter: this.availabilitySearchModel.propertyName ? this.availabilitySearchModel.propertyName : this.nameFilter,\n addressFilter: this.addressFilter,\n postalCodeFilter: this.postalCodeFilter,\n eMailFilter: this.eMailFilter,\n telephoneNumberFilter: this.telephoneNumberFilter,\n ownerFilter: this.ownerFilter,\n propertyTypeFilter: this.propertyTypeFilter,\n\n cityId: this.availabilitySearchModel.cityId,\n\n dateRangeDates: this.dateRangeDates,\n includeOnlyWholeProperties: this.availabilitySearchModel.includeOnlyWholeProperties,\n ignoreRestrictions: this.availabilitySearchModel.ignoreRestrictions,\n ignoreUnitTypeCount: this.availabilitySearchModel.ignoreUnitTypeCount,\n includeSpecialOffers: this.availabilitySearchModel.includeSpecialOffers,\n\n numberOfUnits: this.availabilitySearchModel.numberOfUnits,\n numberOfAdults: this.availabilitySearchModel.numberOfAdults,\n numberOfChildren: this.availabilitySearchModel.numberOfChildren,\n numberOfBedrooms: this.availabilitySearchModel.numberOfBedrooms,\n numberOfBathrooms: this.availabilitySearchModel.numberOfBathrooms,\n fromPrice: this.availabilitySearchModel.fromPrice,\n toPrice: this.availabilitySearchModel.toPrice,\n distanceToBeach: this.availabilitySearchModel.distanceToBeach,\n distanceToCityCenter: this.availabilitySearchModel.distanceToCityCenter,\n\n petsAllowed: this.availabilitySearchModel.petsAllowed,\n propertyTypes: this.availabilitySearchModel.propertyTypes,\n categories: this.availabilitySearchModel.categories,\n amenities: this.availabilitySearchModel.amenities,\n\n reservationId: this.reservationId,\n arrivalOrDepartureDate: this.arrivalOrDepartureDate,\n arrivalDateFromPeriod: this.arrivalDateFromPeriod,\n arrivalDateToPeriod: this.arrivalDateToPeriod,\n departureDateFromPeriod: this.departureDateFromPeriod,\n departureDateToPeriod: this.departureDateToPeriod,\n bookingDate: this.bookingDate,\n isFilteredByDate: this.isFilteredByDate,\n optionExpirationDate: this.optionExpirationDate,\n reservationHolderName: this.reservationHolderName,\n accomodationUnitName: this.accomodationUnitName,\n accomodationUnitTypeName: this.accomodationUnitTypeName,\n statusId: this.statusId,\n serviceTypeName: this.serviceTypeName,\n\n sortBy: this.sortBy,\n sortDesc: this.sortDesc,\n };\n this.$emit(\"filterUpdated\", filters);\n this.internalOpen = false;\n }\n\n rules = {};\n\n setUpRules() {\n this.rules = {\n Required: [\n (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n ],\n NoNegativeNumbers: [\n (value: number) =>\n value == null ||\n value == undefined ||\n value >= 0 ||\n this.$t(\"Validation.MustBePositive\"),\n ],\n WholeNumbersOnly: [\n (value: number) =>\n value == null ||\n value == undefined ||\n value % 1 == 0 ||\n this.$t(\"Validation.MustBeWholeNumber\"),\n ],\n };\n }\n close(){\n this.internalOpen = false;\n this.$emit(\"closingFilterModal\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileFilterModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileFilterModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileFilterModal.vue?vue&type=template&id=0621f6aa&scoped=true&\"\nimport script from \"./MobileFilterModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./MobileFilterModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileFilterModal.vue?vue&type=style&index=0&id=0621f6aa&scoped=true&lang=scss&\"\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 \"0621f6aa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VDivider,VForm,VIcon,VRow,VSelect,VSpacer,VSubheader,VSwitch,VTextField})\n","import { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { Getter } from \"vuex-class\";\n\n@Component\nexport default class GlobalFilterSensitiveMixin extends Vue {\n globalPropertiesFilterKey = 0;\n @Getter(\"globalFilters/filteredProperties\") globalPropertiesFilter?: any[];\n\n @Watch(\"globalPropertiesFilter\")\n watchGlobalPropertiesFilter() {\n this.globalPropertiesFilterKey++;\n }\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n get sensitiveKey() {\n return (this.claims?.tid || 0) + \"_\" + this.globalPropertiesFilterKey;\n }\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleGuestsEditForm.vue?vue&type=style&index=0&id=6a3fa7e6&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialOfferDrawer.vue?vue&type=style&index=1&id=541ce766&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"time-track\",class:{'mobile' : _vm.isMobile, 'contingent' : _vm.isContingent}},[_vm._l((_vm.months),function(m){return _c('div',{key:m.from.year.toString() + m.from.month.toString(),ref:m.from.year.toString() + m.from.month.toString(),refInFor:true,staticClass:\"time-track__month\",class:{'mobile' : _vm.isMobile, 'contingent' : _vm.isContingent},attrs:{\"data-dragscroll\":\"\"}},[(!_vm.isMobile)?_c('div',{staticClass:\"time-track__month-days\",attrs:{\"data-dragscroll\":\"\"}},[_c('TimeTrackDayTrack',{attrs:{\"isMobile\":_vm.isMobile,\"isContingent\":_vm.isContingent,\"from\":m.from,\"to\":m.to,\"w\":_vm.dayW},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar day = ref.day;\nreturn [_c('div',{staticClass:\"time-track__month-day\",attrs:{\"data-dragscroll\":\"\"}},[(_vm.isContingent)?_c('div',{staticClass:\"time-track__month-day__day\",attrs:{\"data-dragscroll\":\"\"}},[_vm._v(\" \"+_vm._s(day.day)+\" \"+_vm._s(day.setLocale(_vm.language).weekdayShort)+\" \")]):_c('div',{staticClass:\"time-track__month-day__day\",attrs:{\"data-dragscroll\":\"\"}},[_vm._v(\" \"+_vm._s(day.setLocale(_vm.language).weekdayShort)+\" \"),_c('div',{staticClass:\"month-short\",attrs:{\"data-dragscroll\":\"\"}},[_vm._v(_vm._s(day.day)+\" \"+_vm._s(day.setLocale(_vm.language).monthShort)+\" \")])])])]}}],null,true)})],1):_c('div',{staticClass:\"time-track__month-days\",attrs:{\"data-dragscroll\":\"\"}},[_c('TimeTrackDayTrack',{attrs:{\"isMobile\":_vm.isMobile,\"from\":m.from,\"to\":m.to,\"w\":_vm.dayW,\"h\":50},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar day = ref.day;\nreturn [_c('div',{staticClass:\"time-track__month-day\",attrs:{\"data-dragscroll\":\"\"}},[_c('div',{staticClass:\"time-track__month-day__day mobile\",attrs:{\"data-dragscroll\":\"\"}},[_c('div',{staticClass:\"day\",attrs:{\"data-dragscroll\":\"\"}},[_vm._v(_vm._s(day.setLocale(_vm.language).weekdayShort.toUpperCase()))]),_c('v-spacer',{attrs:{\"data-dragscroll\":\"\"}}),_c('div',{staticClass:\"date\",attrs:{\"data-dragscroll\":\"\"}},[_vm._v(\" \"+_vm._s(day.day)+\" \"+_vm._s(day.setLocale(_vm.language).monthShort)+\" \")])],1)])]}}],null,true)})],1)])}),(_vm.emptySlots > 0)?_c('div',{staticClass:\"time-track__month-day__empty-slot\",style:({\n height: 32 + 'px',\n width: _vm.dayW * _vm.emptySlots + 'px',\n })}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"day-track\"},[(!_vm.isMobile && !_vm.isContingent)?_c('i',{staticClass:\"fa fa-map-marker primary--text\",style:(_vm.todayMarkerPos)}):_vm._e(),_vm._l((_vm.days),function(day){return _c('div',{key:day.toMillis(),staticClass:\"day-track__day\",class:_vm.dayClass(day),style:(_vm.dimensions)},[_vm._t(\"default\",null,{\"day\":day})],2)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport { DateTime } from \"luxon\";\n\n@Component\nexport default class DayTrack extends Vue {\n @Prop({ required: true }) from?: DateTime;\n @Prop({ required: true }) to?: DateTime;\n @Prop({ default: 32 }) w?: number;\n @Prop({ default: 32 }) h?: number;\n @Prop() isMobile?: boolean;\n @Prop() isContingent?: boolean;\n\n get todayMarkerPos() {\n if (this.from && this.w) {\n if (this.from.month === DateTime.local().month && this.from.year === DateTime.local().year) {\n const day = DateTime.local().day;\n return {\n position: \"absolute\",\n left: `${this.w * (day - this.from.day + 0.5) - 8}px`,\n top: `${-36 + 8}px`,\n };\n }\n }\n\n return { display: \"none\" };\n }\n\n get days(): DateTime[] {\n if (!this.from || !this.to) return [];\n const f = this.from;\n return Array.from(\n Array(Math.ceil(this.to.diff(this.from, \"days\").days)),\n (_, i) => f.plus({ days: i })\n );\n }\n\n get dimensions() {\n return {\n width: this.w + \"px\",\n height: this.h + \"px\",\n };\n }\n\n dayClass(day: DateTime) {\n const isToday = day.toISODate() === DateTime.local().toISODate();\n return {\n \"primary--text\": !isToday && day.weekday <= 5,\n \"accent--text\": !isToday && day.weekday > 5,\n \"white--text primary lighten--2\": isToday && !this.isMobile && !this.isContingent,\n \"black--text\": isToday && !this.$vuetify.theme.dark && this.isMobile,\n \"white--text\": isToday && this.$vuetify.theme.dark && this.isMobile,\n \"no-border\" : this.isMobile,\n };\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackDayTrack.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackDayTrack.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeTrackDayTrack.vue?vue&type=template&id=413b8a28&scoped=true&\"\nimport script from \"./TimeTrackDayTrack.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeTrackDayTrack.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeTrackDayTrack.vue?vue&type=style&index=0&id=413b8a28&scoped=true&lang=scss&\"\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 \"413b8a28\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Ref, Watch } from \"vue-property-decorator\";\nimport { DateTime } from \"luxon\";\nimport TimeTrackDayTrack from \"./TimeTrackDayTrack.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { Getter } from \"vuex-class\";\nimport * as _ from \"lodash\";\n\ntype TimeTrackMonth = {\n from: DateTime;\n to: DateTime;\n};\n\n@Component({ components: { TimeTrackDayTrack, DateField } })\nexport default class BoxTimeTrack extends Vue {\n @Prop({ required: true }) start?: DateTime;\n @Prop({ required: true }) end?: DateTime;\n @Prop({ default: 48 }) dayW?: number;\n @Prop() current?: DateTime;\n @Prop({ default: false }) dragging?: boolean;\n @Prop({ default: false }) isMobile?: boolean;\n @Prop({ default: false }) isContingent?: boolean;\n\n @Getter(\"language/language\") language?: string;\n\n menu = false;\n\n currentISO = DateTime.local()\n .toISODate()\n ?.substring(0, 7);\n @Watch(\"current\", { immediate: true })\n currentChanged(fresh?: DateTime) {\n this.currentISO = fresh?.toISODate() ?? new Date().toJSON().substring(0, 7);\n }\n\n @Getter(\"showMenu\") navMenu?: boolean;\n @Getter(\"drawerCollapsed\") navMenuCollapsed?: boolean;\n\n @Watch(\"dayW\")\n dayWWatch() {\n setTimeout(() => {\n this.calculateWidths();\n }, 250);\n }\n\n @Watch(\"dragging\")\n draggingWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.interval = setInterval(() => {\n this.calculateWidths();\n }, 250);\n } else {\n clearInterval(this.interval);\n this.calculateWidths();\n }\n }\n\n widths = {} as any;\n interval: any;\n timeout: any;\n\n calculateWidths() {\n const refs = this.months.map(\n (x) => x.from.year.toString() + x.from.month.toString()\n );\n\n let offset = 296;\n if (this.navMenu && !this.navMenuCollapsed) {\n offset = 496;\n } else if (!this.navMenu) {\n offset = 240;\n }\n\n const temp = {} as any;\n for (const x of refs) {\n const el = this.$refs[x] as Element[];\n if (el.length > 0) {\n const left = el[0].getBoundingClientRect().left;\n const width = el[0].getBoundingClientRect().width - 150;\n\n temp[x] = Math.min(width - 2, Math.abs(Math.min(0, left - offset)));\n }\n }\n\n if (!_.isEqual(temp, this.widths)) {\n this.widths = temp;\n }\n }\n\n getStyle(ref: string) {\n const width = this.widths[ref];\n if (width != undefined) {\n return `width: ${width}px;`;\n }\n\n return \"\";\n }\n\n mounted() {\n this.timeout = setTimeout(() => {\n this.calculateWidths();\n }, 1000);\n }\n\n destroyed() {\n clearInterval(this.interval);\n clearTimeout(this.timeout);\n }\n\n get months(): TimeTrackMonth[] {\n if (!this.start || !this.end) return [];\n\n const start = this.start;\n const end = this.end;\n\n const months = (end.year - start.year) * 12 + end.month - start.month + 1;\n\n return Array.from(Array(months), (_, i) => {\n return {\n from: i === 0 ? start : start.plus({ months: i }).startOf(\"month\"),\n to: i === months - 1 ? end : start.plus({ months: i }).endOf(\"month\"),\n };\n });\n }\n\n get emptySlots() {\n if(this.start && this.end && (!this.isContingent || this.end?.diff(this.start, \"days\").days <= 7)) {\n return 0;\n }\n \n return 31 - this.months[0].to.diff(this.months[0].from, \"days\").days;\n }\n\n /* Vuetify has a bug where it retains focus, :retain-focus-on-click=\"false\" doesn't fix it \n https://github.com/vuetifyjs/vuetify/issues/3125#issuecomment-527843283 */\n @Ref(\"navRightBtn\") navRightBtn?: Vue;\n navRight() {\n if (this.navRightBtn?.$el instanceof HTMLElement) {\n this.navRightBtn?.$el.blur();\n }\n this.$emit(\"nav-right\");\n }\n @Ref(\"navLeftBtn\") navLeftBtn?: Vue;\n navLeft() {\n if (this.navLeftBtn?.$el instanceof HTMLElement) {\n this.navLeftBtn?.$el.blur();\n }\n this.$emit(\"nav-left\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BoxTimeTrack.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BoxTimeTrack.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BoxTimeTrack.vue?vue&type=template&id=14938c29&scoped=true&\"\nimport script from \"./BoxTimeTrack.vue?vue&type=script&lang=ts&\"\nexport * from \"./BoxTimeTrack.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BoxTimeTrack.vue?vue&type=style&index=0&id=14938c29&scoped=true&lang=scss&\"\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 \"14938c29\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VSpacer})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPicker.vue?vue&type=style&index=0&id=4ca5d2ef&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeTranslations.vue?vue&type=style&index=0&id=f4969ba8&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ETurizemReportForm.vue?vue&type=style&index=0&id=41d32242&scoped=true&lang=scss&\"","import { GetterTree, ActionTree, MutationTree } from \"vuex\";\n\nexport class DashboardKPITablesState {\n needsRefresh = false;\n departuresNeedRefresh = false;\n showOwnersReservations = false;\n}\n\nconst initialState = new DashboardKPITablesState();\n\nconst state = { ...initialState };\n\nconst getters: GetterTree = {\n needsRefresh: (s) => s.needsRefresh,\n departuresNeedRefresh: (s) => s.departuresNeedRefresh,\n showOwnersReservations: (s) => s.showOwnersReservations\n};\nconst actions: ActionTree = {\n setNeedsRefresh({ commit }, payload: boolean) {\n commit(\"setNeedsRefresh\", payload);\n },\n setDeparturesNeedRefresh({ commit }, payload: boolean) {\n commit(\"setDeparturesNeedRefresh\", payload);\n },\n setShowOwnersReservations({ commit }, payload: { value: boolean; utid: number }) {\n commit(\"setShowOwnersReservations\", payload);\n }\n};\nconst mutations: MutationTree = {\n setNeedsRefresh: (state, value: boolean) => {\n state.needsRefresh = value;\n },\n setDeparturesNeedRefresh: (state, value: boolean) => {\n state.departuresNeedRefresh = value;\n },\n setShowOwnersReservations: (state, payload: { value: boolean; utid: number }) => {\n state.showOwnersReservations = payload.value;\n localStorage.setItem(\"pms.utid_\" + payload.utid + \"_dashboard.showOwnerRes\", JSON.stringify(payload.value));\n }\n};\n\nexport default {\n namespaced: true,\n state: () => state,\n getters,\n actions,\n mutations\n};\n\nexport const dashboardAccUnitStatuses = [\n {\n id: 1,\n color: \"success\",\n text: \"t.AccomodationUnitStatus.Ready\",\n },\n {\n id: 2,\n color: \"warning\",\n text: \"t.AccomodationUnitStatus.NeedsCleaning\",\n },\n {\n id: 3,\n color: \"warning\",\n text: \"t.AccomodationUnitStatus.NeedsRepair\",\n },\n {\n id: 4,\n color: \"accent\",\n text: \"t.AccomodationUnitStatus.CleaningInProgress\",\n },\n {\n id: 5,\n color: \"accent\",\n text: \"t.AccomodationUnitStatus.RepairInProgress\",\n },\n];\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitFields.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlans.vue?vue&type=style&index=0&id=60328633&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeRatePlanOverrides.vue?vue&type=style&index=0&id=36b14c1f&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RichTextEditor.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatePlansTiles.vue?vue&type=style&index=0&id=720de1ae&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnits.vue?vue&type=style&index=0&id=095b40e4&scoped=true&lang=scss&\"","export function enumToArray(object: any){\n const toReturn = [];\n for(const prop in object){\n if (isNaN(Number.parseInt(prop))){\n toReturn.push({name: prop, value: object[prop]});\n }\n }\n return toReturn;\n}\n\nexport function capitalize(val: string){\n if(!val){\n return \"\";\n }\n return val[0].toUpperCase() + val.slice(1)\n}\n\nexport function cleanUpPhoneNumber(telephoneNumber: string)\n{\n //eslint-disable-next-line\n return telephoneNumber?.replace(/[ |\\/|\\|\\-|+|\\(|\\)]/gm, \"\") ?? \"\";\n}\n\nexport function cleanUpLeadingZeroes(telephoneNumber: string)\n{\n return telephoneNumber?.replace(/^0+/gm, \"\") ?? \"\";\n}\n\nexport function appendPrefixIfMissing(phoneNumber: string)\n{\n if(!phoneNumber.startsWith(\"00\") && !phoneNumber.startsWith(\"+\"))\n {\n phoneNumber = \"+\" + phoneNumber;\n }\n\n return phoneNumber;\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyOwner.vue?vue&type=style&index=0&id=d56c83de&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"no-data\"},[(_vm.icon)?_c('v-icon',{attrs:{\"color\":\"error lighten-1\"}},[_vm._v(_vm._s(_vm.icon))]):_vm._e(),_c('h2',{staticClass:\"error--text\"},[_vm._v(_vm._s(_vm.errorText))]),_c('span',[_vm._v(_vm._s(_vm.errorHint))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class NoData extends Vue {\n @Prop() icon?: string;\n @Prop() customError?: string;\n @Prop() customHint?: string;\n\n get errorText(){\n return this.customError ? this.$t(this.customError) : this.$t(\"NoResults\");\n }\n\n get errorHint(){\n return this.customHint ? this.$t(this.customHint) : this.$t(\"NoResultsHint\");\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoData.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoData.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NoData.vue?vue&type=template&id=d1a8857a&scoped=true&\"\nimport script from \"./NoData.vue?vue&type=script&lang=ts&\"\nexport * from \"./NoData.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NoData.vue?vue&type=style&index=0&id=d1a8857a&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 \"d1a8857a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContingentBox.vue?vue&type=style&index=0&id=e53dd9d6&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesTable.vue?vue&type=style&index=0&id=63182ec4&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Otas.vue?vue&type=style&index=0&id=6dad74a7&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomersTable.vue?vue&type=style&index=0&id=6291c153&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckInModalForm.vue?vue&type=style&index=0&id=73bb8e27&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-fade-transition',[(_vm.loading)?_c('v-overlay',{staticStyle:{\"position\":\"absolute\"},attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined}},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"size\":\"64\",\"indeterminate\":\"\"}})],1):_vm._e()],1),_c('ReservationsTableMobile',{key:_vm.sensitiveKey,attrs:{\"reservations\":_vm.reservations,\"name\":_vm.name,\"fpNum\":_vm.fpNum},on:{\"loadMore\":function($event){return _vm.getMoreReservations()},\"filterUpdated\":_vm.updateFilter,\"sortOrder\":function($event){return _vm.sortOrder()},\"sortByOrder\":function($event){return _vm.sortByOrder($event)},\"reservationUpdated\":_vm.refreshMobileTable}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"top-row\",class:{'small-header' : !this.showDatePicker, 'big-header' : this.showDatePicker}},[_c('div',{staticClass:\"left-content\"},[(_vm.name === 'Reservations')?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"sort-button\",attrs:{\"dense\":\"\",\"outlined\":\"\"}},on),[_vm._v(_vm._s(_vm.$t(_vm.currentSortField)))])]}}],null,false,2602236252)},[_c('v-list',_vm._l((_vm.sortOptions),function(option){return _c('v-list-item',{key:option.value,on:{\"click\":function($event){return _vm.sortByOrder(option.value)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(option.text)))])],1)}),1)],1):_vm._e(),_c('v-btn',{staticClass:\"button-sort\",on:{\"click\":function($event){return _vm.changeSortOrder()}}},[(_vm.sortOrder === 'asc')?_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fa fa-arrow-up\")]):_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fa fa-arrow-down\")])],1),_c('div',{staticClass:\"center-layout-switch\"},[(_vm.name === 'Reservations')?_c('v-switch',{attrs:{\"color\":\"success\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.applyReservationsGridFilter},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"10px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('Reservations.FilterReservationsByDate'))+\" \")])]},proxy:true}],null,false,2838780955),model:{value:(_vm.isReservationsGridFilteredByDate),callback:function ($$v) {_vm.isReservationsGridFilteredByDate=$$v},expression:\"isReservationsGridFilteredByDate\"}}):_vm._e()],1)],1),_c('div',{staticClass:\"right-content\"},[(_vm.name === 'Reservations')?_c('v-btn',{staticClass:\"button filter-button\",on:{\"click\":function($event){_vm.filterModalOpen = !_vm.filterModalOpen}}},[_c('v-icon',{staticClass:\"ml-3\",attrs:{\"size\":\"18\"}},[_vm._v(\"fas fa-fw fa-filter\")])],1):_vm._e(),(_vm.name !== 'Reservations')?_c('div',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.tabName)+_vm._s(_vm.tabDate))]):_vm._e()],1)]),_c('ScrollLoader',{attrs:{\"loadOffset\":100,\"element\":_vm.scrollEl},on:{\"offsetReached\":function($event){return _vm.$emit('loadMore')}}},[_c('div',{directives:[{name:\"scroll\",rawName:\"v-scroll.self\",value:(_vm.scrolled),expression:\"scrolled\",modifiers:{\"self\":true}}],staticClass:\"units-wrapper\",class:{'small-header' : !this.showDatePicker, 'big-header' : this.showDatePicker}},[_c('v-row',{staticClass:\"custom-gutters\"},_vm._l((_vm.reservations),function(unit,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\"}},[_c('ReservationTableMobileTile',{attrs:{\"unit\":unit,\"occupancy\":_vm.occupancy,\"fpNum\":_vm.fpNum},on:{\"open-modal\":function($event){_vm.allowedToModifyReservations && _vm.editItem($event)}}})],1)}),1)],1)]),_c('MobileFilterModal',{attrs:{\"open\":_vm.filterModalOpen,\"filterType\":'reservation'},on:{\"update:open\":function($event){_vm.filterModalOpen=$event},\"filterUpdated\":function($event){return _vm.updateFilter($event)}}}),(_vm.allowedToModifyReservations && _vm.renderReservationModalMobile)?_c('ComponentRenderOverlay',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar showComponent = ref.showComponent;\nreturn [(showComponent)?_c('ReservationModalMobile',{attrs:{\"open\":_vm.reservationFormOpen,\"reservationId\":_vm.reservationFormId,\"scrollId\":_vm.scrollId},on:{\"update:open\":function($event){_vm.reservationFormOpen=$event},\"closed\":function($event){_vm.renderReservationModalMobile = false;},\"ready\":function($event){_vm.reservationFormOpen = true},\"reservationUpdated\":function($event){return _vm.$emit('reservationUpdated')}}}):_vm._e()]}}],null,false,659272556)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"wrapper\",attrs:{\"id\":\"card\"}},[(!_vm.occupancy)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"icon-text-wrapper-colored\"},[_c('v-icon',{staticClass:\"colored-icon\",attrs:{\"size\":\"12\"}},[_vm._v(\"fas fa-calendar-day\")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" \"+_vm._s(_vm.reservationDateUI)+\" (\"+_vm._s(_vm.$tc(\"{count} of nights\", _vm.unit.numberOfNights))+\") \")])],1),_c('div',{staticClass:\"icon-text-wrapper\"},[_c('v-icon',{attrs:{\"size\":\"12\"}},[_vm._v(\"fas fa-user-friends\")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.guestName)+\" \"+_vm._s(_vm.numberOfPeople))])],1)]),(_vm.allowedToModifyReservations)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{staticClass:\"mt-2 colored-icon\",attrs:{\"size\":\"20\"},on:{\"click\":function($event){return _vm.openItemDetails(_vm.unit)}}},[_vm._v(\"fas fa-pen\")])],1)],1):_vm._e()],1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"10\"}},[(!_vm.occupancy)?_c('div',{staticClass:\"info-wrapper\"},[(_vm.fpNum > 1)?_c('div',[_c('div',{staticClass:\"text-bold\"},[_vm._v(_vm._s(_vm.unit.propertyName))]),_c('div',{staticClass:\"text-colored\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.unit.accomodationUnitName)+\" \"+_vm._s(_vm.unit.accomodationUnitTypeName)+\" \")]),(_vm.isAllowedToSeePrices)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.unit.totalPrice, { style: \"currency\", currency: _vm.currencyCodeUI, currencyDisplay: \"code\", }))+\" \")]):_vm._e(),(_vm.isAllowedToSeeOwnerPrices && _vm.unit.ownerTotalPrice)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(_vm.unit.ownerTotalPrice, { style: \"currency\", currency: _vm.currencyCodeUI, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]),(_vm.showStatusIcon)?_c('div',[_c('v-icon',{class:_vm.getStatusColor(),attrs:{\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getStatusIcon())+\" \")])],1):_vm._e()]):_c('div',[_c('div',{staticClass:\"text-bold\"},[_vm._v(_vm._s(_vm.unit.accomodationUnitTypeName))]),_c('div',{staticClass:\"text-colored\"},[_c('div',{staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\" \"+_vm._s(_vm.unit.accomodationUnitName)+\" \"+_vm._s(_vm.isAllowedToSeePrices ? (\" - \" + (_vm.$n(_vm.unit.totalPrice, { style: \"currency\", currency: _vm.currencyCodeUI, currencyDisplay: \"code\", }))) : _vm.isAllowedToSeeOwnerPrices && _vm.unit.ownerTotalPrice ? (\" - \" + (_vm.$n(_vm.unit.ownerTotalPrice, { style: \"currency\", currency: _vm.currencyCodeUI, currencyDisplay: \"code\", }))) : \"\")+\" \")]),(_vm.showStatusIcon)?_c('div',[_c('v-icon',{class:_vm.getStatusColor(),attrs:{\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getStatusIcon())+\" \")])],1):_vm._e()])]),_c('div',{staticClass:\"text\"},[_c('div',[_vm._v(\" ID \"+_vm._s(_vm.unit.reservationId)+\", \"+_vm._s(_vm.translatedStatus)+\" \"+_vm._s(_vm.reservationCancellationDate)+\" \"+_vm._s(_vm.allowedToModifyReservations ? _vm.expirationDate : \"\")+\" \"),(_vm.unit.isCancelledWithinFreeCancellationPeriod !== undefined && !_vm.unit.isCancelledWithinFreeCancellationPeriod)?_c('v-icon',{staticClass:\"red-text\",attrs:{\"x-small\":\"\"}},[_vm._v(\" fa fa-exclamation \")]):_vm._e()],1),(\n _vm.otaInfo &&\n _vm.allowedToModifyReservations &&\n _vm.isAllowedToModifyDistributionChannel\n )?_c('div',[_vm._v(\" \"+_vm._s(_vm.otaInfo)+\" \")]):_vm._e(),(_vm.unit.expectedArrivalTime)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Expected arrival time\"))+\": \"+_vm._s(_vm.getHourAndMinute(_vm.unit.expectedArrivalTime))+\" \")]):_vm._e(),(_vm.unit.checkInTimeFrom)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"Dashboard.Arrivals.CheckInTime\"))+\": \"+_vm._s(_vm.getHourAndMinute(_vm.unit.checkInTimeFrom))+\" \")]):_vm._e()]),(_vm.unit.propertyStaffRemarks && _vm.allowedToModifyReservations)?_c('div',{staticClass:\"remarks\"},[_vm._v(\" \"+_vm._s(_vm.unit.propertyStaffRemarks)+\" \")]):_vm._e(),(!_vm.allowedToModifyReservations)?_c('div',{staticClass:\"remarks\"},[_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_GUEST_REMARKS\"}},[(_vm.unit.guestRemarks)?_c('div',[_vm._v(_vm._s(_vm.unit.guestRemarks))]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_PROPERTY_STAFF_REMARKS\"}},[(_vm.unit.propertyStaffRemarks)?_c('div',[_vm._v(\" \"+_vm._s(_vm.unit.propertyStaffRemarks)+\" \")]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_REMARKS_FOR_OWNER\"}},[(_vm.unit.remarksForOwner)?_c('div',[_vm._v(_vm._s(_vm.unit.remarksForOwner))]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_MAINTENANCE_STAFF_REMARKS\"}},[(_vm.unit.generalMaintenanceStaffRemarks)?_c('div',[_vm._v(\" \"+_vm._s(_vm.unit.generalMaintenanceStaffRemarks)+\" \")]):_vm._e()]),_c('RequireRole',{attrs:{\"policy\":\"RESERVATION_UNIT_MAINTENANCE_STAFF_REMARKS\"}},[(_vm.unit.unitMaintenanceStaffRemarks)?_c('div',[_vm._v(\" \"+_vm._s(_vm.unit.unitMaintenanceStaffRemarks)+\" \")]):_vm._e()])],1):_vm._e()]):_c('div',{staticClass:\"info-wrapper-occu\"},[(_vm.fpNum > 1)?_c('div',{staticClass:\"text-bold\"},[_vm._v(_vm._s(_vm.unit.propertyName))]):_c('div',{staticClass:\"text-bold\"},[_vm._v(_vm._s(_vm.unit.unitTypeName))]),_c('div',{staticClass:\"text-colored\"},[_c('div',{staticClass:\"occupancy-text\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Occupancy.OccupancyPercentage\"))+\" - \"+_vm._s(_vm.$n(_vm.unit.occupancyPercentage * 100, { maximumFractionDigits: 2, }))+\"% \")])]),_c('div',{staticClass:\"text\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"{free} of {all} units available {occu} occupied\", { free: _vm.unit.availableQuantity, all: _vm.unit.totalQuantity, occu: _vm.unit.occupiedQuantity, }))+\" \")])])])]),(_vm.telephoneNumber)?_c('v-col',{staticClass:\"phone-menu\",attrs:{\"cols\":\"2\"}},[_c('v-menu',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [(_vm.isAllowedToSeeTelephoneNumber)?_c('v-btn',_vm._g(_vm._b({attrs:{\"dark\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"size\":\"20\",\"color\":\"green\"}},[_vm._v(\"fas fa-phone\")])],1):_vm._e()]}}],null,false,4068959625)},[_c('v-list',[_c('v-list-item',[(_vm.isAllowedToSeeTelephoneNumber)?_c('v-btn',{staticClass:\"call\",attrs:{\"icon\":\"\",\"href\":_vm.phoneHref,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"fas fa-phone\")])],1):_vm._e()],1),_c('v-list-item',[_c('v-btn',{staticClass:\"call\",attrs:{\"icon\":\"\",\"href\":_vm.smsHref,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"color\":\"blue\"}},[_vm._v(\"fas fa-sms\")])],1)],1),_c('v-list-item',[_c('v-btn',{staticClass:\"call\",attrs:{\"icon\":\"\",\"href\":_vm.whatsAppHref,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"color\":\"teal\"}},[_vm._v(\"fab fa-whatsapp\")])],1)],1)],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport ReservationTableMobileTile from \"./ReservationTableMobileTile.vue\";\nimport { DateTime } from \"luxon\";\nimport VReservation from \"@/shared/models/vReservation\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\nimport RequireRole from \"@/components/misc/RequireRole.vue\";\nimport {\n cleanUpPhoneNumber,\n cleanUpLeadingZeroes,\n appendPrefixIfMissing,\n} from \"@/shared/commonFunctions\";\nimport { AccomodationUnitStatusEnum } from \"@/shared/models/enums.type\";\nimport { formatLocaleDate } from \"@/shared/dateFormatUtils\";\n\n@Component({\n components: {\n ReservationTableMobileTile,\n RequireRole,\n },\n})\nexport default class ReservationsTableMobileTile extends Vue {\n @Prop() unit?: any;\n @Prop() occupancy?: boolean;\n @Prop() fpNum?: number;\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n get allowedToModifyReservations() {\n return policyChecker(\"MODIFY_RESERVATIONS\")(this.claims);\n }\n\n get isAllowedToSeePrices() {\n return (\n policyChecker(\"MODIFIED_PRICES\")(this.claims) ||\n policyChecker(\"ACTUAL_PRICES\")(this.claims)\n );\n }\n\n get isAllowedToSeeOwnerPrices() {\n return policyChecker(\"INPUT_PRICES\")(this.claims);\n }\n\n get isAllowedToModifyDistributionChannel() {\n return policyChecker(\"MODIFY_DISTRIBUTION_CHANNEL\")(this.claims);\n }\n\n get isAllowedToSeeTelephoneNumber() {\n return policyChecker(\"READ_CUSTOMER_TELEPHONE_NUMBER\")(this.claims);\n }\n\n get reservationDateUI() {\n const arrivalDate = DateTime.fromISO(this.unit.arrivalDate);\n const departureDate = DateTime.fromISO(this.unit.departureDate);\n\n if (!this.occupancy && this.unit.arrivalDate !== undefined) {\n return (\n formatLocaleDate(arrivalDate, this.language) +\n \" - \" +\n formatLocaleDate(departureDate, this.language)\n );\n } else {\n return this.$d(new Date(this.unit.date));\n }\n }\n\n get reservationCancellationDate() {\n if (this.unit.cancelationDate !== undefined) {\n const cancellationDate = DateTime.fromISO(this.unit.cancelationDate)\n return ' (' + formatLocaleDate(cancellationDate, this.language) + ')'\n } \n return ''\n }\n\n get cancellationWithinFreePeriod() {\n return 'fa fa-exclamation'\n }\n\n get currencyCodeUI() {\n return this.unit.currencyCode ?? \"EUR\";\n }\n\n get translatedStatus() {\n switch (this.unit.statusName) {\n case \"No show\":\n return this.$t(\"t.ReservationStatus.NoShow\");\n case \"Checked-in\":\n return this.$t(\"t.ReservationStatus.CheckedIn\");\n case \"Checked-out\":\n return this.$t(\"t.ReservationStatus.CheckedOut\");\n }\n\n return this.$t(\"t.ReservationStatus.\" + this.unit.statusName);\n }\n\n get expirationDate() {\n if (this.unit.optionExpirationDate && this.unit.statusId === 1) {\n return \" - \" + this.$d(new Date(this.unit.optionExpirationDate));\n }\n return \"\";\n }\n\n get otaInfo() {\n if (this.unit.otachannelName) {\n return (\n this.unit.otachannelName +\n (this.unit.otareservationId\n ? \" (ID \" + this.unit.otareservationId + \")\"\n : \"\")\n );\n }\n return \"\";\n }\n\n get numberOfPeople() {\n if (this.unit.numberOfAdults || this.unit.numberOfChildren) {\n return (\n \" (\" +\n this.unit.numberOfAdults +\n \" + \" +\n this.unit.numberOfChildren +\n \")\"\n );\n }\n return \"\";\n }\n\n get guestName() {\n return (\n this.unit.firstGuestName ??\n this.unit.guestPlaceholder ??\n this.unit.reservationHolderName\n );\n }\n\n get telephoneNumber() {\n if (this.unit.firstGuestName && this.unit.firstGuestTelephoneNumber) {\n return this.unit.firstGuestTelephoneNumber;\n } else if (\n !this.unit.guestPlaceholder &&\n this.unit.reservationHolderName &&\n this.unit.reservationHolderTelephoneNumber\n ) {\n return this.unit.reservationHolderTelephoneNumber;\n }\n\n return undefined;\n }\n\n get whatsAppHref() {\n return this.telephoneNumber\n ? \"https://wa.me/\" +\n cleanUpLeadingZeroes(cleanUpPhoneNumber(this.telephoneNumber))\n : \"\";\n }\n\n get phoneHref() {\n let phoneNumber = this.telephoneNumber\n ? cleanUpPhoneNumber(this.telephoneNumber)\n : \"\";\n\n phoneNumber = appendPrefixIfMissing(phoneNumber);\n\n return \"tel:\" + phoneNumber;\n }\n\n get smsHref() {\n let phoneNumber = this.telephoneNumber\n ? \"sms:\" + cleanUpPhoneNumber(this.telephoneNumber)\n : \"\";\n\n phoneNumber = appendPrefixIfMissing(phoneNumber);\n\n return \"sms:\" + phoneNumber;\n }\n\n openItemDetails(item: VReservation) {\n if (!this.allowedToModifyReservations) {\n return;\n }\n\n this.$emit(\"open-modal\", {\n resId: item.reservationId,\n scrollId: item.reservationAccUnitTypeId,\n });\n }\n\n get showStatusIcon() {\n if (\n this.unit.accomodationUnitStatus &&\n policyChecker(\"UNIT_STATUS\")(this.claims)\n ) {\n return (\n this.unit.accomodationUnitStatus != AccomodationUnitStatusEnum.Clean\n );\n }\n return false;\n }\n\n getStatusColor() {\n switch (this.unit?.accomodationUnitStatus) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return [\"orange-text\"];\n case AccomodationUnitStatusEnum.NeedsRepair:\n return [\"red-text\"];\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return [\"orange-text\"];\n case AccomodationUnitStatusEnum.RepairInProgress:\n return [\"red-text\"];\n default:\n return [\"\"];\n }\n }\n\n getStatusIcon() {\n switch (this.unit?.accomodationUnitStatus) {\n case AccomodationUnitStatusEnum.NeedsCleaning:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.NeedsRepair:\n return \"fa-tools\";\n case AccomodationUnitStatusEnum.CleaningInProgress:\n return \"fa-vacuum\";\n case AccomodationUnitStatusEnum.RepairInProgress:\n return \"fa-tools\";\n default:\n return \"\";\n }\n }\n\n getHourAndMinute(time: string) {\n if (!time) return \"\";\n\n const parts = time.split(\":\");\n return `${parts[0]}:${parts[1]}`;\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationTableMobileTile.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationTableMobileTile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationTableMobileTile.vue?vue&type=template&id=7dc00905&scoped=true&\"\nimport script from \"./ReservationTableMobileTile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationTableMobileTile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationTableMobileTile.vue?vue&type=style&index=0&id=7dc00905&scoped=true&lang=scss&\"\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 \"7dc00905\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCol,VIcon,VList,VListItem,VMenu,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport ReservationTableMobileTile from \"./ReservationTableMobileTile.vue\";\nimport ScrollLoader from \"@/components/misc/ScrollLoader.vue\";\nconst ComponentRenderOverlay = () => import(\"@/components/misc/ComponentRenderOverlay.vue\");\nconst ReservationModalMobile = () => import(\"@/components/reservation-form/ReservationModalMobile.vue\");\nimport MobileFilterModal from \"@/components/misc/MobileFilterModal.vue\";\nimport { Getter } from \"vuex-class\";\nimport { DateTime } from \"luxon\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { policyChecker } from \"@/shared/roles\";\n\n@Component({\n components: {\n ReservationTableMobileTile,\n ReservationModalMobile,\n MobileFilterModal,\n ScrollLoader,\n ComponentRenderOverlay\n },\n})\n\nexport default class ReservationsTableMobile extends Vue {\n @Getter(\"calendar/currentDay\") currentDay?: DateTime;\n @Getter(\"language/language\") language?: string;\n @Getter(\"showDatePicker\") showDatePicker?: boolean;\n @Prop() reservations?: any[];\n @Prop() name?: string;\n @Prop() fpNum?: number;\n @Prop() endpoint?: string;\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n get allowedToModifyReservations() {\n return policyChecker(\"MODIFY_RESERVATIONS\")(this.claims);\n }\n\n @Getter(\"appParams/reservationsGridFiltersByDate\") reservationsGridFiltersByDate?: number;\n @Getter(\"reservations/dateFilterApplied\") dateFilterApplied?: boolean;\n \n sortOptions: { text: string; value: string }[] = [];\n sortOrder = \"asc\";\n currentSortField = this.reservationsGridFiltersByDate === 1 ? \"VReservation.arrivalDate\" : \"VReservation.departureDate\"\n\n elementDate = 0;\n\n renderReservationModalMobile = false;\n isReservationsGridFilteredByDate = true;\n\n async applyReservationsGridFilter() {\n await this.$store.dispatch(\"reservations/setDateFilterApplied\", this.isReservationsGridFilteredByDate)\n }\n \n @Watch(\"sortOrder\")\n sortOrderChanged(fresh: string)\n {\n if(this.reservations)\n {\n if(fresh === \"asc\")\n {\n this.$emit(\"sortOrder\", false);\n }\n if(fresh === \"desc\")\n {\n this.$emit(\"sortOrder\", true);\n }\n }\n }\n\n scrollEl = null as HTMLElement | null;\n mounted() {\n if(this)\n {\n this.scrollEl = (this as Vue).$el.querySelector(\".units-wrapper\");\n }\n }\n\n firstUpper(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1)\n }\n\n changeSortOrder()\n {\n if(this.sortOrder === \"asc\")\n {\n this.sortOrder = \"desc\";\n }\n else {\n this.sortOrder = \"asc\";\n }\n }\n\n sortByOrder(value: string) {\n this.$emit(\"sortByOrder\", value);\n if (value === \"arrivalDate\") {\n this.currentSortField = \"VReservation.arrivalDate\";\n } else if (value === \"departureDate\") {\n this.currentSortField = \"VReservation.departureDate\"\n } else if (value === \"bookingDate\") {\n this.currentSortField = \"VReservation.bookingDate\"\n } else {\n this.currentSortField = value;\n }\n }\n\n scrolled() {\n if(this.scrollEl?.scrollTop)\n {\n if(this.scrollEl?.scrollTop <= 72)\n {\n const floor = Math.floor(this.scrollEl?.scrollTop / 100)\n if(floor !== this.elementDate && floor >= 0)\n {\n this.elementDate = floor;\n }\n }\n else {\n const floor = Math.floor((this.scrollEl?.scrollTop + 148) / 248)\n if(floor !== this.elementDate && floor >= 0)\n {\n this.elementDate = floor;\n }\n }\n }\n }\n\n reservationFormId: number | null = null;\n scrollId: string | null = null;\n reservationFormOpen = false;\n\n addItem(){\n this.reservationFormId = null;\n this.scrollId = null;\n this.renderReservationModalMobile = true;\n this.reservationFormOpen = true;\n }\n\n editItem(event: any){\n this.reservationFormId = event.resId;\n this.scrollId = event.scrollId;\n this.renderReservationModalMobile = true;\n }\n\n created() {\n this.sortOptions = [\n { text: \"VReservation.arrivalDate\", value: \"arrivalDate\" },\n { text: \"VReservation.departureDate\", value: \"departureDate\" },\n { text: \"VReservation.bookingDate\", value: \"bookingDate\" }\n ];\n }\n get occupancy() {\n return this.name === \"Dashboard.Occupancy\";\n }\n\n get tabName() {\n if(this.name)\n {\n return this.$t(this.name).toString().toUpperCase();\n }\n return \"\";\n }\n\n get tabDate() {\n if(this.name === \"Reservations\" && this.reservations && this.reservations?.length > 0 && this.language && this.reservations[this.elementDate].arrivalDate !== undefined)\n {\n const day = DateTime.fromISO(this.reservations[this.elementDate].arrivalDate);\n return \" - \" + this.firstUpper(day.setLocale(this.language).weekdayLong) + \", \"\n + this.firstUpper(day.setLocale(this.language).monthShort) + \". \" + day.day\n }\n return \"\";\n }\n\n filterModalOpen = false;\n sortModalOpen = false;\n\n updateFilter(filters: any) {\n this.$emit(\"filterUpdated\", filters);\n }\n}\n\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsTableMobile.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsTableMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationsTableMobile.vue?vue&type=template&id=9b2a2f52&scoped=true&\"\nimport script from \"./ReservationsTableMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationsTableMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationsTableMobile.vue?vue&type=style&index=0&id=9b2a2f52&scoped=true&lang=scss&\"\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 \"9b2a2f52\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VBtn,VCol,VIcon,VList,VListItem,VListItemTitle,VMenu,VRow,VSwitch})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Scroll from 'vuetify/lib/directives/scroll'\ninstallDirectives(component, {Scroll})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport ReservationsTableMobile from \"@/components/ReservationsTableMobile.vue\";\nimport GlobalFilterSensitiveMixin from '@/mixins/GlobalFilterSensitiveMixin';\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { NavigationGuardNext, Route } from \"node_modules/vue-router/types/router\";\nimport { Getter } from \"vuex-class\";\nimport { DateTime } from \"luxon\";\nimport _ from \"lodash\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport { VOccupancy } from \"@/shared/models/VOccupancy\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { DashboardPeriodEnum, ReservationsGridDefaultFilterByEnum } from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n ReservationsTableMobile\n },\n beforeRouteEnter(to: Route, from: Route, next: NavigationGuardNext) {\n next((vm: Vue) => {\n const that = vm as ReservationsMobile;\n that.endpoint = to.meta?.endpoint;\n that.name = to.name ?? \"Reservations\";\n that.completedFilter = to.meta?.completedFilter;\n that.showDatePicker = to.meta?.datePicker ?? true;\n that.options.sortBy = to.name === \"Dashboard.Occupancy\" ? [\"propertyName\"] : [\"arrivalDate\"];\n that.numberOfItems = to.name === \"Dashboard.Occupancy\" ? 1000 : 25;\n });\n },\n beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n if(!this.$refs.showDatePicker)\n {\n this.$store.dispatch(\"setShowDatePicker\", true);\n }\n next();\n },\n mixins: [\n GlobalFilterSensitiveMixin\n ]\n})\nexport default class ReservationsMobile extends Vue {\n endpoint = \"/reservations\";\n name = \"Reservations\";\n completedFilter = 0;\n loading = false;\n showDatePicker = true;\n numberOfItems = 25;\n done = false;\n initialSortOrder: string[] = [];\n\n @Getter(\"reservations/dateFilterApplied\") dateFilterApplied?: boolean;\n @Getter(\"appParams/reservationsGridFiltersByDate\") reservationsGridFiltersByDate?: number;\n\n @Getter(\"calendar/currentDay\") currentDay?: DateTime;\n\n @Watch(\"currentDay\", { immediate: true })\n currentChanged(fresh: DateTime) {\n if (fresh){\n this.resetLoadMore();\n this.debouncedLoad(new Date(fresh.toISODate() ?? \"\"));\n }\n }\n\n @Watch(\"sensitiveKey\", { immediate: true })\n sensitiveKeyChanged() {\n if(this.currentDay)\n {\n this.resetLoadMore();\n this.debouncedLoad(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n @Watch(\"name\", { immediate: true })\n nameChanged() {\n if(this.currentDay)\n {\n this.debouncedLoad(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n @Watch(\"showDatePicker\", { immediate: true })\n showDatePickerChanged(fresh: boolean) {\n this.showDatePicker = fresh;\n this.$store.dispatch(\"setShowDatePicker\", fresh);\n }\n\n @Getter(\"globalFilters/filteredProperties\")\n filteredProperties?: GlobalFilterProperty[];\n get fpNum() {\n return this.filteredProperties?.length ?? 0;\n }\n\n reservationFilters = {\n reservationId: \"\",\n arrivalOrDepartureDate: \"\",\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n bookingDate: \"\",\n isFilteredByDate: null as boolean | null,\n optionExpirationDate: \"\",\n reservationHolderName: \"\",\n accomodationUnitName: \"\",\n statusId: null as number | null,\n };\n\n updateFilter(filters: any) {\n this.reservationFilters.reservationId = filters.reservationId;\n this.reservationFilters.arrivalOrDepartureDate = filters.arrivalOrDepartureDate;\n this.reservationFilters.arrivalDateFromPeriod = filters.arrivalDateFromPeriod;\n this.reservationFilters.arrivalDateToPeriod = filters.arrivalDateToPeriod;\n this.reservationFilters.departureDateFromPeriod = filters.departureDateFromPeriod;\n this.reservationFilters.departureDateToPeriod = filters.departureDateToPeriod;\n this.reservationFilters.bookingDate = filters.bookingDate;\n this.reservationFilters.isFilteredByDate = true;\n this.reservationFilters.optionExpirationDate = filters.optionExpirationDate;\n this.reservationFilters.reservationHolderName = filters.reservationHolderName;\n this.reservationFilters.accomodationUnitName = filters.accomodationUnitName;\n this.reservationFilters.statusId = filters.statusId;\n\n if(this.currentDay)\n {\n this.getReservations(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n sortOrder() {\n this.options.sortAsc[0] = !this.options.sortAsc[0];\n\n if(this.currentDay)\n {\n this.getReservations(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n created() {\n this.initialSortOrder = this.reservationsGridFiltersByDate == ReservationsGridDefaultFilterByEnum.ArrivalDate ? [\"arrivalDate\"] : [\"departureDate\"];\n }\n\n sortByOrder(event: string){\n this.options.sortBy[0] = event;\n\n if(event === \"arrivalDate\") { this.initialSortOrder = [\"arrivalDate\"] } \n else if(event === \"departureDate\") { this.initialSortOrder = [\"departureDate\"] } \n else if (event === \"bookingDate\") { this.initialSortOrder = [\"bookingDate\"]; }\n\n if(this.currentDay) {\n this.getReservations(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n @Watch(\"dateFilterApplied\")\n isDateFilterApplied() {\n if(this.currentDay){\n this.getReservations(new Date(this.currentDay.toISODate() ?? \"\"));\n }}\n \n reservations: any[] = [];\n\n debouncedLoad = _.debounce(this.getReservations, 200);\n\n async getReservations(date: Date): Promise {\n this.loading = true;\n const res = await Vue.axios.get>(this.endpoint, {\n params: this.queryParams(date),\n });\n\n this.reservations = res.data.result;\n if(this.occupancy)\n {\n this.reservations = this.transformItems(this.reservations);\n if(this.options.sortAsc[0])\n {\n this.reservations.sort();\n }\n else {\n this.reservations.sort().reverse();\n }\n }\n\n if(res.data.result.length < this.numberOfItems)\n {\n this.done = true;\n }\n\n this.loading = false;\n }\n\n refreshMobileTable() {\n if(this.currentDay) {\n this.getReservations(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n options = {\n sortBy: [\"arrivalDate\"],\n sortAsc: [true]\n }\n\n queryParams(date: Date) {\n if(this.endpoint === \"/reservations\")\n {\n return {\n $skip: 0,\n $top: this.numberOfItems,\n $orderby: formatOrderbyArray(\n this.initialSortOrder,\n this.options.sortAsc.map((x) => x)\n ), \n $count: true,\n ...this.reservationFilters,\n isFilteredByDate: this.dateFilterApplied\n }\n }\n else {\n return {\n $skip: 0,\n $top: this.occupancy ? 1000 : this.numberOfItems,\n $orderby: formatOrderbyArray(\n this.occupancy ? [\"propertyName\"] : this.options.sortBy,\n this.options.sortAsc\n ),\n $count: true,\n isCompletedFilter: this.completedFilter,\n filter: DashboardPeriodEnum.OnDate, \n date: date\n }\n }\n }\n get occupancy() {\n return this.name === \"Dashboard.Occupancy\";\n }\n\n async getMoreReservations()\n {\n if(this.currentDay && !this.loading && !this.done)\n {\n this.numberOfItems += 25;\n await this.getReservations(new Date(this.currentDay.toISODate() ?? \"\"));\n }\n }\n\n transformItems(items: VOccupancy[]){\n if (this.fpNum > 1) {\n const grouped = _.groupBy(items, x => x.propertyId)\n return _.map(grouped, x => x.reduce((acc, i) => {\n return {\n ...acc,\n availableQuantity: acc.availableQuantity + i.availableQuantity,\n occupiedQuantity: acc.occupiedQuantity + i.occupiedQuantity,\n totalQuantity: acc.totalQuantity + i.totalQuantity,\n occupancyPercentage: (acc.totalQuantity + i.totalQuantity) > 0\n ? (acc.occupiedQuantity + i.occupiedQuantity) / (acc.totalQuantity + i.totalQuantity)\n : 1,\n };\n }, {\n date: x[0].date,\n propertyId: x[0].propertyId,\n propertyName: x[0].propertyName,\n availableQuantity: 0,\n occupiedQuantity: 0,\n totalQuantity: 0,\n occupancyPercentage: 0,\n })) \n } else {\n return items;\n }\n }\n\n resetLoadMore() {\n this.done = false;\n this.numberOfItems = 25;\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsMobile.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationsMobile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReservationsMobile.vue?vue&type=template&id=53712db8&scoped=true&\"\nimport script from \"./ReservationsMobile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReservationsMobile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReservationsMobile.vue?vue&type=style&index=0&id=53712db8&scoped=true&lang=scss&\"\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 \"53712db8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VFadeTransition,VOverlay,VProgressCircular})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationForm.vue?vue&type=style&index=0&id=4de1b95a&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageForm.vue?vue&type=style&index=0&id=3ccf1ca4&scoped=true&lang=scss&\"","import Vue from \"vue\";\nimport * as _ from \"lodash\";\n\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport class Transformation implements Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n\n constructor(t?: Partial) {\n this.x = t?.x ?? 0;\n this.y = t?.y ?? 0;\n this.width = t?.width ?? 0;\n this.height = t?.height ?? 0;\n }\n}\n\nlet headers: any[] = [];\nlet component: Vue | undefined;\n\nlet value: Transformation;\n\n let targetHeaderElement: HTMLElement | null = null;\n let targetHeaderElementInitialWidth: number | null = null;\n let nextHeaderElement: HTMLElement | null = null;\n let nextHeaderElementInitialWidth: number | null = null;\n\n let startingPos: [number, number] | null = null;\n let startingTransformation: Transformation | null = null;\n let draggedTransformation: Transformation | null = null;\n let mousedragFn: ((evt: MouseEvent | TouchEvent) => void) | null = null;\n\n\n function mouseupFn(event: MouseEvent | TouchEvent){\n event.cancelBubble = true;\n event.preventDefault();\n event.stopPropagation();\n \n startingPos = null;\n draggedTransformation = startingTransformation = null;\n if (mousedragFn) {\n document.removeEventListener(\"mousemove\", mousedragFn);\n document.removeEventListener(\"touchmove\", mousedragFn);\n }\n if (mouseupFn) {\n document.removeEventListener(\"mouseup\", mouseupFn);\n document.removeEventListener(\"touchend\", mouseupFn);\n }\n\n // set widths on header objects - otherwise v-data-table just resets everything (and we want to persist this as user table settings)\n if (targetHeaderElement && nextHeaderElement && headers){\n const index = [...targetHeaderElement.parentNode?.children ?? []].indexOf(targetHeaderElement);\n const tmpHeaders = _.cloneDeep(headers);\n tmpHeaders.filter(x => x.active)[index].width = targetHeaderElement.style.width;\n tmpHeaders.filter(x => x.active)[index + 1].width = nextHeaderElement.style.width;\n\n component?.$emit(\"update:headers\", tmpHeaders);\n //$emit(\"update:headers\", tmpHeaders);\n //headers = _.cloneDeep(tmpHeaders);\n }\n\n targetHeaderElement = nextHeaderElement = null;\n targetHeaderElementInitialWidth = nextHeaderElementInitialWidth = null;\n }\n\nfunction mousedown (evt: MouseEvent | TouchEvent){\n evt.cancelBubble = true;\n evt.preventDefault();\n evt.stopPropagation();\n\n // return if mouse event and not left click\n if(evt instanceof MouseEvent && (evt as MouseEvent).button != 0){\n return;\n }\n \n startingPos =\n evt instanceof MouseEvent\n ? [evt.x, evt.y]\n : [evt.touches[0].pageX, evt.touches[0].pageY];\n\n draggedTransformation = new Transformation(value ?? {});\n startingTransformation = new Transformation(value ?? {});\n\n targetHeaderElement = (evt.target as HTMLElement).parentElement;\n if(!targetHeaderElement){\n return;\n }\n nextHeaderElement = targetHeaderElement.nextElementSibling as HTMLElement;\n targetHeaderElementInitialWidth = targetHeaderElement.clientWidth;\n targetHeaderElement.style.minWidth = \"0\";\n nextHeaderElementInitialWidth = nextHeaderElement.clientWidth;\n nextHeaderElement.style.minWidth = \"0\";\n\n mousedragFn = (evt: MouseEvent | TouchEvent) => {\n evt.cancelBubble = true;\n evt.preventDefault();\n evt.stopPropagation();\n\n if (\n !(\n draggedTransformation &&\n startingTransformation &&\n startingPos\n )\n ) {\n return;\n }\n\n if (!targetHeaderElement || !targetHeaderElementInitialWidth || !nextHeaderElement || !nextHeaderElementInitialWidth){\n return;\n }\n\n // get target widths\n const xdiff = (evt instanceof MouseEvent ? evt.x : evt.touches[0].pageX) - startingPos[0];\n const targetWidth = targetHeaderElementInitialWidth + xdiff;\n const nextHeaderWidth = nextHeaderElementInitialWidth - xdiff;\n\n // set target widths\n targetHeaderElement.style.width = targetWidth + \"px\";\n nextHeaderElement.style.width = nextHeaderWidth + \"px\";\n\n // check if target widths are below minimum withs determined by v-data-table based on column content\n if(nextHeaderWidth < nextHeaderElement.clientWidth){\n targetHeaderElement.style.width = (targetWidth - (nextHeaderElement.clientWidth - nextHeaderWidth)) + \"px\";\n nextHeaderElement.style.width = nextHeaderElement.clientWidth + \"px\";\n }\n if(targetWidth < targetHeaderElement.clientWidth){\n targetHeaderElement.style.width = targetHeaderElement.clientWidth + \"px\";\n nextHeaderElement.style.width = (nextHeaderWidth - (targetHeaderElement.clientWidth - targetWidth)) + \"px\";\n }\n };\n\n if (evt instanceof MouseEvent) {\n document.addEventListener(\"mousemove\", mousedragFn);\n document.addEventListener(\"mouseup\", mouseupFn);\n } else {\n document.addEventListener(\"touchmove\", mousedragFn);\n document.addEventListener(\"touchend\", mouseupFn);\n }\n }\n\n\n\nconst directive = Vue.directive(\"resizable-table\", {\n componentUpdated: (el, binding, vnode) => {\n // waits untill DOM update\n Vue.nextTick().then(() => {\n // appends the resize handle element to all headers except last if they don't already have it\n const columns = el.querySelectorAll(\"th\");\n for (let i = 0; i < columns.length - 1; i++) {\n if (![...columns[i].children].some(x => x.classList.contains(\"resize-border\"))) {\n const elem = document.createElement(\"div\");\n elem.classList.add(\"resize-border\");\n elem.onmousedown = mousedown; //binding.value[\"mousedown\"];\n elem.ontouchstart = mousedown //binding.value[\"mousedown\"];\n elem.onclick = (evt) => { evt.cancelBubble = true; evt.preventDefault(); evt.stopPropagation(); }\n columns[i].appendChild(elem);\n }\n }\n\n // bind headers and component\n headers = binding.value[\"headers\"];\n component = vnode.context;\n\n // remove the resize handle from last header if it's there due to hidding columns etc.\n const resizeHandleOfLastHeader = [...columns[columns.length - 1].children].find(x => x.classList.contains(\"resize-border\"));\n if (resizeHandleOfLastHeader) {\n columns[columns.length - 1].removeChild(resizeHandleOfLastHeader);\n }\n });\n }\n});\n\nexport default directive;","\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport GenericPMSTableMenu from \"./GenericPMSTableMenu.vue\";\nimport SortableTable, { SortableTableHeader } from \"./SortableTableDirective\";\nimport { VDataTable } from \"vuetify/lib\";\nimport { DataOptions } from \"vuetify\";\nimport ResizableTable from \"./ResizableTableDirective\";\nimport _ from \"lodash\";\n\n@Component({\n components: {\n GenericPMSTableMenu,\n VDataTable,\n },\n directives: {\n SortableTable,\n ResizableTable,\n },\n})\nexport default class SortableHeadersTable extends Vue {\n @Prop()\n headers?: SortableTableHeader[];\n @Prop()\n items?: any[];\n @Prop({ default: null })\n expandedRow?: SortableTableHeader | null;\n\n @Prop() options?: DataOptions;\n @Prop() tableName?: string;\n @Prop({ default: false }) settingsOpen?: boolean;\n\n @Prop({ default: true })\n translateHeaders?: boolean;\n\n key = 0;\n\n get activeHeaders() {\n if (!this.headers) {\n return [];\n }\n\n if (this.translateHeaders) {\n return [\n ...this.headers\n .filter((x) => x.active)\n .map((x) => ({ ...x, text: this.$t(x.text) })),\n ];\n } else {\n return [...this.headers.filter((x) => x.active)];\n }\n }\n\n sortTheHeaders(evt: any) {\n if (!this.headers) {\n return;\n }\n\n const headersTmp = _.cloneDeep(this.headers);\n\n const originItem = headersTmp.filter((x) => x.active)[evt.oldIndex];\n const targetItem = headersTmp.filter((x) => x.active)[evt.newIndex];\n\n const originIndex = headersTmp.indexOf(originItem);\n const targetIndex = headersTmp.indexOf(targetItem);\n\n headersTmp.splice(targetIndex, 0, headersTmp.splice(originIndex, 1)[0]);\n\n this.$emit(\"update:headers\", headersTmp);\n }\n\n @Watch(\"headers\", { deep: true })\n headersWatch(fresh: any[], old: any[]) {\n if (fresh && old && !_.isEqual(fresh, old)) {\n this.key++;\n }\n }\n\n get genericPMSTableMenuListeners() {\n const toReturn: any = {};\n\n toReturn[\"update:open\"] = ($event: any) =>\n this.$emit(\"update:settingsOpen\", $event);\n toReturn[\"update:columns\"] = this.$listeners[\"update:headers\"];\n if (this.expandedRow) {\n toReturn[\"update:expandedRow\"] = this.$listeners[\"update:expandedRow\"];\n }\n\n toReturn[\"update:options\"] = this.$listeners[\"update:options\"];\n toReturn[\"loaded:settings\"] = () => this.$emit(\"loaded\");\n\n if (this.$listeners[\"menu:excel\"] != undefined) {\n toReturn[\"menu:excel\"] = this.$listeners[\"menu:excel\"];\n }\n\n return toReturn;\n }\n\n render() {\n return this.$createElement(\n \"div\",\n {\n class: \"sortable-headers-table-wrapper\",\n },\n [\n this.$createElement(\"GenericPMSTableMenu\", {\n props: {\n columns: this.headers,\n tableName: this.tableName,\n expandedRow: this.expandedRow,\n open: this.settingsOpen,\n options: this.options,\n hasExportToExcel: this.$listeners[\"menu:excel\"] != undefined,\n },\n on: {\n ...this.genericPMSTableMenuListeners,\n },\n }),\n this.$createElement(\"v-data-table\", {\n props: {\n ...this.$attrs,\n ...this.$props,\n items: this.items,\n headers: this.activeHeaders,\n },\n on: {\n ...this.$listeners,\n },\n directives: [\n {\n name: \"sortable-table\",\n value: { onEnd: this.sortTheHeaders },\n },\n {\n name: \"resizable-table\",\n value: { headers: this.headers },\n },\n ],\n scopedSlots: {\n ...this.$scopedSlots,\n },\n key: this.key,\n ref: \"dataTable\",\n class: \"resizable-table\",\n }),\n ]\n );\n }\n @Watch(\"items\")\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n}\n","var render, staticRenderFns\nimport script from \"./SortableHeadersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./SortableHeadersTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SortableHeadersTable.vue?vue&type=style&index=0&id=45e7d154&scoped=true&lang=scss&\"\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 \"45e7d154\",\n null\n \n)\n\nexport default component.exports","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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortableHeadersTable.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortableHeadersTable.vue?vue&type=script&lang=ts&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeOBCategoriesForm.vue?vue&type=style&index=0&id=205d2bb7&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScannerDebug.vue?vue&type=style&index=0&id=07687634&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoForm.vue?vue&type=style&index=0&id=2c1fed30&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\",class:!_vm.$vuetify.theme.dark ? 'theme--light' : ''},[_c('v-btn',{attrs:{\"disabled\":_vm.subtractDisabled,\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.subtract()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-minus\")])],1),_c('div',{staticClass:\"value\",class:_vm.$vuetify.theme.dark ? 'theme--dark' : ''},[_vm._v(_vm._s(_vm.value))]),_c('v-btn',{attrs:{\"disabled\":_vm.addDisabled,\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.add()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\n\n@Component\nexport default class MoreLessSelect extends Vue {\n @Prop({ default: 0}) value?: number;\n @Prop({ default: false }) addDisabled?: boolean;\n @Prop({ default: false }) subtractDisabled?: boolean;\n\n add() {\n this.$emit(\"add\");\n if (this.value != undefined){\n this.$emit(\"input\", this.value + 1);\n }\n }\n\n subtract() {\n this.$emit(\"subtract\");\n if (this.value != undefined){\n this.$emit(\"input\", this.value - 1);\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MoreLessSelect.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MoreLessSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MoreLessSelect.vue?vue&type=template&id=53ceda70&scoped=true&\"\nimport script from \"./MoreLessSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./MoreLessSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MoreLessSelect.vue?vue&type=style&index=0&id=53ceda70&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 \"53ceda70\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('router-view',{key:_vm.$route.name}),(_vm.displayPWAInstallPopup)?_c('v-banner',{attrs:{\"color\":\"primary\",\"dark\":\"\",\"id\":\"install-banner\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"align\":\"left\",\"cols\":\"8\"}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-phone-laptop\")]),_c('span',{attrs:{\"align\":\"left\",\"id\":\"banner-text-wrapper\"}},[_vm._v(_vm._s(_vm.$t(\"PWA.InstallMessage\")))])],1),_c('v-col',{attrs:{\"align\":\"right\",\"cols\":\"4\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.dismissInstall}},[_vm._v(_vm._s(_vm.$t(\"PWA.Dismiss\")))]),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.install}},[_vm._v(_vm._s(_vm.$t(\"PWA.Install\")))])],1)],1)],1)],1):_vm._e(),(_vm.displayNewVersionPopup)?_c('div',{attrs:{\"id\":\"install-banner-overlay\"}}):_vm._e(),(_vm.displayNewVersionPopup)?_c('v-banner',{attrs:{\"color\":\"primary\",\"dark\":\"\",\"id\":\"install-banner\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"align\":\"left\",\"cols\":\"8\"}},[_c('div',{staticClass:\"refresh-message\"},[_c('v-icon',[_vm._v(\"fa-fw fa-arrow-alt-circle-up\")]),_c('div',{attrs:{\"align\":\"left\",\"id\":\"banner-text-wrapper\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"PWA.UpdateMessage\"))+\" \")])],1),(_vm.updateInfoMessage)?_c('div',{staticClass:\"refresh-message\"},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"fa-fw fa-info-circle\")]),_c('div',{attrs:{\"align\":\"left\",\"id\":\"banner-text-wrapper\"},domProps:{\"innerHTML\":_vm._s(_vm.updateInfoMessage)}})],1):_vm._e()]),_c('v-col',{attrs:{\"align\":\"right\",\"cols\":\"4\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.refreshButtonDisabled,\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.refreshApp}},[_vm._v(_vm._s(_vm.$t(\"PWA.Refresh\")))])],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport { BeforeInstallPromptEvent, VuePwaInstallMixin } from \"vue-pwa-install\";\n\n@Component({\n mixins: [VuePwaInstallMixin],\n name: \"App\",\n})\nexport default class Home extends Vue {\n showPWAInstallBanner = false;\n registration: ServiceWorkerRegistration | null = null;\n updateExists = false;\n refreshing = false;\n\n @Action(\"language/refreshLanguages\") refreshLanguages?: () => void;\n\n @Getter(\"language/language\") language?: string;\n @Getter(\"pwaInstallEvent\") deferredPrompt:\n | BeforeInstallPromptEvent\n | undefined\n | null;\n @Action(\"setPwaInstallEvent\") setPwaInstallEvent: any;\n @Action(\"language/setLanguage\") setLanguage?: (lang: string) => void;\n @Watch(\"language\")\n languageChanged(val: string, old: string) {\n if (val && val !== old) {\n this.$vuetify.lang.current = val.split(\"-\")[0];\n }\n }\n\n @Getter(\"isDarkTheme\") isDarkTheme?: boolean;\n @Watch(\"isDarkTheme\") ThemeChanged(val: boolean) {\n this.$vuetify.theme.dark = val;\n }\n\n get isMobile() {\n return this.$vuetify.breakpoint.mobile;\n }\n\n async created() {\n if (this.refreshLanguages){\n this.refreshLanguages();\n }\n\n this.$on(\"canInstall\", (event: BeforeInstallPromptEvent) => {\n // Prevent Chrome 67 and earlier from automatically showing the prompt:\n event.preventDefault();\n\n // Stash the event so it can be triggered later:\n this.setPwaInstallEvent(event);\n\n if (\n this.$cookies.get(\"pwa-dismiss\") !== undefined &&\n this.$cookies.get(\"pwa-dismiss\") !== null\n ) {\n this.showPWAInstallBanner = false;\n return;\n }\n\n //show only for mobile\n if (this.isMobile) {\n this.showPWAInstallBanner = true;\n }\n });\n\n this.promptInstall();\n\n //event listener for service worker update (new version of app is detected) - emitted in registerServiceWorker.ts\n document.addEventListener(\n \"swUpdated\",\n this.updateAvailable as EventListener,\n { once: true }\n );\n\n this.$vuetify.theme.dark = this.isDarkTheme || false;\n\n await this.$store.dispatch(\"language/getTextResource\");\n this.$vuetify.lang.current =\n this.$store.getters[\"language/language\"].split(\"-\")[0];\n\n //actual refresh functionality - happens after we've told the new service worker to skip waiting and become active, emits controllerchange event.\n navigator.serviceWorker.addEventListener(\"controllerchange\", () => {\n if (this.refreshing) return;\n this.refreshing = true;\n window.location.reload();\n });\n\n if (this.language && this.setLanguage) {\n this.setLanguage(this.language);\n }\n }\n\n mounted() {\n if (this.refreshButtonDisabled) {\n if (!this.refreshButtonDisabledTimer) this.refreshButtonDisabled = false;\n else {\n setTimeout(() => {\n this.refreshButtonDisabled = false;\n }, this.refreshButtonDisabledTimer * 1000);\n }\n }\n }\n\n get displayPWAInstallPopup() {\n return this.showPWAInstallBanner && this.deferredPrompt;\n }\n\n get displayNewVersionPopup() {\n return this.updateExists && !this.displayPWAInstallPopup;\n }\n\n updateAvailable(event: SWRCustomEvent) {\n this.registration = event.detail;\n this.updateExists = true;\n }\n\n refreshApp() {\n this.updateExists = false;\n if (!this.registration || !this.registration.waiting) return;\n\n this.registration.waiting.postMessage({ type: \"SKIP_WAITING\" });\n }\n\n dismissRefresh() {\n this.updateExists = false;\n }\n\n promptInstall() {\n // Show the prompt:\n // Wait for the user to respond to the prompt:\n this.deferredPrompt?.userChoice.then((choiceResult) => {\n if (choiceResult.outcome === \"accepted\") {\n this.showPWAInstallBanner = false;\n } else {\n this.showPWAInstallBanner = false;\n }\n this.setPwaInstallEvent(null);\n });\n }\n\n async dismissInstall() {\n this.$cookies.set(\"pwa-dismiss\", \"dismissed\", { expires: \"15d\" });\n\n this.showPWAInstallBanner = false;\n }\n\n async install() {\n this.deferredPrompt?.prompt();\n }\n\n // when removing this message just remove the text and set the timer to 0, everything else can remain in case we ever need to write another update message\n refreshButtonDisabled = true;\n refreshButtonDisabledTimer = 0; // in seconds\n get updateInfoMessage() {\n //switch (this.language) {\n // case \"hr-HR\":\n // return `Ova verzija donosi značajna poboljšanja vezana uz evidenciju plaćanja predujmovnih politika. Promjene možete vidjeti u dokumentaciji predujmovnih politika. Za sva ostala pitanja, molimo Vas da nas kontaktirate na support@nokumo.net.`;\n // case \"en-GB\":\n // return `This version features noteworthy improvements to the workflow surrounding the handling of prepayment policies. To learn more about the changes, please visit the prepayment policies documentation. For any additional questions, please contact us at support@nokumo.net.`;\n // case \"sl-SI\":\n // return `Ta različica prinaša pomembne izboljšave v zvezi z evidenco plačil politike predplačil. Spremembe si lahko ogledate v dokumentaciji politike predplačil. Za vsa dodatna vprašanja nas prosimo kontaktirajte na support@nokumo.net.`;\n //}\n\n return \"\";\n }\n}\n\ninterface SWRCustomEvent extends Event {\n detail: ServiceWorkerRegistration;\n}\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--0-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--0-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=10b7b3b2&scoped=true&\"\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=10b7b3b2&scoped=true&lang=scss&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&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 \"10b7b3b2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBanner } from 'vuetify/lib/components/VBanner';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBanner,VBtn,VCol,VContainer,VIcon,VRow})\n","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib\";\nimport { defaultLanguage } from \"./i18n\";\n\nVue.use(Vuetify);\nimport hr from \"vuetify/src/locale/hr\";\nimport en from \"vuetify/src/locale/en\";\n\nconst vuetify = new Vuetify({\n icons: {\n iconfont: \"fa\",\n },\n lang: {\n current: defaultLanguage.split(\"-\")[0],\n locales: { hr, en },\n },\n theme: {\n // keep in mind that changing theese,\n // you should might need to change them in @/assets/scss/variables.scss as well\n // reason for duplicates is there\n themes: {\n light: {\n primary: {\n base: \"#2790E5\",\n lighten1: \"#A0D2FA\",\n lighten2: \"#D9EDFD\",\n },\n secondary: {\n base: \"#004BB0\",\n darken1: \"#17437F\",\n },\n accent: \"#C638ED\",\n error: {\n base: \"#E0365D\",\n lighten1: \"#EF9AAE\",\n darken1: \"#B32848\",\n },\n warning: {\n base: \"#F5B942\",\n lighten1: \"#FADBA0\",\n },\n success: {\n base: \"#4EC48A\",\n lighten1: \"#A6E1C4\",\n },\n black: {\n base: \"#22262C\",\n lighten1: \"#393B3E\",\n lighten2: \"#838486\",\n lighten3: \"#E6E6E7\",\n },\n },\n dark: {\n primary: {\n base: \"#42A5F5\",\n lighten1: \"#A0D2FA\",\n lighten2: \"#D9EDFD\",\n },\n secondary: {\n base: \"#004BB0\",\n darken1: \"#17437F\",\n darken2: \"#071E3D\",\n },\n accent: \"#9E18C0\",\n error: {\n base: \"#E0365D\",\n lighten1: \"#EF9AAE\",\n darken1: \"#B32848\",\n },\n warning: {\n base: \"#F5B942\",\n lighten1: \"#FADBA0\",\n },\n success: {\n base: \"#4EC48A\",\n lighten1: \"#A6E1C4\",\n },\n black: {\n base: \"#22262C\",\n lighten1: \"#393B3E\",\n lighten2: \"#838486\",\n lighten3: \"#E6E6E7\",\n },\n },\n },\n },\n});\n\nexport default vuetify;\n","import Vue from \"vue\";\nimport axios, { AxiosError } from \"axios\";\nimport VueAxios from \"vue-axios\";\nimport { Store } from \"vuex\";\nimport VueRouter from \"vue-router\";\nimport { ApiErrors, ApiErrorsRuleBroken } from \"@/shared/models/apiErrors\";\nimport { AuthSuccess } from \"@/store/modules/auth\";\nimport { DateTime } from \"luxon\";\n\nconst api = axios.create({\n baseURL: `/api`,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n});\n\nVue.use(VueAxios, api);\n\nexport function setupUseInterceptors(\n store: Store,\n router: VueRouter\n): void {\n api.interceptors.request.use((config) => {\n const token = store.getters[\"auth/accessToken\"];\n config.headers.Authorization = `Bearer ${token}`;\n config.headers[\"accept-language\"] = store.getters[\"language/language\"];\n\n // add users local time to every axios request\n config.params = config.params ?? {};\n config.params['usersLocalTime'] = DateTime.local().toISO();\n\n return config;\n });\n\n api.interceptors.response.use(\n (response) => {\n if (response.status === 200 || response.status === 201) {\n return Promise.resolve(response);\n } else {\n return Promise.reject(response);\n }\n },\n (error: AxiosError) => {\n if (error.response && error.response.status) {\n switch (error.response.status) {\n case 400: {\n if (error.response.data instanceof Blob) {\n const data = error.response.data as Blob\n data.text().then(x => {\n const parsed = JSON.parse(x) as ApiErrors;\n if (parsed.code === \"RuleBroken\") {\n const brokenRules =\n (parsed as ApiErrorsRuleBroken).brokenRules || [];\n brokenRules\n .filter(x => x.name !== \"HandleRefreshToken.InvalidToken\")\n .forEach((x) =>\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: x.name,\n timeout: 5000,\n localize: true,\n })\n );\n } else {\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Error.400\",\n timeout: 5000,\n localize: true,\n });\n }\n });\n }\n else {\n const data = error.response.data as ApiErrors;\n if (data.code === \"RuleBroken\") {\n const brokenRules =\n (data as ApiErrorsRuleBroken).brokenRules || [];\n brokenRules\n .filter(x => x.name !== \"HandleRefreshToken.InvalidToken\")\n .forEach((x) =>\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: x.name,\n timeout: 5000,\n localize: true,\n })\n );\n } else if (data.code === \"Warning\") {\n const warnings =\n (data as ApiErrorsRuleBroken).warnings || [];\n warnings\n .filter(x => x.name !== \"HandleRefreshToken.InvalidToken\")\n .forEach((x) =>\n store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: x.name,\n timeout: 5000,\n localize: true,\n })\n );\n } else {\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Error.400\",\n timeout: 5000,\n localize: true,\n });\n }\n }\n break;\n }\n case 401:\n return store.dispatch(\"auth/refresh\", false).then((res: AuthSuccess) => {\n if (res.isSignedIn) {\n const token = store.getters[\"auth/accessToken\"];\n error.config.headers.Authorization = `Bearer ${token}`;\n return api.request(error.config);\n } else {\n if (router.currentRoute.name !== \"Signin\") {\n router.push({ name: \"Signin\" });\n }\n return Promise.reject(error.response);\n }\n });\n case 403:\n router.replace({\n path: \"/signin\",\n query: { redirect: router.currentRoute.fullPath },\n });\n break;\n case 404:\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Error.404\",\n timeout: 5000,\n localize: true,\n });\n break;\n case 405:\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Error.405\",\n timeout: 5000,\n localize: true,\n });\n break;\n case 500: {\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Error.500\",\n timeout: 5000,\n localize: true,\n });\n break;\n }\n }\n return Promise.reject(error.response);\n } else {\n store.dispatch(\"showNotification\", {\n color: \"error\",\n message: \"Could not reach server\",\n timeout: 5000,\n localize: true,\n });\n return Promise.reject(null);\n }\n }\n );\n}\n","import Vue from 'vue'\nimport * as VueGoogleMaps from 'vue2-google-maps-withscopedautocomp'\nimport creds from '../../certs/credentials.json';\n\nVue.use(VueGoogleMaps, {\n load: {\n key: creds.GoogleApiKey,\n libraries: 'places', // This is required if you use the Autocomplete plugin\n // OR: libraries: 'places,drawing'\n // OR: libraries: 'places,drawing,visualization'\n // (as you require)\n\n // If you want to set the version, you can do so:\n // v: '3.26',\n },\n\n // If you intend to programmatically custom event listener code\n // (e.g. `this.$refs.gmap.$on('zoom_changed', someFunc)`)\n // instead of going through Vue templates (e.g. ``)\n // you might need to turn this on.\n // autobindAllEvents: false,\n\n // If you want to manually install components, e.g.\n // import {GmapMarker} from 'vue2-google-maps/src/components/marker'\n // Vue.component('GmapMarker', GmapMarker)\n // then set installComponents to 'false'.\n // If you want to automatically install all the components this property must be set to 'true':\n installComponents: true\n})","/* eslint-disable */\n\nimport { register } from 'register-service-worker'\nimport router from './router/index'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker-nokumo.js`, {\n ready() {},\n registered(e) {\n // once service router is registered - we want it to check for updates and update on each route change.\n // if update was available, service worker updates and 'updated' method below is triggered.\n // this dispatches 'swUpdated' event which is handled in App.vue - banner is shown letting user know the app\n // needs to be refreshed to load the latest service worker version.\n router.afterEach((to, from) => { \n e.update();\n });\n },\n cached() {},\n updatefound() {},\n updated(registration: ServiceWorkerRegistration) {\n document.dispatchEvent(new CustomEvent('swUpdated', { detail: registration }))\n },\n offline() {},\n error(error) {\n console.error('Error during service worker registration:', error)\n }\n })\n}\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport vuetify from \"./plugins/vuetify\";\nimport i18n from \"./plugins/i18n\";\nimport { setupUseInterceptors } from \"./plugins/axios\";\nimport VScrollSync from 'v-scroll-sync';\nimport \"roboto-fontface/css/roboto/roboto-fontface.css\";\nimport \"./assets/font-awesome/css/all.min.css\";\nimport TextHighlight from 'vue-text-highlight';\nimport '@/plugins/vue2-google-maps';\nimport VueCookies from \"vue-cookies-ts\";\nimport \"./registerServiceWorker\";\n\nVue.config.productionTip = false;\n\nVue.use(VScrollSync);\nVue.use(VueCookies);\nVue.component('text-highlight', TextHighlight);\n\nsetupUseInterceptors(store, router);\n\nnew Vue({\n router,\n store,\n i18n,\n vuetify,\n render: h => h(App)\n}).$mount(\"#app\");","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesLOSRules.vue?vue&type=style&index=0&id=6a1f2bd4&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"evisitors\"},[_c('SortableHeadersTable',{ref:\"dataTable\",staticClass:\"row-double-clickable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"id\",\"show-select\":\"\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":_vm.tableName || 'evisitors'},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event},\"dblclick:row\":_vm.rowDoubleClick,\"checkInSelected\":_vm.checkInSelected},scopedSlots:_vm._u([{key:\"header.arrivalDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrDepartureDate),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrDepartureDate\", $$v)},expression:\"filters.arrivalOrDepartureDate\"}})]}},{key:\"item.arrivalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex\"},[(item.arrivalDate)?_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(item.arrivalTime ? item.arrivalTime.substr(0, 5) : \"\")+\" \")])]):_vm._e(),_c('div',{staticClass:\"mx-1\"},[_vm._v(\"-\")]),(item.departureDate)?_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(item.departureTime ? item.departureTime.substr(0, 5) : \"\")+\" \")])]):_vm._e()])]}},{key:\"header.customerName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.customerName),callback:function ($$v) {_vm.$set(_vm.filters, \"customerName\", $$v)},expression:\"filters.customerName\"}})]}},{key:\"header.eVisitorFacilityName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.eVisitorFacilityName),callback:function ($$v) {_vm.$set(_vm.filters, \"eVisitorFacilityName\", $$v)},expression:\"filters.eVisitorFacilityName\"}})]}},{key:\"item.eVisitorFacilityName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('TableCellUnitTypeDisplay',{attrs:{\"item\":item}})]}},{key:\"header.reservationId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":_vm.$t(header.text),\"type\":\"number\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationId),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationId\", _vm._n($$v))},expression:\"filters.reservationId\"}})]}},{key:\"header.eVisitorPaymentCategory\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.eVisitorPaymentCategories,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.paymentCategoryId),callback:function ($$v) {_vm.$set(_vm.filters, \"paymentCategoryId\", $$v)},expression:\"filters.paymentCategoryId\"}})]}},{key:\"item.eVisitorPaymentCategory\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.eVisitorPaymentCategory))+\" \")])]}},{key:\"header.eVisitorArrivalOrganizationType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.eVisitorArrivalOrganizationTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrganizationTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrganizationTypeId\", $$v)},expression:\"filters.arrivalOrganizationTypeId\"}})]}},{key:\"item.eVisitorArrivalOrganizationType\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.eVisitorArrivalOrganizationType))+\" \")])]}},{key:\"header.identificationDocumentTypeId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.identificationDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.identificationDocumentTypeId),callback:function ($$v) {_vm.$set(_vm.filters, \"identificationDocumentTypeId\", $$v)},expression:\"filters.identificationDocumentTypeId\"}})]}},{key:\"item.identificationDocumentTypeId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( _vm.getIdentificationDocumentType(item.identificationDocumentTypeId) ))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(item.identificationDocumentNumber)+\" \")])])]}},{key:\"header.dateOfBirth\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"editable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.filters, \"dateOfBirth\", $$v)},expression:\"filters.dateOfBirth\"}})]}},{key:\"item.dateOfBirth\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.dateOfBirth)?_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.dateOfBirth))))]):_vm._e()]}},{key:\"header.countryOfBirthId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.countries,\"item-text\":function (x) { return _vm.$t((\"Country.Official.\" + (x.isoThreeLetterCode))); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.countryOfBirthId),callback:function ($$v) {_vm.$set(_vm.filters, \"countryOfBirthId\", $$v)},expression:\"filters.countryOfBirthId\"}})]}},{key:\"item.countryOfBirthId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.getCountryName(item.countryOfBirthId)))])]}},{key:\"header.citizenshipId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.countries,\"item-text\":function (x) { return _vm.$t((\"Country.Official.\" + (x.isoThreeLetterCode))); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.citizenshipId),callback:function ($$v) {_vm.$set(_vm.filters, \"citizenshipId\", $$v)},expression:\"filters.citizenshipId\"}})]}},{key:\"item.citizenshipId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.getCountryName(item.citizenshipId)))])]}},{key:\"header.countryOfResidenceId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.countries,\"item-text\":function (x) { return _vm.$t((\"Country.Official.\" + (x.isoThreeLetterCode))); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.filters, \"countryOfResidenceId\", $$v)},expression:\"filters.countryOfResidenceId\"}})]}},{key:\"item.countryOfResidenceId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.getCountryName(item.countryOfResidenceId)))])]}},{key:\"header.genderId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.genders,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":\"id\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.genderId),callback:function ($$v) {_vm.$set(_vm.filters, \"genderId\", $$v)},expression:\"filters.genderId\"}})]}},{key:\"item.genderId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(_vm.getGenderText(item.genderId))))])]}},{key:\"header.eVisitorStatusId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.eVisitorStatuses,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":\"value\",\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.status),callback:function ($$v) {_vm.$set(_vm.filters, \"status\", $$v)},expression:\"filters.status\"}})]}},{key:\"item.eVisitorStatusId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(_vm.getStatusText(item.eVisitorStatusId))))])]}},{key:\"item.eVisitorValidationMessages\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.isMarkedFailed(item) && !_vm.hasBackendErrors(item))?_c('div',[_c('v-icon',[_vm._v(\"fas fa-check-circle\")])],1):_c('v-tooltip',{attrs:{\"open-on-hover\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({class:{ 'error--text': _vm.isMarkedFailed(item) }},'v-icon',attrs,false),on),[_vm._v(\" far fa-exclamation-circle \")])]}}],null,true)},[(_vm.isMarkedFailed(item))?_c('div',[_vm._l((item.checkinFeedbackErrors),function(err,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(err, { eVisitorServiceName: _vm.eVisitorIntegrationName }))+\" \")])}),_vm._l((item.checkoutFeedbackErrors),function(err,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(err, { eVisitorServiceName: _vm.eVisitorIntegrationName }))+\" \")])})],2):_c('div',_vm._l((item.eVisitorValidationMessages.filter(\n function (x) { return x !== ''; }\n )),function(message,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(message, { eVisitorServiceName: _vm.eVisitorIntegrationName }))+\" \")])}),0)])]}},{key:\"item.isSelfCheckIn\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":item.isSelfCheckIn,\"disabled\":\"\"}})]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fal fa-fw fa-ellipsis-v\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.openItemDetails(item)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pen\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Edit\")))])],1)],1),(!_vm.reservationId)?_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('open-reservation', item.reservationId)}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-concierge-bell\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"Open reservation\")))])],1)],1):_vm._e()],1)],1)]}},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-concierge-bell\"}})],1):_vm._e()]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('v-dialog',{attrs:{\"max-width\":\"400px\"},model:{value:(_vm.reasonOpen),callback:function ($$v) {_vm.reasonOpen=$$v},expression:\"reasonOpen\"}},[_c('v-form',{ref:\"reasonForm\",model:{value:(_vm.reasonFormValid),callback:function ($$v) {_vm.reasonFormValid=$$v},expression:\"reasonFormValid\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.reasonTitle, { eVisitorServiceName: _vm.eVisitorIntegrationName }))+\" \")]),_c('v-card-text',[_c('v-textarea',{attrs:{\"rules\":_vm.rules.reason,\"rows\":3},model:{value:(_vm.reason),callback:function ($$v) {_vm.reason=$$v},expression:\"reason\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"mh-1\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.reasonFormValid},on:{\"click\":_vm.reasonAction}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save\"))+\" \")]),_c('v-btn',{staticClass:\"mh-1\",on:{\"click\":function($event){_vm.reasonOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1),_c('div',{staticClass:\"buttons d-flex\"},[(_vm.status === 'notCheckedIn' || !!_vm.reservationId)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\",\"disabled\":_vm.checkInDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.checkInSelected}},[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.CheckInSelected\"))+\" \")]):_vm._e(),(_vm.status === 'checkedIn' || !!_vm.reservationId)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\",\"disabled\":_vm.checkOutDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.checkOutSelected}},[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.CheckOutSelected\"))+\" \")]):_vm._e(),(_vm.status != 'checkedOut')?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"primary\",\"disabled\":_vm.multipleEditDisabled,\"loading\":_vm.saving},on:{\"click\":_vm.openMultipleEdit}},[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.ChangeInformation\"))+\" \")]):_vm._e(),(_vm.status === 'checkedIn' || !!_vm.reservationId)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"disabled\":!_vm.anySelected || !_vm.allSelectedAreCheckedIn,\"loading\":_vm.saving},on:{\"click\":_vm.revertEVisitorCheckIn}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel checkIn\"))+\" \")]):_vm._e(),(_vm.status === 'checkedOut' || !!_vm.reservationId)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"disabled\":!_vm.anySelected || !_vm.allSelectedAreCheckedOut,\"loading\":_vm.saving},on:{\"click\":_vm.revertEVisitorCheckOut}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel checkOut\"))+\" \")]):_vm._e(),(_vm.showSelfCheckInButton)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"loading\":_vm.saving},on:{\"click\":function($event){_vm.selfCheckInModalOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"SelfCheckInLink\"))+\" \")]):_vm._e(),(_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR)?_c('EVisitorReportDialog'):_vm._e()],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.selfCheckInModalOpen),callback:function ($$v) {_vm.selfCheckInModalOpen=$$v},expression:\"selfCheckInModalOpen\"}},[_c('v-card',[_c('v-card-title',{staticStyle:{\"padding-bottom\":\"0px\"}},[_vm._v(_vm._s(_vm.$t(\"SelfCheckInLink\")))]),_c('v-card-text',_vm._l((_vm.selfCheckInLinks),function(link,index){return _c('div',{key:index},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-text-field',{attrs:{\"value\":link,\"readonly\":\"\",\"outlined\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('span',{staticStyle:{\"padding\":\"12px\",\"display\":\"flex\"}},[_c('v-btn',{on:{\"click\":function($event){$event.stopPropagation();return _vm.copyLink(link)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Copy\"))+\" \"),_c('span',{staticStyle:{\"padding-left\":\"5px\"}},[_c('v-icon',{attrs:{\"dense\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-copy\")])],1)])],1)])],1)],1)}),0),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.selfCheckInModalOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('CheckInOutEditForm',{attrs:{\"checkInCustomerDataId\":_vm.itemId,\"open\":_vm.editFormOpen},on:{\"update:open\":function($event){_vm.editFormOpen=$event},\"refreshTable\":_vm.callRefresh,\"saved\":function($event){return _vm.resetFeedbackErrorsFor([$event])}}}),_c('MultipleGuestsEditForm',{attrs:{\"open\":_vm.multipleEditOpen,\"guestIds\":_vm.multipleEditIds,\"type\":_vm.multipleEditFormType,\"anySelectedIsCheckedIn\":_vm.anySelectedIsCheckedIn},on:{\"update:open\":function($event){_vm.multipleEditOpen=$event},\"refresh\":_vm.callRefresh,\"saved\":function($event){return _vm.resetFeedbackErrorsFor(_vm.multipleEditIds)},\"checkInSelected\":_vm.checkInSelected}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{staticClass:\"global-properties\",attrs:{\"open\":_vm.open,\"initial\":_vm.initial,\"watched\":_vm.current,\"is-watched-valid\":_vm.isFormValid},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"form-actions\",class:{ 'theme--dark': _vm.$vuetify.theme.dark }},[(_vm.type === 'checkIn')?_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.isFormValid,\"color\":\"primary\",\"loading\":_vm.loading},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Save\")))]):_vm._e(),(_vm.type === 'checkOut')?_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.isFormValid,\"loading\":_vm.loading,\"color\":\"primary\"},on:{\"click\":_vm.updateEVisitorCheckIn}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Edit checkIn\"))+\" \")]):_vm._e(),(_vm.type === 'checkIn')?_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.isFormValid,\"color\":\"primary\",\"loading\":_vm.loading},on:{\"click\":_vm.checkIn}},[_vm._v(_vm._s(_vm.$t(\"Check in\")))]):_vm._e(),(_vm.type === 'checkOut')?_c('v-btn',{staticClass:\"mr-4\",attrs:{\"disabled\":!_vm.isFormValid,\"color\":\"primary\",\"loading\":_vm.loading},on:{\"click\":_vm.checkOut}},[_vm._v(_vm._s(_vm.$t(\"Check out\")))]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.loading},on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('v-toolbar',[_c('span',{staticClass:\"sidebar-title\"},[_vm._v(_vm._s(_vm.$t(\"MultipleGuestEdit\")))])]),_c('v-form',{key:_vm.fkey,staticClass:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Arrival date') + '*',\"rules\":[_vm.rules.required, _vm.rules.dateTimesOrder()],\"outlined\":\"\"},model:{value:(_vm.checkInDate),callback:function ($$v) {_vm.checkInDate=$$v},expression:\"checkInDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-in time') + '*',\"rules\":[_vm.rules.required, _vm.rules.dateTimesOrder()],\"range\":\"\",\"outlined\":\"\"},model:{value:(_vm.checkInTime),callback:function ($$v) {_vm.checkInTime=$$v},expression:\"checkInTime\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('DateField',{attrs:{\"label\":_vm.$t('Departure date') + '*',\"rules\":[_vm.rules.required, _vm.rules.dateTimesOrder()],\"outlined\":\"\"},model:{value:(_vm.checkOutDate),callback:function ($$v) {_vm.checkOutDate=$$v},expression:\"checkOutDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('TimeField',{attrs:{\"label\":_vm.$t('Check-out time') + '*',\"rules\":[_vm.rules.required, _vm.rules.dateTimesOrder()],\"range\":\"\",\"outlined\":\"\"},model:{value:(_vm.checkOutTime),callback:function ($$v) {_vm.checkOutTime=$$v},expression:\"checkOutTime\"}})],1)],1),(_vm.arrivalOrganizationTypes && _vm.arrivalOrganizationTypes.length > 0)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('Arrival organisation type') + (_vm.isHReVisitor ? '*' : ''),\"items\":_vm.arrivalOrganizationTypes,\"rules\":_vm.isHReVisitor ? [_vm.rules.required] : [],\"item-value\":\"id\",\"item-text\":\"name\"},model:{value:(_vm.eVisitorArrivalOrganizationTypeId),callback:function ($$v) {_vm.eVisitorArrivalOrganizationTypeId=$$v},expression:\"eVisitorArrivalOrganizationTypeId\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[(!_vm.anySelectedIsCheckedIn)?_c('v-autocomplete',{attrs:{\"label\":_vm.$t('Property') + '*',\"items\":_vm.properties,\"rules\":[_vm.rules.requiredIfAllSelectedAreNotCheckedIn],\"item-value\":\"propertyId\",\"item-text\":\"name\"},on:{\"change\":function($event){_vm.eVisitorFacilityId = null}},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.name)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(item.address)+\", \"+_vm._s(item.postalCodeAndCity)+\" \")])],1)],1)]}}],null,false,3275397695),model:{value:(_vm.propertyId),callback:function ($$v) {_vm.propertyId=$$v},expression:\"propertyId\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[(!_vm.anySelectedIsCheckedIn)?_c('v-select',{attrs:{\"label\":_vm.$t('eVisitor facility', {\n eVisitorServiceName: _vm.eVisitorIntegrationName,\n }) + '*',\"items\":_vm.eVisitorFacilities(_vm.propertyId),\"rules\":[_vm.rules.requiredIfAllSelectedAreNotCheckedIn],\"item-value\":\"id\",\"item-text\":function (x) { return (x.accountName ? x.accountName : x.facility); },\"item-disabled\":function (x) { return !x.status; }},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.accountName ? item.accountName : item.facility)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(item.numberOfBeds - item.numberOfCheckedInBeds)+\" / \"+_vm._s(item.numberOfBeds)+\" \")])],1)],1)]}}],null,false,3896444597),model:{value:(_vm.eVisitorFacilityId),callback:function ($$v) {_vm.eVisitorFacilityId=$$v},expression:\"eVisitorFacilityId\"}}):_vm._e()],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport { ArrivalOrganizationType } from \"@/shared/models/arrivalOrganizationType\";\nimport { GlobalFilterProperty } from \"@/store/modules/globalFilters\";\nimport {\n EVisitorFacilityService,\n eVisitorFacilityServiceFactory,\n} from \"../check-in/eVisitorFacilityService\";\nimport _ from \"lodash\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\n\n@Component({ components: { RightDrawer, DateField, TimeField } })\nexport default class MultipleGuestsEditForm extends Vue {\n fkey = 0;\n\n @Prop() open?: boolean;\n @Prop({ default: () => [] }) guestIds?: number[];\n @Prop() type?: \"checkIn\" | \"checkOut\";\n @Prop({ default: () => false }) anySelectedIsCheckedIn?: boolean;\n\n checkInDate = null as string | null;\n checkInTime = null as string | null;\n checkOutDate = null as string | null;\n checkOutTime = null as string | null;\n propertyId = null as number | null;\n eVisitorFacilityId = null as number | null;\n eVisitorArrivalOrganizationTypeId = null as number | null;\n\n get initial() {\n return {\n checkInDate: \"\",\n checkInTime: \"\",\n checkOutDate: \"\",\n checkOutTime: \"\",\n propertyId: null,\n eVisitorFacilityId: null,\n eVisitorArrivalOrganizationTypeId: null,\n };\n }\n\n get current() {\n return {\n checkInDate: this.checkInDate,\n checkInTime: this.checkInTime,\n checkOutDate: this.checkOutDate,\n checkOutTime: this.checkOutTime,\n propertyId: this.propertyId,\n eVisitorFacilityId: this.eVisitorFacilityId,\n eVisitorArrivalOrganizationTypeId: this.eVisitorArrivalOrganizationTypeId,\n };\n }\n\n isFormValid = false;\n loading = false;\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n get isHReVisitor() {\n return this.eVisitorIntegrationId === EVisitorIntegrationEnum.HR;\n }\n\n @Getter(\"codebooks/arrivalOrganizationTypes\")\n arrivalOrganizationTypes?: ArrivalOrganizationType[];\n\n @Getter(\"globalFilters/properties\")\n allUserProperties?: GlobalFilterProperty[];\n\n get properties() {\n if (!this.allUserProperties) return [] as GlobalFilterProperty[];\n return _.sortBy(this.allUserProperties, (x) => x.name);\n }\n\n eVisitorFacilityService: EVisitorFacilityService | null = null;\n\n mounted() {\n this.eVisitorFacilityService = eVisitorFacilityServiceFactory(this);\n }\n\n eVisitorFacilities(eVisitorFacilityPropertyId: number) {\n if (!eVisitorFacilityPropertyId) return [];\n\n if (this.eVisitorFacilityService) {\n if (\n !this.eVisitorFacilityService.groups.some(\n (x) => x.propertyId === eVisitorFacilityPropertyId\n )\n ) {\n this.eVisitorFacilityService.loadGroup(eVisitorFacilityPropertyId);\n }\n\n const group = this.eVisitorFacilityService.findGroup(\n eVisitorFacilityPropertyId\n )?.facilities;\n\n return _.sortBy(group, (g) =>\n g.accountName ? g.accountName : g.facility\n );\n }\n\n return [];\n }\n\n get rules() {\n const required = (value: any) => !!value || this.$t(\"Validation.Required\");\n return {\n required,\n requiredIfAllSelectedAreNotCheckedIn: (value: any) => {\n return this.anySelectedIsCheckedIn || required(value);\n },\n dateTimesOrder: () => {\n // Validation.SetCheckedInCustomers.CheckInDateTimeMustBeLessThanCheckOut\n const from =\n this.checkInDate?.substr(0, 10) + (this.checkInTime ?? \"00:00\");\n const to =\n this.checkOutDate?.substr(0, 10) + (this.checkOutTime ?? \"00:00\");\n\n return from > to\n ? this.$t(\n \"Validation.SetCheckedInCustomers.CheckInDateTimeMustBeLessThanCheckOut\"\n ).toString()\n : true;\n },\n };\n }\n\n async save() {\n await this.submitSave();\n await Vue.axios.post(\"/reservations/ReservationUpdateForMultipleGuestIds\", {\n guestIds: this.guestIds,\n });\n\n this.$emit(\"refresh\");\n }\n\n async checkIn() {\n this.loading = true;\n\n try {\n await this.submitSave();\n } catch {\n this.loading = false;\n return;\n }\n\n await this.axios\n .post(`reservations/CheckInMultipleGuestsToEVisitor`, {\n guestIds: this.guestIds,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.CheckInSuccess\"),\n timeout: 5000,\n });\n\n this.close();\n })\n .finally(() => {\n this.loading = false;\n });\n\n await Vue.axios.post(\"/reservations/ReservationUpdateForMultipleGuestIds\", {\n guestIds: this.guestIds,\n });\n\n this.$emit(\"refresh\");\n }\n\n async updateEVisitorCheckIn() {\n await this.submitSave();\n\n this.$emit(\"checkInSelected\");\n\n // the checkInSelected is handled outside\n // it should close the form at the end so loading (setting false) doesn't matter...\n this.loading = true;\n }\n\n async checkOut() {\n this.loading = true;\n\n try {\n await this.submitSave();\n } catch {\n this.loading = false;\n return;\n }\n\n await this.axios\n .post(`reservations/CheckOutMultipleGuestsToEVisitor`, {\n guestIds: this.guestIds,\n })\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.CheckOutSuccess\"),\n timeout: 5000,\n });\n\n this.close();\n })\n .finally(() => {\n this.loading = false;\n });\n\n await Vue.axios.post(\"/reservations/ReservationUpdateForMultipleGuestIds\", {\n guestIds: this.guestIds,\n });\n\n this.$emit(\"refresh\");\n }\n\n async submitSave() {\n const payload = {\n guestIds: this.guestIds,\n checkInDate: this.checkInDate,\n checkInTime: this.checkInTime,\n checkOutDate: this.checkOutDate,\n checkOutTime: this.checkOutTime,\n eVisitorFacilityId: this.eVisitorFacilityId,\n eVisitorArrivalOrganizationTypeId: this.eVisitorArrivalOrganizationTypeId,\n isForCheckOut: this.type === \"checkOut\",\n };\n\n this.loading = true;\n await Vue.axios\n .post(\"/reservations/EVisitorUpdateMultipleGuests\", payload)\n .then(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"EVisitor.SaveSuccess\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.loading = false;\n });\n this.$emit(\"saved\");\n }\n\n @Watch(\"open\")\n openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.fkey++;\n this.loading = false;\n\n // reset fields values\n this.checkInDate = null;\n this.checkInTime = null;\n this.checkOutDate = null;\n this.checkOutTime = null;\n this.eVisitorFacilityId = null;\n this.propertyId = null;\n this.eVisitorArrivalOrganizationTypeId = null;\n }\n }\n\n close() {\n this.$emit(\"update:open\", false);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleGuestsEditForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleGuestsEditForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultipleGuestsEditForm.vue?vue&type=template&id=6a3fa7e6&scoped=true&\"\nimport script from \"./MultipleGuestsEditForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultipleGuestsEditForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MultipleGuestsEditForm.vue?vue&type=style&index=0&id=6a3fa7e6&scoped=true&lang=scss&\"\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 \"6a3fa7e6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAutocomplete,VBtn,VCol,VForm,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VRow,VSelect,VSpacer,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600\"},model:{value:(_vm.modalOpen),callback:function ($$v) {_vm.modalOpen=$$v},expression:\"modalOpen\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.modalTitle))]),_c('v-card-text',[_c('span',[_vm._v(_vm._s(_vm.modalMessage))]),_c('br'),_c('br'),_c('span',[_vm._v(_vm._s(_vm.modalAdditionalMessage))]),_c('br'),_c('span',[_vm._v(_vm._s(_vm.$t(\"Do you wish to continue anyway?\")))])]),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.confirmAction}},[_vm._v(_vm._s(_vm.$t(\"Yes\")))]),_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.closeModal}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"1200\",\"scrollable\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.Report\"))+\" \")])]}}]),model:{value:(_vm.dialogOpen),callback:function ($$v) {_vm.dialogOpen=$$v},expression:\"dialogOpen\"}},[_c('v-card',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.loading}}),_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"EVisitor.TouristBoardReport\", { eVisitorServiceName: _vm.eVisitorIntegrationName, }))+\" \")]),_c('v-card-text',{staticClass:\"pt-0\"},[_c('v-row',[_c('v-col',{staticClass:\"d-flex align-baseline\",attrs:{\"cols\":\"6\"}},[_c('v-radio-group',{staticClass:\"pt-0\",attrs:{\"row\":\"\",\"hide-details\":\"\"},model:{value:(_vm.reportType),callback:function ($$v) {_vm.reportType=$$v},expression:\"reportType\"}},_vm._l((_vm.allowedExportTypes),function(type,$index){return _c('v-radio',{key:$index,attrs:{\"label\":_vm.$t('EVisitor.' + type.name + 'Report'),\"value\":type.value}})}),1)],1),_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"6\"}},[_c('DateField',{staticClass:\"full-width\",attrs:{\"label\":_vm.$t(_vm.pickerType.label) + '*',\"type\":_vm.pickerType.pickerType,\"activePicker\":_vm.pickerType.activePicker,\"max\":_vm.today,\"display\":_vm.display},on:{\"date-selected\":_vm.dateSelected},model:{value:(_vm.reportDate),callback:function ($$v) {_vm.reportDate=$$v},expression:\"reportDate\"}})],1)],1),_c('v-form',{model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[(_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.HR)?_c('EVisitorReportForm',{ref:\"formComponent\",attrs:{\"dateFrom\":_vm.period.dateFrom,\"dateTo\":_vm.period.dateTo,\"reportType\":_vm.reportType},on:{\"submit\":_vm.exportReport}}):_vm._e(),(_vm.eVisitorIntegrationId === _vm.eVisitorIntegrationEnum.SL)?_c('ETurizemReportForm',{ref:\"formComponent\",attrs:{\"dateFrom\":_vm.period.dateFrom,\"dateTo\":_vm.period.dateTo,\"reportType\":_vm.reportType},on:{\"submit\":_vm.exportReport}}):_vm._e()],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.isFormValid || !_vm.reportDate || !_vm.reportType},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Export\"))+\" \")]),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){_vm.dialogOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { EVisitorReportTypeEnum } from \"../EVisitorReportDialog.vue\";\n@Component({\n components: {},\n})\nexport default class ETurizemReportForm extends Vue {\n @Prop({ default: null }) dateFrom?: Date;\n @Prop({ default: null }) dateTo?: Date;\n @Prop({ default: () => EVisitorReportTypeEnum.Monthly })\n reportType?: EVisitorReportTypeEnum;\n\n submit() {\n if (this.dateFrom && this.dateTo && this.reportType) {\n this.$emit(\n \"submit\",\n { dateFrom: this.dateFrom, dateTo: this.dateTo },\n \"blob\"\n );\n }\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorReportForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorReportForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EVisitorReportForm.vue?vue&type=template&id=f958c56e&\"\nimport script from \"./EVisitorReportForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./EVisitorReportForm.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.loading}}),_vm._l((_vm.formData),function(item,$index){return _c('v-row',{key:$index,staticClass:\"item pb-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\"text-bold\"},[_vm._v(\" \"+_vm._s(item.facility)+\" \")]),(item.accountName)?_c('div',{staticClass:\"text-colored\"},[_vm._v(\" \"+_vm._s(item.accountName)+\" \")]):_vm._e()]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('EVisitor.FacilityStatus'),\"items\":_vm.eVisitorFacilityStatuses,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"hide-details\":\"\"},model:{value:(item.eVisitorFacilityStatusId),callback:function ($$v) {_vm.$set(item, \"eVisitorFacilityStatusId\", $$v)},expression:\"item.eVisitorFacilityStatusId\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('ETurizem.Report.NumberOfStays'),\"validateInput\":true,\"defaultToZeroWhenEmpty\":true,\"decimalPlaces\":0,\"hideDetails\":true},model:{value:(item.numberOfStays),callback:function ($$v) {_vm.$set(item, \"numberOfStays\", $$v)},expression:\"item.numberOfStays\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('ETurizem.Report.NumberOfExtraBeds'),\"validateInput\":true,\"defaultToZeroWhenEmpty\":true,\"decimalPlaces\":0,\"hideDetails\":true},model:{value:(item.numberOfExtraBeds),callback:function ($$v) {_vm.$set(item, \"numberOfExtraBeds\", $$v)},expression:\"item.numberOfExtraBeds\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('ETurizem.Report.NumberOfDaysOpen'),\"validateInput\":true,\"defaultToZeroWhenEmpty\":true,\"decimalPlaces\":0,\"hideDetails\":true},model:{value:(item.numberOfDaysOpen),callback:function ($$v) {_vm.$set(item, \"numberOfDaysOpen\", $$v)},expression:\"item.numberOfDaysOpen\"}})],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { EVisitorFacilityStatus } from \"@/shared/models/eVisitorFacilityStatus\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { EVisitorReportTypeEnum } from \"../EVisitorReportDialog.vue\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\n\nexport type ETurizemReportItemModel = {\n facilityId: number;\n facility: string;\n accountName: string;\n numberOfUnits: number;\n numberOfBeds: number;\n numberOfExtraBeds: number;\n eVisitorFacilityStatusId: number;\n numberOfStays: number;\n numberOfDaysOpen: number;\n};\n\n@Component({\n components: {\n NumericInputImproved,\n LoadingOverlay,\n },\n})\nexport default class ETurizemReportForm extends Vue {\n @Prop({ default: null }) dateFrom?: Date;\n @Prop({ default: null }) dateTo?: Date;\n @Prop({ default: () => EVisitorReportTypeEnum.Monthly })\n reportType?: EVisitorReportTypeEnum;\n\n submit() {\n if (this.dateFrom && this.dateTo && this.reportType) {\n const request = {\n dateFrom: this.dateFrom,\n dateTo: this.dateTo,\n itemsJson: JSON.stringify(this.formData),\n };\n\n this.$emit(\n \"submit\",\n request,\n undefined,\n \"ETurizem.MonthlyReport.Export.Success\"\n );\n }\n }\n\n get refreshFactors() {\n return {\n dateFrom: this.dateFrom,\n dateTo: this.dateTo,\n };\n }\n\n loading = false;\n formData: ETurizemReportItemModel[] = [];\n\n @Watch(\"refreshFactors\", { immediate: true, deep: true })\n refresh() {\n if (this.refreshFactors.dateFrom && this.refreshFactors.dateTo) {\n this.loading = true;\n Vue.axios\n .get(\"evisitor/GetETurizemReportPrefil\", {\n params: {\n dateFrom: this.refreshFactors.dateFrom,\n dateTo: this.refreshFactors.dateTo,\n },\n })\n .then((res) => {\n this.formData = res.data;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n @Getter(\"codebooks/eVisitorFacilityStatuses\")\n eVisitorFacilityStatuses?: EVisitorFacilityStatus[];\n @Action(\"codebooks/refreshEVisitorFacilityStatuses\")\n refreshEVisitorFacilityStatuses?: () => Promise;\n\n async created() {\n const promises = [];\n\n if (\n (!this.eVisitorFacilityStatuses ||\n this.eVisitorFacilityStatuses.length == 0) &&\n this.refreshEVisitorFacilityStatuses\n ) {\n promises.push(this.refreshEVisitorFacilityStatuses());\n }\n\n await Promise.all(promises);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ETurizemReportForm.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ETurizemReportForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ETurizemReportForm.vue?vue&type=template&id=41d32242&scoped=true&\"\nimport script from \"./ETurizemReportForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ETurizemReportForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ETurizemReportForm.vue?vue&type=style&index=0&id=41d32242&scoped=true&lang=scss&\"\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 \"41d32242\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { Getter } from \"vuex-class\";\nimport { EVisitorIntegrationModel } from \"@/shared/models/eVisitor\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\nimport EVisitorReportForm from \"./forms/EVisitorReportForm.vue\";\nimport ETurizemReportForm from \"./forms/ETurizemReportForm.vue\";\nimport { ResponseType } from \"axios\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport LoadingOverlay from \"../misc/LoadingOverlay.vue\";\nimport brokenRuleAdapter from \"@/shared/handleBrokenRuleAdapter\";\n\nexport enum EVisitorReportTypeEnum {\n Monthly = 1,\n Yearly = 2,\n}\n\n@Component({\n components: {\n DateField,\n LoadingOverlay,\n EVisitorReportForm,\n ETurizemReportForm,\n },\n})\nexport default class EVisitorReportDialog extends Vue {\n dialogOpen = false;\n loading = false;\n\n eVisitorReportTypeEnum = EVisitorReportTypeEnum;\n reportType = EVisitorReportTypeEnum.Monthly as EVisitorReportTypeEnum | null;\n\n reportDate = \"\";\n\n modalOpen = false;\n modalTitle = \"\";\n modalMessage = \"\";\n modalAdditionalMessage = \"\";\n modalCallback: (() => void) | null = null;\n\n showModal(\n title: string,\n message: string,\n additionalMessage: string,\n callback: () => void\n ) {\n this.modalTitle = title;\n this.modalMessage = message;\n this.modalAdditionalMessage = additionalMessage;\n this.modalCallback = callback;\n this.modalOpen = true;\n }\n\n closeModal() {\n this.modalOpen = false;\n this.modalCallback = null;\n }\n\n confirmAction() {\n if (this.modalCallback) this.modalCallback();\n this.closeModal();\n }\n\n get allowedExportTypes() {\n switch (this.eVisitorIntegrationId) {\n case EVisitorIntegrationEnum.HR: {\n return [\n {\n name: \"Monthly\",\n value: EVisitorReportTypeEnum.Monthly,\n },\n {\n name: \"Yearly\",\n value: EVisitorReportTypeEnum.Yearly,\n },\n ];\n }\n case this.eVisitorIntegrationEnum.SL: {\n return [\n {\n name: \"Monthly\",\n value: EVisitorReportTypeEnum.Monthly,\n },\n ];\n }\n }\n\n return [];\n }\n\n get pickerType() {\n return this.reportType === EVisitorReportTypeEnum.Monthly\n ? {\n label: \"EVisitor.SelectMonth\",\n pickerType: \"month\",\n activePicker: \"MONTH\",\n }\n : {\n label: \"EVisitor.SelectYear\",\n pickerType: \"year\",\n activePicker: \"YEAR\",\n };\n }\n\n get today() {\n return new Date().toISOString().substring(0, 10);\n }\n\n get display() {\n if (!this.reportDate) return \"\";\n return this.$d(new Date(this.reportDate), this.pickerType.pickerType);\n }\n\n @Watch(\"reportType\")\n reportTypeChanged(\n fresh: EVisitorReportTypeEnum,\n old: EVisitorReportTypeEnum\n ) {\n if (this.reportDate && fresh !== old) {\n if (\n fresh === EVisitorReportTypeEnum.Yearly &&\n old === EVisitorReportTypeEnum.Monthly\n ) {\n const year = new Date(this.reportDate).getFullYear();\n this.reportDate = (year - 1).toString();\n }\n if (\n fresh === EVisitorReportTypeEnum.Monthly &&\n old === EVisitorReportTypeEnum.Yearly\n ) {\n const today = new Date();\n const tempDate = new Date(this.reportDate);\n const tempYear = tempDate.getFullYear() + 1;\n if (tempYear <= today.getFullYear()) {\n tempDate.setFullYear(tempYear);\n }\n const previousMonth = today.getMonth() - 1;\n\n if (previousMonth < 0) {\n tempDate.setFullYear(tempDate.getFullYear());\n tempDate.setMonth(11);\n } else {\n tempDate.setMonth(previousMonth);\n }\n this.reportDate = tempDate.toISOString().substring(0, 7);\n }\n }\n }\n\n dateSelected(value: string) {\n this.reportDate = value;\n }\n\n get period() {\n if (this.reportDate && this.reportType) {\n const dateFrom = new Date(this.reportDate);\n let dateTo = new Date(this.reportDate);\n\n switch (this.reportType) {\n case EVisitorReportTypeEnum.Monthly: {\n dateTo = new Date(\n Date.UTC(\n dateFrom.getFullYear(),\n dateFrom.getMonth() + 1,\n dateFrom.getDate() - 1\n )\n );\n break;\n }\n case EVisitorReportTypeEnum.Yearly: {\n dateTo = new Date(\n Date.UTC(\n dateFrom.getFullYear() + 1,\n dateFrom.getMonth(),\n dateFrom.getDate() - 1\n )\n );\n break;\n }\n }\n\n return { dateFrom: dateFrom, dateTo: dateTo };\n }\n\n return { dateFrom: null, dateTo: null };\n }\n\n @Ref(\"formComponent\") formComponent?: { submit: () => void };\n isFormValid = false;\n\n submit() {\n if (this.formComponent) {\n this.formComponent.submit();\n }\n }\n\n exportReport(\n request: any,\n responseType: ResponseType | undefined,\n successTextResourceKey: string,\n overrides: string[] = []\n ) {\n const handleCodes = [\"EVisitor.reportGenerateInfo\"];\n const formatBrokenRuleNames = (x: string[]) =>\n x\n .map((h) => this.$t(h).toString())\n .map((th) => (th.endsWith(\".\") ? th : th + \".\"))\n .join(\" \");\n const adapter = brokenRuleAdapter(this.axios, handleCodes);\n\n const isOverriding =\n overrides.length !== 0 &&\n this.eVisitorIntegrationId === EVisitorIntegrationEnum.HR;\n\n this.loading = true;\n this.axios\n .post(\n \"reports/EVisitorServiceReport\",\n { ...request, overrideRules: overrides },\n {\n responseType: responseType,\n adapter: isOverriding ? undefined : adapter,\n }\n )\n .then((res) => {\n if (responseType === \"blob\") {\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Report.xlsx\");\n }\n if (successTextResourceKey) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: successTextResourceKey,\n localize: true,\n timeout: 5000,\n } as Notification);\n }\n })\n .catch((error) => {\n if (error && error.isHandleBrokenRuleResult && !isOverriding) {\n this.modalMessage = `${formatBrokenRuleNames(error.handled)}`;\n this.modalAdditionalMessage = this.$t(\n \"EVisitor.reportGenerateInfoAdditional\"\n ).toString();\n this.showModal(\n this.$t(\"EVisitor.TouristBoardReport\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }).toString(),\n this.modalMessage,\n this.modalAdditionalMessage,\n () => {\n this.exportReport(\n request,\n responseType,\n successTextResourceKey,\n error.handled\n );\n }\n );\n } else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: `${formatBrokenRuleNames(error.unhandled)}`,\n timeout: 5000,\n } as Notification);\n }\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n eVisitorIntegrationEnum = EVisitorIntegrationEnum;\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n @Watch(\"eVisitorIntegrationId\", { immediate: true })\n eVisitorIntegrationWatch() {\n this.$nextTick(() => {\n if (this.allowedExportTypes.length > 0) {\n this.reportType = this.allowedExportTypes[0].value;\n } else {\n this.reportType = null;\n }\n });\n }\n\n @Watch(\"dialogOpen\")\n openWatch(fresh: boolean) {\n if (fresh) {\n if (this.allowedExportTypes.length > 0)\n this.reportType = this.allowedExportTypes[0].value;\n\n const today = new Date();\n if (this.reportType === EVisitorReportTypeEnum.Monthly) {\n today.setMonth(today.getMonth() - 1);\n this.reportDate = today.toISOString().substring(0, 7);\n } else {\n this.reportDate = today.toISOString().substring(0, 4);\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorReportDialog.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorReportDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EVisitorReportDialog.vue?vue&type=template&id=d59e04ca&scoped=true&\"\nimport script from \"./EVisitorReportDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EVisitorReportDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EVisitorReportDialog.vue?vue&type=style&index=0&id=d59e04ca&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 \"d59e04ca\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VRadio,VRadioGroup,VRow,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\nimport { Getter, Action } from \"vuex-class\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport {\n EVisitorGridViewModel,\n EVisitorIntegrationModel,\n EVisitorStatusEnum,\n} from \"@/shared/models/eVisitor\";\nimport { CityTaxCategory } from \"@/shared/models/cityTaxCategory\";\nimport { ArrivalOrganizationType } from \"@/shared/models/arrivalOrganizationType\";\nimport { Country } from \"@/shared/models/country\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport CheckInOutEditForm from \"@/components/reservation-form/check-in/CheckInOutEditForm.vue\";\nimport MultipleGuestsEditForm from \"@/components/reservation-form/eVisitor/MultipleGuestsEditForm.vue\";\nimport * as _ from \"lodash\";\nimport { IdentificationDocumentType } from \"@/shared/models/identificationDocumentType\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { getRuleIgnoreAdapter } from \"./reservation-form/check-in/CheckInService\";\nimport { Notification } from \"@/store/modules/notifications\";\nimport { BrokenRule } from \"@/shared/models/apiErrors\";\nimport TableCellUnitTypeDisplay from \"@/components/misc/TableCellUnitTypeDisplay.vue\";\nimport {\n EVisitorIntegrationEnum,\n EVisitorIntegrationNameEnum,\n} from \"@/shared/models/enums.type\";\nimport EVisitorReportDialog from \"@/components/eVisitor/EVisitorReportDialog.vue\";\nimport { AppParam, AppParamsEnum } from \"@/shared/models/appParam\";\n\ntype EVisitorGridViewModelWithErrors = EVisitorGridViewModel & {\n checkinFeedbackErrors: string[];\n checkoutFeedbackErrors: string[];\n};\n\n@Component({\n components: {\n TableCellUnitTypeDisplay,\n SortableHeadersTable,\n DateField,\n NoData,\n CheckInOutEditForm,\n MultipleGuestsEditForm,\n EVisitorReportDialog,\n },\n})\nexport default class EVisitorTable extends Vue {\n settingsOpen = false;\n multipleEditOpen = false;\n\n @Prop() reservationId?: number;\n @Prop() status?: \"notCheckedIn\" | \"checkedIn\" | \"checkedOut\";\n @Prop() tableName?: string;\n\n // prettier-ignore\n @Action(\"codebooks/refreshCityTaxCategories\")\n refreshPaymentCategories?: () => Promise;\n @Getter(\"codebooks/cityTaxCategories\")\n eVisitorPaymentCategories?: CityTaxCategory[];\n\n // prettier-ignore\n @Action(\"codebooks/refresharrivalOrganizationTypes\")\n refreshArrivalOrganizationTypes?: () => Promise;\n @Getter(\"codebooks/arrivalOrganizationTypes\")\n eVisitorArrivalOrganizationTypes?: ArrivalOrganizationType[];\n\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Action(\"codebooks/refreshIdentificationDocumentTypes\")\n refreshIdentificationDocumentTypes?: () => Promise;\n @Getter(\"codebooks/identificationDocumentTypes\")\n identificationDocumentTypes?: IdentificationDocumentType[];\n\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n\n dateTo = new Date().toDateString();\n reportType = \"month\";\n\n mounted() {\n this.updateDateFieldModel(this.reportType);\n }\n\n updateDateFieldModel(reportType: string) {\n if (reportType === \"month\") {\n this.dateFieldModel = new Date(\n new Date().setMonth(new Date().getMonth() - 1)\n )\n .toISOString()\n .slice(0, 7);\n const start = new Date(`${this.dateFieldModel}-01`);\n const end = new Date(start.getFullYear(), start.getMonth() + 1, 0);\n this.endDate = `${end.getFullYear()}-${(end.getMonth() + 1)\n .toString()\n .padStart(2, \"0\")}-${end.getDate().toString().padStart(2, \"0\")}`;\n } else if (reportType === \"year\") {\n this.dateFieldModel = new Date(\n new Date().setFullYear(new Date().getFullYear() - 1, 0, 1)\n )\n .toISOString()\n .slice(0, 7);\n this.endDate = new Date(new Date(this.dateFieldModel).setMonth(11, 31))\n .toISOString()\n .slice(0, 10);\n }\n }\n\n @Watch(\"dateFieldModel\")\n @Watch(\"reportyType\")\n onDateFieldModelChanged() {\n if (this.reportType === \"year\") {\n const year = new Date(this.dateFieldModel).getFullYear();\n this.endDate = new Date(year, 11, 32).toISOString().slice(0, 10);\n } else if (this.reportType === \"month\") {\n const start = new Date(`${this.dateFieldModel}-01`);\n const end = new Date(start.getFullYear(), start.getMonth() + 1, 0);\n this.endDate = `${end.getFullYear()}-${(end.getMonth() + 1)\n .toString()\n .padStart(2, \"0\")}-${end.getDate().toString().padStart(2, \"0\")}`;\n }\n }\n\n dateFieldModel = new Date().toISOString().slice(0, 7);\n endDate = new Date().toISOString().slice(0, 10);\n exportPeriodForTouristBoard = [] as string[];\n exportInProgress = false;\n\n async created() {\n const promises = [];\n\n if (\n (this.eVisitorPaymentCategories?.length ?? 0) === 0 &&\n this.refreshPaymentCategories\n ) {\n promises.push(this.refreshPaymentCategories);\n }\n\n if (\n (this.eVisitorArrivalOrganizationTypes?.length ?? 0) === 0 &&\n this.refreshArrivalOrganizationTypes\n ) {\n promises.push(this.refreshArrivalOrganizationTypes);\n }\n\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries);\n }\n\n if (\n this.identificationDocumentTypes &&\n this.identificationDocumentTypes.length == 0\n ) {\n promises.push(this.refreshIdentificationDocumentTypes);\n }\n\n if (this.reservationId && this.reservationId !== 0) {\n this.generateSelfCheckInLink();\n }\n\n this.setUpHeaders();\n\n await Promise.all(promises);\n }\n\n getCountryName(countryId: number) {\n const country = this.countries?.find((x) => x.id == countryId);\n if (country) {\n return this.$t(\n `Country.Official.${country.isoThreeLetterCode}`\n ).toString();\n }\n\n return \"\";\n }\n\n getIdentificationDocumentType(typeId: number) {\n if (this.identificationDocumentTypes) {\n return (\n this.identificationDocumentTypes.find((x) => x.id == typeId)\n ?.textResourceKey ?? \"\"\n );\n }\n }\n\n genders = [\n {\n id: 1,\n text: \"Male\",\n },\n {\n id: 2,\n text: \"Female\",\n },\n {\n id: 3,\n text: \"Unknown\",\n },\n ];\n getGenderText(genderId: number) {\n switch (genderId) {\n case 1:\n return \"Male\";\n case 2:\n return \"Female\";\n case 3:\n return \"Unknown\";\n }\n }\n\n eVisitorStatuses = [\n {\n text: \"NotCheckedIn\",\n value: \"notCheckedIn\",\n },\n {\n text: \"CheckedIn\",\n value: \"checkedIn\",\n },\n {\n text: \"CheckedOut\",\n value: \"checkedOut\",\n },\n ];\n getStatusText(statusId: number) {\n switch (statusId) {\n case EVisitorStatusEnum.NotCheckedIn:\n return \"NotCheckedIn\";\n case EVisitorStatusEnum.CheckedIn:\n return \"CheckedIn\";\n case EVisitorStatusEnum.CheckedOut:\n return \"CheckedOut\";\n }\n }\n\n headers: SortableTableHeader[] = [];\n standaloneHeaders: SortableTableHeader[] = [];\n reservationTabHeaders: SortableTableHeader[] = [];\n\n @Watch(\"tenantUsesSelfCheckIn\", { immediate: true })\n tenantWatch() {\n this.standaloneHeaders = [\n {\n text: \"Name\",\n value: \"customerName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"reservationHolderName\"],\n },\n {\n text: \"Accomodation unit\",\n value: \"eVisitorFacilityName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\n \"eVisitorFacilityPropertyName\",\n \"eVisitorFacilityName\",\n \"propertyName\",\n ],\n },\n {\n text: \"EVisitor.ReservationId\",\n value: \"reservationId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Period\",\n value: \"arrivalDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"arrivalDate\", \"departureDate\"],\n },\n {\n text: \"City tax category\",\n value: \"eVisitorPaymentCategory\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Arrival organisation type\",\n value: \"eVisitorArrivalOrganizationType\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ...(this.tenantUsesSelfCheckIn)\n ? [ {\n text: \"Guest.IsSelfCheckIn\",\n value: \"isSelfCheckIn\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n } ]\n : [],\n {\n text: \"EVisitor.DVI\",\n value: \"eVisitorValidationMessages\",\n sortable: false,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n\n this.reservationTabHeaders = [\n {\n text: \"Name\",\n value: \"customerName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Period\",\n value: \"arrivalDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VCustomer.identificationDocumentType\",\n value: \"identificationDocumentTypeId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Date of birth\",\n value: \"dateOfBirth\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Country of birth\",\n value: \"countryOfBirthId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Gender\",\n value: \"genderId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Country of citizenship\",\n value: \"citizenshipId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Country of residence\",\n value: \"countryOfResidenceId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Arrival organisation type\",\n value: \"eVisitorArrivalOrganizationType\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"City tax category\",\n value: \"eVisitorPaymentCategory\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"EVisitor status\",\n value: \"eVisitorStatusId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ...(this.tenantUsesSelfCheckIn)\n ? [\n {\n text: \"Guest.IsSelfCheckIn\",\n value: \"isSelfCheckIn\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n } ]\n : [],\n {\n text: \"EVisitor.DVI\",\n value: \"eVisitorValidationMessages\",\n sortable: false,\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n @Getter(\"appParams/tenantEVisitorIntegration\")\n eVisitorIntegration?: EVisitorIntegrationModel;\n eVisitorIntegrationEnum = EVisitorIntegrationEnum;\n get eVisitorIntegrationId() {\n return this.eVisitorIntegration?.id ?? EVisitorIntegrationEnum.None;\n }\n get eVisitorIntegrationName() {\n return this.eVisitorIntegration?.name ?? EVisitorIntegrationNameEnum.None;\n }\n\n setUpHeaders() {\n if (!this.reservationId) {\n this.headers = [...this.standaloneHeaders];\n } else {\n this.headers = [...this.reservationTabHeaders];\n }\n\n // only available for HR eVisitor\n if (this.eVisitorIntegrationId != EVisitorIntegrationEnum.HR)\n this.headers = this.headers.filter(\n (e) => e.value !== \"eVisitorArrivalOrganizationType\"\n );\n }\n\n filters = {\n reservationId: null as number | null,\n arrivalOrDepartureDate: \"\",\n customerName: \"\",\n eVisitorFacilityName: \"\",\n status: \"\",\n paymentCategoryId: null as number | null,\n arrivalOrganizationTypeId: null as number | null,\n genderId: null as number | null,\n countryOfBirthId: null as number | null,\n citizenshipId: null as number | null,\n countryOfResidenceId: null as number | null,\n dateOfBirth: \"\",\n filter: \"\",\n };\n\n get queryFilters() {\n const filters = {\n ...this.filters,\n };\n\n filters.reservationId = this.reservationId ?? filters.reservationId;\n filters.status = this.status ?? filters.status;\n filters.filter = this.dashboardFilter;\n\n return filters;\n }\n\n get dashboardFilter() {\n return this.$route.query.filter as string;\n }\n\n @Watch(\"dashboardFilter\")\n dashboardFilterChanged() {\n this.debouncedLoad();\n }\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n get translatedActiveHeaders() {\n return this.headers\n .filter((x) => x.active)\n .map((x) => ({ ...x, text: this.$t(x.text) }));\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"customerName\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n saving = false;\n list: ListModel = {\n count: 0,\n result: [],\n };\n selected = [] as EVisitorGridViewModelWithErrors[];\n\n debouncedLoad = _.debounce(this.load, 500);\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\n \"/reservations/QueryEVisitorGuests\",\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n //prettier-ignore\n const oldCheckinFeedbackOrEmpty = (old: EVisitorGridViewModel) => this.list.result\n .find(fresh => fresh.id === old.id)?.checkinFeedbackErrors ?? [];\n //prettier-ignore\n const oldCheckoutFeedbackOrEmpty = (old: EVisitorGridViewModel) => this.list.result\n .find(fresh => fresh.id === old.id)?.checkoutFeedbackErrors ?? [];\n\n //prettier-ignore\n this.list = {\n result: res.data.result.map((x) => ({\n ...x,\n checkinFeedbackErrors: oldCheckinFeedbackOrEmpty(x),\n checkoutFeedbackErrors: oldCheckoutFeedbackOrEmpty(x)\n })),\n count: res.data.count,\n };\n\n return this.list;\n })\n .finally(() => {\n this.scrollToTop();\n this.loading = false;\n });\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.queryFilters,\n isFromMainGrid: !this.reservationId,\n };\n }\n\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n\n get checkInDisabled() {\n if (\n !!this.selected &&\n this.selected.length > 0 &&\n !this.selected.some(\n (e) => e.eVisitorStatusId != EVisitorStatusEnum.NotCheckedIn\n )\n ) {\n return false;\n }\n\n return true;\n }\n\n get checkOutDisabled() {\n if (\n !!this.selected &&\n this.selected.length > 0 &&\n !this.selected.some(\n (e) => e.eVisitorStatusId != EVisitorStatusEnum.CheckedIn\n )\n ) {\n return false;\n }\n\n return true;\n }\n\n get multipleEditDisabled() {\n if (\n this.status != \"checkedOut\" &&\n !!this.selected &&\n this.selected.length > 1 &&\n !this.selected.some(\n (x) => x.eVisitorStatusId == EVisitorStatusEnum.CheckedOut\n )\n ) {\n const statusOfFirstSelected = this.selected[0].eVisitorStatusId;\n if (\n !this.selected.some((x) => x.eVisitorStatusId != statusOfFirstSelected)\n ) {\n return false;\n }\n }\n\n return true;\n }\n\n itemId: number | null = null;\n editFormOpen = false;\n rowDoubleClick(e: MouseEvent, { item }: { item: EVisitorGridViewModel }) {\n this.openItemDetails(item);\n }\n openItemDetails(item: EVisitorGridViewModel) {\n this.itemId = item.id;\n this.editFormOpen = true;\n }\n\n multipleEditIds = [] as number[];\n multipleEditFormType = \"checkIn\";\n openMultipleEdit() {\n this.multipleEditIds = this.selected.map((x) => x.id);\n this.multipleEditFormType =\n this.selected[0].eVisitorStatusId == EVisitorStatusEnum.CheckedIn\n ? \"checkOut\"\n : \"checkIn\";\n this.multipleEditOpen = true;\n }\n\n isMarkedFailed(g: EVisitorGridViewModelWithErrors) {\n return (\n !!g.checkinFeedbackErrors.length || !!g.checkoutFeedbackErrors.length\n );\n }\n\n hasBackendErrors(g: EVisitorGridViewModelWithErrors) {\n return g.eVisitorValidationMessages.some((x) => x !== \"\");\n }\n\n async reservationUpdate() {\n try {\n await Vue.axios.post(\n \"/reservations/ReservationUpdateForMultipleGuestIds\",\n { guestIds: this.selected.map((x) => x.id) }\n );\n } catch {\n // ignore error, axios will handle it\n }\n }\n\n async checkInSelected() {\n this.saving = true;\n for (const x of this.list.result) {\n x.checkinFeedbackErrors.length = 0;\n }\n\n for (const guest of this.selected) {\n const eVisitorValidationMessages =\n guest.eVisitorValidationMessages?.filter((x) => x && x !== \"\") ?? [];\n\n if (eVisitorValidationMessages.length) {\n guest.checkinFeedbackErrors.push(\n ...eVisitorValidationMessages,\n `EVisitor.CheckIn.IncompleteData`\n );\n continue;\n }\n\n // revert to default behaviour (don't display toasts or anything)\n let config: AxiosRequestConfig | undefined;\n if (this.axios.defaults.adapter) {\n config = {\n adapter: getRuleIgnoreAdapter(this.axios.defaults.adapter),\n } as AxiosRequestConfig;\n }\n\n try {\n await this.axios.post(\n `reservations/CheckInMultipleGuestsToEVisitor`,\n {\n guestIds: [guest.id],\n },\n config\n );\n } catch (e) {\n const brokenRules: BrokenRule[] = e.data?.brokenRules ?? [];\n if (brokenRules.length > 0) {\n guest.checkinFeedbackErrors.push(...brokenRules.map((x) => x.name));\n } else {\n guest.checkinFeedbackErrors.push(\"Error.400\");\n }\n }\n }\n\n await this.reservationUpdate();\n\n if (\n this.selected.some((x) =>\n x.checkinFeedbackErrors.some(\n (er) => er === \"eVistor authentication failed\"\n )\n )\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"EVisitor.NotAvailable\", {\n eVisitorServiceName: this.eVisitorIntegrationName,\n }).toString(),\n timeout: 8000,\n } as Notification);\n }\n\n if (\n this.selected.some((x) =>\n x.checkinFeedbackErrors.some(\n (er) => er !== \"eVistor authentication failed\"\n )\n )\n ) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"EVisitor.CheckIn.CheckErrorDetails\", { eVisitorServiceName: this.eVisitorIntegrationName }).toString(),\n timeout: 8000,\n } as Notification);\n }\n\n this.saving = false;\n this.callRefresh();\n\n this.multipleEditOpen = false;\n }\n\n async checkOutSelected() {\n this.saving = true;\n for (const x of this.list.result) {\n x.checkoutFeedbackErrors.length = 0;\n }\n\n for (const guest of this.selected) {\n const eVisitorValidationMessages =\n guest.eVisitorValidationMessages?.filter((x) => x && x !== \"\") ?? [];\n\n if (eVisitorValidationMessages.length) {\n guest.checkinFeedbackErrors.push(\n ...eVisitorValidationMessages\n );\n }\n \n // revert to default behaviour (don't display toasts or anything)\n let config: AxiosRequestConfig | undefined;\n if (this.axios.defaults.adapter) {\n config = {\n adapter: getRuleIgnoreAdapter(this.axios.defaults.adapter),\n } as AxiosRequestConfig;\n }\n\n try {\n await this.axios.post(\n `reservations/CheckOutMultipleGuestsToEVisitor`,\n {\n guestIds: [guest.id],\n },\n config\n );\n } catch (e) {\n const brokenRules: BrokenRule[] = e.data?.brokenRules ?? [];\n if (brokenRules.length > 0) {\n guest.checkoutFeedbackErrors.push(...brokenRules.map((x) => x.name));\n } else {\n guest.checkoutFeedbackErrors.push(\"Error.400\");\n }\n }\n }\n\n await this.reservationUpdate();\n\n if (this.selected.some((x) => x.checkoutFeedbackErrors.length)) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"EVisitor.CheckOut.CheckErrorDetails\", { eVisitorServiceName: this.eVisitorIntegrationName }).toString(),\n timeout: 8000,\n } as Notification);\n }\n\n this.saving = false;\n this.callRefresh();\n\n this.multipleEditOpen = false;\n }\n\n callRefresh() {\n this.$emit(\"refresh\");\n if (this.reservationId) {\n this.refresh();\n }\n }\n\n refresh() {\n this.selected = [];\n this.debouncedLoad();\n }\n\n resetFeedbackErrorsFor(ids: number[]) {\n this.list?.result\n ?.filter((x) => ids.some((i) => i === x.id))\n ?.forEach((x) => (x.checkinFeedbackErrors = []));\n }\n\n reason = \"\";\n reasonTitle = \"Cancel check-in on eVisitor reason\";\n reasonOpen = false;\n reasonFormValid = false;\n reasonAction = () => Promise.resolve();\n @Ref(\"reasonForm\") reasonForm?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n get anySelected() {\n return !!this.selected?.length;\n }\n\n get allSelectedAreCheckedIn() {\n return (this.selected ?? []).every(\n (x) => x.eVisitorStatusId === EVisitorStatusEnum.CheckedIn\n );\n }\n get anySelectedIsCheckedIn() {\n return (this.selected ?? []).some(\n (x) => x.eVisitorStatusId === EVisitorStatusEnum.CheckedIn\n );\n }\n\n get allSelectedAreCheckedOut() {\n return (this.selected ?? []).every(\n (x) => x.eVisitorStatusId === EVisitorStatusEnum.CheckedOut\n );\n }\n\n revertEVisitorCheckIn() {\n this.reasonForm?.resetValidation();\n this.reason = \"\";\n this.reasonTitle = \"Cancel check-in on eVisitor reason\";\n this.reasonOpen = true;\n this.reasonAction = this.revertEVisitorCheckInConfirm;\n }\n async revertEVisitorCheckInConfirm() {\n this.reasonOpen = false;\n await this.revert(this.reason, \"reservations/cancelEVisitorGuestCheckIn\");\n }\n revertEVisitorCheckOut() {\n this.reasonForm?.resetValidation();\n this.reason = \"\";\n this.reasonTitle = \"Cancel check-out on eVisitor reason\";\n this.reasonOpen = true;\n this.reasonAction = this.revertEVisitorCheckOutConfirm;\n }\n async revertEVisitorCheckOutConfirm() {\n this.reasonOpen = false;\n await this.revert(this.reason, \"reservations/cancelEVisitorGuestCheckOut\");\n }\n\n async revert(reason: string, action: string) {\n this.saving = true;\n for (const x of this.list.result) {\n x.checkinFeedbackErrors.length = 0;\n }\n\n for (const guest of this.selected) {\n const eVisitorValidationMessages =\n guest.eVisitorValidationMessages?.filter((x) => x && x !== \"\") ?? [];\n\n if (eVisitorValidationMessages.length) {\n guest.checkinFeedbackErrors.push(\n ...eVisitorValidationMessages,\n `EVisitor.CheckIn.IncompleteData` \n );\n continue;\n }\n\n // revert to default behaviour (don't display toasts or anything)\n let config: AxiosRequestConfig | undefined;\n if (this.axios.defaults.adapter) {\n config = {\n adapter: getRuleIgnoreAdapter(this.axios.defaults.adapter),\n } as AxiosRequestConfig;\n }\n\n try {\n await this.axios.post(\n action,\n {\n id: guest.id,\n reason: reason,\n },\n config\n );\n } catch (e) {\n const brokenRules: BrokenRule[] = e.data?.brokenRules ?? [];\n if (brokenRules.length > 0) {\n guest.checkinFeedbackErrors.push(...brokenRules.map((x) => x.name));\n } else {\n guest.checkinFeedbackErrors.push(\"Error.400\");\n }\n }\n }\n\n await this.reservationUpdate();\n\n if (this.selected.some((x) => x.checkinFeedbackErrors.length)) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"EVisitor.CheckIn.CheckErrorDetails\", { eVisitorServiceName: this.eVisitorIntegrationName }).toString(),\n timeout: 8000,\n } as Notification);\n }\n\n this.saving = false;\n this.callRefresh();\n }\n\n selfCheckInLinks: string[] = [];\n\n selfCheckInModalOpen = false;\n\n generateSelfCheckInLink() {\n this.axios\n .get>(\n \"/reservations/GetSelfCheckInLink\",\n {\n params:{\n reservationId: this.reservationId\n }\n }\n )\n .then((res) => {\n this.selfCheckInLinks = res.data;\n })\n .finally();\n }\n\n get tenantUsesSelfCheckIn() {\n const param = this.appParams?.find(\n (x) => x.id === AppParamsEnum.TenantUsesSelfCheckIn\n );\n return param && param.value;\n }\n \n get showSelfCheckInButton() {\n return this.selfCheckInLinks && !!this.reservationId && this.tenantUsesSelfCheckIn\n ? this.selfCheckInLinks.length > 0\n : false\n }\n\n copyLink(link: string) {\n navigator.clipboard.writeText(link);\n\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: this.$t(\"LinkCopiedToClipboard\"),\n timeout: 5000\n });\n }\n\n get rules() {\n const required = (value: any) => !!value || this.$t(\"Validation.Required\");\n return {\n reason: [\n (v: string) => {\n const r = required(v);\n return this.reasonOpen ? r : true;\n },\n ],\n };\n }\n}\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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorTable.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--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EVisitorTable.vue?vue&type=template&id=49945674&scoped=true&\"\nimport script from \"./EVisitorTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./EVisitorTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EVisitorTable.vue?vue&type=style&index=0&id=49945674&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 \"49945674\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VMenu,VRow,VSelect,VSimpleCheckbox,VSpacer,VTextField,VTextarea,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorReportDialog.vue?vue&type=style&index=0&id=d59e04ca&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"value\":_vm.value,\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"rules\":_vm.disableRules ? [] : [_vm.priceRule, _vm.maxDecimals],\"hint\":_vm.hint || _vm.placeholderHint,\"persistent-hint\":\"\",\"label\":_vm.label},on:{\"input\":_vm.onInput,\"focus\":function($event){_vm.isInputFocused = true},\"blur\":_vm.calculatePrice}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { parseLocaleNumber } from \"@/components/numbers/numberFormatUtils\";\nimport { Currency } from \"@/shared/models/currency\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\n\nexport type PriceChange = {\n value: number | null;\n percentage: boolean;\n addition: boolean;\n subtraction: boolean;\n valid: boolean;\n};\n\n@Component\nexport default class PriceInput extends Vue {\n @Prop() value?: string;\n @Prop() currencyId?: number;\n @Prop() label?: string;\n @Prop() disableRules?: boolean;\n @Prop() dense?: boolean;\n @Prop({ default: true }) required?: boolean;\n @Prop({ default: true }) changesOriginalPrice?: boolean;\n @Prop() placeholderHint?: string;\n @Prop({ default: true }) outlined?: boolean;\n @Prop({ default: false }) forPromoCode?: boolean;\n @Prop({ default: false }) forRackRates?: boolean;\n\n isInputFocused = false;\n\n @Watch(\"changesOriginalPrice\")\n changesOriginalPriceWatch() {\n this.formatHint();\n }\n\n priceRule(v: string) {\n return ((v || this.required) && /^(\\+|-)?([\\d,.]+)(%)?$/.test(v)) ||\n (!this.required && !v)\n ? true\n : this.$t(\"Calendar.PriceEditor.Invalid\");\n }\n\n maxDecimals(value: any) {\n if (value !== undefined) {\n return !(this.countDecimals(value) > 2)\n ? true\n : this.$t(\"Validation.MaxDecimals{max}\", {\n max: 2,\n });\n } else {\n return true;\n }\n }\n\n get decimalSeparator() {\n const separator = Intl.NumberFormat(this.internalLanguage)\n .format(1.1)\n .replace(/\\p{Number}/gu, \"\");\n return separator;\n }\n\n countDecimals(num: number) {\n if (num != null) {\n const decimalPart = num\n .toString()\n .split(this.decimalSeparator)[1]\n ?.replaceAll(/[^\\d]/g, \"\");\n return decimalPart?.length || 0;\n }\n return 0;\n }\n\n // prettier-ignore\n @Action(\"codebooks/refreshCurrencies\") refreshCurrencies?: () => Promise;\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n @Getter(\"language/language\") language?: string;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n async created() {\n if ((this.currencies?.length ?? 0) === 0 && this.refreshCurrencies) {\n this.refreshCurrencies();\n }\n if(this.forPromoCode && this.value && !this.lastPriceChange){\n this.onInput(this.value);\n }\n }\n\n hint = \"\";\n lastPriceChange?: PriceChange;\n rackRatePriceChange?: PriceChange;\n\n onInput(v: string) {\n this.$emit(\"input\", v);\n\n const groups = /^(\\+|-)?([\\d,.]+)(%)?$/.exec(v ?? \"\");\n\n if (groups) {\n const flat = [...groups];\n const percentage = flat[3] === \"%\";\n const subtraction = flat[1] === \"-\";\n const addition = flat[1] === \"+\" || (percentage && !flat[1]);\n const number = parseLocaleNumber(flat[2], this.internalLanguage);\n\n const valueCurrency = this.valueAppendCurrencyForDisplay(number);\n\n const res = {\n value: number,\n valueCurrency: valueCurrency,\n percentage,\n addition,\n subtraction,\n valid: true,\n } as PriceChange;\n\n this.lastPriceChange = res;\n this.rackRatePriceChange = res;\n\n this.formatHint();\n\n this.$emit(\"change\", res);\n } else {\n this.hint = \"\";\n\n const value = this.required ? 0 : null;\n const toEmit = {\n value,\n valueCurrency: this.valueAppendCurrencyForDisplay(value ?? 0),\n percentage: false,\n addition: false,\n subtraction: false,\n valid: !this.required && v === \"\" ? true : false,\n };\n this.rackRatePriceChange = toEmit;\n this.$emit(\"change\", toEmit);\n }\n }\n\n valueAppendCurrencyForDisplay(number: number) {\n let valueCurrency = number.toString();\n if (this.currencyId) {\n try {\n const currency = this.currencies?.find((x) => x.id === this.currencyId);\n if (currency) {\n valueCurrency = this.$n(number, {\n style: \"currency\",\n currency: currency.isoCode,\n currencyDisplay: \"code\",\n });\n }\n } catch {\n /* ignore */\n }\n }\n\n return valueCurrency;\n }\n\n formatHint() {\n if (!this.lastPriceChange) return;\n\n if (this.forRackRates) {\n this.hint = \"\";\n return;\n }\n\n let tr = \"\";\n let addOn = \"\";\n\n if (!this.forPromoCode) {\n if (this.lastPriceChange.percentage) {\n if (this.lastPriceChange.subtraction) {\n tr = \"Calendar.PriceEditor.Percentage.Sub\";\n addOn = this.changesOriginalPrice\n ? \"Calendar.PriceEditor.FromOriginalPrice\"\n : \"Calendar.PriceEditor.FromNewPrice\";\n } else {\n tr = \"Calendar.PriceEditor.Percentage.Add\";\n addOn = this.changesOriginalPrice\n ? \"Calendar.PriceEditor.ToOriginalPrice\"\n : \"Calendar.PriceEditor.ToNewPrice\";\n }\n } else {\n if (this.lastPriceChange.addition) {\n tr = \"Calendar.PriceEditor.Absolute.Add\";\n addOn = this.changesOriginalPrice\n ? \"Calendar.PriceEditor.ToOriginalPrice\"\n : \"Calendar.PriceEditor.ToNewPrice\";\n } else if (this.lastPriceChange.subtraction) {\n tr = \"Calendar.PriceEditor.Absolute.Sub\";\n addOn = this.changesOriginalPrice\n ? \"Calendar.PriceEditor.FromOriginalPrice\"\n : \"Calendar.PriceEditor.FromNewPrice\";\n } else {\n tr = \"Calendar.PriceEditor.Absolute.Set\";\n }\n }\n } else {\n if (this.lastPriceChange.percentage) {\n tr = this.lastPriceChange.value != null && this.lastPriceChange.value > 0 && !this.lastPriceChange.subtraction ? \n \"RatePlan.PromoCode.Percentage.Sub.Positive\" : \n \"RatePlan.PromoCode.Percentage.Sub\";\n } else {\n tr = this.lastPriceChange.value != null && this.lastPriceChange.value > 0 && !this.lastPriceChange.subtraction ? \n \"RatePlan.PromoCode.Absolute.Sub.Positive\" : \n \"RatePlan.PromoCode.Absolute.Sub\";\n }\n }\n \n this.hint = this.$t(tr, this.lastPriceChange).toString();\n \n this.hint += !this.forPromoCode ? \" \" + this.$t(addOn).toString() : \"\";\n }\n calculatePrice() {\n this.isInputFocused = false;\n this.formatHint();\n this.$emit(\"calculatePrice\", this.rackRatePriceChange);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceInput.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PriceInput.vue?vue&type=template&id=f464009a&scoped=true&\"\nimport script from \"./PriceInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./PriceInput.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 \"f464009a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-autocomplete',{attrs:{\"value\":_vm.value,\"items\":_vm.items,\"loading\":_vm.isLoading,\"search-input\":_vm.search,\"item-text\":\"text\",\"item-value\":\"id\",\"hide-no-data\":\"\",\"disabled\":_vm.disabled,\"label\":_vm.label,\"prepend-inner-icon\":\"fal fa-search\",\"readonly\":_vm.readonly,\"rules\":_vm.rules,\"clearable\":_vm.clearable,\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails},on:{\"input\":_vm.changed,\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event},\"click:clear\":function($event){return _vm.$emit('clear')},\"blur\":function($event){return _vm.$emit('blur')},\"keydown\":function($event){return _vm.$emit('keydown', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\n\nexport interface DefferedAutocompleteItem {\n id: number;\n text: string;\n}\n\n@Component\nexport default class DeferredAutocomplete extends Vue {\n @Prop() readonly value?: number;\n @Prop() label?: string;\n @Prop() items!: DefferedAutocompleteItem[];\n @Prop({ default: false }) disabled?: boolean;\n @Prop() isLoading?: boolean;\n @Prop() readonly?: boolean;\n @Prop() rules?: ((v: any) => boolean)[];\n @Prop({ default: false }) clearable?: boolean;\n\n @Prop({ default: false }) outlined?: boolean;\n @Prop({ default: false }) dense?: boolean;\n @Prop({ default: false }) hideDetails?: boolean;\n\n @Watch(\"value\", { immediate: true })\n async valueChanged(fresh: number) {\n if (fresh) {\n const found = this.items.find((x) => x.id === fresh);\n if (!found) {\n this.$emit(\"prefill\", { id: this.value });\n }\n }\n }\n\n changed(evt: any) {\n this.$emit(\"input\", evt);\n }\n\n search = \"\";\n @Watch(\"search\")\n searchChanged(fresh: string, old: string) {\n if (fresh !== old) {\n this.$emit(\"search\", { search: fresh });\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeferredAutocomplete.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeferredAutocomplete.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeferredAutocomplete.vue?vue&type=template&id=4cd15611&scoped=true&\"\nimport script from \"./DeferredAutocomplete.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeferredAutocomplete.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeferredAutocomplete.vue?vue&type=style&index=0&id=4cd15611&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 \"4cd15611\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\ninstallComponents(component, {VAutocomplete})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RightDrawer',{attrs:{\"open\":_vm.open},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('div',{staticClass:\"lookup-actions\",class:{\n 'flex-column': _vm.$vuetify.breakpoint.xsOnly,\n 'theme--dark': _vm.$vuetify.theme.dark,\n }},[_c('v-btn',{class:{\n 'mb-2': _vm.$vuetify.breakpoint.xsOnly,\n 'mr-2': _vm.$vuetify.breakpoint.smAndUp,\n },attrs:{\"color\":\"primary\",\"disabled\":!_vm.selection || _vm.selection.length == 0},on:{\"click\":_vm.selectCustomer}},[_vm._v(_vm._s(_vm.$t(\"Confirm\")))]),(_vm.canCreateNewCustomer)?_c('v-btn',{class:{ 'mb-2': _vm.$vuetify.breakpoint.xsOnly },attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.customerFormOpen = true}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Customer.New\"))+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){return _vm.$emit('update:open', false)}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)]},proxy:true}])},[_c('div',{staticClass:\"table-wrapper\"},[_c('v-data-table',{staticClass:\"table\",class:{ xs: _vm.$vuetify.breakpoint.xsOnly },attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"headers\":_vm.translatedHeaders,\"item-key\":\"id\",\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"sort-by\":\"name\",\"must-sort\":\"\",\"show-select\":\"\",\"single-select\":!_vm.multiple},on:{\"update:options\":function($event){_vm.options=$event}},scopedSlots:_vm._u([{key:\"header.name\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.name),callback:function ($$v) {_vm.$set(_vm.filters, \"name\", $$v)},expression:\"filters.name\"}})]}},{key:\"header.identificationNumber\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.identificationNumber),callback:function ($$v) {_vm.$set(_vm.filters, \"identificationNumber\", $$v)},expression:\"filters.identificationNumber\"}})]}},{key:\"header.countryOfResidenceName\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.countries,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t((\"Country.Official.\" + (x.isoThreeLetterCode))).toString(); },\"clearable\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.countryOfResidenceId),callback:function ($$v) {_vm.$set(_vm.filters, \"countryOfResidenceId\", $$v)},expression:\"filters.countryOfResidenceId\"}})]}},{key:\"item.countryOfResidenceName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$t(item.countryOfResidenceName)))])]}},{key:\"header.eMail\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.eMail),callback:function ($$v) {_vm.$set(_vm.filters, \"eMail\", $$v)},expression:\"filters.eMail\"}})]}},{key:\"item.eMail\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"lookup-table-email\"},[_vm._v(_vm._s(item.eMail))])]}},{key:\"header.telephoneNumber\",fn:function(ref){\n var header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.telephoneNumber),callback:function ($$v) {_vm.$set(_vm.filters, \"telephoneNumber\", $$v)},expression:\"filters.telephoneNumber\"}})]}}]),model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}})],1),_c('CustomerForm',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":null,\"prefill\":_vm.customerFormPrefilData},on:{\"update:open\":function($event){_vm.customerFormOpen=$event},\"saved\":_vm.newCustomerCreated}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport { Country } from \"@/shared/models/country\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport VCustomer from \"@/shared/models/vCustomer\";\nimport RightDrawer from \"@/components/misc/RightDrawer.vue\";\nimport CustomerForm from \"@/components/CustomerForm.vue\";\n\nimport * as _ from \"lodash\";\nimport { CustomerTypeEnum } from \"@/shared/models/enums.type\";\nimport { policyChecker } from \"@/shared/roles\";\nimport { JwtClaims } from \"@/store/modules/auth\";\n\n@Component({\n components: {\n RightDrawer,\n CustomerForm,\n },\n})\nexport default class CustomerLookup extends Vue {\n @Prop({ default: false }) open!: boolean;\n @Prop({ default: true }) canCreateNewCustomer?: boolean;\n @Prop({ default: false }) multiple?: boolean;\n @Prop({ default: null }) filterPrefil?: any;\n @Prop({ default: true }) loadImmediately?: boolean;\n @Prop() isLegalEntity?: boolean;\n @Prop({ default: false }) onlyOwners?: boolean;\n @Prop({ default: () => [] }) selected?: VCustomer[];\n\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n\n @Watch(\"open\")\n openWatch(fresh: boolean, old: boolean) {\n if (fresh && !old) {\n this.filters.countryOfResidenceId = undefined;\n if (this.filterPrefil) {\n this.filters = {\n ...this.filters,\n ...this.filterPrefil,\n }\n }\n\n if (this.selected) {\n this.selection = [...this.selected];\n }\n }\n }\n\n customerFormOpen = false;\n\n async created() {\n const promises = [];\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries());\n }\n\n await Promise.all(promises);\n }\n\n mounted() {\n if (this.loadImmediately) {\n this.load();\n }\n }\n\n @Prop() lookupHeaders?: { text: string; value: string }[];\n get translatedHeaders() {\n const headers = (this.lookupHeaders === undefined || this.lookupHeaders.length === 0) ? this.defaultHeaders : this.lookupHeaders;\n return (\n headers.map((x) => ({\n ...x,\n text: this.$t(x.text),\n })) ?? []\n );\n }\n\n get defaultHeaders() {\n return [\n {\n text: \"VCustomer.name\",\n value: \"name\",\n },\n {\n text: \"VCustomer.countryOfResidenceName\",\n value: \"countryOfResidenceName\",\n },\n ...(this.showEmail\n ? [\n {\n text: \"VCustomer.eMail\",\n value: \"eMail\",\n },\n ]\n : []),\n ...(this.isAllowedToSeeTelephoneNumber\n ? [\n {\n text: \"VCustomer.telephoneNumber\",\n value: \"telephoneNumber\",\n },\n ]\n : []),\n \n ];\n } \n\n get showEmail() {\n return policyChecker(\"READ_CUSTOMER_EMAIL\")(this.claims)\n }\n\n get isAllowedToSeeTelephoneNumber() {\n return policyChecker(\"READ_CUSTOMER_TELEPHONE_NUMBER\")(this.claims);\n }\n\n filters = {\n name: \"\",\n eMail: \"\",\n telephoneNumber: \"\",\n countryOfResidenceId: undefined as number | undefined,\n excludeIds: [] as number[],\n };\n @Watch(\"filters\", { deep: true })\n filtersChanged() {\n this.options.page = 1;\n this.debouncedLoad();\n }\n\n get filtersForParams() {\n const combinedFilters = {\n ...this.filters, \n ...this.filterPrefil, \n };\n return {\n ...this.filters,\n excludeIds: combinedFilters.excludeIds.join(\",\"),\n };\n }\n \n get customerFormPrefilData() {\n const names = (this.filters.name ?? \"\").split(\" \");\n return {\n firstName: names.splice(0, 1)[0] || \"\",\n lastName: names.join(\" \"),\n eMail: this.filters.eMail,\n telephoneNumber: this.filters.telephoneNumber,\n countryOfResidenceId: this.filters.countryOfResidenceId,\n };\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 25,\n sortBy: [\"orderByName\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n @Watch(\"options\", { deep: true })\n optionsChanged(fresh: DataOptions, old: DataOptions) {\n if (!_.isEqual(fresh, old)) {\n this.load();\n }\n }\n\n debouncedLoad = _.debounce(this.load, 500);\n\n loading = false;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/customers\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n return this.list;\n })\n .finally(() => (this.loading = false));\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == 'name' ? [\"orderByName\"] : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filtersForParams,\n onlyLegalEntities: this.isLegalEntity,\n customerTypeId: this.onlyOwners ? CustomerTypeEnum.Owner : null,\n };\n }\n\n // selection\n selection: VCustomer[] = [];\n selectCustomer() {\n if (this.selection.length > 0) {\n if (!this.multiple) {\n const selected = this.selection[0];\n this.$emit(\"selected\", selected);\n } else {\n this.$emit(\"selected\", this.selection);\n }\n\n this.selection = [];\n this.$emit(\"update:open\", false);\n }\n }\n\n newCustomerCreated(customer: CustomerModel) {\n if (!this.multiple) {\n this.$emit(\"selected\", customer);\n } else {\n const selection = [] as CustomerModel[];\n selection.push(customer);\n this.$emit(\"selected\", selection);\n }\n\n this.selection = [];\n this.$emit(\"update:open\", false);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerLookup.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerLookup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomerLookup.vue?vue&type=template&id=59c2cfc8&scoped=true&\"\nimport script from \"./CustomerLookup.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomerLookup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CustomerLookup.vue?vue&type=style&index=0&id=59c2cfc8&scoped=true&lang=scss&\"\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 \"59c2cfc8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VDataTable,VSelect,VSpacer,VTextField})\n","export type AppParam = {\n id: number;\n name: string;\n textResourceKey: string;\n description: string;\n descriptionTextResourceKey: string;\n onlyTenantAdminCanChangeValue: boolean;\n stringValue: string;\n value: any;\n\n defaultValue: string;\n overridenAtTenantLevel: boolean;\n overridenAtCountryLevel: boolean;\n typeId: number;\n};\n\nexport enum AppParamTypesEnum {\n Integer = 1,\n Boolean = 2,\n String = 3,\n Decimal = 4,\n JSON = 5,\n DateTime = 6\n}\n\nexport type AppParamPossibleValues = {\n appParamId: number;\n possibleValues: AppParamPossibleValue[];\n}\n\nexport type AppParamPossibleValue = {\n value: any;\n stringValue: string;\n name: string;\n textResourceKey: string;\n}\n\nexport enum AppParamsEnum {\n ApiGlobalTop = 1,\n ExportGlobalTop = 2,\n ApplyRatePlansToAllAccomodationUnitTypes = 5,\n TenantWorkingCurrency = 6,\n TenantFormalCurrency = 16,\n EnableMultiCurrencyInvoices = 14,\n ReservationDefaultHoldDuration = 9,\n ReservationInitialState = 10,\n ReservationFormBlankPriceOption = 81,\n ReservationShowRatePlanPopup = 83,\n ShowOwnerPriceOffset = 85,\n ReservationShowHolderInfo = 86,\n ReservationShowGuestInfo = 87,\n TenantLineItemTemplate = 94,\n CheckOutOnEVisitorState = 95,\n CheckInEVisitorState = 96,\n StatusToCheckedOutState = 97,\n StatusToCheckedInState = 98,\n ReservationTenantUsesServiceTypes = 99,\n TenantLineItemDistributionStrategy = 104,\n TenantIgnoreDocTypePrefixOnAccommodation = 106,\n TenantUnitLineRenderLineOne = 107,\n TenantUnitLineRenderLineTwo = 108,\n ReservationHideArrivalDeparture = 110,\n ReservationHideDeposit = 111,\n ReservationHideDiscount = 112,\n ReservationEVisitorCollapseExpandHideFacilityInfo = 113,\n TenantUsesPropertiesAsBusinessUnits = 116,\n\n RoutePrepaymentsForOwnNameAndOtherInvoice = 119,\n RouteInvoicesForOwnNameAndOtherInvoice = 239,\n\n ReservationEVisitorCalculateCTWithEVisitorDates = 120,\n ShowRegistrationFormButton = 121,\n ShowCopyGuestsButton = 122,\n ShowAOSPeriodColumn = 123,\n TenantGeneratesOwnersInvoices = 125,\n TenantGeneratesDeliveryNotes = 126,\n TenantUsesOfficialRates = 127,\n AllowOfficialRatesInWorkingCurrency = 228,\n OfficialRatesUseSeasonNames = 229,\n OfficialRatesDateFromDefaultsToPlus1Day = 231,\n TenantUsesAvailabilityBlockerCalculations = 241,\n\n TenantUsesLazyLoadedCalendar = 244,\n\n DisableCustomAddOnServiceLineItems = 249,\n TenantShowAddOnServiceDiscount = 251,\n\n TenantExportsSEPA = 252,\n TenantExportsOwnersInvoices = 253,\n TenantExportsAgencyCommissionInvoices = 254,\n TenantExportsGuestInvoices = 255,\n\n TenantHasAgencyCommissionForPrepayments = 256,\n TenantOfficialRateDefaultCurrency = 258,\n ShowUnpaidPrepaymentsModal = 259,\n TenantUsesInstalments = 260,\n TenantUsesBookingFees = 264,\n\n HistoricCurrencyId = 266,\n HistoricCurrencyConversionRate = 267,\n\n TenantUsesAvailabilityChangelog = 271,\n EnableOwnersPartAOSOwnerInvoices = 277,\n ChildrenAffectPAXRatePlanSelection = 279,\n ShowOwnersReservationOnDashboard = 280,\n\n AsyncBulkInvoiceGeneration = 287,\n\n CalendarOBLOSCategoriesApplicationAllowed = 288,\n CalendarRelatedRatesPriceUpdateTypeDefault = 289,\n CalendarRelatedRatesRestrictionsUpdateTypeDefault = 290,\n BusinessUnitShowCadastralInfo = 291,\n BusinessUnitShowDates = 292,\n CashRegisterEnable = 293,\n\n AutomaticRelatedAdvanceInvoiceCancellingDefault = 294,\n\n TenantCanEditPAXCategories = 297,\n TenantAutomaticPAXCategoriesAreIndividual = 298,\n TenantCanEditLOSCategories = 299,\n TenantOBRsUseRelativePricing = 300,\n\n ReservationsGridFiltersByDate = 301,\n\n CardTypeRequiredForCardPaymentMeans = 303,\n\n Allow0InputPriceForOfficialRate = 305,\n\n AsyncRatePlanAvailabiltyUpdateThresholdSize = 307,\n\n TenantUsesAgencyFees = 312,\n\n TenantUsesSelfCheckIn = 315,\n AutomaticallyChangeReservationStatusToConfirmed = 316\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{attrs:{\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\",\"no-click-animation\":\"\",\"persistent\":\"\",\"eager\":\"\",\"scrollable\":\"\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[(_vm.finDocModel)?_c('v-form',{ref:\"form\",staticClass:\"fill-height fin-doc-form\",attrs:{\"lazy-validation\":\"\",\"readonly\":_vm.isLocked}},[_c('LoadingOverlay',{staticClass:\"loading-overlay\",attrs:{\"loading\":_vm.loading}}),_c('v-card',{staticClass:\"financial-document-modal__card\",attrs:{\"height\":\"100vh\"}},[_c('v-toolbar',{staticClass:\"financial-document-modal__toolbar\"},[_c('v-toolbar-title',[_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.title)+\" \")]),_c('span',{staticClass:\"d-flex flex-column\"},[_c('span',[_vm._v(_vm._s(_vm.fiscalNumberIsMain ? _vm.finDocModel.documentIdentifier : _vm.finDocModel.documentInternalIdentifier))]),_c('span',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(_vm.fiscalNumberIsMain ? _vm.finDocModel.documentInternalIdentifier : _vm.finDocModel.documentIdentifier))])])])]),_c('div',{staticClass:\"subtitle\"},[_c('div',{staticClass:\"uppercase\"},[_vm._v(_vm._s(_vm.documentStatus))]),(_vm.finDocModel.reservationId)?_c('div',[_c('span',[_vm._v(_vm._s(_vm.$t(\"Reservation\"))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.finDocModel.reservationId))])]):_vm._e()]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('v-card-text',{staticClass:\"financial-document-modal__content\"},[(\n _vm.finDocModel.reservationId &&\n _vm.finDocModel.documentTypeId === _vm.financialDocumentTypesEnum.Racun\n )?_c('FinancialDocumentReservationSummary',{attrs:{\"reservationId\":_vm.finDocModel.reservationId}}):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('BasicInfo',{attrs:{\"finDocModel\":_vm.finDocModel,\"automaticallyCancelRelatedAdvanceInvoices\":_vm.extraOptions.automaticallyCancelRelatedAdvanceInvoices},on:{\"update:finDocModel\":function($event){_vm.finDocModel=$event},\"update:fin-doc-model\":function($event){_vm.finDocModel=$event}}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('ClientInfo',{attrs:{\"finDocModel\":_vm.finDocModel},on:{\"update:finDocModel\":function($event){_vm.finDocModel=$event},\"update:fin-doc-model\":function($event){_vm.finDocModel=$event}}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.isOpen)?_c('LineItems',{attrs:{\"finDocModel\":_vm.finDocModel},on:{\"update:finDocModel\":function($event){_vm.finDocModel=$event},\"update:fin-doc-model\":function($event){_vm.finDocModel=$event}}}):_vm._e()],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.hasTaxExemption)?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-card',{attrs:{\"height\":\"100%\"}},[_c('v-card-title',{staticClass:\"px-2 py-0\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.TaxExemptionReason\") + \"*\"))])],1),_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"rows\":\"3\",\"auto-grow\":\"\",\"counter\":\"500\",\"readonly\":_vm.isCancellation,\"rules\":[_vm.rules.required, _vm.rules.maxLength(500)]},model:{value:(_vm.finDocModel.taxExemptionReason),callback:function ($$v) {_vm.$set(_vm.finDocModel, \"taxExemptionReason\", $$v)},expression:\"finDocModel.taxExemptionReason\"}})],1)],1)],1):_vm._e(),_c('v-col',{attrs:{\"cols\":_vm.hasTaxExemption ? 4 : 8}},[_c('v-card',{attrs:{\"height\":\"100%\"}},[_c('v-card-title',{staticClass:\"px-2 py-0\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.Notes\")))])],1),_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"rows\":\"3\",\"auto-grow\":\"\",\"counter\":\"500\",\"rules\":[_vm.rules.maxLength(500)]},model:{value:(_vm.finDocModel.note),callback:function ($$v) {_vm.$set(_vm.finDocModel, \"note\", $$v)},expression:\"finDocModel.note\"}})],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('PriceSummary',{attrs:{\"finDocModel\":_vm.finDocModel,\"hasTaxRecapError\":_vm.hasTaxRecapError,\"automaticallyCancelRelatedAdvanceInvoices\":_vm.extraOptions.automaticallyCancelRelatedAdvanceInvoices},on:{\"update:hasTaxRecapError\":function($event){_vm.hasTaxRecapError=$event},\"update:has-tax-recap-error\":function($event){_vm.hasTaxRecapError=$event},\"update:automaticallyCancelRelatedAdvanceInvoices\":function($event){return _vm.$set(_vm.extraOptions, \"automaticallyCancelRelatedAdvanceInvoices\", $event)},\"update:automatically-cancel-related-advance-invoices\":function($event){return _vm.$set(_vm.extraOptions, \"automaticallyCancelRelatedAdvanceInvoices\", $event)}}})],1)],1),_c('v-spacer')],1),_c('v-footer',[_c('v-spacer'),(_vm.canAutomaticallyCancelRelatedAdvanceInvoices)?_c('v-checkbox',{staticClass:\"mr-3 mt-0\",attrs:{\"label\":_vm.$t('FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling'),\"disabled\":_vm.loading,\"hide-details\":\"\"},model:{value:(_vm.extraOptions.automaticallyCancelRelatedAdvanceInvoices),callback:function ($$v) {_vm.$set(_vm.extraOptions, \"automaticallyCancelRelatedAdvanceInvoices\", $$v)},expression:\"extraOptions.automaticallyCancelRelatedAdvanceInvoices\"}}):_vm._e(),(\n _vm.showActionButtons &&\n _vm.tenantIsFiscalizationObligor &&\n _vm.showFiscalizeCheckbox\n )?_c('v-checkbox',{staticClass:\"mr-3 mt-0\",attrs:{\"label\":_vm.$t('FinancialDocument.Fiscalize'),\"hide-details\":\"\"},model:{value:(_vm.extraOptions.fiscalizeOfferDeliveryNote),callback:function ($$v) {_vm.$set(_vm.extraOptions, \"fiscalizeOfferDeliveryNote\", $$v)},expression:\"extraOptions.fiscalizeOfferDeliveryNote\"}}):_vm._e(),(\n _vm.finDocModel.documentTypeId !== 2 &&\n _vm.finDocModel.lineItems.some(\n function (i) { return !!i.ownerId &&\n i.agencyWorkModelId ===\n _vm.agencyWorkModelsEnum.OtherNameAndOtherInvoice; }\n )\n )?_c('v-checkbox',{staticClass:\"mr-3 mt-0\",attrs:{\"label\":_vm.$t('FinancialDocument.ShowOwnerDetails'),\"loading\":_vm.loading,\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.changedShowOwnerDetails()}},model:{value:(_vm.finDocModel.basicInfo.showOwnerDetails),callback:function ($$v) {_vm.$set(_vm.finDocModel.basicInfo, \"showOwnerDetails\", $$v)},expression:\"finDocModel.basicInfo.showOwnerDetails\"}}):_vm._e(),(_vm.showCreateOwnersInvoicesCheckbox)?_c('v-checkbox',{staticClass:\"mr-3 mt-0\",attrs:{\"label\":_vm.$t('FinancialDocument.CreateOwnersInvoices'),\"loading\":_vm.loading,\"hide-details\":\"\"},model:{value:(_vm.extraOptions.createOwnersInvoicesCheckbox),callback:function ($$v) {_vm.$set(_vm.extraOptions, \"createOwnersInvoicesCheckbox\", $$v)},expression:\"extraOptions.createOwnersInvoicesCheckbox\"}}):_vm._e(),(_vm.confirmReservation)?_c('v-checkbox',{staticClass:\"mr-3 mt-0\",attrs:{\"label\":_vm.$t('ConfirmReservation'),\"hide-details\":\"\"},model:{value:(_vm.changeReservationStatus),callback:function ($$v) {_vm.changeReservationStatus=$$v},expression:\"changeReservationStatus\"}}):_vm._e(),(_vm.showStornoButton)?_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.Storno\"))+\" \")]):_vm._e(),(_vm.showActionButtons)?_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading,\"disabled\":!_vm.hasLineItems},on:{\"click\":function($event){return _vm.save(true, false, false, true)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save draft\"))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading,\"disabled\":!_vm.hasLineItems},on:{\"click\":function($event){return _vm.downloadPdfDocument()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Download pdf\"))+\" \")]),(_vm.finDocModel.fiscalizationFailed)?_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading,\"disabled\":!_vm.hasLineItems},on:{\"click\":function($event){return _vm.fiscalize(true)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.Fiscalize\"))+\" \")]):_vm._e(),(_vm.showSaveAndLockButton)?_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading,\"disabled\":!_vm.hasLineItems},on:{\"click\":function($event){return _vm.lockConfirmation(false)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Save and lock\"))+\" \")]):_vm._e(),(_vm.showMarkAsPaidButton)?_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.openPaymentModal()}}},[_vm._v(\" \"+_vm._s(_vm.finDocModel.documentTypeId === _vm.financialDocumentTypesEnum.RacunZaPredujam ? _vm.$t(\"FinancialDocument.LockPrepaymentAndMarkAsPaid\") : _vm.$t(\"FinancialDocument.MarkAsPaid\"))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mx-1\",attrs:{\"loading\":_vm.loading},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Close\"))+\" \")])],1)],1)],1):_vm._e()],1),_c('FinancialDocumentPaymentsModal',{attrs:{\"open\":_vm.paymentsForFinDocDialogOpen,\"internalLoading\":_vm.loading,\"paymentMeansId\":_vm.finDocModel.basicInfo.paymentMeansId,\"finDocModel\":_vm.finDocModel,\"payments\":_vm.paymentsList,\"workingCurrencyId\":_vm.finDocModel.workingCurrencyId,\"workingCurrencyISO3\":_vm.finDocModel.workingCurrencyISO3,\"formalCurrencyId\":_vm.finDocModel.formalCurrencyId,\"formalCurrencyISO3\":_vm.finDocModel.formalCurrencyISO3,\"automaticallyCancelRelatedAdvanceInvoices\":_vm.extraOptions.automaticallyCancelRelatedAdvanceInvoices},on:{\"update:open\":function($event){_vm.paymentsForFinDocDialogOpen=$event},\"update:finDocModel\":function($event){_vm.finDocModel=$event},\"update:fin-doc-model\":function($event){_vm.finDocModel=$event},\"update:payments\":function($event){_vm.paymentsList=$event},\"saveLockAndMarkAsPaid\":function($event){return _vm.saveLockAndMarkAsPaid()}}}),_c('v-dialog',{attrs:{\"persistent\":\"\",\"no-click-animation\":\"\",\"max-width\":\"500\"},model:{value:(_vm.autoAdvanceInvoiceCancellationDetailsDialogOpen),callback:function ($$v) {_vm.autoAdvanceInvoiceCancellationDetailsDialogOpen=$$v},expression:\"autoAdvanceInvoiceCancellationDetailsDialogOpen\"}},[_c('v-card',[_c('v-card-text',[_c('v-form',{model:{value:(_vm.autoAdvanceInvoiceCancellationDetailsDialogIsValid),callback:function ($$v) {_vm.autoAdvanceInvoiceCancellationDetailsDialogIsValid=$$v},expression:\"autoAdvanceInvoiceCancellationDetailsDialogIsValid\"}},[_c('v-alert',{attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.BackupBusinessUnitHint\" )))]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.BusinessUnit') + '*',\"items\":_vm.businessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"item-disabled\":function (x) { return x.ownerCustomerId; },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.autoAdvanceInvoiceCancellationBackupBusinessUnitId),callback:function ($$v) {_vm.autoAdvanceInvoiceCancellationBackupBusinessUnitId=$$v},expression:\"autoAdvanceInvoiceCancellationBackupBusinessUnitId\"}})],1),(_vm.cashRegisterFeature)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.CashRegister') + '*',\"items\":_vm.cashRegistersForBusinessUnit,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.autoAdvanceInvoiceCancellationBackupCashRegisterId),callback:function ($$v) {_vm.autoAdvanceInvoiceCancellationBackupCashRegisterId=$$v},expression:\"autoAdvanceInvoiceCancellationBackupCashRegisterId\"}})],1):_vm._e()],1)],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.autoAdvanceInvoiceCancellationDetailsDialogIsValid},on:{\"click\":_vm.autoAdvanceInvoiceCancellationDetailsDialogContinue}},[_vm._v(_vm._s(_vm.$t(\"Continue\")))]),_c('v-btn',{on:{\"click\":function($event){_vm.autoAdvanceInvoiceCancellationDetailsDialogOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1),_c('v-dialog',{attrs:{\"persistent\":\"\",\"no-click-animation\":\"\",\"max-width\":\"500\"},model:{value:(_vm.finDocCreateResponseDialogOpen),callback:function ($$v) {_vm.finDocCreateResponseDialogOpen=$$v},expression:\"finDocCreateResponseDialogOpen\"}},[(_vm.finDocCreateResponseDialogData)?_c('v-card',[_c('v-card-title',[(_vm.finDocCreateResponseDialogData.isSuccess)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.SaveSuccess\"))+\" \")]):_c('div',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.SaveFailed\")))])]),_c('v-card-text',_vm._l((_vm.finDocCreateResponseDialogData.advanceInvoiceCancellationResults),function(item){return _c('div',{key:item.originalDocumentId},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"t.FinancialDocumentTypes.AdvanceInvoice\"))+\" \"+_vm._s(_vm.fiscalNumberIsMain ? item.originalDocumentIdentifier : item.originalDocumentInternalIdentifier)+\" - \"),_c('span',{class:item.stornoCreationFailed ||\n item.stornoLockFailed ||\n item.stornoFiscalizationFailed\n ? 'storno-failed'\n : 'storno-success'},[_vm._v(_vm._s(item.stornoCreationFailed ? _vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.StornoCreateFailed\" ) : item.stornoLockFailed ? _vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.StornoLockFailed\" ) : item.stornoPaymentsFailed ? _vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.StornoPaymentsFailed\" ) : item.stornoFiscalizationFailed ? _vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.StornoFiscalizationFailed\" ) : _vm.$t( \"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling.StornoSuccess\" )))])])])}),0),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeAutoCancellationDialog}},[_vm._v(_vm._s(_vm.$t(\"Close\"))+\" \")])],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"summary-card-position\"},[(!_vm.isExpanded)?_c('v-card-text',{staticClass:\"d-flex justify-center pa-1\",attrs:{\"ripple\":\"\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('v-subheader',{staticClass:\"subheader-height\"},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Title\")))]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"fas fa-chevron-down\")])],1)],1):_c('v-card-text',{staticClass:\"inherit-base-color pa-2\"},[(!_vm.isReservationFound)?_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex justify-center align-center\"},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('v-subheader',{staticClass:\"subheader-height\"},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Title\")))]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"fas fa-chevron-up\")])],1)],1)]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-alert',{staticClass:\"mb-0\",attrs:{\"outlined\":\"\",\"type\":\"error\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.ReservationNotFound\")))])],1)],1):_vm._e(),(_vm.workingCurrency && _vm.isReservationFound)?_c('v-row',{staticClass:\"table\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex justify-center align-center\"},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('v-subheader',{staticClass:\"subheader-height\"},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Title\")))]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"fas fa-chevron-up\")])],1)],1)]),_c('v-col',{staticClass:\"table-cell font-weight-bold\",attrs:{\"cols\":_vm.tenantUsesInputPrice ? 3 : 9}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Price\")))]),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell font-weight-bold\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.InputPrice\")))]):_vm._e(),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell font-weight-bold\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Margin\")))]):_vm._e(),_c('v-col',{staticClass:\"table-cell justify-start pl-2\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Accommodation\")))]),_c('v-col',{staticClass:\"table-cell\",attrs:{\"cols\":_vm.tenantUsesInputPrice ? 3 : 9}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.accommodationTotalPrice, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.accommodationTotalInputPrice, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]):_vm._e(),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.accommodationTotalMargin, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", }))+\" (\"+_vm._s(_vm.getPercentage(_vm.reservationSummary.accommodationTotalMarginPercent))+\")\")]):_vm._e(),_c('v-col',{staticClass:\"table-cell justify-start pl-2\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.AddOnServices\")))]),_c('v-col',{staticClass:\"table-cell\",attrs:{\"cols\":_vm.tenantUsesInputPrice ? 3 : 9}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.addOnServicesTotalPrice, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.addOnServicesTotalInputPrice, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]):_vm._e(),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.addOnServicesTotalMargin, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", }))+\" (\"+_vm._s(_vm.getPercentage(_vm.reservationSummary.addOnServicesTotalMarginPercent))+\")\")]):_vm._e(),_c('v-col',{staticClass:\"table-cell highlight justify-start pl-2\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ReservationSummary.Total\")))]),_c('v-col',{staticClass:\"table-cell highlight\",attrs:{\"cols\":_vm.tenantUsesInputPrice ? 3 : 9}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.totalPrice, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell highlight\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.totalInputPrice, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", })))]):_vm._e(),(_vm.tenantUsesInputPrice)?_c('v-col',{staticClass:\"table-cell highlight\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.$n(_vm.reservationSummary.totalMargin, { style: \"currency\", currency: _vm.workingCurrency.isoCode, currencyDisplay: \"code\", }))+\" (\"+_vm._s(_vm.getPercentage(_vm.reservationSummary.totalMarginPercent))+\")\")]):_vm._e()],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\n\nexport interface ReservationFinancesSummaryViewModel {\n currencyCode: string;\n\n accommodationTotalPrice: number;\n accommodationTotalInputPrice?: number;\n accommodationTotalMargin?: number;\n accommodationTotalMarginPercent?: number;\n\n addOnServicesTotalPrice: number;\n addOnServicesTotalInputPrice?: number;\n addOnServicesTotalMargin?: number;\n addOnServicesTotalMarginPercent?: number;\n\n totalPrice: number;\n totalInputPrice?: number;\n totalMargin?: number;\n totalMarginPercent?: number;\n}\n\n@Component\nexport default class FinancialDocumentReservationSummary extends Vue {\n @Prop() reservationId?: number;\n\n @Getter(\"appParams/workingCurrency\") workingCurrency?: Currency;\n @Getter(\"appParams/tenantUsesInputPrice\") tenantUsesInputPrice?: boolean;\n\n isExpanded = false;\n reservationSummary = null as ReservationFinancesSummaryViewModel | null;\n\n get isReservationFound() {\n return this.reservationId && this.reservationSummary;\n }\n\n getPercentage(value: number) {\n return (\n this.$n(value * 100, {\n style: \"decimal\",\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }) + \"%\"\n );\n }\n\n mounted() {\n if (this.reservationId) {\n this.axios\n .get(\n `FinancialDocuments/GetReservationFinancesSummary/${this.reservationId}`\n )\n .then((res) => {\n this.reservationSummary = res.data ?? null;\n });\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentReservationSummary.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentReservationSummary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinancialDocumentReservationSummary.vue?vue&type=template&id=18175a70&scoped=true&\"\nimport script from \"./FinancialDocumentReservationSummary.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinancialDocumentReservationSummary.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FinancialDocumentReservationSummary.vue?vue&type=style&index=0&id=18175a70&lang=scss&scoped=true&\"\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 \"18175a70\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardText,VCol,VIcon,VRow,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',{staticClass:\"px-2 py-0\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.BasicInfo\")))])],1),(_vm.documentTypeId === 2)?_c('v-row',{staticClass:\"px-2\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.issueDate') + '*',\"rules\":[_vm.rules.required],\"readonly\":true},model:{value:(_vm.basicInfo.issueDate),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"issueDate\", $$v)},expression:\"basicInfo.issueDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.expirationDate') + '*',\"min\":_vm.basicInfo.issueDate,\"rules\":[_vm.rules.required, _vm.rules.dueDateCannotBeLessThanIssueDate],\"readonly\":_vm.isLocked},on:{\"date-selected\":function($event){_vm.basicInfo.userChangedDates = true}},model:{value:(_vm.basicInfo.dueDate),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"dueDate\", $$v)},expression:\"basicInfo.dueDate\"}})],1),(_vm.servicePeriodTextResource)?_c('v-col',{attrs:{\"cols\":_vm.cashRegisterFeature ? 4 : 6}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t(_vm.servicePeriodTextResource),\"range\":true,\"readonly\":_vm.isLocked ||\n (!_vm.enableServicePeriodEditing && _vm.finDocModelInternal.reservationId)},model:{value:(_vm.servicePeriod),callback:function ($$v) {_vm.servicePeriod=$$v},expression:\"servicePeriod\"}})],1):_vm._e(),_c('v-spacer'),_c('v-col',{attrs:{\"cols\":_vm.cashRegisterFeature ? 4 : 6}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.BusinessUnit') + '*',\"items\":_vm.sortedBusinessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"item-disabled\":function (x) { return x.ownerCustomerId; },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":true,\"readonly\":_vm.isLocked ||\n (_vm.isCancellation && !_vm.allowBusinessUnitEditForCancellation),\"rules\":[_vm.rules.required]},model:{value:(_vm.basicInfo.businessUnitId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"businessUnitId\", $$v)},expression:\"basicInfo.businessUnitId\"}})],1),(_vm.cashRegisterFeature)?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.CashRegister') + '*',\"items\":_vm.cashRegistersForBusinessUnit,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":true,\"readonly\":_vm.isLocked,\"rules\":[_vm.rules.required]},model:{value:(_vm.basicInfo.cashRegisterId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"cashRegisterId\", $$v)},expression:\"basicInfo.cashRegisterId\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{staticClass:\"v-label--active\",attrs:{\"label\":_vm.$t('VFinancialDocument.issuePlace') + '*',\"value\":_vm.basicInfo.issuePlace,\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"}})],1),(_vm.fiscalizeOffers)?_c('v-col',{attrs:{\"cols\":_vm.paymentMeansCols,\"md\":_vm.paymentMeansCols}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"readonly\":_vm.isCancellation || _vm.isLocked,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},on:{\"change\":_vm.paymentMeansChanged},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}],null,false,3100788329),model:{value:(_vm.basicInfo.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"paymentMeansId\", $$v)},expression:\"basicInfo.paymentMeansId\"}})],1):_vm._e(),(\n _vm.basicInfo.paymentMeansId === _vm.paymentMeansEnum.Ostalo ||\n _vm.paymentMeanBaseId === _vm.paymentMeansEnum.Ostalo\n )?_c('v-col',{staticClass:\"d-flex align-center justify-start\",attrs:{\"cols\":\"2\"}},[(_vm.basicInfo && _vm.finDocModelInternal)?_c('FinancialDocumentPaymentMeansAdditionalDetailsModal',{ref:\"paymentMeansAdditionalDetailsModal\",attrs:{\"paymentMeansAdditionalDetails\":_vm.basicInfo.paymentMeansAdditionalDetails,\"workingCurrencyId\":_vm.finDocModelInternal.workingCurrencyId,\"workingCurrencyISO3\":_vm.finDocModelInternal.workingCurrencyISO3,\"formalCurrencyId\":_vm.finDocModelInternal.formalCurrencyId,\"formalCurrencyISO3\":_vm.finDocModelInternal.formalCurrencyISO3,\"amountDue\":_vm.totalToPay,\"conversionRate\":_vm.finDocModelInternal.conversionRate,\"locked\":_vm.isCancellation || _vm.isLocked},on:{\"update:paymentMeansAdditionalDetails\":function($event){return _vm.$set(_vm.basicInfo, \"paymentMeansAdditionalDetails\", $event)},\"update:payment-means-additional-details\":function($event){return _vm.$set(_vm.basicInfo, \"paymentMeansAdditionalDetails\", $event)}}}):_vm._e()],1):_vm._e(),(_vm.finDocModelInternal.reservationId && _vm.basicInfo.hasSavedCreditCard)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"1\"}},[_c('CreditCardInfoModal',{attrs:{\"reservationId\":_vm.finDocModelInternal.reservationId,\"buttonType\":\"icon\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{staticClass:\"v-label--active\",attrs:{\"label\":_vm.$t('VFinancialDocument.referenceNumber'),\"value\":_vm.basicInfo.referenceNumber,\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"}})],1),(_vm.showCardTypeSelection && _vm.fiscalizeOffers)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"readonly\":_vm.isCancellation || _vm.isLocked,\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans ? [_vm.rules.required] : [],\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.basicInfo.cardTypeId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"cardTypeId\", $$v)},expression:\"basicInfo.cardTypeId\"}})],1):_vm._e()],1):_c('v-row',{staticClass:\"px-2\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.issueDate') + '*',\"rules\":[_vm.rules.required],\"readonly\":true},model:{value:(_vm.basicInfo.issueDate),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"issueDate\", $$v)},expression:\"basicInfo.issueDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t(_vm.deliveryDateTextResource) + '*',\"max\":_vm.deliveryDateMax,\"rules\":[\n _vm.rules.required,\n _vm.rules.deliveryDateCannotBeGreaterThanIssueDateIfInvoice ],\"readonly\":_vm.isLocked},on:{\"date-selected\":function($event){_vm.basicInfo.userChangedDates = true}},model:{value:(_vm.basicInfo.deliveryDate),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"deliveryDate\", $$v)},expression:\"basicInfo.deliveryDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[(_vm.documentTypeId !== 3)?_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t('VFinancialDocument.dueDate') + '*',\"min\":_vm.basicInfo.issueDate,\"rules\":[_vm.rules.required, _vm.rules.dueDateCannotBeLessThanIssueDate],\"readonly\":_vm.isLocked},on:{\"date-selected\":function($event){_vm.basicInfo.userChangedDates = true}},model:{value:(_vm.basicInfo.dueDate),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"dueDate\", $$v)},expression:\"basicInfo.dueDate\"}}):_vm._e()],1),(_vm.servicePeriodTextResource)?_c('v-col',{attrs:{\"cols\":_vm.cashRegisterFeature ? 4 : 6}},[_c('DateField',{attrs:{\"dense\":\"\",\"hideDetails\":true,\"outlined\":true,\"label\":_vm.$t(_vm.servicePeriodTextResource),\"range\":true,\"readonly\":_vm.isLocked ||\n (!_vm.enableServicePeriodEditing && _vm.finDocModelInternal.reservationId)},model:{value:(_vm.servicePeriod),callback:function ($$v) {_vm.servicePeriod=$$v},expression:\"servicePeriod\"}})],1):_vm._e(),_c('v-spacer'),_c('v-col',{attrs:{\"cols\":_vm.cashRegisterFeature ? 4 : 6}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.BusinessUnit') + '*',\"items\":_vm.sortedBusinessUnits,\"item-value\":\"id\",\"item-text\":\"name\",\"item-disabled\":function (x) { return x.ownerCustomerId; },\"outlined\":\"\",\"dense\":\"\",\"hide-details\":true,\"readonly\":_vm.isLocked ||\n (_vm.isCancellation && !_vm.allowBusinessUnitEditForCancellation) ||\n _vm.documentTypeId === 6,\"rules\":[_vm.rules.required]},model:{value:(_vm.basicInfo.businessUnitId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"businessUnitId\", $$v)},expression:\"basicInfo.businessUnitId\"}})],1),(_vm.cashRegisterFeature)?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.CashRegister') + '*',\"items\":_vm.cashRegistersForBusinessUnit,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":true,\"readonly\":_vm.isLocked,\"rules\":[_vm.rules.required]},model:{value:(_vm.basicInfo.cashRegisterId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"cashRegisterId\", $$v)},expression:\"basicInfo.cashRegisterId\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{staticClass:\"v-label--active\",attrs:{\"label\":_vm.$t('VFinancialDocument.issuePlace') + '*',\"value\":_vm.basicInfo.issuePlace,\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.paymentMeansCols,\"md\":_vm.paymentMeansCols}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"readonly\":_vm.isCancellation || _vm.isLocked || _vm.documentTypeId === 6,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required]},on:{\"change\":_vm.paymentMeansChanged},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}]),model:{value:(_vm.basicInfo.paymentMeansId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"paymentMeansId\", $$v)},expression:\"basicInfo.paymentMeansId\"}})],1),(\n _vm.basicInfo.paymentMeansId === _vm.paymentMeansEnum.Ostalo ||\n _vm.paymentMeanBaseId === _vm.paymentMeansEnum.Ostalo\n )?_c('v-col',{staticClass:\"d-flex align-center justify-start\",attrs:{\"cols\":\"2\"}},[(_vm.basicInfo && _vm.finDocModelInternal)?_c('FinancialDocumentPaymentMeansAdditionalDetailsModal',{ref:\"paymentMeansAdditionalDetailsModal\",attrs:{\"paymentMeansAdditionalDetails\":_vm.basicInfo.paymentMeansAdditionalDetails,\"workingCurrencyId\":_vm.finDocModelInternal.workingCurrencyId,\"workingCurrencyISO3\":_vm.finDocModelInternal.workingCurrencyISO3,\"formalCurrencyId\":_vm.finDocModelInternal.formalCurrencyId,\"formalCurrencyISO3\":_vm.finDocModelInternal.formalCurrencyISO3,\"amountDue\":_vm.totalToPay,\"conversionRate\":_vm.finDocModelInternal.conversionRate,\"locked\":_vm.isCancellation || _vm.isLocked},on:{\"update:paymentMeansAdditionalDetails\":function($event){return _vm.$set(_vm.basicInfo, \"paymentMeansAdditionalDetails\", $event)},\"update:payment-means-additional-details\":function($event){return _vm.$set(_vm.basicInfo, \"paymentMeansAdditionalDetails\", $event)}}}):_vm._e()],1):_vm._e(),(_vm.finDocModelInternal.reservationId && _vm.basicInfo.hasSavedCreditCard)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"1\"}},[_c('CreditCardInfoModal',{attrs:{\"reservationId\":_vm.finDocModelInternal.reservationId,\"buttonType\":\"icon\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.referenceDocument'),\"items\":_vm.previousDocuments,\"readonly\":_vm.isCancellation || _vm.isLocked,\"item-value\":\"id\",\"item-text\":_vm.isFiscalNumberMain\n ? 'documentIdentifier'\n : 'documentInternalIdentifier',\"outlined\":\"\",\"placeholder\":\" \",\"clearable\":!(_vm.isCancellation || _vm.isLocked),\"hide-details\":\"\",\"dense\":\"\"},on:{\"change\":_vm.referenceDocumentChanged},model:{value:(_vm.basicInfo.referenceDocumentId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"referenceDocumentId\", $$v)},expression:\"basicInfo.referenceDocumentId\"}})],1),(_vm.showCardTypeSelection)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"readonly\":_vm.isCancellation || _vm.isLocked,\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans ? [_vm.rules.required] : [],\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.basicInfo.cardTypeId),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"cardTypeId\", $$v)},expression:\"basicInfo.cardTypeId\"}})],1):_vm._e(),(_vm.basicInfo.referenceNumber)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{staticClass:\"v-label--active\",attrs:{\"label\":_vm.$t('VFinancialDocument.referenceNumber'),\"value\":_vm.basicInfo.referenceNumber,\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"}})],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":\"800\",\"eager\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":_vm.buttonColor,\"small\":\"\",\"text\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(\"Details\"))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"fal fa-list\")])],1)]}}]),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-form',{key:_vm.fkey,model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card',[_c('v-card-title',[_c('v-row',{staticClass:\"align-baseline mr-9\"},[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\"}},[_c('v-subheader',{staticClass:\"subheader\"},[_vm._v(_vm._s(_vm.$t(\"FinancialDocuments.PaymentMeanAdditionalDetails.Title\")))])],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('FinancialDocument.PriceSummary.ToPay'),\"suffix\":_vm.formalCurrencyISO3,\"dense\":\"\",\"readonly\":\"\",\"outlined\":\"\",\"rules\":[_vm.rules.mustBeZero(_vm.invoiceUnpaidTotalRounded)]},model:{value:(_vm.invoiceUnpaidTotalRounded),callback:function ($$v) {_vm.invoiceUnpaidTotalRounded=$$v},expression:\"invoiceUnpaidTotalRounded\"}})],1)],1)],1),_c('v-card-text',{staticClass:\"pt-0\"},[_vm._l((_vm.internalDetails),function(detail,$index){return _c('div',{key:$index},[_c('div',{staticClass:\"d-flex align-baseline\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required],\"readonly\":_vm.locked},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}],null,true),model:{value:(detail.paymentMeansId),callback:function ($$v) {_vm.$set(detail, \"paymentMeansId\", $$v)},expression:\"detail.paymentMeansId\"}})],1),(\n detail.paymentMeansId ===\n _vm.paymentMeansEnum.KreditnaKartica ||\n detail.paymentMeansId ===\n _vm.paymentMeansEnum.BankovnaKartica ||\n _vm.getPaymentMeanBaseId(detail.paymentMeansId) ===\n _vm.paymentMeansEnum.KreditnaKartica ||\n _vm.getPaymentMeanBaseId(detail.paymentMeansId) ===\n _vm.paymentMeansEnum.BankovnaKartica\n )?_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans\n ? [_vm.rules.required]\n : [],\"readonly\":_vm.locked},model:{value:(detail.cardTypeId),callback:function ($$v) {_vm.$set(detail, \"cardTypeId\", $$v)},expression:\"detail.cardTypeId\"}})],1):_vm._e(),(\n detail.paymentMeansId != _vm.paymentMeansEnum.KreditnaKartica &&\n detail.paymentMeansId != _vm.paymentMeansEnum.BankovnaKartica &&\n _vm.getPaymentMeanBaseId(detail.paymentMeansId) != _vm.paymentMeansEnum.KreditnaKartica &&\n _vm.getPaymentMeanBaseId(detail.paymentMeansId) != _vm.paymentMeansEnum.BankovnaKartica &&\n _vm.$vuetify.breakpoint.smAndDown\n )?_c('v-col',{attrs:{\"cols\":\"6\"}}):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\",\"offset-md\":detail.paymentMeansId === _vm.paymentMeansEnum.KreditnaKartica ||\n detail.paymentMeansId === _vm.paymentMeansEnum.BankovnaKartica ||\n _vm.getPaymentMeanBaseId(detail.paymentMeansId) === _vm.paymentMeansEnum.KreditnaKartica ||\n _vm.getPaymentMeanBaseId(detail.paymentMeansId) === _vm.paymentMeansEnum.BankovnaKartica\n ? 0\n : 3}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('VPayment.amount') + '*',\"rules\":[_vm.rules.required(detail.amount)],\"decimalPlaces\":2,\"validateInput\":true,\"defaultToZeroWhenEmpty\":true,\"outlined\":\"\",\"dense\":\"\",\"readonly\":_vm.locked},model:{value:(detail.amount),callback:function ($$v) {_vm.$set(detail, \"amount\", $$v)},expression:\"detail.amount\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.currency') + '*',\"items\":_vm.allowedCurrencies,\"item-value\":\"id\",\"item-text\":\"isoCode\",\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\",\"readonly\":_vm.locked},model:{value:(detail.currencyId),callback:function ($$v) {_vm.$set(detail, \"currencyId\", $$v)},expression:\"detail.currencyId\"}})],1)],1),(!_vm.locked)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalDetails = _vm.internalDetails.filter(function (x) { return x != detail; })}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1):_vm._e()],1),($index < _vm.internalDetails.length - 1)?_c('v-divider',{staticClass:\"divider\"}):_vm._e()],1)}),(!_vm.locked)?_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.addDetail}},[_vm._v(_vm._s(_vm.$t(\"Add\")))]):_vm._e()],2),_c('v-divider'),_c('v-card-actions',[(!_vm.locked)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.accept}},[_vm._v(_vm._s(_vm.$t(\"Accept\")))]):_vm._e(),_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.cancel}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PaymentMeansEnum } from \"@/shared/models/enums.type\";\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport * as _ from \"lodash\";\nimport { PaymentMeansAdditionalDetailsModel } from \"./FinancialDocumentFormParts/models\";\n\n@Component({ components: { NumericInputImproved } })\nexport default class FinancialDocumentPaymentMeansAdditionalDetailsModal extends Vue {\n isOpen = false;\n\n @PropSync(\"paymentMeansAdditionalDetails\")\n syncDetails?: PaymentMeansAdditionalDetailsModel[];\n\n internalDetails: PaymentMeansAdditionalDetailsModel[] = [];\n\n @Prop() formalCurrencyId?: number;\n @Prop() formalCurrencyISO3?: string;\n\n @Prop({ default: 0 }) amountDue?: number;\n @Prop({ default: 1 }) conversionRate?: number;\n\n @Prop() locked?: boolean;\n\n isFormValid = false;\n fkey = 0;\n\n paymentMeansEnum = PaymentMeansEnum;\n\n get amountDueRounded() {\n const rounded = _.round(this.amountDue ?? 0, 2);\n\n // because JS has signed zeros\n return rounded === 0 ? 0 : rounded;\n }\n\n get allowedCurrencies() {\n return [\n {\n id: this.formalCurrencyId,\n isoCode: this.formalCurrencyISO3,\n },\n ];\n }\n\n get invoiceUnpaidTotal() {\n return (\n (this.amountDueRounded ?? 0) -\n (this.internalDetails.reduce((sum, x) => sum + (x.amount ?? 0), 0) ?? 0)\n );\n }\n\n get invoiceUnpaidTotalRounded() {\n const rounded = _.round(this.invoiceUnpaidTotal, 2);\n\n // because JS has signed zeros\n return rounded === 0 ? 0 : rounded;\n }\n\n addDetail() {\n this.internalDetails.push({\n id: 0,\n paymentMeansId: null,\n cardTypeId: null,\n amount: null,\n currencyId: this.formalCurrencyId ?? null,\n });\n }\n\n async created() {\n const promises = [];\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n\n await Promise.all(promises);\n }\n\n mounted() {\n this.internalDetails = _.cloneDeep(this.syncDetails ?? []);\n this.fkey++;\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n mustBeZero: (value: any) => \n value === 0 || this.$t(\"Validation.MustBeZero\")\n };\n }\n\n @Watch(\"isOpen\")\n isOpenWatch(fresh: boolean) {\n if (fresh) {\n this.fkey++;\n this.internalDetails = _.cloneDeep(this.syncDetails ?? []);\n }\n }\n\n accept() {\n this.syncDetails = _.cloneDeep(this.internalDetails);\n this.isOpen = false;\n }\n\n cancel() {\n this.internalDetails = _.cloneDeep(this.syncDetails ?? []);\n this.isOpen = false;\n }\n\n get buttonColor() {\n return this.isValid ? \"primary\" : \"error\";\n }\n\n get isValid() {\n return this.isFormValid && this.invoiceUnpaidTotalRounded === 0;\n }\n\n getPaymentMeanBaseId(id: number) {\n return this.paymentMeans?.find((e) => e.id === id)?.paymentMeanBaseId;\n }\n\n // prettier-ignore\n @Action(\"codebooks/refreshPaymentMeans\") refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Action(\"codebooks/refreshCardTypes\") refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n @Getter(\"appParams/isCardTypeRequiredForCardPaymentMeans\")\n isCardTypeRequiredForCardPaymentMeans?: boolean;\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentPaymentMeansAdditionalDetailsModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentPaymentMeansAdditionalDetailsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinancialDocumentPaymentMeansAdditionalDetailsModal.vue?vue&type=template&id=7a7a151f&\"\nimport script from \"./FinancialDocumentPaymentMeansAdditionalDetailsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinancialDocumentPaymentMeansAdditionalDetailsModal.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VDivider,VForm,VIcon,VListItem,VListItemContent,VListItemTitle,VRow,VSelect,VSpacer,VSubheader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { FinDocViewModel } from \"./models\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n PaymentMeansEnum,\n} from \"@/shared/models/enums.type\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { VFinancialDocument } from \"@/shared/models/VFinancialDocument\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport FinancialDocumentPaymentMeansAdditionalDetailsModal from \"./../FinancialDocumentPaymentMeansAdditionalDetailsModal.vue\";\nimport CreditCardInfoModal from \"@/components/credit-card/CreditCardInfoModal.vue\";\nimport { getPriceSummary } from \"./functions\";\nimport * as _ from \"lodash\";\n\ninterface PreviousDocument {\n id: number;\n documentNumber: string;\n documentIdentifier: string;\n documentInternalIdentifier: string;\n issueDate: string;\n typeId: number;\n}\n\n@Component({\n components: {\n DateField,\n FinancialDocumentPaymentMeansAdditionalDetailsModal,\n CreditCardInfoModal,\n },\n})\nexport default class BasicInfo extends Vue {\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n\n @Prop() automaticallyCancelRelatedAdvanceInvoices?: boolean;\n\n paymentMeansEnum = PaymentMeansEnum;\n previousDocuments = [] as PreviousDocument[];\n\n // helper properties\n get basicInfo() {\n return this.finDocModelInternal.basicInfo;\n }\n\n get documentTypeId() {\n if (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Storno\n )\n return this.basicInfo.referenceDocumentTypeId;\n return this.finDocModelInternal.documentTypeId;\n }\n\n get isLocked() {\n return (\n this.finDocModelInternal.documentStatusId !==\n FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get isCancellation() {\n return (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Storno\n );\n }\n\n get paymentMeansCols() {\n let cols = 6;\n if (\n this.basicInfo.paymentMeansId === PaymentMeansEnum.Ostalo ||\n this.paymentMeanBaseId === PaymentMeansEnum.Ostalo\n ) {\n cols -= 2;\n }\n if (\n this.finDocModelInternal.reservationId &&\n this.basicInfo.hasSavedCreditCard\n )\n cols--;\n return cols;\n }\n\n get totalToPay() {\n const summary = getPriceSummary(this.finDocModelInternal);\n return this.automaticallyCancelRelatedAdvanceInvoices\n ? summary.toPayWithoutAdvance\n : summary.toPay;\n }\n\n get showCardTypeSelection() {\n const paymentMeansId = this.basicInfo.paymentMeansId ?? 0;\n\n if (\n paymentMeansId === PaymentMeansEnum.KreditnaKartica ||\n paymentMeansId === PaymentMeansEnum.BankovnaKartica ||\n this.paymentMeanBaseId === PaymentMeansEnum.KreditnaKartica ||\n this.paymentMeanBaseId === PaymentMeansEnum.BankovnaKartica\n ) {\n return true;\n } else {\n this.basicInfo.cardTypeId = null;\n return false;\n }\n }\n\n get paymentMeanBaseId() {\n return this.paymentMeans?.find(\n (e) => e.id === this.basicInfo.paymentMeansId\n )?.paymentMeanBaseId;\n }\n\n get deliveryDateMax() {\n return this.documentTypeId === FinancialDocumentTypesEnum.Racun ||\n this.documentTypeId === FinancialDocumentTypesEnum.RacunZaProviziju\n ? this.basicInfo.issueDate\n : undefined;\n }\n\n allowBusinessUnitEditForCancellation = false;\n @Watch(\"basicInfo.businessUnitId\", { immediate: true })\n businessUnitChangedImmediate(fresh: number | null, old: number | null) {\n if (!this.isLocked && this.basicInfo.businessUnitId) {\n const bu = this.allBusinessUnits?.find((x) => x.id === fresh);\n if (!bu || !bu.status) {\n this.basicInfo.businessUnitId = null;\n this.basicInfo.cashRegisterId = null;\n this.allowBusinessUnitEditForCancellation = true;\n }\n }\n\n if (fresh && old && fresh !== old && !this.isLocked){\n this.basicInfo.cashRegisterId = null;\n }\n }\n\n // functions\n get servicePeriod() {\n const res = [\n this.basicInfo.servicePeriodFromDate\n ? this.basicInfo.servicePeriodFromDate.substring(0, 10) ?? \"\"\n : \"\",\n this.basicInfo.servicePeriodToDate\n ? this.basicInfo.servicePeriodToDate.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n set servicePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.basicInfo.servicePeriodFromDate = val.length > 0 ? val[0] : null;\n this.basicInfo.servicePeriodToDate = val.length > 1 ? val[1] : null;\n }\n }\n\n paymentMeansChanged() {\n if (\n (this.basicInfo.paymentMeansId === PaymentMeansEnum.Ostalo ||\n this.paymentMeanBaseId === PaymentMeansEnum.Ostalo) &&\n (!this.basicInfo.paymentMeansAdditionalDetails ||\n this.basicInfo.paymentMeansAdditionalDetails.length === 0)\n ) {\n this.basicInfo.paymentMeansAdditionalDetails = [\n {\n id: 0,\n paymentMeansId: null,\n cardTypeId: null,\n amount: null,\n currencyId: this.finDocModelInternal.formalCurrencyId ?? null,\n },\n ];\n }\n }\n\n referenceDocumentChanged() {\n const refDoc = this.previousDocuments.find(\n (e) => e.id == this.basicInfo.referenceDocumentId\n );\n this.basicInfo.referenceDocumentTypeId = refDoc?.typeId ?? null;\n }\n\n @Watch(\"finDocModelInternal.reservationId\", { immediate: true })\n modelChanged(fresh?: number) {\n this.previousDocuments = [];\n if (!fresh) return;\n\n let queryParams = {};\n if (this.isCancellation) {\n queryParams = {\n $top: 1000,\n statusIds: [\n FinancialDocumentStatusEnum.Zakljucen,\n FinancialDocumentStatusEnum.Placen,\n ].join(\",\"),\n isCancellation: true,\n reservationId: fresh,\n };\n } else {\n queryParams = {\n $top: 1000,\n statusIds: [\n FinancialDocumentStatusEnum.Zakljucen,\n FinancialDocumentStatusEnum.Placen,\n FinancialDocumentStatusEnum.Storniran,\n ].join(\",\"),\n reservationId: fresh,\n };\n }\n\n this.axios\n .get>(\"/financialDocuments\", {\n params: queryParams,\n })\n .then((x) => {\n this.previousDocuments = x.data.result.map((d) => ({\n id: d.financialDocumentId,\n documentNumber: d.documentNumberComplete ?? \"\",\n documentIdentifier: d.documentIdentifier ?? \"\",\n documentInternalIdentifier: d.documentInternalIdentifier ?? \"\",\n issueDate: d.issueDate,\n typeId: d.typeId,\n }));\n });\n }\n\n // validation\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n // prettier-ignore\n dueDateCannotBeLessThanIssueDate: (value: any) =>\n ( \n value &&\n this.basicInfo &&\n this.basicInfo.dueDate &&\n this.basicInfo.issueDate &&\n !(this.basicInfo.dueDate.substr(0, 10) < this.basicInfo.issueDate.substr(0, 10))\n ) ||\n this.$t(\"Validation.FinancialDocuments.DueDateCannotBeBeforeIssueDate\"),\n // prettier-ignore\n deliveryDateCannotBeGreaterThanIssueDateIfInvoice: (value: any) =>\n ( \n value &&\n this.basicInfo &&\n this.basicInfo.deliveryDate &&\n this.basicInfo.issueDate &&\n !(this.basicInfo.issueDate.substr(0, 10) < this.basicInfo.deliveryDate.substr(0, 10))\n ) || (\n (this.documentTypeId !== FinancialDocumentTypesEnum.Racun && this.documentTypeId !== FinancialDocumentTypesEnum.RacunZaProviziju) // anly applies to invoices and commission invoices\n ) ||\n this.$t(\"Validation.FinancialDocuments.DeliveryDateCannotBeAfterIssueDate\"),\n };\n }\n\n // settings\n get servicePeriodTextResource() {\n if (!this.storedSettings?.showServicePeriod) return \"\";\n\n return this.documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam\n ? \"VFinancialDocument.Prepayment.servicePeriod\"\n : \"VFinancialDocument.servicePeriod\";\n }\n\n get deliveryDateTextResource() {\n return this.documentTypeId === FinancialDocumentTypesEnum.RacunZaPredujam\n ? \"VFinancialDocument.Prepayment.deliveryDate\"\n : \"VFinancialDocument.deliveryDate\";\n }\n\n get enableServicePeriodEditing() {\n return this.storedSettings?.enableServicePeriodEditing ?? false;\n }\n\n get fiscalizeOffers() {\n return this.storedSettings?.fiscalizeOffers ?? false;\n }\n\n get isFiscalNumberMain() {\n return this.storedSettings?.setFiscalNumberAsMain ?? false;\n }\n\n get sortedBusinessUnits() {\n //sorting availableBusinessUnits directly causes 'infinite loop error' when entering 'Storno' from 'FinancialDocumentModalForm'\n //possibly because of nested 'FinancialDocumentModalForm' and 'BasicInfo'\n //cloning to a new array before sorting solves this issue\n const cloneAvailableBusinessUnits = this.isLocked\n ? _.cloneDeep(this.allBusinessUnits)\n : _.cloneDeep(this.availableBusinessUnits);\n\n return (\n cloneAvailableBusinessUnits?.sort((a, b) =>\n !a.ownerCustomerId && b.ownerCustomerId ? -1 : 1\n ) ?? []\n );\n }\n\n get cashRegistersForBusinessUnit() {\n return this.isLocked\n ? this.allCashRegisters?.filter(\n (x) => x.id === this.basicInfo?.cashRegisterId\n ) ?? []\n : this.allCashRegisters?.filter(\n (x) => x.status && x.businessUnitId === this.basicInfo?.businessUnitId\n ) ?? [];\n }\n\n // getters and setup\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n @Getter(\"businessUnit/availableBusinessUnits\")\n availableBusinessUnits?: BusinessUnit[];\n @Getter(\"businessUnit/allBusinessUnits\") allBusinessUnits?: BusinessUnit[];\n @Getter(\"cashRegister/allCashRegisters\")\n allCashRegisters?: CashRegisterModel[];\n @Action(\"cashRegister/refreshCashRegisters\")\n refreshCashRegisters?: () => void;\n\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Action(\"codebooks/refreshCardTypes\") refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n @Getter(\"appParams/isCardTypeRequiredForCardPaymentMeans\")\n isCardTypeRequiredForCardPaymentMeans?: boolean;\n\n async created() {\n const promises = [];\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n if ((this.cardTypes?.length ?? 0) === 0 && this.refreshCardTypes) {\n promises.push(this.refreshCardTypes());\n }\n\n if (\n (this.allCashRegisters?.length ?? 0) === 0 &&\n this.refreshCashRegisters\n ) {\n promises.push(this.refreshCashRegisters());\n }\n\n await Promise.all(promises);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicInfo.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasicInfo.vue?vue&type=template&id=24847ad8&\"\nimport script from \"./BasicInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasicInfo.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCardTitle,VCol,VListItem,VListItemContent,VListItemTitle,VRow,VSelect,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.loading}}),_c('v-card-title',{staticClass:\"px-2 py-0\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.ClientInfo\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"primary\",\"disabled\":_vm.clientInfo.id === 0 || _vm.isLocked},on:{\"click\":function($event){_vm.customerFormOpen = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-pen\")])],1)],1),_c('v-row',{staticClass:\"px-2\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.name') + '*',\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"append-icon\":\"fas fa-search\",\"rules\":[_vm.rules.required, _vm.rules.customerMustBeSelected],\"readonly\":_vm.isCancellation},on:{\"click:append\":_vm.openCustomerLookup,\"input\":_vm.unselect},model:{value:(_vm.clientInfo.name),callback:function ($$v) {_vm.$set(_vm.clientInfo, \"name\", $$v)},expression:\"clientInfo.name\"}}),_c('CustomerLookup',{attrs:{\"open\":_vm.customerLookupOpen,\"filterPrefil\":_vm.filterPrefil,\"lookupHeaders\":_vm.customerSearchHeaders},on:{\"update:open\":function($event){_vm.customerLookupOpen=$event},\"selected\":_vm.selected}}),_c('CustomerForm',{attrs:{\"open\":_vm.customerFormOpen,\"customerId\":_vm.clientInfo.id},on:{\"update:open\":function($event){_vm.customerFormOpen=$event},\"saved\":_vm.selected}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.oib') +\n (_vm.clientInfo.isLegalEntity ? '*' : ''),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"append-icon\":\"fas fa-search\",\"rules\":[_vm.rules.requiredForLegalEntity, _vm.rules.customerMustBeSelected],\"readonly\":_vm.isCancellation},on:{\"click:append\":_vm.openCustomerLookup,\"input\":_vm.unselect},model:{value:(_vm.oib),callback:function ($$v) {_vm.oib=$$v},expression:\"oib\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.address') +\n (_vm.clientInfo.isLegalEntity ? '*' : ''),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.requiredForLegalEntity]},model:{value:(_vm.clientInfo.address),callback:function ($$v) {_vm.$set(_vm.clientInfo, \"address\", $$v)},expression:\"clientInfo.address\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"value\":_vm.city,\"label\":_vm.$t('VFinancialDocument.Customer.city') +\n (_vm.clientInfo.isLegalEntity ? '*' : ''),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.requiredForLegalEntity]}})],1),_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.country'),\"items\":_vm.sortedCountries,\"item-value\":\"id\",\"item-text\":\"text\",\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.clientInfo.countryId),callback:function ($$v) {_vm.$set(_vm.clientInfo, \"countryId\", $$v)},expression:\"clientInfo.countryId\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('VFinancialDocument.Customer.eMail'),\"readonly\":\"\",\"placeholder\":\" \",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.clientInfo.email),callback:function ($$v) {_vm.$set(_vm.clientInfo, \"email\", $$v)},expression:\"clientInfo.email\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { Country } from \"@/shared/models/country\";\nimport { FinDocClientInfoViewModel, FinDocViewModel } from \"./models\";\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport VCustomer, { CustomerModel } from \"@/shared/models/vCustomer\";\nimport CustomerLookup from \"@/components/misc/CustomerLookup.vue\";\nimport CustomerForm from \"@/components/CustomerForm.vue\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport * as _ from \"lodash\";\n\n@Component({\n components: {\n CustomerLookup,\n CustomerForm,\n LoadingOverlay,\n },\n})\nexport default class ClientInfo extends Vue {\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n\n loading = false;\n customerLookupOpen = false;\n customerFormOpen = false;\n\n get clientInfo() {\n return this.finDocModelInternal.clientInfo;\n }\n\n get isLocked() {\n return (\n this.finDocModelInternal.documentStatusId !==\n FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get isCancellation() {\n return (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Storno\n );\n }\n\n get city() {\n return [this.clientInfo?.postalCode, this.clientInfo?.city]\n .filter((x) => x)\n .join(\" \");\n }\n\n get sortedCountries() {\n return this.countries\n ?.map((x) => ({\n id: x.id,\n text: this.$t(`Country.Official.${x.isoThreeLetterCode}`).toString(),\n }))\n .sort((a, b) => a.text.localeCompare(b.text));\n }\n\n get oib() {\n if (this.clientInfo?.isLegalEntity)\n return this.clientInfo?.businessId ?? \"\";\n return this.clientInfo?.identificationDocumentNumber ?? \"\";\n }\n set oib(value: string) {\n if (this.clientInfo.isLegalEntity) {\n this.clientInfo.businessId = value;\n } else {\n this.clientInfo.identificationDocumentNumber = value;\n }\n }\n\n get customerSearchHeaders() {\n const headers = [\n {\n text: \"VCustomer.name\",\n value: \"name\",\n },\n {\n text: \"VFinancialDocument.Customer.oib\",\n value: \"identificationNumber\",\n },\n {\n text: \"VCustomer.countryOfResidenceName\",\n value: \"countryOfResidenceName\",\n },\n {\n text: \"VCustomer.eMail\",\n value: \"eMail\",\n },\n ];\n\n return headers;\n }\n\n get filterPrefil() {\n return {\n name: this.clientInfo.name ?? \"\",\n identificationNumber: this.oib,\n };\n }\n\n openCustomerLookup() {\n if (!this.isLocked) {\n this.customerLookupOpen = true;\n }\n }\n\n selectedCopy?: FinDocClientInfoViewModel;\n unselect() {\n if (!_.isEqual(this.clientInfo, this.selectedCopy) && this.clientInfo.id) {\n this.clientInfo.id = 0;\n this.clientInfo.name = \"\";\n this.clientInfo.isLegalEntity = false;\n this.clientInfo.address = \"\";\n this.clientInfo.city = \"\";\n this.oib = \"\";\n this.clientInfo.postalCode = \"\";\n this.clientInfo.countryId = null;\n this.clientInfo.email = \"\";\n this.clientInfo.phone = \"\";\n }\n }\n\n selected(customer: VCustomer | CustomerModel) {\n if (this.clientInfo.id === customer.id) {\n this.loadCustomer(customer.id, 0);\n } else {\n this.clientInfo.id = customer.id;\n }\n }\n\n // refresh client data any time the client's ID is changed, as long as the document status is \"U Izradi\"\n @Watch(\"clientInfo.id\")\n loadCustomer(fresh: number, old: number) {\n if (\n fresh &&\n fresh !== old &&\n this.finDocModelInternal.documentStatusId ===\n FinancialDocumentStatusEnum.UIzradi\n ) {\n this.loading = true;\n Vue.axios\n .get(\"/customers/\" + fresh)\n .then((x) => {\n const result = x.data;\n\n this.clientInfo.id = result.id;\n\n this.clientInfo.isLegalEntity = result.isLegalEntity;\n this.clientInfo.name = result.isLegalEntity\n ? result.legalEntityName ?? \"\"\n : [result.firstName, result.lastName]\n .filter((e) => !!e && e.length > 0)\n .join(\" \");\n\n this.clientInfo.countryId = result.countryOfResidenceId ?? null;\n this.oib = result.isLegalEntity\n ? result.businessId ?? \"\"\n : result.identificationDocumentNumber ?? \"\";\n this.clientInfo.email = result.eMail ?? \"\";\n this.clientInfo.phone = result.telephoneNumber ?? \"\";\n\n this.clientInfo.address = [result.streetName, result.houseNumber]\n .filter((x) => !!x && x.length > 0)\n .join(\" \");\n this.clientInfo.postalCode = result.postalCode ?? \"\";\n this.clientInfo.city = result.city ?? \"\";\n\n this.selectedCopy = _.cloneDeep(this.clientInfo);\n })\n .finally(() => (this.loading = false));\n }\n }\n\n // validation\n get rules() {\n const required = (value: any) => !!value || this.$t(\"Validation.Required\");\n\n return {\n required,\n requiredForLegalEntity: (value: any) =>\n !this.clientInfo.isLegalEntity || required(value),\n customerMustBeSelected: () =>\n !!this.clientInfo.id || this.$t(\"Customer must be selected\"),\n };\n }\n\n // getters and setup\n @Action(\"codebooks/refreshCountries\") refreshCountries?: () => Promise;\n @Getter(\"codebooks/countries\") countries?: Country[];\n\n async created() {\n const promises = [];\n\n if ((this.countries?.length ?? 0) === 0 && this.refreshCountries) {\n promises.push(this.refreshCountries());\n }\n\n await Promise.all(promises);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientInfo.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClientInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClientInfo.vue?vue&type=template&id=d33a59d6&\"\nimport script from \"./ClientInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClientInfo.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VCol,VIcon,VRow,VSelect,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',{staticClass:\"px-2 py-0\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.Items\")))])],1),_c('v-card-text',{staticClass:\"px-2 py-0\"},_vm._l((_vm.lineItems),function(item,$index){return _c('div',{key:$index,staticClass:\"d-flex\"},[_c('v-combobox',{staticClass:\"item-name\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.itemName') + '*',\"value\":item.itemName,\"no-filter\":\"\",\"items\":_vm.addOnServices,\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"append-icon\":_vm.disableCustomAddOnServiceLineItems ? '$dropdown' : '',\"loading\":_vm.isSearchingServices,\"counter\":\"500\",\"rules\":[\n _vm.rules.required(item.itemName),\n _vm.rules.maxLength(500)(item.itemName) ],\"readonly\":_vm.isCancellation},on:{\"update:search-input\":_vm.onAddOnServicesSearchInputChanged,\"keydown\":function($event){return _vm.onItemNameKeyDown($event, item)},\"change\":function($event){return _vm.onSelectedServiceChanged($event, item)},\"focus\":function($event){return _vm.onAddOnServicesSearchInputChanged(item.itemName)},\"blur\":function($event){_vm.addOnServices = []}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(\n (!_vm.addOnServices || _vm.addOnServices.length === 0) &&\n _vm.showNoAddOnServiceItems &&\n _vm.disableCustomAddOnServiceLineItems\n )?_c('div',[_c('div',{staticClass:\"d-flex justify-center py-4\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"NoResults\"))+\" \")])]):_vm._e()]},proxy:true}],null,true)}),_c('v-select',{staticClass:\"item-unit-of-measure ml-1\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.unitOfMeasure') + '*',\"items\":_vm.unitsOfMeasure,\"rules\":[_vm.rules.requiredNoZero],\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"dense\":\"\",\"readonly\":_vm.isCancellation},model:{value:(item.unitOfMeasureId),callback:function ($$v) {_vm.$set(item, \"unitOfMeasureId\", $$v)},expression:\"item.unitOfMeasureId\"}}),_c('NumericInputImproved',{staticClass:\"item-quantity ml-1\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.quantity') + '*',\"readonly\":_vm.isCancellation,\"defaultToZeroWhenEmpty\":true,\"reverse\":\"\",\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":2,\"validateInput\":true},on:{\"input\":function($event){return _vm.calculateLineItem(item, _vm.taxRates, _vm.workingToFormalConversionRate)}},model:{value:(item.decimalQuantity),callback:function ($$v) {_vm.$set(item, \"decimalQuantity\", $$v)},expression:\"item.decimalQuantity\"}}),_c('v-select',{staticClass:\"item-tax-rate ml-1\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.taxRate') + '*',\"rules\":[_vm.rules.requiredNoZero],\"items\":_vm.taxRates,\"item-value\":\"id\",\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"readonly\":_vm.isCancellation,\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.calculateLineItem(item, _vm.taxRates, _vm.workingToFormalConversionRate);\n _vm.itemTaxRateChanged();}},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{staticClass:\"select-correction\"},[_vm._v(_vm._s(item.name))])]}}],null,true),model:{value:(item.taxRateId),callback:function ($$v) {_vm.$set(item, \"taxRateId\", $$v)},expression:\"item.taxRateId\"}}),(_vm.isAnyItemFoodOrBeverage)?_c('NumericInputImproved',{staticClass:\"item-consumption-tax ml-1\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.ConsumptionTaxRate'),\"readonly\":_vm.isCancellation,\"placeholder\":\" \",\"prefix\":\"%\",\"reverse\":\"\",\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":2,\"validateInput\":true},on:{\"input\":function($event){return _vm.calculateLineItem(item, _vm.taxRates, _vm.workingToFormalConversionRate)}},model:{value:(item.consumptionTaxRate),callback:function ($$v) {_vm.$set(item, \"consumptionTaxRate\", $$v)},expression:\"item.consumptionTaxRate\"}}):_vm._e(),_c('div',{staticClass:\"item-gross-unit-price ml-1\",class:{ tooltip: _vm.tenantPaysVat }},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.grossUnitPrice') + '*',\"readonly\":_vm.isCancellation,\"defaultToZeroWhenEmpty\":true,\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":2,\"validateInput\":true,\"hideDetails\":_vm.formalCurrency.id != _vm.workingCurrency.id},on:{\"input\":function($event){return _vm.calculateLineItem(item, _vm.taxRates, _vm.workingToFormalConversionRate)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.workingCurrency.id}}),(_vm.tenantPaysVat)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netUnitPrice\"))+\": \"+_vm._s(_vm.$n(item.netUnitPrice, { style: \"currency\", currency: _vm.workingCurrency.code, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.grossUnitPrice),callback:function ($$v) {_vm.$set(item, \"grossUnitPrice\", $$v)},expression:\"item.grossUnitPrice\"}}),(_vm.formalCurrency.id != _vm.workingCurrency.id)?_c('NumericInputImproved',{staticClass:\"mt-1\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.grossUnitPrice') + '*',\"readonly\":true,\"disabled\":true,\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":2},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.formalCurrency.id}}),(_vm.tenantPaysVat)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netUnitPrice\"))+\": \"+_vm._s(_vm.$n(item.netUnitPriceAlt, { style: \"currency\", currency: _vm.formalCurrency.code, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.grossUnitPriceAlt),callback:function ($$v) {_vm.$set(item, \"grossUnitPriceAlt\", $$v)},expression:\"item.grossUnitPriceAlt\"}}):_vm._e()],1),_c('NumericInputImproved',{staticClass:\"item-discount ml-1\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.discountPercent') + '*',\"readonly\":_vm.isCancellation,\"defaultToZeroWhenEmpty\":true,\"suffix\":\"%\",\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":6,\"displayDecimalPlaces\":2,\"validateInput\":true},on:{\"input\":function($event){return _vm.calculateLineItem(item, _vm.taxRates, _vm.workingToFormalConversionRate)}},model:{value:(item.discountPercent),callback:function ($$v) {_vm.$set(item, \"discountPercent\", $$v)},expression:\"item.discountPercent\"}}),_c('div',{staticClass:\"item-gross-price ml-1\",class:{ tooltip: _vm.tenantPaysVat }},[_c('NumericInputImproved',{staticClass:\"highlight\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.grossPrice'),\"readonly\":_vm.isCancellation,\"defaultToZeroWhenEmpty\":true,\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":2,\"validateInput\":true,\"hideDetails\":_vm.formalCurrency.id != _vm.workingCurrency.id},on:{\"blur\":function($event){return _vm.calculateLineItemDiscount(item, _vm.taxRates)}},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.workingCurrency.id}}),(_vm.tenantPaysVat)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netPrice\"))+\": \"+_vm._s(_vm.$n(item.netPrice, { style: \"currency\", currency: _vm.workingCurrency.code, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.grossPrice),callback:function ($$v) {_vm.$set(item, \"grossPrice\", $$v)},expression:\"item.grossPrice\"}}),(_vm.formalCurrency.id != _vm.workingCurrency.id)?_c('NumericInputImproved',{staticClass:\"mt-1 highlight\",attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.grossPrice') + '*',\"readonly\":true,\"disabled\":true,\"outlined\":\"\",\"dense\":\"\",\"decimalPlaces\":2},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.formalCurrency.id}}),(_vm.tenantPaysVat)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netPrice\"))+\": \"+_vm._s(_vm.$n(item.netPriceAlt, { style: \"currency\", currency: _vm.formalCurrency.code, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]},proxy:true}],null,true),model:{value:(item.grossPriceAlt),callback:function ($$v) {_vm.$set(item, \"grossPriceAlt\", $$v)},expression:\"item.grossPriceAlt\"}}):_vm._e()],1),_c('v-btn',{staticClass:\"trash ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(item)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fa fa-trash\")])],1)],1)}),0),_c('v-card-actions',[(!(_vm.isLocked || _vm.isCancellation))?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.addItem}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.AddLineItem\"))+\" \")]):_vm._e(),(!(_vm.isLocked || _vm.isCancellation) && _vm.isInvoice && _vm.showActionButtons)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.multipleReservationsInvoicingOpen = !_vm.multipleReservationsInvoicingOpen}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.InvoiceMultipleReservations\"))+\" \")]):_vm._e(),(!(_vm.isLocked || _vm.isCancellation) && _vm.isInvoice && _vm.showActionButtons)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.multipleDocumentsInvoicingOpen = !_vm.multipleDocumentsInvoicingOpen}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.InvoiceMultipleDocuments\"))+\" \")]):_vm._e()],1),_c('MultipleReservationsInvoice',{attrs:{\"open\":_vm.multipleReservationsInvoicingOpen,\"reservationHolderName\":_vm.finDocModelInternal.clientInfo.name,\"servicePeriod\":_vm.servicePeriod,\"selectedPropertyId\":_vm.propertyIdForMultipleReservationsInvoicing},on:{\"update:open\":function($event){_vm.multipleReservationsInvoicingOpen=$event},\"mergeReservations\":_vm.mergeExistingReservations}}),_c('MultipleDocumentsInvoice',{attrs:{\"open\":_vm.multipleDocumentsInvoicingOpen,\"clientName\":_vm.finDocModelInternal.clientInfo.name,\"servicePeriod\":_vm.servicePeriod,\"existingLineItems\":_vm.lineItems},on:{\"update:open\":function($event){_vm.multipleDocumentsInvoicingOpen=$event},\"mergeInvoices\":_vm.mergeExistingInvoices}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"no-click-animation\":\"\",\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.internalOpen = false}},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-card',{attrs:{\"height\":\"100vh\"}},[_c('LoadingOverlay',{attrs:{\"loading\":_vm.selectingAll,\"minDelay\":550}}),_c('v-toolbar',[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.ChoseReservationsToInvoice\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalOpen = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('div',{staticClass:\"reservations-table\"},[_c('SortableHeadersTable',{ref:\"dataTable\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"idUniq\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"multipleReservationsInvoiceGrid\",\"show-select\":\"\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event}},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"disabled\":_vm.list.count === 0,\"input-value\":_vm.areAllReservationsSelected()},on:{\"change\":_vm.selectAllReservations}})]},proxy:true},{key:\"header.period\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.arrivalOrDepartureDate),callback:function ($$v) {_vm.$set(_vm.filters, \"arrivalOrDepartureDate\", $$v)},expression:\"filters.arrivalOrDepartureDate\"}})]}},{key:\"item.period\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)) + \" - \" + _vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.arrivalDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.serviceArrivalPeriod),callback:function ($$v) {_vm.serviceArrivalPeriod=$$v},expression:\"serviceArrivalPeriod\"}})]}},{key:\"item.arrivalDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.arrivalDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.departureDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.serviceDeparturePeriod),callback:function ($$v) {_vm.serviceDeparturePeriod=$$v},expression:\"serviceDeparturePeriod\"}})]}},{key:\"item.departureDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(item.departureDate)))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$tc(\"{count} of nights\", item.numberOfNights, { count: item.numberOfNights, }))+\" \")])]}},{key:\"header.reservationHolderName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationHolderName),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationHolderName\", $$v)},expression:\"filters.reservationHolderName\"}})]}},{key:\"header.reservationGuestName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationGuestName),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationGuestName\", $$v)},expression:\"filters.reservationGuestName\"}})]}},{key:\"header.accomodationUnitTypeName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.accomodationUnitName),callback:function ($$v) {_vm.$set(_vm.filters, \"accomodationUnitName\", $$v)},expression:\"filters.accomodationUnitName\"}})]}},{key:\"item.accomodationUnitTypeName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(item.accomodationUnitTypeName + (item.accomodationUnitName ? \", \" + item.accomodationUnitName : \"\"))+\" \")]),_c('div',{staticClass:\"de-emphasize\"},[_vm._v(_vm._s(item.propertyName))])]}},{key:\"header.statusId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"items\":_vm.statuses,\"item-text\":function (x) { return _vm.$t(x.text); },\"item-value\":function (x) { return x.id; },\"label\":header.text,\"calculate-widths\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.statusId),callback:function ($$v) {_vm.$set(_vm.filters, \"statusId\", $$v)},expression:\"filters.statusId\"}})]}},{key:\"item.statusId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.statusStyle(item.statusId).color,\"text-color\":\"white\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal \"+_vm._s(_vm.statusStyle(item.statusId).icon))])],1),_c('div',[_vm._v(_vm._s(_vm.$t(_vm.statusStyle(item.statusId).text)))])],1)]}},{key:\"item.totalPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalPrice, { style: \"currency\", currency: item.currencyCode, currencyDisplay: \"code\", }))+\" \")])]}},{key:\"header.reservationId\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"type\":\"number\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.reservationId),callback:function ($$v) {_vm.$set(_vm.filters, \"reservationId\", _vm._n($$v))},expression:\"filters.reservationId\"}})]}},{key:\"header.bookingDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.bookingDate),callback:function ($$v) {_vm.$set(_vm.filters, \"bookingDate\", $$v)},expression:\"filters.bookingDate\"}})]}},{key:\"item.bookingDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.bookingDate))))])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-concierge-bell\"}})],1):_vm._e()]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('div',{staticClass:\"buttons d-flex\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.selected || _vm.selected.length == 0},on:{\"click\":_vm.addToInvoice}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TransferToInvoice\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport VReservation from \"@/shared/models/vReservation\";\nimport { reservationStatuses } from \"@/shared/models/vReservation\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport { AppParam } from \"@/shared/models/appParam\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { AddOnServiceTranslation } from \"@/shared/models/addOnService\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { ReservationAccUnitModel } from \"@/components/reservation-form/types\";\nimport { parseStringToDateJS } from \"@/shared/dateFormatUtils\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport { MultipleReservationsInvoicingViewModel } from \"./types\";\nimport * as _ from \"lodash\";\n\n@Component({\n components: {\n SortableHeadersTable,\n DateField,\n LoadingOverlay,\n NoData,\n },\n})\nexport default class MultipleReservationsInvoice extends Vue {\n @PropSync(\"open\", { default: false }) internalOpen?: boolean;\n\n @Prop() reservationHolderName?: string;\n @Prop() selectedPropertyId?: number;\n @Prop({ default: () => [] }) servicePeriod?: string[];\n\n @Action(\"appParams/refreshAppParams\") refreshAppParams?: () => Promise;\n @Getter(\"appParams/appParams\") appParams?: AppParam[];\n @Getter(\"appParams/tenantUsesOfficialRates\")\n tenantUsesOfficialRates?: boolean;\n\n @Getter(\"appParams/tenantOBRsUseRelativePricing\")\n tenantOBRsUseRelativePricing?: boolean;\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\")\n serviceTypes?: ServiceType[];\n\n @Getter(\"language/language\") language?: string;\n\n async created() {\n const promises = [];\n\n if ((this.appParams?.length ?? 0) === 0 && this.refreshAppParams) {\n promises.push(this.refreshAppParams());\n }\n if ((this.serviceTypes?.length ?? 0) === 0 && this.refreshServiceTypes) {\n promises.push(this.refreshServiceTypes());\n }\n\n await Promise.all(promises);\n }\n\n settingsOpen = false;\n\n headers: SortableTableHeader[] = [\n {\n text: \"Period\",\n value: \"period\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Reservation.ArrivalDate\",\n value: \"arrivalDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Reservation.DepartureDate\",\n value: \"departureDate\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Reservation holder\",\n value: \"reservationHolderName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Guest\",\n value: \"reservationGuestName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Accomodation unit\",\n value: \"accomodationUnitTypeName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Reservation status\",\n value: \"statusId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Reservation Id\",\n value: \"reservationId\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Total price\",\n value: \"totalPrice\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n\n get serviceArrivalPeriod() {\n const res = [\n this.filters.arrivalDateFromPeriod\n ? this.filters.arrivalDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.arrivalDateToPeriod\n ? this.filters.arrivalDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set serviceArrivalPeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.arrivalDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.arrivalDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.arrivalDateFromPeriod = \"\";\n this.filters.arrivalDateToPeriod = \"\";\n }\n }\n\n get serviceDeparturePeriod() {\n const res = [\n this.filters.departureDateFromPeriod\n ? this.filters.departureDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.departureDateToPeriod\n ? this.filters.departureDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set serviceDeparturePeriod(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.departureDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.departureDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.departureDateFromPeriod = \"\";\n this.filters.departureDateToPeriod = \"\";\n }\n }\n\n filters = {\n reservationId: \"\",\n arrivalOrDepartureDate: \"\",\n bookingDate: \"\",\n arrivalDateFromPeriod: \"\",\n arrivalDateToPeriod: \"\",\n departureDateFromPeriod: \"\",\n departureDateToPeriod: \"\",\n optionExpirationDate: \"\",\n reservationHolderName: \"\",\n reservationGuestName: \"\",\n accomodationUnitName: \"\",\n otachannelName: \"\",\n statusId: null as number | null,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"internalOpen\")\n watchOpen(fresh: boolean) {\n if (fresh) {\n this.filters.reservationHolderName = this.reservationHolderName ?? \"\";\n if (this.servicePeriod && this.servicePeriod.length == 2) {\n this.filters.departureDateFromPeriod = this.servicePeriod[0];\n this.filters.departureDateToPeriod = this.servicePeriod[1];\n }\n }\n\n if (fresh && this.initLoaded) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n\n if (!fresh) {\n this.selected = [];\n (this.filters.reservationId = \"\"),\n (this.filters.arrivalOrDepartureDate = \"\"),\n (this.filters.bookingDate = \"\"),\n (this.filters.arrivalDateFromPeriod = \"\"),\n (this.filters.arrivalDateToPeriod = \"\"),\n (this.filters.departureDateFromPeriod = \"\"),\n (this.filters.departureDateToPeriod = \"\"),\n (this.filters.optionExpirationDate = \"\"),\n (this.filters.reservationHolderName = \"\"),\n (this.filters.reservationGuestName = \"\"),\n (this.filters.accomodationUnitName = \"\"),\n (this.filters.otachannelName = \"\"),\n (this.filters.statusId = null as number | null),\n (this.list = {\n result: [],\n count: 0,\n });\n }\n }\n\n // TODO: something is getting fucked here, 'sortBy' changes to NULL randomly\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"arrivalDate\"],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n loading = true;\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n\n firstLoad = true;\n initialListSize = 0;\n\n async load(): Promise {\n this.loading = true;\n return this.axios\n .get>(\"/reservations\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = {\n result: res.data.result.map((x) => ({\n ...x,\n idUniq: `${x.reservationId}:${x.reservationAccUnitTypeId}`,\n })),\n count: res.data.count,\n };\n if (this.firstLoad) {\n this.initialListSize = this.list.count ?? 0;\n }\n return this.list;\n })\n .finally(() => {\n this.scrollToTop();\n this.firstLoad = false;\n this.loading = false;\n });\n }\n\n get queryParams() {\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy[0] == \"period\"\n ? [\"arrivalDate\"]\n : this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n isFilteredByDate: false,\n };\n }\n\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n\n get statuses() {\n return reservationStatuses;\n }\n\n statusStyle(statusId: number) {\n return this.statuses.find((x) => x.id == statusId) ?? {};\n }\n\n //selection\n selected = [] as VReservation[];\n\n async addToInvoice() {\n if (!this.storedSettings && this.refreshSettings) {\n await this.refreshSettings();\n }\n\n await this.refreshAddOnServicesTranslations();\n\n const request = {\n reservationAccUnitTypeIds: this.selected.map(\n (x) => x.reservationAccUnitTypeId\n ),\n selectedPropertyId: this.selectedPropertyId,\n };\n\n this.axios\n .post(\n \"/financialDocuments/GetMultipleReservationsInvoicingData\",\n request\n )\n .then(async (res) => {\n this.$emit(\n \"mergeReservations\",\n res.data,\n this.filters.departureDateFromPeriod,\n this.filters.departureDateToPeriod\n );\n });\n }\n\n selectingAll = false;\n selectAllReservations(val: boolean) {\n this.selectingAll = true;\n this.axios\n .get(\n \"/reservations/GetAllReservationsForForMultipleReservationsInvoicing\",\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n if (val) {\n this.selected = res.data.map((x) => ({\n ...x,\n idUniq: `${x.reservationId}:${x.reservationAccUnitTypeId}`,\n }));\n } else {\n this.selected = this.selected.filter(\n (item) =>\n !res.data.some(\n (x) =>\n x.reservationAccUnitTypeId === item.reservationAccUnitTypeId\n )\n );\n }\n })\n .finally(() => {\n this.scrollToTop();\n this.selectingAll = false;\n });\n }\n\n checkOfficialRatesExist(accUnitTypes: ReservationAccUnitModel[]) {\n let officialRatesExist = true;\n accUnitTypes.forEach((x) => {\n x.dayPrices.forEach((dp) => {\n let officialRate = x.officialRates.find(\n (or) =>\n parseStringToDateJS(or.dateFrom).getTime() <=\n parseStringToDateJS(dp.date.toString()).getTime() &&\n parseStringToDateJS(or.dateTo).getTime() >=\n parseStringToDateJS(dp.date.toString()).getTime() &&\n or.serviceTypeId === dp.serviceTypeId &&\n (this.tenantOBRsUseRelativePricing ||\n or.ratePlanId === x.ratePlan?.parentRatePlanId ||\n or.ratePlanId === x.ratePlan?.id)\n );\n if (officialRate === undefined) {\n officialRate = x.officialRates.find((or) => or.isMain);\n }\n if (officialRate === undefined) {\n officialRatesExist = false;\n }\n });\n });\n\n return officialRatesExist;\n }\n\n //initialListSize will be the maximum size this table can be\n //so selected array should be compared only to that initial state\n //anything less that that can be considered as -> not all selected\n areAllReservationsSelected() {\n return (\n this.selected.length === this.initialListSize &&\n (this.list.count ?? 0) > 0\n );\n }\n\n addOnServicesTranslations: AddOnServiceTranslation[] = [];\n async refreshAddOnServicesTranslations() {\n await Vue.axios\n .get>(\"addOnServices/translations\")\n .then((res) => {\n this.addOnServicesTranslations = res.data.result;\n });\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleReservationsInvoice.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleReservationsInvoice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultipleReservationsInvoice.vue?vue&type=template&id=0d7cbd3e&scoped=true&\"\nimport script from \"./MultipleReservationsInvoice.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultipleReservationsInvoice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MultipleReservationsInvoice.vue?vue&type=style&index=0&id=0d7cbd3e&scoped=true&lang=scss&\"\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 \"0d7cbd3e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAvatar,VBtn,VCard,VCheckbox,VChip,VDialog,VIcon,VSelect,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"no-click-animation\":\"\",\"fullscreen\":\"\",\"transition\":\"dialog-bottom-transition\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.internalOpen = false}},model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_c('v-card',{attrs:{\"height\":\"100vh\"}},[_c('LoadingOverlay',{attrs:{\"loading\":_vm.selectingAll,\"minDelay\":550}}),_c('v-toolbar',[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.ChoseDocumentsToInvoice\"))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalOpen = false}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_c('div',{staticClass:\"finances\"},[_c('SortableHeadersTable',{ref:\"dataTable\",staticClass:\"documents-table\",attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"item-key\":\"financialDocumentId\",\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.list.result,\"server-items-length\":_vm.list.count,\"options\":_vm.options,\"footer-props\":{ 'items-per-page-options': [15, 25, 50, 100] },\"settingsOpen\":_vm.settingsOpen,\"tableName\":\"multipleDocumentsInvoiceGrid\",\"show-select\":\"\"},on:{\"update:headers\":function($event){_vm.headers=$event},\"update:options\":function($event){_vm.options=$event},\"update:settingsOpen\":function($event){_vm.settingsOpen=$event},\"update:settings-open\":function($event){_vm.settingsOpen=$event}},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(){return [_c('v-checkbox',{attrs:{\"disabled\":_vm.list.count === 0,\"input-value\":_vm.areAllInvoicesSelected()},on:{\"change\":_vm.selectAllInvoices}})]},proxy:true},{key:\"header.issueDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true,\"range\":true},model:{value:(_vm.issueDate),callback:function ($$v) {_vm.issueDate=$$v},expression:\"issueDate\"}})]}},{key:\"item.issueDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.issueDate))))])]}},{key:\"header.dueDate\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('DateField',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"outlined\":false,\"clearable\":true},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.dueDate),callback:function ($$v) {_vm.$set(_vm.filters, \"dueDate\", $$v)},expression:\"filters.dueDate\"}})]}},{key:\"item.dueDate\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(_vm.$d(new Date(item.dueDate))))])]}},{key:\"header.status\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"disabled\":\"\"}})]}},{key:\"item.status\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.statusTextResourceKey))+\" \")])]}},{key:\"header.documentType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-select',{staticClass:\"header-filter\",attrs:{\"label\":header.text,\"items\":_vm.allowedFinancialDocumentTypes,\"item-text\":function (x) { return _vm.$t(x.textResourceKey); },\"item-value\":\"id\",\"clearable\":\"\",\"multiple\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.documentTypeIds),callback:function ($$v) {_vm.documentTypeIds=$$v},expression:\"documentTypeIds\"}})]}},{key:\"item.documentType\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(item.documentTypeTextResourceKey))+\" \")])]}},{key:\"header.documentNumberComplete\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.documentNumberComplete),callback:function ($$v) {_vm.$set(_vm.filters, \"documentNumberComplete\", $$v)},expression:\"filters.documentNumberComplete\"}})]}},{key:\"header.documentIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.documentIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"documentIdentifier\", $$v)},expression:\"filters.documentIdentifier\"}})]}},{key:\"header.documentInternalIdentifier\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.documentInternalIdentifier),callback:function ($$v) {_vm.$set(_vm.filters, \"documentInternalIdentifier\", $$v)},expression:\"filters.documentInternalIdentifier\"}})]}},{key:\"header.customerName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.customerName),callback:function ($$v) {_vm.$set(_vm.filters, \"customerName\", $$v)},expression:\"filters.customerName\"}})]}},{key:\"item.totalDueAmount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalDueAmount, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.totalDueAmountAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"item.totalWithVat\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithVat, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithVatAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"item.vat\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.vat, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.vatAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"item.totalWithoutVat\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithoutVat, { style: \"currency\", currency: item.currency, currencyDisplay: \"code\", }))+\" \")]),(item.altCurrency)?_c('div',{staticClass:\"de-emphasize\"},[_vm._v(\" \"+_vm._s(_vm.$n(item.totalWithoutVatAltCurrency, { style: \"currency\", currency: item.altCurrency, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]}},{key:\"header.propertyName\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-text-field',{staticClass:\"header-filter\",attrs:{\"label\":header.text},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.filters.propertyName),callback:function ($$v) {_vm.$set(_vm.filters, \"propertyName\", $$v)},expression:\"filters.propertyName\"}})]}},{key:\"item.propertyName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.propertyName))])]}},{key:\"header.actions\",fn:function(){return [_c('v-btn',{ref:\"settings\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.settingsOpen = true}}},[_c('v-icon',[_vm._v(\"fal fa-fw fa-cog\")])],1)]},proxy:true},{key:\"body.append\",fn:function(){return [((!_vm.list.result || _vm.list.result.length == 0) && !_vm.loading)?_c('td',{attrs:{\"colspan\":_vm.headers.length}},[_c('NoData',{attrs:{\"icon\":\"fas fa-concierge-bell\"}})],1):_vm._e()]},proxy:true}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('div',{staticClass:\"buttons d-flex\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.selected || _vm.selected.length == 0,\"loading\":_vm.loadingMultipleDocuments},on:{\"click\":_vm.addToInvoice}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TransferToInvoice\"))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { DataOptions } from \"vuetify\";\nimport { formatOrderbyArray } from \"@/shared/sortHelperFunctions\";\nimport { SortableTableHeader } from \"@/components/generic-pms-table/SortableTableDirective\";\nimport SortableHeadersTable from \"@/components/generic-pms-table/SortableHeadersTable.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport NoData from \"@/components/misc/NoData.vue\";\nimport * as _ from \"lodash\";\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n TenantTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { AddOnServiceTranslation } from \"@/shared/models/addOnService\";\nimport { ServiceType } from \"@/shared/models/serviceType\";\nimport { FinancialDocumentType } from \"@/shared/models/financialDocumentType\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { VFinancialDocument } from \"@/shared/models/VFinancialDocument\";\nimport { MultipleDocumentsInvoicingViewModel } from \"@/components/finances/MultipleDocumentsInvoice/types\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport { JwtClaims } from \"@/store/modules/auth\";\nimport { FinDocLineItemViewModel } from \"../FinancialDocumentFormParts/models\";\n\n@Component({\n components: {\n SortableHeadersTable,\n DateField,\n LoadingOverlay,\n NoData,\n },\n})\nexport default class MultipleDocumentsInvoice extends Vue {\n loading = true;\n loadingMultipleDocuments = false;\n\n @PropSync(\"open\", { default: false }) internalOpen?: boolean;\n\n @Prop({ default: () => [] }) servicePeriod?: string[];\n @Prop() clientName?: string;\n @Prop({ default: () => [] }) existingLineItems?: FinDocLineItemViewModel[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshFinancialDocumentTypes\")\n refreshDocumentTypes?: () => Promise;\n @Getter(\"codebooks/financialDocumentTypes\")\n financialDocumentTypes?: FinancialDocumentType[];\n\n // prettier-ignore\n @Action(\"codebooks/refreshTaxRates\")refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n\n // prettier-ignore\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"language/language\") language?: string;\n\n @Action(\"codebooks/refreshServiceTypes\")\n refreshServiceTypes?: () => Promise;\n @Getter(\"codebooks/serviceTypes\")\n serviceTypes?: ServiceType[];\n\n @Getter(\"appParams/tenantGeneratesDeliveryNotes\")\n tenantGeneratesDeliveryNotes?: boolean;\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n @Getter(\"appParams/typeId\") tenantTypeId?: number;\n\n async created() {\n const promises = [];\n\n if (\n (this.financialDocumentTypes?.length ?? 0) === 0 &&\n this.refreshDocumentTypes\n ) {\n promises.push(this.refreshDocumentTypes());\n }\n\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n promises.push(this.refreshTaxRates());\n }\n\n if (this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n await Promise.all(promises);\n }\n\n settingsOpen = false;\n\n headers: SortableTableHeader[] = [];\n\n @Getter(\"auth/claims\") claims?: JwtClaims;\n @Watch(\"claims.roles\", { immediate: true })\n rolesWatch() {\n this.headers = [\n {\n text: \"VFinancialDocument.issueDate\",\n value: \"issueDate\",\n active: true,\n default: false,\n class: \"resize-header issuedate-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.documentType\",\n value: \"documentType\",\n active: true,\n default: false,\n class: \"resize-header doctype-header\",\n exportHeaders: [\"documentTypeTextResourceKey\"],\n },\n {\n text: \"VFinancialDocument.status\",\n value: \"status\",\n active: true,\n default: false,\n class: \"resize-header status-header\",\n exportHeaders: [\"statusTextResourceKey\"],\n },\n ...(this.cashRegisterFeature\n ? [\n {\n text: \"VFinancialDocument.documentIdentifier\",\n value: \"documentIdentifier\",\n active: true,\n default: false,\n class: \"resize-header docnum-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.documentInternalIdentifier\",\n value: \"documentInternalIdentifier\",\n active: true,\n default: false,\n class: \"resize-header docnum-header\",\n exportHeaders: [],\n },\n ]\n : [\n {\n text: \"VFinancialDocument.documentNumberComplete\",\n value: \"documentNumberComplete\",\n active: true,\n default: false,\n class: \"resize-header docnum-header\",\n exportHeaders: [],\n },\n ]),\n {\n text: \"VFinancialDocument.customerName\",\n value: \"customerName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.totalDueAmount\",\n value: \"totalDueAmount\",\n active: true,\n default: false,\n class: \"resize-header totaldue-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.totalWithVat\",\n value: \"totalWithVat\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.vat\",\n value: \"vat\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.totalWithoutVat\",\n value: \"totalWithoutVat\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.paymentMeans\",\n value: \"paymentMeans\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [\"paymentMeansTextResourceKey\"],\n },\n {\n text: \"VFinancialDocument.cardType\",\n value: \"cardType\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.isFiscalized\",\n value: \"isFiscalized\",\n active: false,\n default: false,\n class: \"resize-header header-filter\",\n exportHeaders: [],\n },\n ...(this.cashRegisterFeature\n ? [\n {\n text: \"VFinancialDocument.referenceDocumentIdentifier\",\n value: \"referenceDocumentIdentifier\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.referenceDocumentInternalIdentifier\",\n value: \"referenceDocumentInternalIdentifier\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]\n : [\n {\n text: \"VFinancialDocument.referenceDocument\",\n value: \"referenceDocument\",\n active: false,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ]),\n {\n text: \"VFinancialDocument.propertyName\",\n value: \"propertyName\",\n active: true,\n default: false,\n class: \"resize-header\",\n exportHeaders: [],\n },\n {\n text: \"VFinancialDocument.dueDate\",\n value: \"dueDate\",\n active: true,\n default: false,\n class: \"resize-header duedate-header\",\n exportHeaders: [],\n },\n {\n text: \"Actions\",\n value: \"actions\",\n sortable: false,\n active: true,\n default: true,\n class: \"resize-header\",\n exportHeaders: [],\n },\n ];\n }\n\n get issueDate() {\n const res = [\n this.filters.issueDateFromPeriod\n ? this.filters.issueDateFromPeriod.substring(0, 10) ?? \"\"\n : \"\",\n this.filters.issueDateToPeriod\n ? this.filters.issueDateToPeriod.substring(0, 10) ?? \"\"\n : \"\",\n ].filter((x) => !!x) as string[];\n return res;\n }\n\n set issueDate(val: string[]) {\n if (val && _.isArray(val)) {\n this.filters.issueDateFromPeriod = val.length > 0 ? val[0] : \"\";\n this.filters.issueDateToPeriod = val.length > 1 ? val[1] : \"\";\n }\n //reset value when user clears data\n else {\n this.filters.issueDateFromPeriod = \"\";\n this.filters.issueDateToPeriod = \"\";\n }\n }\n\n documentTypeIds = [] as number[];\n @Watch(\"documentTypeIds\")\n watchDocumentTypes(val: any, old: any) {\n if (!_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n filters = {\n issueDateFromPeriod: \"\",\n issueDateToPeriod: \"\",\n dueDate: \"\",\n documentNumberComplete: \"\",\n documentIdentifier: \"\",\n documentInternalIdentifier: \"\",\n statusId: FinancialDocumentStatusEnum.Zakljucen,\n customerName: \"\",\n referenceDocument: \"\",\n propertyName: \"\",\n reservationId: null as number | null,\n excludedDocumentIds: \"\",\n excludeMultiDocumentInvoices: true,\n excludeContainedInLockedMultiDocInvoices: true,\n };\n\n @Watch(\"filters\", { deep: true })\n watchFilters(val: any, old: any) {\n if (_.isEqual(val, old)) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n }\n\n @Watch(\"internalOpen\")\n watchOpen(fresh: boolean) {\n if (fresh) {\n (this.documentTypeIds = this.tenantGeneratesDeliveryNotes\n ? [FinancialDocumentTypesEnum.Otpremnica as number]\n : []),\n (this.filters.customerName = this.clientName ?? \"\");\n if (this.servicePeriod && this.servicePeriod.length == 2) {\n this.filters.issueDateFromPeriod = this.servicePeriod[0];\n this.filters.issueDateToPeriod = this.servicePeriod[1];\n }\n }\n\n if (fresh && this.initLoaded) {\n this.options.page = 1;\n this.debouncedLoad();\n }\n\n if (!fresh) {\n this.selected = [];\n (this.filters.issueDateFromPeriod = \"\"),\n (this.filters.issueDateToPeriod = \"\"),\n (this.filters.dueDate = \"\"),\n (this.filters.documentNumberComplete = \"\"),\n (this.filters.documentIdentifier = \"\"),\n (this.filters.documentInternalIdentifier = \"\"),\n (this.filters.statusId = FinancialDocumentStatusEnum.Zakljucen);\n (this.filters.customerName = \"\"),\n (this.filters.referenceDocument = \"\"),\n (this.filters.propertyName = \"\"),\n (this.filters.reservationId = null as number | null),\n (this.filters.excludedDocumentIds = \"\");\n\n this.list = {\n result: [],\n count: 0,\n };\n }\n }\n\n options: DataOptions = {\n page: 1,\n itemsPerPage: 15,\n sortBy: [\"financialDocumentId\"],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: true,\n };\n\n initLoaded = false;\n @Watch(\"options\", { deep: true })\n watchOptions(fresh: DataOptions, old: DataOptions) {\n if (!this.initLoaded || !_.isEqual(fresh, old)) {\n this.initLoaded = true;\n this.load();\n }\n }\n\n list: ListModel = {\n count: 0,\n result: [],\n };\n\n debouncedLoad = _.debounce(this.load, 500);\n\n firstLoad = true;\n initialListSize = 0;\n\n async load(): Promise> {\n this.loading = true;\n return this.axios\n .get>(\"/financialDocuments\", {\n params: this.queryParams,\n })\n .then((res) => {\n this.list = res.data;\n if (this.firstLoad) {\n this.initialListSize = this.list.count ?? 0;\n }\n return this.list;\n })\n .finally(() => {\n this.firstLoad = false;\n this.loading = false;\n });\n }\n\n get queryParams() {\n const excludedDocs = this.existingLineItems\n ? this.existingLineItems\n .filter(\n (x) =>\n x.financialDocumentId !== null &&\n x.financialDocumentId !== undefined\n )\n .map((x) => x.financialDocumentId)\n : [];\n\n const values = excludedDocs ? [...new Set(excludedDocs)] : [];\n\n this.filters.excludedDocumentIds = values.join(\",\");\n\n return {\n $skip: this.options.itemsPerPage * (this.options.page - 1),\n $top: this.options.itemsPerPage,\n $orderby: formatOrderbyArray(\n this.options.sortBy,\n this.options.sortDesc.map((x) => !x)\n ),\n $count: true,\n ...this.filters,\n documentTypeIds: this.documentTypeIds.join(\",\"),\n };\n }\n\n scrollToTop() {\n let scrollableWrapper: Element | null = null;\n\n if (this.$refs.dataTable instanceof Vue) {\n scrollableWrapper = (this.$refs.dataTable as Vue).$el.querySelector(\n \".v-data-table__wrapper\"\n );\n } else if (this.$refs.dataTable instanceof Element) {\n scrollableWrapper = (this.$refs.dataTable as Element).querySelector(\n \".v-data-table__wrapper\"\n );\n }\n\n if (scrollableWrapper) {\n scrollableWrapper.scrollTop = 0;\n }\n }\n\n //selection\n selected = [] as VFinancialDocument[];\n\n async addToInvoice() {\n this.loadingMultipleDocuments = true;\n if (!this.storedSettings && this.refreshSettings) {\n await this.refreshSettings();\n }\n\n await this.refreshAddOnServicesTranslations();\n\n const request = {\n financialDocumentIds: this.selected.map((x) => x.financialDocumentId),\n };\n\n this.axios\n .post(\n \"/financialDocuments/GetMultipleDocumentsInvoicingData\",\n request\n )\n .then(({ data }) => {\n this.$emit(\"mergeInvoices\", data);\n this.loadingMultipleDocuments = false;\n });\n }\n\n addOnServicesTranslations: AddOnServiceTranslation[] = [];\n async refreshAddOnServicesTranslations() {\n await Vue.axios\n .get>(\"addOnServices/translations\")\n .then((res) => {\n this.addOnServicesTranslations = res.data.result;\n });\n }\n\n selectingAll = false;\n selectAllInvoices(val: boolean) {\n this.selectingAll = true;\n this.axios\n .get(\n \"/financialDocuments/GetAllInvoicesForMultipleInvoicing\",\n {\n params: this.queryParams,\n }\n )\n .then((res) => {\n if (val) {\n this.selected = [...res.data];\n } else {\n this.selected = this.selected.filter(\n (item) =>\n !res.data.some(\n (x) => x.financialDocumentId === item.financialDocumentId\n )\n );\n }\n })\n .finally(() => {\n this.scrollToTop();\n this.selectingAll = false;\n });\n }\n\n //initialListSize will be the maximum size this table can be\n //so selected array should be compared only to that initial state\n //anything less that that can be considered as -> not all selected\n areAllInvoicesSelected() {\n return (\n this.selected.length === this.initialListSize &&\n (this.list.count ?? 0) > 0\n );\n }\n\n get isTenantTypeAgency(){\n return this.tenantTypeId === TenantTypesEnum.Agency;\n }\n\n get allowedFinancialDocumentTypes() {\n let types = _.cloneDeep(this.financialDocumentTypes);\n \n if (!this.isTenantTypeAgency) {\n types = types?.filter(\n document => document.id !== FinancialDocumentTypesEnum.VlasnikovRacun &&\n document.id !== FinancialDocumentTypesEnum.RacunZaProviziju\n );\n } \n if (!this.cashRegisterFeature) {\n types = types?.filter(\n document => document.id !== FinancialDocumentTypesEnum.Uplatnica &&\n document.id !== FinancialDocumentTypesEnum.Isplatnica\n );\n }\n\n return types;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleDocumentsInvoice.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleDocumentsInvoice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultipleDocumentsInvoice.vue?vue&type=template&id=7306702b&scoped=true&\"\nimport script from \"./MultipleDocumentsInvoice.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultipleDocumentsInvoice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MultipleDocumentsInvoice.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./MultipleDocumentsInvoice.vue?vue&type=style&index=1&id=7306702b&scoped=true&lang=scss&\"\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 \"7306702b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCheckbox,VDialog,VIcon,VSelect,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AddOnServiceViewForFinancialDocuments } from \"@/shared/models/addOnService\";\nimport { ListModel } from \"@/shared/models/listModel\";\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { FinDocLineItemViewModel, FinDocViewModel } from \"./models\";\nimport * as _ from \"lodash\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport {\n fillInvoiceEditingTaxExemptionReason,\n clearTaxExemption,\n calculateLineItem,\n calculateLineItemDiscount,\n} from \"./functions\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport { MultipleReservationsInvoicingViewModel } from \"../MultipleReservationsInvoice/types\";\nimport {\n MultipleDocumentsInvoicingViewModel,\n MultipleDocumentsLineItem,\n} from \"../MultipleDocumentsInvoice/types\";\nimport MultipleReservationsInvoice from \"@/components/finances/MultipleReservationsInvoice/MultipleReservationsInvoice.vue\";\nimport MultipleDocumentsInvoice from \"@/components/finances/MultipleDocumentsInvoice/MultipleDocumentsInvoice.vue\";\nimport { CustomerModel } from \"@/shared/models/vCustomer\";\nimport { round } from \"lodash\";\nimport { UnitOfMeasureView } from \"@/shared/models/unitOfMeasure\";\n\n@Component({\n components: {\n NumericInputImproved,\n CurrencyDisplay,\n MultipleReservationsInvoice,\n MultipleDocumentsInvoice,\n },\n})\nexport default class LineItems extends Vue {\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n\n isSearchingServices = false;\n addOnServices = [] as AddOnServiceViewForFinancialDocuments[];\n\n propertyIdForMultipleReservationsInvoicing: number | null = null;\n multipleReservationsInvoicingOpen = false;\n multipleDocumentsInvoicingOpen = false;\n\n get showActionButtons() {\n return !this.finDocModelInternal.reservationId;\n }\n\n get isLocked() {\n return (\n this.finDocModelInternal.documentStatusId !==\n FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get isCancellation() {\n return (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Storno\n );\n }\n\n get isInvoice() {\n return (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Racun\n );\n }\n\n get lineItems() {\n return this.finDocModelInternal.lineItems;\n }\n\n get isAnyItemFoodOrBeverage() {\n return this.lineItems.some((x) => x.isFoodAndBeverages);\n }\n\n get workingCurrency() {\n return {\n id: this.finDocModelInternal.workingCurrencyId,\n code: this.finDocModelInternal.workingCurrencyISO3,\n };\n }\n\n get formalCurrency() {\n if (!this.finDocModelInternal.formalCurrencyId) return null;\n\n return {\n id: this.finDocModelInternal.formalCurrencyId,\n code: this.finDocModelInternal.formalCurrencyISO3,\n };\n }\n\n get hasTaxExemption() {\n const taxExempt = this.lineItems.some(\n (x) => (this.taxRates?.find((e) => e.id === x.taxRateId)?.rate ?? 0) === 0\n );\n\n return taxExempt;\n }\n\n get servicePeriod() {\n if (\n this.finDocModelInternal.basicInfo.servicePeriodFromDate &&\n this.finDocModelInternal.basicInfo.servicePeriodToDate\n ) {\n return [\n this.finDocModelInternal.basicInfo.servicePeriodFromDate,\n this.finDocModelInternal.basicInfo.servicePeriodToDate,\n ];\n }\n\n return undefined;\n }\n\n // functions\n calculateLineItem = calculateLineItem;\n calculateLineItemDiscount(\n lineItem: FinDocLineItemViewModel,\n taxRates: TaxRateView[]\n ) {\n calculateLineItemDiscount(\n lineItem,\n taxRates,\n this.workingToFormalConversionRate\n );\n }\n\n itemTaxRateChanged() {\n const userInput = clearTaxExemption(\n this,\n this.lineItems,\n this.finDocModelInternal.taxExemptionReason\n );\n this.resetTaxExemption(userInput);\n }\n\n addItem() {\n let taxRate = this.taxRates[0];\n if (this.storedSettings) { \n taxRate = this.tenantPaysVat ? \n this.storedSettings.standardTaxRate : this.storedSettings.outOfScopeTaxRate \n }\n\n const counter =\n this.lineItems.length > 0\n ? Math.max(...this.lineItems.map((e) => e.itemNumber))\n : 0;\n const newLineItem = {\n ...new FinDocLineItemViewModel(),\n itemNumber: counter + 1,\n taxRateId: taxRate.id\n };\n\n calculateLineItem(\n newLineItem,\n this.taxRates,\n this.workingToFormalConversionRate\n );\n\n this.lineItems.push(newLineItem);\n }\n\n // TODO: figure out after we need complex multicurrency again\n // addExchangeDifferenceLineItem() {\n // const counter = Math.max(...this.lineItems.map((e) => e.itemNumber));\n\n // this.lineItems.push({\n // ...new FinDocLineItemViewModel(),\n // itemName: this.$t(\"ExchangeRateDifferenceLineItemName\").toString(),\n // itemNumber: counter + 1,\n // unitOfMeasureId: UnitsOfMesureEnum.Kom,\n // taxRateId: TaxRatesEnum.VatOutOfScope,\n // });\n\n // const userInput = clearTaxExemption(\n // this,\n // this.lineItems,\n // this.finDocModelInternal.taxExemptionReason\n // );\n // this.resetTaxExemption(userInput);\n // }\n\n get isMultiDocInvoice() {\n return this.lineItems.some((e) => e.sourceFinancialDocumentId);\n }\n\n removeItem(item: FinDocLineItemViewModel) {\n if (this.isMultiDocInvoice && item.sourceFinancialDocumentId) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.$t(\"DeleteMultiDocItemsConfirmation\"),\n actions: [\n {\n text: this.$t(\"Continue\"),\n fun: () => {\n this.removeAllDocumentItems(item);\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 30000,\n });\n\n return;\n }\n\n const userInput = clearTaxExemption(\n this,\n this.lineItems,\n this.finDocModelInternal.taxExemptionReason\n );\n const idx = this.lineItems.indexOf(item);\n if (idx >= 0) {\n this.lineItems.splice(idx, 1);\n }\n this.resetTaxExemption(userInput);\n }\n\n removeAllDocumentItems(item: FinDocLineItemViewModel) {\n const userInput = clearTaxExemption(\n this,\n this.lineItems,\n this.finDocModelInternal.taxExemptionReason\n );\n\n this.finDocModelInternal.lineItems =\n this.finDocModelInternal.lineItems.filter(\n (e) => e.sourceFinancialDocumentId !== item.sourceFinancialDocumentId\n );\n this.resetTaxExemption(userInput);\n }\n\n resetTaxExemption(userInput: string) {\n fillInvoiceEditingTaxExemptionReason(\n this,\n this.finDocModelInternal,\n false,\n this.tenantPaysVat\n );\n if (userInput !== \"\" && userInput != undefined) {\n if (this.finDocModelInternal.taxExemptionReason != \"\")\n this.finDocModelInternal.taxExemptionReason += \"\\n\" + userInput;\n else this.finDocModelInternal.taxExemptionReason += userInput;\n }\n }\n\n onAddOnServicesSearchInputChanged(fresh: string) {\n this.debouncedSearchAddOnServices(fresh);\n }\n\n showNoAddOnServiceItems = false;\n debouncedSearchAddOnServices = _.debounce(this.searchAddOnServices, 500);\n searchAddOnServices(search: string) {\n this.showNoAddOnServiceItems = false;\n\n if (!search && !this.disableCustomAddOnServiceLineItems) {\n this.addOnServices = [];\n this.$nextTick(() => {\n this.showNoAddOnServiceItems = true;\n });\n return;\n }\n\n this.isSearchingServices = true;\n this.axios\n .get>(\n \"addOnServices/getForDocuments\",\n {\n params: {\n name: search,\n culture: this.internalLanguage.split(\"-\")[0] ?? null,\n },\n }\n )\n .then((res) => {\n this.addOnServices = [];\n this.$nextTick(() => {\n this.addOnServices = res.data.result;\n this.showNoAddOnServiceItems = true;\n });\n })\n .finally(() => {\n this.isSearchingServices = false;\n });\n }\n\n disableLineItemChange = false;\n onItemNameKeyDown(event: KeyboardEvent, item: FinDocLineItemViewModel) {\n item.itemName = (event.target as HTMLInputElement).value;\n if (event.code == \"Tab\") {\n //remove itemName here because it messes with double events later (when pressing tab)\n if (this.disableCustomAddOnServiceLineItems) {\n item.itemName = \"\";\n }\n this.disableLineItemChange = true;\n }\n }\n\n onSelectedServiceChanged(\n value: string | AddOnServiceViewForFinancialDocuments,\n item: FinDocLineItemViewModel\n ) {\n if (typeof value === \"string\") {\n //when user presses 'Tab' key, 'onSelectedServiceChanged event will be triggered twice\n //first time with correct AOS to autocomplete, second time with string that was used to search AOS\n //so with this we are disabling that second event (flag was set to true when user pressed TAB)\n if (this.disableLineItemChange) {\n this.disableLineItemChange = false;\n return;\n } else if (this.disableCustomAddOnServiceLineItems) {\n item.itemName = \"\";\n return;\n }\n\n item.itemName = value;\n return;\n }\n\n if (value) {\n item.itemName = value.name;\n item.addOnServiceId = value.id;\n\n item.isCityTax = value.isCityTax;\n item.isFoodAndBeverages = value.isFoodAndBeverages;\n\n item.taxRateId = value.taxRateId;\n item.taxExemptionReasonFromAOS = value.taxExemptionReason;\n item.consumptionTaxRate = value.consumptionTaxRate;\n if (value.unitOfMeasureId) item.unitOfMeasureId = value.unitOfMeasureId;\n item.grossUnitPrice = value.grossPrice;\n\n calculateLineItem(\n item,\n this.taxRates,\n this.workingToFormalConversionRate\n );\n }\n\n const userInput = clearTaxExemption(\n this,\n this.lineItems,\n this.finDocModelInternal.taxExemptionReason\n );\n this.resetTaxExemption(userInput);\n }\n\n mergeExistingReservations(\n model: MultipleReservationsInvoicingViewModel,\n servicePeriodFromDate: string,\n servicePeriodToDate: string\n ) {\n this.propertyIdForMultipleReservationsInvoicing = model.propertyId;\n\n // set service period\n const incomingFrom = servicePeriodFromDate\n ? servicePeriodFromDate\n : new Date(model.servicePeriodFrom).toISOString().substr(0, 10);\n const incomingTo = servicePeriodToDate\n ? servicePeriodToDate\n : new Date(model.servicePeriodTo).toISOString().substr(0, 10);\n\n if (\n !this.finDocModelInternal.basicInfo.servicePeriodFromDate ||\n this.finDocModelInternal.basicInfo.servicePeriodFromDate > incomingFrom\n )\n this.finDocModelInternal.basicInfo.servicePeriodFromDate = incomingFrom;\n\n if (\n !this.finDocModelInternal.basicInfo.servicePeriodToDate ||\n this.finDocModelInternal.basicInfo.servicePeriodToDate < incomingTo\n )\n this.finDocModelInternal.basicInfo.servicePeriodToDate = incomingTo;\n\n // set client\n if (!this.finDocModelInternal.clientInfo.id && model.customerId) {\n this.finDocModelInternal.clientInfo.id = model.customerId;\n this.refreshClientInfo();\n }\n\n // set business unit\n if (model.defaultBusinessUnitId) {\n this.finDocModelInternal.basicInfo.businessUnitId =\n model.defaultBusinessUnitId;\n this.finDocModelInternal.basicInfo.cashRegisterId = null;\n }\n\n const newRelatedAdvanceInvoices = model.unassignedAdvanceInvoices.filter(\n (e) =>\n !this.finDocModelInternal.relatedAdvanceInvoices.some(\n (r) => r.id === e.id\n ) &&\n !this.finDocModelInternal.unassignedAdvanceInvoices.some(\n (u) => u.id === e.id\n )\n );\n\n this.finDocModelInternal.relatedAdvanceInvoices.push(\n ...newRelatedAdvanceInvoices\n );\n\n // skip adding line items for units which are already on the invoice\n const newLineItems = model.lineItems.filter(\n (x) =>\n !this.finDocModelInternal.lineItems.some(\n (e) => x.reservationAccUnitTypeId === e.reservationAccUnitTypeId\n )\n );\n\n newLineItems.forEach((e) => {\n calculateLineItem(e, this.taxRates, this.workingToFormalConversionRate);\n this.finDocModelInternal.lineItems.push({\n ...e,\n });\n });\n\n // clear empty line items and reset item numbers\n this.finDocModelInternal.lineItems =\n this.finDocModelInternal.lineItems.filter(\n (e) => _.trim(e.itemName).length !== 0 || e.grossUnitPrice !== 0\n );\n this.finDocModelInternal.lineItems.forEach(\n (e, index) => (e.itemNumber = index)\n );\n\n const userInput = clearTaxExemption(\n this,\n this.finDocModelInternal.lineItems,\n this.finDocModelInternal.taxExemptionReason\n );\n this.resetTaxExemption(userInput);\n this.multipleReservationsInvoicingOpen = false;\n\n if (model.warnings && model.warnings.length > 0) {\n model.warnings.forEach((e) => {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: e,\n timeout: 10000,\n localize: true,\n });\n });\n }\n }\n\n // multidocument invoice\n mergeExistingInvoices(data: MultipleDocumentsInvoicingViewModel[]) {\n // if there's no client set on the document then set it\n if (this.finDocModelInternal.clientInfo.id === 0) {\n const allSameClient = !data.some(\n (x) => x.customerId != data[0]?.customerId\n );\n\n if (allSameClient) {\n this.finDocModelInternal.clientInfo.id = data[0]?.customerId ?? 0;\n } else {\n this.finDocModelInternal.clientInfo.id = 0;\n }\n }\n // if there already is a client, and any of the new documents has a different client, then reset the client to empty\n else {\n const someDifferent = data.some(\n (x) => x.customerId != this.finDocModelInternal.clientInfo.id\n );\n\n if (someDifferent) {\n this.finDocModelInternal.clientInfo.id = 0;\n }\n }\n\n this.refreshClientInfo();\n\n // figure out and set the service period\n const lineItems = data.flatMap((e) => e.lineItems);\n const minDate = Math.min(\n ...lineItems.map((o) =>\n new Date(o.servicePeriodFromDate?.substr(0, 10) ?? \"\").getTime()\n )\n );\n const maxDate = Math.max(\n ...lineItems.map((o) =>\n new Date(o.servicePeriodToDate?.substr(0, 10) ?? \"\").getTime()\n )\n );\n const currentServicePeriodFrom = this.finDocModelInternal.basicInfo\n .servicePeriodFromDate\n ? new Date(\n this.finDocModelInternal.basicInfo.servicePeriodFromDate.substr(0, 10)\n ).getTime()\n : null;\n const currentServicePeriodTo = this.finDocModelInternal.basicInfo\n .servicePeriodToDate\n ? new Date(\n this.finDocModelInternal.basicInfo.servicePeriodToDate.substr(0, 10)\n ).getTime()\n : null;\n\n try {\n if (!currentServicePeriodFrom || currentServicePeriodFrom > minDate) {\n this.finDocModelInternal.basicInfo.servicePeriodFromDate = new Date(\n minDate\n )\n .toISOString()\n .substr(0, 10);\n }\n } catch {\n this.finDocModelInternal.basicInfo.servicePeriodFromDate = null;\n }\n\n try {\n if (!currentServicePeriodTo || currentServicePeriodTo < maxDate) {\n this.finDocModelInternal.basicInfo.servicePeriodToDate = new Date(\n maxDate\n )\n .toISOString()\n .substr(0, 10);\n }\n } catch {\n this.finDocModelInternal.basicInfo.servicePeriodToDate = null;\n }\n\n // remove empty line items, and reset itemNumber values\n this.finDocModelInternal.lineItems =\n this.finDocModelInternal.lineItems.filter(\n (e) => _.trim(e.itemName).length !== 0 || e.grossUnitPrice !== 0\n );\n this.finDocModelInternal.lineItems.forEach(\n (e, index) => (e.itemNumber = index)\n );\n let counter = Math.max(\n ...this.finDocModelInternal.lineItems.map((x) => x.itemNumber),\n 0\n );\n\n const originalTotalPrice = this.finDocModelInternal.lineItems.reduce(\n (sum, e) => sum + e.grossPrice,\n 0\n );\n\n // add new line items\n for (const item of lineItems) {\n const doc = data.find(\n (e) => e.financialDocumentId === item.financialDocumentId\n );\n if (doc) {\n const newItem: FinDocLineItemViewModel = {\n ...new FinDocLineItemViewModel(),\n itemName: this.getMultiDocumentLineItemName(item, doc),\n itemNumber: ++counter,\n financialDocumentId: this.finDocModelInternal.id,\n sourceFinancialDocumentId: item.financialDocumentId,\n sourceLineItemId: item.id,\n reservationAccUnitTypeId: item.reservationAccUnitTypeId,\n resAccUnitTypeAddOnServiceId: item.resAccUnitTypeAddOnServiceId,\n addOnServiceId: item.addOnServiceId,\n isCityTax: item.isCityTax,\n isFoodAndBeverages: item.isFoodAndBeverages,\n\n unitOfMeasureId: item.unitOfMeasureId,\n decimalQuantity: item.decimalQuantity,\n taxRateId: item.taxRateId,\n consumptionTaxRate: item.consumptionTaxRate,\n grossUnitPrice: item.grossUnitPrice,\n discountPercent: item.discountPercent,\n\n ownerId: item.ownerId,\n agencyWorkModelId: item.agencyWorkModelId,\n ownerIsLegalEntity: item.ownerIsLegalEntity,\n taxExemptionReasonFromAOS: item.taxExemptionReasonFromAOS,\n isGroupedStayLineItem: item.isGroupedStayLineItem,\n\n isStayCancellation: item.isStayCancellation,\n ownerIsResident: item.ownerIsResident,\n ownerPaysVAT: item.ownerPaysVAT,\n ownerVatId: item.ownerVatId,\n isExchangeRateDifference: item.isExchangeRateDifference,\n };\n\n calculateLineItem(\n newItem,\n this.taxRates,\n this.workingToFormalConversionRate\n );\n\n this.finDocModelInternal.lineItems.push(newItem);\n }\n }\n\n // calculate the discount (it should always be 0 since we've made it obsolete, but some old docs can have it so we need to do this just in case)\n const originalDiscountAmount = round(\n originalTotalPrice * (this.finDocModelInternal.discountPercent / 100),\n 2\n );\n\n const addedDiscountAmount = data.reduce(\n (sum, e) => sum + e.discountAmount,\n 0\n );\n const totalDiscount = originalDiscountAmount + addedDiscountAmount;\n\n const finalPrice = this.finDocModelInternal.lineItems.reduce(\n (sum, e) => sum + e.grossPrice,\n 0\n );\n this.finDocModelInternal.discountPercent = round(\n (totalDiscount / finalPrice) * 100,\n 6\n );\n\n // add any missing tax exemption reasons\n const missingTaxExemptions = data.reduce((sum, e) => {\n if (\n !sum.includes(e.taxExemptionReason) &&\n !this.finDocModelInternal.taxExemptionReason.includes(\n e.taxExemptionReason\n )\n )\n return [...sum, e.taxExemptionReason];\n return sum;\n }, [] as string[]);\n\n if (this.finDocModelInternal.taxExemptionReason.trim().length === 0)\n this.finDocModelInternal.taxExemptionReason =\n missingTaxExemptions.join(\"\\n\");\n else if (missingTaxExemptions.length > 0) {\n this.finDocModelInternal.taxExemptionReason +=\n \"\\n\" + missingTaxExemptions.join(\"\\n\");\n }\n\n // add any missing notes\n const missingNotes = data.reduce((sum, e) => {\n if (\n !sum.includes(e.note) &&\n !this.finDocModelInternal.note.includes(e.note)\n )\n return [...sum, e.note];\n return sum;\n }, [] as string[]);\n\n if (this.finDocModelInternal.note.trim().length === 0)\n this.finDocModelInternal.note = missingNotes.join(\"\\n\");\n else if (missingNotes.length > 0) {\n this.finDocModelInternal.note += \"\\n\" + missingNotes.join(\"\\n\");\n }\n\n this.multipleDocumentsInvoicingOpen = false;\n }\n\n getMultiDocumentLineItemName(\n item: MultipleDocumentsLineItem,\n document: MultipleDocumentsInvoicingViewModel\n ) {\n let name = item.itemName;\n const servicePeriodFromDate = new Date(item.servicePeriodFromDate ?? \"\");\n const servicePeriodToDate = new Date(item.servicePeriodToDate ?? \"\");\n\n if (\n !isNaN(servicePeriodFromDate.getTime()) &&\n !isNaN(servicePeriodToDate.getTime())\n ) {\n name +=\n \" (\" +\n servicePeriodFromDate.toLocaleDateString(this.internalLanguage) +\n \" - \" +\n servicePeriodToDate.toLocaleDateString(this.internalLanguage) +\n \")\";\n }\n\n name += \" - \" + this.$t(document.documentTypeTextResourceKey).toString();\n\n if (\n document.documentInternalIdentifier &&\n document.documentInternalIdentifier.trim()\n ) {\n name += \" \" + document.documentInternalIdentifier;\n }\n return name;\n }\n\n refreshClientInfo() {\n if (this.finDocModelInternal.clientInfo.id) {\n Vue.axios\n .get(\n \"/customers/\" + this.finDocModelInternal.clientInfo.id\n )\n .then((x) => {\n const result = x.data;\n\n this.finDocModelInternal.clientInfo.isLegalEntity =\n result.isLegalEntity;\n this.finDocModelInternal.clientInfo.name = result.isLegalEntity\n ? result.legalEntityName ?? \"\"\n : [result.firstName, result.lastName]\n .filter((e) => !!e && e.length > 0)\n .join(\" \");\n\n this.finDocModelInternal.clientInfo.countryId =\n result.countryOfResidenceId ?? null;\n this.finDocModelInternal.clientInfo.businessId =\n result.businessId ?? \"\";\n this.finDocModelInternal.clientInfo.identificationDocumentNumber =\n result.identificationDocumentNumber ?? \"\";\n this.finDocModelInternal.clientInfo.email = result.eMail ?? \"\";\n this.finDocModelInternal.clientInfo.phone =\n result.telephoneNumber ?? \"\";\n this.finDocModelInternal.clientInfo.address = [\n x.data.streetName,\n x.data.houseNumber,\n ]\n .filter((x) => !!x && x.length > 0)\n .join(\" \");\n this.finDocModelInternal.clientInfo.postalCode =\n x.data.postalCode ?? \"\";\n this.finDocModelInternal.clientInfo.city = x.data.city ?? \"\";\n });\n } else {\n this.finDocModelInternal.clientInfo.name = \"\";\n this.finDocModelInternal.clientInfo.isLegalEntity = false;\n this.finDocModelInternal.clientInfo.address = \"\";\n this.finDocModelInternal.clientInfo.city = \"\";\n this.finDocModelInternal.clientInfo.businessId = \"\";\n this.finDocModelInternal.clientInfo.identificationDocumentNumber = \"\";\n this.finDocModelInternal.clientInfo.postalCode = \"\";\n this.finDocModelInternal.clientInfo.countryId = null;\n this.finDocModelInternal.clientInfo.email = \"\";\n this.finDocModelInternal.clientInfo.phone = \"\";\n }\n }\n\n // validation\n get rules() {\n return {\n requiredNoZero: (value: any) => !!value || this.$t(\"Validation.Required\"),\n required: (value: any) =>\n !!value || value === 0 || this.$t(\"Validation.Required\"),\n maxLength: (max: number) => (v: string) =>\n v.length <= max || this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n\n // settings and setup\n @Getter(\"language/language\") language?: string;\n @Getter(\"appParams/disableCustomAddOnServiceLineItems\")\n disableCustomAddOnServiceLineItems?: boolean;\n @Action(\"codebooks/refreshTaxRates\") refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRatesGetter?: TaxRateView[];\n @Getter(\"codebooks/unitsOfMeasure\") unitsOfMeasure?: UnitOfMeasureView[];\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get tenantPaysVat() {\n return this.storedSettings?.paysVat ?? false;\n }\n\n get taxRates() {\n return this.taxRatesGetter ?? [];\n }\n\n get workingToFormalConversionRate() {\n return this.finDocModelInternal.workingToFormalConversionRate ?? 1;\n }\n\n async created() {\n const promises = [];\n\n if ((this.taxRatesGetter?.length ?? 0) === 0 && this.refreshTaxRates) {\n promises.push(this.refreshTaxRates());\n }\n\n await Promise.all(promises);\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineItems.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineItems.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LineItems.vue?vue&type=template&id=77de9706&scoped=true&\"\nimport script from \"./LineItems.vue?vue&type=script&lang=ts&\"\nexport * from \"./LineItems.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LineItems.vue?vue&type=style&index=0&id=77de9706&lang=scss&scoped=true&\"\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 \"77de9706\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCombobox,VIcon,VSelect,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"height\":\"100%\"}},[_c('v-card-title',{staticClass:\"px-2 py-0\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.PriceSummary\")))])],1),_c('v-row',{staticClass:\"py-1 px-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{staticClass:\"highlight\",attrs:{\"value\":_vm.summary.gross,\"label\":_vm.$t('VFinancialDocument.LineItem.grossPrice'),\"readonly\":true,\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.workingCurrency.id}}),(_vm.tenantPaysVat)?_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,false,743260546)},[_vm._v(\" \"+_vm._s(_vm.$t(\"VFinancialDocument.LineItem.netPrice\"))+\": \"+_vm._s(_vm.$n(_vm.summary.net, { style: \"currency\", currency: _vm.workingCurrency.code, currencyDisplay: \"code\", }))+\" \")]):_vm._e()]},proxy:true}])})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{staticClass:\"advance\",attrs:{\"value\":_vm.summary.advance,\"label\":_vm.$t('FinancialDocument.PriceSummary.ApplyAdvance'),\"readonly\":true,\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.workingCurrency.id}})]},proxy:true},{key:\"append-outer\",fn:function(){return [(_vm.canChooseAdvances)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function () { return (_vm.advancePickerOpen = true); }}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-pencil\")])],1):_vm._e()]},proxy:true}])}),(_vm.canChooseAdvances)?_c('AdvancePicker',{attrs:{\"finDocModel\":_vm.finDocModelInternal,\"open\":_vm.advancePickerOpen},on:{\"update:finDocModel\":function($event){_vm.finDocModelInternal=$event},\"update:fin-doc-model\":function($event){_vm.finDocModelInternal=$event},\"close\":function () { return (_vm.advancePickerOpen = false); }}}):_vm._e()],1),(\n _vm.finDocModelInternal.discountPercent != null &&\n _vm.finDocModelInternal.discountPercent !== 0\n )?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('VFinancialDocument.LineItem.discountPercent'),\"disabled\":true,\"reverse\":\"\",\"prefix\":\"%\",\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":\"\"},model:{value:(_vm.finDocModelInternal.discountPercent),callback:function ($$v) {_vm.$set(_vm.finDocModelInternal, \"discountPercent\", $$v)},expression:\"finDocModelInternal.discountPercent\"}})],1):_vm._e(),(\n _vm.finDocModelInternal.discountPercent != null &&\n _vm.finDocModelInternal.discountPercent !== 0\n )?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{attrs:{\"value\":_vm.summary.discount,\"label\":_vm.$t('VFinancialDocument.LineItem.discountPercent'),\"disabled\":true,\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.workingCurrency.id}})]},proxy:true}],null,false,3003460299)})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('NumericInputImproved',{staticClass:\"highlight\",attrs:{\"value\":_vm.automaticallyCancelRelatedAdvanceInvoicesInternal\n ? _vm.summary.toPayWithoutAdvance\n : _vm.summary.toPay,\"label\":_vm.$t('FinancialDocument.PriceSummary.ToPay'),\"readonly\":true,\"outlined\":\"\",\"dense\":\"\",\"hideDetails\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('CurrencyDisplay',{staticClass:\"currency-min-width pt-1\",attrs:{\"currencyId\":_vm.workingCurrency.id}})]},proxy:true}])})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('TaxRecap',{attrs:{\"finDocModel\":_vm.finDocModelInternal,\"hasError\":_vm.hasTaxRecapErrorInternal,\"automaticallyCancelRelatedAdvanceInvoices\":_vm.automaticallyCancelRelatedAdvanceInvoicesInternal},on:{\"update:hasError\":function($event){_vm.hasTaxRecapErrorInternal=$event},\"update:has-error\":function($event){_vm.hasTaxRecapErrorInternal=$event},\"update:automaticallyCancelRelatedAdvanceInvoices\":function($event){_vm.automaticallyCancelRelatedAdvanceInvoicesInternal=$event},\"update:automatically-cancel-related-advance-invoices\":function($event){_vm.automaticallyCancelRelatedAdvanceInvoicesInternal=$event}}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.open,\"max-width\":\"480\"},on:{\"input\":function($event){return _vm.$emit('close')}}},[_c('v-card',[_c('v-toolbar',[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.PriceSummary.ApplyAdvance\")))]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),(_vm.allAdvances.length)?_c('v-card-text',_vm._l((_vm.allAdvances),function(advance){return _c('v-switch',{key:advance.id,attrs:{\"color\":\"primary\",\"label\":_vm.formatDocName(advance),\"input-value\":_vm.isSelected(advance),\"true-value\":true,\"false-value\":false},on:{\"change\":function($event){return _vm.toggle($event, advance)}}})}),1):_c('v-card-text',[_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_c('span',[_c('v-icon',{attrs:{\"x-large\":\"\",\"color\":\"error lighten-1\"}},[_vm._v(\"fas fa-file-alt\")])],1),_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t(\"NoResults\")))])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Currency } from \"@/shared/models/currency\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { Component, Prop, PropSync, Vue } from \"vue-property-decorator\";\nimport { Getter } from \"vuex-class\";\nimport { FinDocViewModel, FinDocRelatedAdvanceViewModel } from \"./models\";\n\n@Component\nexport default class AdvancePicker extends Vue {\n @Prop() open?: boolean;\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n\n get allAdvances() {\n return this.finDocModelInternal.relatedAdvanceInvoices\n .concat(this.finDocModelInternal.unassignedAdvanceInvoices)\n .sort((a, b) => a.id - b.id);\n }\n\n @Getter(\"codebooks/currencies\") currencies?: Currency[];\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n formatDocName(doc: FinDocRelatedAdvanceViewModel) {\n const currency =\n (this.currencies ?? []).find((x) => x.id === doc.workingCurrencyId)\n ?.isoCode ?? \"\";\n\n const amount =\n doc.totalDueAmount || doc.totalDueAmount === 0\n ? `(${doc.totalDueAmount.toFixed(2)} ${currency})`\n : \"\";\n\n const name =\n (this.storedSettings?.setFiscalNumberAsMain\n ? doc.documentIdentifier\n : doc.documentInternalIdentifier) ?? `id:${doc.id}`;\n\n const typeName = this.$t(\n \"t.FinancialDocumentTypes.AdvanceInvoice\"\n ).toString();\n\n return [typeName, name, amount].filter((x) => x).join(\" \");\n }\n\n isSelected(doc: FinDocRelatedAdvanceViewModel) {\n return !!this.finDocModelInternal?.relatedAdvanceInvoices.find(\n (x) => doc.id === x.id\n );\n }\n\n toggle(evt: any, doc: FinDocRelatedAdvanceViewModel) {\n if (!this.finDocModelInternal.relatedAdvanceInvoices) {\n this.finDocModelInternal.relatedAdvanceInvoices = [];\n }\n\n if (evt) {\n this.finDocModelInternal.relatedAdvanceInvoices.push(doc);\n this.finDocModelInternal.unassignedAdvanceInvoices =\n this.finDocModelInternal.unassignedAdvanceInvoices.filter(\n (e) => e.id !== doc.id\n );\n } else {\n this.finDocModelInternal.unassignedAdvanceInvoices.push(doc);\n this.finDocModelInternal.relatedAdvanceInvoices =\n this.finDocModelInternal.relatedAdvanceInvoices.filter(\n (e) => e.id !== doc.id\n );\n }\n }\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancePicker.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdvancePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdvancePicker.vue?vue&type=template&id=1a30c9ee&\"\nimport script from \"./AdvancePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdvancePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdvancePicker.vue?vue&type=style&index=0&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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardText,VDialog,VIcon,VSpacer,VSwitch,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"scrollable\":\"\",\"max-width\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"tax-recap-button\",attrs:{\"color\":_vm.hasErrorInternal ? 'error' : null}},on),[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.TaxSummary\")))])]}}]),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-card',[_c('LoadingOverlay',{attrs:{\"loading\":_vm.loading}}),_c('v-card-title',{staticClass:\"d-flex flex-column align-start\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.TaxSummary\")))]),_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.PriceSummary.ToPay\"))+\": \"+_vm._s(_vm.$n(_vm.totalToPay, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", })))])],1),_c('v-card-text',[(_vm.taxRecap)?_c('table',{staticClass:\"tax-summary__table\"},[_c('tr',[_c('th',{staticStyle:{\"text-align\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TaxSummary.Rate\"))+\" \")]),_c('th',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TaxSummary.Base\"))+\" \")]),_c('th',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocument.TaxSummary.Amount\"))+\" \")])]),_vm._l((_vm.taxRecap.items),function(item,$index){return _c('tr',{key:$index,staticClass:\"divide-rows\"},[_c('td',{staticClass:\"text-top\"},[_vm._v(\" \"+_vm._s(_vm.$t(item.taxRateTextResourceKey))+\" \")]),_c('td',[(\n item.recapItems.filter(function (e) { return !e.originDocumentIdentifier; })\n .length === 0\n )?_c('div',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.$n(0, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")]):_vm._e(),_vm._l((item.recapItems.filter(\n function (e) { return !e.originDocumentIdentifier; }\n )),function(recapItem,$i){return _c('div',{key:$index + '_' + $i + '_0',staticClass:\"text-right\",class:{\n invalid:\n item.hasBaseAmountError && item.recapItems.length === 1,\n }},[_vm._v(\" \"+_vm._s(_vm.$n(recapItem.baseAmount, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")])}),_vm._l((item.recapItems.filter(\n function (e) { return e.originDocumentIdentifier; }\n )),function(recapItem,$i){return _c('div',{key:$index + '_' + $i + '_1',staticClass:\"text-right d-flex justify-space-between\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-question-circle\")])]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"TaxRecap.DocumentNumber\"))+\": \"+_vm._s(recapItem.originDocumentIdentifier)+\" (\"+_vm._s(_vm.$d(new Date(recapItem.originDocumentIssueDate)))+\") - \"+_vm._s(_vm.$n(recapItem.originDocumentTotalWithVat, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$n(recapItem.baseAmount, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")])],1)}),(\n item.recapItems.filter(function (e) { return e.originDocumentIdentifier; })\n .length > 0\n )?_c('div',{staticClass:\"total text-right\",class:{ invalid: item.hasBaseAmountError }},[_vm._v(\" \"+_vm._s(_vm.$n(item.baseAmount, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")]):_vm._e()],2),_c('td',[(\n item.recapItems.filter(function (e) { return !e.originDocumentIdentifier; })\n .length === 0\n )?_c('div',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.$n(0, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")]):_vm._e(),_vm._l((item.recapItems.filter(\n function (e) { return !e.originDocumentIdentifier; }\n )),function(recapItem,$i){return _c('div',{key:$index + '_' + $i + '_2',staticClass:\"text-right\",class:{\n invalid:\n item.hasTaxAmountError && item.recapItems.length === 1,\n }},[_vm._v(\" \"+_vm._s(_vm.$n(recapItem.taxAmount, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")])}),_vm._l((item.recapItems.filter(\n function (e) { return e.originDocumentIdentifier; }\n )),function(recapItem,$i){return _c('div',{key:$index + '_' + $i + '_3',staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.$n(recapItem.taxAmount, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")])}),(\n item.recapItems.filter(function (e) { return e.originDocumentIdentifier; })\n .length > 0\n )?_c('div',{staticClass:\"total text-right\",class:{ invalid: item.hasTaxAmountError }},[_vm._v(\" \"+_vm._s(_vm.$n(item.taxAmount, { style: \"currency\", currency: _vm.workingCurrencyCode, display: \"code\", }))+\" \")]):_vm._e()],2)])})],2):_vm._e(),(_vm.isInvalid)?_c('v-alert',{staticClass:\"mb-0 mt-4\",attrs:{\"outlined\":\"\",\"type\":\"error\",\"border\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"TaxRecap.Validation.Hint\"))+\" \")]):_vm._e()],1),_c('v-card-actions',[(_vm.hasRelatedAdvanceInvoices)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.removeRelatedAdvanceInvoices()}}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.TaxRecap.RemoveRelatedAdvanceInvoices\")))]):_vm._e(),(_vm.canAutomaticallyCancelRelatedAdvanceInvoices)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.toggleAutomaticCancellationOfRelatedAdvanceInvoices()}}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocument.AutomaticRelatedAdvanceInvoiceCancelling\")))]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.isOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Close\")))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport {\n FinDocViewModel,\n TaxRecapCalculationResultModel,\n} from \"./models\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport { Getter } from \"vuex-class\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport { getPriceSummary } from \"./functions\";\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n} from \"@/shared/models/enums.type\";\n\n@Component({\n components: {\n LoadingOverlay,\n },\n})\nexport default class TaxRecap extends Vue {\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n @PropSync(\"hasError\", { default: false }) hasErrorInternal?: boolean;\n @PropSync(\"automaticallyCancelRelatedAdvanceInvoices\")\n automaticallyCancelRelatedAdvanceInvoicesInternal?: boolean;\n\n isOpen = false;\n loading = false;\n\n taxRecap: TaxRecapCalculationResultModel | null = null;\n\n @Watch(\"isOpen\")\n openWatch(fresh: boolean) {\n if (fresh) {\n // load on open\n this.calculateTaxRecap();\n } else {\n // reset on close\n this.loading = false;\n this.taxRecap = null;\n }\n }\n\n calculateTaxRecap() {\n this.loading = true;\n Vue.axios\n .post(\n \"financialDocuments/CalculateTaxRecap\",\n {\n documentTypeId: this.finDocModelInternal.documentTypeId,\n lineItems: this.finDocModelInternal.lineItems,\n relatedAdvanceInvoices: this\n .automaticallyCancelRelatedAdvanceInvoicesInternal\n ? []\n : this.finDocModelInternal.relatedAdvanceInvoices,\n }\n )\n .then((res) => {\n this.taxRecap = res.data;\n this.hasErrorInternal = this.taxRecap.hasError;\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n @Watch(\"hasErrorInternal\")\n errorWatch(fresh: boolean, old: boolean) {\n if (fresh && !old && !this.isOpen) {\n this.isOpen = true;\n }\n }\n\n get totalToPay() {\n const summary = getPriceSummary(this.finDocModelInternal);\n return this.automaticallyCancelRelatedAdvanceInvoicesInternal\n ? summary.toPayWithoutAdvance\n : summary.toPay;\n }\n\n get isInvalid() {\n return this.taxRecap?.hasError ?? false;\n }\n\n get hasRelatedAdvanceInvoices() {\n return (\n this.finDocModelInternal.relatedAdvanceInvoices &&\n this.finDocModelInternal.relatedAdvanceInvoices.length > 0\n );\n }\n\n removeRelatedAdvanceInvoices() {\n const toRemove = this.finDocModelInternal.relatedAdvanceInvoices;\n this.finDocModelInternal.relatedAdvanceInvoices = [];\n this.finDocModelInternal.unassignedAdvanceInvoices.push(...toRemove);\n\n this.calculateTaxRecap();\n }\n\n get canAutomaticallyCancelRelatedAdvanceInvoices() {\n return (\n this.finDocModelInternal.relatedAdvanceInvoices &&\n this.finDocModelInternal.relatedAdvanceInvoices.length > 0 &&\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Racun &&\n this.finDocModelInternal.documentStatusId ===\n FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n toggleAutomaticCancellationOfRelatedAdvanceInvoices() {\n this.automaticallyCancelRelatedAdvanceInvoicesInternal =\n !this.automaticallyCancelRelatedAdvanceInvoicesInternal;\n\n this.$nextTick(() => {\n this.calculateTaxRecap();\n });\n }\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n get workingCurrencyCode() {\n return this.storedSettings?.workingCurrency.isoCode ?? \"EUR\";\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxRecap.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxRecap.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaxRecap.vue?vue&type=template&id=02a873f6&scoped=true&\"\nimport script from \"./TaxRecap.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaxRecap.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TaxRecap.vue?vue&type=style&index=0&id=02a873f6&lang=scss&scoped=true&\"\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 \"02a873f6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VIcon,VSpacer,VSubheader,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, PropSync, Vue } from \"vue-property-decorator\";\nimport { FinDocViewModel } from \"./models\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport { Getter } from \"vuex-class\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport CurrencyDisplay from \"@/components/misc/CurrencyDisplay.vue\";\nimport AdvancePicker from \"./AdvancePicker.vue\";\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n} from \"@/shared/models/enums.type\";\nimport { getPriceSummary } from \"./functions\";\nimport TaxRecap from \"./TaxRecap.vue\";\n\n@Component({\n components: {\n NumericInputImproved,\n CurrencyDisplay,\n AdvancePicker,\n TaxRecap,\n },\n})\nexport default class PriceSummary extends Vue {\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n @PropSync(\"hasTaxRecapError\", { default: false })\n hasTaxRecapErrorInternal?: boolean;\n\n @PropSync(\"automaticallyCancelRelatedAdvanceInvoices\")\n automaticallyCancelRelatedAdvanceInvoicesInternal?: boolean;\n\n get isCancellation() {\n return (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Storno\n );\n }\n\n advancePickerOpen = false;\n get canChooseAdvances() {\n return (\n this.finDocModelInternal.documentTypeId ===\n FinancialDocumentTypesEnum.Racun &&\n this.finDocModelInternal.documentStatusId ===\n FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get workingCurrency() {\n return {\n id: this.finDocModelInternal.workingCurrencyId,\n code: this.finDocModelInternal.workingCurrencyISO3,\n };\n }\n\n get formalCurrency() {\n if (!this.finDocModelInternal.formalCurrencyId) return null;\n\n return {\n id: this.finDocModelInternal.formalCurrencyId,\n code: this.finDocModelInternal.formalCurrencyISO3,\n };\n }\n\n get summary() {\n return getPriceSummary(this.finDocModelInternal);\n }\n\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n get tenantPaysVat() {\n return this.storedSettings?.paysVat ?? false;\n }\n}\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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceSummary.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--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceSummary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PriceSummary.vue?vue&type=template&id=38704e85&scoped=true&\"\nimport script from \"./PriceSummary.vue?vue&type=script&lang=ts&\"\nexport * from \"./PriceSummary.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PriceSummary.vue?vue&type=style&index=0&id=38704e85&lang=scss&scoped=true&\"\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 \"38704e85\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VCol,VIcon,VRow,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"scrollable\":\"\",\"max-width\":\"1400\"},model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('LoadingOverlay',{attrs:{\"loading\":_vm.loading}}),_c('v-form',{key:_vm.fkey,model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"pb-0\"},[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('v-alert',{staticClass:\"custom-alert\",attrs:{\"outlined\":\"\",\"type\":\"info\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocumentModalForm.PaymentInfo\")))])],1)]),_c('v-card-text',{staticClass:\"pt-0\"},[(_vm.existingPaymentsExist)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"FinancialDocumentPaymentsModal.ExistingPaymentTitle\")))]):_vm._e(),_vm._l((_vm.existingPayments),function(payment,$index){return _c('div',{key:$index},[_c('div',{staticClass:\"d-flex align-baseline row-max-height\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('FinancialDocumentPaymentsModal.PaymentAmount') + '*',\"disabled\":!!payment.id,\"dense\":\"\",\"outlined\":\"\",\"decimalPlaces\":2,\"validateInput\":true,\"defaultToZeroWhenEmpty\":true},on:{\"input\":function($event){return _vm.amountChanged(payment)}},model:{value:(payment.amount),callback:function ($$v) {_vm.$set(payment, \"amount\", $$v)},expression:\"payment.amount\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{staticClass:\"highlight\",attrs:{\"label\":_vm.$t('VPayment.amountToAsign') + '*',\"dense\":\"\",\"outlined\":\"\",\"decimalPlaces\":2,\"validateInput\":true,\"defaultToZeroWhenEmpty\":true,\"rules\":[\n _vm.rules.cannotBeMoreThanRemaining(\n payment.amountToAsign,\n payment.remainingAmount\n ) ]},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"640\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"ml-1 pt-1\",attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-info-circle\")])]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t(\"VPayment.amountLeftToAssign\"))+\": \"+_vm._s(_vm.$n(payment.remainingAmount, { style: \"currency\", currency: payment.currencyCode, currencyDisplay: \"code\", }))+\" \")])]},proxy:true}],null,true),model:{value:(payment.amountToAsign),callback:function ($$v) {_vm.$set(payment, \"amountToAsign\", $$v)},expression:\"payment.amountToAsign\"}})],1),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.currency') + '*',\"items\":_vm.allowedCurrencies,\"item-value\":\"id\",\"item-text\":\"isoCode\",\"disabled\":\"\",\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\"},model:{value:(payment.currencyId),callback:function ($$v) {_vm.$set(payment, \"currencyId\", $$v)},expression:\"payment.currencyId\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.paymentColsSize(payment.paymentMeansId)}},[_c('v-select',{attrs:{\"disabled\":\"\",\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-disabled\":function (x) { return x.id === 7; },\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}],null,true),model:{value:(payment.paymentMeansId),callback:function ($$v) {_vm.$set(payment, \"paymentMeansId\", $$v)},expression:\"payment.paymentMeansId\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.cardColsSize(payment.paymentMeansId)}},[(\n payment.paymentMeansId ===\n _vm.paymentMeansEnum.KreditnaKartica ||\n payment.paymentMeansId ===\n _vm.paymentMeansEnum.BankovnaKartica ||\n _vm.getPaymentMeanBaseId(payment.paymentMeansId) ===\n _vm.paymentMeansEnum.KreditnaKartica ||\n _vm.getPaymentMeanBaseId(payment.paymentMeansId) ===\n _vm.paymentMeansEnum.BankovnaKartica\n )?_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"disabled\":\"\",\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans\n ? [_vm.rules.required]\n : []},model:{value:(payment.cardTypeId),callback:function ($$v) {_vm.$set(payment, \"cardTypeId\", $$v)},expression:\"payment.cardTypeId\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('DateTimeOffsetField',{attrs:{\"dateLabel\":_vm.$t('VPayment.paymentDate'),\"timeLabel\":_vm.$t('VPayment.paymentTime'),\"required\":true,\"type\":'utc',\"dense\":true,\"outlined\":true,\"sizes\":'8-4',\"disabled\":true},model:{value:(payment.paymentDate),callback:function ($$v) {_vm.$set(payment, \"paymentDate\", $$v)},expression:\"payment.paymentDate\"}})],1)],1),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalPayments = _vm.internalPayments.filter(\n function (x) { return x != payment; }\n )}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1)],1)])}),(_vm.newPaymentsExist)?_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t(\"FinancialDocumentPaymentsModal.NewPaymentsTitle\"))+\" \")]):_vm._e(),_vm._l((_vm.newPayments),function(payment,$index){return _c('div',{key:$index},[_c('div',{staticClass:\"d-flex align-baseline row-max-height\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('NumericInputImproved',{attrs:{\"label\":_vm.$t('FinancialDocumentPaymentsModal.PaymentAmount') + '*',\"dense\":\"\",\"outlined\":\"\",\"decimalPlaces\":2,\"validateInput\":true,\"defaultToZeroWhenEmpty\":true},on:{\"input\":function($event){return _vm.amountChanged(payment)}},model:{value:(payment.amount),callback:function ($$v) {_vm.$set(payment, \"amount\", $$v)},expression:\"payment.amount\"}})],1),_c('v-col',{attrs:{\"cols\":\"1\",\"offset\":\"2\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('VPayment.currency') + '*',\"items\":_vm.allowedCurrencies,\"item-value\":\"id\",\"item-text\":\"isoCode\",\"rules\":[_vm.rules.required],\"outlined\":\"\",\"dense\":\"\"},model:{value:(payment.currencyId),callback:function ($$v) {_vm.$set(payment, \"currencyId\", $$v)},expression:\"payment.currencyId\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.paymentColsSize(payment.paymentMeansId)}},[_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.paymentMeans') + '*',\"items\":_vm.paymentMeans,\"item-value\":\"id\",\"item-disabled\":function (x) { return x.id === 7; },\"item-text\":function (x) { return _vm.$t(x.textResourceKey).toString(); },\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\n var item = ref.item;\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-list-item',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(item.status),expression:\"item.status\"}]},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.textResourceKey)))])],1)],1)]}}],null,true),model:{value:(payment.paymentMeansId),callback:function ($$v) {_vm.$set(payment, \"paymentMeansId\", $$v)},expression:\"payment.paymentMeansId\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.cardColsSize(payment.paymentMeansId)}},[(\n payment.paymentMeansId ===\n _vm.paymentMeansEnum.KreditnaKartica ||\n payment.paymentMeansId ===\n _vm.paymentMeansEnum.BankovnaKartica ||\n _vm.getPaymentMeanBaseId(payment.paymentMeansId) ===\n _vm.paymentMeansEnum.KreditnaKartica ||\n _vm.getPaymentMeanBaseId(payment.paymentMeansId) ===\n _vm.paymentMeansEnum.BankovnaKartica\n )?_c('v-select',{attrs:{\"label\":_vm.$t('VFinancialDocument.cardType') +\n (_vm.isCardTypeRequiredForCardPaymentMeans ? '*' : ''),\"items\":_vm.cardTypes,\"item-value\":\"id\",\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"rules\":_vm.isCardTypeRequiredForCardPaymentMeans\n ? [_vm.rules.required]\n : []},model:{value:(payment.cardTypeId),callback:function ($$v) {_vm.$set(payment, \"cardTypeId\", $$v)},expression:\"payment.cardTypeId\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('DateTimeOffsetField',{attrs:{\"dateLabel\":_vm.$t('VPayment.paymentDate'),\"timeLabel\":_vm.$t('VPayment.paymentTime'),\"required\":true,\"type\":'utc',\"dense\":true,\"outlined\":true,\"sizes\":'8-4',\"disabled\":true},model:{value:(payment.paymentDate),callback:function ($$v) {_vm.$set(payment, \"paymentDate\", $$v)},expression:\"payment.paymentDate\"}})],1)],1),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.internalPayments = _vm.internalPayments.filter(\n function (x) { return x != payment; }\n )}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\"fal fa-trash\")])],1)],1)])}),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addPayment()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"VPayment.newPayment\"))+\" \")])],2),_c('v-card-actions',{staticClass:\"d-flex justify-space-between align-end\"},[_c('v-btn',{attrs:{\"disabled\":!_vm.isFormValid || _vm.showBottomInfoBox,\"color\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t(\"Accept\")))]),(_vm.showBottomInfoBox)?_c('v-alert',{staticClass:\"mb-0 errorInfoBox\",attrs:{\"outlined\":\"\",\"type\":\"error\",\"border\":\"left\"}},[_vm._v(_vm._s(_vm.$t(\"FinancialDocumentPaymentModalForm.ErrorInfoBox\", { dueAmount: _vm.$n(_vm.invoiceUnpaidTotalRounded, { style: \"currency\", currency: _vm.formalCurrencyISO3, currencyDisplay: \"code\", }), assignedAmount: _vm.$n(_vm.totalAssignedAmount, { style: \"currency\", currency: _vm.formalCurrencyISO3, currencyDisplay: \"code\", }), amountLeftToAssign: _vm.$n(_vm.amountLeftToAssign, { style: \"currency\", currency: _vm.formalCurrencyISO3, currencyDisplay: \"code\", }), }))+\" \")]):_vm._e(),_c('v-btn',{on:{\"click\":function($event){_vm.isOpen = false}}},[_vm._v(_vm._s(_vm.$t(\"Cancel\")))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Vue, Watch } from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport { CardType } from \"@/shared/models/cardType\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport NumericInputImproved from \"@/components/numbers/NumericInputImproved.vue\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\nimport { FinDocViewModel } from \"./FinancialDocumentFormParts/models\";\nimport { PaymentMeansEnum } from \"@/shared/models/enums.type\";\nimport _ from \"lodash\";\nimport { getPriceSummary } from \"./FinancialDocumentFormParts/functions\";\nimport { PaymentModel } from \"./FinancialDocumentFormParts/models\";\nimport LoadingOverlay from \"../misc/LoadingOverlay.vue\";\nimport DateTimeOffsetField from \"@/components/misc/DateTimeOffsetField.vue\";\n\n@Component({\n components: {\n DateField,\n TimeField,\n LoadingOverlay,\n NumericInputImproved,\n DateTimeOffsetField,\n },\n})\nexport default class FinancialDocumentPaymentsModal extends Vue {\n @PropSync(\"open\") isOpen?: boolean;\n @PropSync(\"internalLoading\") loading?: boolean;\n @PropSync(\"payments\") internalPayments?: PaymentModel[];\n @PropSync(\"finDocModel\") finDocModelInternal!: FinDocViewModel;\n\n @Prop() workingCurrencyId?: number;\n @Prop() formalCurrencyId?: number;\n @Prop() workingCurrencyISO3?: string;\n @Prop() formalCurrencyISO3?: string;\n @Prop() paymentMeansId?: number;\n @Prop({ default: 0 }) amountDue?: number;\n @Prop() automaticallyCancelRelatedAdvanceInvoices?: boolean;\n\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n @Action(\"codebooks/refreshCardTypes\") refreshCardTypes?: () => Promise;\n @Getter(\"codebooks/cardTypes\") cardTypes?: CardType[];\n\n @Getter(\"appParams/isCardTypeRequiredForCardPaymentMeans\")\n isCardTypeRequiredForCardPaymentMeans?: boolean;\n\n paymentMeansEnum = PaymentMeansEnum;\n isFormValid = false;\n fkey = 0;\n\n @Watch(\"isOpen\")\n isOpenWatch(fresh: boolean) {\n if (fresh) {\n if (\n this.internalPayments != undefined &&\n this.internalPayments.length == 0\n ) {\n this.addPayment(this.invoiceUnpaidTotalRounded);\n }\n }\n }\n\n addPayment(amount?: number) {\n const today = new Date();\n this.internalPayments?.push({\n id: 0,\n amount: amount ?? 0,\n paymentDate: today.toISOString(),\n remainingAmount: amount ?? 0,\n amountToAsign: amount ?? 0,\n currencyId: this.formalCurrencyId ?? null,\n currencyCode: this.formalCurrencyISO3 ?? \"\",\n paymentMeansId:\n this.paymentMeansId !== this.paymentMeansEnum.Ostalo\n ? this.paymentMeansId ?? null\n : null,\n cardTypeId: null,\n alreadyPaidForFinDoc: null,\n });\n }\n\n shouldShowCardType(paymentMeansId: number) {\n return (\n paymentMeansId === this.paymentMeansEnum.KreditnaKartica ||\n paymentMeansId === this.paymentMeansEnum.BankovnaKartica ||\n this.getPaymentMeanBaseId(paymentMeansId) === this.paymentMeansEnum.KreditnaKartica ||\n this.getPaymentMeanBaseId(paymentMeansId) === this.paymentMeansEnum.BankovnaKartica\n );\n }\n \n paymentColsSize(paymentMeansId: number) {\n return this.shouldShowCardType(paymentMeansId) ? 2 : 3;\n }\n\n cardColsSize(paymentMeansId: number) {\n return this.shouldShowCardType(paymentMeansId) ? 2 : 1;\n }\n\n get totalToPay() {\n const summary = getPriceSummary(this.finDocModelInternal);\n return this.automaticallyCancelRelatedAdvanceInvoices\n ? summary.toPayWithoutAdvance\n : summary.toPay;\n }\n\n get amountDueRounded() {\n const rounded = _.round(this.totalToPay ?? 0, 2);\n\n // because JS has signed zeros\n return rounded === 0 ? 0 : rounded;\n }\n\n get invoiceUnpaidTotal() {\n return this.amountDueRounded ?? 0;\n }\n\n get invoiceUnpaidTotalRounded() {\n const rounded = _.round(this.invoiceUnpaidTotal, 2);\n\n // because JS has signed zeros\n return rounded === 0 ? 0 : rounded;\n }\n\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n mustBeZero: (value: any) =>\n value === 0 || this.$t(\"Validation.MustBeZero\"),\n cannotBeMoreThanRemaining: (amount: number, remainingAmount: number) =>\n amount <= remainingAmount ||\n this.$t(\"Validation.CannoBeMoreThanRemaining\"),\n mustBeEqualToTotal: () =>\n this.totalToPay === this.totalAssigned ||\n this.$t(\"Validation.MustBeEqualToTotal\"),\n };\n }\n\n get allowedCurrencies() {\n return [\n {\n id: this.formalCurrencyId,\n isoCode: this.formalCurrencyISO3,\n },\n ...(this.formalCurrencyId !== this.workingCurrencyId\n ? [\n {\n id: this.workingCurrencyISO3,\n isoCode: this.workingCurrencyISO3,\n },\n ]\n : []),\n ];\n }\n\n getAmountLeftToAsign(payment: PaymentModel) {\n return (payment.remainingAmount ?? 0) - (payment.amountToAsign ?? 0);\n }\n\n save() {\n if (this.amountsAreValid) {\n this.$emit(\"saveLockAndMarkAsPaid\");\n }\n }\n\n get amountsAreValid() {\n const sum = this.internalPayments?.reduce(\n (sum, x) => sum + (x.amountToAsign ?? 0),\n 0\n );\n\n return sum === this.invoiceUnpaidTotalRounded;\n }\n\n //amount can change only when adding new payments - field is disabled otherwise\n amountChanged(payment: PaymentModel) {\n payment.remainingAmount = payment.amount;\n if (payment.id == 0) {\n payment.amountToAsign = payment.amount;\n }\n }\n\n get existingPaymentsExist() {\n return this.internalPayments?.some((x) => !!x.id);\n }\n\n get newPaymentsExist() {\n return this.internalPayments?.some((x) => x.id === 0);\n }\n\n getPaymentMeanBaseId(id: number) {\n return this.paymentMeans?.find((e) => e.id === id)?.paymentMeanBaseId;\n }\n\n get existingPayments() {\n return this.internalPayments?.filter((x) => !!x.id);\n }\n\n get newPayments() {\n return this.internalPayments?.filter((x) => x.id === 0);\n }\n\n get totalAssigned() {\n return (\n this.internalPayments?.reduce(\n (sum, x) => sum + (x.amountToAsign ?? 0),\n 0\n ) || 0\n );\n }\n\n get showBottomInfoBox() {\n return !this.amountsAreValid;\n }\n\n get amountLeftToAssign() {\n return (\n this.invoiceUnpaidTotalRounded -\n (this.internalPayments?.reduce(\n (sum, x) => sum + (x.amountToAsign ?? 0),\n 0\n ) ?? 0)\n );\n }\n\n get totalAssignedAmount() {\n return this.internalPayments?.reduce(\n (sum, x) => sum + (x.amountToAsign ?? 0),\n 0\n );\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentPaymentsModal.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentPaymentsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinancialDocumentPaymentsModal.vue?vue&type=template&id=14b593b4&scoped=true&\"\nimport script from \"./FinancialDocumentPaymentsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinancialDocumentPaymentsModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FinancialDocumentPaymentsModal.vue?vue&type=style&index=0&id=14b593b4&lang=scss&scoped=true&\"\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 \"14b593b4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VForm,VIcon,VListItem,VListItemContent,VListItemTitle,VRow,VSelect,VSubheader,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n FinancialDocumentStatusEnum,\n FinancialDocumentTypesEnum,\n PaymentMeansEnum,\n ReservationStatusEnum,\n} from \"@/shared/models/enums.type\";\nimport { FinancialDocumentStatus } from \"@/shared/models/financialDocumentStatus\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\";\nimport {\n Component,\n Prop,\n PropSync,\n Ref,\n Vue,\n Watch,\n} from \"vue-property-decorator\";\nimport { Action, Getter } from \"vuex-class\";\nimport {\n FinancialDocumentCreateResponseModel,\n FinancialDocumentFiscalizeResult,\n FinancialDocumentLockResult,\n FinancialDocumentSaveLockAndMarkAsPaidResult,\n FinDocClientInfoViewModel,\n FinDocLineItemViewModel,\n FinDocViewModel,\n OwnersInvoiceBulkCreateResult,\n PaymentModel,\n} from \"./FinancialDocumentFormParts/models\";\nimport LoadingOverlay from \"@/components/misc/LoadingOverlay.vue\";\nimport FinancialDocumentReservationSummary from \"./FinancialDocumentReservationSummary.vue\";\nimport BasicInfo from \"./FinancialDocumentFormParts/BasicInfo.vue\";\nimport ClientInfo from \"./FinancialDocumentFormParts/ClientInfo.vue\";\nimport LineItems from \"./FinancialDocumentFormParts/LineItems.vue\";\nimport PriceSummary from \"./FinancialDocumentFormParts/PriceSummary.vue\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport {\n fillInvoiceEditingTaxExemptionReason,\n clearTaxExemption,\n calculateLineItem,\n getPriceSummary,\n} from \"./FinancialDocumentFormParts/functions\";\nimport { saveFile } from \"@/shared/saveFile\";\nimport { AgencyWorkModelsEnum } from \"@/shared/models/agencyWorkModel\";\nimport { BusinessUnit } from \"@/shared/models/businessUnit\";\nimport { CashRegisterModel } from \"@/shared/models/cashRegister\";\nimport { PaymentMean } from \"@/shared/models/paymentMean\";\nimport FinDocPrepaymentsModal from \"../misc/FinDocPrepaymentsModal.vue\";\nimport { ApiErrorsRuleBroken } from \"@/shared/models/apiErrors\";\nimport * as _ from \"lodash\";\nimport FinancialDocumentPaymentsModal from \"./FinancialDocumentPaymentsModal.vue\";\nimport { round } from \"../numbers/numberFormatUtils\";\nimport { Notification } from \"@/store/modules/notifications\";\n\n@Component({\n components: {\n LoadingOverlay,\n FinancialDocumentReservationSummary,\n BasicInfo,\n ClientInfo,\n LineItems,\n PriceSummary,\n FinDocPrepaymentsModal,\n FinancialDocumentPaymentsModal,\n },\n})\nexport default class FinancialDocumentModalForm extends Vue {\n @PropSync(\"open\") isOpen?: boolean;\n @PropSync(\"documentId\", { default: null }) internalDocumentId?: number | null;\n @Prop() reservationStatusId?: number | null;\n\n @PropSync(\"deleteOnClose\", { default: false })\n internalDeleteOnClose?: boolean;\n\n @Prop({ default: FinancialDocumentTypesEnum.Racun })\n newDocumentTypeId?: FinancialDocumentTypesEnum;\n\n @Prop({ default: false }) skipPrepaymentMarking?: boolean;\n\n messages: string[] = [];\n hasTaxRecapError = false;\n\n loading = false;\n changeReservationStatus = false;\n\n finDocModel: FinDocViewModel = new FinDocViewModel();\n\n agencyWorkModelsEnum = AgencyWorkModelsEnum;\n financialDocumentTypesEnum = FinancialDocumentTypesEnum;\n\n get confirmReservation() {\n if (\n this.reservationStatusId == ReservationStatusEnum.Hold &&\n this.finDocModel.documentTypeId ==\n FinancialDocumentTypesEnum.RacunZaPredujam &&\n this.finDocModel.documentStatusId != FinancialDocumentStatusEnum.Placen\n ) {\n this.changeReservationStatus =\n this.automaticallyChangeReservationStatusToConfirmed ?? false;\n return true;\n } else {\n this.changeReservationStatus = false;\n return false;\n }\n }\n\n get isCancellation() {\n return (\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Storno\n );\n }\n\n get isLocked() {\n return (\n this.finDocModel.documentStatusId !== FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get documentStatus() {\n const key = this.financialDocumentStatuses?.find(\n (x) => x.id === this.finDocModel.documentStatusId\n )?.textResourceKey;\n\n return key ? this.$t(key).toString() : \"\";\n }\n\n get title() {\n let key = \"\";\n switch (this.finDocModel.documentTypeId) {\n case FinancialDocumentTypesEnum.Racun:\n key = \"FinancialDocument.Editing.Invoice\";\n break;\n case FinancialDocumentTypesEnum.Ponuda:\n key = \"FinancialDocument.Editing.Quote\";\n break;\n case FinancialDocumentTypesEnum.RacunZaPredujam:\n key = \"FinancialDocument.Editing.AdvanceInvoice\";\n break;\n case FinancialDocumentTypesEnum.Storno:\n key = \"FinancialDocument.Editing.InvoiceCancelation\";\n break;\n case FinancialDocumentTypesEnum.Otpremnica:\n key = \"FinancialDocument.Editing.DeliveryNote\";\n break;\n case FinancialDocumentTypesEnum.VlasnikovRacun:\n key = \"FinancialDocument.Editing.OwnersInvoice\";\n break;\n case FinancialDocumentTypesEnum.RacunZaProviziju:\n key = \"FinancialDocument.Editing.CommissionInvoice\";\n break;\n }\n return key ? this.$t(key).toString() : \"\";\n }\n\n get hasTaxExemption() {\n return this.finDocModel.lineItems.some(\n (x) => (this.taxRates?.find((e) => e.id === x.taxRateId)?.rate ?? 0) === 0\n );\n }\n\n get hasLineItems() {\n return this.finDocModel.lineItems.length > 0;\n }\n\n // functions\n async close() {\n if (\n this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.UIzradi &&\n this.finDocModel.id &&\n this.internalDeleteOnClose\n ) {\n await this.deleteDraftOnClose();\n }\n\n this.hasTaxRecapError = false;\n this.internalDeleteOnClose = false;\n this.isOpen = false;\n }\n\n async deleteDraftOnClose() {\n Vue.axios\n .delete(`/financialDocuments/${this.finDocModel.id}`)\n .then(() => {\n this.loading = true;\n })\n .finally(() => {\n this.loading = false;\n this.$emit(\"refresh\");\n });\n }\n\n @Watch(\"isOpen\")\n isOpenWatch(fresh: boolean) {\n if (!fresh) {\n this.internalDocumentId = null;\n } else {\n this.extraOptions.automaticallyCancelRelatedAdvanceInvoices =\n this.automaticRelatedAdvanceInvoiceCancellingDefault ?? false;\n }\n\n this.$nextTick(() => this.refresh(null));\n }\n\n refresh(documentId: number | null = null) {\n this.internalDocumentId = documentId ?? this.internalDocumentId;\n this.$nextTick(async () => {\n if (this.internalDocumentId) {\n this.loading = true;\n await Vue.axios\n .get(`FinancialDocuments/${this.internalDocumentId}`)\n .then((e) => {\n this.finDocModel = {\n ...e.data,\n };\n\n // to make sure Vue can detect changes properly\n this.finDocModel.clientInfo = {\n ...new FinDocClientInfoViewModel(),\n ...this.finDocModel.clientInfo,\n };\n\n this.finDocModel.lineItems.forEach((e) =>\n calculateLineItem(\n e,\n this.taxRates ?? [],\n this.finDocModel.workingToFormalConversionRate\n )\n );\n\n this.formRef?.resetValidation();\n })\n .finally(() => (this.loading = false));\n } else {\n if (this.taxRates && this.storedSettings) {\n const today = new Date();\n const issueDate = today.toISOString().substring(0, 10);\n const deliveryDate = today.toISOString().substring(0, 10);\n today.setDate(\n today.getDate() + (this.storedSettings?.invoiceDueDays ?? 0)\n );\n const dueDate = today.toISOString().substring(0, 10);\n\n const defaultRate = this.storedSettings.standardTaxRate;\n const outOfScopeOrDefaultRate =\n this.storedSettings.outOfScopeTaxRate ??\n this.storedSettings.standardTaxRate;\n\n this.finDocModel = new FinDocViewModel();\n\n this.finDocModel.workingCurrencyId =\n this.storedSettings.workingCurrency.id;\n this.finDocModel.workingCurrencyISO3 =\n this.storedSettings.workingCurrency.isoCode;\n this.finDocModel.workingToFormalConversionRate =\n this.workingToFormalConversionRate;\n\n this.finDocModel.formalCurrencyId =\n this.storedSettings.formalCurrency?.id ??\n this.storedSettings.workingCurrency.id;\n this.finDocModel.formalCurrencyISO3 =\n this.storedSettings.formalCurrency?.isoCode ??\n this.storedSettings.workingCurrency.isoCode;\n this.finDocModel.formalToWorkingConversionRate =\n this.formalToWorkingConversionRate;\n\n // historic currency commented out as no one uses it anymore (app param values have been hard deleted)\n // so I'm not bothering to re-implement it with the simplified multicurrency system\n // this.finDocModel.historicCurrencyId = this.storedSettings.historicCurrency?.id;\n // this.finDocModel.historicCurrencyISO3 = this.storedSettings.historicCurrency?.isoCode;\n\n // this.finDocModel.workingToFormalConversionRate = this.storedSettings.workingToFormalConversionRate;\n // this.finDocModel.historicCurrencyConversionRate = this.storedSettings.historicConversionRate;\n\n this.finDocModel.documentTypeId =\n this.newDocumentTypeId ?? FinancialDocumentTypesEnum.Racun;\n this.finDocModel.basicInfo.issueDate = issueDate;\n this.finDocModel.basicInfo.deliveryDate = deliveryDate;\n this.finDocModel.basicInfo.dueDate = dueDate;\n this.finDocModel.basicInfo.businessUnitId = this.isOpen\n ? this.activeBusinessUnit?.id ?? null\n : null;\n this.finDocModel.basicInfo.cashRegisterId = this.isOpen\n ? this.activeCashRegister?.id ?? null\n : null;\n this.finDocModel.basicInfo.issuePlace =\n this.activeBusinessUnit?.city ?? \"\";\n this.finDocModel.basicInfo.paymentMeansId =\n this.storedSettings?.paymentMeansId ?? null;\n\n if (\n !this.finDocModel.lineItems ||\n this.finDocModel.lineItems.length === 0\n ) {\n this.finDocModel.lineItems = [\n {\n ...new FinDocLineItemViewModel(),\n itemNumber: 1,\n taxRateId: this.storedSettings?.paysVat\n ? defaultRate.id\n : outOfScopeOrDefaultRate.id,\n },\n ];\n\n calculateLineItem(\n this.finDocModel.lineItems[0],\n this.taxRates ?? [],\n this.finDocModel.workingToFormalConversionRate\n );\n }\n\n this.formRef?.resetValidation();\n }\n }\n });\n }\n\n async sleep() {\n await new Promise((resolve) => setTimeout(resolve, 150));\n }\n\n extraOptions = {\n automaticallyCancelRelatedAdvanceInvoices: false,\n fiscalizeOfferDeliveryNote: false,\n createOwnersInvoicesCheckbox: false,\n };\n\n get canAutomaticallyCancelRelatedAdvanceInvoices() {\n return (\n this.finDocModel.relatedAdvanceInvoices &&\n this.finDocModel.relatedAdvanceInvoices.length > 0 &&\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Racun &&\n this.finDocModel.documentStatusId === FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get showActionButtons() {\n return (\n this.finDocModel.documentStatusId === FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get showSaveAndLockButton() {\n return (\n this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.UIzradi &&\n //prepayment invoices cannot be 'locked' -> only 'paid'\n this.finDocModel.documentTypeId !==\n FinancialDocumentTypesEnum.RacunZaPredujam\n );\n }\n\n get showFiscalizeCheckbox() {\n return (\n (this.storedSettings?.fiscalizeOffers &&\n this.finDocModel.documentTypeId ===\n FinancialDocumentTypesEnum.Ponuda) ||\n (this.storedSettings?.fiscalizeDeliveryNotes &&\n this.finDocModel.documentTypeId ===\n FinancialDocumentTypesEnum.Otpremnica)\n );\n }\n\n get lineItemsForOwnersInvoice() {\n return this.finDocModel.lineItems.filter(\n (x) =>\n x.reservationAccUnitTypeId &&\n !x.addOnServiceId &&\n x.agencyWorkModelId == AgencyWorkModelsEnum.OwnNameAndOtherInvoice\n );\n }\n get canCreateOwnersInvoices() {\n return (\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Racun &&\n (this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.UIzradi ||\n this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.Zakljucen) &&\n this.lineItemsForOwnersInvoice.length > 0 &&\n this.finDocModel.reservationId &&\n this.finDocModel.lineItems\n .filter((x) => x.ownerIsLegalEntity != undefined)\n .some((x) => !x.ownerIsLegalEntity)\n );\n }\n get showCreateOwnersInvoicesCheckbox() {\n return (\n this.canCreateOwnersInvoices &&\n this.finDocModel.documentStatusId === FinancialDocumentStatusEnum.UIzradi\n );\n }\n\n get showStornoButton() {\n return (\n this.isLocked &&\n !this.isCancellation &&\n this.finDocModel.documentStatusId !==\n FinancialDocumentStatusEnum.Storniran &&\n this.finDocModel.documentTypeId !== FinancialDocumentTypesEnum.Ponuda &&\n this.finDocModel.documentTypeId !== FinancialDocumentTypesEnum.Otpremnica\n );\n }\n\n get showMarkAsPaidButton() {\n // return true when status is Locked or Due and doc type is not STORNO or OFFER\n // return true if unpaid advance invoice\n return (\n (this.finDocModel.documentTypeId !== FinancialDocumentTypesEnum.Storno &&\n this.finDocModel.documentTypeId !== FinancialDocumentTypesEnum.Ponuda &&\n this.finDocModel.documentTypeId !==\n FinancialDocumentTypesEnum.Otpremnica &&\n (this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.Dospio ||\n this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.Zakljucen)) ||\n (this.finDocModel.documentTypeId ===\n this.financialDocumentTypesEnum.RacunZaPredujam &&\n this.finDocModel.documentStatusId !==\n FinancialDocumentStatusEnum.Placen)\n );\n }\n\n autoAdvanceInvoiceCancellationDetailsDialogOpen = false;\n autoAdvanceInvoiceCancellationDetailsDialogIsValid = false;\n autoAdvanceInvoiceCancellationBackupBusinessUnitId: null | number = null;\n autoAdvanceInvoiceCancellationBackupCashRegisterId: null | number = null;\n autoAdvanceInvoiceCancellationDetailsDialogAction:\n | \"save\"\n | \"saveAndLock\"\n | \"saveForPDF\" = \"save\";\n\n openAutoAdvanceInvoiceCancellationDetails(\n saveActionType: \"save\" | \"saveAndLock\" | \"saveForPDF\"\n ) {\n this.autoAdvanceInvoiceCancellationBackupBusinessUnitId =\n this.finDocModel.basicInfo.businessUnitId ?? null;\n this.autoAdvanceInvoiceCancellationBackupCashRegisterId =\n this.finDocModel.basicInfo.cashRegisterId ?? null;\n this.autoAdvanceInvoiceCancellationDetailsDialogAction = saveActionType;\n this.autoAdvanceInvoiceCancellationDetailsDialogOpen = true;\n }\n\n autoAdvanceInvoiceCancellationDetailsDialogContinue() {\n if (this.autoAdvanceInvoiceCancellationDetailsDialogAction === \"save\") {\n this.save(true, true, false, true);\n } else if (\n this.autoAdvanceInvoiceCancellationDetailsDialogAction === \"saveAndLock\"\n ) {\n this.lockConfirmation(true);\n } else if (\n this.autoAdvanceInvoiceCancellationDetailsDialogAction === \"saveForPDF\"\n ) {\n this.downloadPdfDocument(true);\n }\n\n this.autoAdvanceInvoiceCancellationDetailsDialogOpen = false;\n }\n\n // save changes\n finDocCreateResponseDialogOpen = false;\n finDocCreateResponseDialogData:\n | FinancialDocumentCreateResponseModel\n | FinancialDocumentSaveLockAndMarkAsPaidResult\n | null = null;\n closeAutoCancellationDialog() {\n this.finDocCreateResponseDialogOpen = false;\n this.finDocCreateResponseDialogData = null;\n }\n\n @Ref(\"form\") formRef?: {\n reset: () => void;\n resetValidation: () => void;\n validate: () => boolean;\n };\n\n async save(\n refresh = true,\n skipAutoAdvanceInvoiceCancellationBackups = false,\n isForPDF = false,\n showMessages = true\n ) {\n this.internalDeleteOnClose = false;\n this.loading = true;\n await this.sleep();\n\n const formvalid = this.formRef?.validate() ?? false;\n\n if (!formvalid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Validation.InputErrors\"),\n timeout: 5000,\n });\n this.loading = false;\n throw new Error(\"Validation.InputErrors\");\n }\n\n if (\n !skipAutoAdvanceInvoiceCancellationBackups &&\n this.extraOptions.automaticallyCancelRelatedAdvanceInvoices &&\n this.canAutomaticallyCancelRelatedAdvanceInvoices\n ) {\n const checkResponse = await this.axios.get(\n \"FinancialDocuments/CheckBusinessUnitStatus\",\n {\n params: {\n financialDocumentIds: (\n this.finDocModel.relatedAdvanceInvoices.map((x) => x.id) ?? []\n ).join(\",\"),\n },\n }\n );\n\n if (!checkResponse.data) {\n this.openAutoAdvanceInvoiceCancellationDetails(\n isForPDF ? \"saveForPDF\" : \"save\"\n );\n this.loading = false;\n return false;\n }\n }\n\n let saveSuccess = false;\n this.hasTaxRecapError = false;\n await Vue.axios\n .post(\"financialDocuments\", {\n ...this.finDocModel,\n automaticallyCancelRelatedAdvanceInvoices:\n this.extraOptions.automaticallyCancelRelatedAdvanceInvoices,\n autoAdvanceInvoiceCancellationBackupBusinessUnitId:\n this.autoAdvanceInvoiceCancellationBackupBusinessUnitId,\n autoAdvanceInvoiceCancellationBackupCashRegisterId:\n this.autoAdvanceInvoiceCancellationBackupCashRegisterId,\n })\n .then((res) => {\n this.finDocModel.id = res.data.documentId;\n if (refresh) this.refresh(res.data.documentId);\n saveSuccess = true;\n this.messages.push(\"FinancialDocument.SaveSuccess\");\n\n if (\n res.data.advanceInvoiceCancellationResults &&\n res.data.advanceInvoiceCancellationResults.length > 0\n ) {\n this.finDocCreateResponseDialogData = _.cloneDeep(res.data);\n }\n })\n .catch((error) => {\n const data = error.data as ApiErrorsRuleBroken;\n const isTaxRecap =\n data.code === \"RuleBroken\" &&\n data.brokenRules.some(\n (br) => br.name === \"TaxRecap.Validation.TaxRecapNotValid\"\n );\n if (isTaxRecap) {\n this.hasTaxRecapError = true;\n }\n })\n .finally(() => {\n if (refresh) this.loading = false;\n if (showMessages) this.showMessages();\n });\n\n return saveSuccess;\n }\n\n async lockConfirmation(skipAutoAdvanceInvoiceCancellationBackups = false) {\n this.loading = true;\n await this.sleep();\n\n const formvalid = this.formRef?.validate() ?? false;\n\n if (!formvalid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Validation.InputErrors\"),\n timeout: 5000,\n });\n this.loading = false;\n throw new Error(\"Validation.InputErrors\");\n }\n\n if (\n !skipAutoAdvanceInvoiceCancellationBackups &&\n this.extraOptions.automaticallyCancelRelatedAdvanceInvoices &&\n this.canAutomaticallyCancelRelatedAdvanceInvoices\n ) {\n const checkResponse = await this.axios.get(\n \"FinancialDocuments/CheckBusinessUnitStatus\",\n {\n params: {\n financialDocumentIds: (\n this.finDocModel.relatedAdvanceInvoices.map((x) => x.id) ?? []\n ).join(\",\"),\n },\n }\n );\n\n if (!checkResponse.data) {\n this.openAutoAdvanceInvoiceCancellationDetails(\"saveAndLock\");\n this.loading = false;\n return;\n }\n }\n\n const actions = [\n {\n text: this.$t(\"Yes\"),\n fun: async () => {\n await this.lockDocument();\n return true;\n },\n },\n {\n text: this.$t(\"FinancialDocument.YesAndMarkAsPaid\"),\n fun: () => {\n this.openPaymentModal();\n return true;\n },\n },\n {\n text: this.$t(\"Cancel\"),\n fun: () => {\n return true;\n },\n },\n ];\n\n // if doc type is STORNO or PONUDA or OTPREMNICA, remove YesAndMarkAsPaidAction\n if (\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Storno ||\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Ponuda ||\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Otpremnica\n ) {\n actions.splice(1, 1);\n }\n\n this.$store.dispatch(\"showNotification\", {\n id: this.finDocModel.id,\n color: \"warning\",\n message: this.$t(\"FinancialDocument.AreYouSureYouWishToLock\"),\n actions: actions,\n timeout: 5000,\n } as Notification);\n this.loading = false;\n }\n async lockDocument() {\n try {\n const saved = await this.save(false, true, false, false);\n if (saved) {\n await this.lock(true);\n\n if (\n this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Storno\n ) {\n this.$emit(\"refreshReservation\");\n }\n if (\n this.canCreateOwnersInvoices &&\n this.extraOptions.createOwnersInvoicesCheckbox\n ) {\n await this.createOwnersInvoices();\n }\n }\n } finally {\n this.showMessages();\n }\n }\n // lock and fiscalize\n async lock(refresh = true) {\n this.loading = true;\n\n await Vue.axios\n .put(\n `financialDocuments/${this.finDocModel.id}/lock`,\n {\n fiscalizeOfferOrDeliveryNote:\n this.extraOptions.fiscalizeOfferDeliveryNote,\n }\n )\n .then((res) => {\n if (res.data.locked)\n this.messages.push(\"FinancialDocument.LockSuccess\");\n\n if (res.data.fiscalized && this.shouldFiscalize)\n this.messages.push(\"FinancialDocument.FiscalizationSuccess\");\n else if (this.shouldFiscalize) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message:\n this.$t(\"FinancialDocument.FiscalizationFailed\") +\n \"\\n\" +\n (res.data.errorMessage ? res.data.errorMessage : \"\"),\n timeout: 5000,\n });\n }\n\n if (refresh) this.refresh(this.finDocModel.id);\n })\n .finally(() => (this.loading = false));\n }\n\n get shouldFiscalize() {\n return (\n this.paymentMeansId !== PaymentMeansEnum.TransakcijskiRacun &&\n this.paymentMeanBaseId !== PaymentMeansEnum.TransakcijskiRacun &&\n this.paymentMeansId !== PaymentMeansEnum.Cek &&\n this.paymentMeanBaseId !== PaymentMeansEnum.Cek &&\n this.tenantIsFiscalizationObligor &&\n ((this.finDocModel.documentTypeId === FinancialDocumentTypesEnum.Ponuda &&\n this.extraOptions.fiscalizeOfferDeliveryNote) ||\n this.finDocModel.documentTypeId !==\n FinancialDocumentTypesEnum.Ponuda) &&\n ((this.finDocModel.documentTypeId ===\n FinancialDocumentTypesEnum.Otpremnica &&\n this.extraOptions.fiscalizeOfferDeliveryNote) ||\n this.finDocModel.documentTypeId !==\n FinancialDocumentTypesEnum.Otpremnica)\n );\n }\n\n // download PDF\n async downloadPdfDocument(skipAutoAdvanceInvoiceCancellationBackups = false) {\n if (!this.isLocked) {\n const saved = await this.save(\n false,\n skipAutoAdvanceInvoiceCancellationBackups,\n true,\n true\n );\n if (!saved) return;\n }\n\n this.loading = true;\n\n try {\n const res = await Vue.axios.get(\n `financialDocuments/${this.finDocModel.id}/pdfDocument`,\n {\n params: {\n $skip: 0,\n $top: null,\n },\n responseType: \"blob\",\n }\n );\n\n const groups = /filename=(?[^;]+);/.exec(\n res.headers[\"content-disposition\"]\n )?.groups;\n saveFile(res.data, groups?.filename ?? \"Finances.xlsx\");\n\n return res;\n } finally {\n this.loading = false;\n }\n }\n\n // fiscalize\n async fiscalize(refresh = true) {\n this.loading = true;\n await this.sleep();\n\n await Vue.axios\n .put(\n `financialDocuments/${this.finDocModel.id}/fiscalize`,\n {}\n )\n .then((res) => {\n if (res.data.fiscalized)\n this.messages.push(\"FinancialDocument.FiscalizationSuccess\");\n else {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message:\n this.$t(\"FinancialDocument.FiscalizationFailed\") +\n \"\\n\" +\n res.data.errorMessage,\n timeout: 5000,\n });\n }\n\n if (refresh) this.refresh(null);\n })\n .finally(() => (this.loading = false));\n }\n\n // mark as paid\n get totalToPay() {\n const summary = getPriceSummary(this.finDocModel);\n return this.extraOptions.automaticallyCancelRelatedAdvanceInvoices\n ? summary.toPayWithoutAdvance\n : summary.toPay;\n }\n amountDue: number | null = null;\n\n paymentsForFinDocDialogOpen = false;\n\n // create cancellation document (storno)\n async cancel() {\n this.loading = true;\n await this.sleep();\n\n await Vue.axios\n .post(`financialDocuments/${this.finDocModel.id}/cancel`, {\n businessUnitId: this.activeBusinessUnit?.id ?? null,\n cashRegisterId: this.activeCashRegister?.id ?? null,\n })\n .then((res) => {\n this.refresh(res.data);\n this.internalDeleteOnClose = true; // so the storno will be deleted if user closes the form without saving\n })\n .finally(() => (this.loading = false));\n }\n\n async createOwnersInvoices() {\n this.loading = true;\n if (this.lineItemsForOwnersInvoice.length > 0) {\n await this.axios\n .post(\n \"financialDocuments/CreateAndLockOwnersInvoicesForReservationUnits\",\n {\n reservationId: this.finDocModel.reservationId,\n reservationUnitIds: this.lineItemsForOwnersInvoice.map(\n (x) => x.reservationAccUnitTypeId\n ),\n culture: this.internalLanguage,\n }\n )\n .then((res) => {\n if (res.data.length === 0) {\n this.messages.push(\n \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n );\n } else {\n this.messages.push(\n \"FinancialDocument.CreateOwnersInvoices.Success\"\n );\n\n if (res.data.some((x) => !x.locked))\n this.messages.push(\n \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n );\n else\n this.messages.push(\n \"FinancialDocument.CreateOwnersInvoices.LockingSuccess\"\n );\n }\n })\n .catch(() => {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.CreateOwnersInvoices.Failed\"),\n timeout: 5000,\n });\n })\n .finally(() => {\n this.loading = false;\n });\n }\n }\n\n paymentsList: PaymentModel[] = [];\n\n async openPaymentModal() {\n this.loading = true;\n let amountPaid = 0;\n if (\n this.finDocModel.reservationId != null &&\n this.finDocModel.reservationId != 0\n ) {\n await Vue.axios\n .get(\"FinancialDocuments/GetUnassignedPayments\", {\n params: {\n reservationId: this.finDocModel.reservationId,\n financiaDoumentId: this.finDocModel.id,\n },\n })\n .then((res) => {\n this.paymentsList = res.data;\n amountPaid = round(\n this.paymentsList.reduce(\n (sum, x) =>\n sum +\n (x.currencyId === this.finDocModel.formalCurrencyId\n ? x.alreadyPaidForFinDoc ?? 0\n : round(\n (x.alreadyPaidForFinDoc ?? 0) *\n this.finDocModel.workingToFormalConversionRate,\n 2\n )),\n 0\n ) ?? 0,\n 2\n );\n });\n }\n\n this.amountDue = round(this.totalToPay - amountPaid, 2);\n const today = new Date();\n\n //if there are no existing payments\n if (\n this.paymentsList === null ||\n this.paymentsList === undefined ||\n this.paymentsList.length === 0\n ) {\n if (\n (this.finDocModel.basicInfo.paymentMeansId ===\n PaymentMeansEnum.Ostalo ||\n this.paymentMeanBaseId === PaymentMeansEnum.Ostalo) &&\n this.amountDue != 0\n ) {\n if (\n this.finDocModel.basicInfo.paymentMeansAdditionalDetails &&\n this.finDocModel.basicInfo.paymentMeansAdditionalDetails.length > 0\n ) {\n const paymentDate = (\n this.finDocModel.documentTypeId ===\n FinancialDocumentTypesEnum.RacunZaPredujam\n ? this.finDocModel.basicInfo.deliveryDate ?? today.toISOString()\n : today.toISOString()\n ).substring(0, 10);\n const paymentTime = today.toISOString().substring(11);\n\n this.paymentsList =\n this.finDocModel.basicInfo.paymentMeansAdditionalDetails?.map(\n (e) => {\n return {\n id: 0,\n paymentDate: paymentDate + \"T\" + paymentTime,\n amount: e.amount,\n remainingAmount: e.amount,\n amountToAsign: e.amount,\n currencyId: e.currencyId,\n paymentMeansId: e.paymentMeansId,\n cardTypeId: e.cardTypeId,\n } as PaymentModel;\n }\n ) ?? [];\n this.saveLockAndMarkAsPaid();\n } else {\n this.paymentsList = [\n {\n id: 0,\n remainingAmount: 0,\n amountToAsign: 0,\n paymentMeansId: null,\n cardTypeId: null,\n amount: 0,\n currencyId: this.finDocModel.formalCurrencyId,\n currencyCode: this.finDocModel.formalCurrencyISO3,\n paymentDate: \"\",\n alreadyPaidForFinDoc: null,\n },\n {\n id: 0,\n remainingAmount: 0,\n amountToAsign: 0,\n paymentMeansId: null,\n cardTypeId: null,\n amount: 0,\n currencyId: this.finDocModel.formalCurrencyId,\n currencyCode: this.finDocModel.formalCurrencyISO3,\n paymentDate: \"\",\n alreadyPaidForFinDoc: null,\n },\n ];\n this.loading = false;\n this.paymentsForFinDocDialogOpen = true;\n }\n } else if (\n ((this.paymentMeanBaseId === PaymentMeansEnum.TransakcijskiRacun ||\n this.finDocModel.basicInfo.paymentMeansId ===\n PaymentMeansEnum.TransakcijskiRacun) &&\n this.amountDue != 0) ||\n (this.finDocModel.documentTypeId ==\n FinancialDocumentTypesEnum.RacunZaPredujam &&\n this.finDocModel.basicInfo.deliveryDate?.slice(0, 10) !=\n new Date().toISOString().slice(0, 10))\n ) {\n this.paymentsList = [\n {\n id: 0,\n remainingAmount: this.amountDue,\n amountToAsign: this.amountDue,\n paymentMeansId: this.finDocModel.basicInfo.paymentMeansId,\n cardTypeId: this.finDocModel.basicInfo.cardTypeId,\n amount: this.amountDue,\n currencyId: this.finDocModel.formalCurrencyId,\n currencyCode: this.finDocModel.formalCurrencyISO3,\n paymentDate: today.toISOString(),\n alreadyPaidForFinDoc: null,\n },\n ];\n this.loading = false;\n this.paymentsForFinDocDialogOpen = true;\n } else {\n this.paymentsList = [\n {\n id: 0,\n remainingAmount: this.amountDue,\n amountToAsign: this.amountDue,\n paymentMeansId: this.finDocModel.basicInfo.paymentMeansId,\n cardTypeId: this.finDocModel.basicInfo.cardTypeId,\n amount: this.amountDue,\n currencyId: this.finDocModel.formalCurrencyId,\n currencyCode: this.finDocModel.formalCurrencyISO3,\n paymentDate: today.toISOString(),\n alreadyPaidForFinDoc: null,\n },\n ];\n this.saveLockAndMarkAsPaid();\n }\n }\n //if there is one existing payment that covers the due amount of the fin doc\n //just skip the payment modal opening and use that payment to link\n else if (\n this.paymentsList.length === 1 &&\n this.paymentsList.reduce(\n (sum, x) => sum + (x.remainingAmount ?? 0),\n 0\n ) === this.amountDue\n ) {\n this.paymentsList = [\n {\n id: this.paymentsList[0].id,\n remainingAmount: this.paymentsList[0].remainingAmount,\n amountToAsign: this.paymentsList[0].remainingAmount,\n paymentMeansId: this.paymentsList[0].paymentMeansId,\n cardTypeId: this.paymentsList[0].cardTypeId,\n amount: this.paymentsList[0].remainingAmount,\n currencyId: this.paymentsList[0].currencyId,\n currencyCode: this.paymentsList[0].currencyCode,\n paymentDate: today.toISOString(),\n alreadyPaidForFinDoc: null,\n },\n ];\n this.saveLockAndMarkAsPaid();\n }\n //if there are existing payments\n else {\n this.loading = false;\n this.paymentsForFinDocDialogOpen = true;\n }\n }\n\n async saveLockAndMarkAsPaid() {\n this.internalDeleteOnClose = false;\n this.loading = true;\n await this.sleep();\n\n const formvalid = this.formRef?.validate() ?? false;\n\n if (!formvalid) {\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"Validation.InputErrors\"),\n timeout: 5000,\n });\n this.loading = false;\n throw new Error(\"Validation.InputErrors\");\n }\n\n if (\n this.extraOptions.automaticallyCancelRelatedAdvanceInvoices &&\n this.canAutomaticallyCancelRelatedAdvanceInvoices\n ) {\n const checkResponse = await this.axios.get(\n \"FinancialDocuments/CheckBusinessUnitStatus\",\n {\n params: {\n financialDocumentIds: (\n this.finDocModel.relatedAdvanceInvoices.map((x) => x.id) ?? []\n ).join(\",\"),\n },\n }\n );\n\n if (!checkResponse.data) {\n this.loading = false;\n return false;\n }\n }\n\n const paymentsForRequest = this.paymentsList.filter(\n (e) => e.amountToAsign !== 0\n );\n\n //if the document is already locked - just mark it as paid\n if (\n this.finDocModel.documentStatusId ===\n FinancialDocumentStatusEnum.Zakljucen\n ) {\n await Vue.axios\n .put(`financialDocuments/${this.finDocModel.id}/markaspaid`, {\n payments: paymentsForRequest,\n changeReservationStatusToConfirmed: this.changeReservationStatus,\n })\n .then(() => {\n this.messages.push(\"FinancialDocument.MarkAsPaidSuccess\");\n this.paymentsList = [];\n this.amountDue = 0;\n this.paymentsForFinDocDialogOpen = false;\n this.refresh(null);\n })\n .finally(() => {\n this.loading = false;\n this.showMessages();\n this.$emit(\"refreshReservation\");\n });\n } else {\n let saveSuccess = false;\n this.hasTaxRecapError = false;\n\n await Vue.axios\n .post(\n \"financialDocuments/SaveLockAndMarkFinancialDocumentAsPaid\",\n {\n ...this.finDocModel,\n unassignedPayments: paymentsForRequest,\n automaticallyCancelRelatedAdvanceInvoices:\n this.extraOptions.automaticallyCancelRelatedAdvanceInvoices,\n autoAdvanceInvoiceCancellationBackupBusinessUnitId:\n this.autoAdvanceInvoiceCancellationBackupBusinessUnitId,\n autoAdvanceInvoiceCancellationBackupCashRegisterId:\n this.autoAdvanceInvoiceCancellationBackupCashRegisterId,\n changeReservationStatusToConfirmed: this.changeReservationStatus,\n fiscalizeOfferOrDeliveryNote:\n this.extraOptions.fiscalizeOfferDeliveryNote,\n }\n )\n .then((res) => {\n saveSuccess = true;\n if (!this.internalDocumentId) {\n this.internalDocumentId = res.data.documentId;\n }\n this.messages.push(\"FinancialDocument.SaveSuccess\");\n this.paymentsList = [];\n this.amountDue = 0;\n if (res.data.locked)\n this.messages.push(\"FinancialDocument.LockSuccess\");\n if (res.data.fiscalized)\n this.messages.push(\"FinancialDocument.FiscalizationSuccess\");\n if (res.data.paid) {\n this.messages.push(\"FinancialDocument.MarkAsPaidSuccess\");\n if (paymentsForRequest.some((e) => e.id !== 0)) {\n this.messages.push(\n \"FinancialDocument.MarkAsPaidSuccess.ExistingPaymentsLinked\"\n );\n }\n if (paymentsForRequest.some((e) => e.id === 0)) {\n this.messages.push(\n \"FinancialDocument.MarkAsPaidSuccess.NewPaymentsCreated\"\n );\n }\n }\n if (\n this.canCreateOwnersInvoices &&\n this.extraOptions.createOwnersInvoicesCheckbox\n ) {\n this.createOwnersInvoices();\n }\n\n if (\n res.data.advanceInvoiceCancellationResults &&\n res.data.advanceInvoiceCancellationResults.length > 0\n ) {\n this.finDocCreateResponseDialogData = _.cloneDeep(res.data);\n }\n this.paymentsForFinDocDialogOpen = false;\n })\n .catch((error) => {\n const data = error.data as ApiErrorsRuleBroken;\n const isTaxRecap =\n data.code === \"RuleBroken\" &&\n data.brokenRules.some(\n (br) => br.name === \"TaxRecap.Validation.TaxRecapNotValid\"\n );\n if (isTaxRecap) {\n this.hasTaxRecapError = true;\n }\n })\n .finally(() => {\n this.loading = false;\n if (saveSuccess) {\n this.refresh(null);\n }\n this.showMessages();\n this.$emit(\"refreshReservation\");\n });\n\n return saveSuccess;\n }\n }\n\n showMessages() {\n this.loading = false;\n\n // show auto prepayment invoice cancellation results dialog if there's anything to show\n if (this.finDocCreateResponseDialogData !== null) {\n this.finDocCreateResponseDialogOpen = true;\n }\n\n const formatSuccessMessages = (x: string[]) =>\n x\n .map((h) => this.$t(h).toString())\n .map((th) => (th.endsWith(\".\") ? th : th + \".\"))\n .join(\" \");\n\n const fiscalizationFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.FiscalizationFailed\"\n );\n\n if (fiscalizationFailed !== -1) {\n this.messages.splice(fiscalizationFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\"FinancialDocument.FiscalizationFailed\"),\n timeout: 5000,\n });\n }\n\n const ownersInvoicesCreationFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n );\n if (ownersInvoicesCreationFailed !== -1) {\n this.messages.splice(ownersInvoicesCreationFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateOwnersInvoices.NoInvoicesCreated\"\n ),\n timeout: 5000,\n });\n }\n\n const ownersInvoicesLockingFailed = this.messages.findIndex(\n (x) => x === \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n );\n if (ownersInvoicesLockingFailed !== -1) {\n this.messages.splice(ownersInvoicesLockingFailed, 1);\n this.$store.dispatch(\"showNotification\", {\n color: \"error\",\n message: this.$t(\n \"FinancialDocument.CreateOwnersInvoices.LockingFailed\"\n ),\n timeout: 5000,\n });\n }\n\n if (this.messages.length > 0) {\n this.$store.dispatch(\"showNotification\", {\n color: \"success\",\n message: formatSuccessMessages(this.messages),\n timeout: 5000,\n });\n }\n\n this.messages = [];\n\n this.$emit(\"refresh\");\n }\n\n changedShowOwnerDetails() {\n if (this.isOpen && this.finDocModel && this.storedSettings) {\n const userInput = clearTaxExemption(\n this,\n this.finDocModel.lineItems,\n this.finDocModel.taxExemptionReason\n );\n\n const accomodationTaxRateId =\n this.storedSettings.accomodationUnitTypesTaxRate.id;\n const outOfScopeTaxRateId = this.storedSettings.outOfScopeTaxRate.id;\n\n const showOwnerDetails = this.finDocModel.basicInfo.showOwnerDetails;\n const stayLineItems = this.finDocModel.lineItems.filter(\n (e) =>\n e.reservationAccUnitTypeId &&\n !e.addOnServiceId &&\n e.agencyWorkModelId === AgencyWorkModelsEnum.OtherNameAndOtherInvoice\n );\n\n stayLineItems.forEach((e) => {\n if (showOwnerDetails) {\n e.taxRateId = e.ownerPaysVAT\n ? accomodationTaxRateId\n : outOfScopeTaxRateId;\n } else {\n e.taxRateId = this.paysVat\n ? accomodationTaxRateId\n : outOfScopeTaxRateId;\n }\n });\n\n fillInvoiceEditingTaxExemptionReason(\n this,\n this.finDocModel,\n this.finDocModel.lineItems.some((e) => e.isStayCancellation),\n this.paysVat\n );\n\n if (userInput !== \"\" && userInput != undefined) {\n if (this.finDocModel.taxExemptionReason != \"\")\n this.finDocModel.taxExemptionReason += \"\\n\" + userInput;\n else this.finDocModel.taxExemptionReason += userInput;\n }\n }\n }\n\n get paymentMeansId() {\n return this.finDocModel.basicInfo.paymentMeansId;\n }\n\n get paymentMeanBaseId() {\n return this.paymentMeans?.find(\n (e) => e.id === this.finDocModel.basicInfo.paymentMeansId\n )?.paymentMeanBaseId;\n }\n\n // validation\n get rules() {\n return {\n required: (value: any) =>\n !!value || this.$t(\"Validation.Required\").toString(),\n maxLength: (max: number) => (v: string) =>\n (v != undefined && v != null && v.length <= max) ||\n this.$t(\"Validation.MaxLength\", { count: max }),\n };\n }\n\n // settings\n get fiscalNumberIsMain() {\n return this.storedSettings?.setFiscalNumberAsMain ?? false;\n }\n\n get documentMainNumber() {\n if (this.storedSettings?.setFiscalNumberAsMain) {\n return this.finDocModel.documentIdentifier;\n }\n return this.finDocModel.documentInternalIdentifier;\n }\n\n get documentSecondaryNumber() {\n if (this.storedSettings?.setFiscalNumberAsMain) {\n return this.finDocModel.documentInternalIdentifier;\n }\n return this.finDocModel.documentIdentifier;\n }\n\n get businessUnits() {\n return (\n this.allBusinessUnits?.filter(\n (x) => x.status && !x.isOwnerBusinessUnit\n ) ?? []\n );\n }\n\n get cashRegistersForBusinessUnit() {\n return (\n this.allCashRegisters?.filter(\n (x) =>\n x.status &&\n x.businessUnitId ===\n this.autoAdvanceInvoiceCancellationBackupBusinessUnitId\n ) ?? []\n );\n }\n\n get workingToFormalConversionRate() {\n return this.storedSettings?.workingToFormalConversionRate ?? 1;\n }\n get formalToWorkingConversionRate() {\n return this.storedSettings?.formalToWorkingConversionRate ?? 1;\n }\n\n get internalLanguage() {\n return this.language ?? \"hr-HR\";\n }\n\n get paysVat() {\n return this.storedSettings?.paysVat ?? false;\n }\n\n // getters and setup\n // prettier-ignore\n @Action(\"financial/refreshModel\") refreshSettings?: () => Promise;\n @Getter(\"financial/settings\") storedSettings?: FinancialSettingsType;\n\n @Getter(\"language/language\") language?: string;\n\n // prettier-ignore\n @Action(\"codebooks/refreshFinancialDocumentStatuses\") refreshFinancialDocumentStatuses?: () => Promise;\n @Getter(\"codebooks/financialDocumentStatuses\")\n financialDocumentStatuses?: FinancialDocumentStatus[];\n\n @Action(\"codebooks/refreshTaxRates\") refreshTaxRates?: () => Promise;\n @Getter(\"codebooks/taxRates\") taxRates?: TaxRateView[];\n\n @Getter(\"appParams/tenantIsFiscalizationObligor\")\n tenantIsFiscalizationObligor?: boolean;\n\n @Getter(\"appParams/automaticallyChangeReservationStatusToConfirmed\")\n automaticallyChangeReservationStatusToConfirmed?: boolean;\n\n @Getter(\"businessUnit/allBusinessUnits\") allBusinessUnits?: BusinessUnit[];\n @Getter(\"cashRegister/allCashRegisters\")\n allCashRegisters?: CashRegisterModel[];\n\n @Action(\"businessUnit/refreshBusinessUnits\")\n refreshBusinessUnits?: () => void;\n\n @Action(\"codebooks/refreshPaymentMeans\")\n refreshPaymentMeans?: () => Promise;\n @Getter(\"codebooks/paymentMeans\") paymentMeans?: PaymentMean[];\n\n @Getter(\"appParams/cashRegisterFeatureFlag\")\n cashRegisterFeature?: boolean;\n\n // also used for paid prepayments for cancellations (storno fin docs)\n @Getter(\"appParams/showUnpaidPrepaymentsModal\")\n showUnpaidPrepaymentsModal?: boolean;\n\n @Getter(\"businessUnit/activeBusinessUnit\") activeBusinessUnit?: BusinessUnit;\n @Getter(\"cashRegister/activeCashRegister\")\n activeCashRegister?: CashRegisterModel;\n\n // prettier-ignore\n @Getter(\"appParams/automaticRelatedAdvanceInvoiceCancellingDefault\") automaticRelatedAdvanceInvoiceCancellingDefault?: boolean;\n\n // TODO: refresh all fin doc relevant codebooks here (implement new action that does it all in one call)\n async created() {\n const promises = [];\n\n if (!this.storedSettings && this.refreshSettings) {\n promises.push(this.refreshSettings());\n }\n\n if (\n (this.financialDocumentStatuses?.length ?? 0) === 0 &&\n this.refreshFinancialDocumentStatuses\n ) {\n promises.push(this.refreshFinancialDocumentStatuses());\n }\n\n if ((this.taxRates?.length ?? 0) === 0 && this.refreshTaxRates) {\n promises.push(this.refreshTaxRates());\n }\n\n if (this.refreshBusinessUnits) {\n promises.push(this.refreshBusinessUnits());\n }\n\n if ((this.paymentMeans?.length ?? 0) === 0 && this.refreshPaymentMeans) {\n promises.push(this.refreshPaymentMeans());\n }\n\n await Promise.all(promises);\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentModalForm.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinancialDocumentModalForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinancialDocumentModalForm.vue?vue&type=template&id=00d73475&scoped=true&\"\nimport script from \"./FinancialDocumentModalForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinancialDocumentModalForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FinancialDocumentModalForm.vue?vue&type=style&index=0&id=00d73475&lang=scss&scoped=true&\"\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 \"00d73475\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VFooter,VForm,VIcon,VRow,VSelect,VSpacer,VSubheader,VTextarea,VToolbar,VToolbarTitle})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MoreLessSelect.vue?vue&type=style&index=0&id=53ceda70&scoped=true&lang=css&\"","export type AgencyWorkModel = {\n id: number;\n name: string;\n textResourceKey: string;\n }\n \nexport enum AgencyWorkModelsEnum {\n OwnNameAndOwnInvoice = 1,\n OwnNameAndOtherInvoice = 2,\n OtherNameAndOtherInvoice = 3\n}","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateTranslations.vue?vue&type=style&index=0&id=15ee08df&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MaintenanceGrid.vue?vue&type=style&index=0&id=e5d5799a&scoped=true&lang=scss&\"","export interface EVisitorIntegrationModel {\n id: number;\n name: string;\n}\n\nexport type EVisitorView = {\n id: number;\n facility: string;\n user: string;\n numberOfUnits: number;\n numberOfBeds: number;\n defaultNumberOfExtraBeds: number | null;\n accountName: string;\n autoCheckout: boolean;\n statusId: number | null;\n};\n\nexport class EVisitorModel {\n id = 0;\n propertyId = 0;\n facility = \"\";\n user = \"\";\n password = null as string | null;\n numberOfUnits = 0;\n numberOfBeds = 0;\n defaultNumberOfExtraBeds = null as number | null;\n accountName = \"\";\n autoCheckout = false;\n statusId: number | null = null;\n}\n\nexport type EVisitorGridViewModel = {\n id: number;\n\n customerName: string;\n identificationDocumentTypeId?: number;\n identificationDocumentNumber: string;\n dateOfBirth?: string;\n countryOfBirthId?: number;\n countryOfResidenceId?: number;\n citizenshipId?: number;\n genderId: number;\n\n propertyName: string;\n accomodationUnitTypeName: string;\n accomodationUnitName: string;\n reservationId: number;\n arrivalDate: string;\n arrivalTime: string;\n departureDate: string;\n departureTime: string;\n eVisitorPaymentCategoryId: number;\n eVisitorPaymentCategory: string;\n eVisitorArrivalOrganizationTypeId: number;\n eVisitorArrivalOrganizationType: string;\n magicalField: number;\n\n eVisitorStatusId: EVisitorStatusEnum;\n eVisitorValidationMessages: string[];\n\n isSelfCheckIn?: boolean;\n};\n\nexport enum EVisitorStatusEnum {\n NotCheckedIn = 1,\n CheckedIn = 2,\n CheckedOut = 3,\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormPaymentForm.vue?vue&type=style&index=0&id=551e1e5d&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomerLookupMobile.vue?vue&type=style&index=0&id=0c78ca4f&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationTemplateVariables.vue?vue&type=style&index=0&id=4ca616f1&scoped=true&lang=css&\"","import { FinancialDocumentTypesEnum } from \"@/shared/models/enums.type\";\nimport { FinDocLineItemViewModel, FinDocViewModel } from \"./models\";\nimport { AgencyWorkModelsEnum } from \"@/shared/models/agencyWorkModel\";\nimport { round } from \"@/components/numbers/numberFormatUtils\";\nimport { TaxRateView } from \"@/shared/models/taxRates\";\nimport store from \"@/store\";\nimport { FinancialSettingsType } from \"@/store/modules/financial\"; \nimport * as _ from \"lodash\";\n\nexport function clearTaxExemption(vm: Vue, lineItems: FinDocLineItemViewModel[], taxExemptionReason: string) {\n const cityTaxExemption = vm.$t(\"CityTax.ExemptionReason\").toString();\n const stayNotPayingTaxExemption = vm.$t(\"StayVat.ExemptionReason\").toString();\n const tenantNotPayingTaxExemption = vm.$t(\"TenantVat.ExemptionReason\").toString();\n const exchangeRateDifferenceExemption = vm.$t(\n \"ExchangeRateDifference.ExemptionReason\"\n ).toString();\n\n let userInput = taxExemptionReason != undefined \n ? taxExemptionReason\n .replace(cityTaxExemption, \"\")\n .replace(stayNotPayingTaxExemption, \"\")\n .replace(tenantNotPayingTaxExemption, \"\")\n .replace(exchangeRateDifferenceExemption, \"\")\n .trim()\n : \"\";\n\n for (const item of lineItems) {\n if (item.taxExemptionReasonFromAOS) {\n userInput = userInput.replace(item.taxExemptionReasonFromAOS, \"\").trim();\n }\n }\n return userInput;\n}\n\nexport function fillInvoiceEditingTaxExemptionReason(vm: Vue, finDocModel: FinDocViewModel, isForCancellation = false, tenantPaysVat = true) {\n const items = finDocModel.lineItems;\n\n const financialSettings: FinancialSettingsType = store.state.financial.model;\n //TODO: when we decide on how to handle tax exemptions for different countries, this has to be changed accordingly\n const stayVATRatesForExemption = financialSettings.taxRates.filter(e => e.isOutOfScope).map(e => e.id);\n const AOSTaxRatesForExemption = financialSettings.taxRates.filter(e => e.isTaxExempt || e.isOutOfScope).map(e => e.id);\n\n const remarks = [];\n\n if (finDocModel.documentTypeId === FinancialDocumentTypesEnum.VlasnikovRacun) {\n if (items.some(i => !i.ownerIsResident && !i.ownerVatId)) {\n remarks.push(vm.$t(\"StayVat.ReverseChargeExemptionReason\").toString());\n\n }\n else if (items.some(i => !i.ownerPaysVAT)) {\n remarks.push(vm.$t(\"TenantVat.ExemptionReason\").toString());\n }\n }\n else {\n // VAT exemption reason in case tenant/owner doesn't pay VAT\n if (items.some(i => (i.agencyWorkModelId == AgencyWorkModelsEnum.OwnNameAndOwnInvoice && !tenantPaysVat)\n || (i.agencyWorkModelId == AgencyWorkModelsEnum.OtherNameAndOtherInvoice && !i.ownerPaysVAT && finDocModel.basicInfo.showOwnerDetails)\n || (i.agencyWorkModelId == AgencyWorkModelsEnum.OtherNameAndOtherInvoice && !tenantPaysVat && !finDocModel.basicInfo.showOwnerDetails))) {\n remarks.push(vm.$t(\"TenantVat.ExemptionReason\").toString());\n }\n\n // stay VAT exemption reason in case a stay item doesn't have a tax rate set\n if ((items.some(i => i.agencyWorkModelId == AgencyWorkModelsEnum.OwnNameAndOtherInvoice && !i.addOnServiceId && i.taxRateId == financialSettings.outOfScopeTaxRate.id)) || \n (items.some(i => i.agencyWorkModelId == AgencyWorkModelsEnum.OwnNameAndOtherInvoice && !i.addOnServiceId && i.reservationAccUnitTypeId && (stayVATRatesForExemption.includes(i.taxRateId))))\n && !isForCancellation) {\n remarks.push(vm.$t(\"StayVat.ExemptionReason\").toString());\n }\n\n // cancelation VAT exemption reason in case \n if ((items.some(i => i.agencyWorkModelId == AgencyWorkModelsEnum.OwnNameAndOtherInvoice) ||\n items.some(i => i.agencyWorkModelId == AgencyWorkModelsEnum.OwnNameAndOwnInvoice && tenantPaysVat) ||\n items.some(i => i.agencyWorkModelId == AgencyWorkModelsEnum.OtherNameAndOtherInvoice && i.ownerPaysVAT && finDocModel.basicInfo.showOwnerDetails) ||\n items.some(i => i.agencyWorkModelId == AgencyWorkModelsEnum.OtherNameAndOtherInvoice && tenantPaysVat && !finDocModel.basicInfo.showOwnerDetails)\n )\n && isForCancellation) {\n remarks.push(vm.$t(\"Cancellation.ExemptionReason\").toString());\n }\n\n // AOS tax exemption (including city tax)\n for (const item of items.filter((x) => AOSTaxRatesForExemption.includes(x.taxRateId))) {\n if (!remarks.includes(item.taxExemptionReasonFromAOS) && !!item.taxExemptionReasonFromAOS) {\n remarks.push(item.taxExemptionReasonFromAOS);\n }\n }\n }\n\n if (items.some(x => x.isExchangeRateDifference)) {\n remarks.push(vm.$t(\"ExchangeRateDifference.ExemptionReason\").toString());\n }\n\n finDocModel.taxExemptionReason = remarks.join(\"\\n\");\n}\n\nexport function calculateLineItem(lineItem: FinDocLineItemViewModel, taxRates: TaxRateView[], workingToFormalConversionRate: number) {\n const taxRateFactor = round((taxRates.find(e => e.id === lineItem.taxRateId)?.rate ?? 0) / 100, 4);\n const consumptionTaxRateFactor = round((lineItem.consumptionTaxRate ?? 0) / 100, 4);\n const totalTaxRateFactor = round(taxRateFactor + consumptionTaxRateFactor, 4);\n const discountFactor = round(lineItem.discountPercent / 100, 8);\n\n const totalGrossPrice = round(lineItem.grossUnitPrice * lineItem.decimalQuantity, 2);\n\n lineItem.grossPrice = round(totalGrossPrice * (1 - discountFactor), 2);\n lineItem.netPrice = round(lineItem.grossPrice / (1 + totalTaxRateFactor), 2);\n // using 1 as default quantity to avoid \"divide by 0\" errors\n // if quantity is 0 then all prices except gross unit price are 0\n lineItem.netUnitPrice = round(lineItem.grossUnitPrice / (1 + totalTaxRateFactor), 2);\n\n calculateLineItemAltCurrency(lineItem, workingToFormalConversionRate);\n}\n\nexport function calculateLineItemDiscount(lineItem: FinDocLineItemViewModel, taxRates: TaxRateView[], workingToFormalConversionRate: number) {\n if (lineItem.grossUnitPrice) {\n const totalGrossPrice = round(lineItem.grossUnitPrice * lineItem.decimalQuantity, 2);\n const priceFactor = lineItem.grossPrice / totalGrossPrice;\n const discountFactor = (1 - priceFactor) * 100;\n lineItem.discountPercent = round(discountFactor, 6);\n }\n // if gross unit price is not set\n // then set it to total gross price / quantity, and reset the discount\n else {\n lineItem.grossUnitPrice = round(lineItem.grossPrice / (lineItem.decimalQuantity ? lineItem.decimalQuantity : 1));\n lineItem.discountPercent = 0;\n }\n\n // recalculate the item at the end to get everything right\n calculateLineItem(lineItem, taxRates, workingToFormalConversionRate);\n}\n\nfunction calculateLineItemAltCurrency(lineItem: FinDocLineItemViewModel, workingToFormalConversionRate: number) {\n lineItem.grossUnitPriceAlt = round(lineItem.grossUnitPrice * workingToFormalConversionRate, 2);\n lineItem.grossPriceAlt = round(lineItem.grossPrice * workingToFormalConversionRate, 2);\n lineItem.netUnitPriceAlt = round(lineItem.netUnitPrice * workingToFormalConversionRate, 2);\n lineItem.netPriceAlt = round(lineItem.netPrice * workingToFormalConversionRate, 2);\n}\n\nexport function getPriceSummary(document: FinDocViewModel) {\n const itemsCopy = _.cloneDeep(document.lineItems);\n const advanceCopy = _.cloneDeep(\n document.relatedAdvanceInvoices\n );\n const gross =\n itemsCopy.length === 0\n ? 0\n : round(\n itemsCopy.reduce((sum, e) => sum + e.grossPrice, 0),\n 2\n );\n const net =\n itemsCopy.length === 0\n ? 0\n : round(\n itemsCopy.reduce((sum, e) => sum + e.netPrice, 0),\n 2\n );\n const advance =\n advanceCopy.length === 0\n ? 0\n : round(\n advanceCopy.reduce(\n (sum, e) =>\n sum +\n e.totalDueAmount *\n (document.documentTypeId ===\n FinancialDocumentTypesEnum.Storno\n ? 1\n : -1),\n 0\n ),\n 2\n );\n\n const discount = -round(\n (gross * document.discountPercent) / 100,\n 2\n );\n const toPay = round(gross + advance - discount, 2);\n const toPayWithoutAdvance = round(gross - discount, 2);\n\n return {\n gross: gross,\n net: net,\n advance: advance,\n discount: discount,\n toPay: toPay,\n toPayWithoutAdvance: toPayWithoutAdvance\n };\n}","export type MessageViewModel = {\n id: number;\n isInbound: boolean;\n sourceTypeId: number;\n date: string;\n from: string;\n subject: string;\n isRead: boolean;\n isResolved: boolean;\n isAutomatic: boolean;\n customer: string;\n customerId?: number;\n reservationId?: number;\n\n body: string;\n parentMessageId?: number;\n parentMessage: MessageViewModel;\n messageRecipients: MessageRecipientViewModel[];\n messageAttachments: MessageAttachmentViewModel[];\n}\n\nexport type MessageRecipientViewModel = {\n to: string;\n isCc: boolean;\n isBcc: boolean;\n}\n\nexport type MessageAttachmentViewModel = {\n id: number;\n name: string;\n mimeType: string;\n documentId: number;\n}\n\nexport class NewMessageModel {\n subject = \"\";\n body = \"\";\n to = [] as string[];\n attachedDocumentIds = [] as number[];\n sourceTypeId = 0;\n parentMessageId: number | null = null;\n reservationId: number | null = null;\n customerId: number | null = null;\n attachmentsIds = [] as number[];\n notificationTemplateId: number | null = null;\n cultureCode: string | null = null;\n}\n\nexport type Recipient = {\n id: number;\n type: string;\n name: string;\n email: string;\n telephoneNumber: string;\n};\n\nexport type AdditionalRecipientModel = {\n type: string;\n name: string;\n email: string;\n}\n\nexport type ComposedMessage = {\n subject: string;\n body: string;\n recipientsIds: number[];\n additionalRecipients: AdditionalRecipientModel[];\n attachmentDocumentsIds: number[];\n}\n\nexport enum MessageSourceTypeEnum {\n 'BookingCom' = 1,\n 'AirBnb' = 2,\n 'EMail' = 3,\n 'SMS' = 4,\n 'WhatsApp' = 5,\n 'Liveagent' = 6,\n 'TawkTo' = 7,\n 'ZenDesk' = 8\n}\n\nexport enum BaseMessageTypeEnum {\n NewMessage = 1,\n Reply = 2,\n ReplyToAll = 3,\n Forward = 4\n}\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=10b7b3b2&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GuestReviewForm.vue?vue&type=style&index=0&id=298fc638&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MobileFilterModal.vue?vue&type=style&index=0&id=0621f6aa&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarBoxRow.vue?vue&type=style&index=0&id=92f656c0&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":_vm.dateSize}},[_c('DateField',{attrs:{\"label\":_vm._dateLabel,\"rules\":_vm.rules.concat( (_vm.required ? [_vm.internalValidation.required] : [])),\"outlined\":_vm.outlined,\"clearable\":_vm.clearable,\"dense\":_vm.dense,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly},model:{value:(_vm.datePart),callback:function ($$v) {_vm.datePart=$$v},expression:\"datePart\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":_vm.timeSize}},[_c('TimeField',{attrs:{\"label\":_vm._timeLabel,\"rules\":_vm.rules.concat( (_vm.required ? [_vm.internalValidation.required] : [])),\"outlined\":_vm.outlined,\"dense\":_vm.dense,\"disabled\":_vm.disabled,\"readonly\":_vm.readonly},model:{value:(_vm.timePart),callback:function ($$v) {_vm.timePart=$$v},expression:\"timePart\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DateTime } from \"luxon\";\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\nimport DateField from \"@/components/misc/DateField.vue\";\nimport TimeField from \"@/components/misc/TimeField.vue\";\n\n@Component({\n components: {\n DateField,\n TimeField,\n },\n})\nexport default class DateTimeOffsetField extends Vue {\n // input/output is ISO format string\n @Prop({ default: \"\" }) value!: string;\n @Prop() dateLabel?: string;\n @Prop() timeLabel?: string;\n\n @Prop({ default: false }) clearable?: boolean;\n @Prop() dense?: boolean;\n @Prop({ default: false }) outlined?: boolean;\n @Prop() disabled?: boolean;\n @Prop() readonly?: boolean;\n\n @Prop({ default: \"6-6\" }) sizes!: string;\n\n // input/output type\n @Prop({ default: \"utc\" }) type!: \"utc\" | \"local\";\n\n // validation\n @Prop() required?: boolean;\n @Prop({ default: () => [] }) rules?: any[];\n\n internalValue = \"\";\n\n @Watch(\"value\", { immediate: true })\n inputValueChanged(fresh: string | undefined | null) {\n if (fresh) {\n this.internalValue = fresh;\n this.dateInternal = this.datePart;\n this.timeInternal = this.timePart;\n } else {\n if (this.internalValue) {\n this.dateInternal = \"\";\n this.timeInternal = \"\";\n }\n this.internalValue = \"\";\n }\n }\n\n @Watch(\"internalValue\")\n internalValueWatch(fresh: string, old: string) {\n if (fresh !== old) {\n this.$emit(\"input\", this.internalValue);\n }\n }\n\n get dateTime() {\n if (!this.internalValue) return null;\n const dateTime = DateTime.fromISO(this.internalValue, { zone: this.type });\n return dateTime.toLocal();\n }\n\n dateInternal = \"\";\n get datePart() {\n return this.dateTime?.toISO().substring(0, 10) ?? this.dateInternal;\n }\n\n set datePart(value: string) {\n this.dateInternal = value;\n\n if (this.dateInternal && this.timeInternal) {\n const localISO = this.dateInternal + \"T\" + this.timeInternal;\n this.setValue(localISO);\n } else {\n this.internalValue = \"\";\n }\n }\n\n timeInternal = \"\";\n get timePart() {\n return this.dateTime?.toISO().substring(11, 16) ?? this.timeInternal;\n }\n\n set timePart(value: string) {\n this.timeInternal = value;\n\n if (this.dateInternal && this.timeInternal) {\n const localISO = this.dateInternal + \"T\" + this.timeInternal;\n this.setValue(localISO);\n } else {\n this.internalValue = \"\";\n }\n }\n\n setValue(localISO: string) {\n let newDateTime = DateTime.fromISO(localISO);\n if (this.type === \"utc\") newDateTime = newDateTime.toUTC();\n this.internalValue = newDateTime.toISO();\n }\n\n internalValidation = {\n required: (value: any) => !!value || this.$t(\"Validation.Required\"),\n };\n\n get _dateLabel() {\n if (!this.dateLabel) return \"\";\n return this.dateLabel + (this.required ? \"*\" : \"\");\n }\n\n get _timeLabel() {\n if (!this.timeLabel) return \"\";\n return this.timeLabel + (this.required ? \"*\" : \"\");\n }\n\n get dateSize() {\n return this.sizes.split(\"-\")[0];\n }\n get timeSize() {\n return this.sizes.split(\"-\")[1];\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimeOffsetField.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimeOffsetField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateTimeOffsetField.vue?vue&type=template&id=efcd6316&\"\nimport script from \"./DateTimeOffsetField.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateTimeOffsetField.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccomodationUnitTypeLOSCategoriesForm.vue?vue&type=style&index=0&id=522bc718&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchReservationForm.vue?vue&type=style&index=0&id=613bff8f&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationScheduleForm.vue?vue&type=style&index=0&id=90444554&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitAddOnServices.vue?vue&type=style&index=0&id=13e9da22&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilitySearchResults.vue?vue&type=style&index=0&id=2c2e94b4&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-overlay',{attrs:{\"color\":_vm.$vuetify.theme.dark ? 'white' : undefined,\"opacity\":_vm.$vuetify.theme.dark ? 0.2 : undefined,\"value\":_vm.internalOpen},nativeOn:{\"click\":function($event){return _vm.clickOverlay.apply(null, arguments)}}}),_c('v-navigation-drawer',{attrs:{\"fixed\":\"\",\"right\":\"\",\"temporary\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"height\":_vm.$vuetify.breakpoint.height,\"width\":_vm.width || _vm.$vuetify.breakpoint.thresholds.sm},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_vm._t(\"append\")]},proxy:true}],null,true),model:{value:(_vm.internalOpen),callback:function ($$v) {_vm.internalOpen=$$v},expression:\"internalOpen\"}},[_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, PropSync } from \"vue-property-decorator\";\nimport _ from \"lodash\";\n\n@Component\nexport default class RightDrawer extends Vue {\n @PropSync('open', { default: false }) internalOpen?: boolean;\n @PropSync('saving', { default: false }) internalSaving?: boolean;\n @Prop() initial?: any;\n @Prop() watched?: any;\n @Prop() width?: any;\n @Prop() isWatchedValid?: boolean;\n @Prop() message?: string;\n\n get isWatchMode(): boolean {\n return !_.isUndefined(this.initial) && !_.isUndefined(this.watched);\n }\n\n get dirty() {\n return this.isWatchMode && !_.isEqual(this.initial, this.watched);\n }\n\n clickOverlay() {\n //disable user from closing drawer if the form is saving\n if (!this.internalSaving) {\n if (this.isWatchMode) {\n if (this.dirty) {\n this.$store.dispatch(\"showNotification\", {\n color: \"warning\",\n message: this.message ?? this.$t(\n \"Changes pending. Are you sure you want to close the form?\"\n ),\n actions: [\n {\n text: this.$t(\"Yes\"),\n fun: () => {\n this.internalOpen = false;\n return true;\n },\n },\n {\n text: this.$t(\"No\"),\n fun: () => {\n return true;\n },\n },\n ],\n timeout: 5000,\n });\n } else {\n this.internalOpen = false;\n }\n } else {\n this.internalOpen = false;\n }\n }\n }\n}\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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RightDrawer.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--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RightDrawer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RightDrawer.vue?vue&type=template&id=ba571f8e&scoped=true&\"\nimport script from \"./RightDrawer.vue?vue&type=script&lang=ts&\"\nexport * from \"./RightDrawer.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 \"ba571f8e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VNavigationDrawer,VOverlay})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=532bd209&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyForm.vue?vue&type=style&index=0&id=f92e203c&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BoxDayTrack.vue?vue&type=style&index=0&id=c323b2c6&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormHolder.vue?vue&type=style&index=0&id=28b9ee24&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BoxTimeTrack.vue?vue&type=style&index=0&id=14938c29&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTrackDayTrack.vue?vue&type=style&index=0&id=413b8a28&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormInfo.vue?vue&type=style&index=0&id=5bd90294&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EVisitorFacilitiesTable.vue?vue&type=style&index=0&id=58c1e160&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReservationFormUnitTile.vue?vue&type=style&index=0&id=4b9ab2de&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingInput.vue?vue&type=style&index=0&id=026e8620&scoped=true&lang=css&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAD4klEQVR4nL2XTWgdVRTHf+fcm3mZ1ySYpkWtVFeKG8WFYqNgqUEQVAouitDiRhCFUrtQ0O7cuAkouHHjxoCooK5EUTR+tCRYBKlSo4jfKC2Uhiaa17w3c46LOy9fLx81yfMPw9yZufec/73nnP/cC8shdBcd9mXJfelHr+66TY5thf32swtAnufSaDS8Xq8vJbTdaE+Kubk5r9fr0mg0kqOLFy8OZFnWIyLdJLBAwsy82WzODA0NteLExMRzRVG8ICKICO6+kZEtQUQwMxqNBuPj47fGqampkeHh4a46XQ2Dg4OMjo7uV1XtduavienpaVUR6e6ar4MQQmeZ/fHdeUaO/c1DRz9AbpvhwSff4/bHZvn0wz+7QqKDwM+fnGH863k+m7qbQ/ed5OSP+zn7W8HkO9/+PwSu3V0jBAFvcObXuzCbQ8W5eletOwQG+pZz2LtHKaeNRw7UOPvWVTz+QC/Wcq7Zuf2pEoMg7HrpY64/MqJaYCFy7+wXjJw4yInDYaHj6R+cZw+9z6mBfcSywFpGWTpli7Uly9o6m9q4L2phULCAnjv2VIx9Sq0PYlDA+YmbONr4nlPf3EzwkmYJjaYSrCBzp0ccMgEUqa8/Q/NK8B3cDXehdLASDKGMoAKICRioOefqe3n75a+wEOjt72H3noyPjo/xef89ZFKiKtUFIhtcdL5TAdWUfAJEANwwc1Cn7pd5d+dBeh59nWeOX8fYa38xVhxgR97qyg8iVv5RqVYCo1bO82Z2P2+82ETyW8jzEqU7epUIeCJhYngpCEauBexQVIquOG4j1aALbo4VgniKFaQYmXXPuQOxpX20ZBC8XNwXLWQQnXul/2JdV76oIAJBEXo8vnLpaQ4Xz2MquAiI4gLaTtvlQ68Yyzi7Y+5IqkfEDHXjiflLGvt9RvrLWTAFWaW21ja7DnxF09tikETAATf6BaJlCr0hFacDISTH7ovvVq7nWltVW/lQhdKWEHBN3wxousSQudJbdVYFqSRTqwG6ivW1YtKxQF7x8EUSUpWcC/GyS5QMJ5fUWUrwAGopHEnE1/B2pZBUSiKVNjuUAlKimUiUmihZNVORSpUqp96RyptAWeWSVWLjVEmARpGY9ZqQt+WgPfMlYWCrQiCpxBfaaREQJ6uh8fQ/8vvDNyRmgoJYFXsjzX67QtAmUOUCxuQF/UVC3n9j7pePRIhJHNLeXRZ2q1sjIJWSuVs6cphhuMyWcn6onr+6amHfcec+CSEQY0REkihtAuaOmVEUBV9OTqw6k2WWa7XawunM3ZNz1U2fltonrfZ4d2d+ft4BsiyTZrO5MaltxKp2/wU4oK6O5qJNxwAAAABJRU5ErkJggg==\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotoEditor.vue?vue&type=style&index=0&id=95d842dc&scoped=true&lang=css&\"","import { AxiosInstance, AxiosPromise } from \"axios\";\nimport { BrokenRule } from \"./models/apiErrors\";\nimport { uniq } from \"lodash/fp\";\n\nexport default (axiosInstance: AxiosInstance, handleCodes: string[]) => (\n config: any\n) => {\n if (axiosInstance.defaults.adapter) {\n return axiosInstance.defaults.adapter(config).catch(async (settlement: any) => {\n if (settlement && settlement.response && settlement.response.data) {\n try {\n const isResponseTypeBlob = config.responseType === \"blob\";\n const jsonMimeType = \"application/json\";\n const dataType = settlement.response.data.type;\n const isBlob = settlement.response.data instanceof Blob && dataType !== jsonMimeType;\n\n const data = (isResponseTypeBlob && !isBlob)\n ? await settlement.response.data.text().then((text: any) => {\n return JSON.parse(text);\n })\n : JSON.parse(settlement.response.data);\n\n if (\n data.code === \"RuleBroken\"\n ) {\n if (data.brokenRules.every((br: BrokenRule) =>\n handleCodes.includes(br.name)\n )) {\n const handled = uniq(\n (data.brokenRules as BrokenRule[]).map((br) => br.name)\n );\n return Promise.resolve({\n ...settlement.response,\n handled,\n isHandleBrokenRuleResult: true,\n }) as AxiosPromise;\n }\n else {\n const unhandled = uniq(\n (data.brokenRules as BrokenRule[]).filter((br) => !handleCodes.includes(br.name)).map((br) => br.name)\n );\n return Promise.resolve({\n ...settlement.response,\n unhandled,\n isHandleBrokenRuleResult: false,\n }) as AxiosPromise;\n }\n }\n } catch {\n /* ignore, let it fall through */\n }\n }\n throw settlement;\n });\n } else {\n throw new Error(\"Missing adapter!\");\n }\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfficialRatesExportForOwners.vue?vue&type=style&index=0&id=60b02c03&scoped=true&lang=css&\"","import Vue from \"vue\";\nimport VueI18n, { DateTimeFormats, Locale, Path } from \"vue-i18n\";\nimport _ from \"lodash\";\n\nVue.use(VueI18n);\n\nexport const defaultLanguage = \"hr-HR\";\nexport const supportedLanguages = [\"hr-HR\", \"en-GB\", \"sl-SI\"];\n\n// let refDispatch: Promise | undefined;\nconst dispatch = _.debounce(\n (locale: Locale, key: Path, vm: Vue | null) => {\n vm?.$store.dispatch(\"language/setLanguage\", vm.$i18n.locale);\n },\n 30 * 1000,\n { leading: true, trailing: false }\n);\n\nconst dateTimeFormats: DateTimeFormats = {\n 'hr-HR': {\n \"year\": {\n year: 'numeric',\n },\n \"month\": {\n year: 'numeric',\n month: 'numeric',\n },\n 'long': {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n },\n 'precise': {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n fractionalSecondDigits: 3\n },\n },\n 'en-GB': {\n \"year\": {\n year: 'numeric',\n },\n \"month\": {\n year: 'numeric',\n month: 'numeric',\n },\n 'long': {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n },\n 'precise': {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n fractionalSecondDigits: 3\n },\n },\n 'sl-SI': {\n \"year\": {\n year: 'numeric',\n },\n \"month\": {\n year: 'numeric',\n month: 'numeric',\n },\n 'long': {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n },\n 'precise': {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n fractionalSecondDigits: 3\n },\n }\n};\n\nconst i18n = new VueI18n({\n locale: defaultLanguage,\n fallbackLocale: defaultLanguage,\n dateTimeFormats: dateTimeFormats,\n pluralizationRules: {\n \"hr-HR\": function (choice) {\n const c = Math.abs(choice);\n\n if (c <= 1) {\n return c;\n }\n\n const doesntEndWith11 = c % 100 !== 11;\n const endsWith1 = c % 10 === 1;\n\n if (doesntEndWith11 && endsWith1) {\n return 1;\n }\n\n return 2;\n },\n },\n missing: (locale: Locale, key: Path, vm: Vue | null) => {\n dispatch(locale, key, vm);\n return key;\n },\n});\n\nexport default i18n;\n"],"sourceRoot":""}