{"version":3,"file":"main.js","mappings":"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YAAY,EAAE,0CAA0C;CACzD,CAAC;AAEF;;;;;;GAMG;AACH,sEAAsE;;;;;;;;;;;;;;;;;;AC7CvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;IACjB,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACZpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/anonymous/client-pay/client-pay.component.ts","./src/app/anonymous/client-pay/client-pay.component.html","./src/app/anonymous/service/ResAnonymous.service.ts","./src/app/anonymous/track-order/track-order.component.ts","./src/app/anonymous/track-order/track-order.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/features/Availability/days-off-config/days-off-config.component.ts","./src/app/features/Availability/days-off-config/days-off-config.component.html","./src/app/features/Availability/days-off-config/days-off-form/days-off-form.component.ts","./src/app/features/Availability/days-off-config/days-off-form/days-off-form.component.html","./src/app/features/Availability/days-off-config/models/List.Days.ts","./src/app/features/Availability/days-off-config/services/dayOff.service.ts","./src/app/features/Availability/hours-config/hours-config.component.ts","./src/app/features/Availability/hours-config/hours-config.component.html","./src/app/features/Availability/hours-config/hours-form/hours-form.component.ts","./src/app/features/Availability/hours-config/hours-form/hours-form.component.html","./src/app/features/Availability/hours-config/services/Hours.service.ts","./src/app/features/Cancellation & Refund Policies/cancellation/cancellation.component.ts","./src/app/features/Cancellation & Refund Policies/cancellation/cancellation.component.html","./src/app/features/Cancellation & Refund Policies/cancellation/components/cancellation-form/cancellation-form.component.ts","./src/app/features/Cancellation & Refund Policies/cancellation/components/cancellation-form/cancellation-form.component.html","./src/app/features/Cancellation & Refund Policies/cancellation/components/exception-rule-guests-tags/exception-rule-guests-tags.component.ts","./src/app/features/Cancellation & Refund Policies/cancellation/components/exception-rule-guests-tags/exception-rule-guests-tags.component.html","./src/app/features/Cancellation & Refund Policies/cancellation/components/exception-rule-reservation/exception-rule-reservation.component.ts","./src/app/features/Cancellation & Refund Policies/cancellation/components/exception-rule-reservation/exception-rule-reservation.component.html","./src/app/features/Cancellation & Refund Policies/cancellation/components/show-policy/show-policy.component.ts","./src/app/features/Cancellation & Refund Policies/cancellation/components/show-policy/show-policy.component.html","./src/app/features/Events-and-guests/events/event-form/event-form.component.ts","./src/app/features/Events-and-guests/events/event-form/event-form.component.html","./src/app/features/Events-and-guests/events/events.component.ts","./src/app/features/Events-and-guests/events/events.component.html","./src/app/features/Events-and-guests/guest-announcements/guest-announcements.component.ts","./src/app/features/Events-and-guests/guest-announcements/guest-announcements.component.html","./src/app/features/Events-and-guests/guests-reviews/guest-review-details/guest-review-details.component.ts","./src/app/features/Events-and-guests/guests-reviews/guest-review-details/guest-review-details.component.html","./src/app/features/Events-and-guests/guests-reviews/guests-reviews.component.ts","./src/app/features/Events-and-guests/guests-reviews/guests-reviews.component.html","./src/app/features/Events-and-guests/guests-reviews/report-review-form/report-review-form.component.ts","./src/app/features/Events-and-guests/guests-reviews/report-review-form/report-review-form.component.html","./src/app/features/Events-and-guests/models/List.Event.ts","./src/app/features/Events-and-guests/models/List.GuestAnnouncement.ts","./src/app/features/Events-and-guests/models/List.GuestReviews.ts","./src/app/features/Events-and-guests/services/Announcements.service.ts","./src/app/features/Events-and-guests/services/Events.service.ts","./src/app/features/Events-and-guests/services/Reviews.service.ts","./src/app/features/Floors-and-Kitchens/floors-management/floor-form/floor-form.component.ts","./src/app/features/Floors-and-Kitchens/floors-management/floor-form/floor-form.component.html","./src/app/features/Floors-and-Kitchens/floors-management/floors-management.component.ts","./src/app/features/Floors-and-Kitchens/floors-management/floors-management.component.html","./src/app/features/Floors-and-Kitchens/kitchen-management/kitchen-form/kitchen-form.component.ts","./src/app/features/Floors-and-Kitchens/kitchen-management/kitchen-form/kitchen-form.component.html","./src/app/features/Floors-and-Kitchens/kitchen-management/kitchen-management.component.ts","./src/app/features/Floors-and-Kitchens/kitchen-management/kitchen-management.component.html","./src/app/features/Floors-and-Kitchens/list/list.component.ts","./src/app/features/Floors-and-Kitchens/list/list.component.html","./src/app/features/Floors-and-Kitchens/servers-assignment/assign-server/assign-server.component.ts","./src/app/features/Floors-and-Kitchens/servers-assignment/assign-server/assign-server.component.html","./src/app/features/Floors-and-Kitchens/servers-assignment/models/AssignmentModel.ts","./src/app/features/Floors-and-Kitchens/servers-assignment/servers-assignment.component.ts","./src/app/features/Floors-and-Kitchens/servers-assignment/servers-assignment.component.html","./src/app/features/Floors-and-Kitchens/servers-assignment/services/servers-assignment.service.ts","./src/app/features/Stock Management/ingredients-stock/ingredients-stock.component.ts","./src/app/features/Stock Management/ingredients-stock/ingredients-stock.component.html","./src/app/features/Stock Management/stock-transaction/stock-transaction.component.ts","./src/app/features/Stock Management/stock-transaction/stock-transaction.component.html","./src/app/features/auth/attendance/attendence.component.ts","./src/app/features/auth/attendance/attendence.component.html","./src/app/features/auth/profile-management/profile-management.component.ts","./src/app/features/auth/profile-management/profile-management.component.html","./src/app/features/configrations/cuisines/services/Cuisines.service.ts","./src/app/features/configrations/ingredients-category/services/Category.service.ts","./src/app/features/floor-plan/helpers/DesignHelper.ts","./src/app/features/orders/models/Orders.ts","./src/app/features/pages/error/error.component.ts","./src/app/features/pages/error/error.component.html","./src/app/features/pages/not-authorized/not-authorized.component.ts","./src/app/features/pages/not-authorized/not-authorized.component.html","./src/app/features/pages/public-page/public-page.component.ts","./src/app/features/pages/public-page/public-page.component.html","./src/app/features/place-order/components/cart-guest-form/cart-guest-form.component.ts","./src/app/features/place-order/components/cart-guest-form/cart-guest-form.component.html","./src/app/features/place-order/components/cart-takeaway/choose-table/choose-table.component.ts","./src/app/features/place-order/components/cart-takeaway/choose-table/choose-table.component.html","./src/app/features/place-order/components/cart-takeaway/choose-table/takeaway-table-problem/takeaway-table-problem.component.ts","./src/app/features/place-order/components/cart-takeaway/choose-table/takeaway-table-problem/takeaway-table-problem.component.html","./src/app/features/place-order/services/TakeawayOrder.service.ts","./src/app/features/place-order/services/placeOrder.service.ts","./src/app/features/reports/models/wastedMenuItems.ts","./src/app/features/reports/services/wastedMenuItems.service.ts","./src/app/features/reservations/components/all-floors-viewer/all-floors-viewer.component.ts","./src/app/features/reservations/components/all-floors-viewer/all-floors-viewer.component.html","./src/app/features/reservations/components/details/reassign-server/reassign-server.component.ts","./src/app/features/reservations/components/details/reassign-server/reassign-server.component.html","./src/app/features/reservations/components/details/reservation.details.component.ts","./src/app/features/reservations/components/details/reservation.details.component.html","./src/app/features/reservations/components/floor-viewer/floor-viewer.component.ts","./src/app/features/reservations/components/floor-viewer/floor-viewer.component.html","./src/app/features/reservations/components/form/table-problems-dialog/table-problems-dialog.component.ts","./src/app/features/reservations/components/form/table-problems-dialog/table-problems-dialog.component.html","./src/app/features/reservations/components/listing/floor-view/change-table/change-table-problem/change-table-problem.component.ts","./src/app/features/reservations/components/listing/floor-view/change-table/change-table-problem/change-table-problem.component.html","./src/app/features/reservations/components/listing/floor-view/change-table/change-table.component.ts","./src/app/features/reservations/components/listing/floor-view/change-table/change-table.component.html","./src/app/features/reservations/components/servers/servers.component.ts","./src/app/features/reservations/components/servers/servers.component.html","./src/app/features/reservations/models/Reservation.ts","./src/app/features/reservations/services/reservations.service.ts","./src/app/features/restaurants/components/ingredients/ingredient-form/ingredient-form.component.ts","./src/app/features/restaurants/components/ingredients/ingredient-form/ingredient-form.component.html","./src/app/features/restaurants/components/ingredients/ingredients.component.ts","./src/app/features/restaurants/components/ingredients/ingredients.component.html","./src/app/features/restaurants/components/menu-categories/menu-categories-form/menu-categories-form.component.ts","./src/app/features/restaurants/components/menu-categories/menu-categories-form/menu-categories-form.component.html","./src/app/features/restaurants/components/menu-categories/menu-categories.component.ts","./src/app/features/restaurants/components/menu-categories/menu-categories.component.html","./src/app/features/restaurants/components/profile/amenities/amenities-form/amenities-form.component.ts","./src/app/features/restaurants/components/profile/amenities/amenities-form/amenities-form.component.html","./src/app/features/restaurants/components/profile/amenities/amenities.component.ts","./src/app/features/restaurants/components/profile/amenities/amenities.component.html","./src/app/features/restaurants/components/profile/basic-info/basic-info.component.ts","./src/app/features/restaurants/components/profile/basic-info/basic-info.component.html","./src/app/features/restaurants/components/profile/cancellation/cancellation.component.ts","./src/app/features/restaurants/components/profile/cancellation/cancellation.component.html","./src/app/features/restaurants/components/profile/cancellation/components/cancellation-form/cancellation-form.component.ts","./src/app/features/restaurants/components/profile/cancellation/components/cancellation-form/cancellation-form.component.html","./src/app/features/restaurants/components/profile/cancellation/components/exception-rule-guests-tags/exception-rule-guests-tags.component.ts","./src/app/features/restaurants/components/profile/cancellation/components/exception-rule-guests-tags/exception-rule-guests-tags.component.html","./src/app/features/restaurants/components/profile/cancellation/components/exception-rule-reservation/exception-rule-reservation.component.ts","./src/app/features/restaurants/components/profile/cancellation/components/exception-rule-reservation/exception-rule-reservation.component.html","./src/app/features/restaurants/components/profile/cancellation/components/show-policy/show-policy.component.ts","./src/app/features/restaurants/components/profile/cancellation/components/show-policy/show-policy.component.html","./src/app/features/restaurants/components/profile/gallery/gallery-form/gallery-form.component.ts","./src/app/features/restaurants/components/profile/gallery/gallery-form/gallery-form.component.html","./src/app/features/restaurants/components/profile/gallery/gallery.component.ts","./src/app/features/restaurants/components/profile/gallery/gallery.component.html","./src/app/features/restaurants/components/profile/head-details/head-details.component.ts","./src/app/features/restaurants/components/profile/head-details/head-details.component.html","./src/app/features/restaurants/components/profile/navigation/navigation.component.ts","./src/app/features/restaurants/components/profile/navigation/navigation.component.html","./src/app/features/restaurants/components/profile/numbers/numbers.component.ts","./src/app/features/restaurants/components/profile/numbers/numbers.component.html","./src/app/features/restaurants/components/profile/payment-methods/payment-methods.component.ts","./src/app/features/restaurants/components/profile/payment-methods/payment-methods.component.html","./src/app/features/restaurants/components/profile/profile.component.ts","./src/app/features/restaurants/components/profile/profile.component.html","./src/app/features/restaurants/components/profile/publish-restaurant/publish-restaurant.component.ts","./src/app/features/restaurants/components/profile/publish-restaurant/publish-restaurant.component.html","./src/app/features/restaurants/components/profile/reservation/components/reservation-channels/reservation-channels.component.ts","./src/app/features/restaurants/components/profile/reservation/components/reservation-channels/reservation-channels.component.html","./src/app/features/restaurants/components/profile/reservation/components/restaurant-config/restaurant-config.component.ts","./src/app/features/restaurants/components/profile/reservation/components/restaurant-config/restaurant-config.component.html","./src/app/features/restaurants/components/profile/reservation/reservation.component.ts","./src/app/features/restaurants/components/profile/reservation/reservation.component.html","./src/app/features/restaurants/components/restaurant-form-dialog/restaurant-form-dialog.component.ts","./src/app/features/restaurants/components/restaurant-form-dialog/restaurant-form-dialog.component.html","./src/app/features/restaurants/components/restaurant-sizes/custom-sizes-form/custom-sizes-form.component.ts","./src/app/features/restaurants/components/restaurant-sizes/custom-sizes-form/custom-sizes-form.component.html","./src/app/features/restaurants/components/restaurant-sizes/restaurant-sizes.component.ts","./src/app/features/restaurants/components/restaurant-sizes/restaurant-sizes.component.html","./src/app/features/restaurants/components/restaurant-sizes/sizes-form/sizes-form.component.ts","./src/app/features/restaurants/components/restaurant-sizes/sizes-form/sizes-form.component.html","./src/app/features/restaurants/models/Floors.ts","./src/app/features/restaurants/models/List.Cancellation.ts","./src/app/features/restaurants/models/List.Ingredient.ts","./src/app/features/restaurants/models/List.Kitchen.ts","./src/app/features/restaurants/models/List.MenuCategories.ts","./src/app/features/restaurants/models/List.Restaurant.ts","./src/app/features/restaurants/services/Cancellation.service.ts","./src/app/features/restaurants/services/Floors.service.ts","./src/app/features/restaurants/services/Gallary.service.ts","./src/app/features/restaurants/services/Ingredients.service.ts","./src/app/features/restaurants/services/Kitchen.service.ts","./src/app/features/restaurants/services/MenuCategories.service.ts","./src/app/features/restaurants/services/Restaurant.service.ts","./src/app/features/settings/components/payment/services/Payment.service.ts","./src/app/features/warehouses/models/Ingredient.ts","./src/app/helpers/CanDeactivate/dirty-check.guard.ts","./src/app/helpers/CanDeactivate/dirty-component.ts","./src/app/helpers/CustomPaginatorConfiguration.ts","./src/app/helpers/DateModelTime.pipe.ts","./src/app/helpers/MyMissingTranslationHandler.ts","./src/app/helpers/SafePipe.ts","./src/app/helpers/auth.guard.ts","./src/app/helpers/auto-resize.directive.ts","./src/app/helpers/custom.validator.ts","./src/app/helpers/dnd.directive.ts","./src/app/helpers/drop-down.directive.ts","./src/app/helpers/error.interceptor.ts","./src/app/helpers/format-datepicker.ts","./src/app/helpers/in-view.directive.ts","./src/app/helpers/jwt.interceptor.ts","./src/app/helpers/material-modules.ts","./src/app/helpers/ng-select.directive.ts","./src/app/helpers/onlynumber.directive.ts","./src/app/helpers/patterns.ts","./src/app/helpers/print.directive.ts","./src/app/helpers/sanitize-html-pipe.pipe.ts","./src/app/helpers/short-name.pipe.ts","./src/app/helpers/time-ago.pipe.ts","./src/app/layouts/admin-layout/actions-bar/ResActions.service.ts","./src/app/layouts/admin-layout/actions-bar/actions-bar.component.ts","./src/app/layouts/admin-layout/actions-bar/actions-bar.component.html","./src/app/layouts/admin-layout/actions-bar/components/till-amount-confirm/till-amount-confirm.component.ts","./src/app/layouts/admin-layout/actions-bar/components/till-amount-confirm/till-amount-confirm.component.html","./src/app/layouts/admin-layout/admin-layout.component.ts","./src/app/layouts/admin-layout/admin-layout.component.html","./src/app/layouts/admin-layout/header/header.component.ts","./src/app/layouts/admin-layout/header/header.component.html","./src/app/layouts/admin-layout/sidebar/sidebar.component.ts","./src/app/layouts/admin-layout/sidebar/sidebar.component.html","./src/app/layouts/anonymous-layout/anonymous-layout.component.ts","./src/app/layouts/anonymous-layout/anonymous-layout.component.html","./src/app/layouts/basic-layout/basic-layout.component.ts","./src/app/layouts/basic-layout/basic-layout.component.html","./src/app/layouts/empty-layout/empty-layout.component.ts","./src/app/layouts/empty-layout/empty-layout.component.html","./src/app/models/DatePickerModel.ts","./src/app/models/Lookup.ts","./src/app/models/Notification.ts","./src/app/models/auth/login.ts","./src/app/models/auth/user.ts","./src/app/services/StorageService.ts","./src/app/services/TranslationLoadedService.ts","./src/app/services/authentication.service.ts","./src/app/services/lookups.service.ts","./src/app/services/navigation.service.ts","./src/app/services/notifications.service.ts","./src/app/services/signalR/SignalModel.ts","./src/app/services/signalR/SignalR.service.ts","./src/app/shared/check-out/CheckOut.models.ts","./src/app/shared/check-out/CheckOut.service.ts","./src/app/shared/check-out/CheckOutActions.ts","./src/app/shared/check-out/check-out.component.ts","./src/app/shared/check-out/check-out.component.html","./src/app/shared/check-out/paid-list/paid-list.component.ts","./src/app/shared/check-out/paid-list/paid-list.component.html","./src/app/shared/check-out/payment-confirmation/payment-confirmation.component.ts","./src/app/shared/check-out/payment-confirmation/payment-confirmation.component.html","./src/app/shared/check-out/payment-details/payment-details.component.ts","./src/app/shared/check-out/payment-details/payment-details.component.html","./src/app/shared/check-out/prices-details/prices-details.component.ts","./src/app/shared/check-out/prices-details/prices-details.component.html","./src/app/shared/datepicker/datepicker.component.ts","./src/app/shared/datepicker/datepicker.component.html","./src/app/shared/datepicker/islamic-picker/islamic-picker.component.ts","./src/app/shared/datepicker/islamic-picker/islamic-picker.component.html","./src/app/shared/empty-state/empty-state.component.ts","./src/app/shared/empty-state/empty-state.component.html","./src/app/shared/file-manager/file-manager.component.ts","./src/app/shared/file-manager/file-manager.component.html","./src/app/shared/image-control/cropper-dialog/cropper-dialog.component.ts","./src/app/shared/image-control/cropper-dialog/cropper-dialog.component.html","./src/app/shared/image-control/image-control.component.ts","./src/app/shared/image-control/image-control.component.html","./src/app/shared/num-keypad/num-keypad.component.ts","./src/app/shared/num-keypad/num-keypad.component.html","./src/app/shared/paging/paging.component.ts","./src/app/shared/paging/paging.component.html","./src/app/shared/phone-number/phone-number.component.ts","./src/app/shared/phone-number/phone-number.component.html","./src/app/shared/photo-manager/photo-manager.component.ts","./src/app/shared/photo-manager/photo-manager.component.html","./src/app/shared/receipt/receipt.component.ts","./src/app/shared/receipt/receipt.component.html","./src/app/shared/restaurants-dropdown/restaurants-dropdown.component.ts","./src/app/shared/restaurants-dropdown/restaurants-dropdown.component.html","./src/app/shared/shared.module.ts","./src/app/shared/side-sheet/side-sheet.component.ts","./src/app/shared/side-sheet/side-sheet.component.html","./src/app/shared/tags-selector-search/tags-selector-search.component.ts","./src/app/shared/tags-selector-search/tags-selector-search.component.html","./src/app/shared/tree-selection/tree-selection.component.ts","./src/app/shared/tree-selection/tree-selection.component.html","./src/app/shared/video-manager/video-manager.component.ts","./src/app/shared/video-manager/video-manager.component.html","./src/app/shared/wasted-menu-item-form/wasted-menu-item-form.component.ts","./src/app/shared/wasted-menu-item-form/wasted-menu-item-form.component.html","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { SafePipe } from 'src/app/helpers/SafePipe';\r\nimport Swal from 'sweetalert2';\r\nimport { PaymentConfirmationComponent } from 'src/app/shared/check-out/payment-confirmation/payment-confirmation.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NgIf } from '@angular/common';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { ResAnonymousService } from '../service/ResAnonymous.service';\r\n\r\nclass validateRes {\r\n errorMsg!: string;\r\n status!: ValidateStatus;\r\n}\r\nenum ValidateStatus {\r\n Valid = 'Valid', NotValid = 'NotValid', Success = 'Success'\r\n}\r\n@Component({\r\n selector: 'app-client-pay',\r\n standalone: true,\r\n imports: [SafePipe, TranslateModule, NgIf, MatProgressSpinnerModule],\r\n templateUrl: './client-pay.component.html'\r\n})\r\nexport class ClientPayComponent implements OnInit {\r\n referencePaymentUrl = `./assets/paymentWidget.html${location.search}`;\r\n checkoutId!: string;\r\n type!: string;\r\n loading = false;\r\n validateRes!: validateRes;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private service: ResAnonymousService,\r\n private translate: TranslateService,\r\n private dialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.queryParamMap.subscribe(params => {\r\n if (params.get('id')) {\r\n this.checkoutId = params.get('id') || '';\r\n }\r\n if (params.get('checkoutId')) {\r\n this.checkoutId = params.get('checkoutId') || '';\r\n }\r\n if (params.get('Type')) {\r\n this.type = params.get('Type') || '';\r\n }\r\n if (this.checkoutId) {\r\n this.validateCheckOutId();\r\n }\r\n });\r\n }\r\n\r\n\r\n validateCheckOutId() {\r\n this.loading = true;\r\n this.service.ValidateAnonymousCheckOutId(this.checkoutId, this.type)\r\n .subscribe(resp => {\r\n this.loading = false;\r\n this.validateRes = resp as validateRes;\r\n if (this.validateRes?.status == ValidateStatus.NotValid) {\r\n this.doFailAlert(this.validateRes.errorMsg);\r\n }\r\n if (this.validateRes?.status == ValidateStatus.Success) {\r\n this.paymentConfirmation();\r\n }\r\n }, err => {\r\n this.loading = false;\r\n this.doFailAlert();\r\n });\r\n }\r\n\r\n doFailAlert(text: string = '') {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n }).then(() => {\r\n window.location.href = window.location.origin + '/404'\r\n });\r\n }\r\n paymentConfirmation() {\r\n const dialogRef = this.dialog.open(PaymentConfirmationComponent, {\r\n width: '50rem',\r\n data: { type: 'doneClient' }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n }\r\n}\r\n","
\r\n

{{ 'orders.Pay your order' | translate }}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../show-menu/models/MenuModel';\r\nimport { CheckOutResult } from 'src/app/shared/check-out/CheckOut.models';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResAnonymousService {\r\n checkOutDone = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n GetRestaurantShortDetails(id: any) {\r\n return this.http.get(`${environment.apiUrl}/Restaurant/GetRestaurantShortDetails?id=${id}`);\r\n }\r\n getMenuSections(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResAnonymous/ResAnonymousGetMenuSections`, data);\r\n }\r\n getMenuItems(filter: ListFilter) {\r\n return this.http.post(`${environment.apiUrl}/ResAnonymous/ResAnonymousGetMenuItems`, filter);\r\n }\r\n getMenuItemById(MenuItemId: any) {\r\n return this.http.get(`${environment.apiUrl}/ResAnonymous/ResAnonymousGetMenuItemById?MenuItemId=${MenuItemId}`);\r\n }\r\n ResAnonymousTakeawayGetCheckoutId(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResAnonymous/ResAnonymousTakeawayGetCheckoutId`, data);\r\n }\r\n ResAnonymousTakeawayGetCheckoutStatus(CheckoutId: any) {\r\n return this.http.get(`${environment.apiUrl}/ResAnonymous/ResAnonymousTakeawayGetCheckoutStatus?CheckoutId=${CheckoutId}`);\r\n }\r\n ResAnonymousCashonDeliverOrder(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResAnonymous/ResAnonymousCashonDeliverOrder`, data);\r\n }\r\n\r\n // Client payment\r\n ValidateAnonymousCheckOutId(checkoutId: string, type: string) {\r\n return this.http.get(`${environment.apiUrl}/ResAnonymous/ValidateAnonymousCheckOutId?checkOutId=${checkoutId}&type=${type}`);\r\n }\r\n\r\n ResAnonymousTakeawayOrderStatus(orderId: string) {\r\n return this.http.get(`${environment.apiUrl}/ResAnonymous/ResAnonymousTakeawayOrderStatus?orderId=${orderId}`);\r\n }\r\n\r\n ResAnonymousCheckVoucherDiscount(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResAnonymous/ResAnonymousCheckVoucherDiscount`, data);\r\n }\r\n\r\n ResTakeAwayOrderPermissions(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservationOrderTakeaway/ResTakeAwayOrderPermissions?restaurantId=${restaurantId}`);\r\n }\r\n\r\n ResAnonymousTakeawayPage(id: any) {\r\n return this.http.get(`${environment.apiUrl}/ResAnonymous/ResAnonymousTakeawayPage?restaurantId=${id}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DatePipe, NgForOf, NgIf } from '@angular/common';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ResAnonymousService } from '../service/ResAnonymous.service';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\n\r\n@Component({\r\n selector: 'app-track-order',\r\n standalone: true,\r\n // imports: [CommonModule],\r\n imports: [TranslateModule, NgIf, MatProgressSpinnerModule, MatStepperModule, DatePipe, NgForOf, MatExpansionModule],\r\n templateUrl: './track-order.component.html'\r\n})\r\nexport class TrackOrderComponent implements OnInit {\r\n loading = true;\r\n orderId!: string;\r\n details!: any;\r\n lang = localStorage.getItem('language') || 'ar';\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private service: ResAnonymousService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.queryParamMap.subscribe(params => {\r\n if (params.get('id')) {\r\n this.orderId = params.get('id') || '';\r\n }\r\n if (this.orderId) {\r\n this.ResAnonymousTakeawayOrderStatus();\r\n }\r\n });\r\n }\r\n\r\n ResAnonymousTakeawayOrderStatus() {\r\n this.loading = true;\r\n this.service.ResAnonymousTakeawayOrderStatus(this.orderId)\r\n .subscribe(resp => {\r\n this.loading = false;\r\n this.details = resp;\r\n }, err => {\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","
\r\n

{{ 'orders.Track your order' | translate }}

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \"\"\r\n\r\n

{{lang == 'ar' ? details.restaurantNameAR : details.restaurantNameEN}}

\r\n
\r\n\r\n
\r\n
\r\n
{{'orders.Order Number' | translate}}
\r\n
#{{details.orderDetails.orderNumber}}
\r\n
{{details.orderDetails.orderDate | date:'EEEE, d MMMM, y'}}
\r\n
\r\n
\r\n
\r\n \r\n
{{details.customer.fName + ' ' + details.customer.lName}}
\r\n
{{details.customer.phoneCode + ' ' + details.customer.phoneNumber}}
\r\n
\r\n
\r\n {{'receiptBuilder.Amount' | translate}}:\r\n {{details.orderDetails.total}} {{details.orderDetails.currency.currencyCode}}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{'orders.Please go to the cashier to pay the order so that your order can be processed.' | translate}}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n {{'orders.Estimated time to be finished is' | translate}}:\r\n {{details.orderDetails.preparationTime}} {{'orders.mins' | translate}}\r\n
\r\n\r\n
\r\n\r\n
    \r\n
  • \r\n
    \r\n {{item.stepName}}\r\n {{item.opreationDate | date:'h:mm a'}}\r\n
    \r\n
  • \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n {{'orders.Order Details' | translate}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{item.quantity}}X {{item.itemName}}\r\n
\r\n
{{item.totalItemprice + ' ' + item.curruncyName}}
\r\n
\r\n
\r\n - {{item.sizeName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n \"\"\r\n {{'reservations.Special Request' | translate }}\r\n

\r\n

{{details.orderDetails.orderNotes}}

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

{{details.error?.errorDetail}}

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ProfileManagementComponent } from './features/auth/profile-management/profile-management.component';\r\nimport { DaysOffConfigComponent } from './features/Availability/days-off-config/days-off-config.component';\r\nimport { HoursConfigComponent } from './features/Availability/hours-config/hours-config.component';\r\nimport { CancellationComponent } from './features/Cancellation & Refund Policies/cancellation/cancellation.component';\r\nimport { EventsComponent } from './features/Events-and-guests/events/events.component';\r\nimport { GuestAnnouncementsComponent } from './features/Events-and-guests/guest-announcements/guest-announcements.component';\r\nimport { GuestsReviewsComponent } from './features/Events-and-guests/guests-reviews/guests-reviews.component';\r\nimport { FloorsManagementComponent } from './features/Floors-and-Kitchens/floors-management/floors-management.component';\r\nimport { KitchenManagementComponent } from './features/Floors-and-Kitchens/kitchen-management/kitchen-management.component';\r\nimport { ServersAssignmentComponent } from './features/Floors-and-Kitchens/servers-assignment/servers-assignment.component';\r\nimport { ErrorComponent } from './features/pages/error/error.component';\r\nimport { NotAuthorizedComponent } from './features/pages/not-authorized/not-authorized.component';\r\nimport { IngredientsComponent } from './features/restaurants/components/ingredients/ingredients.component';\r\nimport { MenuCategoriesComponent } from './features/restaurants/components/menu-categories/menu-categories.component';\r\nimport { ProfileComponent } from './features/restaurants/components/profile/profile.component';\r\nimport { RestaurantSizesComponent } from './features/restaurants/components/restaurant-sizes/restaurant-sizes.component';\r\nimport { AuthGuard } from './helpers/auth.guard';\r\nimport { AdminLayoutComponent } from './layouts/admin-layout/admin-layout.component';\r\nimport { BasicLayoutComponent } from './layouts/basic-layout/basic-layout.component';\r\nimport { EmptyLayoutComponent } from './layouts/empty-layout/empty-layout.component';\r\nimport { DirtyCheckGuard } from './helpers/CanDeactivate/dirty-check.guard';\r\nimport { PublicPageComponent } from './features/pages/public-page/public-page.component';\r\nimport { ClientPayComponent } from './anonymous/client-pay/client-pay.component';\r\nimport { TrackOrderComponent } from './anonymous/track-order/track-order.component';\r\nimport { AnonymousLayoutComponent } from './layouts/anonymous-layout/anonymous-layout.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: BasicLayoutComponent,\r\n children: [\r\n { path: '', loadChildren: () => import('./features/auth/auth.module').then(m => m.AuthModule) },\r\n { path: 'pay', component: ClientPayComponent },\r\n ]\r\n },\r\n {\r\n path: '',\r\n component: AnonymousLayoutComponent,\r\n children: [\r\n { path: 'trackorder', component: TrackOrderComponent },\r\n ]\r\n },\r\n {\r\n path: 'admin/floorPlan',\r\n component: EmptyLayoutComponent,\r\n children: [\r\n { path: '', loadChildren: () => import('./features/floor-plan/floor-plan.module').then(m => m.FloorPlanModule) },\r\n ]\r\n },\r\n {\r\n path: 'admin',\r\n component: AdminLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n { path: '', redirectTo: (localStorage.getItem('baseRoute') || ''), pathMatch: 'full' },\r\n { path: 'profile', component: ProfileManagementComponent },\r\n { path: 'dashboard', loadChildren: () => import('./features/dashboard/dashboard.module').then(m => m.DashboardModule) },\r\n { path: 'guestList', loadChildren: () => import('./features/guests/guests.module').then(m => m.GuestsModule) },\r\n { path: 'staff', loadChildren: () => import('./features/staff/staff.module').then(m => m.StaffModule) },\r\n { path: 'restaurantProfile', component: ProfileComponent },\r\n { path: 'restaurants', loadChildren: () => import('./features/restaurants/restaurants.module').then(m => m.RestaurantsModule) },\r\n { path: 'settings', loadChildren: () => import('./features/settings/settings.module').then(m => m.SettingsModule) },\r\n { path: 'reports/:view', loadChildren: () => import('./features/reports/reports.module').then(m => m.ReportsModule) },\r\n { path: 'reportWastedFood', loadChildren: () => import('./features/report-wasted-food/report-wasted-food.module').then(m => m.ReportWastedFoodModule) },\r\n {\r\n path: 'configrations',\r\n children: [\r\n { path: 'cuisines', loadChildren: () => import('./features/configrations/cuisines/cuisines.module').then(m => m.CuisinesModule) },\r\n { path: 'seatings', loadChildren: () => import('./features/configrations/seatings/seatings.module').then(m => m.SeatingsModule) },\r\n { path: 'amenities', loadChildren: () => import('./features/configrations/amenities/amenities.module').then(m => m.AmenitiesModule) },\r\n { path: 'MeasurementUnits', loadChildren: () => import('./features/configrations/measurement-units/measurement-units.module').then(m => m.MeasurementUnitsModule) },\r\n { path: 'sizes', loadChildren: () => import('./features/configrations/sizes/sizes.module').then(m => m.SizesModule) },\r\n { path: 'payment', loadChildren: () => import('./features/configrations/payment/payment.module').then(m => m.PaymentModule) },\r\n ]\r\n },\r\n {\r\n path: 'availability',\r\n children: [\r\n { path: 'daysOffConfig', component: DaysOffConfigComponent },\r\n { path: 'hoursConfig', component: HoursConfigComponent, canDeactivate: [DirtyCheckGuard] },\r\n ]\r\n },\r\n {\r\n path: 'stockConfig',\r\n children: [\r\n { path: 'MeasurementUnits', loadChildren: () => import('./features/configrations/measurement-units/measurement-units.module').then(m => m.MeasurementUnitsModule) },\r\n { path: 'IngredientsCategory', loadChildren: () => import('./features/configrations/ingredients-category/ingredients-category.module').then(m => m.IngredientsCategoryModule) },\r\n { path: 'Ingredients', component: IngredientsComponent, canDeactivate: [DirtyCheckGuard] },\r\n { path: 'stockTransaction', loadChildren: () => import('./features/Stock Management/stock-transaction/stock-transaction.module').then(m => m.StockTransactionModule) },\r\n { path: 'suppliers', loadChildren: () => import('./features/Stock Management/suppliers/suppliers.module').then(m => m.SuppliersModule) },\r\n { path: 'ingredientsStock', loadChildren: () => import('./features/Stock Management/ingredients-stock/ingredients-stock.module').then(m => m.IngredientsStockModule) },\r\n { path: 'recipeStock', loadChildren: () => import('./features/Stock Management/recipe-stock/recipe-stock.module').then(m => m.RecipeStockModule) },\r\n { path: 'recipes', loadChildren: () => import('./features/recipes/recipes.module').then(m => m.RecipesModule) },\r\n { path: 'stockDeductions', loadChildren: () => import('./features/Stock Management/stock-deductions/stock-deductions.module').then(m => m.StockDeductionsModule) },\r\n { path: 'recipeProduction', loadChildren: () => import('./features/Stock Management/productions/productions.module').then(m => m.ProductionsModule) },\r\n ]\r\n },\r\n {\r\n path: 'menu-management',\r\n children: [\r\n { path: 'menus', loadChildren: () => import('./features/menu-management/menus/menus.module').then(m => m.MenusModule) },\r\n { path: 'modifiers', loadChildren: () => import('./features/menu-management/modifiers/modifiers.module').then(m => m.ModifiersModule) },\r\n { path: 'menu-items', loadChildren: () => import('./features/menu-management/menu-items/menu-items.module').then(m => m.MenuItemsModule) },\r\n { path: 'sizes', component: RestaurantSizesComponent, canDeactivate: [DirtyCheckGuard] },\r\n { path: 'menu-categories', component: MenuCategoriesComponent },\r\n ]\r\n },\r\n {\r\n path: 'promotions',\r\n children: [\r\n { path: 'promoCode', loadChildren: () => import('./features/Promotions/discounts/discounts.module').then(m => m.DiscountsModule) },\r\n { path: 'happyHours', loadChildren: () => import('./features/Promotions/happy-hours/happy-hours.module').then(m => m.HappyHoursModule) },\r\n { path: 'autoDiscount', loadChildren: () => import('./features/Promotions/auto-discounts-config/auto-discounts-config.module').then(m => m.AutoDiscountsConfigModule) },\r\n ]\r\n },\r\n { path: 'inventory', loadChildren: () => import('./features/inventory/inventory.module').then(m => m.InventoryModule) },\r\n { path: 'floorskitchens/floorPlan', component: FloorsManagementComponent },\r\n { path: 'floorskitchens/kitchens', component: KitchenManagementComponent },\r\n { path: 'floorskitchens/serversAssignment', component: ServersAssignmentComponent },\r\n {\r\n path: 'eventsAndguests',\r\n children: [\r\n { path: 'events', component: EventsComponent },\r\n { path: 'guestAnnouncements', component: GuestAnnouncementsComponent },\r\n ]\r\n },\r\n { path: 'guestsReviews', component: GuestsReviewsComponent },\r\n { path: 'dashboard', loadChildren: () => import('./features/dashboard/dashboard.module').then(m => m.DashboardModule) },\r\n { path: 'cancellation', component: CancellationComponent },\r\n { path: 'reservations', loadChildren: () => import('./features/reservations/reservations.module').then(m => m.ReservationsModule) },\r\n { path: 'reservations/:view/place-order', loadChildren: () => import('./features/place-order/place-order.module').then(m => m.PlaceOrderModule) },\r\n { path: 'orders', loadChildren: () => import('./features/orders/orders.module').then(m => m.OrdersModule) },\r\n { path: 'orderList', loadChildren: () => import('./features/orders-list/orders-list.module').then(m => m.OrdersListModule) },\r\n { path: 'reports-track', loadChildren: () => import('./features/reports-track/reports-track.module').then(m => m.ReportsTrackModule) },\r\n { path: 'reportedReservations', loadChildren: () => import('./features/reported-reservations/reported-reservations.module').then(m => m.ReportedReservationsModule) },\r\n { path: 'notAuthorized', component: NotAuthorizedComponent },\r\n { path: 'orderList/takeaway-pickup/placeorder', loadChildren: () => import('./features/place-order/place-order.module').then(m => m.PlaceOrderModule) },\r\n { path: 'app-reservations', loadChildren: () => import('./features/app-reservations/app-reservations.module').then(m => m.AppReservationsModule) },\r\n { path: 'app-reservations/placeorder', loadChildren: () => import('./features/place-order/place-order.module').then(m => m.PlaceOrderModule) },\r\n { path: 'warehouses', loadChildren: () => import('./features/warehouses/warehouses.module').then(m => m.WarehousesModule) },\r\n { path: 'reward-points', loadChildren: () => import('./features/reward-points/reward-points.module').then(m => m.RewardPointsModule) },\r\n { path: 'vouchers', loadChildren: () => import('./features/vouchers/vouchers.module').then(m => m.VouchersModule) },\r\n { path: 'houseAccountPayment', loadChildren: () => import('./features/house-account-payment/house-account-payment.module').then(m => m.HouseAccountPaymentModule) },\r\n { path: 'DrawerOperations', loadChildren: () => import('./features/drawer-operations/drawer-operations.module').then(m => m.DrawerOperationsModule) },\r\n { path: 'roles', loadChildren: () => import('./features/roles/roles.module').then(m => m.RolesModule) },\r\n { path: 'order-returns', loadChildren: () => import('./features/order-return/order-return.module').then(m => m.OrderReturnModule) },\r\n { path: '**', component: ErrorComponent },\r\n ]\r\n },\r\n { path: 'showMenu', loadChildren: () => import('./anonymous/show-menu/show-menu.module').then(m => m.ShowMenuModule) },\r\n { path: 'page/:pageName', component: PublicPageComponent },\r\n { path: '**', component: ErrorComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\nimport { StorageService } from './services/StorageService';\r\n// import { TranslateService } from '@ngx-translate/core';\r\n// import Swal from 'sweetalert2';\r\n// import { UpToDateBuildService } from './helpers/BuildDetails/up-to-date.service';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport packageJson from '../../package.json';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'App-Management';\r\n public version: string = packageJson.version;\r\n\r\n constructor(\r\n public storageService: StorageService,\r\n // private translate: TranslateService,\r\n private appDir: Directionality\r\n // upToDateService: UpToDateBuildService\r\n ) {\r\n // let buildNumber = upToDateService.buildNumberAtStartup;\r\n // upToDateService.buildIsUpToDate.subscribe(buildIsUpToDate => {\r\n // if (!buildIsUpToDate) {\r\n // Swal.fire({\r\n // title: this.translate.instant('general.New app version found.'),\r\n // icon: 'info',\r\n // confirmButtonText: this.translate.instant('swalMsg.Reload'),\r\n // }).then(() => {\r\n // window.location.reload();\r\n // });\r\n // }\r\n // });\r\n\r\n this.storageService.changes.subscribe(data => {\r\n if (data?.key == 'language' || data?.key == 'authUser') {\r\n localStorage.removeItem('orders');\r\n localStorage.removeItem('takeawarOrder');\r\n window.location.reload();\r\n }\r\n });\r\n\r\n var lang = localStorage.getItem('language') || 'en';\r\n localStorage.setItem('language', lang);\r\n var style = './assets/css/en-US/style.css';\r\n var dir = 'ltr';\r\n if (lang == 'ar') {\r\n style = './assets/css/ar-SA/style.css';\r\n dir = 'rtl';\r\n }\r\n let buildNumber = this.version;\r\n style += buildNumber ? '?vr=' + buildNumber : '';\r\n document.getElementById('mainStyle')?.setAttribute('href', style);\r\n document.getElementById('html')?.setAttribute('lang', lang);\r\n document.getElementById('html')?.setAttribute('dir', dir);\r\n (this.appDir as any).value = dir;\r\n }\r\n}\r\n","\r\n","import { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { MissingTranslationHandler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MultiTranslateHttpLoader, MyMissingTranslationHandler } from './helpers/MyMissingTranslationHandler';\r\n\r\nimport { SharedModule } from './shared/shared.module';\r\n\r\nimport { JwtInterceptor } from './helpers/jwt.interceptor';\r\nimport { ErrorInterceptor } from './helpers/error.interceptor';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\n// import { OfflineInterceptor } from './helpers/offline.interceptor';\r\n\r\nimport { BuildDetailsHttpService } from './helpers/BuildDetails/build-details.http.service';\r\nimport { DaysOffConfigComponent } from './features/Availability/days-off-config/days-off-config.component';\r\nimport { DaysOffFormComponent } from './features/Availability/days-off-config/days-off-form/days-off-form.component';\r\nimport { HoursConfigComponent } from './features/Availability/hours-config/hours-config.component';\r\nimport { HoursFormComponent } from './features/Availability/hours-config/hours-form/hours-form.component';\r\nimport { CancellationComponent } from './features/Cancellation & Refund Policies/cancellation/cancellation.component';\r\nimport { CancellationFormComponent } from './features/Cancellation & Refund Policies/cancellation/components/cancellation-form/cancellation-form.component';\r\nimport { ExceptionRuleGuestsTagsComponent } from './features/Cancellation & Refund Policies/cancellation/components/exception-rule-guests-tags/exception-rule-guests-tags.component';\r\nimport { ExceptionRuleReservationComponent } from './features/Cancellation & Refund Policies/cancellation/components/exception-rule-reservation/exception-rule-reservation.component';\r\nimport { ShowPolicyComponent } from './features/Cancellation & Refund Policies/cancellation/components/show-policy/show-policy.component';\r\nimport { EventFormComponent } from './features/Events-and-guests/events/event-form/event-form.component';\r\nimport { EventsComponent } from './features/Events-and-guests/events/events.component';\r\nimport { GuestAnnouncementsComponent } from './features/Events-and-guests/guest-announcements/guest-announcements.component';\r\nimport { GuestReviewDetailsComponent } from './features/Events-and-guests/guests-reviews/guest-review-details/guest-review-details.component';\r\nimport { GuestsReviewsComponent } from './features/Events-and-guests/guests-reviews/guests-reviews.component';\r\nimport { ReportReviewFormComponent } from './features/Events-and-guests/guests-reviews/report-review-form/report-review-form.component';\r\nimport { FloorFormComponent } from './features/Floors-and-Kitchens/floors-management/floor-form/floor-form.component';\r\nimport { FloorsManagementComponent } from './features/Floors-and-Kitchens/floors-management/floors-management.component';\r\nimport { KitchenFormComponent } from './features/Floors-and-Kitchens/kitchen-management/kitchen-form/kitchen-form.component';\r\nimport { KitchenManagementComponent } from './features/Floors-and-Kitchens/kitchen-management/kitchen-management.component';\r\nimport { ListComponent } from './features/Floors-and-Kitchens/list/list.component';\r\nimport { AssignServerComponent } from './features/Floors-and-Kitchens/servers-assignment/assign-server/assign-server.component';\r\nimport { ServersAssignmentComponent } from './features/Floors-and-Kitchens/servers-assignment/servers-assignment.component';\r\nimport { IngredientsStockComponent } from './features/Stock Management/ingredients-stock/ingredients-stock.component';\r\nimport { StockTransactionComponent } from './features/Stock Management/stock-transaction/stock-transaction.component';\r\nimport { ProfileManagementComponent } from './features/auth/profile-management/profile-management.component';\r\nimport { ErrorComponent } from './features/pages/error/error.component';\r\nimport { NotAuthorizedComponent } from './features/pages/not-authorized/not-authorized.component';\r\nimport { AdminLayoutComponent } from './layouts/admin-layout/admin-layout.component';\r\nimport { HeaderComponent } from './layouts/admin-layout/header/header.component';\r\nimport { SidebarComponent } from './layouts/admin-layout/sidebar/sidebar.component';\r\nimport { BasicLayoutComponent } from './layouts/basic-layout/basic-layout.component';\r\nimport { EmptyLayoutComponent } from './layouts/empty-layout/empty-layout.component';\r\nimport { AnonymousLayoutComponent } from './layouts/anonymous-layout/anonymous-layout.component';\r\nimport { ActionsBarComponent } from './layouts/admin-layout/actions-bar/actions-bar.component';\r\nimport { TillAmountConfirmComponent } from './layouts/admin-layout/actions-bar/components/till-amount-confirm/till-amount-confirm.component';\r\nimport { TranslationLoadedService } from './services/TranslationLoadedService';\r\nexport function fetchBuildDetails(buildDetailsService: BuildDetailsHttpService) {\r\n return () => buildDetailsService.fetchBuildDetails();\r\n}\r\nexport function HttpLoaderFactory(httpClient: HttpClient, translationLoaded: TranslationLoadedService): TranslateLoader {\r\n return new MultiTranslateHttpLoader(httpClient, translationLoaded);\r\n // return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\r\n}\r\nexport function initializeTranslations(translationLoadedService: TranslationLoadedService): () => Promise {\r\n return async (): Promise => {\r\n return new Promise(resolve => {\r\n translationLoadedService.loaded$().subscribe(() => resolve());\r\n });\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n\r\n BasicLayoutComponent,\r\n AnonymousLayoutComponent,\r\n EmptyLayoutComponent,\r\n AdminLayoutComponent,\r\n HeaderComponent,\r\n SidebarComponent,\r\n ActionsBarComponent,\r\n ErrorComponent,\r\n KitchenManagementComponent,\r\n KitchenFormComponent,\r\n FloorsManagementComponent,\r\n FloorFormComponent,\r\n EventsComponent,\r\n GuestAnnouncementsComponent,\r\n EventFormComponent,\r\n GuestsReviewsComponent,\r\n HoursConfigComponent,\r\n DaysOffConfigComponent,\r\n DaysOffFormComponent,\r\n HoursFormComponent,\r\n ProfileManagementComponent,\r\n CancellationComponent,\r\n CancellationFormComponent,\r\n ShowPolicyComponent,\r\n ExceptionRuleReservationComponent,\r\n ExceptionRuleGuestsTagsComponent,\r\n GuestReviewDetailsComponent,\r\n StockTransactionComponent,\r\n IngredientsStockComponent,\r\n ListComponent,\r\n ServersAssignmentComponent,\r\n AssignServerComponent,\r\n NotAuthorizedComponent,\r\n ReportReviewFormComponent,\r\n TillAmountConfirmComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n SharedModule,\r\n NgSelectModule,\r\n TranslateModule.forRoot({\r\n defaultLanguage: localStorage.getItem('language') || 'en',\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (HttpLoaderFactory),\r\n deps: [HttpClient, TranslationLoadedService]\r\n },\r\n missingTranslationHandler: { provide: MissingTranslationHandler, useClass: MyMissingTranslationHandler },\r\n })\r\n ],\r\n providers: [\r\n { provide: APP_INITIALIZER, useFactory: initializeTranslations, deps: [TranslationLoadedService], multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n // { provide: HTTP_INTERCEPTORS, useClass: OfflineInterceptor, multi: true },\r\n // { provide: APP_INITIALIZER, useFactory: fetchBuildDetails, deps: [BuildDetailsHttpService], multi: true }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n public translate: TranslateService\r\n ) {\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n if (params['lang'] && (params['lang'] == 'ar' || 'en')) {\r\n if (localStorage.getItem('language') !== params['lang']) {\r\n localStorage.setItem('language', params['lang']);\r\n translate.use(params['lang']);\r\n location.reload();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\nimport { DaysOffFormComponent } from './days-off-form/days-off-form.component';\r\nimport { ListData, ListFilter } from './models/List.Days';\r\nimport { UnavailableDayService } from './services/dayOff.service';\r\n\r\n@Component({\r\n selector: 'app-days-off-config',\r\n templateUrl: './days-off-config.component.html'\r\n})\r\nexport class DaysOffConfigComponent implements OnInit {\r\n\r\n\r\n dataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n filterModel: ListFilter = new ListFilter();\r\n recordsData!: ListData | null;\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n pageSize = 10;\r\n constructor(private restaurantService: RestaurantService,\r\n public dialog: MatDialog,\r\n public translate: TranslateService,\r\n private service: UnavailableDayService) { }\r\n\r\n ngOnInit(): void {\r\n this.getAll(null)\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n\r\n getAll(event: any) {\r\n this.dataLoading = true;\r\n if (!event) {\r\n this.pageIndex = 0;\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n\r\n }\r\n this.filterModel.pageNumber = this.pageIndex;\r\n\r\n this.service.getAll(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n setTimeout(() => {\r\n window.scrollTo({\r\n top: (document.getElementsByClassName('table-responsive')[0] as HTMLElement)?.offsetTop - 200,\r\n behavior: \"smooth\"\r\n });\r\n }, 10);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n\r\n\r\n }\r\n openDayForm(record: any | null = null) {\r\n const dialogRef = this.dialog.open(DaysOffFormComponent, {\r\n width: '530px',\r\n data: { record }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll(true);\r\n }\r\n });\r\n }\r\n\r\n deleteRecord(recordId: any) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n changeStatus(recordId: any, status: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.service.changeStatusUnavailableDay(recordId, status).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n {{'availabilty.Days Off' | translate}}\r\n \r\n \r\n {{\"availabilty.Days when the restaurant will be closed and reservations will not be available (i.e. holidays, restaurant closed for maintenance or etc.)\" | translate}}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{'availabilty.Title' | translate}}{{'availabilty.Recurring Every Year?' | translate}}{{'availabilty.Start & End Dates' | translate}}{{'restaurant.Branches' | translate}}
\r\n \r\n {{item.title | slice:0:10}} {{ item.title.length > 10 ? '...' : ''}}\r\n \r\n \r\n {{(item.recurringYear? 'swalMsg.Yes':'swalMsg.No') | translate}}\r\n \r\n {{item.start | date:(item.recurringYear ? 'd MMMM':'d MMMM, y')}}\r\n {{ 'content2.to' | translate }}\r\n {{item.end | date:(item.recurringYear ? 'd MMMM':'d MMMM, y')}}\r\n\r\n ({{'availabilty.Yearly' | translate}})\r\n \r\n \r\n {{branch.title}}\r\n /\r\n \r\n 2\">/ + {{item.branches.length - 2}}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
1 || recordsData['totalCount'] > pageSize)\">\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { Record } from 'src/app/features/Availability/days-off-config/models/List.Days';\r\nimport Swal from 'sweetalert2';\r\nimport { UnavailableDayService } from '../services/dayOff.service';\r\nimport { RestaurantDetails } from 'src/app/features/restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nexport interface DialogData {\r\n record: Record\r\n}\r\n@Component({\r\n selector: 'app-days-off-form',\r\n templateUrl: './days-off-form.component.html'\r\n})\r\nexport class DaysOffFormComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n dataLoading = false;\r\n loading = false;\r\n restaurantloading = false;\r\n isSubmitted = false;\r\n\r\n severalDays: boolean = true;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n details!: Record;\r\n\r\n branchesList: any[] = [];\r\n disableButton = false;\r\n allRestaurants: RestaurantDetails[] = [];\r\n\r\n isSelected = false;\r\n endDateMinValue: any;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: UnavailableDayService,\r\n private restaurantService: RestaurantService,\r\n private cdr: ChangeDetectorRef) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n this.GetRestaurants()\r\n if (this.isUpdate) {\r\n this.GetDetails();\r\n }\r\n\r\n }\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n GetDetails() {\r\n this.dataLoading = true;\r\n this.service.GetDetails(this.data.record.id).subscribe((data: Record) => {\r\n this.details = data;\r\n this.severalDays = this.details.severalDays;\r\n this.dataLoading = false;\r\n this.bindDataToUpdate();\r\n })\r\n }\r\n\r\n GetRestaurants() {\r\n this.restaurantloading = true;\r\n this.restaurantService.GetOwneRestaurant().subscribe((data: any) => {\r\n this.restaurantloading = false;\r\n this.allRestaurants = data.pageData;\r\n })\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(255),\r\n // Validators.pattern(Patterns.enTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(255),\r\n // Validators.pattern(Patterns.arTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n recurringYear: [],\r\n startDate: [null, Validators.required],\r\n endDate: [null],\r\n branches: new FormControl([], Validators.required),\r\n saveAnyWay: [false]\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n title_EN: this.details.title_EN,\r\n title_AR: this.details.title_AR,\r\n recurringYear: this.details.recurringYear,\r\n // startDate: this.details.startDate.gregorianDate,\r\n // endDate: this.details.endDate.gregorianDate,\r\n branches: this.details.branches,\r\n });\r\n this.formGroup.controls['startDate'].setValue(this.details.startDate.gregorian);\r\n this.formGroup.controls['endDate'].setValue(this.details.endDate?.gregorian);\r\n if (this.details.branches.length === this.allRestaurants?.length) {\r\n this.isSelected = true;\r\n }\r\n }\r\n\r\n changeStartDate() {\r\n if (this.formGroup.controls['startDate'].value !== this.details?.startDate.gregorian){\r\n this.formGroup.controls['endDate'].setValue(null);\r\n }\r\n \r\n this.endDateMinValue = {\r\n day: this.formGroup.controls['startDate'].value.day + 1,\r\n isHijri: this.formGroup.controls['startDate'].value.isHijri,\r\n month: this.formGroup.controls['startDate'].value.month,\r\n year: this.formGroup.controls['startDate'].value.year\r\n }\r\n }\r\n selectAllBranches() {\r\n if (this.isSelected) {\r\n this.formGroup.controls['branches'].reset()\r\n this.isSelected = false;\r\n }\r\n else {\r\n this.formGroup.controls['branches'].setValue(\r\n this.allRestaurants.map(x => x.id)\r\n )\r\n this.isSelected = true;\r\n }\r\n }\r\n\r\n\r\n saveRecord(saveAnyWay: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n\r\n let data: any;\r\n data = {\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n recurringYear: this.formGroup.controls['recurringYear'].value ? true : false,\r\n startDate: this.formGroup.controls['startDate'].value,\r\n endDate: this.severalDays ? this.formGroup.controls['endDate'].value : null,\r\n branches: this.formGroup.controls['branches'].value,\r\n saveAnyWay\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.record.id;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.saveRecord(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n if (error.status == 400) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: error.detail,\r\n icon: 'info',\r\n showCancelButton: true,\r\n cancelButtonText: this.translate.instant('swalMsg.NoCancel'),\r\n confirmButtonText: this.translate.instant('swalMsg.saveAnyWay'),\r\n }).then((res) => {\r\n if (res.value) {\r\n this.saveRecord(true);\r\n }\r\n });\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

{{\"availabilty.Add New Day(s) Off\" | translate}}

\r\n

{{\"availabilty.Edit Day(s) Off\" | translate}}

\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{\"forms.Title in English\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Title in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'availabilty.Recurring every Year' |\r\n translate}}
\r\n {{\"availabilty.Means it is repeating events in the same dates every year; such as holidays or special occasions\" | translate}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'availabilty.Several Days' |\r\n translate}}
\r\n {{\"availabilty.Date range and you have to provide a start and end date\" | translate}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{item.name}}\r\n \r\n
\r\n
\r\n
\r\n

{{'forms.Required' | translate}}

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: {\r\n canDelete: boolean\r\n canEdit: boolean\r\n canEditStatus: boolean\r\n isActive: boolean\r\n id: number\r\n title: string\r\n recurringYear: string\r\n start: string\r\n end: string\r\n branches: branch[]\r\n }[];\r\n}\r\nexport class Record {\r\n id!: any;\r\n title_AR!: string;\r\n title_EN!: string;\r\n recurringYear!: boolean;\r\n severalDays!: boolean;\r\n startDate!: date;\r\n endDate!: date;\r\n branches!: branch[]\r\n}\r\n\r\nexport class branch {\r\n id!: any;\r\n title!: string\r\n}\r\nexport class date {\r\n day!: number;\r\n month!: number;\r\n year!: number;\r\n isHijri!: boolean;\r\n gregorianDate!: string;\r\n gregorian!: date;\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter, Record } from '../models/List.Days';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UnavailableDayService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResUnavailableDays/ResGetAllUnavailableDays`, filter);\r\n }\r\n GetDetails(id: string): any {\r\n return this.http.get(`${environment.apiUrl}/ResUnavailableDays/ResGetUnavailableDaysById?id=${id}`);\r\n }\r\n delete(id: string) {\r\n return this.http.get(`${environment.apiUrl}/ResUnavailableDays/ResDeleteUnavailableDay?id=${id}`);\r\n }\r\n saveRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/ResUnavailableDays/ResEditUnavailableDay`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResUnavailableDays/ResAddUnavailableDay`, data);\r\n }\r\n }\r\n changeStatusUnavailableDay(id: any, status: boolean) {\r\n return this.http.get(`${environment.apiUrl}/ResUnavailableDays/ResChangeStatusUnavailableDay?id=${id}&status=${status}`);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\nimport { HoursFormComponent } from './hours-form/hours-form.component';\r\nimport { ListData } from './models/List.Hours';\r\nimport { HourService } from './services/Hours.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-hours-config',\r\n templateUrl: './hours-config.component.html'\r\n})\r\nexport class HoursConfigComponent extends DirtyComponent implements OnInit {\r\n\r\n dataLoading = true;\r\n btnLoading = false;\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData!: any;\r\n\r\n workingSlots: any[] = [];\r\n workingSlotsCopy: any[] = [];\r\n\r\n workingDays: any = []\r\n workingDaysCopy: any[] = []\r\n\r\n recordsData!: ListData | null;\r\n\r\n selectedHours: any[] = []\r\n\r\n constructor(private restaurantService: RestaurantService,\r\n public dialog: MatDialog, private service: HourService,\r\n private cdr: ChangeDetectorRef,\r\n translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router,) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.workingSlots = []\r\n this.workingSlotsCopy = []\r\n this.workingDays = []\r\n this.workingDaysCopy = []\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getAll(restId?: any) {\r\n this.dataLoading = true;\r\n this.restaurantId = restId;\r\n\r\n this.service.getAll(this.restaurantId).subscribe(\r\n (data: ListData) => {\r\n if (data) {\r\n this.recordsData = data;\r\n this.recordsData.workingDays.map((item) => {\r\n item.selectedHours = item.workingSlots.filter((item: any) => item.isActive)\r\n this.workingSlots = item.selectedHours\r\n this.workingSlotsCopy = JSON.parse(JSON.stringify(this.workingSlots));\r\n this.workingDaysCopy = JSON.parse(JSON.stringify(this.workingDays));\r\n })\r\n this.workingSlots = []\r\n this.workingSlotsCopy = []\r\n this.workingDays = []\r\n this.workingDaysCopy = []\r\n this.dataLoading = false;\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n changeToggle(name: any, isActive?: boolean, record: any | null = null, selectedHours?: any) {\r\n if (!this.workingDays.includes(name)) {\r\n this.workingDays.push(name)\r\n }\r\n\r\n if (!isActive) {\r\n this.openHourConfigForm(record, selectedHours)\r\n }\r\n\r\n }\r\n\r\n override canDeactivate(): boolean {\r\n return this.workingSlots?.length !== this.workingSlotsCopy?.length\r\n || this.workingDays?.length !== this.workingDaysCopy?.length\r\n }\r\n\r\n override openConfirmDialog() {\r\n\r\n if (this.canDeactivate()) {\r\n \r\n return Swal.fire({\r\n title: this.translate.instant('swalMsg.are you sure you want to discard all the changes'),\r\n text: this.leaveMsg || this.translate.instant('swalMsg.It looks like youre in the middle of updating the menu but havent saved the changes yet'),\r\n imageUrl: './assets/images/icons/warning-ic.svg',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No'),\r\n width: '560'\r\n }).then((result) => {\r\n if (result.value) {\r\n this.workingSlotsCopy = JSON.parse(JSON.stringify(this.workingSlots));\r\n this.workingDaysCopy = JSON.parse(JSON.stringify(this.workingDays));\r\n // if (isCancelled) {\r\n // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // } else {\r\n // this.dialogRef?.close();\r\n // this.close.emit(true);\r\n // }\r\n\r\n this.dialogRef?.close();\r\n this.close.emit(true);\r\n this.getAll(this.restaurantId)\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n } else {\r\n // if (isCancelled) {\r\n // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // } else {\r\n // this.dialogRef?.close();\r\n // this.close.emit(true);\r\n // }\r\n this.dialogRef?.close();\r\n this.close.emit(true);\r\n this.getAll(this.restaurantId)\r\n }\r\n return false;\r\n }\r\n\r\n openHourConfigForm(record: any | null = null, selectedHours: any) {\r\n const dialogRef = this.dialog.open(HoursFormComponent, {\r\n width: '530px',\r\n data: { record, restaurantId: this.restaurantId, selectedHours: selectedHours }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result) {\r\n this.recordsData?.workingDays.map((item) => {\r\n if (item.dayCode == result.dayCode) {\r\n item = result;\r\n item.selectedHours = result.workingSlots.filter((item: any) => item.isActive)\r\n this.workingSlots.push(item.selectedHours)\r\n }\r\n });\r\n } else {\r\n this.recordsData?.workingDays.map((item) => {\r\n if (item.isActive && !item.selectedHours.length) {\r\n item.isActive = false\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n saveRecord() {\r\n\r\n let isValidSlots\r\n this.recordsData?.workingDays.map((item: any) => {\r\n delete item.selectedHours;\r\n })\r\n let workingDays = this.recordsData?.workingDays\r\n let data = {\r\n workingDays,\r\n restaurantId: this.restaurantId,\r\n };\r\n\r\n // Validate Slots\r\n isValidSlots = this.recordsData?.workingDays.find(item => item.isActive)?.workingSlots.some(slot => slot.isActive)\r\n\r\n\r\n\r\n this.dataLoading = true;\r\n this.btnLoading = true;\r\n this.service.saveRecord(data).subscribe(() => {\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n }).then((res) => {\r\n this.dataLoading = false;\r\n this.btnLoading = false;\r\n this.workingSlotsCopy = JSON.parse(JSON.stringify(this.workingSlots));\r\n this.workingDaysCopy = JSON.parse(JSON.stringify(this.workingDays));\r\n // if (this.restaurantId) {\r\n // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // } else {\r\n // this.getAll(this.restaurantId)\r\n // }\r\n this.getAll(this.restaurantId)\r\n });\r\n }, error => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n }).then((res) => {\r\n this.btnLoading = false;\r\n this.dataLoading = false;\r\n this.getAll(this.restaurantId)\r\n });\r\n });\r\n }\r\n\r\n GetScreenData() {\r\n this.getAll(this.restaurantId);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{'availabilty.Set Time Slots for Reservations (Walk-in and Online)' | translate}}\r\n
\r\n
\r\n
\r\n

\r\n {{'availabilty.The hours you set here will be reflected on the open hours shown on the restaurants profile.' | translate}}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{\"general.Activate\" | translate}}{{\"availabilty.Day\" | translate}}{{\"availabilty.Open Hours\" | translate}}{{\"availabilty.Slots\" | translate}}
\r\n
\r\n \r\n
\r\n
\r\n

{{item.name}}

\r\n
\r\n
\r\n
\r\n {{item.selectedHours[0]?.timefrom}}\r\n \r\n
\r\n

{{'content2.to' | translate}}

\r\n
\r\n {{item.selectedHours[item.selectedHours.length\r\n - 1]?.timefrom}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Record, slot } from 'src/app/features/Availability/hours-config/models/List.Hours';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n record: Record,\r\n restaurantId: number,\r\n selectedHours: any\r\n}\r\n@Component({\r\n selector: 'app-hours-form',\r\n templateUrl: './hours-form.component.html'\r\n})\r\nexport class HoursFormComponent extends DirtyComponent implements OnInit {\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n\r\n hours:FormControl = new FormControl([], Validators.required);\r\n\r\n selectedHours: any[] = []\r\n\r\n workingSlots: slot[] = [];\r\n\r\n isSelected = false;\r\n startSelect = false;\r\n\r\n constructor(\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(translate)\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.workingSlots = JSON.parse(JSON.stringify(this.data.record.workingSlots));\r\n if (this.data.selectedHours.filter((item: any) => item.isActive).length == this.data.record.workingSlots?.length) {\r\n this.isSelected = true\r\n } else {\r\n this.isSelected = false\r\n }\r\n }\r\n\r\n override canDeactivate(): boolean {\r\n return this.hours.touched && this.hours.dirty;\r\n };\r\n\r\n handleTimeDuration(slot: slot) {\r\n this.startSelect = true;\r\n const slots = this.workingSlots;\r\n let selectedTimes: slot[] = [];\r\n if (this.hours.value.length > 1) {\r\n slots.forEach(slot => {\r\n const firstVaueId = slots.find(s => s.id === this.hours.value[0].id)?.id || 0;\r\n const lastVaueId = slots.find(s => s.id === this.hours.value[this.hours.value!.length - 1].id)?.id || 0;\r\n\r\n if (slot.id >= firstVaueId && slot.id <= lastVaueId) {\r\n slot.isActive = true;\r\n selectedTimes.push(slot)\r\n }\r\n });\r\n this.hours.setValue(selectedTimes);\r\n }\r\n }\r\n getSelectedBetweenSlots() {\r\n this.hours.value!.forEach((hour: any) => {\r\n const firstSlot = this.workingSlots.find(s => s === (this.hours.value)![0])?.id || '';\r\n const lastSlot = this.workingSlots.find(s => s === (this.hours.value)![(this.hours.value)!.length - 1])?.id || '';\r\n\r\n // for(let i = firstSlot; i < lastSlot;) {\r\n\r\n // }\r\n\r\n if (hour.id >= firstSlot && hour.id <= lastSlot) {\r\n hour.isActive = true\r\n }\r\n });\r\n }\r\n\r\n selectAllSlots() {\r\n if (this.isSelected) {\r\n this.workingSlots.map(item => {\r\n item.isActive = false\r\n })\r\n this.isSelected = false;\r\n }\r\n else {\r\n this.workingSlots.map(item => {\r\n item.isActive = true\r\n })\r\n this.isSelected = true;\r\n }\r\n }\r\n\r\n saveRecord() {\r\n this.workingSlots.map(item => {\r\n item.isActive = this.hours.value?.some((x: any) => x.id == item.id) || false\r\n })\r\n\r\n if ((this.hours.value)!.length > 1) {\r\n this.data.record.workingSlots = this.workingSlots;\r\n this.dialogRef.close(this.data.record);\r\n } else {\r\n let msg = this.translate.instant('swalMsg.youShouldChooseAtLeastTwoSlots');\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: msg,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

{{\"availabilty.Configure Slots\" | translate}}

\r\n \r\n
\r\n
\r\n {{\"availabilty.Day to config its time slots\" | translate}}\r\n {{data.record.name}}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {{item.timefrom}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{\"availabilty.Unselected slots will be hidden while reservation by guests or host\" | translate }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HourService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(RestaurantId: any): any {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetWorkingHoursSettings?RestaurantId=${RestaurantId}`);\r\n }\r\n saveRecord(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResSaveWorkingHoursSettings`, data);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { exceptionType, ListData, ListFilter, policyType, Reservation } from '../../restaurants/models/List.Cancellation';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { RefundPolicyService } from '../../restaurants/services/Cancellation.service';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\nimport { CancellationFormComponent } from './components/cancellation-form/cancellation-form.component';\r\nimport { ExceptionRuleGuestsTagsComponent } from './components/exception-rule-guests-tags/exception-rule-guests-tags.component';\r\nimport { ExceptionRuleReservationComponent } from './components/exception-rule-reservation/exception-rule-reservation.component';\r\nimport { ShowPolicyComponent } from './components/show-policy/show-policy.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-cancellation',\r\n templateUrl: './cancellation.component.html',\r\n})\r\nexport class CancellationComponent implements OnInit {\r\n dataLoading = true;\r\n filterModel: ListFilter = new ListFilter();\r\n pageIndex = 0;\r\n pageCount = 0;\r\n pageSize = 4\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData!: any;\r\n\r\n policyAmount: any;\r\n exceptionReservationNumber!: Reservation | null;\r\n exceptionTags: any\r\n SelectedTags = []\r\n recordsData!: ListData | null;\r\n\r\n constructor(\r\n private restaurantService: RestaurantService,\r\n private service: RefundPolicyService,\r\n public dialog: MatDialog,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n\r\n ngOnInit(): void {\r\n // static\r\n this.filterModel.pageNumber = 0;\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n addCancellationPolicy(record: any | null = null) {\r\n const dialogRef = this.dialog.open(CancellationFormComponent, {\r\n width: '50rem',\r\n data: { record, restaurantsId: this.restaurantId, id: record }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAllCancellation(this.filterModel.pageNumber, this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n\r\n editShowPolicy(amount?: any) {\r\n const dialogRef = this.dialog.open(ShowPolicyComponent, {\r\n width: '460px',\r\n data: { amount, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getNoShowPolicy(this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n counter(i: number) { return new Array(i); }\r\n\r\n getAllCancellation(event: any, restId?: any) {\r\n this.dataLoading = true;\r\n this.restaurantId = restId;\r\n if (event) {\r\n this.pageIndex = event;\r\n } else {\r\n this.pageIndex = 0;\r\n }\r\n this.filterModel.pageSize = this.pageSize;\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n // this.filterModel.pageSize = this.pageSize;\r\n this.filterModel.pageNumber = this.pageIndex;\r\n this.filterModel.restaurantId = this.restaurantId;\r\n\r\n this.service.getPolicies(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.cancellationPolicies.totalCount / this.filterModel.pageSize);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n getNoShowPolicy(restId?: any) {\r\n this.restaurantId = restId\r\n this.service.GetNoShowPolicy(this.restaurantId).subscribe((data: any) => {\r\n this.policyAmount = data.refund;\r\n })\r\n }\r\n\r\n GetExceptionReservationNumber(restId?: any) {\r\n this.restaurantId = restId\r\n this.service.GetExceptionReservationNumber(this.restaurantId).subscribe((data: Reservation) => {\r\n this.exceptionReservationNumber = data\r\n })\r\n }\r\n\r\n exceptionRuleForReservation(reservationNumber?: any) {\r\n const dialogRef = this.dialog.open(ExceptionRuleReservationComponent, {\r\n width: '460px',\r\n data: { reservationNumber, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GetExceptionReservationNumber(this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n GetExceptionTags(restId?: any) {\r\n this.restaurantId = restId\r\n this.service.GetExceptionTags(this.restaurantId).subscribe((data: any) => {\r\n this.exceptionTags = data;\r\n })\r\n }\r\n exceptionRuleForGuestsTags() {\r\n const dialogRef = this.dialog.open(ExceptionRuleGuestsTagsComponent, {\r\n width: '460px',\r\n data: { exceptionTags: this.exceptionTags, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GetExceptionTags(this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n\r\n deleteCancellationRecord(recordId: any) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (this.recordsData?.cancellationPolicies?.pageData?.length == 1) {\r\n this.filterModel.pageNumber > 0 ? this.filterModel.pageNumber -= 1 : this.filterModel.pageNumber\r\n }\r\n if (this.filterModel.pageNumber == this.pageIndex) {\r\n this.pageIndex = this.filterModel.pageNumber;\r\n this.getAllCancellation(this.filterModel.pageNumber, this.restaurantId);\r\n } else {\r\n this.getAllCancellation(this.filterModel.pageNumber, this.restaurantId);\r\n }\r\n // this.getAllCancellation(null, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n changeCancellationPolicyStatus(id?: any, isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangePolicyStatus(id, isActive, this.restaurantId, policyType.CancellationPolicy).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null, this.restaurantId);\r\n }\r\n }),\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n changeShowPolicyStatus(id?: any, isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangePolicyStatus(id, isActive, this.restaurantId, policyType.No_Show).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n changeExceptionReservationStatus(isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangeExceptionsStatus(isActive, this.restaurantId, exceptionType.ReservationNumber).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n changeExceptionTagStatus(isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangeExceptionsStatus(isActive, this.restaurantId, exceptionType.Tags).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n GetScreenData(event: any) {\r\n this.getAllCancellation(this.filterModel.pageNumber, event);\r\n this.getNoShowPolicy(event);\r\n this.GetExceptionReservationNumber(event);\r\n this.GetExceptionTags(event);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n {{recordsData?.cancellationPolicies?.totalCount}}\r\n {{'content4.Cancellation Policies' | translate}}\r\n \r\n
\r\n \r\n \r\n \r\n {{\"availabilty.Add New\" | translate}}\r\n \r\n
\r\n
\r\n

{{\"restaurant.Cancellation Hint\" | translate}}

\r\n

{{\"restaurant.Cancellation info\" | translate}}

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'restaurant.Policy Title' | translate}}{{'restaurant.Refund Amount' | translate}}{{'restaurant.Before Booked Reservation Time by' | translate}}
{{item.name}}{{item.refundAmount}}%{{item.beforeReservation}}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
1 || recordsData?.cancellationPolicies!.totalCount > pageSize)\">\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{'restaurant.No-Show Policy' | translate}}\r\n

\r\n {{\"restaurant.This policy will be applied once the restaurants host or those who have his permission take a reservation with a No Show action\" | translate}}\r\n

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

{{'restaurant.Refund Amount' | translate }}:

\r\n {{policyAmount + '%'}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{'restaurant.Exceptions' | translate}}\r\n

\r\n {{\"restaurant.Exceptions mean that certain guests are not charged cancellation fees and are fully refunded\" | translate}}\r\n

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

{{'restaurant.Guests who booked this no. of reservations (all the time)' | translate }}:

{{exceptionReservationNumber?.reservationNumber}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'restaurant.Guests who got these tags' |\r\n translate }}:

\r\n \r\n \r\n \r\n {{tag.name}},\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Record, ReservationType } from 'src/app/features/restaurants/models/List.Cancellation';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n record: Record,\r\n restaurantsId: number,\r\n id: string\r\n}\r\n@Component({\r\n selector: 'app-cancellation-form',\r\n templateUrl: './cancellation-form.component.html'\r\n})\r\nexport class CancellationFormComponent extends DirtyComponent implements OnInit {\r\n\r\n Intervals!: ReservationType[];\r\n period?: any;\r\n periodUnit?: any;\r\n refund?: any;\r\n\r\n time?: any\r\n timeUnit?: any\r\n\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n this.GetReservationTimeType()\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.enTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.arTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n restaurantId: this.data.restaurantsId,\r\n refund: [null, [\r\n Validators.required,\r\n Validators.maxLength(5),\r\n Validators.min(0.001),\r\n Validators.max(100),\r\n Validators.pattern(Patterns.float)]],\r\n beforeTime: [null, [Validators.required, Validators.pattern(Patterns.number), Validators.maxLength(10),]],\r\n beforeTimeType: [null, Validators.required],\r\n // afterTime: [null, [Validators.required, Validators.pattern(Patterns.number), Validators.maxLength(10),]],\r\n // afterTimeType: [null, Validators.required],\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n\r\n\r\n bindDataToUpdate() {\r\n this.service.GetPolicyById(this.data.id, this.data.restaurantsId).subscribe((data: any) => {\r\n this.formGroup.patchValue({\r\n title_EN: data.title_EN,\r\n title_AR: data.title_AR,\r\n restaurantId: this.data.restaurantsId,\r\n refund: data.refund,\r\n beforeTime: data.beforeTime,\r\n beforeTimeType: data.beforeTimeType,\r\n // afterTime: data.afterTime,\r\n // afterTimeType: data.afterTimeType\r\n });\r\n })\r\n }\r\n\r\n onPeriodUnitChange(event: MatSelectChange) {\r\n this.periodUnit = event.source.triggerValue\r\n console.log(this.periodUnit);\r\n }\r\n onTimeUnitChange(event: MatSelectChange) {\r\n this.timeUnit = event.source.triggerValue\r\n console.log(this.timeUnit);\r\n }\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n id: '',\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n restaurantId: this.data.restaurantsId,\r\n refund: this.formGroup.controls['refund'].value,\r\n beforeTime: this.formGroup.controls['beforeTime'].value,\r\n beforeTimeType: this.formGroup.controls['beforeTimeType'].value,\r\n // afterTime: this.formGroup.controls['afterTime'].value,\r\n // afterTimeType: this.formGroup.controls['afterTimeType'].value,\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.id;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.savePolicyRecord(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n GetReservationTimeType() {\r\n this.service.GetReservationTimeType().subscribe((data: ReservationType[]) => {\r\n this.Intervals = data;\r\n })\r\n }\r\n}\r\n","\r\n
\r\n

\r\n {{\"restaurant.Add new Cancellation Policy\" | translate}}\r\n

\r\n

\r\n {{\"restaurant.Edit Cancellation Policy\" | translate}}\r\n

\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\"restaurant.Cancellation Policy Title in English\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"restaurant.Cancellation Policy Title in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{\"restaurant.Refund\" | translate}}\r\n \r\n \r\n

%

\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n
\r\n {{\"restaurant.of Paid Deposit\" | translate}}\r\n
\r\n
\r\n
\r\n

{{\"restaurant.Before booked reservations time by\" | translate}}\r\n

\r\n\r\n
\r\n
\r\n \r\n \r\n {{ 'forms.Required' |\r\n translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{ 'restaurant.Intervals' | translate }}\r\n \r\n \r\n {{interval.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{\"content3.Summary\" |\r\n translate}} ({{'restaurant.Viewable by Guests' |\r\n translate}})

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

{{\"restaurant.You will get\" | translate}} {{refund}}%\r\n {{\"restaurant.Refund\" | translate}},\r\n {{\"restaurant.if you cancel within\" | translate}} {{period}} {{formGroup.controls['beforeTimeType'].value}}\r\n

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

{{\"restaurant.This summary is auto generated from configuration defined above and will be shown for guests on BonTech Mobile App\" | translate }}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ExceptionTags } from 'src/app/features/restaurants/models/List.Cancellation';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n exceptionTags: any[]\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-exception-rule-guests-tags',\r\n templateUrl: './exception-rule-guests-tags.component.html'\r\n})\r\nexport class ExceptionRuleGuestsTagsComponent extends DirtyComponent implements OnInit {\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data ? true : false;\r\n allTags: any[] = []\r\n tagsCopy: any = [];\r\n selectedTags: any[] = [];\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetExceptionTags();\r\n\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.selectedTags.length !== this.tagsCopy.length\r\n };\r\n\r\n GetExceptionTags() {\r\n this.loading = true;\r\n this.service.GetExceptionTags(this.data.restaurantId).subscribe((data: any) => {\r\n this.loading = false;\r\n this.allTags = data.allTags\r\n this.selectedTags = data.selectedTags || []\r\n this.tagsCopy = JSON.parse(JSON.stringify(this.selectedTags))\r\n\r\n this.allTags.forEach(element => {\r\n if (element.isSelected) {\r\n this.pushSelectedTag(element)\r\n }\r\n });\r\n },\r\n (error: any) => {\r\n this.loading = false;\r\n })\r\n }\r\n\r\n pushSelectedTag(tag?: ExceptionTags) {\r\n if (!this.selectedTags.includes(tag?.id)) {\r\n this.selectedTags.push(tag?.id)\r\n }\r\n }\r\n\r\n onChangeEventFunc(tag: ExceptionTags, isChecked?: any) {\r\n if (isChecked && !this.selectedTags.includes(tag?.id)) {\r\n this.selectedTags.push(tag?.id);\r\n\r\n\r\n } else {\r\n let i = this.selectedTags.indexOf(tag?.id);\r\n if (i !== -1) {\r\n this.selectedTags.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.selectedTags.length > 0) {\r\n this.loading = true;\r\n let data = {\r\n exceptionTags: this.selectedTags,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.exceptionTags = this.selectedTags;\r\n data.restaurantId = this.data.restaurantId\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.EditExceptionTags(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.youShouldChooseAtLeastOneSelection'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n

{{\"restaurant.Set Exception Rule (Guests Tags)\" | translate}}

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

{{\"restaurant.Choose all guests tags to be excluded from cancellation fees\" | translate}}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n {{tag.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

{{\"general.No Data Found\" | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n reservationNumber: number,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-exception-rule-reservation',\r\n templateUrl: './exception-rule-reservation.component.html'\r\n})\r\nexport class ExceptionRuleReservationComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.reservationNumber ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.data.reservationNumber) {\r\n this.bindDataToUpdate();\r\n }\r\n\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n reservationNumber: [0, [\r\n Validators.maxLength(10),\r\n Validators.required,\r\n ]],\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n reservationNumber: this.data.reservationNumber,\r\n restaurantId: this.data.restaurantId\r\n });\r\n console.log(this.data.reservationNumber)\r\n\r\n }\r\n\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n reservationNumber: this.formGroup.controls['reservationNumber'].value,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.reservationNumber = this.formGroup.controls['reservationNumber'].value,\r\n data.restaurantId = this.data.restaurantId\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.EditReservationNumber(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n

{{\"restaurant.Set Exception Rule (No. of Reservation)\" | translate}}

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

{{\"restaurant.Except guests who booked this no.of reservation (all the time)\" | translate}}

\r\n
\r\n \r\n {{\"restaurant.No. of Reservation\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n amount: number,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-show-policy',\r\n templateUrl: './show-policy.component.html'\r\n})\r\nexport class ShowPolicyComponent extends DirtyComponent implements OnInit {\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.amount ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n amount: [0, [\r\n Validators.required,\r\n Validators.maxLength(20),\r\n Validators.max(100),\r\n Validators.pattern(Patterns.float)\r\n ]],\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n amount: this.data.amount,\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n amount: this.formGroup.controls['amount'].value,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.amount = this.formGroup.controls['amount'].value;\r\n data.restaurantId = this.data.restaurantId;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.EditNoShowPolicy(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n this.service.refreshList.next(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n

{{\"restaurant.Set No Show Policy\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"restaurant.Refund Amount\" | translate}}\r\n \r\n

%

\r\n {{ 'forms.Required' | translate }}\r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Record, slot } from 'src/app/features/Events-and-guests/models/List.Event';\r\nimport { RestaurantDetails } from 'src/app/features/restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { EventService } from '../../services/Events.service';\r\nexport interface DialogData {\r\n record: Record\r\n}\r\n@Component({\r\n selector: 'app-event-form',\r\n templateUrl: './event-form.component.html'\r\n})\r\nexport class EventFormComponent extends DirtyComponent implements OnInit {\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n restaurantloading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n allRestaurants: RestaurantDetails[] = [];\r\n details!: Record;\r\n\r\n disableButton = false;\r\n\r\n // image file\r\n logo: any;\r\n logoSrc!: string;\r\n maxFileSize = 0.5;\r\n fileExt!: string;\r\n fileTypeError = false;\r\n fileSizeError = false;\r\n @ViewChild('InputFile') InputFile!: ElementRef;\r\n\r\n\r\n restaurantId = localStorage.getItem('restaurantId')\r\n\r\n hours: slot[] = [];\r\n hoursLoading = false;\r\n\r\n slots = new FormControl([], Validators.required);\r\n isSelected = false;\r\n isHoursSelected = false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService,\r\n private service: EventService,\r\n private restaurantService: RestaurantService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(translate)\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n this.GetRestaurants()\r\n if (this.isUpdate) {\r\n this.GetDetails();\r\n }\r\n\r\n }\r\n\r\n GetRestaurants() {\r\n this.restaurantloading = true;\r\n this.restaurantService.GetOwneRestaurant().subscribe((data: any) => {\r\n this.restaurantloading = false;\r\n this.allRestaurants = data.pageData;\r\n })\r\n }\r\n GetDetails() {\r\n this.loading = true;\r\n this.service.GetDetails(this.data.record.id).subscribe((data: any) => {\r\n this.details = data;\r\n this.loading = false;\r\n this.bindDataToUpdate();\r\n })\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n restaurantID: [this.restaurantId],\r\n // icon: [null, Validators.required],\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(20),\r\n // Validators.pattern(Patterns.enTxt),\r\n Validators.required\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(20),\r\n // Validators.pattern(Patterns.arTxt),\r\n Validators.required\r\n ]],\r\n isSeveralDays: [false],\r\n startDate: [null, Validators.required],\r\n endDate: [null],\r\n startTime: [null, Validators.required],\r\n endTime: [null, Validators.required],\r\n note: [null],\r\n branches: new FormControl([], Validators.required)\r\n });\r\n }\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue(this.details);\r\n this.logoSrc = this.details.icon;\r\n this.formGroup.controls['startDate'].setValue(this.details.startDate.gregorian);\r\n this.formGroup.controls['endDate'].setValue(this.details?.endDate?.gregorian);\r\n this.hours = this.details.slots;\r\n if (this.hours.filter((item: any) => item.isActive).length == this.details.slots?.length) {\r\n this.isHoursSelected = true\r\n }\r\n if (this.formGroup.controls['branches'].value?.length == this.allRestaurants?.length) {\r\n this.isSelected = true;\r\n }\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n\r\n selectAllBranches() {\r\n if (this.formGroup.controls['branches'].value?.length == this.allRestaurants?.length) {\r\n this.formGroup.controls['branches'].reset()\r\n this.isSelected = false;\r\n }\r\n else {\r\n this.formGroup.controls['branches'].setValue(\r\n this.allRestaurants.map(x => x.id)\r\n )\r\n this.isSelected = true;\r\n }\r\n }\r\n\r\n selectAllSlots() {\r\n if (this.isHoursSelected) {\r\n this.hours.map(item => {\r\n item.isActive = false\r\n })\r\n this.isHoursSelected = false;\r\n }\r\n else {\r\n this.hours.map(item => {\r\n item.isActive = true\r\n })\r\n this.isHoursSelected = true;\r\n }\r\n }\r\n validateDateTime() {\r\n if (this.formGroup.controls['startTime'].value && this.formGroup.controls['endTime'].value) {\r\n // ResId: number, start: string, end: string\r\n this.hoursLoading = true;\r\n this.service.getEventSlots(this.formGroup.controls['startTime'].value, this.formGroup.controls['endTime'].value).subscribe((res: any) => {\r\n this.hours = res;\r\n this.hoursLoading = false;\r\n })\r\n }\r\n }\r\n\r\n scrollToError() {\r\n setTimeout(() => {\r\n if (document.getElementsByClassName('mat-form-field-invalid').length) {\r\n this.scrollTo('mat-form-field-invalid');\r\n }\r\n if (document.getElementsByClassName('has-error').length) {\r\n this.scrollTo('has-error');\r\n }\r\n if (document.getElementsByClassName('is-invalid').length) {\r\n this.scrollTo('is-invalid');\r\n }\r\n }, 100);\r\n }\r\n scrollTo(className: string) {\r\n document.getElementsByClassName(className)[0].scrollIntoView({ behavior: \"smooth\", block: \"center\", inline: \"nearest\" });\r\n }\r\n\r\n onSeveralDaysChanges($event: any) {\r\n this.formGroup.controls['endDate'].reset()\r\n }\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n this.scrollToError();\r\n\r\n if (this.formGroup.valid && this.logoSrc && this.formGroup.controls['startTime'].value !== this.formGroup.controls['endTime'].value) {\r\n this.loading = true;\r\n let data: any\r\n this.hours.map(item => {\r\n item.isActive = this.slots.value?.some((x: any) => x.id == item.id) || false\r\n })\r\n data = {\r\n restaurantID: this.restaurantId,\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n isSeveralDays: this.formGroup.controls['isSeveralDays'].value ? true : false,\r\n startDate: this.formGroup.controls['startDate'].value,\r\n endDate: (this.formGroup.controls['isSeveralDays'].value == true) ? this.formGroup.controls['endDate'].value : '',\r\n startTime: this.formGroup.controls['startTime'].value,\r\n endTime: this.formGroup.controls['endTime'].value,\r\n note: this.formGroup.controls['note'].value,\r\n branches: this.formGroup.controls['branches'].value,\r\n slots: this.hours\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.record.id\r\n data.startDate = this.formGroup.controls['startDate'].value\r\n data.endDate = (this.formGroup.controls['isSeveralDays'].value == true) ? this.formGroup.controls['endDate'].value : ''\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.saveRecord(data, this.logo).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n // File preview with validation\r\n changeFileListener($event: any): void {\r\n const file: File = $event.target.files[0];\r\n if (file) {\r\n if (this.validateFile(file)) {\r\n this.readThis(file);\r\n this.logo = file;\r\n } else {\r\n this.logoSrc = '';\r\n this.logo = undefined;\r\n }\r\n } else {\r\n this.logoSrc = '';\r\n this.logo = undefined;\r\n }\r\n }\r\n readThis(file: File): void {\r\n const myReader: FileReader = new FileReader();\r\n if (this.fileType(file.name) === 'svg') {\r\n myReader.readAsText(file);\r\n } else {\r\n myReader.readAsDataURL(file);\r\n }\r\n myReader.onloadend = (e) => {\r\n this.logoSrc = myReader.result as string;\r\n };\r\n }\r\n validateFile(file: File): any {\r\n this.fileExt = this.fileType(file.name);\r\n if (this.fileExt) {\r\n this.fileTypeError = false;\r\n if ((file.size / (1024 * 1024)) <= this.maxFileSize) {\r\n this.fileSizeError = false;\r\n } else {\r\n this.fileSizeError = true;\r\n return false;\r\n }\r\n } else {\r\n this.fileTypeError = true;\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileType(fileName: string): any {\r\n const extension = fileName.split('.')?.pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'svg':\r\n return 'svg';\r\n case 'jpg':\r\n case 'jpeg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

{{\"content4.Add New Event\" | translate}}

\r\n

{{\"content4.Edit Event\" | translate}}

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

\r\n {{ 'content.JPG or PNG' | translate }}\r\n ({{ 'content.MB max' | translate: {no: 1} }})\r\n

\r\n

{{\"content4.This photo will appear on BonTech Mobile App (for guests)\" | translate }}\r\n

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

{{\r\n 'forms.Required' | translate }}

\r\n

{{ 'forms.InvalidFile' | translate }}

\r\n

{{ 'forms.Max-file-size' | translate }} {{maxFileSize}}\r\n {{\r\n 'forms.MB' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\"content4.Event Title in English\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"content4.Event Title in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n {{'content4.Event Date(s)' | translate}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'availabilty.Several Days' |\r\n translate}}
\r\n {{\"availabilty.Date range and you have to provide a start and end date\" | translate}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{'content4.Event Time' | translate}}\r\n
\r\n
\r\n \r\n {{ 'content2.From' | translate }}\r\n \r\n
\r\n clear\r\n \r\n \r\n
\r\n \r\n {{ 'forms.Required' | translate\r\n }}\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ 'forms.To' | translate }}\r\n \r\n
\r\n clear\r\n \r\n \r\n
\r\n \r\n {{ 'forms.Required' | translate\r\n }}\r\n \r\n

{{ 'forms.Invalid' | translate\r\n }}\r\n

\r\n
\r\n\r\n
\r\n
\r\n {{'content4.Manage Reservation Slots' | translate}}\r\n\r\n

{{\"content4.It will reflect on reservations' slots for guests or the restaurant's host\" | translate }}\r\n

\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{item.timefrom}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{\"general.No Data Found\" | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{\"forms.Description\" | translate}}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{item.name}}\r\n \r\n
\r\n
\r\n
\r\n

{{'forms.Required' | translate}}

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

{{\"content4.Once you submit, it will be published on the BonTech Mobile App\" | translate }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\nimport { eventType, ListData, ListFilter } from '../models/List.Event';\r\nimport { EventService } from '../services/Events.service';\r\nimport { EventFormComponent } from './event-form/event-form.component';\r\n\r\n@Component({\r\n selector: 'app-events',\r\n templateUrl: './events.component.html'\r\n})\r\nexport class EventsComponent implements OnInit {\r\n dataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n typeValue!: any;\r\n pageSize = 10\r\n\r\n filterFormGroup: FormGroup = new FormGroup({});\r\n filterModel: ListFilter = new ListFilter();\r\n today = new Date();\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n\r\n typesListAll = [\r\n { name: this.translate.instant('content4.Upcoming & Ongoing'), id: eventType.UpcomingAndOngoing },\r\n { name: this.translate.instant(\"content4.Past\"), id: eventType.Past }\r\n ];\r\n\r\n recordsData!: ListData | null;\r\n\r\n constructor(private translate: TranslateService,\r\n private restaurantService: RestaurantService,\r\n public dialog: MatDialog,\r\n private service: EventService,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n\r\n // static\r\n this.filterModel.pageNumber = 0;\r\n this.filterModel.pageSize = this.pageSize;\r\n\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n if (params['page']) {\r\n this.filterModel.pageNumber = Number(params['page']);\r\n }\r\n if (params['pageSize']) {\r\n this.filterModel.pageSize = Number(params['pageSize']);\r\n }\r\n if (params['status']) {\r\n this.typeValue = this.typesListAll.find(element => element.id === Number(params['status']));\r\n } else {\r\n this.typeValue = this.typesListAll[0]\r\n }\r\n if (params['page']) {\r\n this.getAll(true);\r\n } else {\r\n this.getAll(null);\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n getAll(event: any) {\r\n this.dataLoading = true;\r\n if (!event) {\r\n this.filterModel.pageNumber = 0;\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n if (event && event.pageSize) {\r\n this.filterModel.pageNumber = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n this.filterModel.status = this.typeValue?.id;\r\n this.service.getAll(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n\r\n\r\n }\r\n\r\n public changePagingParams(event: any = null) {\r\n if (event && event.pageSize) {\r\n this.filterModel.pageNumber = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n const queryParams: Params = {\r\n page: this.filterModel.pageNumber,\r\n pageSize: this.filterModel.pageSize\r\n };\r\n this.router.navigate(\r\n [],\r\n {\r\n relativeTo: this.activatedRoute,\r\n queryParams: queryParams,\r\n queryParamsHandling: 'merge', // remove to replace all query params by provided\r\n });\r\n }\r\n\r\n typeFilter(selected: any) {\r\n const selectedType = this.typesListAll.find(element => element.id === selected.value);\r\n if (selectedType) {\r\n this.typeValue = selectedType;\r\n }\r\n // this.getAll(true);\r\n this.filterModel.status = this.typeValue?.id;\r\n const queryParams: Params = {\r\n page: 0,\r\n pageSize: this.filterModel.pageSize,\r\n status: this.filterModel.status\r\n };\r\n this.router.navigate(\r\n [location.pathname],\r\n {\r\n relativeTo: this.activatedRoute,\r\n queryParams: queryParams,\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n\r\n\r\n openEventForm(record: any | null = null) {\r\n const dialogRef = this.dialog.open(EventFormComponent, {\r\n width: '530px',\r\n data: { record, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll(true);\r\n }\r\n });\r\n }\r\n\r\n deleteRecord(recordId: string) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n {{status.name}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{recordsData?.totalCount}}\r\n \r\n {{ 'content4.Active Events' | translate }}\r\n \r\n \r\n {{ 'content4.Past Events' | translate }}\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{'content4.Event Title' | translate}}{{'content4.Event Dates' | translate}}{{'content4.Event Time' | translate}}{{'restaurant.Branches' | translate}}{{'restaurant.No.OfReservation' | translate}}
\r\n
\r\n
\r\n {{ item.title | shortName }}\r\n \r\n
\r\n
\r\n
{{item.title}}
\r\n
\r\n
\r\n
\r\n {{item.start | date:'d MMMM, y'}}\r\n {{ 'content2.to' | translate }}\r\n {{item.end | date:'d MMMM, y'}}\r\n {{item.timeStart}} {{ 'content2.to' | translate }} {{item.timeEnd}}\r\n {{\r\n branch.title}} / 2\">/ + {{item.branches.length - 2}}\r\n {{item.reservationsCount}}\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
1 || recordsData['totalCount'] > pageSize)\">\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\nimport { announcementType, ListData, ListFilter } from '../models/List.GuestAnnouncement';\r\nimport { AnnouncementService } from '../services/Announcements.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-guest-announcements',\r\n templateUrl: './guest-announcements.component.html'\r\n})\r\nexport class GuestAnnouncementsComponent implements OnInit {\r\n dataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n pageSize = 10;\r\n typeValue!: any;\r\n\r\n filterFormGroup: FormGroup = new FormGroup({});\r\n filterModel: ListFilter = new ListFilter();\r\n today = new Date();\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData!: any;\r\n\r\n typesListAll = [\r\n { name: this.translate.instant('content4.Upcoming & Ongoing'), id: announcementType.UpcomingAndOngoing },\r\n { name: this.translate.instant(\"content4.Past\"), id: announcementType.Past }\r\n ];\r\n\r\n recordsData!: ListData | null;\r\n\r\n subscriptions: Subscription[] = []\r\n\r\n\r\n constructor(private translate: TranslateService,\r\n private restaurantService: RestaurantService,\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private service: AnnouncementService,\r\n private route: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.filterModel.pageSize = this.pageSize;\r\n this.filterModel.announcementStuts = announcementType.UpcomingAndOngoing;\r\n // this.getAll(null)\r\n this.buildFilterForm()\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getAll(null);\r\n }\r\n })\r\n )\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n buildFilterForm() {\r\n this.filterFormGroup = this.formBuilder.group({\r\n dateFrom: [null],\r\n dateTo: [null],\r\n timeTo: [null],\r\n timeFrom: [null],\r\n companionsNumber: [null]\r\n });\r\n }\r\n\r\n getAll(event: any, restId?: any) {\r\n this.dataLoading = true;\r\n this.restaurantId = restId;\r\n if (!event) {\r\n this.pageIndex = 0;\r\n }\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n this.filterModel.pageNumber = this.pageIndex;\r\n this.filterModel.restaurantID = this.restaurantId\r\n this.service.getAll(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n\r\n\r\n }\r\n\r\n typeFilter(selected: any) {\r\n const selectedType = this.typesListAll.find(element => element.id === selected.value);\r\n if (selectedType) {\r\n this.typeValue = selectedType;\r\n }\r\n this.makeFilter();\r\n }\r\n\r\n makeFilter() {\r\n const controls = this.filterFormGroup.controls;\r\n this.filterModel.dateFrom = controls['dateFrom'].value;\r\n this.filterModel.dateTo = controls['dateTo'].value;\r\n this.filterModel.timeTo = controls['timeTo'].value;\r\n this.filterModel.timeFrom = controls['timeFrom'].value;\r\n this.filterModel.companionsNumber = controls['companionsNumber'].value;\r\n\r\n if (controls['timeTo'].value) {\r\n this.filterModel.dateTo = controls['timeTo'].value;\r\n }\r\n if (controls['timeFrom'].value) {\r\n this.filterModel.dateTo = controls['timeFrom'].value;\r\n }\r\n this.getAll(null, this.restaurantId);\r\n }\r\n clearFilter() {\r\n this.filterModel = new ListFilter();\r\n this.filterModel.pageSize = this.pageSize\r\n this.getAll(null, this.restaurantId);\r\n this.filterModel.announcementStuts = announcementType.UpcomingAndOngoing;\r\n this.filterFormGroup.reset();\r\n }\r\n\r\n makeSearch() {\r\n if (!this.showSearch) {\r\n this.showSearch = true; // Show input\r\n } else {\r\n if (this.filterModel.searchText) {\r\n this.getAll(null, this.restaurantId);\r\n }\r\n }\r\n }\r\n\r\n resetSearch() {\r\n this.filterModel.searchText = '';\r\n this.getAll(null, this.restaurantId);\r\n }\r\n\r\n ////////////////////////////////////////////\r\n\r\n deleteRecord(recordId: string) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n // this.service.delete(recordId).subscribe(\r\n // (data: any) => {\r\n // if (data) {\r\n // Swal.fire({\r\n // title: this.translate.instant('swalMsg.Success'),\r\n // text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n // icon: 'success',\r\n // confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n // });\r\n // this.getAll(null);\r\n // }\r\n // },\r\n // (error: any) => {\r\n // this.dataLoading = false;\r\n // Swal.fire({\r\n // title: this.translate.instant('swalMsg.Failed'),\r\n // text: error.detail,\r\n // icon: 'error',\r\n // confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n // });\r\n // });\r\n }\r\n });\r\n }\r\n \r\n\r\n GetScreenData() {\r\n this.recordsData = null;\r\n this.getAll(null, this.restaurantId);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n {{status.name}}\r\n \r\n {{recordsData.totalCountOngoing}}\r\n {{recordsData.totalCountPast}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{recordsData?.totalCount}}\r\n \r\n {{ 'content4.Active Announcements' | translate }}\r\n \r\n \r\n {{ 'content4.Past Announcements' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n clear\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n

{{\"general.Filter by\" | translate}}

\r\n
\r\n
\r\n \r\n {{\"forms.Date From\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Date To\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ 'forms.Time From' | translate }}\r\n \r\n
\r\n clear\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ 'forms.Time To' | translate }}\r\n \r\n
\r\n clear\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ 'content4.Companies Number' | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{'content.Name' | translate}}{{'content4.Invited (May Come)' | translate}}{{'forms.Date' | translate}}{{'orders.Time' | translate}}{{'content4.Branch' | translate}}\r\n
\r\n
\r\n
\r\n {{ item.nameAnnouncement | shortName }}\r\n \r\n
\r\n
\r\n
\r\n {{item.nameAnnouncement}}
\r\n
\r\n
\r\n
{{item.typeAnnouncement}}{{item.dateAnnouncement | date:'d MMM, y'}}\r\n {{item.timeAnnouncementFrom}}\r\n {{ 'content2.to' | translate }}\r\n {{item.timeAnnouncementTo}}\r\n \r\n {{item.branchName}}
\r\n
\r\n\r\n
1 || recordsData['totalCount'] > pageSize)\">\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport lgVideo from 'lightgallery/plugins/video';\r\nimport { Subscription } from 'rxjs';\r\nimport { GalleryData, GalleryFile } from 'src/app/features/restaurants/models/Gallery';\r\nimport { GalleryService } from 'src/app/features/restaurants/services/Gallary.service';\r\nimport { StaffService } from 'src/app/features/staff/services/Staff.service';\r\nimport { UsersActions } from 'src/app/features/staff/UsersActions';\r\nimport { Record } from '../../models/List.GuestReviews';\r\nimport { ReviewService } from '../../services/Reviews.service';\r\nimport { ReportReviewFormComponent } from '../report-review-form/report-review-form.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-guest-review-details',\r\n templateUrl: './guest-review-details.component.html'\r\n})\r\nexport class GuestReviewDetailsComponent implements OnInit {\r\n @Input() restaurantId!: any;\r\n @Input() selectedReviewId!: string;\r\n review!: Record;// reviewDetails;\r\n dataLoading = false;\r\n showHistory = false;\r\n @Output() close = new EventEmitter();\r\n\r\n // image file\r\n avatar: any;\r\n avatarSrc!: string;\r\n maxFileSize = 0.8;\r\n fileTypeError = false;\r\n fileSizeError = false;\r\n\r\n Readmore = false;\r\n\r\n rate = 3\r\n\r\n settings = {\r\n counter: true,\r\n plugins: [lgVideo],\r\n selector: '.view-btn',\r\n // videojs: true,\r\n // videojsOptions: {\r\n // muted: true,\r\n // },\r\n // source: [\r\n // {\r\n // src: '/videos/video1.mp4',\r\n // type: 'video/mp4',\r\n // }\r\n // ],\r\n // tracks: [\r\n // {\r\n // src: '/videos/title.txt',\r\n // kind: 'captions'\r\n // }\r\n // ],\r\n // attributes: { preload: false, controls: true },\r\n };\r\n\r\n galleryData!: GalleryData;\r\n subscriptions: Subscription[] = []\r\n selectedReservationId!: any;\r\n\r\n constructor(\r\n translate: TranslateService,\r\n public dialog: MatDialog,\r\n private service: ReviewService\r\n ) {\r\n // super(service, translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getDetails();\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getDetails();\r\n }\r\n })\r\n )\r\n this.subscriptions.push(\r\n this.service.closeDetails.subscribe(data => {\r\n if (data) {\r\n this.close.emit();\r\n this.service.closeDetails.next(false);\r\n }\r\n })\r\n )\r\n }\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.service.closeDetails.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n openReportForm() {\r\n const dialogRef = this.dialog.open(ReportReviewFormComponent, {\r\n width: '50rem',\r\n data: { reviewId: this.selectedReviewId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.service.refreshList.next(true);\r\n }\r\n });\r\n }\r\n\r\n getDetails() {\r\n this.dataLoading = true;\r\n if (this.selectedReviewId) {\r\n this.service.GetDetails(this.selectedReviewId, this.restaurantId).subscribe(\r\n (data: any) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.review = data as Record;\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n });\r\n }\r\n }\r\n\r\n videoType(item: GalleryFile) {\r\n return JSON.stringify({\r\n \"source\": [\r\n {\r\n \"src\": item.filePath,\r\n \"type\": item.type.toLowerCase() + '/' + item.extension\r\n }\r\n ],\r\n \"attributes\": {\r\n \"preload\": false,\r\n \"playsinline\": true,\r\n \"controls\": true\r\n }\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'content4.Review Details' | translate}}
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ review.reviewName | shortName }}\r\n
\r\n
\r\n

{{review.reviewName}}

\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
{{'reviews.Reported' | translate}}
\r\n
{{'reviews.Resolved' | translate}}
\r\n
\r\n
\r\n\r\n
\r\n

{{'content4.Posted anonymously' | translate}}

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

{{'content4.Posted on' | translate}}

\r\n

\r\n {{review.reviewDate | date:'d MMMM, y'}} {{'content4.at' | translate }} {{review.reviewDate | date:'shortTime'}}\r\n

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

{{'reviews.Reported by' | translate}}

\r\n
\r\n
\r\n {{ review.reviewReport.reportedbyName | shortName }}\r\n \r\n
\r\n
\r\n

{{review.reviewReport.reportedbyName}}

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

{{'reviews.Reported on' | translate}}

\r\n

\r\n \r\n {{review.reviewReport.reportDate | date:'d MMMM, y'}} {{'content4.at' | translate }} {{review.reviewReport.reportDate | date:'shortTime'}}\r\n

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

{{'reviews.Report Review Details' | translate}}

\r\n

{{review.reviewReport.reportReasones}}

\r\n

{{review.reviewReport.reportComment}}

\r\n
\r\n \r\n
\r\n\r\n
\r\n
{{'reviews.Resolution' | translate}}
\r\n
\r\n\r\n
\r\n

{{'reviews.Resolved by' | translate}}

\r\n
\r\n
\r\n {{ review.reportDecision[0].resolvedbyName | shortName }}\r\n \r\n
\r\n
\r\n

{{review.reportDecision[0].resolvedbyName}}

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

{{'reviews.Resolution' | translate}}

\r\n

{{review.reportDecision[0].resolution}}

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

{{'reviews.Resolved on' | translate}}

\r\n

\r\n \r\n {{review.reportDecision[0].resolvedDate | date:'d MMMM, y'}} {{'content4.at' | translate }} {{review.reportDecision[0].resolvedDate | date:'shortTime'}}\r\n

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

{{'forms.Notes' | translate}}

\r\n

{{review.reportDecision[0].resolutionComment}}

\r\n
\r\n\r\n\r\n
1\">\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

{{'reviews.Resolved by' | translate}}

\r\n
\r\n
\r\n {{ decision.resolvedbyName | shortName }}\r\n \r\n
\r\n
\r\n

{{decision.resolvedbyName}}

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

{{'reviews.Resolution' | translate}}

\r\n

{{decision.resolution}}

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

{{'reviews.Resolved on' | translate}}

\r\n

\r\n \r\n {{decision.resolvedDate | date:'d MMM, y'}} {{'guests.at' | translate }} {{decision.resolvedDate | date:'shortTime'}}\r\n

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

{{'forms.Notes' | translate}}

\r\n

{{decision.resolutionComment}}

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n {{'reservations.Reservation' | translate}} #:\r\n {{ review.reservationNumber }}\r\n \r\n \r\n {{'general.View' | translate}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {{'content4.Overall rating of the restaurant' | translate}}\r\n\r\n
\r\n \r\n \"\"\r\n \r\n {{review.reviewRate}}\r\n \r\n \r\n {{ 'reviews.skipped' | translate }}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n

{{'stockManagement.Ordered Items' | translate}}

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n {{ order.orderItemName | shortName }}\r\n \r\n
\r\n {{order.orderItemName}}\r\n \"\"\r\n {{order.orderItemRate}}\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n

{{'content3.Amenities' | translate}}

\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n {{ amenity.amenitiesName | shortName }}\r\n \r\n \r\n
\r\n {{amenity.amenitiesName}}\r\n \r\n \"\"\r\n {{amenity.amenitiesRate}}\r\n \r\n \r\n

{{ 'reviews.skipped' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {{amenity.amenitiesName}}\r\n \r\n \r\n \r\n 0 , 'line' : fill == 0}\">\r\n 0}\">\r\n \r\n \r\n \r\n {{amenity.amenitiesRate}}\r\n \r\n \r\n

{{ 'reviews.skipped' | translate }}

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

{{review.reviewComment}}

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\nimport { ListData, ListFilter, ReviewsList, TotalReviews, rateType, reviewRate } from '../models/List.GuestReviews';\r\nimport { ReviewService } from '../services/Reviews.service';\r\nimport { ReportReviewFormComponent } from './report-review-form/report-review-form.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-guests-reviews',\r\n templateUrl: './guests-reviews.component.html'\r\n})\r\nexport class GuestsReviewsComponent implements OnInit {\r\n dataLoading = true;\r\n topDataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n pageSize = 10;\r\n typeValue!: any;\r\n\r\n filterFormGroup: FormGroup = new FormGroup({});\r\n filterModel: ListFilter = new ListFilter();\r\n today = new Date();\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData!: any;\r\n\r\n recordsData!: ListData | null;\r\n topRates!: ListData | null;\r\n selectedReviewId!: any;\r\n\r\n typesListAll = [\r\n { name: this.translate.instant('reviews.All'), id: reviewRate.All },\r\n { name: 5, id: reviewRate.Five },\r\n { name: 4, id: reviewRate.Four },\r\n { name: 3, id: reviewRate.Three },\r\n { name: 2, id: reviewRate.Two },\r\n { name: 1, id: reviewRate.one },\r\n ];\r\n\r\n rateType = rateType;\r\n starRating = 2.5;\r\n lineRating = 3.5\r\n\r\n subscriptions: Subscription[] = [];\r\n\r\n dataBinded = false;\r\n totalReviews!: TotalReviews | null;\r\n listData!: ReviewsList | null;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private service: ReviewService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private restaurantService: RestaurantService,\r\n private activatedRoute: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.filterModel.pageSize = this.pageSize;\r\n this.filterModel.rates = reviewRate.All\r\n this.buildFilterForm()\r\n\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n if (this.recordsData && this.recordsData.listReviews.length > 1) {\r\n this.getAll(true, this.restaurantId);\r\n } else {\r\n this.getAll(null, this.restaurantId);\r\n }\r\n }\r\n })\r\n )\r\n this.service.openReviewDetailsID.subscribe(data => {\r\n this.selectedReviewId = null;\r\n if (data) {\r\n this.selectedReviewId = data;\r\n }\r\n });\r\n this.activatedRoute.queryParamMap.subscribe(params => {\r\n // Notification\r\n if (params.get('reviewsId') && params.get('restaurantId')) {\r\n this.selectedReviewId = Number(params.get('reviewsId'));\r\n this.restaurantId = Number(params.get('restaurantId'));\r\n this.getAll(null, this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n buildFilterForm() {\r\n this.filterFormGroup = this.formBuilder.group({\r\n dateFrom: [''],\r\n dateTo: ['']\r\n });\r\n }\r\n\r\n getTopReviews(restId?: any) {\r\n this.topDataLoading = true;\r\n this.restaurantId = restId;\r\n this.service.getTotalServiceReviews(this.restaurantId).subscribe((data: any) => {\r\n this.topDataLoading = false;\r\n if (data) {\r\n this.topRates = data;\r\n console.log(this.topRates)\r\n }\r\n })\r\n }\r\n\r\n getAll(event: any, restId?: any) {\r\n this.dataLoading = true;\r\n this.restaurantId = restId;\r\n if (!event) {\r\n this.pageIndex = 0;\r\n }\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n this.filterModel.pageNumber = this.pageIndex;\r\n this.filterModel.resturantID = this.restaurantId\r\n this.service.getAllReviews(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.listData = {\r\n pageIndex: data.pageIndex,\r\n pageSize: data.pageSize,\r\n totalCount: data.totalCount,\r\n listReviews: data.listReviews\r\n }\r\n this.pageCount = Math.ceil(this.listData.totalCount / this.filterModel.pageSize);\r\n // if (!this.dataBinded) {\r\n // this.totalReviews = {\r\n // totalRateReview: data.totalRateReview,\r\n // totalReviewsCount: data.totalCount,\r\n // servicesReviewsTotal: data.servicesReviewsTotal\r\n // }\r\n // }\r\n // this.dataBinded = true;\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.listData = null;\r\n // this.totalReviews = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n typeFilter(selected: any) {\r\n const selectedType = this.typesListAll.find(element => element.id === selected.value);\r\n if (selectedType) {\r\n this.typeValue = selectedType;\r\n }\r\n this.makeFilter();\r\n }\r\n\r\n makeFilter() {\r\n const controls = this.filterFormGroup.controls;\r\n this.filterModel.dateFrom = controls['dateFrom'].value;\r\n this.filterModel.dateTo = controls['dateTo'].value;\r\n // this.filterModel.rates = controls['companionsNumber'].value;\r\n\r\n this.getAll(null, this.restaurantId);\r\n }\r\n clearFilter() {\r\n this.filterModel = new ListFilter();\r\n this.filterModel.pageSize = this.pageSize\r\n this.getAll(null, this.restaurantId);\r\n this.filterModel.rates = reviewRate.All;\r\n this.filterFormGroup.reset();\r\n }\r\n\r\n\r\n makeSearch() {\r\n if (!this.showSearch) {\r\n this.showSearch = true; // Show input\r\n } else {\r\n if (this.filterModel.searchText) {\r\n this.getAll(null, this.restaurantId);\r\n }\r\n }\r\n }\r\n\r\n resetSearch() {\r\n this.filterModel.searchText = '';\r\n this.getAll(null, this.restaurantId);\r\n }\r\n\r\n openReportForm(reviewId: number) {\r\n const dialogRef = this.dialog.open(ReportReviewFormComponent, {\r\n width: '50rem',\r\n data: { reviewId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.service.refreshList.next(true);\r\n }\r\n });\r\n }\r\n\r\n closeDetails() {\r\n this.selectedReviewId = null;\r\n this.router.navigate([location.pathname]);\r\n }\r\n\r\n GetScreenData() {\r\n this.recordsData = null;\r\n this.getAll(null, this.restaurantId);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n this.getTopReviews(this.restaurantId)\r\n }\r\n}\r\n","\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{topRates.totalRateReview}}

\r\n \r\n \r\n 0 , 'fa-star' : fill == 0}\">\r\n 0}\">\r\n \r\n \r\n \r\n

({{topRates.totalReviewsCount}} {{ 'restaurant.Reviews' | translate }})

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

{{rateReview.serviceNameTotal}}

\r\n \r\n \r\n 0 , 'fa-star' : fill == 0}\">\r\n 0}\">\r\n \r\n \r\n \r\n
\r\n \r\n

{{rateReview.serviceNameTotal}}

\r\n \r\n \r\n 0 , 'line' : fill == 0}\">\r\n 0}\">\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n {{listData?.listReviews?.length}} {{ 'restaurant.Reviews' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {{status.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n clear\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n

{{\"general.Filter by\" | translate}}

\r\n
\r\n
\r\n \r\n {{\"forms.Date From\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Date To\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{'content4.Reviewer' | translate}}{{'restaurant.Rate' | translate}}{{'content4.Review' | translate}}{{'content4.Date & Time' | translate}}
\r\n
\r\n
\r\n \r\n {{ item.name | shortName }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{item.name}}\r\n \r\n {{ 'reviews.Anonymous User' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n {{item.reviewRate}}\r\n \r\n \r\n \r\n 0\" class=\"fa fa-star filled\" [style.width.%]=\"fill\">\r\n \r\n \r\n \r\n \r\n {{ 'reviews.skipped' | translate }}\r\n {{item.reviewComment}}\r\n {{item.reviewDateTime | date:'d MMMM, y'}} {{'content4.at' | translate }} {{item.reviewDateTime | date:'shortTime'}}\r\n \r\n
\r\n
\r\n
{{'reviews.Reported' | translate}}
\r\n
{{'reviews.Resolved' | translate}}
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n remove_red_eye\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
1 || listData['totalCount'] > pageSize)\">\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\nimport { ReviewService } from '../../services/Reviews.service';\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\nimport Swal from 'sweetalert2';\nimport { Lookup } from 'src/app/models/Lookup';\nimport { LookupsService } from 'src/app/services/lookups.service';\n\nexport interface DialogData {\n reviewId: number\n}\n@Component({\n selector: 'app-report-review-form',\n templateUrl: './report-review-form.component.html'\n})\nexport class ReportReviewFormComponent extends DirtyComponent implements OnInit {\n override formGroup!: FormGroup;\n loading = false;\n reasonsLoading = false;\n\n reasons: Lookup[] = [];\n\n constructor(\n override dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n private formBuilder: FormBuilder,\n private service: ReviewService,\n private lookupService: LookupsService,\n translate: TranslateService\n ) { super(translate); }\n\n ngOnInit(): void {\n this.buildForm();\n this.getReasons();\n }\n\n getReasons() {\n this.reasonsLoading = true;\n this.lookupService.GetReportFeedBackReasons()\n .subscribe(\n (data: any) => {\n this.reasonsLoading = false;\n this.reasons = data as [];\n }, (err: any) => {\n console.error(err);\n });\n }\n\n buildForm() {\n this.formGroup = this.formBuilder.group({\n reasoneId: [null, Validators.required],\n notes: [null, [\n Validators.maxLength(300)\n ]],\n });\n }\n\n hasError(controlName: string, errorName: string) {\n return this.formGroup.controls[controlName].hasError(errorName);\n }\n\n saveRecord() {\n if (this.formGroup.valid) {\n this.loading = true;\n let data = {\n reviewId: this.data.reviewId,\n reasoneId: this.formGroup.controls['reasoneId'].value,\n notes: this.formGroup.controls['notes'].value\n };\n\n this.service.ResSendReport(data).subscribe(() => {\n this.loading = false;\n Swal.fire({\n title: this.translate.instant('swalMsg.Success'),\n text: this.translate.instant('swalMsg.savedsuccessfully'),\n icon: 'success',\n confirmButtonText: this.translate.instant('swalMsg.Ok')\n });\n this.dialogRef.close(true);\n }, error => {\n this.loading = false;\n Swal.fire({\n title: this.translate.instant('swalMsg.Failed'),\n text: error.detail,\n icon: 'error',\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\n });\n });\n }\n }\n}\n","
\r\n

{{\"reviews.Report review content\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"wastedFood.Reason\" | translate}}\r\n \r\n \r\n {{option.name}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n\r\n \r\n {{\"forms.Notes\" | translate}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: {\r\n canDelete: boolean\r\n canEdit: boolean\r\n canEditStatus: boolean\r\n id: string\r\n title: string\r\n icon: string\r\n branches: branch[]\r\n end: string\r\n start: string\r\n timeStart: string\r\n timeEnd: string\r\n reservationsCount: number\r\n }[];\r\n}\r\n\r\nexport class Record {\r\n id!: any\r\n restaurantID!: any\r\n icon!: string\r\n isSeveralDays!: boolean;\r\n branches!: branch[]\r\n endDate!: date\r\n startDate!: date\r\n startTime!: string\r\n endTime!: string\r\n title_EN!: string\r\n title_AR!: string\r\n reservationTimeSlotFrom!: date\r\n reservationTimeSlotTo!: date\r\n slots!: slot[]\r\n note!: string\r\n eventSlots!: []\r\n}\r\n\r\nexport class slot {\r\n id!: number\r\n timefrom!: string\r\n isActive!: boolean\r\n value!: string\r\n}\r\n\r\nexport class date {\r\n day!: number;\r\n month!: number;\r\n year!: number;\r\n isHijri!: boolean;\r\n gregorianDate!: string;\r\n gregorian!: date;\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n status!: number\r\n}\r\n\r\nexport class branch {\r\n id!: number\r\n title!: string\r\n}\r\n\r\nexport enum eventType {\r\n UpcomingAndOngoing = 1,\r\n Past = 0\r\n}\r\n","export class ListData {\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n totalCountPast!: number;\r\n totalCountOngoing!: number;\r\n userType!: string;\r\n pageData!: {\r\n announcementId: number,\r\n iconAnnouncement: string,\r\n nameAnnouncement: string,\r\n typeAnnouncement: string,\r\n dateAnnouncement: string,\r\n timeAnnouncementFrom: string,\r\n timeAnnouncementTo: string,\r\n branchName: string,\r\n howCreatedAnnouncement: number\r\n restaurant: Restaurant\r\n reservation: Reservation\r\n }[];\r\n}\r\nexport class Restaurant {\r\n icon!: string;\r\n id!: number;\r\n nameAr!: string;\r\n nameEn!: string;\r\n}\r\n\r\nexport class Reservation {\r\n id!: number;\r\n partySize!: number\r\n tableName!: string\r\n reservationNumber!: number\r\n}\r\nexport class Record {\r\n announcementId!: number;\r\n iconAnnouncement!: string;\r\n nameAnnouncement!: string;\r\n typeAnnouncement!: string;\r\n dateAnnouncement!: string;\r\n timeAnnouncementFrom!: string;\r\n timeAnnouncementTo!: string;\r\n branchName!: string;\r\n howCreatedAnnouncement!: number;\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n searchText!: string;\r\n announcementStuts!: number\r\n dateTo!: Date;\r\n dateFrom!: Date;\r\n timeTo!: Date;\r\n timeFrom!: Date;\r\n companionsNumber!: number;\r\n restaurantID!: number;\r\n}\r\n\r\nexport enum announcementType {\r\n UpcomingAndOngoing = 1,\r\n Past = 0\r\n}\r\n","export class ListData {\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n listReviews!: {\r\n reviewId: number,\r\n icon: string,\r\n name: string,\r\n reviewRate: number,\r\n reviewComment: string,\r\n reviewDateTime: string,\r\n canReport: boolean,\r\n reportStatus: ReportStatusEnum,\r\n reservationID: number\r\n isPostedanonymously: boolean\r\n }[];\r\n servicesReviewsTotal!: servicesReviews[];\r\n totalRateReview!: number;\r\n totalReviewsCount!: number;\r\n}\r\nexport enum ReportStatusEnum {\r\n Reported = 'Reported',\r\n NotReported = 'NotReported',\r\n Resolved = 'Resolved'\r\n}\r\n\r\nexport class TotalReviews {\r\n servicesReviewsTotal!: servicesReviews[];\r\n totalRateReview!: number;\r\n totalReviewsCount!: number;\r\n}\r\nexport class ReviewsList {\r\n pageIndex!: number;\r\n pageSize!: number;\r\n totalCount!: number;\r\n listReviews!: {\r\n reviewId: number,\r\n icon: string,\r\n name: string,\r\n reviewRate: number,\r\n reviewComment: string,\r\n reviewDateTime: string,\r\n canReport: boolean,\r\n reportStatus: ReportStatusEnum,\r\n reservationID: number\r\n isPostedanonymously: boolean\r\n }[];\r\n}\r\n\r\nexport class Record {\r\n reviewId!: number;\r\n reviewName!: string;\r\n reviewIcon!: string;\r\n reviewDate!: string;\r\n reviewRate!: number;\r\n reviewComment!: string;\r\n userType!: string;\r\n reservationNumber!: string;\r\n reservationID!: number;\r\n reservationId!: number;\r\n reviewPhotos!: string;\r\n brancheName!: string;\r\n reviewVideos!: [];\r\n orderedItems!: order[];\r\n amenities!: amenity[];\r\n canReport!: boolean;\r\n reportStatus!: ReportStatusEnum;\r\n isPostedanonymously!: boolean;\r\n reportDecision!: {\r\n decisionType: DecisionEnum\r\n resolution: string\r\n resolutionComment: string\r\n resolvedDate: string\r\n resolvedbyIcon: string\r\n resolvedbyName: string\r\n }[];\r\n reviewReport!: {\r\n reportComment: string\r\n reportDate: string\r\n reportNumber: string\r\n reportReasones: string\r\n reportedbyIcon: string\r\n reportedbyName: string\r\n };\r\n}\r\nexport enum DecisionEnum {\r\n Hide = 'Hide',\r\n Keep = 'Keep'\r\n}\r\n\r\nexport class amenity {\r\n amenitiesIcon!: string;\r\n amenitiesName!: string;\r\n amenitiesRate!: number;\r\n amenitiesRateType!: string;\r\n}\r\n\r\nexport class order {\r\n orederItemIcon!: string;\r\n orderItemName!: string;\r\n orderItemRate!: number;\r\n orderItemRateType!: string;\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n searchText!: string;\r\n reviewID!: number\r\n dateTo!: Date;\r\n dateFrom!: Date;\r\n rates!: number;\r\n resturantID!: number;\r\n}\r\n\r\nexport class servicesReviews {\r\n serviceRateTotal!: number\r\n serviceNameTotal!: string\r\n serviceRateTypeTotal!: string\r\n}\r\nexport enum reviewRate {\r\n All = 0,\r\n one = 1,\r\n Two = 2,\r\n Three = 3,\r\n Four = 4,\r\n Five = 5\r\n}\r\n\r\n\r\nexport enum rateType {\r\n StarRating = 1,\r\n DashRating = 2,\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List.GuestAnnouncement';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnnouncementService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResAnnouncement/ResListAnnouncement`, filter);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List.Event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResEvent/ResGetAllEvents`, filter);\r\n }\r\n GetDetails(id: string) {\r\n return this.http.get(`${environment.apiUrl}/ResEvent/ResGetEventById?id=${id}`);\r\n }\r\n delete(id: string) {\r\n return this.http.get(`${environment.apiUrl}/ResEvent/ResDeleteEvent?id=${id}`);\r\n }\r\n saveRecord(data: any, photo: any) {\r\n const formData = new FormData();\r\n if (photo && photo.name) {\r\n formData.append('icon', photo, photo.name);\r\n }\r\n formData.append('data', JSON.stringify(data));\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/ResEvent/ResEditEvent`, formData);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResEvent/ResNewEvent`, formData);\r\n }\r\n }\r\n getEventSlots(start: string, end: string) {\r\n return this.http.get(`${environment.apiUrl}/ResEvent/ResGetEventSlots?start=${start}&end=${end}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List.GuestReviews';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReviewService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n closeDetails = new BehaviorSubject(false);\r\n openReviewDetailsID = new BehaviorSubject(null);\r\n constructor(private http: HttpClient) { }\r\n\r\n getAllReviews(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResReview/ListReviews`, filter);\r\n }\r\n // For Top Rates\r\n getTotalServiceReviews(restaurantId: any) {\r\n return this.http.get(`${environment.apiUrl}/ResReview/ResGetTotalServiceReviews?ResturantID=${restaurantId}`);\r\n }\r\n GetDetails(id: string, restaurantId: string): any {\r\n return this.http.post(`${environment.apiUrl}/ResReview/ReviewByID?ReviewsId=${id}&RestaurantId=${restaurantId}`, null);\r\n }\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResReview/ResFilterReview`, filter);\r\n }\r\n ResSendReport(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReview/ResSendReport`, data);\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FloorsService } from 'src/app/features/restaurants/services/Floors.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { Record } from 'src/app/features/restaurants/models/Floors';\r\n\r\nexport interface DialogData {\r\n record: Record,\r\n restaurantId: number,\r\n stopUpdate: boolean\r\n}\r\n@Component({\r\n selector: 'app-floor-form',\r\n templateUrl: './floor-form.component.html'\r\n})\r\nexport class FloorFormComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n\r\n constructor(\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private formBuilder: FormBuilder,\r\n translate: TranslateService,\r\n private service: FloorsService,\r\n public router: Router\r\n ) { super(translate) }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.enTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.arTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n restaurantsId: [this.data.restaurantId]\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n title_EN: this.data.record.title_EN,\r\n title_AR: this.data.record.title_AR,\r\n restaurantsId: this.data.restaurantId\r\n });\r\n }\r\n\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n id: '',\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n restaurantsId: this.data.restaurantId,\r\n };\r\n\r\n if (this.data.stopUpdate) {\r\n this.loading = false;\r\n this.dialogRef.close(data);\r\n return;\r\n }\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.record.id;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.saveRecord(data).subscribe((response: any) => {\r\n this.loading = false;\r\n this.dialogRef.close(true);\r\n if (!this.isUpdate) {\r\n Swal.fire({\r\n title: this.translate.instant('planner.The floor created successfully'),\r\n imageUrl: './assets/images/Waiters-amico.svg',\r\n showCancelButton: false,\r\n confirmButtonText: this.translate.instant('swalMsg.I got it'),\r\n })\r\n this.router.navigate(['/admin/floorPlan'], { queryParams: { id: response.id } });\r\n }\r\n else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n imageUrl: './assets/images/Waiters-amico.svg',\r\n showCancelButton: false,\r\n })\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n

{{\"content2.\" + (isUpdate ? 'Update' : 'Add New') + \" Floor\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"forms.Name in English\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n\r\n \r\n {{\"forms.Name in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ListData, ListFilter, sortList } from 'src/app/features/restaurants/models/Floors';\r\nimport { RestaurantDetails } from 'src/app/features/restaurants/models/List.Restaurant';\r\nimport { FloorsService } from 'src/app/features/restaurants/services/Floors.service';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport Swal from 'sweetalert2';\r\nimport { FloorFormComponent } from './floor-form/floor-form.component';\r\n\r\n@Component({\r\n selector: 'app-floors-management',\r\n templateUrl: './floors-management.component.html'\r\n})\r\nexport class FloorsManagementComponent implements OnInit {\r\n\r\n dataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n pageSize = 10;\r\n recordsData!: ListData | null;\r\n filterModel: ListFilter = new ListFilter();\r\n\r\n filterFormGroup: FormGroup = new FormGroup({});\r\n today = new Date();\r\n\r\n sortItemSelected!: sortList;\r\n sortItems = [\r\n { name: this.translate.instant('content.Name'), value: sortList.Name },\r\n { name: this.translate.instant('forms.Recently added'), value: sortList.NewestCreate },\r\n { name: this.translate.instant('content.Oldest added'), value: sortList.OldestCreate },\r\n { name: this.translate.instant('content3.Highest used'), value: sortList.HighestUse },\r\n { name: this.translate.instant('content3.Lowest used'), value: sortList.LowestUse },\r\n { name: this.translate.instant('content3.Highest Amount'), value: sortList.Highest_Amount },\r\n { name: this.translate.instant('content3.Lowest Amount'), value: sortList.Lowest_Amount },\r\n\r\n ];\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData: any;\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n public translate: TranslateService,\r\n private service: FloorsService,\r\n private formBuilder: FormBuilder,\r\n private restaurantService: RestaurantService,\r\n private router: Router\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filterModel.sortItems = sortList.NewestCreate;\r\n this.buildFilterForm()\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n buildFilterForm() {\r\n this.filterFormGroup = this.formBuilder.group({\r\n createdFrom: [null],\r\n createdTo: [null],\r\n });\r\n }\r\n\r\n getAll(event: any, restId?: any) {\r\n this.dataLoading = true;\r\n if (restId && restId != this.restaurantId) {\r\n this.restaurantId = restId;\r\n event = false;\r\n }\r\n if (!event) {\r\n this.filterModel.pageNumber = 0;\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n\r\n }\r\n this.filterModel.restaurantId = this.restaurantId;\r\n this.filterModel.pageNumber = this.pageIndex;\r\n\r\n this.service.getAll(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n changePagingParams() {\r\n const queryParams: Params = {\r\n page: this.filterModel.pageNumber,\r\n pageSize: this.filterModel.pageSize\r\n };\r\n this.router.navigate(\r\n [],\r\n {\r\n relativeTo: this.route,\r\n queryParams: queryParams,\r\n queryParamsHandling: 'merge', // remove to replace all query params by provided\r\n });\r\n }\r\n\r\n counter(i: number) { return new Array(i); }\r\n\r\n openForm(record: any | null = null) {\r\n const dialogRef = this.dialog.open(FloorFormComponent, {\r\n width: '50rem',\r\n data: { record, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll(true, this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n deleteRecord(recordId: number) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n changeStatus(status: boolean, recordId: number) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.service.activeDeactiveFloor(recordId, status).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n\r\n makeSearch() {\r\n if (!this.showSearch) {\r\n this.showSearch = true; // Show input\r\n } else {\r\n if (this.filterModel.searchText) {\r\n this.getAll(true, this.restaurantId);\r\n }\r\n }\r\n }\r\n\r\n resetSearch() {\r\n this.filterModel.searchText = '';\r\n this.getAll(true, this.restaurantId);\r\n }\r\n\r\n makeFilter() {\r\n const controls = this.filterFormGroup.controls;\r\n this.filterModel.createdFrom = controls['createdFrom'].value;\r\n this.filterModel.createdTo = controls['createdTo'].value;\r\n\r\n this.getAll(true, this.restaurantId);\r\n }\r\n\r\n clearFilter() {\r\n this.filterModel = new ListFilter();\r\n this.filterModel.sortItems = sortList.NewestCreate;\r\n this.filterModel.pageSize = this.pageSize;\r\n this.getAll(true, this.restaurantId);\r\n this.filterFormGroup.reset();\r\n }\r\n\r\n ////////////////////////////////////////////\r\n\r\n GetScreenData() {\r\n this.getAll(null, this.restaurantId)\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n {{recordsData?.totalCount}}\r\n {{'content2.Floors' | translate}}\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{'content2.Floor Name' | translate}}{{'content2.Number of Tables' | translate}}{{'content2.Total Covers (Seats)' | translate}}{{'content2.Available Table Online' | translate}}{{'content4.Covers Online' | translate}}
{{item.name}}\r\n {{item.numberOfTable}}{{item.totalCovers}}{{item.availableTableOnline}}{{item.coversOnline}}\r\n
\r\n\r\n \r\n \r\n\r\n \r\n remove_red_eye\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
1 || recordsData['totalCount'] > pageSize)\">\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Record, printType } from 'src/app/features/restaurants/models/List.Kitchen';\r\nimport { KitchenService } from 'src/app/features/restaurants/services/Kitchen.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n record: Record,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-kitchen-form',\r\n templateUrl: './kitchen-form.component.html'\r\n})\r\nexport class KitchenFormComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n\r\n printType = [\r\n { name: this.translate.instant('profile.Wifi'), id: printType.Wifi },\r\n { name: this.translate.instant('profile.Bluetooth'), id: printType.Bluetooth },\r\n ];\r\n\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: KitchenService) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(20),\r\n // Validators.pattern(Patterns.enTxt),\r\n Validators.required\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(20),\r\n // Validators.pattern(Patterns.arTxt),\r\n Validators.required\r\n ]],\r\n restaurantsId: [this.data.restaurantId],\r\n hasKDS: [],\r\n // printDeviceType: [],\r\n // devicePath: [],\r\n // devicePort: [[Validators.pattern(Patterns.number)]]\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n title_EN: this.data.record.title_EN,\r\n title_AR: this.data.record.title_AR,\r\n restaurantsId: this.data.restaurantId,\r\n hasKDS: this.data.record.hasKDS,\r\n // printDeviceType: this.data.record.printDeviceType,\r\n // devicePath: this.data.record.devicePath,\r\n // devicePort: this.data.record.devicePort\r\n });\r\n }\r\n\r\n onChangeprintDeviceType() {\r\n this.formGroup.controls['devicePath'].setValue('');\r\n this.formGroup.controls['devicePort'].setValue('');\r\n this.formGroup.controls['devicePath'].markAsPristine();\r\n this.formGroup.controls['devicePath'].markAsUntouched();\r\n this.formGroup.controls['devicePort'].markAsPristine();\r\n this.formGroup.controls['devicePort'].markAsUntouched();\r\n }\r\n\r\n\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data: any;\r\n data = {\r\n\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n restaurantsId: this.data.restaurantId,\r\n hasKDS: this.formGroup.controls['hasKDS'].value ? true : false,\r\n // printDeviceType: this.formGroup.controls['printDeviceType'].value || '',\r\n // devicePath: this.formGroup.controls['devicePath'].value || '',\r\n // devicePort: this.formGroup.controls['devicePort'].value ? Number(this.formGroup.controls['devicePort'].value) : ''\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.record.id;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.saveRecord(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n this.service.refreshList.next(true);\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

{{\"restaurant.Kitchen Information\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{\"restaurant.Kitchen Name\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"restaurant.Kitchen Name In Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{\"restaurant.This Kitchen has KDS (Kitchens items need a process to be served to the guest)\" | translate}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ListData, ListFilter, sortList } from 'src/app/features/restaurants/models/List.Kitchen';\r\nimport { RestaurantDetails } from 'src/app/features/restaurants/models/List.Restaurant';\r\nimport { KitchenService } from 'src/app/features/restaurants/services/Kitchen.service';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport Swal from 'sweetalert2';\r\nimport { ListComponent } from '../list/list.component';\r\nimport { KitchenFormComponent } from './kitchen-form/kitchen-form.component';\r\n\r\n@Component({\r\n selector: 'app-kitchen-management',\r\n templateUrl: './kitchen-management.component.html'\r\n})\r\nexport class KitchenManagementComponent implements OnInit {\r\n\r\n dataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n pageSize = 10;\r\n recordsData!: ListData | null;\r\n filterModel: ListFilter = new ListFilter();\r\n\r\n filterFormGroup: FormGroup = new FormGroup({});\r\n today = new Date();\r\n\r\n sortItemSelected!: sortList;\r\n sortItems = [\r\n { name: this.translate.instant('content.Name'), value: sortList.Name },\r\n { name: this.translate.instant('forms.Recently added'), value: sortList.NewestCreate },\r\n { name: this.translate.instant('content.Oldest added'), value: sortList.OldestCreate },\r\n { name: this.translate.instant('content3.Highest used'), value: sortList.HighestUse },\r\n { name: this.translate.instant('content3.Lowest used'), value: sortList.LowestUse },\r\n // { name: this.translate.instant('content3.Highest Amount'), value: sortList.Highest_Amount },\r\n // { name: this.translate.instant('content3.Lowest Amount'), value: sortList.Lowest_Amount },\r\n\r\n ];\r\n // Restaurant ID\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData!: any;\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n constructor(private route: ActivatedRoute, public dialog: MatDialog,\r\n public translate: TranslateService, private service: KitchenService,\r\n private formBuilder: FormBuilder,\r\n private restaurantService: RestaurantService,\r\n private router: Router) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filterModel.sortItems = sortList.NewestCreate;\r\n this.filterModel.pageSize = this.pageSize;\r\n this.buildFilterForm();\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n\r\n buildFilterForm() {\r\n this.filterFormGroup = this.formBuilder.group({\r\n createdFrom: [null],\r\n createdTo: [null],\r\n });\r\n }\r\n\r\n getAll(event: any, restId?: any) {\r\n this.dataLoading = true;\r\n if (restId && restId != this.restaurantId) {\r\n this.restaurantId = restId;\r\n event = false;\r\n }\r\n if (!event) {\r\n this.filterModel.pageNumber = 0;\r\n this.filterModel.pageSize = this.pageSize;\r\n }\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n this.filterModel.restaurantId = this.restaurantId;\r\n this.filterModel.pageNumber = this.pageIndex;\r\n\r\n this.service.getAll(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n\r\n\r\n }\r\n\r\n changePagingParams() {\r\n const queryParams: Params = {\r\n page: this.filterModel.pageNumber,\r\n pageSize: this.filterModel.pageSize\r\n };\r\n this.router.navigate(\r\n [],\r\n {\r\n relativeTo: this.route,\r\n queryParams: queryParams,\r\n queryParamsHandling: 'merge', // remove to replace all query params by provided\r\n });\r\n }\r\n\r\n counter(i: number) { return new Array(i); }\r\n openKitchenForm(record: any | null = null) {\r\n const dialogRef = this.dialog.open(KitchenFormComponent, {\r\n width: '50rem',\r\n data: { record, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll(true, this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n deleteRecord(recordId: string) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n makeSearch() {\r\n if (!this.showSearch) {\r\n this.showSearch = true; // Show input\r\n } else {\r\n if (this.filterModel.searchText) {\r\n this.getAll(true, this.restaurantId);\r\n }\r\n }\r\n }\r\n\r\n resetSearch() {\r\n this.filterModel.searchText = '';\r\n this.getAll(true, this.restaurantId);\r\n }\r\n\r\n makeFilter() {\r\n const controls = this.filterFormGroup.controls;\r\n this.filterModel.createdFrom = controls['createdFrom'].value;\r\n this.filterModel.createdTo = controls['createdTo'].value;\r\n\r\n this.getAll(true, this.restaurantId);\r\n }\r\n\r\n clearFilter() {\r\n this.filterModel = new ListFilter();\r\n this.filterModel.sortItems = sortList.NewestCreate;\r\n this.filterModel.pageSize = this.pageSize;\r\n this.getAll(true, this.restaurantId);\r\n this.filterFormGroup.reset();\r\n }\r\n\r\n ////////////////////////////////////////////\r\n\r\n openList(kitchenId: any, type: any) {\r\n const dialogRef = this.dialog.open(ListComponent, {\r\n width: '50rem',\r\n data: {kitchenId: kitchenId, type: type}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll(true, this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n GetScreenData() {\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n this.getAll(null, this.restaurantId);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n {{recordsData?.totalCount}}\r\n {{'restaurant.Kitchens' | translate}}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n clear\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n

{{\"general.Filter by\" | translate}}

\r\n
\r\n
\r\n \r\n {{\"forms.Creation Date From\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Creation Date To\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'restaurant.Kitchen Name' | translate}}{{'content3.Menu Items' | translate}}{{'restaurant.Staff Members' | translate}}{{'restaurant.Responsible Chef' | translate}}
{{item.name}}\r\n \r\n {{item.menuItemCount}} {{\"forms.Items\" | translate}}\r\n keyboard_arrow_right\r\n \r\n {{'content4.N/A' | translate }}\r\n \r\n \r\n {{item.staffMemberCount}} {{\"restaurant.Members\" | translate}}\r\n keyboard_arrow_right\r\n \r\n {{'content4.N/A' | translate }}\r\n \r\n
\r\n
\r\n \r\n {{ item.responseChefName | shortName }}\r\n
\r\n
\r\n {{item.responseChefName}}\r\n
\r\n
\r\n {{'content4.N/A' | translate }}\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
1 || recordsData['totalCount'] > pageSize)\">\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { KitchenService } from '../../restaurants/services/Kitchen.service';\r\n\r\nexport interface DialogData {\r\n kitchenId: any\r\n type: any\r\n}\r\n@Component({\r\n selector: 'app-list',\r\n templateUrl: './list.component.html'\r\n})\r\n\r\n\r\nexport class ListComponent implements OnInit {\r\n dataLoading = false;\r\n items: any = []\r\n members: any = []\r\n lang = localStorage.getItem('language') || 'en';\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private kitchenService: KitchenService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.data.type == 1) {\r\n this.GetMenuitemKitchens()\r\n } else {\r\n this.getStaffsKitchens()\r\n }\r\n }\r\n\r\n GetMenuitemKitchens() {\r\n this.dataLoading = true\r\n this.kitchenService.GetMenuitemKitchens(this.data.kitchenId).subscribe((data) => {\r\n this.dataLoading = false\r\n this.items = data;\r\n })\r\n }\r\n getStaffsKitchens() {\r\n this.dataLoading = true\r\n this.kitchenService.getStaffsKitchens(this.data.kitchenId).subscribe((data) => {\r\n this.dataLoading = false\r\n this.members = data;\r\n })\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

{{\"content3.Menu Items\" | translate}}

\r\n

{{\"restaurant.Staff Members\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{\"stockManagement.Item\" | translate}}\r\n \r\n \r\n {{\"content4.Member\" | translate}}\r\n \r\n
\r\n
\r\n
\r\n {{ item.itemNameEn | shortName }}\r\n {{ item.itemNameAr | shortName }}\r\n \r\n
\r\n
\r\n
{{item.itemNameEn}}
\r\n
{{item.itemNameAr}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ member.name | shortName }}\r\n \r\n
\r\n
\r\n
{{member.name}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Floor, FloorItem, Waiter } from 'src/app/features/reservations/models/Reservation';\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\nimport { ServersAssignmentService } from '../services/servers-assignment.service';\n\nexport interface DialogData {\n serversList: Waiter[],\n restaurantId: number,\n selectedTable: FloorItem,\n selectedFloor: Floor\n}\n\n@Component({\n selector: 'app-assign-server',\n templateUrl: './assign-server.component.html'\n})\nexport class AssignServerComponent extends DirtyComponent implements OnInit {\n dataLoading = false;\n searchText?: any;\n\n serversList: Waiter[] = [];\n selectedIds: number[] = [];\n selectedIdsCopy: number[] = [];\n\n constructor(\n override dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n private service: ServersAssignmentService,\n translate: TranslateService\n ) {\n super(translate)\n }\n\n ngOnInit(): void {\n this.selectedIds = this.data.selectedTable.tableWaiters.filter(item => item.isSelected).map(item => item.id);\n this.selectedIdsCopy = JSON.parse(JSON.stringify(this.selectedIds));\n\n this.serversList = JSON.parse(JSON.stringify(this.data.serversList));\n this.serversList.map(item => {\n item.isSelected = this.selectedIds.includes(item.id) || false;\n });\n }\n\n compare(a1: number[], a2: number[]) {\n return a1.length == a2.length &&\n a1.every(\n (element, index) => element === a2[index]\n );\n }\n override canDeactivate(): boolean {\n return !this.compare(this.selectedIds.sort(), this.selectedIdsCopy.sort());\n };\n\n hideOption(item: any) {\n return new RegExp(this.searchText, 'i').test(item.name) === false\n }\n isAllHidden() {\n return this.serversList.every(item => this.hideOption(item));\n }\n\n assignChanged(item: Waiter) {\n this.selectedIds = this.serversList.filter(item => item.isSelected).map(item => item.id);\n if (item.isSelected) {\n item.tabelsCount = item.tabelsCount + 1;\n } else {\n item.tabelsCount = item.tabelsCount - 1;\n }\n }\n\n saveRecord() {\n this.data.selectedTable.tableWaiters = this.serversList.filter(item => item.isSelected);\n this.dialogRef.close(this.serversList);\n }\n}\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n

{{\"servers.Assign Server(s) to Table\" | translate}}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'content4.Table' | translate }}: \r\n {{data.selectedTable.name}}\r\n
\r\n
\r\n {{ 'servers.Floor' | translate }}: \r\n {{data.selectedFloor.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n {{item.name | shortName}}\r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n ({{item.tabelsCount}} {{'servers.tables assigned' | translate}})\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

{{\"general.No Data Found\" | translate}}

\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Floor } from \"src/app/features/reservations/models/Reservation\"\r\n\r\nexport enum AssignWaiterTypeEnum {\r\n Manually = 'Manually',\r\n Auto = 'Auto'\r\n}\r\nexport enum AutoAssignTypeEnum {\r\n LowestReservations = 'LowestReservations',\r\n LastSeatedTime = 'LastSeatedTime',\r\n LowestPartySize = 'LowestPartySize'\r\n}\r\n\r\nexport class WaiterAssignment {\r\n optionType!: AssignWaiterTypeEnum\r\n autoOptionType!: AutoAssignTypeEnum|null\r\n floors!: Floor[]\r\n restaurantId!: number\r\n }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { Floor, FloorItem, Waiter } from '../../reservations/models/Reservation';\r\nimport { RestaurantDetails } from '../../restaurants/models/List.Restaurant';\r\nimport { AssignServerComponent } from './assign-server/assign-server.component';\r\nimport { AssignWaiterTypeEnum, AutoAssignTypeEnum, WaiterAssignment } from './models/AssignmentModel';\r\nimport { ServersAssignmentService } from './services/servers-assignment.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { RestaurantService } from '../../restaurants/services/Restaurant.service';\r\n\r\n@Component({\r\n selector: 'app-servers-assignment',\r\n templateUrl: './servers-assignment.component.html'\r\n})\r\nexport class ServersAssignmentComponent implements OnInit {\r\n dataLoading = true;\r\n isSubmitted = false;\r\n details: any;\r\n\r\n loading = false;\r\n\r\n restaurantId?: any;\r\n allRestaurants: RestaurantDetails[] = [];\r\n restaurantData!: any;\r\n\r\n floors: Floor[] = [];\r\n\r\n tablesToSelect = [];\r\n selectedTable!: FloorItem | null;\r\n selectedFloor!: Floor;\r\n serversList: Waiter[] = [];\r\n\r\n assignType!: AssignWaiterTypeEnum;\r\n ruleCtr = new FormControl(null);\r\n AutoAssignType = [\r\n AutoAssignTypeEnum.LowestReservations,\r\n AutoAssignTypeEnum.LastSeatedTime,\r\n AutoAssignTypeEnum.LowestPartySize\r\n ]\r\n\r\n constructor(\r\n private service: ServersAssignmentService,\r\n public dialog: MatDialog,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private restaurantService: RestaurantService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n GetScreenData() {\r\n this.ResGetWaiterAssignConfig();\r\n this.ResGetWaiter();\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n ResGetWaiterAssignConfig() {\r\n this.dataLoading = true;\r\n this.service.ResGetWaiterAssignConfig(this.restaurantId).subscribe(\r\n (data: any) => {\r\n this.dataLoading = false;\r\n this.details = data;\r\n this.floors = data.floors as [];\r\n this.assignType = data.optionType || AssignWaiterTypeEnum.Auto;\r\n this.ruleCtr.setValue(data.autoOptionType || AutoAssignTypeEnum.LowestReservations);\r\n this.ruleCtr.markAsUntouched();\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n ResGetWaiter() {\r\n this.dataLoading = true;\r\n this.service.ResTableAssignWaiters(this.restaurantId).subscribe(\r\n (data: any) => {\r\n this.dataLoading = false;\r\n this.serversList = data;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n save() {\r\n this.isSubmitted = true;\r\n this.ruleCtr.markAsTouched();\r\n if (!this.floors?.length && this.assignType == AssignWaiterTypeEnum.Manually) { return }\r\n if (this.ruleCtr.valid) {\r\n this.loading = true;\r\n let data: WaiterAssignment = {\r\n optionType: this.assignType,\r\n autoOptionType: this.ruleCtr.value,\r\n restaurantId: this.restaurantId,\r\n floors: this.assignType == AssignWaiterTypeEnum.Manually ? this.floors : []\r\n }\r\n\r\n this.service.ResSaveWaiterAssignConfig(data).subscribe((response: any) => {\r\n this.loading = false;\r\n if (response?.success) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.savedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n // this.ResGetWaiterAssignConfig();\r\n if (this.restaurantId) {\r\n this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n } else {\r\n this.ResGetWaiterAssignConfig();\r\n }\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.errors,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n openForm() {\r\n if (!this.selectedTable) return;\r\n const dialogRef = this.dialog.open(AssignServerComponent, {\r\n width: '50rem',\r\n data: {\r\n serversList: this.serversList,\r\n selectedTable: this.selectedTable,\r\n selectedFloor: this.selectedFloor,\r\n restaurantId: this.restaurantId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.serversList = result;\r\n }\r\n // this.floors.forEach(floor => {\r\n // floor.tabels.forEach(table => {\r\n // table.tableWaiters.forEach(waiter => {\r\n // this.selectedTable?.tableWaiters.forEach(item => {\r\n // if (item.id === waiter.id) {\r\n // waiter.tabelsCount = item.tabelsCount;\r\n // }\r\n // });\r\n // });\r\n // });\r\n // })\r\n this.tablesToSelect = [];\r\n });\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ 'servers.Select the method for assigning servers to tables.' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
{{ 'servers.Manually' | translate }}
\r\n

{{ 'servers.You will assign each server to the table(s) he or she is in charge of.' | translate }}

\r\n
\r\n
\r\n
\r\n \r\n
{{ 'servers.Auto Assignment' | translate }}
\r\n

{{ 'servers.BonTech App will assign the servers to the tables based on your chosen rotation rule.' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'servers.Auto Assignment Options' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ 'servers.Set Rotation Rule' | translate }}\r\n \r\n \r\n {{('servers.' + item) | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n
\r\n
\r\n\r\n

{{'servers.Your selection means prioritize servers with the lowest number of tables assigned to him/her for that day' | translate}}

\r\n

{{'servers.Your selection means prioritize your servers with the longest duration since the last seated reservation' | translate}}

\r\n

{{'servers.Your selection means prioritize your servers with the lowest number of guests at the current time' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'servers.Assign Servers to Table' | translate}}
\r\n

{{ 'servers.Choose a table to assign servers to.' | translate }}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { WaiterAssignment } from '../models/AssignmentModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServersAssignmentService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n ResGetWaiterAssignConfig(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetWaiterAssignConfig?RestaurantId=${RestaurantId}`);\r\n }\r\n ResWaitersList(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResWaitersList?RestaurantId=${RestaurantId}`);\r\n }\r\n ResSaveWaiterAssignConfig(data: WaiterAssignment) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResSaveWaiterAssignConfig`, data);\r\n }\r\n ResEditReservationWaiter(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResEditReservationWaiter`, data);\r\n }\r\n ResTableAssignWaiters(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResTableAssignWaiters?RestaurantId=${RestaurantId}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-ingredients-stock',\r\n templateUrl: './ingredients-stock.component.html'\r\n})\r\nexport class IngredientsStockComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-stock-transaction',\r\n templateUrl: './stock-transaction.component.html'\r\n})\r\nexport class StockTransactionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { Requiredaction, UserRest } from 'src/app/models/auth/user';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n action: Requiredaction,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-attendence',\r\n templateUrl: './attendence.component.html'\r\n})\r\nexport class AttendenceComponent implements OnInit {\r\n restaurants: UserRest[] = [];\r\n formGroup!: FormGroup;\r\n requiredaction = Requiredaction;\r\n\r\n selectedRest!: UserRest | undefined;\r\n currentUser = this.authenticationService.currentUserValue;\r\n isTillRequired = false;\r\n canContinue = false;\r\n\r\n loading = false;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private formBuilder: FormBuilder,\r\n private authenticationService: AuthenticationService,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.currentUser = this.authenticationService.currentUserValue;\r\n this.restaurants = this.currentUser?.owneRestaurant || [];\r\n\r\n // this.restaurants = [this.restaurants[0]];\r\n // this.restaurants[0].addtill = true;\r\n // this.restaurants[0].attendancefeature = true;\r\n // this.restaurants[2].requiredaction = Requiredaction.NoAction;\r\n\r\n this.selectedRest = this.restaurants[0];\r\n if (this.data.restaurantId) {\r\n this.selectedRest = this.restaurants.find(r => r.id == this.data.restaurantId);\r\n }\r\n\r\n this.formGroup = this.formBuilder.group({\r\n restaurant: [this.selectedRest, [Validators.required]],\r\n amount: [null, [\r\n Validators.pattern(Patterns.price2decimal),\r\n ]],\r\n });\r\n this.restaurantChanged();\r\n }\r\n\r\n restaurantChanged() {\r\n this.selectedRest = this.formGroup.controls['restaurant'].value;\r\n if (!this.selectedRest) return;\r\n localStorage.setItem('restaurantId', String(this.selectedRest.id));\r\n this.formGroup.controls['amount'].setValue(null);\r\n\r\n // continue\r\n this.canContinue = false;\r\n if (\r\n !this.selectedRest.attendancefeature\r\n ||\r\n ( // Allready clock-in\r\n this.selectedRest.requiredaction != Requiredaction.ClockIn\r\n && this.data.action == Requiredaction.ClockIn\r\n )\r\n ) {\r\n this.canContinue = true;\r\n }\r\n\r\n this.isTillRequired = (this.selectedRest.addtill && this.selectedRest.attendancefeature && !this.canContinue);\r\n }\r\n\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n submitClock() {\r\n this.SetUserAttandance();\r\n }\r\n\r\n SetUserAttandance(saveAnyway = false) {\r\n if (this.canContinue) {\r\n this.dialogRef.close(true);\r\n return;\r\n }\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n restaurantId: this.formGroup.controls['restaurant'].value.id,\r\n amount: this.formGroup.controls['amount'].value,\r\n status: this.data.action,\r\n saveAnyway\r\n };\r\n this.authenticationService.SetUserAttandance(data).subscribe((resp: any) => {\r\n if (resp.success) {\r\n this.loading = false;\r\n if (resp.code == -6) {\r\n this.confirmForceClockout();\r\n }\r\n else if (resp.code == -3) { // Attendence feature deavtivated after open attendence popup\r\n this.dialogRef.close();\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: resp.errorMessages,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n } else {\r\n this.dialogRef.close(true);\r\n if (this.data.action == Requiredaction.ClockOut) { // ClockOut\r\n if (this.isTillRequired && !localStorage.getItem('deviceId')) {\r\n setTimeout(() => { this.print(resp.htmlContent); }, 1000);\r\n }\r\n this.authenticationService.logout();\r\n }\r\n }\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: resp.errorMessages,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n this.dialogRef.close();\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error?.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n this.dialogRef.close();\r\n this.authenticationService.logout();\r\n })\r\n }\r\n }\r\n\r\n confirmForceClockout() {\r\n Swal.fire({\r\n // title: this.translate.instant('swalMsg.'),\r\n text: this.translate.instant('auth.Attention Clock-out'),\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('auth.Clock-out anyway'),\r\n cancelButtonText: this.translate.instant('forms.Cancel')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.SetUserAttandance(true);\r\n }\r\n });\r\n }\r\n\r\n print(html: string): void {\r\n const mywindow: any = window.open('', 'PRINT', 'height=600,width=700');\r\n mywindow.document.write(html);\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n}\r\n","
\r\n

{{\"auth.\" + (data.action == requiredaction.ClockIn ? 'Clock-In' : 'Clock-Out') | translate}}

\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {{ 'restaurant.Restaurant' | translate }}\r\n \r\n \r\n {{restaurant.name}}\r\n \r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n
\r\n\r\n \r\n {{ 'auth.Initial Cash' | translate }}\r\n {{ 'auth.Total cash drawer' | translate }}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n {{ 'forms.Invalid value' | translate }} - {{'forms.Price accept only two digits of decimal' | translate}}\r\n \r\n \r\n\r\n
\r\n\r\n

\r\n {{\"auth.Clock-In\" | translate}}: {{selectedRest?.lastClockIn | date:'d MMM, y - h:mm a'}}\r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Profile } from './models/Profile';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-profile-management',\r\n templateUrl: './profile-management.component.html'\r\n})\r\nexport class ProfileManagementComponent implements OnInit {\r\n\r\n dataLoading = false;\r\n details!: Profile;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private service: AuthenticationService,\r\n public translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getProfile();\r\n }\r\n\r\n\r\n getProfile() {\r\n this.dataLoading = true;\r\n this.service.GetUserProfileDetails().subscribe((data) => {\r\n this.dataLoading = false;\r\n this.details = data;\r\n\r\n let currentUser = this.service.currentUserValue;\r\n if (currentUser) {\r\n currentUser.profilePic = this.details.profilePicture;\r\n this.service.currentUserSubject.next(currentUser);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n // this.service.logout();\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{details.name}}

\r\n

\r\n \r\n , {{item.name}}\r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{'menu.Basic Information' | translate}}
\r\n
\r\n
\r\n
\r\n \r\n

{{'forms.Email' | translate}}

\r\n {{details.email}}\r\n
\r\n
\r\n
\r\n \r\n

{{'forms.Phone number' | translate}}

\r\n \r\n {{details.countryCode + ' ' + details.phoneNumber}}\r\n
\r\n
\r\n \r\n
\r\n \r\n

{{'forms.Gender' | translate}}

\r\n {{details.gender.name}}\r\n
\r\n
\r\n\r\n
\r\n \r\n

{{'forms.Date of birth' | translate}}

\r\n \r\n {{details.dateOfBirth | DateModel}}\r\n \r\n
\r\n
\r\n
\r\n \r\n

{{'forms.Nationality' | translate}}

\r\n \r\n {{details.nationality}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/ListCuisines';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CuisinesService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/Lookup/GetAllCuisines`, filter);\r\n }\r\n GetCuisines() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetCuisines`);\r\n }\r\n GetDetails(id: string) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetCuisinesById?id=${id}`);\r\n }\r\n delete(id: string) {\r\n return this.http.post(`${environment.apiUrl}/Lookup/DeleteCuisines?id=${id}`, null);\r\n }\r\n saveRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/Lookup/EditCuisines`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/Lookup/NewCuisines`, data);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CategoryService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/Lookup/GetAllCategory`, filter);\r\n }\r\n GetDetails(id: string) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetCategoryId?id=${id}`);\r\n }\r\n delete(id: string) {\r\n return this.http.post(`${environment.apiUrl}/Lookup/DeleteCategory?id=${id}`, null);\r\n }\r\n saveRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/Lookup/EditCategory`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/Lookup/NewCategory`, data);\r\n }\r\n }\r\n getAllCategory(): any {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetCategory`);\r\n }\r\n}\r\n","import { Component, HostListener } from \"@angular/core\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\n\r\nexport class DesignHelper {\r\n\r\n scale = 1;\r\n\r\n onDragEnded(event: any) {\r\n let element = event.source.getRootElement();\r\n let boundingClientRect = element.getBoundingClientRect();\r\n let parentPosition = this.getPosition(element);\r\n\r\n let x = parseInt(boundingClientRect.x) - Number(parentPosition.left)\r\n let y = parseInt(boundingClientRect.y) - Number(parentPosition.top)\r\n\r\n console.log('Position:', x, y);\r\n\r\n let zoomMoveXDifference = 0;\r\n let zoomMoveYDifference = 0;\r\n if (this.scale) {\r\n zoomMoveXDifference = (1 - this.scale) * x;\r\n zoomMoveYDifference = (1 - this.scale) * y;\r\n x = x + zoomMoveXDifference\r\n y = y + zoomMoveYDifference\r\n console.log('Position:', x, y);\r\n }\r\n\r\n return { x: Number(x.toFixed()), y: Number(y.toFixed()) }\r\n }\r\n getPosition(el: any) {\r\n let x = 0;\r\n let y = 0;\r\n while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\r\n x += el.offsetLeft - el.scrollLeft;\r\n y += el.offsetTop - el.scrollTop;\r\n el = el.offsetParent;\r\n }\r\n\r\n return { top: y, left: x };\r\n }\r\n\r\n dragConstrainPoint = (point: any, dragRef: any) => {\r\n let zoomMoveXDifference = 0;\r\n let zoomMoveYDifference = 0;\r\n if (this.scale! - 1) {\r\n zoomMoveXDifference = (1 - this.scale) * dragRef.getFreeDragPosition().x;\r\n zoomMoveYDifference = (1 - this.scale) * dragRef.getFreeDragPosition().y;\r\n }\r\n return {\r\n x: point.x + zoomMoveXDifference,\r\n y: point.y + zoomMoveYDifference\r\n };\r\n }\r\n\r\n @HostListener('window:keydown', ['$event']) handleKeyboardEvent(event: KeyboardEvent): void {\r\n if (event.key === 'Backspace' || event.key === 'Delete') {\r\n\r\n }\r\n }\r\n}\r\n","export class Filter {\r\n restaurantId!: number;\r\n kitchensId!: number[];\r\n pageNumber!: number;\r\n pageSize!: number;\r\n status!: OrderStatusEnum;\r\n searchText!: string\r\n orderDate?: Date\r\n}\r\nexport enum OrderStatusEnum {\r\n All = 'All',\r\n New = 'New',\r\n Ongoing = 'Ongoing',\r\n Ready = 'Ready',\r\n Completed = 'Completed'\r\n}\r\nexport class ListData {\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: Order[]\r\n totalAll!: number\r\n totalNew!: number\r\n totalOngoing!: number\r\n totalReady!: number\r\n}\r\nexport class Order {\r\n id!: number\r\n reservationId!: number\r\n orderKitchenId!: number\r\n customer!: Customer\r\n orderItems!: OrderItem[]\r\n orderNumber!: number\r\n orderTime!: Time\r\n finishedTime!: Time\r\n preparationTime!: string\r\n currentPreparationTime!: number\r\n PreparingTimer!: Time\r\n partySize!: number\r\n status!: OrderStatusEnum\r\n tabelsName!: string\r\n statusPermissions!: {\r\n canExtendTime: boolean\r\n canReady: boolean\r\n canRecall: boolean\r\n canStart: boolean\r\n canReportOrder: boolean\r\n }\r\n totalExtendedTime!: number\r\n extendedTime!: Time\r\n canRecall!: boolean\r\n reservationType!: string\r\n orderNotes!: string\r\n takeawayOrderType!: string\r\n}\r\nexport class Time {\r\n hr!: string\r\n m!: string\r\n s!: string\r\n totalSeconds!: number\r\n isNegative?: boolean\r\n isWarning?: boolean\r\n}\r\nexport class OrderItem {\r\n isSelected!: boolean\r\n statusPermissions!: {\r\n canCooking: boolean\r\n canPreparing: boolean\r\n canReady: boolean\r\n }\r\n canDelete!: boolean\r\n canEdit!: boolean\r\n id!: number\r\n itemName!: string\r\n itemPic!: string\r\n description!: string\r\n quantity!: number\r\n selectedQuantity!: number\r\n sizeName!: string\r\n itemSize!: {\r\n id: number\r\n isSelected: boolean\r\n name: string\r\n }\r\n isRecalled!: boolean\r\n recalledQuantity!: number\r\n isWasted!: boolean\r\n wastedQuantity!: number\r\n calories!: number\r\n rate!: number\r\n preparationTime!: { hr: string, m: string }\r\n\r\n kitchenId!: number\r\n kitchenName!: string\r\n menuItemId!: number\r\n curruncyName!: string\r\n price!: number\r\n restaurantSizeId!: number\r\n specialRequest!: string\r\n status!: OrderItemStatusEnum\r\n\r\n mainIngredients!: OrderIngredients[]\r\n optionalIngredients!: OrderIngredients[]\r\n unWantedOptionalIngredients!: OrderIngredients[]\r\n additions!: {\r\n id: number\r\n name: string\r\n kdsName: string\r\n itemAdditionlist: OrderIngredients[]\r\n }[]\r\n variants!: {\r\n id: number\r\n name: string\r\n kdsName: string\r\n itemVariantlist: OrderIngredients[]\r\n }[]\r\n}\r\nexport class OrderIngredients {\r\n id!: number\r\n name!: string\r\n icon!: string\r\n isSelected!: boolean\r\n}\r\nexport class Customer {\r\n icon!: string\r\n name!: string\r\n}\r\nexport enum OrderItemStatusEnum {\r\n New = 'New',\r\n Preparing = 'Preparing',\r\n Cooking = 'Cooking',\r\n Ready = 'Ready',\r\n Served = 'Served'\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-not-authorized',\r\n templateUrl: './not-authorized.component.html'\r\n})\r\nexport class NotAuthorizedComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n ","import { NgIf } from '@angular/common';\r\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { SanitizeHtmlPipePipe } from 'src/app/helpers/sanitize-html-pipe.pipe';\r\nimport { AppsSettingUrlEnum } from 'src/app/models/Lookup';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\n@Component({\r\n selector: 'app-public-page',\r\n templateUrl: './public-page.component.html',\r\n standalone: true,\r\n imports: [TranslateModule, NgIf, MatProgressSpinnerModule, SanitizeHtmlPipePipe, MatButtonModule],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PublicPageComponent implements OnInit {\r\n language = localStorage.getItem('language') || 'en';\r\n loading = true;\r\n pageData!: any;\r\n logoSrc = './assets/images/logos/logo.svg';\r\n\r\n constructor(\r\n public router: Router,\r\n public lookupService: LookupsService,\r\n private activatedRoute: ActivatedRoute,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.params.subscribe(params => {\r\n if (params['pageName']) {\r\n this.getData(params['pageName']);\r\n if (\r\n params['pageName'] == AppsSettingUrlEnum.CustomerPrivacyPolicy\r\n || params['pageName'] == AppsSettingUrlEnum.CustomerTermsAndConditions\r\n ) {\r\n this.logoSrc = './assets/images/logos/app-logo.svg';\r\n }\r\n }\r\n });\r\n }\r\n getData(pageName: AppsSettingUrlEnum) {\r\n this.loading = true;\r\n this.lookupService.GetApplicationSettings(pageName, this.language).subscribe((data: any) => {\r\n this.pageData = data.data;\r\n this.loading = false;\r\n })\r\n }\r\n\r\n changeLanguage() {\r\n let params = JSON.parse(JSON.stringify(this.activatedRoute.snapshot.queryParams))\r\n let lang = this.language == 'en' ? 'ar' : 'en'\r\n params['lang'] = lang;\r\n localStorage.setItem('language', lang);\r\n this.router.navigate(\r\n [],\r\n {\r\n relativeTo: this.activatedRoute,\r\n queryParams: params,\r\n queryParamsHandling: 'merge',\r\n });\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 100);\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FloorItem, ReservationGuest } from 'src/app/features/reservations/models/Reservation';\r\nimport { ReservationsService } from 'src/app/features/reservations/services/reservations.service';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { ChooseTableComponent } from '../cart-takeaway/choose-table/choose-table.component';\r\nimport { Countries } from 'src/app/models/Lookup';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\n\r\n@Component({\r\n selector: 'app-cart-guest-form',\r\n templateUrl: './cart-guest-form.component.html'\r\n})\r\nexport class CartGuestFormComponent implements OnInit {\r\n @Input() restaurantId!: number;\r\n @Input() isSubmitted = false;\r\n @Input() changeTableLoading = false;\r\n @Input() isOrdered = false;\r\n\r\n @Output() guestFormData = new EventEmitter();\r\n @Output() confirmChooseTable = new EventEmitter();\r\n\r\n formGroup!: FormGroup;\r\n\r\n searchText = '';\r\n searchValid = true;\r\n searchLoading = false;\r\n searchDataList: any[] = [];\r\n serachGuestDate!: ReservationGuest | null;\r\n selectedCountry: any;\r\n isCleared = false;\r\n phoneNumberPattern = Patterns.numbers_plus;\r\n\r\n selectedFloor = 0;\r\n selectedTables: FloorItem[] = [];\r\n\r\n isRequired = false;\r\n tableRequired = false;\r\n\r\n data: {\r\n customer: any,\r\n tables: number[],\r\n isValid: boolean\r\n } = {\r\n customer: null,\r\n tables: [],\r\n isValid: true\r\n }\r\n\r\n countryLoading = false;\r\n countryList: Countries[] = [];\r\n countryListAllCodes: any = [];\r\n isTouched = false;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private service: ReservationsService,\r\n private translate: TranslateService,\r\n private dialog: MatDialog,\r\n public lookupService: LookupsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n // this.formGroup.valueChanges.subscribe(value => {\r\n // if (value.fName || value.lName || value.phoneNumber?.number) {\r\n // this.submitData();\r\n // }\r\n // });\r\n this.getAllCountries();\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n fName: [null, [\r\n Validators.maxLength(20)\r\n ]],\r\n lName: [null, [\r\n Validators.maxLength(20)\r\n ]],\r\n phoneflag: [null],\r\n phoneCode: [null],\r\n phoneNumber: [null, [\r\n Validators.minLength(5),\r\n Validators.maxLength(15)\r\n ]],\r\n });\r\n }\r\n getAllCountries() {\r\n this.countryLoading = true;\r\n this.lookupService.getCountries().subscribe((data: any) => {\r\n this.countryLoading = false\r\n this.countryList = data;\r\n this.setDefaultCountry();\r\n }, (err: any) => {\r\n console.error(err);\r\n });\r\n }\r\n flagChanged() {\r\n if (this.formGroup.controls['phoneflag'].value) {\r\n this.formGroup.controls['phoneCode'].setValue(\r\n this.countryList.find(\r\n x => x.id == Number(this.formGroup.controls['phoneflag'].value)\r\n )?.countryKey\r\n )\r\n } else {\r\n this.setDefaultCountry();\r\n }\r\n this.searchByPhoneNumber();\r\n }\r\n setDefaultCountry() {\r\n let phoneCountry = this.countryList.find(x => x.isdefault) || this.countryList[0];\r\n this.formGroup.controls['phoneflag'].setValue(phoneCountry.id);\r\n this.formGroup.controls['phoneCode'].setValue(phoneCountry.countryKey)\r\n }\r\n\r\n phoneHasError() {\r\n if (this.isSubmitted || this.isTouched) {\r\n if (\r\n this.hasError('phoneNumber', 'minlength')\r\n || this.hasError('phoneNumber', 'maxlength')\r\n || this.hasError('phoneNumber', 'required')\r\n || this.hasError('phoneCode', 'required')\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n searchGuest(searchText: string, isPhone = false) {\r\n if (!searchText || (typeof (searchText) != 'string')) return;\r\n this.searchLoading = true;\r\n this.clearSearchData();\r\n this.service.ResCheckCustomer(this.restaurantId, searchText).subscribe(\r\n (data: any) => {\r\n this.searchLoading = false;\r\n this.searchDataList = data;\r\n if (isPhone && data.length == 1) {\r\n this.guestSelected(data[0]);\r\n }\r\n if (!isPhone && !data.length) {\r\n Swal.fire({\r\n icon: 'error',\r\n title: this.translate.instant('general.No Data Found')\r\n })\r\n }\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n searchByText(event: any) {\r\n if (event) { event.preventDefault(); }\r\n this.searchGuest(this.searchText);\r\n (document.querySelector('.search-text') as HTMLElement)?.focus();\r\n }\r\n clearAutocompleteList() {\r\n if (!this.searchText) {\r\n this.searchDataList = [];\r\n }\r\n }\r\n searchByPhoneNumber(event: any = null) {\r\n if (event) { event.preventDefault(); }\r\n let searchText = '';\r\n const phoneCtr = this.formGroup.controls['phoneNumber'];\r\n if (phoneCtr.value) {\r\n searchText = this.formGroup.controls['phoneCode'].value.replace('+', '') + phoneCtr.value;\r\n }\r\n this.formGroup.controls['fName'].setValue('');\r\n this.formGroup.controls['lName'].setValue('');\r\n this.searchGuest(searchText, true);\r\n }\r\n guestSelected(guest: ReservationGuest) {\r\n this.serachGuestDate = guest;\r\n this.formGroup.patchValue(this.serachGuestDate);\r\n this.selectedCountry = this.serachGuestDate.phoneflag;\r\n let phoneCountry = this.countryList.find(x => x.id == Number(this.serachGuestDate?.phoneflag));\r\n this.formGroup.controls['phoneflag'].setValue(phoneCountry?.id);\r\n this.formGroup.controls['phoneCode'].setValue(phoneCountry?.countryKey);\r\n setTimeout(() => this.searchText = guest.fName + ' ' + guest.lName, 0);\r\n }\r\n displayFn(option: any) {\r\n if (!option) return '';\r\n return option.fName + ' ' + option.lName;\r\n }\r\n clearSearchData() {\r\n this.searchDataList = [];\r\n this.serachGuestDate = null;\r\n }\r\n clearSearchUser() {\r\n this.clearSearchData();\r\n this.isCleared = true;\r\n this.formGroup.reset();\r\n this.searchText = '';\r\n let phoneCountry = this.countryList.find(x => x.isdefault) || this.countryList[0];\r\n this.formGroup.controls['phoneflag'].setValue(phoneCountry.id);\r\n this.formGroup.controls['phoneCode'].setValue(phoneCountry.countryKey);\r\n }\r\n\r\n fieldsChanges() {\r\n let customerValues = this.formGroup.value;\r\n if (customerValues.fName || customerValues.lName || customerValues.phoneNumber) {\r\n this.isRequired = true;\r\n // this.tableRequired = true;\r\n } else {\r\n this.isRequired = false;\r\n // this.tableRequired = false;\r\n }\r\n this.formGroup.markAllAsTouched();\r\n this.submitData();\r\n }\r\n submitData() {\r\n this.isSubmitted = true;\r\n this.formGroup.markAllAsTouched();\r\n let customerValues: any = this.formGroup.value;\r\n customerValues.customerId = this.serachGuestDate?.customerId || 0;\r\n customerValues.customerPoints = this.serachGuestDate?.customerPoints;\r\n customerValues.isValid = this.serachGuestDate ? true : false;\r\n\r\n if (\r\n this.formGroup.valid\r\n && !this.serachGuestDate?.isBlackList\r\n && !this.serachGuestDate?.isSuspend\r\n ) {\r\n customerValues.isValid = true;\r\n // this.data.customer = customerValues;\r\n } else {\r\n // this.data.customer = null;\r\n }\r\n\r\n this.data.customer = customerValues;\r\n this.emitData();\r\n }\r\n\r\n emitData() {\r\n this.data.isValid = true;\r\n let hasCustomer = (this.data.customer && (this.data.customer.fName || this.data.customer.lName || this.data.customer.phoneNumber)) ? true : false;\r\n if (\r\n hasCustomer && !this.data.customer?.isValid\r\n || (this.data.tables.length && hasCustomer && !this.data.customer?.isValid)\r\n // || (!this.data.tables.length && hasCustomer && this.data.customer?.isValid)\r\n || (!this.data.tables.length && hasCustomer && !this.data.customer?.isValid)\r\n ) {\r\n this.data.isValid = false;\r\n }\r\n\r\n if (!hasCustomer) {\r\n this.data.customer = null;\r\n }\r\n\r\n this.guestFormData.emit(this.data);\r\n }\r\n\r\n openChooseTables() {\r\n const dialogRef = this.dialog.open(ChooseTableComponent, {\r\n width: '980px',\r\n data: {\r\n restaurantId: this.restaurantId,\r\n floorId: this.selectedFloor,\r\n tablesToSelect: this.selectedTables?.map(item => item.id)\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.isRequired = false;\r\n if (result) {\r\n this.selectedTables = result.tables;\r\n this.selectedFloor = result.floorId;\r\n }\r\n if (this.selectedTables?.length) {\r\n // this.isRequired = true;\r\n }\r\n this.formGroup.markAllAsTouched();\r\n this.data.tables = this.selectedTables?.map(item => item.id) || [];\r\n this.emitData();\r\n });\r\n }\r\n\r\n removeTables() {\r\n // this.isRequired = false;\r\n this.selectedTables = [];\r\n this.selectedFloor = 0;\r\n this.data.tables = [];\r\n this.emitData();\r\n }\r\n\r\n /************************/\r\n confirmTable() {\r\n this.tableRequired = true;\r\n this.submitData();\r\n // if (this.data.customer?.isValid) {\r\n // }\r\n this.confirmChooseTable.emit(this.data);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \"\"\r\n \r\n {{'orders.Guest Info' | translate }}\r\n ({{'forms.Optional' | translate}})\r\n \r\n
\r\n\r\n
\r\n
\r\n {{'Redeeming.loyalty points' | translate}}: {{serachGuestDate?.customerPoints?.totalPoint}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n {{option.fName + ' ' + option.lName}} ({{option.phoneCode + ' ' + option.phoneNumber}})\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\"forms.First name\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Last name\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\"\"
\r\n {{item.countryKey }}\r\n
\r\n \r\n \"\"\r\n {{item.name}}\r\n {{item.countryKey }}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n

\r\n {{ 'forms.Required' | translate }}\r\n

\r\n

\r\n {{ 'forms.Invalid value' | translate }}\r\n

\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n 0\">,\r\n {{item.name}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n {{'reservations.No tables selected' | translate}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Floor, FloorItem } from 'src/app/features/reservations/models/Reservation';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\nimport { TakeawayOrderService } from '../../../services/TakeawayOrder.service';\r\nimport { TakeawayTableProblemComponent } from './takeaway-table-problem/takeaway-table-problem.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport interface DialogData {\r\n restaurantId: number,\r\n floorId: number,\r\n tablesToSelect: []\r\n}\r\n@Component({\r\n selector: 'app-choose-table',\r\n templateUrl: './choose-table.component.html'\r\n})\r\nexport class ChooseTableComponent implements OnInit {\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n floorsLoading = true;\r\n floorLoading = true;\r\n floorsList: Lookup[] = [];\r\n floorId!: number;\r\n floor!: Floor;\r\n\r\n tablesToSelect = this.data.tablesToSelect || [];\r\n selectedTables: FloorItem[] = [];\r\n reservationResponse!: any;\r\n\r\n constructor(\r\n private service: TakeawayOrderService,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n public dialog: MatDialog,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.floorId = this.data.floorId;\r\n this.ResFloorsList();\r\n }\r\n\r\n ResFloorsList() {\r\n this.floorsList = [];\r\n this.floorsLoading = true;\r\n this.service.ResFloorsList(this.data.restaurantId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.floorsLoading = false;\r\n this.floorsList = data;\r\n if (!this.floorId) { this.floorId = data[0].id; }\r\n if (this.floorId) {\r\n this.ResFloorsChangeTable();\r\n }\r\n }\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n ResFloorsChangeTable(floorId: number = this.floorId) {\r\n this.floorLoading = true;\r\n this.floorId = floorId;\r\n this.service.ResFloorsChangeTakeAwayTable(this.data.restaurantId, this.floorId).subscribe(\r\n (data: any) => {\r\n this.floorLoading = false;\r\n this.floor = data.floors[0];\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n CheckReservation() {\r\n const slectedTablesId = this.selectedTables.map((x: any) => x.id);\r\n this.reservationResponse = null;\r\n if (\r\n this.floor?.id &&\r\n this.selectedTables?.length\r\n ) {\r\n this.loading = true;\r\n let data = {\r\n restaurantsId: this.data.restaurantId,\r\n tabels: slectedTablesId\r\n }\r\n this.service.ResCheckTakeAwayChangeTable(data).subscribe(response => {\r\n this.loading = false;\r\n this.reservationResponse = response;\r\n }, error => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n chooseTable() {\r\n if (this.reservationResponse.result?.success) {\r\n this.dialogRef.close({\r\n tables: this.selectedTables,\r\n floorId: this.floorId\r\n });\r\n } else {\r\n this.openProblemsDialog(1);\r\n }\r\n }\r\n\r\n openProblemsDialog(errorType: number) {\r\n const dialogRef = this.dialog.open(TakeawayTableProblemComponent, {\r\n width: '50rem',\r\n data: {\r\n reservationResponse: this.reservationResponse,\r\n errorType\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n // this.dialogRef.close(true);\r\n // this.service.refreshList.next(true);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n\t

{{\"reservations.Choose Table\" | translate}}

\r\n
\r\n \r\n {{\"reservations.Choose Table\" | translate}}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n

\r\n {{'reservations.No tables selected' | translate}}\r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ChangeReservationTable, ReservationFormResponse } from 'src/app/features/reservations/models/Reservation';\r\n\r\nexport interface DialogData {\r\n reservationData: ChangeReservationTable | null,\r\n reservationResponse: ReservationFormResponse,\r\n errorType: number // 0 => Message, 1 => Warning,\r\n view: string\r\n}\r\n\r\n@Component({\r\n selector: 'app-takeaway-table-problem',\r\n templateUrl: './takeaway-table-problem.component.html'\r\n})\r\nexport class TakeawayTableProblemComponent implements OnInit {\r\n loading = false;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.data.view) {\r\n this.data.view = 'floor';\r\n }\r\n }\r\n closeDialog() {\r\n this.dialogRef.close(false);\r\n }\r\n saveRecord() {\r\n\r\n }\r\n}\r\n","
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
\r\n
\r\n

{{\"reservations.Table Problem\" | translate}}

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

{{item}}

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

{{'reservations.Recommendations' | translate}}

\r\n
    \r\n
  • \r\n {{item}}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { orderTakeaway } from '../models/Takeaway';\r\nimport { CheckOutResult } from 'src/app/shared/check-out/CheckOut.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TakeawayOrderService {\r\n checkoutIdsSaver = new BehaviorSubject([]);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n ResCreateTakeawayOrder(data: orderTakeaway) {\r\n return this.http.post(`${environment.apiUrl}/ResReservationOrderTakeaway/ResCreateTakeawayOrder`, data);\r\n }\r\n ResTakeawayGetCheckoutId(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservationOrderTakeaway/ResTakeawayGetCheckoutId`, data);\r\n }\r\n ResTakeawayGetNFCSDK(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservationOrderTakeaway/ResTakeawayGetNFCSDK`, data);\r\n }\r\n ResGetCheckoutStatus(CheckoutId: any, isCheck = false) {\r\n return this.http.get(`${environment.apiUrl}/ResReservationOrderTakeaway/ResTakeawayGetCheckoutStatus?CheckoutId=${CheckoutId}&isCheck=${isCheck}`);\r\n }\r\n GetTakeawayDiscountList(data: orderTakeaway) {\r\n return this.http.post(`${environment.apiUrl}/ResReservationOrderTakeaway/GetTakeawayDiscountList`, data);\r\n }\r\n\r\n ResFloorsList(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResFloorsList?restaurantId=${restaurantId}`);\r\n }\r\n ResFloorsChangeTakeAwayTable(restaurantId: number, floorId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservationOrderTakeaway/ResFloorsChangeTakeAwayTable?RestaurantsId=${restaurantId}&floorId=${floorId}`);\r\n }\r\n ResCheckTakeAwayChangeTable(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservationOrderTakeaway/ResCheckTakeAwayChangeTable`, data);\r\n }\r\n ResCheckVoucherDiscount(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservationOrderTakeaway/ResCheckVoucherDiscount`, data);\r\n }\r\n ResTakeAwayOrderPermissions(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservationOrderTakeaway/ResTakeAwayOrderPermissions?restaurantId=${restaurantId}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter, OrderTypeEnum } from '../models/placeOrder';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlaceOrderService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n doFilter = new Subject();\r\n priceListId = new Subject();\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getReservationOrderDetails(ReservationId: any) {\r\n return this.http.get(`${environment.apiUrl}/ReservationOrder/ResGetReservationOrderDetails?ReservationId=${ReservationId}`);\r\n }\r\n getMenuSections(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResGetMenuSections`, data);\r\n }\r\n getMenuItems(filter: ListFilter) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResGetMenuItems`, filter);\r\n }\r\n getMenuItemById(params: any) {\r\n return this.http.get(`${environment.apiUrl}/ReservationOrder/ResGetMenuItemById`, { params });\r\n }\r\n ResGetMenuItemsinListById(itemId: any, priceListId: number, orderType: OrderTypeEnum) {\r\n let params: any = { itemId, orderType }\r\n if (priceListId) { params.priceListId = priceListId }\r\n return this.http.get(`${environment.apiUrl}/ReservationOrder/ResGetMenuItemsinListById`, { params });\r\n }\r\n kitchensFilterList(ReservationId: any) {\r\n return this.http.get(`${environment.apiUrl}/ReservationOrder/ResKitchensFilterList?ReservationId=${ReservationId}`);\r\n }\r\n cancelOrder(ReservationId: any, orderId: number) {\r\n let params: any = { ReservationId, orderId }\r\n if (localStorage.getItem('deviceId')) {\r\n params.deviceId = localStorage.getItem('deviceId');\r\n params.deviceType = localStorage.getItem('deviceType');\r\n }\r\n return this.http.get(`${environment.apiUrl}/ReservationOrder/ResCancelOrder`, { params });\r\n }\r\n createOrder(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResNewOrder`, data);\r\n }\r\n editOrder(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResEditOrder`, data);\r\n }\r\n ResChangeItemStatus(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResChangeItemStatus`, data);\r\n }\r\n userCheckOrderPermission(ReservationId: any) {\r\n return this.http.get(`${environment.apiUrl}/ReservationOrder/ResUserCheckOrderPermission?ReservationId=${ReservationId}`);\r\n }\r\n ResPrintOrderBon(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResPrintOrderBon`, data);\r\n }\r\n}\r\n","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: {\r\n id: any\r\n kitchenName: string\r\n lossReason: string\r\n menuItemIcon: string\r\n menuItemName: string\r\n reportedOn: string\r\n type: string\r\n reportedBy: {\r\n reportedByIcon: string\r\n reportedByName: string\r\n }\r\n }[];\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n restaurantId!: any;\r\n kitchensIds!: any[]\r\n lossReason!: any[]\r\n reportedFrom!: number\r\n reportedTo!: number\r\n userIds?: any[]\r\n sort!: number\r\n searchText!: string;\r\n}\r\n\r\nexport class menuItemFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n restaurantId!: number\r\n itemName!: string\r\n sectionId!: number\r\n sectionIds!: number[]\r\n}\r\n\r\nexport enum status {\r\n Active = 0,\r\n Inactive = 1\r\n}\r\n\r\nexport enum lossReason {\r\n Burnet = 0,\r\n GuestIssue = 1,\r\n Dropped = 2,\r\n Damaged = 3,\r\n Spoiled = 4,\r\n Expired = 5\r\n}\r\n\r\nexport enum Disposition {\r\n Donated = 0,\r\n Garbage = 1,\r\n ReturnedtoSupplier = 2,\r\n\r\n}\r\n\r\nexport enum sortList {\r\n RecentlyAdded = 1,\r\n OldestAdded = 2,\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/wastedMenuItems';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WastedMenuItemService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n doFilter = new Subject();\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResGetAllWasteMenuItems`, filter);\r\n }\r\n ownerGetAllWasteMenuItems(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResOwnerGetAllWasteMenuItems`, filter);\r\n }\r\n waiterGetAllWasteMenuItems(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResWaiterGetAllWasteMenuItems`, filter);\r\n }\r\n getWasteMenuItemDetails(id: any, Type: any) {\r\n return this.http.get(`${environment.apiUrl}/ResWasteFood/ResWasteMenuItemsById?id=${id}&Type=${Type}`);\r\n }\r\n newWasteMenuItems(data: any) {\r\n if (data.orderId) {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResNewWasteOrderMenuItems`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResNewWasteMenuItems`, data);\r\n }\r\n }\r\n getWasteItemsReasonList() {\r\n return this.http.get(`${environment.apiUrl}/ResWasteFood/ResGetWasteItemsReasonList`);\r\n }\r\n getDispositionsList() {\r\n return this.http.get(`${environment.apiUrl}/ResWasteFood/ResGetDispositionsList`);\r\n }\r\n getWasteItemsOrderList(RestaurantId: any) {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResGetWasteItemsOrderList?RestaurantId=${RestaurantId}`, null);\r\n }\r\n getMenuItemForWaste(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResGetMenuItemForWaste`, data);\r\n }\r\n getMenuSectionsList(RestaurantId: any) {\r\n return this.http.get(`${environment.apiUrl}/ResWasteFood/ResGetMenuSectionsList?RestaurantId=${RestaurantId}`);\r\n }\r\n getWasteOrderItems(OrderId: any, KitchenId: number) {\r\n let query = `?OrderId=${OrderId}`;\r\n if (KitchenId) { query += `&KitchenId=${KitchenId}` };\r\n return this.http.post(`${environment.apiUrl}/ResWasteFood/ResGetWasteOrderItems${query}`, null);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges, ChangeDetectorRef } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DesignHelper } from 'src/app/features/floor-plan/helpers/DesignHelper';\nimport { TableProblemsDialogComponent } from '../form/table-problems-dialog/table-problems-dialog.component';\nimport { Floor, FloorItem, FloorViewerType, ReservationFormResponse, TabelStatusEnum } from '../../models/Reservation';\n\n@Component({\n selector: 'app-all-floors-viewer',\n templateUrl: './all-floors-viewer.component.html'\n})\nexport class AllFloorsViewerComponent extends DesignHelper implements OnInit {\n @Input() floors: any[] = [];\n @Input() tablesToSelect!: number[];\n @Input() reservationResponse: ReservationFormResponse | null = null;\n\n @Input() isView = false;\n @Input() disabled = false;\n @Input() required = false;\n\n @Output() selectedFloor = new EventEmitter();\n @Output() selectedTables = new EventEmitter();\n\n @Input() restaurantId: any;\n @Input() reservationDate: any;\n openServarsList!: boolean;\n\n dataLoading = false;\n @Input() floorId!: number;\n floor!: Floor;\n tables: FloorItem[] = [];\n hasProblem = false;\n\n override scale = 0.7;\n minScale = 0.5;\n maxScale = 1.5;\n screesDim = {\n screenWidth: 1400,\n screenHeight: 820\n }\n currentView: FloorViewerType = FloorViewerType.ContentView;\n\n constructor(\n public dialog: MatDialog,\n private cdr: ChangeDetectorRef,\n ) { super(); }\n\n ngOnInit(): void {\n if (this.floors.length && !this.floorId) {\n this.floor = this.floors[0];\n this.floorId = this.floors[0].id;\n this.selectedFloor.emit(this.floor);\n }\n if (this.floorId) {\n this.floorChanged();\n }\n if (this.tablesToSelect?.length) {\n this.selectTables();\n }\n }\n\n ngAfterViewChecked() {\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['floors']?.currentValue) {\n this.floors = changes['floors']?.currentValue;\n this.floorChanged();\n }\n if (changes['tablesToSelect']?.currentValue) {\n this.floors.forEach(element => {\n element.tabels.map((item: FloorItem) => { item.selected = changes['tablesToSelect']?.currentValue.includes(item.id) });\n });\n }\n this.hasProblem = false;\n if (changes['reservationResponse']?.currentValue) {\n const reservationResponse = changes['reservationResponse'].currentValue as ReservationFormResponse;\n if (!reservationResponse?.result?.success) {\n this.hasProblem = true;\n }\n this.floor?.tabels.map((item: FloorItem) => {\n item.recommended = reservationResponse.tabelsRecommendation?.some((x: any) => x == item.id)\n });\n }\n this.cdr.detectChanges();\n }\n selectTables() {\n this.tablesToSelect.forEach(tableId => {\n const table = this.floor.tabels.find(item => item.id == tableId);\n if (table) {\n this.tableSelected(table);\n }\n });\n }\n\n floorChanged() {\n this.floor = this.floors.find(item => item.id == this.floorId);\n this.selectedFloor.emit(this.floor);\n this.floors.forEach(element => {\n element.tabels.map((item: FloorItem) => { item.selected = false });\n });\n this.tables = [];\n this.selectedTables.emit(this.tables);\n }\n\n tableSelected(table: FloorItem) {\n if (this.disabled) return;\n // if (this.isView) {\n // if (\n // table.currentReservations?.reservationStatus == ReservationStatusEnum.Seated\n // || table.currentReservations?.reservationStatus == ReservationStatusEnum.Arrived\n // &&\n // !(\n // table.tableStatus == TabelStatusEnum.Blocked\n // || table.tableStatus == TabelStatusEnum.Free\n // || table.tableStatus == TabelStatusEnum.Reserved\n // )\n // ) { return };\n // } else {\n // if (table.tableStatus == TabelStatusEnum.Blocked) return;\n // }\n // if (table.tableStatus !== TabelStatusEnum.Free && this.isView) return;\n if (table.tableStatus == TabelStatusEnum.Blocked && !this.isView) return;\n\n if (table.category == 1) {\n table.selected = !table.selected\n }\n this.tables = this.floor.tabels.filter(item => item.selected);\n this.selectedTables.emit(this.tables);\n }\n\n setZoom(zoomType: string) {\n this.scale = Number(this.scale.toFixed(1));\n if (zoomType == 'in' && this.scale < this.maxScale) {\n this.scale += 0.1;\n }\n if (zoomType == 'out' && this.scale > this.minScale) {\n this.scale -= 0.1;\n }\n if (zoomType == 'fit') {\n this.scale = 1;\n }\n document.getElementsByClassName('design-area-wrapper')[0].scroll(0, 0);\n }\n\n openProblemsDialog() {\n this.dialog.open(TableProblemsDialogComponent, {\n width: '50rem',\n data: {\n reservationData: null,\n reservationResponse: this.reservationResponse,\n errorType: 0\n }\n });\n }\n}\n","
\n\n
\n \n
\n\n\n
\n\n
\n
{{'reservations.No available tables' | translate}}
\n
\n\n
\n\n
\n\n
\n \n
\n \n
\n

{{item.text}}

\n
\n\n \n
\n\n \n
\n
\n
\n \n {{item.name | slice:0:4}} {{ item.name.length > 4 ? '...' : ''}}\n \n
\n
\n
\n \"\"\n {{item.name | shortName}}\n
\n
\n
\n
\n\n
\n
\n
\n {{'reservations.Free' |\n translate}}\n {{'reservations.Reserved' |\n translate}}\n {{'reservations.Blocked' |\n translate}}\n
\n\n \n
\n {{item.currentReservations.customerName}}\n
\n
{{item.currentReservations.reservationTimeFrom}}
\n
\n
\n\n
\n \n
\n
\n\n
\n
{{Restime.reservationTimeFrom}}
\n
\n
\n
\n\n
\n
0\">\n
\n
\n
1\">\n
\n
\n
2\">\n
\n
\n
3\">\n
\n
\n
\n
\n\n
\n
\n \n
{{item.seats}}
\n
\n\n
\n\n
\n
\n\n
\n \n
\n 0\">,\n {{item.name}}\n
\n \n \"\"\n \n
\n\n
\n
\n \n \n \n \n \n \n\n \n
\n\n \n \n remove\n \n \n {{ 'planner.Fit' | translate }}\n \n = maxScale\" [class.mat-button-toggle-checked]=\"false\"\n (click)=\"setZoom('in')\">\n add\n \n \n\n \n
\n
\n\n\n\n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ServersAssignmentService } from 'src/app/features/Floors-and-Kitchens/servers-assignment/services/servers-assignment.service';\nimport Swal from 'sweetalert2';\nimport { ReservationDetails, Waiter } from '../../../models/Reservation';\n\nexport interface DialogData {\n reservation: ReservationDetails,\n restaurantId: number,\n reservationId: number\n}\n@Component({\n selector: 'app-reassign-server',\n templateUrl: './reassign-server.component.html'\n})\nexport class ReassignServerComponent implements OnInit {\n dataLoading = false;\n loading = false;\n isSubmitted = false;\n\n categoryList: any[] = [];\n categorySelected?: any;\n searchText?: any;\n\n serversList: Waiter[] = [];\n userId: any\n\n constructor(\n private service: ServersAssignmentService,\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n private translate: TranslateService\n ) { }\n\n ngOnInit(): void {\n if (this.data.reservation.waitersList.length === 1) {\n this.userId = this.data.reservation.waitersList[0].id;\n }\n this.getServers();\n }\n\n getServers() {\n this.dataLoading = true;\n this.service.ResWaitersList(this.data.restaurantId).subscribe(\n (data: any) => {\n this.dataLoading = false;\n if (data) {\n this.serversList = data;\n }\n },\n (error: any) => {\n this.serversList = [];\n });\n }\n\n hideOption(item: any) {\n return new RegExp(this.searchText, 'i').test(item.name) === false\n }\n isAllHidden() {\n return this.serversList.every(item => this.hideOption(item));\n }\n\n saveRecord() {\n this.isSubmitted = true;\n if (!this.userId) return;\n\n this.loading = true;\n let data = {\n reservationId: this.data.reservationId,\n userId: this.userId\n }\n this.service.ResEditReservationWaiter(data).subscribe((response: any) => {\n this.loading = false;\n if (response?.success) {\n Swal.fire({\n title: this.translate.instant('swalMsg.Success'),\n text: this.translate.instant('swalMsg.savedsuccessfully'),\n icon: 'success',\n confirmButtonText: this.translate.instant('swalMsg.Ok')\n });\n this.dialogRef.close(true);\n }\n }, error => {\n this.loading = false;\n Swal.fire({\n title: this.translate.instant('swalMsg.Failed'),\n text: error.detail,\n icon: 'error',\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\n });\n });\n }\n}\n","
\r\n
\r\n

{{\"servers.Assign server\" | translate}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'content4.Table' | translate }}: \r\n {{data.reservation.tableName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n {{item.name | shortName}}\r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n ({{item.reservationCount}} {{'servers.reservations assigned' | translate}})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

{{'servers.Please sealect server.' | translate}}

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

{{\"general.No Data Found\" | translate}}

\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Currency } from 'src/app/models/Lookup';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\nimport { CheckOutService } from 'src/app/shared/check-out/CheckOut.service';\r\nimport { CheckOutActions } from 'src/app/shared/check-out/CheckOutActions';\r\nimport Swal from 'sweetalert2';\r\nimport { ReservationsService } from '../../services/reservations.service';\r\nimport { ChangeTableComponent } from '../listing/floor-view/change-table/change-table.component';\r\nimport { orderDetails, ReservationDetails, ReservationStatusEnum, Roles } from '../../models/Reservation';\r\nimport { ReassignServerComponent } from './reassign-server/reassign-server.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { OrderItemStatusEnum } from 'src/app/features/orders/models/Orders';\r\nimport { PlaceOrderService } from 'src/app/features/place-order/services/placeOrder.service';\r\nimport { SignalRService } from 'src/app/services/signalR/SignalR.service';\r\nimport { SignalEventType } from 'src/app/services/signalR/SignalModel';\r\n\r\n@Component({\r\n selector: 'app-reservation-details',\r\n templateUrl: './reservation.details.component.html'\r\n})\r\nexport class ReservationDetailsComponent extends CheckOutActions implements OnInit, OnDestroy {\r\n @Input() restaurantId!: any;\r\n @Input() selectedReservationId!: number | null;\r\n @Input() viewType!: any;\r\n @Input() orderNumber!: number;\r\n @Input() canEdit = true;\r\n dataLoading = false;\r\n loading = false;\r\n btnLoading = false;\r\n updateLoading = false;\r\n loadingType!: string;\r\n @Output() close = new EventEmitter();\r\n activeOrder!: orderDetails\r\n\r\n details!: ReservationDetails\r\n\r\n RestaurantServer!: boolean;\r\n\r\n totalCartPrice: any = []\r\n totalPrice = 0\r\n defaultCurrency!: any;\r\n\r\n timeDuration = {\r\n value: 0,\r\n duration: ''\r\n }\r\n\r\n subscriptions: Subscription[] = []\r\n\r\n constructor(\r\n private reservationService: ReservationsService,\r\n translate: TranslateService,\r\n public dialog: MatDialog,\r\n private activatedRoute: ActivatedRoute,\r\n private lookupsService: LookupsService,\r\n checkoutService: CheckOutService,\r\n private service: PlaceOrderService,\r\n private signal: SignalRService\r\n ) {\r\n super(checkoutService, translate)\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.UpdateReservation)\r\n .subscribe(message => { this.signalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.kdsItemStatusChanged)\r\n .subscribe(message => { this.signalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.newOrderToKds)\r\n .subscribe(message => { this.newOrderToKdsSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.orderStatusChanged)\r\n .subscribe(message => { this.orderStatusSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.kdsItemStatusChanged)\r\n .subscribe(message => { this.kdsItemStatusSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.editOrder)\r\n .subscribe(message => { this.editOrderSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.cancelledOrder)\r\n .subscribe(message => { this.cancelledOrderSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.recallOrder)\r\n .subscribe(message => { this.recallOrderSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.wasteOrder)\r\n .subscribe(message => { this.wasteOrderSignalAction(message.data); })\r\n )\r\n }\r\n\r\n signalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n // const order = this.details.orderDetails?.find(order => order.orderId == OrderId)\r\n // if (order) {\r\n // let itemIndx = order.orderItems.findIndex(item => item.id == ItemId);\r\n // if (itemIndx != -1) {\r\n // order.orderItems[itemIndx].status = NewStatus\r\n // }\r\n // }\r\n }\r\n }\r\n newOrderToKdsSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n orderStatusSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n\r\n kdsItemStatusSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n editOrderSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n cancelledOrderSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n recallOrderSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n wasteOrderSignalAction(data: any) {\r\n if (data.RestaurantId == this.restaurantId && data.ReservationId == this.selectedReservationId) {\r\n this.getDetails();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getDetails();\r\n this.subscriptions.push(\r\n this.checkoutService.refreshView.subscribe(data => {\r\n if (data) { this.getDetails(); }\r\n })\r\n )\r\n this.subscriptions.push(\r\n this.reservationService.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getDetails();\r\n }\r\n })\r\n )\r\n this.subscriptions.push(\r\n this.reservationService.closeDetails.subscribe(data => {\r\n if (data) {\r\n this.close.emit();\r\n this.reservationService.closeDetails.next(false);\r\n }\r\n })\r\n )\r\n this.activatedRoute.paramMap.subscribe(params => {\r\n if (params.get('view')) {\r\n this.viewType = params.get('view') || 'list';\r\n }\r\n });\r\n }\r\n\r\n DefaultCurrency() {\r\n this.lookupsService.RestaurantDefaultCurrency(this.restaurantId)\r\n .subscribe(\r\n data => {\r\n this.defaultCurrency = data as Currency;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n calcDurationM(minutes: any) {\r\n minutes = Number(minutes)\r\n return minutes + ' ' + this.translate.instant('placeOrder.mins')\r\n }\r\n\r\n ngOnDestroy() {\r\n this.reservationService.refreshList.next(false);\r\n this.reservationService.closeDetails.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n getDetails() {\r\n this.dataLoading = true\r\n this.reservationService.GetReservationById(this.selectedReservationId).subscribe((data: any) => {\r\n this.details = data;\r\n if (this.details.reservationDuration) {\r\n this.details.reservationDuration = Number(this.details.reservationDuration)\r\n this.timeDuration = {\r\n value: this.details.reservationDuration,\r\n duration: this.calcDuration(this.details.reservationDuration)\r\n }\r\n }\r\n this.details?.orderDetails?.forEach(kitchen => {\r\n kitchen.orderItems.forEach((element: any) => {\r\n element.currentPreparationTime = Math.floor(element.currentPreparationTime);\r\n element.preparingTimer = this.getElapsedTime(element.currentPreparationTime);\r\n if (element.currentPreparationTime >= 0) {\r\n window.setInterval(() => {\r\n element.currentPreparationTime = element.currentPreparationTime - 1;\r\n element.preparingTimer = this.getElapsedTime(element.currentPreparationTime);\r\n }, 1000)\r\n }\r\n });\r\n });\r\n\r\n this.dataLoading = false;\r\n if (!this.restaurantId) {\r\n }\r\n this.restaurantId = this.details.restaurantId\r\n localStorage.setItem('restaurantId', this.restaurantId);\r\n this.DefaultCurrency();\r\n\r\n this.RestaurantServer = this.details.currentUserRoles.some((user: Roles) => user.roleType == 'RestaurantServer')\r\n if (this.details.orderDetails?.length) {\r\n this.activeOrder = this.details.orderDetails.find(order => order.orderNumber == this.orderNumber) || data.orderDetails[this.details.orderDetails.length - 1];\r\n this.changeActiveOrder(this.activeOrder);\r\n }\r\n // Calculate Price of Cart items\r\n // this.totalCartPrice = []\r\n // this.totalCartPrice.push(this.details.orderDetails?.orderItems.map((item) => item.price))\r\n // this.totalCartPrice?.forEach((number: any) => {\r\n // this.totalCartPrice = number;\r\n // })\r\n // this.totalPrice = this.totalCartPrice?.reduce((acc: number, cur: number) => acc + cur, 0);\r\n }, error => {\r\n this.dataLoading = false;\r\n this.closeDetails();\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n\r\n openChangeTable() {\r\n const dialogRef = this.dialog.open(ChangeTableComponent, {\r\n width: '980px',\r\n data: {\r\n reservationId: this.selectedReservationId,\r\n restaurantId: this.restaurantId,\r\n floorId: this.details.floorId,\r\n tablesToSelect: this.details.tabels\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n calcDuration(value: number) {\r\n let minutes = value\r\n const hours = Math.floor(minutes / 60);\r\n const minutesLeft = minutes % 60;\r\n return `${hours}hr, ${minutesLeft}m`\r\n }\r\n\r\n getElapsedTime(allSeconds: number) {\r\n let minutes = 0;\r\n let seconds = 0;\r\n let totalSeconds = allSeconds;\r\n let isNegative = false;\r\n\r\n if (allSeconds < 0) return { m: 0, s: 0, totalSeconds: allSeconds, isNegative }\r\n if (allSeconds < 0) {\r\n isNegative = true;\r\n totalSeconds = Math.abs(allSeconds);\r\n }\r\n\r\n let m = '00', s = '00';\r\n\r\n if (totalSeconds >= 60) {\r\n minutes = Math.floor(totalSeconds / 60);\r\n m = minutes > 9 ? \"\" + minutes : \"0\" + minutes;\r\n totalSeconds -= 60 * minutes;\r\n }\r\n\r\n seconds = totalSeconds;\r\n s = seconds > 9 ? \"\" + seconds : \"0\" + seconds;\r\n\r\n return { m, s, totalSeconds: allSeconds, isNegative };\r\n }\r\n\r\n removeStoredOrder() {\r\n let orders: any = localStorage.getItem('orders');\r\n orders = orders ? JSON.parse(orders) : [];\r\n let storedOrders = orders.filter((order: any) => order.reservationId != this.selectedReservationId);\r\n localStorage.setItem('orders', JSON.stringify(storedOrders));\r\n }\r\n changeStatus(status: any) {\r\n let data = {\r\n restaurantId: this.restaurantId,\r\n reservationId: this.selectedReservationId,\r\n reservationStatus: status\r\n }\r\n\r\n let confirmMsg;\r\n let confirmTitle;\r\n if (status == ReservationStatusEnum.Cancelled) {\r\n confirmMsg = this.translate.instant('swalMsg.cancelConfirm');\r\n confirmTitle = this.translate.instant('swalMsg.CancelReservation');\r\n } else {\r\n confirmMsg = this.translate.instant('swalMsg.changeStatusConfirm');\r\n confirmTitle = this.translate.instant('swalMsg.changeStatus');\r\n }\r\n // Confirmation\r\n Swal.fire({\r\n title: confirmTitle,\r\n text: confirmMsg,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No'),\r\n }).then((result) => {\r\n if (result.value) {\r\n if (\r\n status == ReservationStatusEnum.Cancelled\r\n || status == ReservationStatusEnum.Released\r\n ) {\r\n this.removeStoredOrder();\r\n }\r\n this.btnLoading = true;\r\n this.loadingType = status;\r\n this.reservationService.ResChangeReservationStatus(data).subscribe((res: any) => {\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n this.btnLoading = false;\r\n this.loadingType = '';\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.reservationService.refreshList.next(true);\r\n }, error => {\r\n this.btnLoading = false;\r\n this.loadingType = '';\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n })\r\n\r\n }\r\n\r\n checkAvailabilityOfButtons() {\r\n return this.details.canArrived ||\r\n this.details.canCancelled ||\r\n this.details.canNoShow ||\r\n this.details.canReleased ||\r\n this.details.canSeated;\r\n }\r\n\r\n\r\n openAssignServer() {\r\n const dialogRef = this.dialog.open(ReassignServerComponent, {\r\n width: '50rem',\r\n data: {\r\n reservation: this.details,\r\n reservationId: this.selectedReservationId,\r\n restaurantId: this.restaurantId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getDetails()\r\n }\r\n });\r\n }\r\n\r\n editDuration(operator: string) {\r\n if (operator === '+') {\r\n this.timeDuration.value = this.timeDuration.value + 15,\r\n this.timeDuration.duration = this.calcDuration(this.timeDuration.value)\r\n }\r\n if (operator === '-') {\r\n this.timeDuration.value = this.timeDuration.value - 15,\r\n this.timeDuration.duration = this.calcDuration(this.timeDuration.value)\r\n }\r\n }\r\n\r\n updateExtendedDuration() {\r\n this.updateLoading = true;\r\n this.reservationService.ResReservationExtendDuration(this.selectedReservationId, this.timeDuration.value).subscribe((data) => {\r\n if (data) {\r\n this.updateLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.savedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n this.getDetails()\r\n }\r\n }, error => {\r\n this.updateLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n\r\n changeActiveOrder(order: orderDetails) {\r\n this.currentOrderId = order.orderId;\r\n this.activeOrder = order;\r\n this.currency = this.activeOrder.currency;\r\n this.currentOrderId = this.activeOrder.orderId;\r\n if (this.currentOrderId && this.activeOrder.canCheckout) {\r\n this.ResGetDiscountList();\r\n }\r\n }\r\n\r\n closeDetails() {\r\n if (this.timeDuration.value && (this.timeDuration.value != this.details.reservationDuration)) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.are you sure you want to discard all the changes'),\r\n text: '',\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No'),\r\n }).then((result) => {\r\n if (result.value) {\r\n this.close.emit();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n } else {\r\n this.close.emit();\r\n }\r\n }\r\n\r\n\r\n changeItemStatus(itemId: number) {\r\n Swal.fire({\r\n title: this.translate.instant('placeOrder.Confirm Serving?'),\r\n text: '',\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.actionLoading = true;\r\n let data = {\r\n status: OrderItemStatusEnum.Served,\r\n reservationId: this.selectedReservationId,\r\n menuItemReservationId: itemId,\r\n orderId: this.activeOrder?.orderId\r\n }\r\n this.service.ResChangeItemStatus(data).subscribe(\r\n (data: any) => {\r\n this.actionLoading = false;\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getDetails()\r\n }\r\n },\r\n (error: any) => {\r\n this.actionLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'reservations.Reservation Details' | translate}}
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{details.reservationDate | date : 'EE, d MMM'}}\r\n

\r\n

{{details.reservationTimeFrom}}

\r\n

{{'content4.Date & Time' | translate }}

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

{{details.tableName}}

\r\n

{{'content4.Table' | translate }}

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

{{details.partySize}}

\r\n

{{'reservations.Party Size' | translate }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \"\"\r\n
\r\n
\r\n
{{details.restaurantNameEN}}
\r\n
{{details.restaurantNameAR}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n {{'content.Type' |\r\n translate}}\r\n \r\n {{\"reservations.Scheduled\" | translate}}\r\n {{\"reservations.WalkIn\" | translate}}\r\n {{\"reservations.WaitingList\" | translate}}\r\n \r\n {{\"reservations.By Customer\" | translate}}\r\n ({{\"reservations.Table QR Code\" | translate}})\r\n \r\n {{\"reservations.Event\" | translate}}\r\n \r\n ({{'reservations.previousEvent' | translate }})\r\n \r\n \r\n - {{details.eventName}} \r\n \r\n \r\n
\r\n
\r\n \"\"\r\n {{'content4.Reservation No' |\r\n translate}}\r\n \r\n {{details.reservationNumber}}\r\n \r\n
\r\n
\r\n \"\"\r\n {{'reservations.Reservation Channel' | translate }}\r\n {{details.reservationChannel.name}}\r\n
\r\n
\r\n \"\"\r\n {{'reservations.Duration' | translate }}\r\n \r\n
\r\n
\r\n \r\n
{{timeDuration.duration}}
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \"\"\r\n {{'content4.Seat preferences' |\r\n translate }}\r\n {{details.reservationPrefrences}}\r\n
\r\n
\r\n \"\"\r\n {{'reservations.Special Request' |\r\n translate }}\r\n {{details.specialRequest}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n
\r\n \r\n {{item.name | shortName }} \r\n \r\n
\r\n
\r\n
\r\n {{'reservations.Assigned server' | translate }}
\r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'servers.No server assigned.' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{details.customer.fName + '' +\r\n details.customer.lName | shortName}} \r\n \r\n \r\n
\r\n
\r\n
{{details.customer.fName}}\r\n {{details.customer.lName}}\r\n
\r\n\r\n {{tag.name}}, \r\n
\r\n
\r\n
\r\n {{'forms.Phone number' | translate }}\r\n \r\n {{details.customer.phoneCode}} {{details.customer.phoneNumber}}\r\n \r\n
\r\n
\r\n {{'forms.Email' | translate }}\r\n {{details.customer.email || '-'}}\r\n
\r\n
\r\n {{'Redeeming.loyalty points' | translate }}\r\n {{details.customer.customerPoints!.totalPoint}}\r\n
\r\n
\r\n\r\n \r\n
\r\n

\r\n {{'orders.placed on this reservation' | translate: {no: details.orderDetails.length} }}\r\n

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

{{'orders.Order Details' | translate}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n

\r\n -\r\n \r\n {{item.preparingTimer.m}} {{'placeOrder.mins' | translate}}\r\n \r\n {{item.preparingTimer.s}} {{'orders.secs' | translate}}\r\n

\r\n
\r\n
\r\n x{{item.quantity}}\r\n
\r\n

{{item.itemName}}

\r\n

{{'placeOrder.Size:' | translate }}\r\n \r\n \r\n {{item.itemSizes?.size || item.itemSizes?.name}}\r\n \r\n \r\n {{item.sizeName}}\r\n \r\n \r\n

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

{{extra.name}}:

\r\n

\r\n {{item.name}}\r\n

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

{{extra.name}}:

\r\n

\r\n {{item.name}}\r\n

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

\r\n {{'placeOrder.Unwanted Ingredients' | translate }}

\r\n

\r\n {{ingredient.name}}

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

{{'placeOrder.Special request' | translate }}\r\n

\r\n

{{item.specialRequest}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{'orders.Paid' | translate}} X{{item.paidQuantity}}\r\n
\r\n
\r\n ( {{'placeOrder.Free' | translate}} X{{item.freeQuantity}} )\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n {{'placeOrder.Waiting' | translate}}\r\n \r\n \r\n {{'orders.Cooking' | translate}}\r\n \r\n \r\n {{'orders.Preparing' | translate}}\r\n \r\n \r\n {{'orders.Ready' | translate}}\r\n \r\n \r\n {{'orders.Ready' | translate}}\r\n \r\n \r\n {{'placeOrder.Served' | translate}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \"\"\r\n {{'reservations.Special Request' | translate }}\r\n

\r\n

{{activeOrder.orderNotes}}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{'general.Edit' | translate }}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges, ChangeDetectorRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DesignHelper } from 'src/app/features/floor-plan/helpers/DesignHelper';\r\nimport { TableProblemsDialogComponent } from '../form/table-problems-dialog/table-problems-dialog.component';\r\nimport { Floor, FloorItem, FloorViewerType, ReservationFormResponse, ReservationStatusEnum, TabelStatusEnum } from '../../models/Reservation';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\n\r\n@Component({\r\n selector: 'app-floor-viewer',\r\n templateUrl: './floor-viewer.component.html'\r\n})\r\nexport class FloorViewerComponent extends DesignHelper implements OnInit {\r\n @Input() floorsList: Lookup[] = [];\r\n @Input() floor!: Floor;\r\n\r\n @Input() isView = false;\r\n @Input() disabled = false;\r\n\r\n @Input() tablesToSelect!: number[];\r\n @Input() reservationResponse: ReservationFormResponse | null = null;\r\n\r\n @Output() floorChange = new EventEmitter();\r\n @Output() selectedTables = new EventEmitter();\r\n\r\n @Input() restaurantId: any;\r\n @Input() reservationDate: any;\r\n openServarsList!: boolean;\r\n\r\n floorId!: number;\r\n tables: FloorItem[] = [];\r\n hasProblem = false;\r\n\r\n override scale = 0.7;\r\n minScale = 0.5;\r\n maxScale = 1.5;\r\n screesDim = {\r\n screenWidth: 1400,\r\n screenHeight: 820\r\n }\r\n currentView: FloorViewerType = FloorViewerType.ContentView;\r\n\r\n @Input() canViewWaiters = false;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private cdr: ChangeDetectorRef,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n this.floorId = this.floor.id;\r\n\r\n if (this.tablesToSelect?.length) {\r\n this.selectTables();\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['floor']?.currentValue) {\r\n this.floor = changes['floor']?.currentValue;\r\n this.floorId = this.floor.id;\r\n }\r\n if (changes['tablesToSelect']?.currentValue) {\r\n this.selectTables(changes['tablesToSelect']?.currentValue);\r\n // this.floor.tabels.map((item: FloorItem) => {\r\n // item.selected = changes['tablesToSelect']?.currentValue.includes(item.id);\r\n // });\r\n }\r\n this.hasProblem = false;\r\n if (changes['reservationResponse']?.currentValue) {\r\n const reservationResponse = changes['reservationResponse'].currentValue as ReservationFormResponse;\r\n if (!reservationResponse?.result?.success) {\r\n this.hasProblem = true;\r\n }\r\n this.floor?.tabels.map((item: FloorItem) => {\r\n item.recommended = reservationResponse.tabelsRecommendation?.some((x: any) => x == item.id)\r\n });\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n selectTables(selectedTablesIds: number[] = this.tablesToSelect) {\r\n this.floor.tabels.map((item: FloorItem) => {\r\n item.selected = selectedTablesIds.includes(item.id);\r\n });\r\n this.tables = this.floor.tabels.filter(item => item.selected);\r\n this.selectedTables.emit(this.tables);\r\n // this.tablesToSelect.forEach(tableId => {\r\n // const table = this.floor.tabels.find(item => item.id == tableId);\r\n // if (table) {\r\n // this.tableSelected(table);\r\n // }\r\n // });\r\n }\r\n\r\n floorChanged() {\r\n this.floorChange.emit(this.floorId);\r\n this.selectedTables.emit([]);\r\n }\r\n\r\n tableSelected(table: FloorItem) {\r\n if (this.disabled) return;\r\n // if (this.isView) {\r\n // if (\r\n // table.currentReservations?.reservationStatus == ReservationStatusEnum.Seated\r\n // || table.currentReservations?.reservationStatus == ReservationStatusEnum.Arrived\r\n // &&\r\n // !(\r\n // table.tableStatus == TabelStatusEnum.Blocked\r\n // || table.tableStatus == TabelStatusEnum.Free\r\n // || table.tableStatus == TabelStatusEnum.Reserved\r\n // )\r\n // ) { return };\r\n // } else {\r\n // if (table.tableStatus == TabelStatusEnum.Blocked) return;\r\n // }\r\n // if (table.tableStatus !== TabelStatusEnum.Free && this.isView) return;\r\n if (table.tableStatus == TabelStatusEnum.Blocked && !this.isView) return;\r\n\r\n if (table.category == 1) {\r\n table.selected = !table.selected\r\n }\r\n this.tables = this.floor.tabels.filter(item => item.selected);\r\n this.selectedTables.emit(this.tables);\r\n }\r\n\r\n setZoom(zoomType: string) {\r\n this.scale = Number(this.scale.toFixed(1));\r\n if (zoomType == 'in' && this.scale < this.maxScale) {\r\n this.scale += 0.1;\r\n }\r\n if (zoomType == 'out' && this.scale > this.minScale) {\r\n this.scale -= 0.1;\r\n }\r\n if (zoomType == 'fit') {\r\n this.scale = 1;\r\n }\r\n document.getElementsByClassName('design-area-wrapper')[0].scroll(0, 0);\r\n }\r\n\r\n openProblemsDialog() {\r\n this.dialog.open(TableProblemsDialogComponent, {\r\n width: '50rem',\r\n data: {\r\n reservationData: null,\r\n reservationResponse: this.reservationResponse,\r\n errorType: 0\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n\r\n
\r\n\r\n
\r\n
{{'reservations.No available tables' | translate}}
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n

{{item.text}}

\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n {{item.name | slice:0:4}} {{ item.name.length > 4 ? '...' : ''}}\r\n \r\n
\r\n
\r\n
\r\n \"\"\r\n {{item.name | shortName}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{'reservations.Free' |\r\n translate}}\r\n {{'reservations.Reserved' |\r\n translate}}\r\n {{'reservations.Blocked' |\r\n translate}}\r\n
\r\n\r\n \r\n
\r\n {{item.currentReservations.customerName}}\r\n
\r\n
{{item.currentReservations.reservationTimeFrom}}
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
{{Restime.reservationTimeFrom}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
0\">\r\n
\r\n
\r\n
1\">\r\n
\r\n
\r\n
2\">\r\n
\r\n
\r\n
3\">\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
{{item.seats}}
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n 0\">,\r\n {{item.name}}\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n remove\r\n \r\n \r\n {{ 'planner.Fit' | translate }}\r\n \r\n = maxScale\" [class.mat-button-toggle-checked]=\"false\"\r\n (click)=\"setZoom('in')\">\r\n add\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { ReservationsService } from '../../../services/reservations.service';\r\nimport { ReservationForm, ReservationFormResponse } from '../../../models/Reservation';\r\n\r\nexport interface DialogData {\r\n reservationData: ReservationForm|null,\r\n reservationResponse: ReservationFormResponse,\r\n errorType: number // 0 => Message, 1 => Warning,\r\n}\r\n@Component({\r\n selector: 'app-table-problems-dialog',\r\n templateUrl: './table-problems-dialog.component.html'\r\n})\r\nexport class TableProblemsDialogComponent implements OnInit {\r\n loading = false;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private service: ReservationsService,\r\n private translate: TranslateService,\r\n public router: Router\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n saveRecord() {\r\n if (!this.data.reservationData) return;\r\n this.loading = true;\r\n this.data.reservationData.reserveAnyWay = true;\r\n this.service.saveRecord(this.data.reservationData).subscribe((response) => {\r\n this.loading = false;\r\n if (response?.result?.success) {\r\n this.dialogRef.close('success');\r\n } else {\r\n this.data.reservationResponse = response;\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n}\r\n","
\n
\n \"\"\n \"\"\n
\n
\n
\n

{{\"reservations.Table Problem\" | translate}}

\n
\n\n
\n

{{item}}

\n
\n\n
\n

{{'reservations.Recommendations' | translate}}

\n
    \n
  • \n {{item}}\n
  • \n
\n
\n
\n
\n\n\n \n\n \n \n\n \n \n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport Swal from 'sweetalert2';\nimport { ChangeReservationTable, ReservationFormResponse } from '../../../../../models/Reservation';\nimport { ReservationsService } from 'src/app/features/reservations/services/reservations.service';\n\nexport interface DialogData {\n reservationData: ChangeReservationTable|null,\n reservationResponse: ReservationFormResponse,\n errorType: number // 0 => Message, 1 => Warning,\n view: string\n}\n@Component({\n selector: 'app-change-table-problem',\n templateUrl: './change-table-problem.component.html'\n})\nexport class ChangeTableProblemComponent implements OnInit {\n loading = false;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n private service: ReservationsService,\n private translate: TranslateService,\n public router: Router\n ) { }\n\n ngOnInit(): void {\n if (!this.data.view) {\n this.data.view = 'floor';\n }\n }\n closeDialog() {\n this.dialogRef.close(false);\n }\n saveRecord() {\n if (!this.data.reservationData) return;\n this.loading = true;\n this.data.reservationData.reserveAnyWay = true;\n this.service.ResEditReservationTable(this.data.reservationData).subscribe(() => {\n this.loading = false;\n this.dialogRef.close(true);\n Swal.fire({\n title: this.translate.instant('swalMsg.Success'),\n text: this.data.reservationData?.reservationId ? this.translate.instant('swalMsg.updatedsuccessfully') : this.translate.instant('swalMsg.savedsuccessfully'),\n icon: 'success',\n confirmButtonText: this.translate.instant('swalMsg.Ok')\n });\n }, error => {\n this.loading = false;\n Swal.fire({\n title: this.translate.instant('swalMsg.Failed'),\n text: error.detail,\n icon: 'error',\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\n });\n });\n }\n}\n","
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
\r\n
\r\n

{{\"reservations.Table Problem\" | translate}}

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

{{item}}

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

{{'reservations.Recommendations' | translate}}

\r\n
    \r\n
  • \r\n {{item}}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ReservationsService } from 'src/app/features/reservations/services/reservations.service';\r\nimport Swal from 'sweetalert2';\r\nimport { ChangeReservationTable, Floor, FloorItem, ReservationFormResponse } from '../../../../models/Reservation';\r\nimport { ChangeTableProblemComponent } from './change-table-problem/change-table-problem.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SignalRService } from 'src/app/services/signalR/SignalR.service';\r\nimport { SignalEventType } from 'src/app/services/signalR/SignalModel';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\n\r\nexport interface DialogData {\r\n restaurantId: number,\r\n reservationId: number,\r\n floorId: number,\r\n tablesToSelect: []\r\n}\r\n@Component({\r\n selector: 'app-change-table',\r\n templateUrl: './change-table.component.html'\r\n})\r\nexport class ChangeTableComponent implements OnInit, OnDestroy {\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n floorsLoading = true;\r\n floorLoading = true;\r\n floorsList: Lookup[] = [];\r\n floorId!: number;\r\n floor!: Floor;\r\n\r\n tablesToSelect = this.data.tablesToSelect || [];\r\n selectedTables: FloorItem[] = [];\r\n reservationResponse!: ReservationFormResponse | null;\r\n\r\n canChange = false;\r\n canViewWaiters = false;\r\n\r\n hardReload = true;\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private service: ReservationsService,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private translate: TranslateService,\r\n public dialog: MatDialog,\r\n private signal: SignalRService\r\n ) {\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.NewReservation)\r\n .subscribe(message => { this.signalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.blockTable)\r\n .subscribe(message => { this.blockTabelSignalAction(message.data); })\r\n )\r\n }\r\n\r\n ngOnInit(): void {\r\n this.floorId = this.data.floorId;\r\n this.ResFloorsList();\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n signalAction(data: any) {\r\n if (data.RestaurantId == this.data.restaurantId) {\r\n this.hardReload = false;\r\n this.ResFloorsChangeTable();\r\n this.signal.notify('New reservation added');\r\n }\r\n }\r\n\r\n blockTabelSignalAction(data: any) {\r\n if (data.RestaurantId == this.data.restaurantId) {\r\n this.hardReload = false;\r\n this.ResFloorsChangeTable();\r\n }\r\n }\r\n\r\n ResFloorsList() {\r\n this.floorsList = [];\r\n this.floorsLoading = true;\r\n this.service.ResFloorsList(this.data.restaurantId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.floorsLoading = false;\r\n this.floorsList = data;\r\n if (!this.floorId) { this.floorId = data[0].id; }\r\n if (this.floorId) {\r\n this.ResFloorsChangeTable();\r\n }\r\n }\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n ResFloorsChangeTable(floorId: number = this.floorId) {\r\n this.floorLoading = true;\r\n this.floorId = floorId;\r\n this.service.ResFloorsChangeTable(this.data.reservationId, this.floorId).subscribe(\r\n (data: any) => {\r\n this.floorLoading = false;\r\n this.floor = data.floors[0];\r\n this.canViewWaiters = data.canViewAssignedWaiter;\r\n this.hardReload = true;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n CheckReservation() {\r\n this.canChange = true\r\n const slectedTablesId = this.selectedTables.map((x: any) => x.id);\r\n if (JSON.stringify(slectedTablesId) == JSON.stringify(this.tablesToSelect)) {\r\n this.canChange = false\r\n }\r\n\r\n this.reservationResponse = null;\r\n if (\r\n this.data.reservationId &&\r\n this.floor?.id &&\r\n this.selectedTables?.length\r\n ) {\r\n this.loading = true;\r\n let data: ChangeReservationTable = {\r\n reserveAnyWay: false,\r\n reservationId: this.data.reservationId,\r\n floorId: this.floor.id,\r\n tabels: slectedTablesId\r\n }\r\n this.service.ResCheckReservationChangeTable(data).subscribe(response => {\r\n this.loading = false;\r\n this.reservationResponse = response;\r\n }, error => {\r\n this.loading = false;\r\n });\r\n\r\n }\r\n }\r\n\r\n saveTable() {\r\n this.isSubmitted = true;\r\n if (!this.selectedTables?.length) return\r\n\r\n this.loading = true;\r\n let data: ChangeReservationTable = {\r\n reserveAnyWay: false,\r\n reservationId: this.data.reservationId,\r\n floorId: this.floor.id,\r\n tabels: this.selectedTables.map((x: any) => x.id)\r\n }\r\n\r\n this.service.ResEditReservationTable(data).subscribe((response: any) => {\r\n this.loading = false;\r\n if (response?.result?.success) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.savedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n this.service.refreshList.next(true);\r\n } else {\r\n this.openProblemsDialog(data, response, 1);\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.errors,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n\r\n openProblemsDialog(\r\n reservationData: ChangeReservationTable | null,\r\n reservationResponse: ReservationFormResponse | null,\r\n errorType: number\r\n ) {\r\n const dialogRef = this.dialog.open(ChangeTableProblemComponent, {\r\n width: '50rem',\r\n data: { reservationData, reservationResponse, errorType, view: 'floor' }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(result);\r\n\r\n if (result) {\r\n this.dialogRef.close(true);\r\n this.service.refreshList.next(true);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n\t

{{\"reservations.Change Table\" | translate}}

\r\n
\r\n \r\n {{\"reservations.Change Table\" | translate}}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n

\r\n {{'reservations.No tables selected' | translate}}\r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ReservationsService } from '../../services/reservations.service';\r\nimport { Waiter } from '../../models/Reservation';\r\n\r\n@Component({\r\n selector: 'app-servers',\r\n templateUrl: './servers.component.html'\r\n})\r\nexport class ServersComponent implements OnInit {\r\n @Input() restaurantId!: any;\r\n @Input() floorId!: any;\r\n @Input() reservationDate!: any;\r\n @Output() close = new EventEmitter();\r\n @Input() open!: boolean;\r\n\r\n dataLoading = false;\r\n\r\n servers: Waiter[] = []\r\n\r\n constructor(private service: ReservationsService) { }\r\n\r\n ngOnInit(): void {\r\n this.waitersReservationList()\r\n }\r\n\r\n waitersReservationList() {\r\n this.dataLoading = true;\r\n this.service.ResWaitersReservationList(this.restaurantId, this.reservationDate).subscribe((data: any) => {\r\n this.servers = data;\r\n this.dataLoading = false;\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'servers.Servers' | translate}} ({{servers.length}})\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{server.name | shortName}} \r\n \r\n
\r\n
\r\n

{{server.name}}

\r\n

{{server.tabelsNames}}

\r\n

{{'content4.N/A' | translate }}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { PlanShap } from 'src/app/features/floor-plan/models/Plan-Shaps';\r\nimport { Currency, Lookup } from 'src/app/models/Lookup';\r\n\r\nexport enum FloorViewerType {\r\n ContentView = 0,\r\n TimeView = 1,\r\n AssignedServer = 2\r\n}\r\nexport class ListData {\r\n pageIndex!: number;\r\n totalCount!: number;\r\n totalCancelled!: number;\r\n totalCompleted!: number;\r\n totalNoShow!: number;\r\n totalOngoing!: number;\r\n totalUpcomming!: number;\r\n totalWaitingList!: number;\r\n totalAll!: number;\r\n pageSize!: number;\r\n userType!: string;\r\n canAdd!: boolean\r\n isOwner!: boolean\r\n isWaiter!: boolean\r\n\r\n pageData!: {\r\n totalPartySize: number\r\n reservationTime: string\r\n reservationDate: string\r\n pageData: {\r\n id: number\r\n canEdit: boolean\r\n canEditTable: boolean\r\n reservationDate: string\r\n reservationNumber: number\r\n tableName: string\r\n partySize: number\r\n guestName: string\r\n status: ReservationStatusEnum\r\n restaurant: Restaurant\r\n reservationTimeFrom: string\r\n reservationTimeTo: string\r\n timeInterval: string\r\n customer: ReservationGuest\r\n hasPreferences: boolean\r\n reservationChanel: string\r\n cancellationBytype: CancellationBytype\r\n reservationType: ReservationTypeEnum\r\n refund: string\r\n lastOrderPaid: boolean\r\n ordersList: {\r\n id: number\r\n orderNumber: number\r\n }[]\r\n }[]\r\n }[];\r\n}\r\n\r\nexport class Restaurant {\r\n icon!: string;\r\n id!: number;\r\n nameAr!: string;\r\n nameEn!: string;\r\n}\r\nexport class ReservationGuest {\r\n customerId!: number\r\n email!: string\r\n fName!: string\r\n lName!: string\r\n phoneflag!: string\r\n phoneCode!: string\r\n phoneNumber!: string\r\n isBlackList!: boolean\r\n isSuspend!: boolean\r\n tagsList!: Lookup[]\r\n userId!: string\r\n icon!: string\r\n customerPoints!: {\r\n expierdPoint: any\r\n isEnabled: boolean\r\n pointInCountry: number\r\n restaurantName: string\r\n totalPoint: number\r\n }\r\n}\r\nexport class Record {\r\n announcementId!: number;\r\n iconAnnouncement!: string;\r\n nameAnnouncement!: string;\r\n typeAnnouncement!: string;\r\n dateAnnouncement!: string;\r\n timeAnnouncementFrom!: string;\r\n timeAnnouncementTo!: string;\r\n branchName!: string;\r\n howCreatedAnnouncement!: number;\r\n}\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n searchText!: string;\r\n announcementStuts!: number\r\n sortItems!: number\r\n dateTo!: Date;\r\n dateFrom!: Date;\r\n timeTo!: Date;\r\n timeFrom!: Date;\r\n minVists!: number;\r\n maxVists!: number;\r\n restaurantID!: number;\r\n}\r\nexport enum reservationType {\r\n All = 0,\r\n Upcoming = 1,\r\n Ongoing = 2,\r\n Completed = 3,\r\n Cancelled = 4,\r\n Waiting = 5,\r\n NoShow = 6\r\n}\r\nexport enum sortList {\r\n NewestReservation = 0,\r\n OldestReservation = 1\r\n}\r\nexport class Floor {\r\n id!: number\r\n name!: string\r\n tabels!: FloorItem[]\r\n}\r\nexport interface FloorItem extends PlanShap {\r\n id: number\r\n name: string\r\n selected: boolean\r\n recommended: boolean\r\n currentReservations: TableReservations | null\r\n tableStatus: TabelStatusEnum\r\n tableReservations: TableReservations[]\r\n tableWaiters: Waiter[]\r\n canBlockAndUnBlockTable: boolean\r\n canReserveTable: boolean\r\n}\r\nexport class Waiter {\r\n id!: number\r\n name!: string\r\n profilePic!: string\r\n isSelected!: boolean\r\n tabelsCount!: number\r\n reservationCount!: number\r\n tabelsNames!: string\r\n}\r\nexport class TableReservations {\r\n id!: number\r\n customerName!: string\r\n customerProfilePic!: string\r\n reservationStatus!: ReservationStatusEnum\r\n reservationDate!: string\r\n reservationTimeFrom!: string\r\n reservationTimeto!: string\r\n isActiveNow!: boolean\r\n waitersList!: Waiter[]\r\n}\r\nexport enum ReservationStatusEnum {\r\n Reserved = 'Reserved',\r\n Arrived = 'Arrived',\r\n Seated = 'Seated',\r\n Released = 'Released',\r\n Cancelled = 'Cancelled',\r\n NoShow = 'NoShow'\r\n}\r\nexport enum ReservationTypeEnum {\r\n Scheduled = 'Scheduled',\r\n WalkIn = 'WalkIn',\r\n WaitingList = 'WaitingList',\r\n Event = 'Event',\r\n ReservedNow = 'ReservedNow'\r\n}\r\nexport enum TabelStatusEnum {\r\n Free = 'Free',\r\n Blocked = 'Blocked',\r\n Reserved = 'Reserved',\r\n}\r\nexport class ReservationForm {\r\n reservationId!: number\r\n restaurantsId!: number\r\n reservationType!: ReservationTypeEnum\r\n reservationchannelId!: number\r\n partySize!: number\r\n reservationDate!: string | Date\r\n reservationTimeFrom!: string|null\r\n reservationTimeTo!: string|null\r\n reservationDuration!: string\r\n amenities!: number[]\r\n seatings!: number[]\r\n specialRequest!: string\r\n floorId?: number\r\n tabels!: number[]\r\n reserveAnyWay!: boolean\r\n customer?: ReservationGuest\r\n tagsList!: Lookup[]\r\n}\r\nexport class ChangeReservationTable {\r\n reservationId!: number\r\n floorId!: number\r\n tabels!: number[]\r\n reserveAnyWay!: boolean\r\n}\r\nexport class ReservationFormResponse {\r\n canReserveAnyWay!: boolean\r\n checkRecommendation!: string[]\r\n checkresult!: string[]\r\n reservationId!: number\r\n result!: {\r\n code: number\r\n errorMessages: string[]\r\n success: boolean\r\n }\r\n tabelsRecommendation!: number[]\r\n canPlasedOrder!: boolean\r\n}\r\n\r\nexport class Filter {\r\n createdFrom!: Date;\r\n createdTo!: Date;\r\n restaurantId!: number;\r\n pageNumber!: number;\r\n pageSize!: number;\r\n sort!: number\r\n status!: number\r\n reservationDate!: string\r\n partySizeFrom!: number\r\n partySizeTo!: number\r\n searchText!: string\r\n cancelStatus!: string\r\n ongoingStatus!: string\r\n reservationType!: string\r\n}\r\n\r\n\r\nexport class ReservationDetails {\r\n reservationType!: ReservationTypeEnum\r\n reservationDate!: string;\r\n tableName!: string;\r\n partySize!: number\r\n eventName!: string\r\n isDeletedEvent!: boolean\r\n restaurantId!: number\r\n restaurantNameEN!: string;\r\n restaurantNameAR!: string;\r\n restaurantIcon!: string;\r\n reservationNumber!: string;\r\n reservationChannel!: Lookup;\r\n reservationDuration!: any\r\n reservationPrefrences!: string;\r\n specialRequest!: string;\r\n assignedName!: string;\r\n assignedIcon!: string;\r\n guestName!: string;\r\n guestTags!: string;\r\n guestIcon!: string;\r\n phone!: string;\r\n phoneCode!: string;\r\n phoneFlag!: string;\r\n email!: string;\r\n canArrived!: boolean\r\n canSeated!: boolean\r\n canCancelled!: boolean\r\n canNoShow!: boolean\r\n canReleased!: boolean\r\n canEdit!: boolean\r\n canExtendDuration!: boolean\r\n canPlaceOrder!: boolean\r\n customer!: ReservationGuest\r\n tabels!: number[]\r\n floorId!: number\r\n seatings!: number[]\r\n amenities!: number[]\r\n reservationTimeFrom!: string\r\n reservationTimeTo!: string\r\n event!: Lookup\r\n selectedSlots!: Lookup[]\r\n currentUserRoles!: Roles[]\r\n waitersList!: Waiter[]\r\n canEditWaiter!: boolean\r\n canEditTable!: boolean\r\n orderDetails?: orderDetails[] | null\r\n}\r\n\r\nexport class orderDetails {\r\n canCancel!: boolean\r\n canEdit!: boolean\r\n orderNumber!: number\r\n currency!: Currency\r\n orderId!: number\r\n orderStatus!: string\r\n orderItems!: orderItems[]\r\n discountName!: string\r\n discountValue!: number\r\n serviceValue!: number\r\n surchargeValue!: number\r\n canManageDiscount!: boolean\r\n canManageSurcharge!: boolean\r\n canPaymentDetails!: boolean\r\n canCheckout!: boolean\r\n subTotal!: number\r\n taxValue!: number\r\n total!: number\r\n paymentDetails!: any[]\r\n\r\n editMode!: boolean\r\n orderNotes!: string\r\n}\r\n\r\nexport class orderItems {\r\n itemsCount?: number\r\n calories?: number\r\n canDelete?: boolean\r\n canEdit?: boolean\r\n curruncyName?: string\r\n description?: string\r\n id: any\r\n itemName?: string\r\n itemPic?: string\r\n itemSize?: any\r\n itemSizes: any\r\n kitchenId: any\r\n kitchenName?: string\r\n menuItemId: any\r\n preparationTime?: string\r\n currentPreparationTime?: number\r\n preparingTimer: any\r\n price?: number\r\n totalItemprice?: number\r\n count?: number\r\n canDirectAdd?: boolean\r\n quantity?: number\r\n paidQuantity?: number\r\n minQuantity?: number\r\n rate?: number\r\n restaurantSizeId?: number\r\n sizeName?: string\r\n specialRequest?: string\r\n status?: string\r\n statusPermissions: any\r\n unWantedOptionalIngredients: any\r\n priceByPiece?: number;\r\n isFree?: boolean;\r\n freeQuantity?: number;\r\n optionalIngredients?: {\r\n icon: string\r\n id: number\r\n isavailable: boolean\r\n name: string\r\n }[]\r\n unWantedOptionIngrediant?: {\r\n icon: string\r\n id: number\r\n isavailable: boolean\r\n name: string\r\n }[]\r\n additions?: {\r\n id: any\r\n name: string\r\n itemAdditionlist: {\r\n id: number\r\n isSelected: boolean\r\n name: string\r\n }[]\r\n }[]\r\n additionsOptions: any\r\n variantsOptions: any\r\n mainIngredients?: {\r\n icon: string\r\n id: number\r\n isSelected: boolean\r\n name: string\r\n }[]\r\n variants?: {\r\n id: any\r\n name: string\r\n itemVariantlist: {\r\n id: number\r\n isSelected: boolean\r\n name: string\r\n }[]\r\n }[]\r\n}\r\n\r\nexport class changeStatus {\r\n restaurantId!: number\r\n reservationId!: number\r\n reservationStatus!: any\r\n}\r\n\r\nexport enum CancellationBytype {\r\n System = 'System',\r\n Restaurant = 'Restaurant',\r\n Gust = 'Gust'\r\n}\r\n\r\nexport class Roles {\r\n id!: any\r\n nameAr!: string\r\n nameEn!: string\r\n roleType!: string\r\n}\r\n\r\nexport enum RoleType {\r\n Dynamic,\r\n RestaurantOwnerRole,\r\n RestaurantManagerRole,\r\n RestaurantChefRole,\r\n RestaurantResponsibleChefRole,\r\n RestaurantHost,\r\n RestaurantServer,\r\n}\r\n\r\n\r\nexport enum OngoingStatusEnum {\r\n Arrived = 'Arrived',\r\n Seated = 'Seated',\r\n}\r\nexport enum CancelStatusEnum {\r\n Cancelled = 'Cancelled',\r\n NoShow = 'NoShow',\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ReservationFormResponse, ReservationGuest, ReservationTypeEnum, Filter, ReservationForm, ListData, ChangeReservationTable } from '../models/Reservation';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReservationsService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n closeDetails = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n AllReservationVisualView(filter: Filter) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/AllReservationVisualView`, filter);\r\n }\r\n saveRecord(data: ReservationForm) {\r\n if (data.reservationId) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResEditReservation`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResAddNewReservation`, data);\r\n }\r\n }\r\n ResCheckReservation(data: ReservationForm) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResCheckReservation`, data);\r\n }\r\n ResCheckUserRestaurant(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResCheckUserRestaurant?RestaurantId=${RestaurantId}`);\r\n }\r\n\r\n ResReservationChannels(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResReservationChannels?RestaurantId=${RestaurantId}`);\r\n }\r\n ResReservationEvents(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResReservationEvents?RestaurantId=${RestaurantId}`);\r\n }\r\n ResReservationDates(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResReservationDates`, data);\r\n }\r\n ResReservationPrefrences(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResReservationPrefrences?RestaurantId=${RestaurantId}`);\r\n }\r\n ResGetTags() {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResGetTags`);\r\n }\r\n ResFloorsList(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResFloorsList?restaurantId=${restaurantId}`);\r\n }\r\n ResFloors(RestaurantId: number, ReservationDate: string, ReservationType: ReservationTypeEnum | string, floorId: number) {\r\n let data = {\r\n RestaurantId,\r\n ReservationDate,\r\n ReservationType,\r\n floorId\r\n };\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResFloors`, data);\r\n }\r\n ResCheckCustomer(RestaurantId: number, searchText: string) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResCheckCustomer?RestaurantId=${RestaurantId}&searchText=${searchText}`);\r\n }\r\n AllReservation(filter: Filter) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/AllReservation`, filter);\r\n }\r\n GetReservationById(ReservationId?: any) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/GetReservationById?ReservationId=${ReservationId}`);\r\n }\r\n ResChangeReservationStatus(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResChangeReservationStatus`, data);\r\n }\r\n ResBlockTabel(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResBlockTabel`, data);\r\n }\r\n ResWaitersReservationList(RestaurantId: any, ReservationDate: any) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResWaitersReservationList?RestaurantId=${RestaurantId}&ReservationDate=${ReservationDate}`);\r\n }\r\n ResFloorsChangeTable(reservationId: number, floorId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResFloorsChangeTable?reservationId=${reservationId}&floorId=${floorId}`);\r\n }\r\n ResCheckReservationChangeTable(data: ChangeReservationTable) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResCheckReservationChangeTable`, data);\r\n }\r\n ResEditReservationTable(data: ChangeReservationTable) {\r\n return this.http.post(`${environment.apiUrl}/ResReservation/ResEditReservationTable`, data);\r\n }\r\n ResReservationExtendDuration(reservationId: any, TotalNewTime: any) {\r\n return this.http.get(`${environment.apiUrl}/ResReservation/ResReservationExtendDuration?reservationId=${reservationId}&TotalNewTime=${TotalNewTime}`);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { CategoryService } from 'src/app/features/configrations/ingredients-category/services/Category.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { ListData, ListFilter, PageData, sortList } from '../../../models/List.Ingredient';\r\nimport { RestaurantIngredientService } from '../../../services/Ingredients.service';\r\n\r\nexport interface DialogData {\r\n selectedItems: any[],\r\n restaurantId: number\r\n}\r\n@Component({\r\n selector: 'app-ingredient-form',\r\n templateUrl: './ingredient-form.component.html'\r\n})\r\nexport class IngredientFormComponent extends DirtyComponent implements OnInit {\r\n dataLoading = false;\r\n pageIndex = 0;\r\n pageSize = 20;\r\n pageCount = 0;\r\n recordsData!: ListData | null;\r\n filterModel: ListFilter = new ListFilter();\r\n dataList: PageData[] = [];\r\n\r\n restaurantIngredients: any[] = []\r\n selectedIngredients: any[] = []\r\n selectedIngredientsCopy: any = []\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n categoryList: any[] = [];\r\n categorySelected?: any;\r\n searchText?: any;\r\n noSpecialTxt = Patterns.noSpecialTxt;\r\n override formGroup!: FormGroup;\r\n\r\n subscriptions: Subscription[] = []\r\n\r\n constructor(\r\n private service: RestaurantIngredientService,\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService,\r\n private categoryService: CategoryService,\r\n private formBuilder: FormBuilder,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(translate)\r\n }\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filterModel.pageSize = this.pageSize;\r\n this.filterModel.restaurantId = this.data.restaurantId;\r\n this.getAll();\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getAll();\r\n }\r\n })\r\n )\r\n this.getCategories()\r\n\r\n this.restaurantIngredients = JSON.parse(JSON.stringify(this.data.selectedItems))\r\n this.restaurantIngredients.map((item, index) => {\r\n this.restaurantIngredients[index] = item.ingredient\r\n })\r\n this.selectedIngredientsCopy = JSON.parse(JSON.stringify(this.selectedIngredients))\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n\r\n override canDeactivate() {\r\n return (this.selectedIngredients.length !== this.selectedIngredientsCopy.length) || this.searchText || this.categorySelected;\r\n }\r\n\r\n\r\n getCategories() {\r\n this.categoryService.getAllCategory()\r\n .subscribe(\r\n (data: any) => {\r\n this.categoryList = data as [];\r\n }, (err: any) => {\r\n console.error(err);\r\n });\r\n }\r\n getNextPage() {\r\n if (this.pageIndex < this.pageCount - 1) {\r\n this.pageIndex += 1;\r\n this.getAll();\r\n }\r\n }\r\n\r\n selected(event?: any, item?: any) {\r\n if (event.checked) {\r\n this.selectedIngredients.push(item)\r\n } else {\r\n let findItem = this.selectedIngredients.findIndex(x => x.id == item.id)\r\n if (findItem != -1) {\r\n this.selectedIngredients.splice(findItem, 1)\r\n }\r\n }\r\n }\r\n makeFilter() {\r\n this.pageIndex = 0;\r\n this.dataList = [];\r\n this.getAll();\r\n }\r\n getAll() {\r\n if (this.pageIndex == 0) {\r\n this.dataLoading = true;\r\n }\r\n this.filterModel.pageNumber = this.pageIndex;\r\n this.filterModel.searchText = this.searchText;\r\n this.filterModel.categoryId = this.categorySelected;\r\n\r\n this.service.GetIngredientForRestaurant(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n if (data.pageData) {\r\n this.dataList = this.dataList.concat(data.pageData);\r\n this.dataList.map(item => {\r\n let findSelected = this.selectedIngredients.find(x => x.id == item.id);\r\n let findRestSelected = this.restaurantIngredients.find(x => x.id == item.id);\r\n\r\n item.canSelect = findRestSelected ? false : true\r\n item.isSelected = (findSelected || findRestSelected) ? true : false\r\n })\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n // hideOption(item: any) {\r\n // // return this.searchText ? item.name.includes(this.searchText) === false : false;\r\n // return this.searchText ? (item.title_AR.toLowerCase().includes(this.searchText.toLowerCase()) || item.title_EN.toLowerCase().includes(this.searchText.toLowerCase())) === false : false;\r\n // }\r\n // hideByCategory(item: any) {\r\n // return this.categorySelected ? item.categoryId != this.categorySelected : false\r\n // }\r\n // isAllHidden() {\r\n // return this.recordsData?.pageData.every(item => this.hideOption(item) || this.hideByCategory(item) || !item.canSelect);\r\n // }\r\n\r\n // hasRecordsData() {\r\n // return (\r\n // !this.isAllHidden() &&\r\n // this.recordsData?.pageData\r\n // && this.recordsData?.pageData?.length\r\n // && this.restaurantIngredients.length != this.recordsData?.pageData?.length\r\n // )\r\n // }\r\n\r\n saveRecord() {\r\n const selected = this.selectedIngredients.filter(item => item.isSelected);\r\n this.dialogRef.close(selected);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

{{\"restaurant.Add Ingredients\" | translate}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{'forms.Filter by Category' | translate}}\r\n \r\n {{'forms.None' | translate}}\r\n {{category.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { Currency, Lookup } from 'src/app/models/Lookup';\r\nimport Swal from 'sweetalert2';\r\nimport { IngFilter, Ingredient, IngredientList, IngredientListItem, IngredientObject, IngredientUnit, ListData, ListFilter, Record } from '../../models/List.Ingredient';\r\nimport { RestaurantDetails } from '../../models/List.Restaurant';\r\nimport { RestaurantIngredientService } from '../../services/Ingredients.service';\r\nimport { RestaurantService } from '../../services/Restaurant.service';\r\nimport { IngredientFormComponent } from './ingredient-form/ingredient-form.component';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { CostPriceMethodEnum, IngredListData } from 'src/app/features/warehouses/models/Ingredient';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\n\r\n@Component({\r\n selector: 'app-ingredients',\r\n templateUrl: './ingredients.component.html'\r\n})\r\nexport class IngredientsComponent extends DirtyComponent implements OnInit {\r\n\r\n loading = true;\r\n isSubmitted = false;\r\n\r\n unitsData: Record[] = [];\r\n\r\n pageIndex = 0;\r\n pageSize = 999999;\r\n filterModel: IngFilter = new IngFilter();\r\n resultData: any;\r\n ingredientList: any[] = [];\r\n // ingredientListCopy: any[] = [];\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n ingredientId?: any;\r\n restaurantName?: any;\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n restaurantData: any;\r\n isProfile!: any;\r\n checkLoading = '';\r\n\r\n allIngredients: any = []\r\n allIngredientsLoading = true;\r\n\r\n defaultCurrency!: Currency;\r\n\r\n costPriceMethods = [\r\n { name: this.translate.instant('warehouse.fixed'), value: CostPriceMethodEnum.Fixed },\r\n { name: this.translate.instant('warehouse.FromTransactions'), value: CostPriceMethodEnum.FromTransactions },\r\n ];\r\n\r\n constructor(\r\n private route: ActivatedRoute, public dialog: MatDialog,\r\n translate: TranslateService, private service: RestaurantIngredientService,\r\n private restaurantService: RestaurantService,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private lookupsService: LookupsService\r\n ) {\r\n super(translate)\r\n // this.route.params.subscribe(params => {\r\n // this.restaurantId = params['id'];\r\n // });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n this.route.queryParams.subscribe(params => {\r\n if (params['isProfile']) {\r\n this.isProfile = [params['isProfile']];\r\n }\r\n });\r\n this.getAllIngredients();\r\n this.getAllUnits();\r\n }\r\n\r\n DefaultCurrency() {\r\n this.lookupsService.RestaurantDefaultCurrency(this.restaurantId)\r\n .subscribe(\r\n data => {\r\n this.defaultCurrency = data as Currency;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n restaurantId: this.restaurantId,\r\n ingredients: this.formBuilder.array([])\r\n })\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n this.restaurantId = this.restaurantId ? this.restaurantId : restaurantId;\r\n this.formGroup.controls['restaurantId'].setValue(this.restaurantId);\r\n })\r\n }\r\n\r\n getAll(restId?: any) {\r\n this.ingredientList = [];\r\n this.clearFormArray(this.ingrFormArray);\r\n this.isSubmitted = false;\r\n this.loading = true;\r\n if (restId && restId != this.restaurantId) {\r\n this.restaurantId = restId;\r\n }\r\n this.filterModel.pageNumber = this.pageIndex;\r\n this.filterModel.pageSize = this.pageSize;\r\n this.filterModel.restaurantId = this.restaurantId;\r\n\r\n this.service.GetRestaurantIngredient(this.filterModel).subscribe(\r\n (data: IngredientObject) => {\r\n this.loading = false;\r\n if (data) {\r\n this.resultData = data;\r\n this.ingredientList = data.restaurantIngredientDtos;\r\n this.restaurantName = data.restaueantName;\r\n this.ingredientList.forEach((element, index) => {\r\n this.ingrFormArray.push(this.newIngredient(element));\r\n // if (!element.canEditIngredient) {\r\n // this.getIngrCtr(index, 'ingredientId').disable();\r\n // }\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this.ingredientList = [];\r\n });\r\n }\r\n\r\n getAllIngredients() {\r\n this.allIngredients = [];\r\n this.allIngredientsLoading = true;\r\n let filterModel: any = {\r\n pageNumber: 0,\r\n pageSize: 999999\r\n }\r\n this.service.GetIngredientForRestaurant(filterModel).subscribe(\r\n (data: any) => {\r\n this.allIngredientsLoading = false;\r\n if (data) {\r\n this.allIngredients = data.pageData;\r\n }\r\n },\r\n (error: any) => {\r\n this.allIngredients = [];\r\n });\r\n }\r\n\r\n dropIngredientSearch(data: any) {\r\n return new RegExp(data, 'i').test(data) === false\r\n }\r\n\r\n selectedIngr($event: any, i: number) {\r\n if (this.resultData) {\r\n this.resultData.restaurantIngredientDtos[i].ingredient = this.ingredientList.find((x: any) => x.id == $event.value);\r\n }\r\n }\r\n getAllUnits() {\r\n this.service.GetIngredientUnit().subscribe(\r\n (data: Record[]) => {\r\n if (data) {\r\n this.unitsData = data;\r\n }\r\n },\r\n (error: any) => {\r\n this.unitsData = [];\r\n });\r\n }\r\n\r\n // Push new Ingredient || Remove\r\n newIngredient(ingr: any = null): FormGroup {\r\n return this.formBuilder.group({\r\n id: [ingr?.id],\r\n restaurantId: this.restaurantId,\r\n ingredientId: [ingr?.ingredientId, Validators.required],\r\n ingredientUnitId: [ingr?.ingredientUnitId, Validators.required],\r\n costPriceMethod: [ingr?.costPriceMethod ? ingr?.costPriceMethod : CostPriceMethodEnum.FromTransactions, [Validators.required]],\r\n costPrice: [ingr?.costPrice, [\r\n Validators.min(0),\r\n Validators.max(999999),\r\n Validators.pattern(Patterns.price2decimal)\r\n ]]\r\n })\r\n }\r\n ingrHasError(controlName: string, index: number, errorName: string) {\r\n return (this.ingrFormArray.controls[index] as FormGroup).controls[controlName].hasError(errorName);\r\n }\r\n get ingrFormArray(): FormArray {\r\n return this.formGroup.get(\"ingredients\") as FormArray\r\n }\r\n getIngrCtr(index: number, name: string): any {\r\n return (this.ingrFormArray.controls[index] as FormGroup).controls[name]\r\n }\r\n addIngr() {\r\n this.resultData?.restaurantIngredientDtos.push({\r\n id: null,\r\n restaurantId: this.restaurantId,\r\n wareHouseId: null,\r\n ingredientId: null,\r\n ingredientUnitId: null,\r\n canEditIngredient: true,\r\n canDeleteIngredient: true,\r\n });\r\n this.ingrFormArray.push(this.newIngredient());\r\n }\r\n clearFormArray = (formArray: FormArray) => {\r\n while (formArray.length !== 0) {\r\n formArray.removeAt(0)\r\n }\r\n }\r\n\r\n validateDuplicate(index: any = null) {\r\n let selectedValues: any = [];\r\n this.ingrFormArray.controls.forEach((group, i) => {\r\n const ingredientId = (group as FormGroup).controls['ingredientId'];\r\n const ingredientUnitId = (group as FormGroup).controls['ingredientUnitId'];\r\n\r\n if (ingredientId.value && ingredientUnitId.value) {\r\n if (selectedValues.some((x: any) => x.ingredientId == ingredientId.value && x.ingredientUnitId == ingredientUnitId.value)) {\r\n if (index != null) {\r\n this.getIngrCtr(index, 'ingredientId').setErrors({ 'duplicated': true });\r\n this.getIngrCtr(index, 'ingredientUnitId').setErrors({ 'duplicated': true });\r\n } else {\r\n ingredientId.setErrors({ 'duplicated': true });\r\n ingredientUnitId.setErrors({ 'duplicated': true });\r\n }\r\n }\r\n else {\r\n selectedValues.push({\r\n ingredientId: ingredientId.value,\r\n ingredientUnitId: ingredientUnitId.value\r\n });\r\n ingredientId.setErrors(null)\r\n ingredientUnitId.setErrors(null)\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeIngredient(index: number) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n if (this.resultData?.restaurantIngredientDtos[index].id) {\r\n // Type = 1 for Delete\r\n let ingredientData = {\r\n id: this.resultData?.restaurantIngredientDtos[index].id,\r\n type: 1\r\n }\r\n this.checkLoading = ingredientData.id;\r\n this.service.checkPermission(ingredientData).subscribe((res: any) => {\r\n if (res) {\r\n this.resultData?.restaurantIngredientDtos.splice(index, 1);\r\n this.ingrFormArray.removeAt(index);\r\n this.validateDuplicate();\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.YoucanotDeleteThisIngredientItsUsedWithMenuItem'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n this.checkLoading = '';\r\n })\r\n } else {\r\n this.resultData?.restaurantIngredientDtos.splice(index, 1);\r\n this.ingrFormArray.removeAt(index);\r\n this.validateDuplicate();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeCostPriceMethod(index: number) {\r\n (this.ingrFormArray.controls[index] as FormGroup).controls['costPrice'].reset()\r\n }\r\n changeIngredientUnit(index: number) {\r\n if (!this.resultData?.restaurantIngredientDtos[index].id) return;\r\n let ingredient = this.resultData?.restaurantIngredientDtos[index];\r\n // Type = 0 for Edit\r\n let ingredientData = {\r\n id: ingredient.id,\r\n type: 0\r\n }\r\n this.checkLoading = ingredient.id + '_unit';\r\n this.service.checkPermission(ingredientData).subscribe((res) => {\r\n if (res == false) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.YoucanotEditThisIngredientUnitItsUsedWithMenuItem'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n }).then((result) => {\r\n this.getIngrCtr(index, 'ingredientId').setValue(ingredient.ingredientId);\r\n this.getIngrCtr(index, 'ingredientUnitId').setValue(ingredient.ingredientUnitId);\r\n this.validateDuplicate();\r\n });\r\n }\r\n this.checkLoading = '';\r\n })\r\n }\r\n\r\n openIngredientForm() {\r\n const dialogRef = this.dialog.open(IngredientFormComponent, {\r\n width: '50rem',\r\n data: { selectedItems: this.ingredientList, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && result.length) {\r\n result.forEach((element: any) => {\r\n let findItem = this.ingredientList.find(x => x.ingredientId == element.id);\r\n if (!findItem) {\r\n const IngredientItem = new IngredientList();\r\n IngredientItem.ingredientId = element.id\r\n IngredientItem.ingredient = element\r\n IngredientItem.ingredientUnit = new IngredientUnit()\r\n IngredientItem.canEditIngredient = true;\r\n IngredientItem.canDeleteIngredient = true;\r\n this.ingredientList.push(IngredientItem);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // override canDeactivate(): boolean {\r\n // return this.ingredientList?.length !== this.ingredientListCopy?.length\r\n // }\r\n // override openConfirmDialog() {\r\n // if (this.canDeactivate()) {\r\n // return Swal.fire({\r\n // title: this.translate.instant('swalMsg.are you sure you want to discard all the changes'),\r\n // text: this.leaveMsg || this.translate.instant('swalMsg.It looks like youre in the middle of updating the menu but havent saved the changes yet'),\r\n // imageUrl: './assets/images/icons/warning-ic.svg',\r\n // showCancelButton: true,\r\n // confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n // cancelButtonText: this.translate.instant('swalMsg.No'),\r\n // width: '560'\r\n // }).then((result) => {\r\n // if (result.value) {\r\n // this.ingredientListCopy = JSON.parse(JSON.stringify(this.ingredientList));\r\n // // if (isCancelled) {\r\n // // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // // } else {\r\n // // this.dialogRef?.close();\r\n // // this.close.emit(true);\r\n // // }\r\n // this.dialogRef?.close();\r\n // this.close.emit(true);\r\n // this.getAll(this.restaurantId);\r\n // return true;\r\n // }\r\n // else {\r\n // return false;\r\n // }\r\n // });\r\n // } else {\r\n // // if (isCancelled) {\r\n // // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // // } else {\r\n // // this.dialogRef?.close();\r\n // // this.close.emit(true);\r\n // // }\r\n // this.dialogRef?.close();\r\n // this.close.emit(true);\r\n // this.getAll(this.restaurantId);\r\n // }\r\n // return false;\r\n // }\r\n\r\n // validateForm() {\r\n // return this.ingredientList.filter(item => item.ingredientUnit.id).length == this.ingredientList.length\r\n // }\r\n\r\n // saveRecord() {\r\n // this.isSubmitted = true;\r\n // if (this.validateForm()) {\r\n // this.loading = true;\r\n\r\n // let data = JSON.parse(JSON.stringify(this.ingredientList))\r\n // data.map((item: any) => {\r\n // item.ingredientUnitId = item.ingredientUnit.id\r\n // delete item.ingredient\r\n // delete item.ingredientUnit\r\n // })\r\n\r\n // let obj = {\r\n // restaurantId: this.restaurantId,\r\n // ingredients: data\r\n // }\r\n\r\n // let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n // this.service.saveRecord(obj).subscribe(() => {\r\n // this.loading = false;\r\n // Swal.fire({\r\n // title: this.translate.instant('swalMsg.Success'),\r\n // text: msg,\r\n // icon: 'success',\r\n // confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n // });\r\n // this.ingredientListCopy = JSON.parse(JSON.stringify(this.ingredientList));\r\n // this.getAll(this.restaurantId);\r\n // // if (this.restaurantId) {\r\n // // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // // } else {\r\n // // this.getAll(this.restaurantId);\r\n // // }\r\n // }, error => {\r\n // this.loading = false;\r\n // Swal.fire({\r\n // title: this.translate.instant('swalMsg.Failed'),\r\n // text: error.detail,\r\n // icon: 'error',\r\n // confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n // });\r\n // });\r\n // }\r\n // }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n // this.formGroup.markAllAsTouched();\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n\r\n this.service.saveRecord(this.formGroup.getRawValue()).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.savedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(this.restaurantId);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n GetScreenData() {\r\n this.getAll(this.restaurantId);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n this.DefaultCurrency();\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'restaurant.Menu units are the measuring units used to determine the quantity of ingredients while they are included in menu items.' | translate}}
\r\n
\r\n
\r\n
{{'restaurant.You cannot edit any measurement unit of any ingredient in case its already included in any menu item.' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{\"restaurant.Ingredient Name\" | translate}}{{\"warehouse.Storage unit\" | translate}}{{\"content2.Price\" | translate}}
\r\n \r\n \r\n \r\n
\r\n
\r\n {{ item.name | shortName }}\r\n \r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {{ item.name | shortName }}\r\n \r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'forms.Required' | translate }}\r\n {{ 'forms.Duplicated' | translate }}\r\n
\r\n
\r\n \r\n \r\n {{item.name}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n {{ 'forms.Duplicated' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{method.name}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n
\r\n \r\n \r\n \r\n
{{defaultCurrency.currencyCode}}
\r\n {{ 'forms.Required' | translate\r\n }}\r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { Record } from '../../../models/List.MenuCategories';\r\nimport { MenuCategoryService } from '../../../services/MenuCategories.service';\r\n\r\nexport interface DialogData {\r\n record: Record,\r\n restaurantId: number\r\n}\r\n@Component({\r\n selector: 'app-menu-categories-form',\r\n templateUrl: './menu-categories-form.component.html'\r\n})\r\nexport class MenuCategoriesFormComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n dataLoading = false;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n\r\n constructor(\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private formBuilder: FormBuilder,\r\n private service: MenuCategoryService,\r\n translate: TranslateService\r\n ) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(20),\r\n // Validators.pattern(Patterns.enTxt)\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(20),\r\n // Validators.pattern(Patterns.arTxt)\r\n ]],\r\n restaurantId: [this.data.restaurantId]\r\n });\r\n }\r\n\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n title_EN: this.data.record.title_EN,\r\n title_AR: this.data.record.title_AR,\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n id: '',\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.record.id;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.saveRecord(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n this.service.refreshList.next(true);\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n

{{\"content3.\" + (isUpdate ? 'Update' : 'Add New') + \" Category\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"forms.Category Name\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n\r\n \r\n {{\"forms.Category Name in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport Swal from 'sweetalert2';\r\nimport { ListData, ListFilter, sortList, Record } from '../../models/List.MenuCategories';\r\nimport { RestaurantDetails } from '../../models/List.Restaurant';\r\nimport { MenuCategoryService } from '../../services/MenuCategories.service';\r\nimport { RestaurantService } from '../../services/Restaurant.service';\r\nimport { MenuCategoriesFormComponent } from './menu-categories-form/menu-categories-form.component';\r\n\r\n@Component({\r\n selector: 'app-menu-categories',\r\n templateUrl: './menu-categories.component.html'\r\n})\r\nexport class MenuCategoriesComponent implements OnInit {\r\n\r\n dataLoading = true;\r\n showFilter = false;\r\n showSearch = false;\r\n\r\n restaurantName?: string;\r\n allRestaurants: RestaurantDetails[] = [];\r\n sortItems = [\r\n { name: this.translate.instant('content.Name'), value: sortList.Name },\r\n { name: this.translate.instant('forms.Recently added'), value: sortList.NewestCreate },\r\n { name: this.translate.instant('content.Oldest added'), value: sortList.OldestCreate },\r\n { name: this.translate.instant('menu.Highest number of Use'), value: sortList.HighestUse },\r\n { name: this.translate.instant('menu.Lowest number of Use'), value: sortList.LowestUse },\r\n ];\r\n\r\n pageIndex = 0;\r\n pageCount = 0;\r\n pageSize = 8;\r\n recordsData!: ListData | null;\r\n filterModel: ListFilter = new ListFilter();\r\n\r\n filterFormGroup: FormGroup = new FormGroup({});\r\n today = new Date();\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n sortItemSelected?: any;\r\n restaurantIdParam!: any;\r\n restaurantData: any;\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n subscriptions: Subscription[] = []\r\n isProfile!: any\r\n constructor(\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n public translate: TranslateService,\r\n private service: MenuCategoryService,\r\n private formBuilder: FormBuilder,\r\n private restaurantService: RestaurantService,\r\n private router: Router) {\r\n // this.route.params.subscribe(params => {\r\n // this.restaurantIdParam = params['id'];\r\n // });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(params => {\r\n if (params['isProfile']) {\r\n this.isProfile = [params['isProfile']];\r\n }\r\n });\r\n this.filterModel.pageSize = this.pageSize;\r\n this.filterModel.sortItems = sortList.NewestCreate;\r\n this.buildFilterForm();\r\n // this.GetRestaurants()\r\n // this.getAll(null);\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getAll(null);\r\n }\r\n })\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n buildFilterForm() {\r\n this.filterFormGroup = this.formBuilder.group({\r\n createdFrom: [null],\r\n createdTo: [null],\r\n numberOfItemfrom: [null],\r\n numberOfItemto: [null],\r\n });\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.restaurantService.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n getAll(event: any, restId?: any) {\r\n this.restaurantId = restId\r\n this.filterModel.restaurantId = this.restaurantId\r\n this.dataLoading = true;\r\n\r\n if (!event) {\r\n this.pageIndex = 0;\r\n }\r\n if (event && event.pageSize) {\r\n this.pageIndex = event.pageIndex;\r\n this.filterModel.pageSize = event.pageSize;\r\n }\r\n this.filterModel.pageNumber = this.pageIndex;\r\n\r\n this.service.getAll(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.restaurantName = data.restaurantName\r\n this.pageCount = Math.ceil(this.recordsData.totalCount / this.filterModel.pageSize);\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n\r\n makeSearch() {\r\n if (!this.showSearch) {\r\n this.showSearch = true; // Show input\r\n } else {\r\n if (this.filterModel.searchText) {\r\n this.getAll(null, this.restaurantId);\r\n }\r\n }\r\n }\r\n\r\n resetSearch() {\r\n this.filterModel.searchText = '';\r\n this.getAll(null, this.restaurantId);\r\n }\r\n\r\n makeFilter() {\r\n const controls = this.filterFormGroup.controls;\r\n this.filterModel.createdFrom = controls['createdFrom'].value;\r\n this.filterModel.createdTo = controls['createdTo'].value;\r\n this.filterModel.numberOfItemfrom = controls['numberOfItemfrom'].value;\r\n this.filterModel.numberOfItemto = controls['numberOfItemto'].value;\r\n\r\n this.getAll(null, this.restaurantId);\r\n }\r\n\r\n clearFilter() {\r\n this.filterModel = new ListFilter();\r\n this.filterModel.sortItems = sortList.NewestCreate;\r\n this.filterModel.pageSize = this.pageSize\r\n this.getAll(null, this.restaurantId);\r\n this.filterFormGroup.reset();\r\n }\r\n\r\n\r\n ////////////////////////////////////////////\r\n\r\n\r\n // record: Record\r\n openForm(record: any | null = null) {\r\n const dialogRef = this.dialog.open(MenuCategoriesFormComponent, {\r\n width: '50rem',\r\n data: { record, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll(true, this.restaurantId);\r\n }\r\n });\r\n }\r\n\r\n deleteRecord(recordId: string) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll(true, this.restaurantId);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n GetScreenData() {\r\n this.getAll(null, this.restaurantId);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n {{recordsData?.totalCount}} {{ \"content3.Categories\" | translate }}\r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n clear\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n

{{\"general.Filter by\" | translate}}

\r\n
\r\n
\r\n \r\n {{\"forms.Creation Date From\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Creation Date To\" | translate}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"content4.numberOfItemfrom\" | translate}}\r\n \r\n \r\n
\r\n
\r\n \r\n {{\"content4.numberOfItemto\" | translate}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{item.title_EN}}

\r\n

{{item.title_AR}}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n {{item.numberOfUse}} {{\"forms.Items\" | translate}}\r\n
    \r\n \r\n
  • \r\n
  • {{\"content.Added on\" | translate}}: {{item.created | date:'d MMM, y - h:mm a'}}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
1 || recordsData['totalCount'] > pageSize)\">\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AmenitiesLookup } from 'src/app/features/restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n selectedItems: any[],\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-amenities-form',\r\n templateUrl: './amenities-form.component.html'\r\n})\r\nexport class AmenitiesFormComponent extends DirtyComponent implements OnInit {\r\n dataLoading = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n recordsData: AmenitiesLookup[] = []\r\n isSubmitted = false;\r\n selectedAmenities: any[] = []\r\n\r\n amenities: AmenitiesLookup[] = []\r\n amenitiesCopy: any = []\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n searchText?: any;\r\n constructor(\r\n private service: LookupsService,\r\n private restaurantService: RestaurantService,\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(translate)\r\n }\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetAmenities();\r\n\r\n this.selectedAmenities = JSON.parse(JSON.stringify(this.data.selectedItems));\r\n this.amenitiesCopy = JSON.stringify(this.selectedAmenities);\r\n }\r\n\r\n GetAmenities() {\r\n this.dataLoading = true;\r\n this.service.GetAllAmenities().subscribe((data: any) => {\r\n this.dataLoading = false;\r\n this.amenities = data\r\n this.amenities.map((item: AmenitiesLookup) => {\r\n let findSelected = this.selectedAmenities.find((x: AmenitiesLookup) => x.id == item.id);\r\n item.isSelected = findSelected ? true : false\r\n item.canDelete = findSelected ? findSelected.canDelete : true\r\n })\r\n })\r\n }\r\n override canDeactivate(): boolean {\r\n return JSON.stringify(this.selectedAmenities).length !== this.amenitiesCopy.length || this.searchText\r\n };\r\n\r\n\r\n selected(event?: any, item?: any) {\r\n if (event.checked) {\r\n this.selectedAmenities.push(item)\r\n } else {\r\n this.selectedAmenities.splice(item, 1)\r\n }\r\n }\r\n isAllHidden() {\r\n return this.amenities.every(item => this.hideOption(item));\r\n }\r\n hideOption(item: any) {\r\n return new RegExp(this.searchText, 'i').test(item.title_EN) === false && new RegExp(this.searchText, 'i').test(item.title_AR) === false\r\n }\r\n\r\n hasRecordsData() {\r\n return (\r\n !this.isAllHidden() &&\r\n this.amenities\r\n && this.amenities.length\r\n && this.data.selectedItems.length != this.amenities.length\r\n )\r\n }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (JSON.stringify(this.selectedAmenities).length !== this.amenitiesCopy.length) {\r\n this.dataLoading = true;\r\n\r\n let amenities =\r\n this.amenities.filter((item: any) => item.isSelected).map((x: any) => {\r\n return {\r\n amenitiesId: x.id\r\n }\r\n })\r\n\r\n let data = {\r\n amenities,\r\n restaurantId: this.data.restaurantId,\r\n };\r\n\r\n\r\n this.restaurantService.SaveRestaurantAmenities(data).subscribe(() => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Warning'),\r\n text: this.translate.instant('swalMsg.noChangesHappens'),\r\n icon: 'warning',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }\r\n \r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n
\r\n

{{\"content4.Add Amenities\" | translate}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\nimport { AmenitiesFormComponent } from './amenities-form/amenities-form.component';\r\n\r\n@Component({\r\n selector: 'app-amenities',\r\n templateUrl: './amenities.component.html'\r\n})\r\nexport class AmenitiesComponent implements OnInit {\r\n\r\n dataLoading = false;\r\n @Input() restaurantId: any;\r\n\r\n // Nav scrollable\r\n mouseDown = false;\r\n startX: any;\r\n scrollLeft: any;\r\n slider!: any;\r\n amenitiesData: any;\r\n amenitiesList: any[] = [];\r\n\r\n constructor(public dialog: MatDialog,\r\n private service: RestaurantService,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.restaurantId) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n }\r\n this.GetAmenities()\r\n\r\n }\r\n initSlider() {\r\n this.slider = document.querySelector('#amenities-slider');\r\n }\r\n\r\n startDragging(e?: any, flag?: any) {\r\n this.mouseDown = true;\r\n this.startX = e.pageX - this.slider!.offsetLeft;\r\n this.scrollLeft = this.slider!.scrollLeft;\r\n }\r\n stopDragging(e?: any, flag?: any) {\r\n this.mouseDown = false;\r\n }\r\n moveEvent(e?: any) {\r\n e.preventDefault();\r\n if (!this.mouseDown) {\r\n return;\r\n }\r\n const x = e.pageX - this.slider!.offsetLeft;\r\n const scroll = x - this.startX;\r\n this.slider!.scrollLeft = this.scrollLeft - scroll;\r\n }\r\n\r\n GetAmenities() {\r\n this.dataLoading = true;\r\n this.service.GetRestaurantAmenities(this.restaurantId).subscribe((data: any) => {\r\n this.dataLoading = false;\r\n this.amenitiesData = data;\r\n this.amenitiesList = data.restaurantAmenitiesDto;\r\n setTimeout(() => {\r\n this.initSlider();\r\n }, 100);\r\n })\r\n }\r\n\r\n openAmenitiesForm() {\r\n const dialogRef = this.dialog.open(AmenitiesFormComponent, {\r\n width: '50rem',\r\n data: { selectedItems: this.amenitiesList, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GetAmenities()\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
{{'content3.Amenities' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
    \r\n
  • \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n

    {{item.name}}

    \r\n
    \r\n
  • \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantProfile } from '../../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\n\r\n@Component({\r\n selector: 'app-basic-info',\r\n templateUrl: './basic-info.component.html'\r\n})\r\nexport class BasicInfoComponent implements OnInit {\r\n @Input() restaurantProfile?: RestaurantProfile;\r\n\r\n dataLoading = false;\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n constructor(private route: ActivatedRoute,\r\n public translate: TranslateService,\r\n private router: Router,\r\n private service: RestaurantService) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.restaurantId = this.restaurantProfile?.id\r\n }\r\n\r\n DeleteRestaurant() {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.DeleteRestaurant(this.restaurantId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.router.navigate(['/admin/restaurants'])\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{'restaurant.Basic Info' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{'forms.Phone number' | translate}}

\r\n {{restaurantProfile?.phoneCode\r\n + ' ' + restaurantProfile?.phone}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{'forms.Email' | translate}}

\r\n {{restaurantProfile?.mail}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{'forms.Website' | translate}}

\r\n {{restaurantProfile?.website\r\n | slice:0:25}}\r\n {{restaurantProfile?.website!.length > 25 ? '...': ''}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{'forms.Address' | translate}}

\r\n {{restaurantProfile?.streetName}}.\r\n {{restaurantProfile?.city?.name}}, {{restaurantProfile?.country?.name}}.\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{'forms.Owner' | translate}}

\r\n \r\n {{restaurantProfile?.owner?.fName}} {{restaurantProfile?.owner?.lName}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

{{'forms.Manager' | translate}}

\r\n \r\n {{restaurantProfile?.manager?.fName}} {{restaurantProfile?.manager?.lName}}\r\n \r\n
\r\n\r\n edit\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { RefundPolicyService } from '../../../services/Cancellation.service';\r\nimport { exceptionType, ListData, ListFilter, policyType, Reservation } from '../../../models/List.Cancellation';\r\nimport { CancellationFormComponent } from './components/cancellation-form/cancellation-form.component';\r\nimport { ExceptionRuleGuestsTagsComponent } from './components/exception-rule-guests-tags/exception-rule-guests-tags.component';\r\nimport { ExceptionRuleReservationComponent } from './components/exception-rule-reservation/exception-rule-reservation.component';\r\nimport { ShowPolicyComponent } from './components/show-policy/show-policy.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-cancellation',\r\n templateUrl: './cancellation.component.html'\r\n})\r\nexport class CancellationComponent implements OnInit {\r\n dataLoading = false;\r\n recordsData!: ListData | null;\r\n filterModel: ListFilter = new ListFilter();\r\n pageIndex = 0;\r\n pageCount = 0;\r\n // Restaurant ID\r\n restaurantId?: any;\r\n\r\n policyAmount: any;\r\n\r\n exceptionReservationNumber!: Reservation | null;\r\n exceptionTags: any\r\n SelectedTags = []\r\n\r\n // Manager Permission\r\n @Input() canViewCancellationPolicy!: boolean;\r\n @Input() canAddCancellationPolicy!: boolean;\r\n @Input() canEditCancellationPolicy!: boolean;\r\n @Input() canDeleteCancellationPolicy!: boolean;\r\n\r\n subscriptions: Subscription[] = []\r\n\r\n constructor(public dialog: MatDialog, private route: ActivatedRoute, private service: RefundPolicyService,\r\n private translate: TranslateService) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAllCancellation(null);\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getAllCancellation(null);\r\n }\r\n })\r\n )\r\n this.getNoShowPolicy();\r\n this.GetExceptionReservationNumber();\r\n this.GetExceptionTags();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n\r\n addCancellationPolicy(record: any | null = null) {\r\n const dialogRef = this.dialog.open(CancellationFormComponent, {\r\n width: '50rem',\r\n data: { record, restaurantsId: this.restaurantId, id: record }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAllCancellation(this.filterModel.pageNumber);\r\n }\r\n });\r\n }\r\n\r\n\r\n editShowPolicy(amount?: any) {\r\n const dialogRef = this.dialog.open(ShowPolicyComponent, {\r\n width: '460px',\r\n data: { amount, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getNoShowPolicy();\r\n }\r\n });\r\n }\r\n\r\n counter(i: number) { return new Array(i); }\r\n\r\n getAllCancellation(event: any) {\r\n this.dataLoading = true;\r\n if (event) {\r\n this.pageIndex = event;\r\n } else {\r\n this.pageIndex = 0;\r\n }\r\n this.filterModel.pageSize = 4;\r\n this.filterModel.pageNumber = this.pageIndex;\r\n this.filterModel.restaurantId = this.restaurantId;\r\n\r\n this.service.getPolicies(this.filterModel).subscribe(\r\n (data: ListData) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.recordsData = data;\r\n this.pageCount = Math.ceil(this.recordsData.cancellationPolicies.totalCount / this.filterModel.pageSize);\r\n\r\n }\r\n },\r\n (error: any) => {\r\n this.recordsData = null;\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n getNoShowPolicy() {\r\n this.service.GetNoShowPolicy(this.restaurantId).subscribe((data: any) => {\r\n this.policyAmount = data.refund;\r\n })\r\n }\r\n\r\n GetExceptionReservationNumber() {\r\n this.service.GetExceptionReservationNumber(this.restaurantId).subscribe((data: Reservation) => {\r\n this.exceptionReservationNumber = data\r\n })\r\n }\r\n\r\n exceptionRuleForReservation(reservationNumber?: any) {\r\n const dialogRef = this.dialog.open(ExceptionRuleReservationComponent, {\r\n width: '460px',\r\n data: { reservationNumber, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GetExceptionReservationNumber();\r\n }\r\n });\r\n }\r\n\r\n GetExceptionTags() {\r\n this.service.GetExceptionTags(this.restaurantId).subscribe((data: any) => {\r\n this.exceptionTags = data;\r\n })\r\n }\r\n exceptionRuleForGuestsTags() {\r\n const dialogRef = this.dialog.open(ExceptionRuleGuestsTagsComponent, {\r\n width: '460px',\r\n data: {exceptionTags: this.exceptionTags, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GetExceptionTags();\r\n }\r\n });\r\n }\r\n\r\n\r\n deleteCancellationRecord(recordId: any) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (this.recordsData?.cancellationPolicies?.pageData?.length == 1) {\r\n this.filterModel.pageNumber > 0 ? this.filterModel.pageNumber -= 1 : this.filterModel.pageNumber\r\n }\r\n if (this.filterModel.pageNumber == this.pageIndex) {\r\n this.pageIndex = this.filterModel.pageNumber;\r\n this.getAllCancellation(this.filterModel.pageNumber);\r\n } else {\r\n this.getAllCancellation(this.filterModel.pageNumber);\r\n }\r\n\r\n // if (this.recordsData?.cancellationPolicies?.pageData?.length == 1) {\r\n // this.filterModel.pageNumber = this.filterModel.pageNumber - 1\r\n // this.getAllCancellation(this.filterModel.pageNumber);\r\n // }\r\n // else if (this.filterModel.pageNumber == 0) {\r\n // this.getAllCancellation(0);\r\n // }\r\n // else {\r\n // this.filterModel.pageNumber = this.filterModel.pageNumber\r\n // this.getAllCancellation(this.filterModel.pageNumber);\r\n // }\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n changeCancellationPolicyStatus(id?: any, isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangePolicyStatus(id, isActive, this.restaurantId, policyType.CancellationPolicy).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null);\r\n }\r\n }),\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n changeShowPolicyStatus(id?: any, isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangePolicyStatus(id, isActive, this.restaurantId, policyType.No_Show).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n changeExceptionReservationStatus(isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangeExceptionsStatus(isActive, this.restaurantId, exceptionType.ReservationNumber).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n changeExceptionTagStatus(isActive?: boolean) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n // id: number, Status: boolean, restaurantId?: number, policyType?: string\r\n this.service.ChangeExceptionsStatus(isActive, this.restaurantId, exceptionType.Tags).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAllCancellation(null);\r\n }\r\n },\r\n (error: any) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
{{'restaurant.Cancellation & Refund Policies' | translate}}\r\n ({{recordsData?.cancellationPolicies?.totalCount}})\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{'restaurant.Policy Title' | translate}}{{'restaurant.Refund Amount' | translate}}{{'restaurant.Before Booked Reservation Time by' | translate}}
{{item.name}}{{item.refundAmount}}%{{item.beforeReservation}}\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n {{'restaurant.No-Show Policy' | translate}}\r\n

\r\n {{\"restaurant.This policy will be applied once the restaurants host or those who have his permission take a reservation with a No Show action\" | translate}}\r\n

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

{{'restaurant.Refund Amount' | translate }}:

{{policyAmount + '%'}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'restaurant.Exceptions' | translate}}\r\n

\r\n {{\"restaurant.Exceptions mean that certain guests are not charged cancellation fees and are fully refunded\" | translate}}\r\n

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

{{'restaurant.Guests who booked this no. of reservations (all the time)'\r\n | translate }}:

{{exceptionReservationNumber?.reservationNumber}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'restaurant.Guests who got these tags' | translate }}:

\r\n \r\n \r\n \r\n {{tag.name}},\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{'restaurant.Add new Cancellation Policy' | translate}}\r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { Record, ReservationType } from '../../../../../models/List.Cancellation';\r\n\r\n\r\nexport interface DialogData {\r\n record: Record,\r\n restaurantsId: number,\r\n id: string\r\n}\r\n@Component({\r\n selector: 'app-cancellation-form',\r\n templateUrl: './cancellation-form.component.html'\r\n})\r\nexport class CancellationFormComponent extends DirtyComponent implements OnInit {\r\n\r\n Intervals!: ReservationType[];\r\n period?: any;\r\n periodUnit?: any;\r\n refund?: any;\r\n\r\n time?: any\r\n timeUnit?: any\r\n\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.record ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n this.GetReservationTimeType()\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.enTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.arTxtWithSpecial),\r\n Validators.required\r\n ]],\r\n restaurantId: this.data.restaurantsId,\r\n refund: [null, [\r\n Validators.required,\r\n Validators.maxLength(5),\r\n Validators.min(0.001),\r\n Validators.max(100),\r\n Validators.pattern(Patterns.float)]],\r\n beforeTime: [null,[Validators.required, Validators.pattern(Patterns.number), Validators.maxLength(10),]],\r\n beforeTimeType: [null, Validators.required],\r\n // afterTime: [null,[Validators.required, Validators.pattern(Patterns.number), Validators.maxLength(10),]],\r\n // afterTimeType: [null, Validators.required],\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n\r\n bindDataToUpdate() {\r\n this.service.GetPolicyById(this.data.id, this.data.restaurantsId).subscribe((data: any) => {\r\n this.formGroup.patchValue({\r\n title_EN: data.title_EN,\r\n title_AR: data.title_AR,\r\n restaurantId: this.data.restaurantsId,\r\n refund: data.refund,\r\n beforeTime: data.beforeTime,\r\n beforeTimeType: data.beforeTimeType,\r\n // afterTime: data.afterTime,\r\n // afterTimeType: data.afterTimeType\r\n });\r\n })\r\n }\r\n\r\n onPeriodUnitChange(event: MatSelectChange) {\r\n this.periodUnit = event.source.triggerValue\r\n console.log(this.periodUnit);\r\n }\r\n onTimeUnitChange(event: MatSelectChange) {\r\n this.timeUnit = event.source.triggerValue\r\n console.log(this.timeUnit);\r\n }\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n id: '',\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value,\r\n restaurantId: this.data.restaurantsId,\r\n refund: this.formGroup.controls['refund'].value,\r\n beforeTime: this.formGroup.controls['beforeTime'].value,\r\n beforeTimeType: this.formGroup.controls['beforeTimeType'].value,\r\n // afterTime: this.formGroup.controls['afterTime'].value,\r\n // afterTimeType: this.formGroup.controls['afterTimeType'].value,\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.id = this.data.id;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.savePolicyRecord(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n this.service.refreshList.next(true);\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n GetReservationTimeType() {\r\n this.service.GetReservationTimeType().subscribe((data: ReservationType[]) => {\r\n this.Intervals = data;\r\n })\r\n }\r\n}\r\n","\r\n
\r\n

\r\n {{\"restaurant.Add new Cancellation Policy\" | translate}}\r\n

\r\n

\r\n {{\"restaurant.Edit Cancellation Policy\" | translate}}\r\n

\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\"restaurant.Cancellation Policy Title in English\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"restaurant.Cancellation Policy Title in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{\"restaurant.Refund\" | translate}}\r\n \r\n \r\n

%

\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n
\r\n {{\"restaurant.of Paid Deposit\" | translate}}\r\n
\r\n
\r\n
\r\n

{{\"restaurant.Before booked reservations time by\" | translate}}\r\n

\r\n\r\n
\r\n
\r\n \r\n \r\n {{ 'forms.Required' |\r\n translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{ 'restaurant.Intervals' | translate }}\r\n \r\n \r\n {{interval.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{\"content3.Summary\" |\r\n translate}} ({{'restaurant.Viewable by Guests' |\r\n translate}})

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

{{\"restaurant.You will get\" | translate}} {{refund}}%\r\n {{\"restaurant.Refund\" | translate}},\r\n {{\"restaurant.if you cancel within\" | translate}} {{period}} {{periodUnit}}\r\n

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

{{\"restaurant.This summary is auto generated from configuration defined above and will be shown for guests on BonTech Mobile App\" | translate }}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ExceptionTags } from 'src/app/features/restaurants/models/List.Cancellation';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n exceptionTags: any[]\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-exception-rule-guests-tags',\r\n templateUrl: './exception-rule-guests-tags.component.html'\r\n})\r\nexport class ExceptionRuleGuestsTagsComponent extends DirtyComponent implements OnInit {\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data ? true : false;\r\n allTags: any[] = []\r\n tagsCopy: any = [];\r\n selectedTags: any[] = [];\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetExceptionTags();\r\n\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.selectedTags.length !== this.tagsCopy.length\r\n };\r\n\r\n GetExceptionTags() {\r\n this.loading = true;\r\n this.service.GetExceptionTags(this.data.restaurantId).subscribe((data: any) => {\r\n this.loading = false;\r\n this.allTags = data.allTags\r\n this.selectedTags = data.selectedTags || []\r\n this.tagsCopy = JSON.parse(JSON.stringify(this.selectedTags))\r\n\r\n this.allTags.forEach(element => {\r\n if (element.isSelected) {\r\n this.pushSelectedTag(element)\r\n }\r\n });\r\n },\r\n (error: any) => {\r\n this.loading = false;\r\n })\r\n }\r\n\r\n pushSelectedTag(tag?: ExceptionTags) {\r\n if (!this.selectedTags.includes(tag?.id)) {\r\n this.selectedTags.push(tag?.id)\r\n }\r\n }\r\n\r\n onChangeEventFunc(tag: ExceptionTags, isChecked?: any) {\r\n if (isChecked && !this.selectedTags.includes(tag?.id)) {\r\n this.selectedTags.push(tag?.id);\r\n\r\n\r\n } else {\r\n let i = this.selectedTags.indexOf(tag?.id);\r\n if (i !== -1) {\r\n this.selectedTags.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.selectedTags.length > 0) {\r\n this.loading = true;\r\n let data = {\r\n exceptionTags: this.selectedTags,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.exceptionTags = this.selectedTags;\r\n data.restaurantId = this.data.restaurantId\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.EditExceptionTags(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n this.service.refreshList.next(true);\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.youShouldChooseAtLeastOneSelection'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n

{{\"restaurant.Set Exception Rule (Guests Tags)\" | translate}}

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

{{\"restaurant.Choose all guests tags to be excluded from cancellation fees\" | translate}}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n {{tag.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

{{\"general.No Data Found\" | translate}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n reservationNumber: number,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-exception-rule-reservation',\r\n templateUrl: './exception-rule-reservation.component.html'\r\n})\r\nexport class ExceptionRuleReservationComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.reservationNumber ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.data.reservationNumber) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n reservationNumber: [0, [\r\n Validators.maxLength(10),\r\n Validators.required,\r\n ]],\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return this.formGroup.dirty;\r\n };\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n reservationNumber: this.data.reservationNumber,\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n\r\n\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n reservationNumber: this.formGroup.controls['reservationNumber'].value,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.reservationNumber = this.formGroup.controls['reservationNumber'].value,\r\n data.restaurantId = this.data.restaurantId\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.EditReservationNumber(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n this.service.refreshList.next(true);\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n

{{\"restaurant.Set Exception Rule (No. of Reservation)\" | translate}}

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

{{\"restaurant.Except guests who booked this no.of reservation (all the time)\" | translate}}

\r\n
\r\n \r\n {{\"restaurant.No. of Reservation\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RefundPolicyService } from 'src/app/features/restaurants/services/Cancellation.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n amount: number,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-show-policy',\r\n templateUrl: './show-policy.component.html'\r\n})\r\nexport class ShowPolicyComponent extends DirtyComponent implements OnInit {\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.amount ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RefundPolicyService) {\r\n super(translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n amount: [0, [\r\n Validators.required,\r\n Validators.maxLength(20),\r\n Validators.max(100),\r\n Validators.pattern(Patterns.float)\r\n ]],\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n amount: this.data.amount,\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n\r\n\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n amount: this.formGroup.controls['amount'].value,\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.amount = this.formGroup.controls['amount'].value;\r\n data.restaurantId = this.data.restaurantId;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.EditNoShowPolicy(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n this.service.refreshList.next(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n \r\n
\r\n

{{\"restaurant.Set No Show Policy\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"restaurant.Refund Amount\" | translate}}\r\n \r\n

%

\r\n {{ 'forms.Required' | translate }}\r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { GalleryData } from 'src/app/features/restaurants/models/Gallery';\r\nimport { GalleryService } from 'src/app/features/restaurants/services/Gallary.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n restaurantId: number,\r\n galleryData: GalleryData\r\n}\r\n\r\n@Component({\r\n selector: 'app-gallery-form',\r\n templateUrl: './gallery-form.component.html'\r\n})\r\n\r\nexport class GalleryFormComponent extends DirtyComponent implements OnInit {\r\n\r\n dataLoading = false;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n photos: any[] = [];\r\n videos: any[] = [];\r\n\r\n constructor(\r\n private service: GalleryService,\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService\r\n ) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n override canDeactivate(): boolean {\r\n return (this.photos.length || this.videos.length) ? true : false;\r\n };\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.photos.length || this.videos.length) {\r\n this.loading = true;\r\n let data = {\r\n restaurantId: this.data.restaurantId,\r\n photos: this.photos,\r\n videos: this.videos\r\n };\r\n\r\n this.service.saveRecord(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

{{'restaurant.Photos & Videos' | translate}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
{{\"content2.Photos\" | translate}}
\r\n\r\n \r\n
\r\n\r\n
\r\n
{{\"content2.Videos\" | translate}}
\r\n\r\n \r\n
\r\n\r\n

\r\n {{ \"content2.Please add photos or videos\" | translate }}\r\n

\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport lgVideo from 'lightgallery/plugins/video'\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { GalleryFormComponent } from './gallery-form/gallery-form.component';\r\nimport { GalleryService } from '../../../services/Gallary.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { GalleryData, GalleryFile } from '../../../models/Gallery';\r\nimport Swal from 'sweetalert2';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-gallery',\r\n templateUrl: './gallery.component.html'\r\n})\r\nexport class GalleryComponent implements OnInit {\r\n @Input() restaurantId!: number;\r\n dataLoading = false;\r\n\r\n settings = {\r\n counter: true,\r\n plugins: [lgVideo],\r\n selector: '.view-btn',\r\n // videojs: true,\r\n // videojsOptions: {\r\n // muted: true,\r\n // },\r\n // source: [\r\n // {\r\n // src: '/videos/video1.mp4',\r\n // type: 'video/mp4',\r\n // }\r\n // ],\r\n // tracks: [\r\n // {\r\n // src: '/videos/title.txt',\r\n // kind: 'captions'\r\n // }\r\n // ],\r\n // attributes: { preload: false, controls: true },\r\n };\r\n\r\n // Nav scrollable\r\n mouseDown = false;\r\n startX: any;\r\n scrollLeft: any;\r\n slider!: any;\r\n\r\n galleryData!: GalleryData;\r\n\r\n subscriptions: Subscription[] = []\r\n\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private service: GalleryService,\r\n public translate: TranslateService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.restaurantId) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n }\r\n this.getAll();\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getAll();\r\n }\r\n })\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n videoType(item: GalleryFile) {\r\n return JSON.stringify({\r\n \"source\": [\r\n {\r\n \"src\": item.filePath,\r\n \"type\": item.type.toLowerCase() + '/' + item.extension\r\n }\r\n ],\r\n \"attributes\": {\r\n \"preload\": false,\r\n \"playsinline\": true,\r\n \"controls\": true\r\n }\r\n })\r\n }\r\n\r\n getAll() {\r\n this.dataLoading = true;\r\n this.service.getAll(this.restaurantId).subscribe(\r\n (data) => {\r\n this.dataLoading = false;\r\n this.galleryData = data as GalleryData;\r\n setTimeout(() => {\r\n this.initSlider();\r\n }, 100);\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n openForm() {\r\n const dialogRef = this.dialog.open(GalleryFormComponent, {\r\n width: '50rem',\r\n data: {\r\n galleryData: this.galleryData,\r\n restaurantId: this.restaurantId\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getAll();\r\n }\r\n });\r\n }\r\n\r\n deleteRecord(recordId: number) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousureyouwanttodeletethisphoto/video?'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.delete(this.restaurantId, recordId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.photodeletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.getAll();\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n initSlider() {\r\n this.slider = document.querySelector('#gallery-slider');\r\n }\r\n startDragging(e?: any, flag?: any) {\r\n this.mouseDown = true;\r\n this.startX = e.pageX - this.slider!.offsetLeft;\r\n this.scrollLeft = this.slider!.scrollLeft;\r\n }\r\n stopDragging(e?: any, flag?: any) {\r\n this.mouseDown = false;\r\n }\r\n moveEvent(e?: any) {\r\n e.preventDefault();\r\n if (!this.mouseDown) {\r\n return;\r\n }\r\n const x = e.pageX - this.slider!.offsetLeft;\r\n const scroll = x - this.startX;\r\n this.slider!.scrollLeft = this.scrollLeft - scroll;\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
{{'restaurant.Photos & Videos' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantProfile } from '../../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\nimport { RestaurantFormDialogComponent } from '../../restaurant-form-dialog/restaurant-form-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-head-details',\r\n templateUrl: './head-details.component.html'\r\n})\r\nexport class HeadDetailsComponent implements OnInit {\r\n @Input() restaurantProfile?: RestaurantProfile;\r\n\r\n dataLoading = false;\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n\r\n @Output() isReady = new EventEmitter();\r\n // Restaurant ID\r\n restaurantId?: any;\r\n constructor(private route: ActivatedRoute,\r\n public translate: TranslateService,\r\n private router: Router,\r\n private service: RestaurantService,\r\n public dialog: MatDialog) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n DeleteRestaurant() {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dataLoading = true;\r\n this.service.DeleteRestaurant(this.restaurantId).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.deletededsuccessfuly'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.router.navigate(['/admin/restaurants'])\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n openForm() {\r\n const dialogRef = this.dialog.open(RestaurantFormDialogComponent, {\r\n width: '50rem',\r\n data: {\r\n record: this.restaurantProfile\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.service.refreshDetails.next(true);\r\n }\r\n });\r\n }\r\n\r\n print(): void {\r\n const basicUrl = location.origin;\r\n let style = basicUrl + '/assets/scss/rest-Qrcode.print.css';\r\n const mywindow: any = window.open('', 'PRINT', 'height=1000,width=600');\r\n mywindow.document.write('\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n ' + document.title + '');\r\n mywindow.document.write('');\r\n mywindow.document.write(document.getElementById(\"qrCode-print\")?.innerHTML);\r\n mywindow.document.write('');\r\n this.isReady.emit(true)\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'restaurant.Open Now' | translate}}\r\n \r\n {{'restaurant.Closed Now' | translate}}\r\n

\r\n {{restaurantProfile?.title_EN}}\r\n ({{restaurantProfile?.shortName}})\r\n

\r\n

\r\n {{restaurantProfile?.title_AR}}\r\n ({{restaurantProfile?.shortName}})\r\n

\r\n
\r\n \r\n {{cusine.cuisine.name}},\r\n \r\n \r\n
\r\n

{{'forms.VAT number' | translate}}: {{restaurantProfile?.vatNumber}}\r\n

\r\n

{{'content.Created on' | translate}}: {{restaurantProfile?.created | date: 'dd MMM, y'}}\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n {{'general.Edit' | translate}}\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \"\"\r\n

{{restaurantProfile?.name}}

\r\n
\r\n

{{'menu.Scan for Menu' | translate}}

\r\n \r\n
\r\n
{{'menu.Powered by' | translate}}
\r\n \"\"\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-navigation',\r\n templateUrl: './navigation.component.html'\r\n})\r\nexport class NavigationComponent implements OnInit {\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n isProfile = true;\r\n constructor(private route: ActivatedRoute, private router: Router) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n navigateToSideBar(restaurantId: any) {\r\n localStorage.setItem('restaurantId', restaurantId)\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

{{'restaurant.Branches' | translate}}

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

{{'stockManagement.Suppliers' | translate}}

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

{{'stockManagement.Stock Transactions' | translate}}

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

{{'restaurant.Modifiers' | translate}}

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

{{'restaurant.Menu Items Categories' | translate}}

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

{{'restaurant.Ingredients Units Config' | translate}}

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

{{'content3.Menu Items' | translate}}

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

{{'restaurant.Menus' | translate}}

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

{{'sizes.Sizes Config' | translate}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { RestaurantProfile } from '../../../models/List.Restaurant';\r\n\r\n@Component({\r\n selector: 'app-numbers',\r\n templateUrl: './numbers.component.html'\r\n})\r\nexport class NumbersComponent implements OnInit {\r\n @Input() restaurantProfile?: RestaurantProfile;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'guests.Visits' | translate}}
{{restaurantProfile?.statistics?.visits}}\r\n

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

{{'restaurant.Staff' | translate}}
{{restaurantProfile?.statistics?.staff}}

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

{{'restaurant.Rate' | translate}}
{{restaurantProfile?.statistics?.rate}}

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

{{'restaurant.Complaints' | translate}}
{{restaurantProfile?.statistics?.complaints}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PaymentSettings } from 'src/app/features/settings/components/payment/models/PaymentMoldes';\r\nimport { PaymentService } from 'src/app/features/settings/components/payment/services/Payment.service';\r\nimport { Currency } from 'src/app/models/Lookup';\r\n\r\n@Component({\r\n selector: 'app-payment-methods',\r\n templateUrl: './payment-methods.component.html'\r\n})\r\nexport class PaymentMethodsComponent implements OnInit {\r\n @Input() restaurantId: any;\r\n dataLoading = true;\r\n details!: PaymentSettings;\r\n defaultCurrency!: Currency | undefined;\r\n\r\n constructor(\r\n private service: PaymentService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getDetails()\r\n }\r\n\r\n getDetails() {\r\n this.dataLoading = true;\r\n this.service.GetPaymentSettings(this.restaurantId).subscribe(\r\n (data: PaymentSettings) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.details = data;\r\n this.defaultCurrency = this.details.currencies.find(item => item.isDefault);\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
{{'content.Payment Methods' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{item.name}}

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

{{'content2.Currency' | translate}}

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

{{defaultCurrency?.name}}

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

{{'content2.Deposit Fee' | translate}}

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

\r\n {{details.depositFees}}\r\n {{defaultCurrency?.currencyCode}}\r\n

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

{{'content2.Service' | translate}}

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

\r\n {{details.serviceAmount}}\r\n {{details.serviceAmountType == 'Defult_Currency' ? defaultCurrency?.currencyCode : '%'}}\r\n

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

\r\n {{('content2.' + (details.dininPriceIncludeTax ? 'Dinein price includes Tax' : 'Dinein price excludes Tax')) | translate}}\r\n

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

\r\n {{('content2.' + (details.takeawayPriceIncludeTax ? 'Takeaway price includes Tax' : 'Takeaway price excludes Tax')) | translate}}\r\n

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

-

\r\n
\r\n\r\n
\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RestaurantProfile } from '../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../services/Restaurant.service';\r\nimport { Subscription } from 'rxjs';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-profile',\r\n templateUrl: './profile.component.html'\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n dataLoading = false;\r\n\r\n // Nav scrollable\r\n mouseDown = false;\r\n startX: any;\r\n scrollLeft: any;\r\n slider!: any;\r\n\r\n // Restaurant ID\r\n restaurantId?: any;\r\n restaurantProfile?: RestaurantProfile;\r\n lang = localStorage.getItem('language') || 'en';\r\n isShown?: boolean = false;\r\n\r\n currentURL?: any;\r\n active?: boolean;\r\n\r\n activeSiteSection?: string;\r\n\r\n headerOffset = 150;\r\n activeIndex = 0;\r\n tabs = [\r\n { name: this.translate.instant('restaurant.Basic Info'), index: 0 }, //0\r\n { name: this.translate.instant('restaurant.Photos & Videos'), index: 1 }, //1\r\n { name: this.translate.instant('content3.Amenities'), index: 2 }, //2\r\n // { name: this.translate.instant('restaurant.Staff'), index: 3 }, //3\r\n // { name: this.translate.instant('content.Reservations'), index: 4 }, //4\r\n // { name: this.translate.instant('restaurant.Reviews'), index: 5 }, //5\r\n // { name: this.translate.instant('restaurant.Events'), index: 6 }, //6\r\n // { name: this.translate.instant('restaurant.Guest Announcements'), index: 7 }, //7\r\n { name: this.translate.instant('content.Payment Methods'), index: 3 }, //3\r\n { name: this.translate.instant('restaurant.Cancellation & Refund Policies'), index: 4 }, //4\r\n { name: this.translate.instant('restaurant.Reservation Channels'), index: 5 }, //5\r\n ];\r\n\r\n isMainProfile = true;\r\n publishStatus: any;\r\n currentAttandanceFeature = false;\r\n attandanceFeatureLoader = false;\r\n\r\n subscriberDetails!: Subscription;\r\n constructor(\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private service: RestaurantService,\r\n public translate: TranslateService\r\n ) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n if (this.restaurantId) {\r\n this.isMainProfile = false;\r\n } else {\r\n this.tabs = this.tabs.splice(0, 3)\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetRestaurantProfile();\r\n this.service.refreshDetails.next(false);\r\n this.subscriberDetails = this.service.refreshDetails.subscribe(data => {\r\n if (data) {\r\n this.GetRestaurantProfile()\r\n }\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriberDetails.unsubscribe();\r\n }\r\n // ngAfterViewInit() {\r\n // this.slider = document.querySelector('.nav-tabs');\r\n // }\r\n initSlider() {\r\n this.slider = document.querySelector('.nav-tabs');\r\n }\r\n startDragging(e?: any, flag?: any) {\r\n this.mouseDown = true;\r\n this.startX = e.pageX - this.slider!.offsetLeft;\r\n this.scrollLeft = this.slider!.scrollLeft;\r\n }\r\n stopDragging(e?: any, flag?: any) {\r\n this.mouseDown = false;\r\n }\r\n moveEvent(e?: any) {\r\n e.preventDefault();\r\n if (!this.mouseDown) {\r\n return;\r\n }\r\n const x = e.pageX - this.slider!.offsetLeft;\r\n const scroll = x - this.startX;\r\n this.slider!.scrollLeft = this.scrollLeft - scroll;\r\n }\r\n\r\n GetRestaurantProfile() {\r\n this.dataLoading = true;\r\n this.service.GetRestaurantProfile(this.restaurantId).subscribe((data: RestaurantProfile) => {\r\n this.dataLoading = false;\r\n if (data.id) {\r\n this.restaurantProfile = data\r\n this.restaurantId = this.restaurantProfile.id;\r\n this.publishStatus = this.restaurantProfile.publishStatus;\r\n this.currentAttandanceFeature = this.restaurantProfile.attandanceFeature;\r\n setTimeout(() => {\r\n this.initSlider();\r\n }, 100);\r\n } else {\r\n this.router.navigate(['/admin/404'])\r\n }\r\n },\r\n (error: any) => {\r\n this.dataLoading = false;\r\n this.restaurantProfile = undefined;\r\n });\r\n }\r\n\r\n navigateToSection(event: any, index: number) {\r\n event.preventDefault();\r\n let container = document.getElementById('tab-' + index) as HTMLElement;\r\n if (container) {\r\n const elementPosition = container.offsetTop\r\n const offsetPosition = elementPosition - this.headerOffset;\r\n window.scrollTo({\r\n top: offsetPosition,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n\r\n @HostListener('window:scroll', ['$event']) onScroll(event: Event) {\r\n let cloneTabs: [] = JSON.parse(JSON.stringify(this.tabs));\r\n cloneTabs.reverse().forEach((element: any) => {\r\n this.isVisible(element.index);\r\n });\r\n }\r\n\r\n isVisible(index: number) {\r\n const ele = document.getElementById('tab-' + index) as HTMLElement;\r\n if (!ele) return;\r\n const { top, bottom } = ele.getBoundingClientRect();\r\n const vHeight = (window.innerHeight || document.documentElement.clientHeight);\r\n\r\n // const inView = ((top > 0 || bottom > 0) && top < vHeight );\r\n let headerOffset = this.headerOffset - 5\r\n const inView = (\r\n (top > headerOffset && bottom > headerOffset)\r\n && top < (vHeight / 2)\r\n );\r\n if (inView) {\r\n this.activeIndex = index;\r\n if (index > 5) {\r\n document.querySelector('.nav-tabs')!.scrollLeft\r\n = document.querySelector('.nav-tabs')!.scrollWidth;\r\n } else {\r\n document.querySelector('.nav-tabs')!.scrollLeft = 0\r\n }\r\n }\r\n return inView;\r\n }\r\n\r\n changeAttendance() {\r\n this.attandanceFeatureLoader = true;\r\n let data = {\r\n restaurantId: this.restaurantId,\r\n active: this.restaurantProfile?.attandanceFeature\r\n }\r\n this.service.SaveAttandanceFeature(data).subscribe((resp: any) => {\r\n this.attandanceFeatureLoader = false;\r\n if (!resp) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: resp.errorMessages[0],\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n }, error => {\r\n this.attandanceFeatureLoader = false;\r\n this.restaurantProfile!.attandanceFeature = this.currentAttandanceFeature;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n })\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
{{'restaurant.Enable Clock-in/out' | translate}}
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantProfile } from '../../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\n\r\n@Component({\r\n selector: 'app-publish-restaurant',\r\n templateUrl: './publish-restaurant.component.html'\r\n})\r\nexport class PublishRestaurantComponent implements OnInit {\r\n @Input() restaurantId!: any;\r\n @Input() publishStatus!: any;\r\n @Input() restaurantProfile!: RestaurantProfile;\r\n constructor(private restaurantService: RestaurantService,\r\n public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n // Bug 69386\r\n let restId = String(this.restaurantProfile.id);\r\n var links = document.querySelectorAll('.checklist-content a');\r\n for (var i = 0; i < links.length; i++) {\r\n links[i].addEventListener('click', function(event) {\r\n localStorage.setItem(\"restaurantId\", restId);\r\n });\r\n }\r\n }\r\n\r\n checkRestaurantStatus() {\r\n return this.restaurantProfile.publishStatus.dayavailable\r\n && this.restaurantProfile.publishStatus.ingredientsunits\r\n && this.restaurantProfile.publishStatus.kitchen\r\n && this.restaurantProfile.publishStatus.menu\r\n && this.restaurantProfile.publishStatus.menuitem\r\n && this.restaurantProfile.publishStatus.menuitemcategory\r\n && this.restaurantProfile.publishStatus.stuff\r\n && this.restaurantProfile.publishStatus.supplier\r\n && this.restaurantProfile.publishStatus.transaction\r\n }\r\n\r\n\r\n publish() {\r\n this.restaurantService.PublishRestaurant(this.restaurantId).subscribe((data: any) => {\r\n if (data) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.restaurantPublished'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n }).then(() => {\r\n location.reload();\r\n });\r\n }\r\n }, error => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n }).then(() => {\r\n location.reload();\r\n });\r\n });\r\n }\r\n\r\n navigateToSideBar(restaurantId: any) {\r\n localStorage.setItem('restaurantId', restaurantId)\r\n }\r\n\r\n}\r\n\r\n\r\n","
\r\n
\r\n
{{'restaurant.Publish Restaurant' | translate }}
\r\n
\r\n
\r\n \r\n warning\r\n
\r\n

{{\"restaurant.Awaiting to complete the restaurants primary data in order to publish the restaurant\" | translate}}

\r\n
\r\n
\r\n \r\n check\r\n
\r\n

{{\"restaurant.Well done! you have completed the main data\" | translate}}

\r\n

{{\"restaurant.Now after pressing the button below, BonTech will review your request then publish your restaurant\" | translate}}

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

{{ 'restaurant.Its recommended to complete the restaurant data in the following sequence' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{\"publish.Create Floor\" | translate }}\r\n \r\n

{{\"publish.At least: one floor with one table\" | translate }}

\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Kitchen(s)' | translate }}\r\n \r\n

{{\"publish.At least: one\" | translate }}

\r\n
\r\n
\r\n \r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Host' | translate }}\r\n \r\n

{{'publish.At least: one' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Chef' | translate }}\r\n \r\n

{{'publish.At least: one' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add respChef' | translate }}\r\n \r\n

{{'publish.At least: one' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Waiter' | translate }}\r\n \r\n

{{'publish.At least: one' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Cashier' | translate }}\r\n \r\n

{{'publish.At least: one' | translate }}

\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Ingredients Units Configuration' | translate }}\r\n \r\n

{{\"publish.At least: one\" | translate }}

\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Suppliers' | translate }}\r\n \r\n

{{\"publish.At least: one\" | translate }}

\r\n
\r\n
\r\n \r\n
\r\n check\r\n
\r\n
\r\n \r\n {{\"publish.Add Menu Items Categories\" | translate }}\r\n \r\n

{{\"publish.At least: one\" | translate }}

\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Menu Items' | translate }}\r\n \r\n

{{\"publish.At least: one\" | translate }}

\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Add Menu' | translate }}\r\n \r\n

{{\"publish.At least: one\" | translate }}

\r\n
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n {{'publish.Availability' | translate }}\r\n \r\n

{{'publish.At least: one day' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ReservationChannels } from 'src/app/features/restaurants/models/List.Restaurant';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-reservation-channels',\r\n templateUrl: './reservation-channels.component.html'\r\n})\r\nexport class ReservationChannelsComponent extends DirtyComponent implements OnInit {\r\n\r\n dataLoading = false;\r\n loading = false;\r\n isSubmitted = false;\r\n isOnlineRes = false;\r\n reservationChannels: any = []\r\n reservationChannelsCopy: any = []\r\n\r\n otherValue = new FormControl([]);\r\n constructor(\r\n private service: RestaurantService,\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService, private formBuilder: FormBuilder\r\n ) {\r\n super(translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetReservationChannels();\r\n\r\n this.buildForm();\r\n }\r\n\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n otherValue: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n Validators.required\r\n ]],\r\n })\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n override canDeactivate(): boolean {\r\n return JSON.stringify(this.reservationChannels).length !== this.reservationChannelsCopy.length;\r\n };\r\n\r\n GetReservationChannels() {\r\n this.dataLoading = true;\r\n this.service.GetReservationChannels(this.data.restaurantId).subscribe((data: any) => {\r\n this.dataLoading = false;\r\n this.reservationChannels = data.allReservationChannels;\r\n this.reservationChannelsCopy = JSON.stringify(this.reservationChannels);\r\n })\r\n }\r\n\r\n isOnline() {\r\n this.isOnlineRes = !this.isOnlineRes\r\n this.otherValue.clearValidators()\r\n }\r\n\r\n validateReservationLength() {\r\n if (this.reservationChannels.filter((item: any) => !item.isOnlineReservation && item.isSelected)?.length > 0) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n validateIsOtherValue() {\r\n if (this.reservationChannels.some((item: any) => !item.isOnlineReservation && item.isOther && item.isSelected)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n let reservationChannels =\r\n this.reservationChannels.filter((item: any) => item.isSelected).map((x: any) => {\r\n return {\r\n id: x.id,\r\n otherValue: (x.isOther ? x.otherValue : '')\r\n }\r\n })\r\n if ((!this.validateIsOtherValue() || this.otherValue.value) && this.validateReservationLength()) {\r\n this.loading = true;\r\n let data = {\r\n reservationChannels,\r\n restaurantId: this.data.restaurantId,\r\n };\r\n\r\n this.service.EditReservationChannels(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n } else {\r\n let msg;\r\n if (!this.validateReservationLength()) {\r\n msg = this.translate.instant('swalMsg.youShouldChooseAtLeastOneSelection')\r\n } else {\r\n msg = this.translate.instant('swalMsg.pleaseFillTheRequiredFields')\r\n }\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: msg,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n
\r\n
{{'restaurant.Edit Reservation Channels' | translate}}
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{reservation.name}}\r\n
\r\n

{{\"restaurant.When this is set off, it means the restaurant temporarily pause reservations received through the BonTech Mobile App.\" | translate}}

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

\r\n {{\"restaurant.Channels via which the restaurant receive reservations to be scheduled.\" | translate}}\r\n

\r\n\r\n
\r\n\r\n \r\n\r\n \r\n {{reservation.name}}\r\n \r\n
\r\n \r\n \r\n\r\n \r\n

{{ 'forms.Required' | translate }}

\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nexport interface DialogData {\r\n placeOrderTime: number,\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-restaurant-config',\r\n templateUrl: './restaurant-config.component.html'\r\n})\r\nexport class RestaurantConfigComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = this.data.placeOrderTime ? true : false;\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder,\r\n translate: TranslateService, private service: RestaurantService) {\r\n super(translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n placeOrderTime: [1, [\r\n Validators.required,\r\n Validators.min(1),\r\n Validators.max(6)\r\n ]],\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n placeOrderTime: this.data.placeOrderTime,\r\n restaurantId: this.data.restaurantId\r\n });\r\n }\r\n\r\n\r\n saveRecord(openNew: boolean = false) {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n placeOrderTime: Number(this.formGroup.controls['placeOrderTime'].value),\r\n restaurantId: this.data.restaurantId\r\n };\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.isUpdate) {\r\n data.placeOrderTime = Number(this.formGroup.controls['placeOrderTime'].value);\r\n data.restaurantId = this.data.restaurantId;\r\n msg = this.translate.instant('swalMsg.updatedsuccessfully');\r\n }\r\n this.service.saveRestaurantConfig(data).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n if (openNew) {\r\n this.formGroup.reset();\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n this.service.refreshList.next(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n

{{\"profile.Set Place Order Time\" | translate}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"profile.Number of Hours\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n {{ 'forms.Invalid' | translate }} (1-6)\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ReservationChannels } from '../../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\nimport { ReservationChannelsComponent } from './components/reservation-channels/reservation-channels.component';\r\nimport { RestaurantConfigComponent } from './components/restaurant-config/restaurant-config.component';\r\n\r\n@Component({\r\n selector: 'app-reservation',\r\n templateUrl: './reservation.component.html'\r\n})\r\nexport class ReservationComponent implements OnInit {\r\n\r\n dataLoading = false;\r\n canEdit!: boolean;\r\n restaurantId: any;\r\n\r\n reservationChannels: ReservationChannels[] = []\r\n\r\n selectedReservationChannels: ReservationChannels[] = []\r\n\r\n placeOrderTime: any;\r\n canEditplaceOrderTime!: boolean;\r\n constructor(public dialog: MatDialog, private route: ActivatedRoute,\r\n private service: RestaurantService) {\r\n this.route.params.subscribe(params => {\r\n this.restaurantId = params['id'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.GetReservationChannels();\r\n this.getRestaurantConfig()\r\n }\r\n\r\n\r\n GetReservationChannels() {\r\n this.dataLoading = true;\r\n this.service.GetReservationChannels(this.restaurantId).subscribe((data: any) => {\r\n this.reservationChannels = data.allReservationChannels\r\n this.selectedReservationChannels = data.selectedReservationChannels;\r\n this.canEdit = data.canEdit\r\n this.dataLoading = false;\r\n })\r\n }\r\n\r\n editReservationChannels() {\r\n const dialogRef = this.dialog.open(ReservationChannelsComponent, {\r\n width: '50rem',\r\n data: { restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.GetReservationChannels()\r\n }\r\n });\r\n }\r\n\r\n getRestaurantConfig() {\r\n this.service.getRestaurantConfig(this.restaurantId).subscribe((data: any) => {\r\n this.placeOrderTime = data.placeOrderTime\r\n this.canEditplaceOrderTime = data.canEdit\r\n })\r\n }\r\n editRestaurantConfig() {\r\n const dialogRef = this.dialog.open(RestaurantConfigComponent, {\r\n width: '50rem',\r\n data: { placeOrderTime: this.placeOrderTime, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.getRestaurantConfig()\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
{{'restaurant.Reservation Channels' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{reservation.name}}

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

{{\"content4.Online Reservation is enabled\" |\r\n translate}}

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

{{\"restaurant.Reservation Channels not yet added\" | translate}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
{{'profile.When the Guest can place an Order' | translate}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n {{'profile.This rule is intended to avoid issues with the guests.' | translate }} {{'profile.(so 6 hours or less is recommended)' | translate}}\r\n

\r\n

\r\n {{'profile.The ordered items will be reserved from your inventory once the guest has placed his order' | translate }}\r\n

\r\n
\r\n \r\n
\r\n
\r\n {{'profile.The guest can place his/her order' | translate }} \r\n {{placeOrderTime || 1}}\r\n {{'profile.hours earlier to (before) the reservation time' | translate }} \r\n
\r\n
\r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { map, Observable, startWith } from 'rxjs';\r\nimport { CuisinesService } from 'src/app/features/configrations/cuisines/services/Cuisines.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\nimport Swal from 'sweetalert2';\r\nimport { RestaurantDetails, RestaurantForm, RestaurantType } from '../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../services/Restaurant.service';\r\n\r\nexport interface DialogData {\r\n record: RestaurantDetails,\r\n id: any\r\n}\r\n@Component({\r\n selector: 'app-restaurant-form-dialog',\r\n templateUrl: './restaurant-form-dialog.component.html'\r\n})\r\nexport class RestaurantFormDialogComponent extends DirtyComponent implements OnInit {\r\n loading = false;\r\n dataLoading = false\r\n isSubmitted = false;\r\n isUpdate = false;\r\n details!: RestaurantDetails;;\r\n\r\n override formGroup!: FormGroup;\r\n\r\n cuisinesLoading = false;\r\n cuisinCtr = new FormControl('');\r\n cuisines: Lookup[] = [];\r\n filteredCuisines!: Observable;\r\n selectedCuisines: Lookup[] = [];\r\n\r\n countries: Lookup[] = [];\r\n cities: Lookup[] = [];\r\n countryLoading = false;\r\n cityLoading = false;\r\n\r\n // image file\r\n logo: any;\r\n logoSrc!: string;\r\n // banner file\r\n banner: any;\r\n bannerSrc!: string;\r\n\r\n maxFileSize = 1;\r\n fileTypeError = false;\r\n fileSizeError = false;\r\n\r\n maxBannerSize = 2;\r\n bannerTypeError = false;\r\n bannerSizeError = false;\r\n\r\n\r\n selectedCountry: any;\r\n\r\n constructor(\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService,\r\n private _formBuilder: FormBuilder,\r\n private service: RestaurantService,\r\n private lookupsService: LookupsService,\r\n private cuisineservice: CuisinesService,\r\n ) { super(translate); }\r\n\r\n ngOnInit(): void {\r\n if (this.data.id) {\r\n this.getDetails();\r\n } else {\r\n this.details = this.data.record\r\n }\r\n this.buildForm();\r\n this.getCountries();\r\n this.getCuisines();\r\n }\r\n\r\n getDetails() {\r\n this.dataLoading = true;\r\n this.service.GetDetails(this.data.id).subscribe((res) => {\r\n this.details = res\r\n this.bindDataToUpdate();\r\n this.dataLoading = false;\r\n })\r\n }\r\n\r\n getCountries() {\r\n this.countryLoading = true;\r\n this.lookupsService.getCountries().subscribe(\r\n data => {\r\n this.countries = data as [];\r\n this.countryLoading = false;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n cityParentChange(countryId: number) {\r\n this.formGroup.controls['cityId'].setValue(null);\r\n this.getCities(countryId);\r\n }\r\n getCities(countryId: number) {\r\n this.cityLoading = true;\r\n this.lookupsService.getCities(countryId).subscribe(\r\n data => {\r\n this.cities = data as [];\r\n this.cityLoading = false;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n // Cuisines search field\r\n getCuisines() {\r\n this.cuisinesLoading = true;\r\n this.cuisineservice.GetCuisines().subscribe(\r\n data => {\r\n this.cuisinesLoading = false;\r\n this.cuisines = data as [];\r\n this.initCuisinesFiltiration();\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n initCuisinesFiltiration() {\r\n this.filteredCuisines = this.cuisinCtr.valueChanges.pipe(\r\n startWith(''),\r\n map(value => {\r\n const name = typeof value === 'string' ? value : value?.name;\r\n return name ? this._filter(name as string) : this.cuisines.slice();\r\n }),\r\n );\r\n }\r\n displayFn(item: Lookup): string {\r\n return item && item.name ? item.name : '';\r\n }\r\n private _filter(name: string): Lookup[] {\r\n const filterValue = name.toLowerCase();\r\n return this.cuisines.filter(item => item.name.toLowerCase().includes(filterValue));\r\n }\r\n cuisinSelected(value: Lookup) {\r\n if (!this.isSelected(value)) {\r\n this.selectedCuisines.push(value);\r\n } else {\r\n let index = this.selectedCuisines.findIndex(item => item.id === value.id)\r\n if (index >= 0) {\r\n this.selectedCuisines.splice(index, 1);\r\n }\r\n }\r\n this.cuisinCtr.setValue('');\r\n }\r\n removeCuisin(i: number) {\r\n this.selectedCuisines.splice(i, 1);\r\n }\r\n isSelected(v: Lookup) {\r\n return this.selectedCuisines.some(item => item.id === v.id)\r\n }\r\n // End Cuisines search field\r\n\r\n buildForm() {\r\n this.formGroup = this._formBuilder.group({\r\n restaurantType: [null],\r\n parintId: [null],\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n // Validators.pattern(Patterns.enTxt),\r\n Validators.maxLength(50),\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.arTxt)\r\n ]],\r\n mail: [null, [\r\n Validators.required,\r\n Validators.maxLength(320),\r\n Validators.pattern(Patterns.email)\r\n ]],\r\n phone: [null, [Validators.required]],\r\n website: [null, [Validators.pattern(Patterns.website)]],\r\n map: [null],\r\n countryId: [null, Validators.required],\r\n cityId: [null, Validators.required],\r\n streetEn: [null, CustomValidator.noWhiteSpace],\r\n streetAr: [null, CustomValidator.noWhiteSpace],\r\n latitude: [null, [CustomValidator.noWhiteSpace, Validators.pattern(Patterns.float)]],\r\n longitude: [null, [CustomValidator.noWhiteSpace, Validators.pattern(Patterns.float)]],\r\n vatNumber: [null, CustomValidator.noWhiteSpace],\r\n shortName: [null, CustomValidator.noWhiteSpace],\r\n facebook: [null],\r\n twitter: [null],\r\n instagram: [null],\r\n snapchat: [null],\r\n tiktok: [null],\r\n whatsapp: [null, [Validators.pattern(Patterns.phoneNumber)]],\r\n youtube: [null],\r\n });\r\n if (this.details) {\r\n this.bindDataToUpdate();\r\n }\r\n }\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue(this.details);\r\n if (this.details.parintId) {\r\n this.formGroup.controls['restaurantType'].setValue(RestaurantType.Branch);\r\n this.formGroup.controls['parintId'].setValue(this.details.parintId);\r\n } else {\r\n this.formGroup.controls['restaurantType'].setValue(RestaurantType.Main);\r\n this.formGroup.controls['parintId'].setValue(0);\r\n }\r\n this.getCities(this.details.countryId);\r\n this.selectedCuisines = this.details.restaurantCuisine.map(item => item.cuisine)\r\n this.logoSrc = this.details.icon;\r\n this.bannerSrc = this.details.banner;\r\n\r\n this.selectedCountry = this.details.phoneflag\r\n }\r\n hasError(formGroup: FormGroup, controlName: string, errorName: string) {\r\n return formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n\r\n // File preview with validation\r\n changeFileListener($event: any, index: any): void {\r\n const file: File = $event.target.files[0];\r\n if (file && this.validateFile(file, index)) {\r\n\r\n if (index == 0) {\r\n this.banner = file;\r\n this.readThis(file, 0);\r\n\r\n } else {\r\n this.logo = file;\r\n this.readThis(file, 1);\r\n\r\n }\r\n } else {\r\n if (index == 0) {\r\n this.bannerSrc = '';\r\n this.banner = undefined;\r\n\r\n } else {\r\n this.logoSrc = '';\r\n this.logo = undefined;\r\n }\r\n }\r\n }\r\n readThis(file: File, index: any): void {\r\n const myReader: FileReader = new FileReader();\r\n myReader.readAsDataURL(file);\r\n myReader.onloadend = (e) => {\r\n if (index == 0) {\r\n this.bannerSrc = myReader.result as string;\r\n\r\n } else {\r\n this.logoSrc = myReader.result as string;\r\n }\r\n };\r\n }\r\n validateFile(file: File, index: any): any {\r\n if (this.fileType(file.name)) {\r\n if (index == 0) {\r\n this.bannerTypeError = false;\r\n if ((file.size / (1024 * 1024)) <= this.maxBannerSize) {\r\n this.bannerSizeError = false;\r\n } else {\r\n this.bannerSizeError = true;\r\n return false;\r\n }\r\n } else {\r\n this.fileTypeError = false;\r\n if ((file.size / (1024 * 1024)) <= this.maxFileSize) {\r\n this.fileSizeError = false;\r\n } else {\r\n this.fileSizeError = true;\r\n return false;\r\n }\r\n }\r\n } else {\r\n if (index == 0) {\r\n this.bannerTypeError = true;\r\n return false;\r\n } else {\r\n this.fileTypeError = true;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n fileType(fileName: string): any {\r\n const extension = fileName.split('.')?.pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'jpeg':\r\n case 'jpg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n\r\n checkCuisines() {\r\n if (!this.selectedCuisines.length) {\r\n this.cuisinCtr.setErrors({ required: true });\r\n } else {\r\n this.cuisinCtr.setErrors(null);\r\n }\r\n this.cuisinCtr.markAsTouched()\r\n }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n this.checkCuisines();\r\n this.formGroup.markAllAsTouched();\r\n\r\n if (this.formGroup.valid && this.logoSrc && this.bannerSrc && this.selectedCuisines.length) {\r\n if (this.formGroup.controls['countryId'].value !== this.details.countryId) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n text: this.translate.instant('restaurant.We will reset vat settings for all menu items for the default vat'),\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.editRest();\r\n }\r\n });\r\n } else {\r\n this.editRest();\r\n }\r\n }\r\n }\r\n editRest() {\r\n this.loading = true;\r\n let data: RestaurantForm = this.formGroup.value;\r\n data.id = this.details.id;\r\n data.cuisines = this.selectedCuisines.map((x: any) => x.id);\r\n data.phoneflag = this.formGroup.controls['phone'].value.countryCode\r\n data.phoneCode = this.formGroup.controls['phone'].value.dialCode\r\n data.phone = this.formGroup.controls['phone'].value.number\r\n\r\n this.service.saveRecord(data, this.logo, this.banner).subscribe(() => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.updatedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n

{{\"content2.Edit Main Info\" | translate}}

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

\r\n {{ 'content.JPG or PNG' | translate }}\r\n ({{ 'content.MB max' | translate: {no: 2} }})\r\n

\r\n

{{'restaurant.This banner will appear on the restaurants profile screen in the guest app' | translate }}

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

\r\n {{ 'forms.Required' | translate }}\r\n

\r\n

\r\n {{ 'forms.InvalidFile' | translate }}\r\n

\r\n

\r\n {{ 'forms.Max-file-size' | translate }}\r\n {{maxBannerSize}} {{ 'forms.MB' | translate }}\r\n

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

\r\n {{ 'content.JPG or PNG' | translate }}\r\n ({{ 'content.MB max' | translate: {no: 1} }})\r\n

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

\r\n {{ 'forms.Required' | translate }}\r\n

\r\n

\r\n {{ 'forms.InvalidFile' | translate }}\r\n

\r\n

\r\n {{ 'forms.Max-file-size' | translate }}\r\n {{maxFileSize}} {{ 'forms.MB' | translate }}\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{\"forms.Restaurant name in English\" | translate}}\r\n {{\"forms.Restaurant name in English\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Restaurant name in Arabic\" | translate}}\r\n اسم الفرع باللغة العربية\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Branch Short Name (Abbreviation)\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n {{\"forms.Email\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n {{ 'forms.Invalid-Email' | translate }}\r\n {{ 'forms.Invalid-Email' | translate }}\r\n \r\n\r\n \r\n {{\"forms.VAT number\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n\r\n
\r\n \r\n {{\"forms.Website\" | translate}}\r\n \r\n \r\n {{ 'forms.Invalid-Website' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{\"forms.Latitude\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{\"forms.Longitude\" | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n {{ 'forms.Country' | translate }}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n {{ 'forms.City' | translate }}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n {{\"forms.Street\" | translate}} - {{'forms.English' | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n \r\n {{\"forms.Street\" | translate}} - {{'forms.Arabic' | translate}}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {{\"content2.Select cuisines\" | translate}}\r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n {{item.name}}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n {{item.name}}\r\n ×\r\n
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{\"restaurant.Social Media Links\" | translate}}

\r\n
\r\n
\r\n \r\n {{'restaurant.Facebook Link' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n \r\n {{'restaurant.Twitter Link' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n \r\n {{'restaurant.Instagram Link' | translate}}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n \r\n {{'restaurant.Snapchat Link' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n \r\n {{'restaurant.Tiktok Link' | translate }} \r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n \r\n {{'restaurant.Youtube Link' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n \r\n {{'restaurant.Whatsapp' | translate }}\r\n \r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\n\r\nexport interface DialogData {\r\n selectedItems: any[],\r\n restaurantId: number,\r\n name: {\r\n title_EN: string\r\n title_AR: string\r\n }\r\n index: number\r\n sizesList: any[]\r\n}\r\n\r\n@Component({\r\n selector: 'app-custom-sizes-form',\r\n templateUrl: './custom-sizes-form.component.html'\r\n})\r\nexport class CustomSizesFormComponent extends DirtyComponent implements OnInit {\r\n\r\n override formGroup!: FormGroup;\r\n dataLoading = false;\r\n loading = false;\r\n isSubmitted = false;\r\n\r\n isUpdate: boolean = (this.data.name.title_EN && this.data.name.title_AR) ? true : false;\r\n sections: any[] = []\r\n\r\n constructor(\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private formBuilder: FormBuilder,\r\n private service: RestaurantService,\r\n translate: TranslateService\r\n ) { super(translate); }\r\n\r\n ngOnInit(): void {\r\n this.buildForm();\r\n\r\n this.sections = JSON.parse(JSON.stringify(this.data.selectedItems));\r\n if (this.isUpdate) {\r\n this.bindDataToUpdate();\r\n }\r\n\r\n console.log(JSON.parse(JSON.stringify(this.data.sizesList)))\r\n console.log(JSON.parse(JSON.stringify(this.data.selectedItems)))\r\n\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.formBuilder.group({\r\n title_EN: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.enTxt)\r\n ]],\r\n title_AR: [null, [\r\n CustomValidator.noWhiteSpace,\r\n Validators.maxLength(50),\r\n // Validators.pattern(Patterns.arTxt)\r\n ]],\r\n });\r\n }\r\n\r\n bindDataToUpdate() {\r\n this.formGroup.patchValue({\r\n title_EN: this.data.name.title_EN,\r\n title_AR: this.data.name.title_AR\r\n });\r\n }\r\n\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n validateDuplicate(ctrName: string) {\r\n this.data.selectedItems.forEach((item, index) => {\r\n if (\r\n item.name[ctrName] === this.formGroup.controls[ctrName].value\r\n && index != this.data.index\r\n ) {\r\n this.formGroup.controls[ctrName].setErrors({ 'duplicated': true })\r\n }\r\n });\r\n\r\n this.data.sizesList.forEach((item, index) => {\r\n if (\r\n item[ctrName] === this.formGroup.controls[ctrName].value\r\n && index != this.data.index\r\n ) {\r\n this.formGroup.controls[ctrName].setErrors({ 'duplicated': true })\r\n }\r\n });\r\n }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n this.validateDuplicate('title_EN')\r\n this.validateDuplicate('title_AR')\r\n this.formGroup.updateValueAndValidity();\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n let data = {\r\n restaurantSizeId: 0,\r\n name: {\r\n title_EN: this.formGroup.controls['title_EN'].value,\r\n title_AR: this.formGroup.controls['title_AR'].value\r\n },\r\n sizeClassificationId: 0\r\n };\r\n\r\n this.dialogRef.close(data);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n

{{\"sizes.Add Custom Size\" | translate}}

\r\n

{{\"sizes.Update Custom Size\" | translate}}

\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{\"forms.Title in English\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Duplicated' | translate }}\r\n \r\n\r\n \r\n {{\"forms.Title in Arabic\" | translate}}\r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'forms.Duplicated' | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport Swal from 'sweetalert2';\r\nimport { ListFilter } from '../../models/Floors';\r\nimport { CustomSize, DiwanSizes, RestaurantDetails } from '../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../services/Restaurant.service';\r\nimport { CustomSizesFormComponent } from './custom-sizes-form/custom-sizes-form.component';\r\nimport { SizesFormComponent } from './sizes-form/sizes-form.component';\r\n\r\n@Component({\r\n selector: 'app-restaurant-sizes',\r\n templateUrl: './restaurant-sizes.component.html'\r\n})\r\nexport class RestaurantSizesComponent extends DirtyComponent implements OnInit {\r\n\r\n dataLoading = true;\r\n loading = true;\r\n isSubmitted = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n restaurantSize: any;\r\n sizesList: any[] = [];\r\n sizesListCopy: any = [];\r\n\r\n customSizeList: any[] = [];\r\n customSizeListCopy: any = [];\r\n\r\n filterModel: ListFilter = new ListFilter();\r\n allRestaurants: RestaurantDetails[] = [];\r\n // Restaurant ID\r\n restaurantId?: any;\r\n restaurantName?: any;\r\n restaurantIdParam?: any;\r\n restaurantData: any;\r\n isProfile!: any\r\n override dialogRef: any;\r\n override close = new EventEmitter();\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n\r\n constructor(private route: ActivatedRoute, public dialog: MatDialog,\r\n translate: TranslateService, private service: RestaurantService,\r\n private router: Router) {\r\n super(translate)\r\n this.route.params.subscribe(params => {\r\n this.restaurantIdParam = params['id'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(params => {\r\n if (params['isProfile']) {\r\n this.isProfile = [params['isProfile']];\r\n }\r\n });\r\n }\r\n\r\n GetRestaurantShortDetails(restaurantId: any) {\r\n this.service.GetRestaurantShortDetails(restaurantId).subscribe((data: any) => {\r\n this.restaurantData = data\r\n })\r\n }\r\n\r\n override canDeactivate(): boolean {\r\n return this.sizesList.length !== this.sizesListCopy.length ||\r\n this.customSizeList.length !== this.customSizeListCopy.length\r\n };\r\n\r\n\r\n override openConfirmDialog() {\r\n if (this.canDeactivate()) {\r\n\r\n return Swal.fire({\r\n title: this.translate.instant('swalMsg.are you sure you want to discard all the changes'),\r\n text: this.leaveMsg || this.translate.instant('swalMsg.It looks like youre in the middle of updating the menu but havent saved the changes yet'),\r\n imageUrl: './assets/images/icons/warning-ic.svg',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No'),\r\n width: '560',\r\n }).then((result) => {\r\n if (result.value) {\r\n this.sizesListCopy = JSON.parse(JSON.stringify(this.sizesList));\r\n this.customSizeListCopy = JSON.parse(JSON.stringify(this.customSizeList));\r\n // if (isCancelled) {\r\n // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // } else {\r\n // this.close.emit(true);\r\n // this.dialogRef?.close();\r\n // }\r\n this.close.emit(true);\r\n this.dialogRef?.close();\r\n this.getAll(this.restaurantId);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n } else {\r\n\r\n // if (isCancelled) {\r\n // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // } else {\r\n // this.close.emit(true);\r\n // this.dialogRef?.close();\r\n // }\r\n this.close.emit(true);\r\n this.dialogRef?.close();\r\n this.getAll(this.restaurantId);\r\n }\r\n return false;\r\n }\r\n\r\n getAll(restId?: any) {\r\n this.loading = true;\r\n this.restaurantId = restId\r\n\r\n this.service.GetRestaurantSize(this.restaurantId).subscribe(\r\n (data: any) => {\r\n this.loading = false;\r\n if (data) {\r\n this.restaurantSize = data;\r\n this.sizesList = data.diwanSize;\r\n this.customSizeList = data.customSize;\r\n this.sizesListCopy = JSON.parse(JSON.stringify(this.sizesList));\r\n this.customSizeListCopy = JSON.parse(JSON.stringify(this.customSizeList));\r\n }\r\n },\r\n (error: any) => {\r\n this.sizesList = [];\r\n this.customSizeList = [];\r\n });\r\n }\r\n\r\n removeSize(index: number, size?: any) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n // this.sizesList.splice(index, 1);\r\n if (size) {\r\n if (size.canDelete) {\r\n this.sizesList.splice(index, 1);\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.YoucanotDeleteThisSizeItsUsedWithMenuItem'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n } else {\r\n this.sizesList.splice(index, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n removeCustomSize(index: number, size?: any) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousuretodelete'),\r\n text: '',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yesdeleteit'),\r\n cancelButtonText: this.translate.instant('swalMsg.Nokeepit')\r\n }).then((result) => {\r\n if (result.value) {\r\n // this.customSizeList.splice(index, 1);\r\n if (size) {\r\n if (size.canDelete) {\r\n this.customSizeList.splice(index, 1);\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.YoucanotDeleteThisSizeItsUsedWithMenuItem'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n } else {\r\n this.customSizeList.splice(index, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n openSizeForm() {\r\n const dialogRef = this.dialog.open(SizesFormComponent, {\r\n width: '50rem',\r\n data: { selectedItems: this.sizesList, restaurantId: this.restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && result.length) {\r\n result.forEach((element: any) => {\r\n let findItem = this.sizesList.find(x => x.id == element.id);\r\n if (!findItem) {\r\n const sizeItem = new DiwanSizes();\r\n sizeItem.id = element.id\r\n sizeItem.name = element.name\r\n this.sizesList.push(sizeItem);\r\n\r\n }\r\n });\r\n }\r\n });\r\n }\r\n openCustomForm(index?: any) {\r\n const dialogRef = this.dialog.open(CustomSizesFormComponent, {\r\n width: '50rem',\r\n data: {\r\n selectedItems: this.customSizeList,\r\n index,\r\n restaurantId: this.restaurantId,\r\n name: {\r\n title_EN: this.customSizeList[index]?.name.title_EN,\r\n title_AR: this.customSizeList[index]?.name.title_AR\r\n },\r\n sizesList: this.sizesList\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (index != undefined) {\r\n this.customSizeList[index].name.title_EN = result.name.title_EN\r\n this.customSizeList[index].name.title_AR = result.name.title_AR\r\n\r\n } else {\r\n const sizeItem = new CustomSize();\r\n sizeItem.restaurantSizeId = result.restaurantSizeId\r\n sizeItem.name = result.name\r\n sizeItem.sizeClassificationId = result.sizeClassificationId\r\n this.customSizeList.push(sizeItem);\r\n }\r\n }\r\n });\r\n }\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n this.loading = true;\r\n\r\n\r\n let data = JSON.parse(JSON.stringify(this.sizesList))\r\n data.map((item: any) => {\r\n item.id.value\r\n delete item.name\r\n })\r\n\r\n let obj = {\r\n customSize: JSON.parse(JSON.stringify(this.customSizeList)),\r\n diwanSize: this.sizesList.map((x: any) => x.id),\r\n restaurantId: JSON.parse(JSON.stringify(this.restaurantId)),\r\n }\r\n\r\n let msg = this.translate.instant('swalMsg.savedsuccessfully');\r\n if (this.sizesList.length || this.customSizeList.length) {\r\n this.service.SaveRestaurantSize(obj).subscribe(() => {\r\n\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: msg,\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.sizesListCopy = JSON.parse(JSON.stringify(this.sizesList));\r\n this.customSizeListCopy = JSON.parse(JSON.stringify(this.customSizeList));\r\n // if (this.restaurantId) {\r\n // this.router.navigate([\"/admin/restaurants/profile\", this.restaurantId]);\r\n // } else {\r\n // this.getAll(this.restaurantId);\r\n // }\r\n this.getAll(this.restaurantId);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n } else {\r\n let msg = this.translate.instant('swalMsg.diwanSizesisrequired');\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: msg,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n // this.getAll();\r\n this.loading = false\r\n }\r\n\r\n }\r\n\r\n GetScreenData() {\r\n this.getAll(this.restaurantId);\r\n this.GetRestaurantShortDetails(this.restaurantId);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'sizes.Use BonTech Sizes' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
{{\"sizes.Size\" | translate}}
\r\n
\r\n
\r\n
{{size.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{'sizes.Use Custom Sizes' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
{{\"sizes.Size\" | translate}}
\r\n
\r\n
\r\n
{{size.name.title_EN}}
\r\n
{{size.name.title_AR}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { CustomValidator } from 'src/app/helpers/custom.validator';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { DiwanSizes } from '../../../models/List.Restaurant';\r\nimport { RestaurantService } from '../../../services/Restaurant.service';\r\n\r\nexport interface DialogData {\r\n selectedItems: any[],\r\n restaurantId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-sizes-form',\r\n templateUrl: './sizes-form.component.html'\r\n})\r\nexport class SizesFormComponent extends DirtyComponent implements OnInit {\r\n dataLoading = false;\r\n pageIndex = 0;\r\n pageCount = 0;\r\n\r\n sizes: DiwanSizes[] = []\r\n\r\n restaurantSizes: any[] = []\r\n selectedSizes: any[] = []\r\n selectedSizesCopy: any = []\r\n\r\n\r\n\r\n lang = localStorage.getItem('language') || 'en';\r\n categoryList: any[] = [];\r\n categorySelected?: any;\r\n searchText?: any;\r\n override formGroup!: FormGroup;\r\n\r\n subscriptions: Subscription[] = []\r\n\r\n constructor(\r\n private service: RestaurantService,\r\n override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService,\r\n private formBuilder: FormBuilder,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(translate)\r\n }\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAll();\r\n this.subscriptions.push(\r\n this.service.refreshList.subscribe(data => {\r\n if (data) {\r\n this.getAll();\r\n }\r\n })\r\n )\r\n\r\n this.restaurantSizes = JSON.parse(JSON.stringify(this.data.selectedItems));\r\n this.selectedSizesCopy = JSON.stringify(this.selectedSizes);\r\n this.restaurantSizes.map((item, index) => {\r\n this.restaurantSizes[index] = item\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.refreshList.next(false);\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n hasError(controlName: string, errorName: string) {\r\n return this.formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n selected(event?: any, item?: any) {\r\n if (event.checked) {\r\n this.selectedSizes.push(item)\r\n } else {\r\n let findItem = this.selectedSizes.findIndex(x => x.id == item.id)\r\n this.selectedSizes.splice(findItem, 1)\r\n console.log('after slice', this.selectedSizes)\r\n }\r\n }\r\n\r\n override canDeactivate(): boolean {\r\n return JSON.stringify(this.selectedSizes).length !== this.selectedSizesCopy.length\r\n };\r\n\r\n getAll() {\r\n this.dataLoading = true;\r\n this.service.GetAllDiwanSizes().subscribe(\r\n (data: any) => {\r\n this.dataLoading = false;\r\n if (data) {\r\n this.sizes = data.diwanSizes;\r\n this.sizes.map(item => {\r\n let findSelected = this.selectedSizes.find(x => x.id == item.id);\r\n let findRestSelected = this.restaurantSizes.find((x: any) => x.id == item.id);\r\n\r\n item.canSelect = findRestSelected ? false : true\r\n item.isSelected = (findSelected || findRestSelected) ? true : false\r\n })\r\n\r\n }\r\n },\r\n (error: any) => {\r\n this.sizes = [];\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n isAllHidden() {\r\n return this.sizes.every(item => this.hideOption(item) || !item.canSelect);\r\n }\r\n\r\n hideOption(item: any) {\r\n return new RegExp(this.searchText, 'i').test(item.name) === false\r\n }\r\n\r\n hasRecordsData() {\r\n return (\r\n !this.isAllHidden() &&\r\n this.sizes\r\n && this.sizes.length\r\n && this.restaurantSizes.length != this.sizes?.length\r\n )\r\n }\r\n\r\n saveRecord() {\r\n const selected = this.selectedSizes.filter(item => item.isSelected);\r\n if (this.selectedSizes.length) {\r\n this.dialogRef.close(selected);\r\n }\r\n else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Warning'),\r\n text: this.translate.instant('swalMsg.noChangesHappens'),\r\n icon: 'warning',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

{{\"sizes.Add Size\" | translate}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ item.name | shortName }}\r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: {\r\n canDelete: boolean\r\n canEdit: boolean\r\n created: string\r\n id: number\r\n name: string\r\n numberOfTable: number\r\n tables: number\r\n title_AR: string\r\n title_EN: string\r\n totalCovers: number\r\n availableTableOnline: string\r\n coversOnline: string\r\n updated: string\r\n isActive: boolean\r\n }[];\r\n}\r\n\r\nexport class Record {\r\n id!: string\r\n title_EN!: string\r\n title_AR!: string\r\n restaurantsId!: number\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n sortItems!: sortList;\r\n searchText!: string;\r\n createdFrom!: Date;\r\n createdTo!: Date;\r\n restaurantId!: number;\r\n}\r\n\r\nexport enum sortList {\r\n Name = 0,\r\n NewestCreate = 1,\r\n OldestCreate = 2,\r\n HighestUse = 4,\r\n LowestUse = 3,\r\n Highest_Amount = 5,\r\n Lowest_Amount = 6\r\n}\r\n","export class ListData {\r\n canAdd!: boolean;\r\n canEdit!: boolean;\r\n canDelete!: boolean;\r\n cancellationPolicies!: {\r\n pageData: {\r\n id: number\r\n name: string\r\n refundAmount: number\r\n beforeReservation: string\r\n // afterReservation: string\r\n isActive: boolean\r\n }[]\r\n pageIndex: number\r\n pageSize: number\r\n totalCount: number\r\n }\r\n exception!: {\r\n isActive: boolean\r\n reservationNumber: number\r\n }\r\n exceptionTags!: {\r\n isActive: boolean\r\n tags: []\r\n }\r\n noShowPolicies!: {\r\n isActive: boolean\r\n refundAmount: number\r\n }\r\n}\r\n\r\nexport class Record {\r\n id!: string\r\n title_EN!: string\r\n title_AR!: string\r\n restaurantId!: number\r\n refund!: number\r\n beforeTime!: number\r\n beforeTimeType!: string\r\n // afterTime!: number\r\n // afterTimeType!: string\r\n}\r\n\r\nexport class ShowPolicy {\r\n amount!: number\r\n restaurantId!: number\r\n}\r\n\r\nexport class Reservation {\r\n reservationNumber!: number\r\n isActive!: number\r\n}\r\nexport class ReservationType {\r\n name!: string\r\n value!: string\r\n} []\r\n\r\nexport class ExceptionTags {\r\n id!: number\r\n name!: string\r\n isSelected!: boolean\r\n}\r\n\r\nexport class ListFilter {\r\n pageNumber!: number\r\n pageSize!: number\r\n searchText!: string\r\n restaurantId!: number\r\n}\r\n\r\nexport enum sortList {\r\n Name = 0,\r\n NewestCreate = 1,\r\n OldestCreate = 2,\r\n HighestUse = 3,\r\n LowestUse = 4\r\n}\r\n\r\nexport enum policyType {\r\n CancellationPolicy = 'CancellationPolicy',\r\n No_Show = 'No_Show'\r\n}\r\n\r\nexport enum exceptionType {\r\n ReservationNumber = 0,\r\n Tags = 1\r\n}","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: PageData[];\r\n}\r\nexport class PageData {\r\n canDelete!: boolean\r\n canEdit!: boolean\r\n created!: string\r\n id!: string\r\n name!: string\r\n title_EN!: string\r\n title_AR!: string\r\n numberOfUse!: number\r\n icon!: any\r\n categoryId!: number\r\n categoryName!: string\r\n updated!: string\r\n isSelected!: boolean\r\n canSelect!: boolean\r\n}\r\n\r\n// for Units too\r\nexport class Record {\r\n id!: string\r\n name!: string\r\n title_EN!: string\r\n title_AR!: string\r\n icon!: any\r\n categoryId!: number\r\n categoryName!: string\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n ingredientName!: string;\r\n categoryId!: number;\r\n restaurantId!: number;\r\n sortItems!: number\r\n searchText!: string;\r\n}\r\n\r\nexport class IngredientFilter {\r\n ingredientName!: string;\r\n categoryId!: number;\r\n restaurantId!: number;\r\n categoryIds!: number[];\r\n\r\n}\r\n\r\nexport enum sortList {\r\n Name = 0,\r\n NewestCreate = 1,\r\n OldestCreate = 2,\r\n HighestUse = 3,\r\n LowestUse = 4\r\n}\r\n\r\n\r\nexport class IngredientObject {\r\n restaueantName!: string\r\n restaurantIngredientDtos!: IngredientList[]\r\n}\r\nexport class IngFilter {\r\n pageNumber!: number;\r\n pageSize!: number;\r\n searchText!: string;\r\n categoryId!: number;\r\n restaurantId!: number;\r\n}\r\n\r\n// Ingredient List for Restaurant\r\nexport class IngredientList {\r\n ingredient!: IngredientListItem;\r\n canEditIngredient!: boolean;\r\n canDeleteIngredient!: boolean;\r\n id!: number;\r\n ingredientId!: number;\r\n ingredientUnit!: IngredientUnit;\r\n\r\n name!: string;\r\n icon!: string;\r\n unit!: string;\r\n ingredientUnitId!: number;\r\n stockQuantityNumber!: any;\r\n menuQuantityNumber!: any;\r\n unitCost!: any;\r\n}\r\n\r\nexport class IngredientListItem {\r\n canDelete!: boolean;\r\n canEdit!: boolean;\r\n created!: string;\r\n id!: string;\r\n name!: string;\r\n title_EN!: string;\r\n title_AR!: string;\r\n numberOfUse!: number;\r\n icon: any;\r\n categoryId!: number;\r\n categoryName!: string;\r\n updated!: string;\r\n}\r\n\r\nexport class IngredientUnit {\r\n id!: number\r\n name!: string;\r\n title_AR!: string;\r\n title_EN!: string;\r\n}\r\n\r\nexport class Ingredient {\r\n restaurantId!: number;\r\n ingredients!: {\r\n ingredientId: number;\r\n ingredientUnitId: number;\r\n }[]\r\n}\r\n","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: {\r\n canDelete: boolean\r\n canEdit: boolean\r\n created: string\r\n id: string\r\n title_EN: string\r\n title_AR: string\r\n name: string\r\n numberOfUse: number\r\n staffMemberCount: number\r\n menuItemCount: number\r\n responseChefName: string\r\n responseCheficon: string\r\n }[];\r\n }\r\n \r\n export class Record {\r\n id!: string\r\n title_EN!: string\r\n title_AR!: string\r\n restaurantsId!: number\r\n hasKDS!: boolean\r\n printDeviceType!: string\r\n devicePath!: string\r\n devicePort!: number\r\n }\r\n \r\n export class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n sortItems!: sortList;\r\n searchText!: string;\r\n createdFrom!: Date;\r\n createdTo!: Date;\r\n restaurantId!: number;\r\n }\r\n \r\n export enum sortList {\r\n Name = 0,\r\n NewestCreate = 1,\r\n OldestCreate = 2,\r\n HighestUse = 4,\r\n LowestUse = 3,\r\n Highest_Amount = 5,\r\n Lowest_Amount = 6\r\n }\r\n \r\n export enum printType {\r\n Wifi = 'Wifi',\r\n Bluetooth = 'BlueTooth'\r\n }","export class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n restaurantName!: string\r\n pageData!: {\r\n canDelete: boolean\r\n canEdit: boolean\r\n created: string\r\n id: string\r\n title_EN: string\r\n title_AR: string\r\n numberOfUse: number\r\n }[];\r\n }\r\n \r\n export class Record {\r\n id!: string\r\n title_EN!: string\r\n title_AR!: string\r\n restaurantId!: number;\r\n }\r\n \r\n export class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n sortItems!: sortList;\r\n searchText!: string;\r\n createdFrom!: Date;\r\n createdTo!: Date;\r\n restaurantId!: number;\r\n numberOfItemfrom!: number;\r\n numberOfItemto!: number;\r\n }\r\n \r\n export enum sortList {\r\n Name = 0,\r\n NewestCreate = 1,\r\n OldestCreate = 2,\r\n HighestUse = 4,\r\n LowestUse = 3\r\n }\r\n ","import { DateStruct } from \"src/app/models/DatePickerModel\";\r\nimport { Lookup } from \"src/app/models/Lookup\";\r\n\r\nexport class ListData {\r\n canAdd!: boolean;\r\n pageIndex!: number;\r\n totalCount!: number;\r\n pageSize!: number;\r\n pageData!: RestaurantDetails[];\r\n userType!: userType\r\n}\r\nexport enum userType {\r\n Owner = 'RestaurantOwnerRole',\r\n Manager = 'RestaurantManagerRole'\r\n}\r\nexport enum RestaurantType {\r\n Main = 'Main',\r\n Branch = 'Branch'\r\n}\r\nexport class RestaurantDetails {\r\n branchNumber!: number\r\n canDelete!: boolean\r\n canEdit!: boolean\r\n city!: Lookup\r\n cityId!: number\r\n country!: Lookup\r\n countryId!: number\r\n created!: string\r\n icon!: string\r\n id!: number\r\n isSelected!: boolean\r\n name!: string\r\n isMain!: boolean\r\n mainRestaurant!: {\r\n icon: string\r\n name: string\r\n }\r\n isManager!: boolean\r\n latitude!: string\r\n longitude!: string\r\n mail!: string\r\n manager: any\r\n owner: any\r\n parintId!: number\r\n phoneNumber!: string\r\n phone!: string\r\n phoneCode!: string\r\n phoneflag!: string\r\n restaurantCuisine!: any[]\r\n restaurantType!: RestaurantType\r\n streetName!: string\r\n address_Ar!: string\r\n address_En!: string\r\n address!: string\r\n title_Ar!: string\r\n title_En!: string\r\n title!: string\r\n menusCount!: number\r\n branchManager!: Manager\r\n banner!: string\r\n shortName!: string;\r\n}\r\n\r\nexport class Manager {\r\n managerIcon!: string\r\n managerName!: string\r\n}\r\n\r\nexport class ListFilter {\r\n pageSize!: number;\r\n pageNumber!: number;\r\n sortItems!: sortList;\r\n searchText!: string;\r\n createdFrom!: Date;\r\n createdTo!: Date;\r\n restaurantsType!: RestaurantType\r\n restaurantnumber!: number\r\n branchNumber!: number\r\n}\r\n\r\nexport enum sortList {\r\n Name = 0,\r\n NewestCreate = 1,\r\n OldestCreate = 2,\r\n HighestUse = 4,\r\n LowestUse = 3\r\n}\r\n\r\nexport class RestaurantForm {\r\n id!: number\r\n restaurantType!: RestaurantType\r\n parintId!: number\r\n icon!: string\r\n phoneflag!: string\r\n phoneCode!: string\r\n phone!: string\r\n mail!: string\r\n countryId!: number\r\n cityId!: number\r\n streetEn!: string\r\n streetAr!: string\r\n title_EN!: string\r\n title_AR!: string\r\n latitude!: string\r\n longitude!: string\r\n cuisines!: number[]\r\n owner!: RestaurantStuff | null\r\n isManager!: boolean\r\n manager!: RestaurantStuff | null\r\n}\r\nexport class RestaurantStuff {\r\n fName!: string\r\n lName!: string\r\n phoneflag!: string\r\n phoneCode!: string\r\n phoneNumber!: string\r\n email!: string\r\n nationalityId!: number\r\n birthDate!: DateStruct\r\n gender!: string\r\n profilePhoto!: string\r\n}\r\n\r\nexport class ReservationChannels {\r\n id!: number\r\n name!: string\r\n icon!: string\r\n isOnlineReservation!: boolean\r\n isOther!: boolean\r\n isSelected!: boolean\r\n checked?: boolean\r\n otherReservationvalue?: string\r\n otherValue?: string\r\n}\r\n\r\n\r\nexport class RestaurantProfile {\r\n id!: number\r\n restaurantType!: RestaurantType\r\n parintId!: number\r\n isOpenNow!: boolean\r\n isPublish!: boolean\r\n mainRestaurant!: {\r\n icon: string\r\n name: string\r\n }\r\n icon!: string\r\n phone!: string\r\n phoneflag!: string\r\n phoneCode!: string\r\n mail!: string\r\n website!: string\r\n countryId!: number\r\n cityId!: number\r\n streetEn!: string\r\n streetAr!: string\r\n streetName!: string\r\n title_EN!: string\r\n title_AR!: string\r\n name!: string\r\n isManager!: boolean\r\n latitude!: string\r\n longitude!: string\r\n country!: Country\r\n city!: City\r\n restaurantCuisine!: {\r\n cuisineId: number\r\n restaurantId: number\r\n cuisine: Cuisine\r\n }[]\r\n owner!: RestaurantStuff\r\n manager!: RestaurantStuff\r\n canEdit!: boolean\r\n canReplaceManager!: boolean\r\n canDelete!: boolean\r\n branchNumber!: number\r\n created!: string\r\n visitor!: number\r\n staffNumber!: number\r\n rate!: number\r\n complainys!: number\r\n canViewCancellationPolicy!: boolean;\r\n canAddCancellationPolicy!: boolean;\r\n canEditCancellationPolicy!: boolean;\r\n canDeleteCancellationPolicy!: boolean;\r\n publishStatus!: any\r\n canLenkpublishStatus!: any\r\n shortName!: string\r\n showPublishButton!: boolean\r\n canPublish!: boolean\r\n canViewConfigSection!: boolean\r\n statistics!: {visits: number, rate: number, staff: number, complaints: number}\r\n vatNumber!: string\r\n menuQRCode!: string\r\n\r\n canShowOwnerManager!: boolean\r\n canShowShortCut!: boolean\r\n attandanceFeature!: boolean\r\n}\r\n\r\nexport class Country {\r\n id!: number\r\n name!: string\r\n title_EN!: string\r\n title_AR!: string\r\n}\r\n\r\nexport class City {\r\n id!: number\r\n name!: string\r\n title_EN!: string\r\n title_AR!: string\r\n}\r\n\r\nexport class Cuisine {\r\n id!: number\r\n name!: string\r\n numberOfUse!: number\r\n title_AR!: string\r\n title_EN!: string\r\n}\r\n\r\nexport class AmenitiesRestaurant {\r\n restaurantId!: number\r\n amenities!: {\r\n amenitiesId: number;\r\n }[]\r\n}\r\nexport class AmenitiesLookup {\r\n id!: number\r\n name!: string\r\n title_EN!: string\r\n title_AR!: string\r\n icon!: string\r\n updated!: string\r\n isSelected!: boolean\r\n canSelect!: boolean\r\n canDelete!: boolean\r\n}\r\n\r\nexport class AmenitiesObject {\r\n restaueantName!: string\r\n restaurantIngredientDtos!: AmenitiesLookup[]\r\n}\r\n\r\n\r\nexport class DiwanSizes {\r\n restaurantsizeId!: number\r\n id!: number\r\n name!: string\r\n title_EN!: string\r\n title_AR!: string\r\n canDelete!: boolean\r\n isSelected!: boolean\r\n canSelect!: boolean\r\n}\r\n\r\nexport class RestaurantSize {\r\n customSize!: CustomSize\r\n diwanSize!: number[]\r\n restaurantId!: number\r\n}\r\n\r\nexport class CustomSize {\r\n restaurantSizeId!: number\r\n name!: {\r\n title_EN: string\r\n title_AR: string\r\n }\r\n sizeClassificationId!: number\r\n} []\r\n\r\n\r\nexport enum AddManagerType {\r\n New,\r\n Old\r\n}\r\n\r\nexport class Managers {\r\n icon!: string;\r\n name!: string;\r\n oldRestaurant!: string;\r\n restaurants!: string[];\r\n userId!: number;\r\n}\r\n\r\nexport class RestaurantFilter {\r\n pageNumber!: number;\r\n pageSize!: number;\r\n searchText!: string;\r\n selectedId!: number;\r\n}\r\nexport class RestaurantsData {\r\n pageData!: any[];\r\n pageNumber!: number;\r\n pageSize!: number;\r\n totalCount!: number;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List.Cancellation';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RefundPolicyService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getPolicies(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResGetPolicies`, filter);\r\n }\r\n GetPolicyById(id: string, restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRefundPolicy/ResGetPolicyById?id=${id}&RestaurantId=${restaurantId}`);\r\n }\r\n GetNoShowPolicy(restaurantId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResRefundPolicy/ResGetNoShowPolicy?RestaurantId=${restaurantId}`);\r\n }\r\n GetExceptionReservationNumber(restaurantId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResRefundPolicy/ResGetExceptionReservationNumber?RestaurantId=${restaurantId}`);\r\n }\r\n GetExceptionTags(restaurantId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResRefundPolicy/ResGetExceptionTags?RestaurantId=${restaurantId}`);\r\n }\r\n delete(id: string) {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResDeleteCancellationPolicy?id=${id}`, null);\r\n }\r\n savePolicyRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResEditPolicy`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResNewPolicy`, data);\r\n }\r\n }\r\n GetReservationTimeType(): any {\r\n return this.http.get(`${environment.apiUrl}/ResRefundPolicy/ResGetReservationTimeType`);\r\n }\r\n EditNoShowPolicy(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResEditNoShowPolicy`, data);\r\n }\r\n\r\n EditReservationNumber(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResEditReservationNumber`, data);\r\n }\r\n\r\n EditExceptionTags(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRefundPolicy/ResEditExceptionTags`, data);\r\n }\r\n ChangePolicyStatus(id: number, Status?: boolean, restaurantId?: number, policyType?: string) {\r\n return this.http.post(`\r\n ${environment.apiUrl}/ResRefundPolicy/ResChangePolicyStatus?PolicyId=${id}&RestaurantId=${restaurantId}&policyType=${policyType}&Status=${Status}`, null);\r\n }\r\n ChangeExceptionsStatus(Status?: boolean, restaurantId?: number, type?: number) {\r\n return this.http.post(`\r\n ${environment.apiUrl}/ResRefundPolicy/ResChangeExceptionsStatus?RestaurantId=${restaurantId}&type=${type}&Status=${Status}`, null);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FloorDetails, SaveFloorData } from '../../floor-plan/models/Plan-Shaps';\r\nimport { ListFilter } from '../models/Floors';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FloorsService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantFloors/ResGetAllRestaurantFloors`, filter);\r\n }\r\n GetDetails(id: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurantFloors/ResGetRestaurantFloorsById?id=${id}`);\r\n }\r\n delete(id: number) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantFloors/ResDeleteRestaurantFloors?id=${id}`, null);\r\n }\r\n saveRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantFloors/ResEditRestaurantFloors`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantFloors/ResNewRestaurantFloors`, data);\r\n }\r\n }\r\n saveFloor(data: SaveFloorData) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantFloors/ResSaveFloorsTables`, data);\r\n }\r\n activeDeactiveFloor(id: number, Stats: boolean) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantFloors/ResActiveDeactiveFloor?floorId=${id}&Stats=${Stats}`, null);\r\n }\r\n getAllseating(id: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurantFloors/ResgetAllseating?RestaurantId=${id}`);\r\n }\r\n getAllRestaurantAmenity(id: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurantFloors/ResgetAllRestaurantAmenity?RestaurantId=${id}`);\r\n }\r\n getFloorShapes() {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurantFloors/ResGetFloorShapes`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { FileThumbObj } from 'src/app/models/Lookup';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GalleryService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(id: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResListPhotosAndVideos?RestaurantId=${id}`);\r\n }\r\n delete(ResturantId: number, id: number) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResDeleteGallary?ResturantId=${ResturantId}&GallaryId=${id}`, null);\r\n }\r\n saveRecord(data: any) {\r\n const formData = new FormData();\r\n let files = data.photos.concat(data.videos)\r\n data.thumbType = [];\r\n\r\n if (files?.length) {\r\n files.forEach((item: FileThumbObj, index: number) => {\r\n if (!item.id) { // send new file\r\n formData.append(String(index), item?.file, item?.file?.name);\r\n formData.append('thumb-' + index, item?.thumb, item?.thumb?.name);\r\n data.thumbType.push(item.thumbType);\r\n }\r\n });\r\n }\r\n delete data['photos'];\r\n delete data['videos'];\r\n formData.append('data', JSON.stringify(data));\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResSaveRestaurantPhotos`, formData);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { IngFilter, Ingredient, ListFilter } from '../models/List.Ingredient';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RestaurantIngredientService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n GetIngredientForRestaurant(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantIngredient/ResGetIngredientForRestaurant`, filter);\r\n }\r\n GetRestaurantIngredient(filter: IngFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantIngredient/ResGetRestaurantIngredient`, filter);\r\n }\r\n GetIngredientUnit(): any {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurantIngredient/ResGetIngredientUnit`);\r\n }\r\n saveRecord(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantIngredient/ResEditRestaurantIngredient`, data);\r\n }\r\n checkPermission(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurantIngredient/ResCheckRestaurantIngredientPermission`, data);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List.Kitchen';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KitchenService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/GetAllKitchen`, filter);\r\n }\r\n GetDetails(id: string) {\r\n return this.http.get(`${environment.apiUrl}/ResKitchen/GetKitchenById?id=${id}`);\r\n }\r\n delete(id: string) {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/DeleteKitchen?id=${id}`, null);\r\n }\r\n saveRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/EditKitchen`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/NewKitchen`, data);\r\n }\r\n }\r\n GetAllRestaurantKitchen(RestaurantId: number, HasKDS: boolean | null) {\r\n let params: any = { RestaurantId };\r\n if (HasKDS != null) {\r\n params.HasKDS = HasKDS;\r\n }\r\n return this.http.get(`${environment.apiUrl}/ResKitchen/GetAllRestaurantKitchen`, { params });\r\n }\r\n GetAllRestaurantKitchens(restaurantsIds: number[]) {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/ResGetRestaurantsKitchens`, { restaurantsIds });\r\n }\r\n GetMenuitemKitchens(KitchensId: any) {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/GetMenuitemKitchens?KitchensId=${KitchensId}`, null);\r\n }\r\n getStaffsKitchens(KitchensId: any) {\r\n return this.http.post(`${environment.apiUrl}/ResKitchen/getStaffsKitchens?KitchensId=${KitchensId}`, null);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ListFilter } from '../models/List.MenuCategories';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuCategoryService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: ListFilter): any {\r\n return this.http.post(`${environment.apiUrl}/ResMenuCategory/ResGetAllMenuCategory`, filter);\r\n }\r\n ResGetAllMenuCategoryList(restId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResMenuCategory/ResGetAllMenuCategoryList?RestaurantId=${restId}`);\r\n }\r\n GetDetails(id: string) {\r\n return this.http.get(`${environment.apiUrl}/ResMenuCategory/ResGetMenuCategoryById?id=${id}`);\r\n }\r\n GetAllMenuCategoryList(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResMenuCategory/ResGetAllMenuCategoryList?RestaurantId=${RestaurantId}`);\r\n }\r\n delete(id: string) {\r\n return this.http.post(`${environment.apiUrl}/ResMenuCategory/ResDeleteMenuCategory?id=${id}`, null);\r\n }\r\n saveRecord(data: any) {\r\n if (data.id) {\r\n return this.http.post(`${environment.apiUrl}/ResMenuCategory/ResEditMenuCategory`, data);\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/ResMenuCategory/ResNewMenuCategory`, data);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { RestaurantDetails, RestaurantFilter } from \"../models/List.Restaurant\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RestaurantService {\r\n refreshList = new BehaviorSubject(false);\r\n refreshDetails = new BehaviorSubject(false);\r\n createFormSubmitted = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAll(filter: any): any {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResGetOwnBranchesFilter`, filter);\r\n }\r\n GetAllMainRestaurants() {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetAllMainRestaurants`);\r\n }\r\n\r\n GetRestaurants(restaurantFilterModel: RestaurantFilter) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/GetRestaurants`, restaurantFilterModel);\r\n }\r\n GetManagers(ResId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetManagers?RestaurantId=${ResId}`);\r\n }\r\n GetOwneRestaurant() {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetOwneRestaurant`);\r\n }\r\n // GetAllRestaurant(restaurantId: number): any {\r\n // return this.http.post(`${environment.apiUrl}/ResRestaurant/GetAllRestaurant`, restaurantId);\r\n // }\r\n\r\n GetRestaurantProfile(restaurantId: number | null = null): any {\r\n if (restaurantId) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/RestaurantProfile?id=${restaurantId}`);\r\n } else {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/MainRestaurantProfile`);\r\n }\r\n }\r\n\r\n GetDetails(id: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/RestaurantProfile?id=${id}`);\r\n }\r\n SaveAttandanceFeature(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/SaveAttandanceFeature`, data);\r\n }\r\n saveRecord(data: any, logo: any, banner: any) {\r\n const formData = new FormData();\r\n if (logo && logo?.name ) {\r\n formData.append('Icon', logo, logo?.name);\r\n // formData.append('bannerPhoto', banner, banner?.name)\r\n }\r\n if (banner && banner?.name) {\r\n // formData.append('Icon', logo, logo?.name);\r\n formData.append('bannerPhoto', banner, banner?.name)\r\n }\r\n formData.append('data', JSON.stringify(data));\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/EditRestaurant`, formData);\r\n }\r\n EditReservationChannels(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/EditReservationChannels`, data);\r\n }\r\n GetReservationChannels(restaurantId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetReservationChannels?RestaurantId=${restaurantId}`);\r\n }\r\n saveRestaurantConfig(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResSaveRestaurantConfig`, data);\r\n }\r\n getRestaurantConfig(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetRestaurantConfig?RestaurantId=${restaurantId}`);\r\n }\r\n\r\n DeleteRestaurant(restaurantId: number): any {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/DeleteRestaurant?Restaurantid=${restaurantId}`, null);\r\n }\r\n GetRestaurantAmenities(restaurantId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetRestaurantAmenities?RestaurantId=${restaurantId}`);\r\n }\r\n SaveRestaurantAmenities(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/SaveRestaurantAmenities`, data);\r\n }\r\n ReplaceRestaurantManager(data: any, photo: any) {\r\n const formData = new FormData();\r\n if (photo && photo.name) {\r\n formData.append('managerPhoto', photo, photo.name);\r\n }\r\n formData.append('data', JSON.stringify(data));\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResReplaceRestaurantManager`, formData);\r\n }\r\n /** Start of Sizes */\r\n GetAllDiwanSizes() {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetAllDiwanSizes`);\r\n }\r\n // GetAllRestaurantSizesList(restaurantId: any) {\r\n // return this.http.get(`${environment.apiUrl}/ResRestaurant/GetAllRestaurantSizesList?RestaurantId=${restaurantId}`);\r\n // }\r\n GetRestaurantSize(restaurantId: any) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/getRestaurantSize?RestaurantId=${restaurantId}`);\r\n }\r\n SaveRestaurantSize(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/SaveRestaurantSize`, data);\r\n }\r\n /** End of Sizes */\r\n GetRestaurantShortDetails(id: any) {\r\n return this.http.get(`${environment.apiUrl}/Restaurant/GetRestaurantShortDetails?id=${id}`);\r\n }\r\n RestaurantSizesList(RestaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetAllRestaurantSizesList?RestaurantId=${RestaurantId}`);\r\n }\r\n PublishRestaurant(id: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/PublishRestaurant?id=${id}`, null);\r\n }\r\n GetRestaurantTaxList(RestaurantId: number, menuItemId: number = 0) {\r\n let query = `?Restaurantid=${RestaurantId}`;\r\n if (menuItemId) {\r\n query += `&menuItem=${menuItemId}`;\r\n }\r\n return this.http.get(`${environment.apiUrl}/Restaurant/GetRestaurantTaxList${query}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { PaymentSettings } from '../models/PaymentMoldes';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentService {\r\n\r\n refreshList = new BehaviorSubject(false);\r\n refreshDetails = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n GetPaymentSettings(restaurantId: number): any {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetPaymentMethodsSettings?RestaurantId=${restaurantId}`);\r\n }\r\n SavePaymentSettings(data: PaymentSettings) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResSavePaymentMethodsSettings`, data);\r\n }\r\n /*****************************\r\n * NFC Configuration\r\n */\r\n ResGetRestaurantNearpayNFCSetting(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetRestaurantNearpayNFCSetting?restaurantId=${restaurantId}`);\r\n }\r\n ResSetRestaurantNearpayNFCSetting(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/ResSetRestaurantNearpayNFCSetting`, data);\r\n }\r\n ResGetRestaurantNFCUsersList(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/ResGetRestaurantNFCUsersList?restaurantId=${restaurantId}`);\r\n }\r\n}\r\n","export class IngFilter {\r\n pageNumber!: number\r\n pageSize!: number\r\n selectedId!: number\r\n searchText!: string\r\n wareHouseId!: number\r\n}\r\nexport interface IngredListData {\r\n pageSize: number\r\n pageNumber: number\r\n totalCount: number\r\n warehouseName: string\r\n canAdd: boolean\r\n wareHouseIngredientDtos: PageData[]\r\n}\r\n\r\nexport interface PageData {\r\n id: number|null\r\n wareHouseId: number|null\r\n ingredientId: number|null\r\n ingredientUnitId: number|null\r\n factor: number|null\r\n canEditIngredient: boolean\r\n canDeleteIngredient: boolean\r\n ingredient?: Ingredient|null\r\n ingredientUnit?: IngredientUnit|null\r\n}\r\n\r\nexport interface Ingredient {\r\n id: number\r\n name: string\r\n title_EN: any\r\n title_AR: any\r\n icon: string\r\n categoryId: number\r\n numberOfUse: number\r\n created: any\r\n updated: any\r\n isDeleted: boolean\r\n canEdit: boolean\r\n canDelete: boolean\r\n categoryName: any\r\n}\r\n\r\nexport interface IngredientUnit {\r\n id: number\r\n name: string\r\n title_EN: any\r\n title_AR: any\r\n}\r\n\r\n\r\nexport enum CostPriceMethodEnum {\r\n Fixed = 'Fixed',\r\n FromTransactions = 'FromTransactions'\r\n}","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { DirtyComponent } from './dirty-component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DirtyCheckGuard implements CanDeactivate {\r\n\r\n canDeactivate(\r\n component: DirtyComponent,\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean | UrlTree {\r\n if (component.canDeactivate()) {\r\n return component.openConfirmDialog();\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Directive, EventEmitter, HostListener } from '@angular/core';\r\nimport { FormGroup, NgForm } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-canDeactivate',\r\n template: ''\r\n})\r\n\r\nexport abstract class DirtyComponent {\r\n form!: NgForm;\r\n formGroup!: FormGroup;\r\n leaveMsg!: string;\r\n dialogRef: any;\r\n close = new EventEmitter();\r\n\r\n constructor(\r\n public translate: TranslateService\r\n ) { }\r\n\r\n canDeactivate(): boolean | Observable {\r\n return this.formGroup.dirty;\r\n };\r\n\r\n openConfirmDialog() {\r\n if (this.canDeactivate()) {\r\n return Swal.fire({\r\n title: this.translate.instant('swalMsg.Areyousure'),\r\n // title: this.translate.instant('swalMsg.Unsaved changes are detected'),\r\n text: this.leaveMsg || this.translate.instant('swalMsg.changesHappend'),\r\n // icon: 'warning',\r\n // iconHtml: '',\r\n imageUrl: './assets/images/icons/warning-ic.svg',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No'),\r\n // width: 750,\r\n // customClass: {\r\n // container: 'sweet-dialog',\r\n // }\r\n }).then((result) => {\r\n if (result.value) {\r\n this.dialogRef?.close();\r\n this.close.emit(true);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n } else {\r\n this.close.emit(true);\r\n this.dialogRef?.close();\r\n }\r\n return false;\r\n }\r\n\r\n @HostListener('window:beforeunload', ['$event']) unloadNotification($event: any) {\r\n if (this.canDeactivate()) {\r\n $event.returnValue = true;\r\n }\r\n }\r\n}\r\n","import { MatPaginatorIntl } from '@angular/material/paginator';\r\n\r\nconst lang = localStorage.getItem('language')\r\n\r\nexport function CustomPaginator() {\r\n\r\n const customPaginatorIntl = new MatPaginatorIntl();\r\n\r\n customPaginatorIntl.itemsPerPageLabel = lang == 'ar' ? 'سجل لكل صفحة: ' : 'Entries per page: ';\r\n customPaginatorIntl.getRangeLabel = RangeLabel;\r\n\r\n return customPaginatorIntl;\r\n}\r\n\r\nconst RangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length == 0 || pageSize == 0) { return `0 ` + lang == 'ar' ? 'من' : 'of' + ` ${length}`; }\r\n\r\n length = Math.max(length, 0);\r\n\r\n const startIndex = page * pageSize;\r\n\r\n // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n const endIndex = startIndex < length ?\r\n Math.min(startIndex + pageSize, length) :\r\n startIndex + pageSize;\r\n\r\n return `${startIndex + 1} - ${endIndex} ${lang == 'ar' ? 'من' : 'of'} ${length}`;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DatePickerModel } from '../models/DatePickerModel';\r\n\r\nconst MONTHS_AR = ['محرم', 'صفر', 'ربيع الأول', 'ربيع الآخر', 'جمادى الأولى', 'جمادى الآخرة', 'رجب', 'شعبان', 'رمضان', 'شوال', 'ذو القعدة', 'ذو الحجة'];\r\n\r\nconst MONTHS_EN = ['Muharram', 'Safar', 'Rabi\\'ul-Awwal', 'Rabi\\'ul-Akhir', 'Jumadal-Ula', 'Jumadal-Akhir', 'Rajab', 'Sha\\'ban', 'Ramadan', 'Syawwal', 'Dhul-Qa\\'da', 'Dhul-Hijja'];\r\n\r\nconst language = localStorage.getItem('language') || 'en';\r\n\r\n@Pipe({\r\n name: 'DateModel'\r\n})\r\nexport class DateModelPipe implements PipeTransform {\r\n transform(date: DatePickerModel|any, time: string|null = null): string {\r\n if (!date) { return ''; }\r\n const months = language === 'en' ? MONTHS_EN : MONTHS_AR;\r\n\r\n let result = '';\r\n if (date.gregorianDate) {\r\n if (date.gregorianDate) {\r\n result += new DatePipe(language).transform(date.gregorianDate, 'd MMM, y');\r\n }\r\n if (date.gregorianDate && date.hijri) {\r\n result += ' - ';\r\n }\r\n if (date.hijri) {\r\n result += date.hijri.day + ' ' + months[date.hijri.month - 1] + ', ' + date.hijri.year;\r\n }\r\n } else {\r\n if (date.isHijri) {\r\n result += date.day + ' ' + months[date.month - 1] + ', ' + date.year;\r\n } else {\r\n result += date.day + ' ' + date.month + ', ' + date.year;\r\n }\r\n }\r\n\r\n if (time) {\r\n result +=\r\n new DatePipe(language)\r\n .transform(String(date.gregorianDate).split('T')[0] + ' ' + time, ' - h:mm a');\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from '@ngx-translate/core';\r\n\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { TranslateLoader } from \"@ngx-translate/core\";\r\nimport { TranslationLoadedService } from \"../services/TranslationLoadedService\";\r\nimport { catchError, forkJoin, map, merge, Observable, of } from \"rxjs\";\r\n\r\nexport class MyMissingTranslationHandler implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n return 'some value';\r\n }\r\n}\r\nexport class MultiTranslateHttpLoader implements TranslateLoader {\r\n constructor(private http: HttpClient, private translationLoaded: TranslationLoadedService) { }\r\n\r\n public getTranslation(lang: string): Observable {\r\n const resources: string[] = [lang + '.json'];\r\n\r\n const requests = resources.map(resource => {\r\n const path = './assets/i18n/' + resource;\r\n return this.http.get(path).pipe(\r\n catchError(res => {\r\n console.error('Something went wrong for the following translation file:', path);\r\n console.error(res.message);\r\n return of({});\r\n })\r\n );\r\n });\r\n return forkJoin(requests).pipe(\r\n map(response => {\r\n this.translationLoaded.loaded$().next();\r\n return Object.assign({}, ...response);\r\n })\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'safe', standalone: true })\r\nexport class SafePipe implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer) { }\r\n transform(url: string) {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private authenticationService: AuthenticationService\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const currentUser = this.authenticationService.currentUserValue;\r\n if (currentUser) {\r\n this.authenticationService.menuLoaded.subscribe((data): any => {\r\n if (data) {\r\n if (location.pathname !== '/') {\r\n let menuItems = [];\r\n let canAccess = false;\r\n menuItems = [...data];\r\n menuItems.push({url: '/login'});\r\n menuItems.push({url: '/admin/profile'});\r\n menuItems.push({url: '/admin/changepassword'});\r\n menuItems.push({url: '/admin/floorPlan'});\r\n menuItems.forEach(item => {\r\n if (location.href.includes(item.url)) {\r\n canAccess = true;\r\n } else {\r\n if (item.childs && item.childs.length) {\r\n item.childs.forEach((child: any) => {\r\n if (location.href.includes(child.url)) {\r\n canAccess = true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n if (canAccess) {\r\n return true;\r\n }\r\n this.router.navigate(['/admin']);\r\n }\r\n }\r\n },\r\n (error: any) => {\r\n this.router.navigate(['/logout']);\r\n });\r\n // authorised so return true\r\n return true;\r\n }\r\n\r\n // not logged in so redirect to login page with the return url\r\n this.router.navigate(['/logout'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Renderer2, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appAutoResize]'\r\n})\r\nexport class AutoResizeDirective implements AfterViewInit {\r\n\r\n private minWidth = 50; // Minimum width in pixels\r\n private padding = 0; // Extra space to avoid text cutoff\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => this.adjustWidth());\r\n }\r\n\r\n @HostListener('input') onInput() {\r\n this.adjustWidth();\r\n }\r\n\r\n private adjustWidth() {\r\n let input = this.el.nativeElement.querySelector('input');\r\n if (!input) {\r\n input = this.el.nativeElement as HTMLInputElement;\r\n this.padding = 25;\r\n }\r\n if (!input) return;\r\n\r\n // Create a hidden span to measure text width\r\n const tempSpan = this.renderer.createElement('span');\r\n this.renderer.setStyle(tempSpan, 'position', 'absolute');\r\n this.renderer.setStyle(tempSpan, 'visibility', 'hidden');\r\n this.renderer.setStyle(tempSpan, 'white-space', 'nowrap');\r\n this.renderer.setProperty(tempSpan, 'innerText', input.value || input.placeholder || 'W');\r\n this.renderer.appendChild(document.body, tempSpan);\r\n\r\n const newWidth = tempSpan.offsetWidth + this.padding;\r\n this.renderer.removeChild(document.body, tempSpan);\r\n\r\n // Set the width dynamically with a minimum limit\r\n this.renderer.setStyle(input, 'width', `${Math.max(this.minWidth, newWidth)}px`);\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class CustomValidator {\r\n static noWhiteSpace(control: AbstractControl): ValidationErrors | null {\r\n let crtValue = control.value;\r\n if (crtValue) { crtValue = crtValue.trim(); }\r\n if (!crtValue) { return { required: true }; }\r\n return null;\r\n }\r\n static MatchValidator(source: string, target: string): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const sourceCtrl = control.get(source);\r\n const targetCtrl = control.get(target);\r\n\r\n return sourceCtrl && targetCtrl && sourceCtrl.value !== targetCtrl.value\r\n ? { mismatch: true }\r\n : null;\r\n };\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Output,\r\n Input,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDnd]'\r\n })\r\nexport class DndDirective {\r\n @HostBinding('class.fileover') fileOver: boolean = false;\r\n @Output() fileDropped = new EventEmitter();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDropDown]'\r\n})\r\nexport class DropDownDirective {\r\n @Input() wasInside: boolean = false;\r\n\r\n constructor(private eRef: ElementRef) { }\r\n\r\n @HostBinding('class.active') isOpen = false;\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event: any) {\r\n if (this.eRef.nativeElement.contains(event.target)) {\r\n this.isOpen = !this.isOpen;\r\n } else {\r\n this.isOpen = false;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, retry, tap } from 'rxjs/operators';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n lang = localStorage.getItem('language') || 'en';\r\n constructor(\r\n private authenticationService: AuthenticationService,\r\n private router: Router,\r\n private snackBar: MatSnackBar\r\n ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n // retry({ count: 4, delay: 10000 }),\r\n catchError(err => {\r\n if (err.status === 422) {\r\n this.authenticationService.logout();\r\n }\r\n if (this.authenticationService.currentUserValue) {\r\n if (err.status === 401 || err.status === 424 || err.status === 423) {\r\n // this.authenticationService.logout();\r\n this.router.navigate(['/admin/notAuthorized']);\r\n }\r\n }\r\n if (err.status === 0) { // Offline\r\n this.snackBar.open(\r\n this.lang == 'en' ? 'You are offline!' : 'أنت غير متصل!',\r\n this.lang == 'en' ? 'Ok' : 'حسنا',\r\n {\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n // this.snackBar.open(this.translate.instant('general.You are offline!'), this.translate.instant('swalMsg.Ok'), {\r\n // horizontalPosition: 'center',\r\n // verticalPosition: 'top'\r\n // });\r\n }\r\n\r\n // const error = err.error.message || err.statusText;\r\n return throwError(err.error);\r\n })\r\n );\r\n }\r\n}\r\n","import { MatDateFormats, NativeDateAdapter } from '@angular/material/core';\r\nexport class AppDateAdapter extends NativeDateAdapter {\r\n // override format(date: Date, displayFormat: Object): string {\r\n // let day: string = date.getDate().toString();\r\n // day = +day < 10 ? '0' + day : day;\r\n // let month: string = (date.getMonth() + 1).toString();\r\n // month = +month < 10 ? '0' + month : month;\r\n // let year = date.getFullYear();\r\n // if (displayFormat === 'input') {\r\n // return `${day}/${month}/${year}`;\r\n // }\r\n // return `${month}/${year}`;\r\n // // return date.toDateString();\r\n\r\n // // Override how the date is displayed in the input field\r\n // override format(date: Date, displayFormat: string): string {\r\n // if (!date) return '';\r\n\r\n // // Customize the date format (DD/MM/YYYY)\r\n // const day = date.getDate().toString().padStart(2, '0');\r\n // const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Months are zero-based\r\n // const year = date.getFullYear();\r\n\r\n // return `${day}/${month}/${year}`;\r\n // }\r\n\r\n // // Override date parsing to handle different formats (Safari compatibility)\r\n // override parse(value: any): Date | null {\r\n // if (!value || typeof value !== 'string') return null;\r\n\r\n // const parts = value.split('/');\r\n // if (parts.length === 3) {\r\n // const day = parseInt(parts[0], 10);\r\n // const month = parseInt(parts[1], 10) - 1; // Months are 0-based in JS\r\n // const year = parseInt(parts[2], 10);\r\n\r\n // const parsedDate = new Date(year, month, day);\r\n // return isNaN(parsedDate.getTime()) ? null : parsedDate;\r\n // }\r\n\r\n // return null;\r\n // }\r\n\r\n // Override date formatting for input display (DD/MM/YYYY hh:mm AM/PM)\r\n override format(date: Date, displayFormat: string): string {\r\n if (!date) return '';\r\n\r\n const day = date.getDate().toString().padStart(2, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Months are zero-based\r\n const year = date.getFullYear();\r\n const formattedDate = `${day}/${month}/${year}`;\r\n\r\n if (displayFormat === 'datetime') {\r\n const hours = date.getHours();\r\n const minutes = date.getMinutes().toString().padStart(2, '0');\r\n const period = hours >= 12 ? 'PM' : 'AM';\r\n const formattedHours = hours % 12 || 12; // Convert 24h format to 12h format\r\n return `${formattedDate} ${formattedHours}:${minutes} ${period}`;\r\n }\r\n if (displayFormat === 'input') {\r\n return formattedDate;\r\n }\r\n return `${month}/${year}`;\r\n }\r\n\r\n // Override date parsing to support Safari compatibility and datetime parsing\r\n override parse(value: any): Date | null {\r\n if (!value || typeof value !== 'string') return null;\r\n\r\n const dateTimeParts = value.split(' ');\r\n const dateParts = dateTimeParts[0].split('/');\r\n\r\n if (dateParts.length === 3) {\r\n const day = parseInt(dateParts[0], 10);\r\n const month = parseInt(dateParts[1], 10) - 1;\r\n const year = parseInt(dateParts[2], 10);\r\n\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (dateTimeParts.length > 1) {\r\n const timeParts = dateTimeParts[1].split(':');\r\n if (timeParts.length === 2) {\r\n hours = parseInt(timeParts[0], 10);\r\n minutes = parseInt(timeParts[1], 10);\r\n const period = dateTimeParts[2]?.toUpperCase();\r\n\r\n if (period === 'PM' && hours < 12) hours += 12;\r\n if (period === 'AM' && hours === 12) hours = 0;\r\n }\r\n }\r\n\r\n const parsedDate = new Date(year, month, day, hours, minutes);\r\n return isNaN(parsedDate.getTime()) ? null : parsedDate;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\nexport const APP_DATE_FORMATS: MatDateFormats = {\r\n parse: {\r\n dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\r\n },\r\n display: {\r\n dateInput: 'input',\r\n monthYearLabel: { year: 'numeric', month: 'numeric' },\r\n dateA11yLabel: {\r\n year: 'numeric', month: 'long', day: 'numeric'\r\n },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\r\n }\r\n};\r\n// export const APP_DATE_FORMATS: MatDateFormats = {\r\n// parse: {\r\n// dateInput: 'DD/MM/YYYY hh:mm A',\r\n// },\r\n// display: {\r\n// dateInput: 'DD/MM/YYYY hh:mm A',\r\n// monthYearLabel: 'MMM YYYY',\r\n// dateA11yLabel: 'LL',\r\n// monthYearA11yLabel: 'MMMM YYYY'\r\n// }\r\n// };\r\nexport const CUSTOM_DATE_FORMATS: MatDateFormats = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY', // Define how user input should be parsed\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY', // Format shown in input field\r\n monthYearLabel: 'MMM YYYY', // Format for month/year selection\r\n dateA11yLabel: 'LL', // Accessibility format\r\n monthYearA11yLabel: 'MMMM YYYY' // Accessibility format for month/year selection\r\n }\r\n};\r\nexport const APP_NGX_MAT_DATE_FORMATS = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY hh:mm A', // Parsing format\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY hh:mm A', // How the input field displays the date\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n }\r\n};\r\n","import { Directive, Component, Input, ViewContainerRef, TemplateRef, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({ selector: '[inView]' })\r\nexport class InView implements AfterViewInit {\r\n alreadyRendered!: boolean; // cheking if visible already\r\n\r\n constructor(\r\n private vcRef: ViewContainerRef,\r\n private tplRef: TemplateRef\r\n ) { }\r\n\r\n ngAfterViewInit() {\r\n const commentEl = this.vcRef.element.nativeElement; // template\r\n const elToObserve = commentEl.parentElement;\r\n this.setMinWidthHeight(elToObserve);\r\n\r\n const observer = new IntersectionObserver(entries => {\r\n entries.forEach(entry => {\r\n this.renderContents(entry.isIntersecting)\r\n });\r\n }, { threshold: [0, .1, .9, 1] });\r\n observer.observe(elToObserve);\r\n }\r\n\r\n renderContents(isInView: any) {\r\n if (isInView && !this.alreadyRendered) {\r\n this.vcRef.clear();\r\n this.vcRef.createEmbeddedView(this.tplRef);\r\n this.alreadyRendered = true;\r\n }\r\n }\r\n\r\n setMinWidthHeight(el: HTMLElement) { // prevent issue being visible all together\r\n const style = window.getComputedStyle(el);\r\n const [width, height] = [parseInt(style.width), parseInt(style.height)];\r\n !width && (el.style.minWidth = '40px');\r\n !height && (el.style.minHeight = '40px');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AuthenticationService } from '../services/authentication.service';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n constructor(private authenticationService: AuthenticationService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // add authorization header with jwt token if available\r\n const currentUser = this.authenticationService.currentUserValue;\r\n const language = localStorage.getItem('language') || 'en';\r\n const SignalRConnectionId = this.authenticationService.currentSignalRConnectionId;\r\n\r\n const requestHeader = {\r\n 'accept-language': language,\r\n 'ClientType': 'RestaurantSystem',\r\n lang: language\r\n } as any;\r\n\r\n if (SignalRConnectionId) {\r\n requestHeader.SignalRConnectionId = SignalRConnectionId;\r\n }\r\n if (localStorage.getItem('deviceId')) {\r\n requestHeader.deviceId = localStorage.getItem('deviceId');\r\n requestHeader.deviceType = localStorage.getItem('deviceType');\r\n }\r\n\r\n if (currentUser && currentUser.token) {\r\n requestHeader.Authorization = `Bearer ${currentUser.token}`\r\n }\r\n request = request.clone({ setHeaders: requestHeader });\r\n this.dateReplacer(request.body);\r\n return next.handle(request);\r\n }\r\n\r\n dateReplacer(obj: any) {\r\n if (obj) {\r\n for (const k in obj) {\r\n if (obj.hasOwnProperty(k)) {\r\n if (obj[k] instanceof Object) {\r\n obj[k] = this.dateReplacer(obj[k]);\r\n }\r\n if (obj[k] instanceof Date) {\r\n // obj[k] = new Date(`${obj[k]} UTC`);\r\n obj[k] = this.toLocalISOString(obj[k]);\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n }\r\n toLocalISOString(date: Date): string {\r\n const pad = (num: number) => num.toString().padStart(2, '0');\r\n return (\r\n date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds())\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n// import {ClipboardModule} from '@angular/cdk/clipboard';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { DateAdapter, MatNativeDateModule, MatRippleModule, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { AppDateAdapter, APP_DATE_FORMATS } from './format-datepicker';\r\nimport { MtxTooltipModule } from '@ng-matero/extensions/tooltip';\r\nimport { CloseScrollStrategy, Overlay, OverlayModule } from '@angular/cdk/overlay';\r\n\r\nexport function scrollFactory(overlay: Overlay): () => CloseScrollStrategy {\r\n\treturn () => overlay.scrollStrategies.close();\r\n}\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n // ClipboardModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule,\r\n MtxTooltipModule,\r\n OverlayModule,\r\n ],\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },\r\n { provide: DateAdapter, useClass: AppDateAdapter },\r\n { provide: MAT_DATE_FORMATS, useValue: APP_DATE_FORMATS },\r\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { disableClose: true } },\r\n\t\t{ provide: MAT_AUTOCOMPLETE_SCROLL_STRATEGY, useFactory: scrollFactory, deps: [Overlay] },\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n\r\n\r\n/** Copyright 2019 Google LLC. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */\r\n","import { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { Directive, HostBinding, Input, Optional, Self, OnDestroy, DoCheck } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { NgControl, FormControl, FormGroupDirective, NgForm } from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { untilDestroyed } from '@ngneat/until-destroy';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\n\r\n\r\nexport class NgSelectErrorStateMatcher {\r\n constructor(private ngSelect: NgSelectFormFieldControlDirective) {\r\n }\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n if (!control) {\r\n return this.ngSelect.required && this.ngSelect.empty;\r\n } else {\r\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: 'ng-select[ngSelectMat]',\r\n providers: [{ provide: MatFormFieldControl, useExisting: NgSelectFormFieldControlDirective }],\r\n})\r\nexport class NgSelectFormFieldControlDirective implements MatFormFieldControl, OnDestroy, DoCheck {\r\n static nextId = 0;\r\n @HostBinding() @Input() id = `ng-select-${NgSelectFormFieldControlDirective.nextId++}`;\r\n @HostBinding('attr.aria-describedby') describedBy = '';\r\n\r\n\r\n\r\n get empty(): boolean {\r\n return (this._value === undefined || this._value === null)\r\n || (this.host.multiple && this._value.length === 0);\r\n }\r\n errorState = false;\r\n @Input() errorStateMatcher!: ErrorStateMatcher;\r\n private _defaultErrorStateMatcher: ErrorStateMatcher = new NgSelectErrorStateMatcher(this);\r\n // controlType?: string;\r\n // autofilled?: boolean;\r\n\r\n stateChanges = new Subject();\r\n focused = false;\r\n\r\n get shouldLabelFloat() {\r\n return this.focused || !this.empty || !!(this.host.searchTerm && this.host.searchTerm.length);\r\n }\r\n\r\n @Input()\r\n get placeholder(): string { return this._placeholder; }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder!: string;\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n private _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean { return this._disabled; }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n private _disabled: boolean = false;\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(v: any) {\r\n this._value = v;\r\n this.stateChanges.next();\r\n }\r\n private _value: any;\r\n\r\n constructor(\r\n private host: NgSelectComponent,\r\n @Optional() @Self() public ngControl: NgControl,\r\n @Optional() private _parentForm: NgForm,\r\n @Optional() private _parentFormGroup: FormGroupDirective,\r\n ) {\r\n // host?.focusEvent.asObservable()?.pipe(untilDestroyed(this)).subscribe(v => {\r\n // this.focused = true;\r\n // this.stateChanges.next();\r\n // });\r\n // host?.blurEvent.asObservable()?.pipe(untilDestroyed(this)).subscribe(v => {\r\n // this.focused = false;\r\n // this.stateChanges.next();\r\n // });\r\n\r\n\r\n if (this.ngControl) {\r\n this._value = this.ngControl.value;\r\n this._disabled = this.ngControl.disabled ? true : false;\r\n this.ngControl.statusChanges?.pipe(untilDestroyed(this)).subscribe(s => {\r\n const disabled = s === 'DISABLED';\r\n if (disabled !== this._disabled) {\r\n this._disabled = disabled;\r\n this.stateChanges.next();\r\n }\r\n });\r\n this.ngControl.valueChanges?.pipe(untilDestroyed(this)).subscribe(v => {\r\n this._value = v;\r\n this.stateChanges.next();\r\n });\r\n } else {\r\n host.changeEvent.asObservable().pipe(untilDestroyed(this)).subscribe(v => {\r\n this._value = v;\r\n this.stateChanges.next();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() { }\r\n\r\n ngDoCheck() {\r\n\r\n // We need to re-evaluate this on every change detection cycle, because there are some\r\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\r\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\r\n this.updateErrorState();\r\n\r\n }\r\n\r\n updateErrorState() {\r\n const oldState = this.errorState;\r\n const parent = this._parentFormGroup || this._parentForm;\r\n const matcher = this.errorStateMatcher || this._defaultErrorStateMatcher;\r\n const control = this.ngControl ? this.ngControl.control as FormControl : null;\r\n const newState = matcher.isErrorState(control, parent);\r\n\r\n if (newState !== oldState) {\r\n this.errorState = newState;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n if (ids) {\r\n this.describedBy = ids.join(' ');\r\n }\r\n }\r\n\r\n onContainerClick(event: MouseEvent): void {\r\n const target = event.target as HTMLElement;\r\n if (target.classList.contains('mat-form-field-infix')) {\r\n this.host.focus();\r\n this.host.open();\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appOnlynumber]'\r\n})\r\nexport class OnlynumberDirective {\r\n\r\n @Input() canApply: any = true;\r\n\r\n private navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste'\r\n ];\r\n // inputElement: HTMLElement = HTMLInputElement.select();\r\n constructor(public el: ElementRef) {\r\n if (!this.canApply){return; }\r\n\r\n\r\n // this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n if (!this.canApply){return; }\r\n if (\r\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n (e.key === 'a' && e.ctrlKey === true) || // Allow: Ctrl+A\r\n (e.key === 'c' && e.ctrlKey === true) || // Allow: Ctrl+C\r\n (e.key === 'v' && e.ctrlKey === true) || // Allow: Ctrl+V\r\n (e.key === 'x' && e.ctrlKey === true) || // Allow: Ctrl+X\r\n (e.key === 'a' && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n (e.key === 'c' && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n (e.key === 'v' && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n (e.key === 'x' && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a number and stop the keypress\r\n if (\r\n (e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) &&\r\n (e.keyCode < 96 || e.keyCode > 105)\r\n ) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n if (!this.canApply){return; }\r\n event.preventDefault();\r\n const pastedInput: string = event.clipboardData!\r\n .getData('text/plain')\r\n .replace(/\\D/g, ''); // get a digit-only string\r\n document.execCommand('insertText', false, pastedInput);\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent) {\r\n if (!this.canApply){return; }\r\n event.preventDefault();\r\n const textData = event.dataTransfer!.getData('text').replace(/\\D/g, '');\r\n // this.inputElement.focus();\r\n document.execCommand('insertText', false, textData);\r\n }\r\n}\r\n","export class Patterns {\r\n static email = '[a-zA-Z0-9._]{1,}@[a-zA-Z0-9.-]{2,}[.]{1}[a-zA-Z]{2,}'\r\n static enTxt = '^[a-zA-Z ]+$';\r\n static arTxt = '^(?=.*[\\u0600-\\u06FF])[\\u0600-\\u06FF ]+$';\r\n static enTxt_Numbers = '^[a-zA-Z0-9 ]+$';\r\n static noSpecialTxt = '^[a-zA-Z\\u0600-\\u06FF ]+$';\r\n static number = '^[0-9]+$';\r\n static float = '([0-9]+[.])*[0-9]+(?:[0-9]+)?$';\r\n static quantity = /^\\s*(0\\.(0*[1-9]|[1-9]\\d{0,2})|[1-9]\\d{0,5})(\\.\\d{1,4})?\\s*$/;\r\n static quantityZero = /^\\s*(0\\.(0*[0-9]|[0-9]\\d{0,2})|[0-9]\\d{0,5})(\\.\\d{1,4})?\\s*$/;\r\n static float2decimal = /^\\s*?[1-9]\\d*(\\.\\d{1,2})?\\s*$/;\r\n static price2decimal = /^\\s*?[0-9]\\d*(\\.\\d{1,2})?\\s*$/;\r\n static website = /(http|https):\\/\\/[\\w-]+(\\.[\\w-]+)+([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?/;\r\n static enTxtWithSpecial = \"^[a-zA-Z0-9- !\\\"'@#$%^&*()<>?;_+.,:\\|=/{}]+$\"\r\n static arTxtWithSpecial = \"^(?=.*[\\u0600-\\u06FF0-9- ])[\\u0600-\\u06FF0-9- !\\\"'@#$%^&*()<>?;_+.,:\\|=/{}]+$\"\r\n static price = '^[1-9][0-9]*(\\.[0-9]+)?|0+\\.[0-9]*[1-9][0-9]*$'\r\n static numbers_plus = '^[\\+]?[(]?[0-9]{1,3}[) ]?[-\\s\\.]?[0-9][-\\s\\.]?[0-9]{4,10}$'\r\n static phoneNumber = '[+0-9]+'\r\n // static arTxtWithSpecial = \"^(?=.*[\\u0600-\\u06FF])[\\u0600-\\u06FF0-9 !@#$%^&*()]+$\"\r\n // static website = \"(https://)?([\\\\da-z.-]+)\\\\.([a-z.]{2,6})[/\\\\w .-_]*/?\";\r\n}\r\n","import { Directive, Input, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appPrint]'\r\n})\r\nexport class PrintDirective {\r\n @Input() elem!: string;\r\n constructor() { }\r\n\r\n @HostListener('click', ['$event']) onClick($event: any) {\r\n \r\n console.log(this.elem)\r\n this.print();\r\n }\r\n\r\n print(): void {\r\n const basicUrl = location.origin;\r\n let style = basicUrl + '/assets/scss/print.css';\r\n let dir = 'ltr';\r\n const lang = localStorage.getItem('language') || 'en';\r\n // if (lang === 'ar') {\r\n // style = basicUrl + '/assets/css/ar-SA/style.css';\r\n // dir = 'rtl';\r\n // }\r\n const mywindow: any = window.open('', 'PRINT', 'height=1000,width=600');\r\n mywindow.document.write('\\\r\n \\\r\n \\\r\n ' + document.title + '');\r\n mywindow.document.write('');\r\n mywindow.document.write(document.getElementById(this.elem)!.innerHTML);\r\n mywindow.document.write('');\r\n\r\n mywindow.document.close(); // necessary for IE >= 10\r\n mywindow.focus(); // necessary for IE >= 10*/\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n // mywindow.close();\r\n\r\n // return true;\r\n\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'sanitizeHtml',\r\n standalone: true\r\n})\r\nexport class SanitizeHtmlPipePipe implements PipeTransform {\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(v: string): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(v);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortName'\r\n})\r\nexport class ShortNamePipe implements PipeTransform {\r\n\r\n transform(name: string, length?: number): string {\r\n const biggestWord = 50;\r\n const elipses = \"...\";\r\n let shortName = '';\r\n\r\n if (!name) { return ''; }\r\n\r\n if (length && name.length <= length) {\r\n /* .. truncate to about correct lenght */\r\n shortName = name.slice(0, length + biggestWord);\r\n\r\n /* .. now nibble ends till correct length */\r\n while (shortName.length > length - elipses.length) {\r\n const lastSpace = shortName.lastIndexOf(\" \");\r\n if (lastSpace === -1) break;\r\n shortName = shortName.slice(0, lastSpace).replace(/[!,.?;:]$/, '');\r\n }\r\n shortName += elipses;\r\n } else {\r\n const initials = name.split(' ') || [];\r\n if (initials[0]) {\r\n shortName += initials[0][0];\r\n shortName += this.isRTL(name) ? ' ' : '';\r\n }\r\n if (initials[(initials.length) - 1]) {\r\n shortName += initials[(initials.length) - 1][0];\r\n } else if (initials[(initials.length) - 2]) {\r\n shortName += initials[(initials.length) - 2][0];\r\n }\r\n shortName = shortName.toUpperCase();\r\n }\r\n return shortName;\r\n }\r\n\r\n isRTL(s: string) {\r\n const ltrChars = 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF' + '\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF';\r\n const rtlChars = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC';\r\n const rtlDirCheck = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');\r\n return rtlDirCheck.test(s);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'timeAgo'\n})\nexport class TimeAgoPipe implements PipeTransform {\n constructor(private translate: TranslateService) { }\n\n transform(value: any, args?: any): any {\n if (value) {\n const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\n return this.translate.instant('general.Just now');\n const intervals: { [key: string]: number } = {\n 'year': 31536000,\n 'month': 2592000,\n 'week': 604800,\n 'day': 86400,\n 'hour': 3600,\n 'minute': 60,\n 'second': 1\n };\n let counter;\n for (const i in intervals) {\n counter = Math.floor(seconds / intervals[i]);\n if (counter > 0)\n if (counter === 1) {\n return this.translate.instant('general.' + i + ' ago', { counter });\n } else {\n return this.translate.instant('general.' + i + 's ago', { counter });\n }\n }\n }\n return value;\n }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResActionsService {\r\n refreshList = new BehaviorSubject(false);\r\n refreshDetails = new BehaviorSubject(false);\r\n createFormSubmitted = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n PrintTill(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/PrintTill`, data);\r\n }\r\n\r\n GetAllCashierRestaurantTeam(restaurantId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResRestaurant/GetAllCashierRestaurantTeam?restaurantId=${restaurantId}`);\r\n }\r\n}\r\n","import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { Requiredaction } from 'src/app/models/auth/user';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { ResActionsService } from './ResActions.service';\r\nimport { AttendenceComponent } from 'src/app/features/auth/attendance/attendence.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TillAmountConfirmComponent } from './components/till-amount-confirm/till-amount-confirm.component';\r\n\r\n@Component({\r\n selector: 'app-actions-bar',\r\n templateUrl: './actions-bar.component.html'\r\n})\r\nexport class ActionsBarComponent implements OnInit {\r\n isActive = false;\r\n restaurantId = localStorage.getItem('restaurantId');\r\n\r\n actionLoader: string | null = null;\r\n actionsPermissions: any;\r\n requiredaction = Requiredaction;\r\n\r\n constructor(\r\n public authenticationService: AuthenticationService,\r\n public dialog: MatDialog,\r\n private service: ResActionsService,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getActionsPermissions();\r\n this.authenticationService.updateActionsPermissions.subscribe((data) => {\r\n if (data) {\r\n this.getActionsPermissions();\r\n }\r\n })\r\n }\r\n\r\n get showActionsBar() {\r\n return (\r\n this.actionsPermissions\r\n && (\r\n this.actionsPermissions.canPrintTill\r\n || (\r\n this.actionsPermissions.currentRestaurantAction.requiredaction == Requiredaction.ClockOut\r\n && this.actionsPermissions.currentRestaurantAction.attendancefeature\r\n )\r\n )\r\n )\r\n }\r\n\r\n getActionsPermissions() {\r\n if (this.restaurantId) {\r\n this.authenticationService.getActionsPermissions(this.restaurantId).subscribe(\r\n result => {\r\n this.authenticationService.actionsPermissions.next(result);\r\n this.actionsPermissions = result;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n }\r\n\r\n clockout() {\r\n const dialogRef = this.dialog.open(AttendenceComponent, {\r\n width: '400px',\r\n data: {\r\n action: Requiredaction.ClockOut,\r\n restaurantId: this.restaurantId\r\n }\r\n });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // if (result && this.actionsPermissions.canPrintTill) {\r\n // setTimeout(() => { this.print(result.htmlContent); }, 500);\r\n // }\r\n // });\r\n }\r\n\r\n openTillAmount() {\r\n const dialogRef = this.dialog.open(TillAmountConfirmComponent, {\r\n width: '400px',\r\n data: {\r\n isOwner: this.actionsPermissions.canShowBranch,\r\n restaurantId: this.restaurantId\r\n }\r\n });\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // if (result) {\r\n // this.printTill(result);\r\n // }\r\n // });\r\n }\r\n\r\n print(html: string): void {\r\n const mywindow: any = window.open('', 'PRINT', 'height=600,width=700');\r\n mywindow.document.write(html);\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n\r\n @ViewChild(\"actionsContainer\") actionsContainer!: ElementRef;\r\n @HostListener('document:click', ['$event']) clickout(event: any) {\r\n if (\r\n this.showActionsBar\r\n && !this.actionsContainer.nativeElement.contains(event.target)\r\n && !event.target.classList.contains('mat-icon')\r\n ) {\r\n this.isActive = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n\r\n \r\n\r\n
\r\n

\r\n {{\"auth.Clock-In\" | translate}}: {{actionsPermissions.currentRestaurantAction?.lastClockIn | date:'d MMM, y - h:mm a'}}\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\nimport { ResActionsService } from '../../ResActions.service';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport interface DialogData {\r\n isOwner: boolean\r\n restaurantId: number\r\n}\r\n@Component({\r\n selector: 'app-till-amount-confirm',\r\n templateUrl: './till-amount-confirm.component.html'\r\n})\r\nexport class TillAmountConfirmComponent implements OnInit {\r\n loading = false;\r\n tillAmount = new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(Patterns.price2decimal)\r\n ]);\r\n userId: any = new FormControl(null);\r\n\r\n users: Lookup[] = [];\r\n usersLoading = false;\r\n isSubmitted = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private dialogRef: MatDialogRef,\r\n private service: ResActionsService,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.data.isOwner) {\r\n this.userId = new FormControl(null, Validators.required);\r\n this.GetAllCashierRestaurantTeam();\r\n }\r\n }\r\n\r\n submit() {\r\n this.isSubmitted = true;\r\n this.tillAmount.markAllAsTouched();\r\n this.userId.markAllAsTouched();\r\n\r\n if (this.tillAmount.valid && this.userId.valid) {\r\n this.printTill();\r\n // this.dialogRef.close({\r\n // amount: this.tillAmount.value,\r\n // userId: this.userId.value\r\n // })\r\n }\r\n }\r\n\r\n GetAllCashierRestaurantTeam() {\r\n this.usersLoading = true;\r\n this.service.GetAllCashierRestaurantTeam(this.data.restaurantId).subscribe(\r\n (result: any) => {\r\n this.usersLoading = false;\r\n this.users = result;\r\n if (this.users.length) {\r\n this.userId.setValue(this.users[0].id);\r\n }\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n printTill() {\r\n this.loading = true;\r\n let data: any = {\r\n restaurantId: this.data.restaurantId,\r\n userId: this.userId.value,\r\n amount: Number(this.tillAmount.value)\r\n };\r\n let isApp = false;\r\n if (localStorage.getItem('deviceId')) {\r\n isApp = true;\r\n data.deviceId = localStorage.getItem('deviceId');\r\n data.deviceType = localStorage.getItem('deviceType');\r\n }\r\n this.service.PrintTill(data).subscribe(\r\n (data: any) => {\r\n // this.loading = false;\r\n if (!isApp) {\r\n setTimeout(() => { this.print(data.htmlContent); }, 500);\r\n }\r\n this.dialogRef.close();\r\n }, error => {\r\n this.loading = false;;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n\r\n print(html: string): void {\r\n const mywindow: any = window.open('', 'PRINT', 'height=600,width=700');\r\n mywindow.document.write(html);\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n}\r\n","
\r\n

{{\"auth.Print Till\" | translate}}

\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n {{ 'reports.Cashier' | translate }}\r\n \r\n \r\n {{user.name}}\r\n \r\n \r\n \r\n {{ 'auth.Please select cashier' | translate }}\r\n \r\n\r\n\r\n

{{'auth.Please enter till amount' | translate}}

\r\n \r\n {{ 'auth.Till amount' | translate }}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n {{ 'forms.Invalid value' | translate }}\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subscription, filter, fromEvent } from 'rxjs';\r\nimport { NavigationService } from 'src/app/services/navigation.service';\r\n\r\n@Component({\r\n selector: 'app-admin-layout',\r\n templateUrl: './admin-layout.component.html'\r\n})\r\nexport class AdminLayoutComponent implements OnInit, OnDestroy {\r\n moduleLoading: boolean = false;\r\n menueLoaded = false;\r\n\r\n onlineEvent!: Observable;\r\n offlineEvent!: Observable;\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n public navService: NavigationService,\r\n private snackBar: MatSnackBar,\r\n private translate: TranslateService,\r\n public router: Router\r\n ) {\r\n router.events.subscribe((event: any) => {\r\n this.navigationInterceptor(event);\r\n });\r\n // this.authenticationService.menuLoaded\r\n // .subscribe(data => {\r\n // if (data) {\r\n // this.menueLoaded = true;\r\n // }\r\n // });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateSidebar();\r\n this.router.events\r\n .pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe(routeChange => {\r\n if (this.isMobile()) {\r\n this.navService.sidebarState.sidenavOpen = false;\r\n }\r\n });\r\n this.navService.sidenavOpen.next(this.navService.sidebarState.sidenavOpen || false);\r\n\r\n\r\n this.onlineEvent = fromEvent(window, 'online');\r\n this.offlineEvent = fromEvent(window, 'offline');\r\n\r\n this.subscriptions.push(this.onlineEvent.subscribe(e => {\r\n let ref = this.snackBar.open(this.translate.instant('general.You are back online!'), this.translate.instant('swalMsg.Reload'), {\r\n duration: 10000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n ref.afterDismissed().subscribe(info => {\r\n if (info.dismissedByAction === true) {\r\n window.location.reload()\r\n }\r\n });\r\n }));\r\n\r\n this.subscriptions.push(this.offlineEvent.subscribe(e => {\r\n this.snackBar.open(this.translate.instant('general.You are offline!'), this.translate.instant('swalMsg.Ok'), {\r\n // duration: 10000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n isMobile() {\r\n return window && window.matchMedia('(max-width: 1180px)').matches;\r\n }\r\n\r\n // Shows and hides the moduleLoading spinner during RouterEvent changes\r\n navigationInterceptor(event: RouterEvent): void {\r\n if (event instanceof NavigationStart) {\r\n this.moduleLoading = true;\r\n }\r\n if (event instanceof NavigationEnd) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n this.snackBar.dismiss();\r\n }, 100);\r\n }\r\n\r\n // Set moduleLoading state to false in both of the below events to hide the spinner in case a request fails\r\n if (event instanceof NavigationCancel) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n if (event instanceof NavigationError) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n }\r\n\r\n updateSidebar() {\r\n if (this.isMobile()) {\r\n this.navService.sidebarState.sidenavOpen = false;\r\n } else {\r\n this.navService.sidebarState.sidenavOpen = true;\r\n }\r\n }\r\n\r\n // @HostListener(\"window:resize\", [\"$event\"])\r\n // onResize() {\r\n // this.updateSidebar();\r\n // }\r\n\r\n}\r\n","\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { User } from 'src/app/models/auth/user';\r\nimport { Notification, NotificationsModel } from 'src/app/models/Notification';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\nimport { NavigationService } from 'src/app/services/navigation.service';\r\nimport { NotificationsService } from 'src/app/services/notifications.service';\r\nimport { SignalEventType } from 'src/app/services/signalR/SignalModel';\r\nimport { SignalRService } from 'src/app/services/signalR/SignalR.service';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html'\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Output() sidebarTrigger = new EventEmitter();\r\n notificationNumber: number = 0;\r\n currentUser: User|null = new User();\r\n userMenu = false;\r\n shouldShow = false;\r\n\r\n notifLoading = false;\r\n pageNumber = 0;\r\n pageSize = 10;\r\n pageCount: number = 0;\r\n notificationMenu = false;\r\n notificationsResult: any = {\r\n unSeenNotificationsCount: 0,\r\n totalCount: 0,\r\n };\r\n notificationsList: Notification[] = [];\r\n NotificationsModel = new NotificationsModel();\r\n activeAlerts = {};\r\n subscriptions: Subscription[] = [];\r\n\r\n actionsPermissions: any;\r\n\r\n constructor(\r\n private router: Router,\r\n public translate: TranslateService,\r\n private snackBar: MatSnackBar,\r\n public dialogRef: MatDialog,\r\n public navService: NavigationService,\r\n private authenticationService: AuthenticationService,\r\n private notificationsService: NotificationsService,\r\n private signal: SignalRService,\r\n public LookupsService: LookupsService\r\n ) {\r\n this.signal.startConnection();\r\n this.GetUnseenNotificationCount();\r\n this.currentUser = this.authenticationService.currentUserValue;\r\n\r\n this.authenticationService.actionsPermissions.subscribe((data: any) => {\r\n this.actionsPermissions = data;\r\n });\r\n\r\n // this.signalRService.LogOut(this, this.getOut);\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.LogOut)\r\n .subscribe(message => { this.getOut(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.MobNotificationUnreadCountNumber)\r\n .subscribe(message => {\r\n this.updateNotification(message.data);\r\n })\r\n )\r\n }\r\n getOut(data: any) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Sorry'),\r\n text: localStorage.getItem('language') == 'ar' ? data.msgAr : data.msgEn,\r\n icon: 'warning',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n this.logout();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n // SignalR\r\n updateNotification(data: any) {\r\n this.notificationsResult.unSeenNotificationsCount = data.count?.NotificationUnreadCountNumber;\r\n this.signal.notify('You have a new notification');\r\n }\r\n\r\n // Actions\r\n changeLanguage() {\r\n if (localStorage.getItem('language') === 'en') {\r\n localStorage.setItem('language', 'ar');\r\n } else {\r\n localStorage.setItem('language', 'en');\r\n }\r\n window.location.reload();\r\n }\r\n\r\n logout() {\r\n this.authenticationService.logout();\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n // Notifications\r\n GetUnseenNotificationCount() {\r\n this.notificationsService.GetUnseenNotificationCount().subscribe(\r\n result => {\r\n this.notificationsResult.unSeenNotificationsCount = result;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n openNotificationPanel() {\r\n this.notificationMenu = !this.notificationMenu;\r\n this.userMenu = false;\r\n this.getNotifications();\r\n }\r\n getNextPage() {\r\n if (this.pageNumber < this.pageCount - 1) {\r\n this.pageNumber += 1;\r\n this.getNotifications(false);\r\n }\r\n }\r\n getNotifications(update = true) {\r\n if (update) {\r\n this.pageNumber = 0;\r\n this.notificationsList = [];\r\n }\r\n this.notifLoading = true;\r\n this.NotificationsModel.pageSize = this.pageSize;\r\n this.NotificationsModel.pageNumber = this.pageNumber;\r\n this.notificationsService.GetNotifications(this.NotificationsModel).subscribe(\r\n result => {\r\n this.notifLoading = false;\r\n this.notificationsResult = result;\r\n this.pageCount = Math.ceil(this.notificationsResult.totalCount / this.pageSize);\r\n this.notificationsList = this.notificationsList.concat(this.notificationsResult.pageData);\r\n this.notificationsResult.unSeenNotificationsCount = 0;\r\n }, err => {\r\n this.notifLoading = false;\r\n console.error(err);\r\n });\r\n }\r\n\r\n toggelSidebar() {\r\n const state = this.navService.sidebarState;\r\n state.sidenavOpen = !state.sidenavOpen;\r\n this.navService.sidenavOpen.next(state.sidenavOpen);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ 'general.language' | translate }}\r\n \r\n

\r\n {{\"auth.Clock-In\" | translate}}:\r\n \r\n {{actionsPermissions.currentRestaurantAction?.lastClockIn | date:'d MMM, y - h:mm a'}}\r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \"\"\r\n {{ 'placeOrder.New Order' | translate }} +\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ notificationsResult.unSeenNotificationsCount }}\r\n \r\n \r\n
\r\n
\r\n

{{ 'general.Notification' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ 'general.You have no notifications' | translate }}!\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ 'general.Hello' | translate }}, {{currentUser.fullName}}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n

{{notif.notificationText}}

\r\n {{notif.notificationDate | timeAgo}}\r\n \r\n \r\n
\r\n","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { IMenuItem, NavigationService } from 'src/app/services/navigation.service';\r\nimport { Router } from '@angular/router';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n // animations: [\r\n // trigger('contentExpansion', [\r\n // state('expanded', style({ height: '*', opacity: 1, visibility: 'visible' })),\r\n // state('collapsed', style({ height: '0px', opacity: 0, visibility: 'hidden' })),\r\n // transition('expanded <=> collapsed',\r\n // animate('200ms cubic-bezier(.37,1.04,.68,.98)')),\r\n // ])\r\n // ]\r\n})\r\nexport class SidebarComponent implements OnInit {\r\n nav: any[] = [];\r\n selectedItem: IMenuItem | null = null;\r\n searchText: string = '';\r\n\r\n constructor(\r\n public navService: NavigationService,\r\n public LookupsService: LookupsService,\r\n public authenticationService: AuthenticationService,\r\n private cdr: ChangeDetectorRef,\r\n public router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getMenuItems();\r\n // if (location.href.includes(\"localhost\")) {\r\n // this.navService.menuItems.subscribe(items => {\r\n // this.nav = items;\r\n // });\r\n // } else {\r\n // this.getMenuItems();\r\n // }\r\n }\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n getMenuItems() {\r\n this.LookupsService.GetMenu().subscribe(\r\n (data: any) => {\r\n this.nav = data.menu as any[];\r\n this.nav.map(item => {\r\n item.title = item.name;\r\n item.type = item.childs && item.childs.length ? 'dropDown' : 'link';\r\n item.icon = item.svg;\r\n item.state = item.url;\r\n if (item.childs && item.childs.length) {\r\n item.sub = item.childs;\r\n item.sub.map((child: any) => {\r\n child.title = child.name;\r\n child.type = 'link';\r\n child.icon = child.svg;\r\n child.state = child.url;\r\n });\r\n }\r\n })\r\n this.authenticationService.menuLoaded.next(this.nav);\r\n setTimeout(() => {\r\n document.querySelector('.sidebar-list-menu li.active')?.scrollIntoView({\r\n block: \"center\", inline: \"nearest\"\r\n });\r\n }, 100);\r\n },\r\n (error: any) => {\r\n this.authenticationService.logout();\r\n });\r\n }\r\n\r\n isActiveMenu(link: string) {\r\n return location.href.includes(link);\r\n }\r\n\r\n selectItem(item: IMenuItem) {\r\n item.active = !item.active;\r\n return;\r\n if (item.active) {\r\n this.nav.forEach(element => {\r\n element.active = false;\r\n });\r\n this.selectedItem = null;\r\n } else {\r\n this.selectedItem = item;\r\n this.setActiveMainItem(item);\r\n }\r\n }\r\n\r\n setActiveMainItem(item: IMenuItem) {\r\n this.nav.forEach(element => {\r\n element.active = false;\r\n });\r\n item.active = true;\r\n }\r\n\r\n toggelSidebar() {\r\n const navState = this.navService.sidebarState;\r\n navState.sidenavOpen = !navState.sidenavOpen;\r\n this.navService.sidenavOpen.next(navState.sidenavOpen);\r\n }\r\n\r\n hideOption(item: any) {\r\n let hide = true;\r\n if (new RegExp(this.searchText, 'i').test(item.title)) {\r\n hide = false;\r\n }\r\n if (item.sub) {\r\n item.sub.forEach((child: any) => {\r\n child.hide = true;\r\n if (new RegExp(this.searchText, 'i').test(child.title)) {\r\n hide = false;\r\n child.hide = false;\r\n }\r\n });\r\n if (item.sub.every((x: any) => x.hide) && !hide) {\r\n item.sub.map((x: any) => x.hide = false);\r\n }\r\n }\r\n return hide;\r\n }\r\n}\r\n","
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n\r\n
5\">\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n

\r\n © 2024 inndeve,\r\n {{'general.All Rights Reserved' | translate}}\r\n

\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-anonymous-layout',\r\n templateUrl: './anonymous-layout.component.html',\r\n})\r\nexport class AnonymousLayoutComponent implements OnInit {\r\n language = localStorage.getItem('language') || 'en';\r\n moduleLoading: boolean = false;\r\n\r\n constructor(\r\n public router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n changeLanguage() {\r\n let params = JSON.parse(JSON.stringify(this.activatedRoute.snapshot.queryParams))\r\n let lang = this.language == 'en' ? 'ar' : 'en'\r\n params['lang'] = lang\r\n localStorage.setItem('language', lang);\r\n window.location.reload();\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-basic-layout',\r\n templateUrl: './basic-layout.component.html',\r\n})\r\nexport class BasicLayoutComponent implements OnInit {\r\n language = localStorage.getItem('language') || 'en';\r\n moduleLoading: boolean = false;\r\n\r\n constructor(\r\n public router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n ) {\r\n /* router.events.subscribe((event: RouterEvent) => {\r\n this.navigationInterceptor(event);\r\n }); */\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // Shows and hides the moduleLoading spinner during RouterEvent changes\r\n navigationInterceptor(event: RouterEvent): void {\r\n if (event instanceof NavigationStart) {\r\n this.moduleLoading = true;\r\n }\r\n if (event instanceof NavigationEnd) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n\r\n // Set moduleLoading state to false in both of the below events to hide the spinner in case a request fails\r\n if (event instanceof NavigationCancel) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n if (event instanceof NavigationError) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n }\r\n\r\n changeLanguage() {\r\n let params = JSON.parse(JSON.stringify(this.activatedRoute.snapshot.queryParams))\r\n let lang = this.language == 'en' ? 'ar' : 'en'\r\n params['lang'] = lang\r\n localStorage.setItem('language', lang);\r\n window.location.reload();\r\n return\r\n this.router.navigate(\r\n [],\r\n {\r\n relativeTo: this.activatedRoute,\r\n queryParams: params,\r\n queryParamsHandling: 'merge', // remove to replace all query params by provided\r\n });\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 100);\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-empty-layout',\r\n templateUrl: './empty-layout.component.html',\r\n})\r\nexport class EmptyLayoutComponent implements OnInit {\r\n language = localStorage.getItem('language') || 'en';\r\n moduleLoading: boolean = false;\r\n\r\n constructor(\r\n public router: Router,\r\n ) {\r\n /* router.events.subscribe((event: RouterEvent) => {\r\n this.navigationInterceptor(event);\r\n }); */\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // Shows and hides the moduleLoading spinner during RouterEvent changes\r\n navigationInterceptor(event: RouterEvent): void {\r\n if (event instanceof NavigationStart) {\r\n this.moduleLoading = true;\r\n }\r\n if (event instanceof NavigationEnd) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n\r\n // Set moduleLoading state to false in both of the below events to hide the spinner in case a request fails\r\n if (event instanceof NavigationCancel) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n if (event instanceof NavigationError) {\r\n setTimeout(() => { // here\r\n this.moduleLoading = false;\r\n }, 100);\r\n }\r\n }\r\n\r\n changeLanguage() {\r\n if (this.language === 'en') {\r\n localStorage.setItem('language', 'ar');\r\n } else {\r\n localStorage.setItem('language', 'en');\r\n }\r\n window.location.reload();\r\n }\r\n\r\n}\r\n","\r\n","export class DatePickerModel {\r\n gregorian!: DateStruct;\r\n gregorianDate!: Date;\r\n hijri!: DateStruct;\r\n hijriDate!: Date;\r\n hijriDateText!: string;\r\n}\r\n\r\nexport class DateStruct {\r\n day!: number;\r\n month!: number;\r\n year!: number;\r\n isHijri?: boolean;\r\n}\r\n","export class Lookup {\r\n id!: number;\r\n name!: string;\r\n childs?: Lookup[];\r\n isUsed?: boolean;\r\n isdisabled?: boolean;\r\n isdefault?: boolean;\r\n lookupcode?: string\r\n lookupCode!: string\r\n lookUpCode?: string\r\n icon?: string\r\n nameAr?: string\r\n nameEn!: string\r\n}\r\nexport class Currency {\r\n id!: number;\r\n name!: string;\r\n nameEn!: string;\r\n nameAr!: string;\r\n currencyCode!: string;\r\n currencyCodeEn!: string;\r\n currencyCodeAr!: string;\r\n conversionRate!: number | null;\r\n conversionRateValid?: boolean | null;\r\n isDefault!: boolean;\r\n order!: number;\r\n}\r\n\r\nexport class Countries {\r\n id!: number;\r\n name!: string;\r\n countryKey!: string;\r\n countryFlag!: string;\r\n isdefault!: boolean;\r\n}\r\n\r\nexport class FileThumbObj {\r\n id!: number;\r\n file: any\r\n thumbStr!: string\r\n thumb: any\r\n thumbType!: FileThumbType\r\n}\r\n\r\nexport enum FileThumbType {\r\n Generated = 'Generated',\r\n Uploaded = 'Uploaded'\r\n}\r\nexport enum AppsSettingUrlEnum {\r\n CashierPrivacyPolicy = 'CashierPrivacyPolicy',\r\n CashierTermsAndConditions = 'CashierTermsAndConditions',\r\n CustomerPrivacyPolicy = 'CustomerPrivacyPolicy',\r\n CustomerTermsAndConditions = 'CustomerTermsAndConditions',\r\n}\r\nexport enum OrderTypeEnum {\r\n All = 'All',\r\n DineIn = 'DineIn',\r\n Takeaway = 'Takeaway'\r\n}\r\n","export class Notification {\r\n notificationId!: number;\r\n notificationDate!: string;\r\n notificationType!: NotificationType;\r\n notificationObjectId!: number;\r\n notificationText!: string;\r\n isSeen!: boolean;\r\n data!: any\r\n}\r\nexport class NotificationsModel {\r\n unSeenNotificationsCount!: number;\r\n pageData!: Notification[];\r\n pageNumber!: number;\r\n pageSize!: number;\r\n totalCount!: number;\r\n}\r\nexport enum NotificationType {\r\n User = 'User',\r\n Payment = 'Payment',\r\n Voucher = 'Voucher',\r\n Restaurant = 'Restaurant',\r\n RestaurantStuff = 'RestaurantStuff',\r\n DiwanRole = 'DiwanRole',\r\n Reservition = 'Reservition',\r\n Group = 'Group',\r\n Announcement = 'Announcement',\r\n WareHouseReceiverPurchaseOrder = 'WareHouseReceiverPurchaseOrder',\r\n WareHouseSenderAcceptPurchaseOrder = 'WareHouseSenderAcceptPurchaseOrder',\r\n WareHouseSenderRejectPurchaseOrder = 'WareHouseSenderRejectPurchaseOrder',\r\n WareHouseReceiverNeedStok = 'WareHouseReceiverNeedStok',\r\n WareHouseSenderAcceptNeedStok = 'WareHouseSenderAcceptNeedStok',\r\n WareHouseSenderRejectNeedStok = 'WareHouseSenderRejectNeedStok',\r\n WareHouseReceiverSendStok = 'WareHouseReceiverSendStok',\r\n WareHouseSenderAcceptSendStok = 'WareHouseSenderAcceptSendStok',\r\n WareHouseSenderRejectSendStok = 'WareHouseSenderRejectSendStok'\r\n}\r\n","export class LoginModel {\r\n userName!: string;\r\n password!: string;\r\n}\r\n\r\nexport enum ResUserLoginRedirectEnum {\r\n Dashboard = 'Dashboard',\r\n ReservationsList = 'ReservationsList',\r\n ReservationsFloor = 'ReservationsFloor',\r\n Orders = 'Orders',\r\n OrdersList = 'OrdersList',\r\n Takeaway = 'Takeaway',\r\n Profile = 'Profile'\r\n}\r\n","import { ResUserLoginRedirectEnum } from \"./login\";\r\n\r\nexport class User {\r\n id!: string;\r\n fullName!: string;\r\n email!: string;\r\n token!: string;\r\n role!: string;\r\n permissions!: string[];\r\n profilePicture!: string;\r\n profilePic!: string;\r\n owneRestaurant!: UserRest[]\r\n loginRedirectEnum!: ResUserLoginRedirectEnum\r\n}\r\nexport interface UserRest {\r\n id: number\r\n name: string\r\n addtill: boolean\r\n attendancefeature: boolean\r\n requiredaction: Requiredaction\r\n lastClockIn: string\r\n}\r\n\r\nexport enum Requiredaction {\r\n ClockIn = 'ClockIn',\r\n ClockOut = 'ClockOut',\r\n NoAction = 'NoAction'\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService implements OnDestroy {\r\n private onSubject = new Subject<{ key: string, value: any }>();\r\n public changes = this.onSubject.asObservable().pipe(share());\r\n\r\n constructor() {\r\n this.start();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stop();\r\n }\r\n\r\n public store(key: string, data: any): void {\r\n localStorage.setItem(key, data);\r\n this.onSubject.next({ key: key, value: data })\r\n }\r\n\r\n public clear(key: any) {\r\n localStorage.removeItem(key);\r\n this.onSubject.next({ key: key, value: null });\r\n }\r\n\r\n private start(): void {\r\n window.addEventListener(\"storage\", this.storageEventListener.bind(this));\r\n }\r\n\r\n private storageEventListener(event: StorageEvent) {\r\n if (event.storageArea == localStorage) {\r\n let v;\r\n try { v = event.newValue ? JSON.parse(event.newValue) : ''; }\r\n catch (e) { v = event.newValue; }\r\n this.onSubject.next({ key: event.key ? event.key : '', value: v });\r\n }\r\n }\r\n\r\n private stop(): void {\r\n window.removeEventListener(\"storage\", this.storageEventListener.bind(this));\r\n this.onSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationLoadedService {\r\n private translationLoaded: Subject = new Subject();\r\n\r\n loaded$(): Subject {\r\n return this.translationLoaded;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Requiredaction, User } from '../models/auth/user';\r\nimport { Profile } from '../features/auth/profile-management/models/Profile';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AttendenceComponent } from '../features/auth/attendance/attendence.component';\r\nimport { ResUserLoginRedirectEnum } from '../models/auth/login';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthenticationService {\r\n\r\n private networkStatus = new Subject();\r\n\r\n menuLoaded = new BehaviorSubject(false);\r\n generalRefreshDetails = new BehaviorSubject(false);\r\n\r\n actionsPermissions = new BehaviorSubject(null);\r\n updateActionsPermissions = new Subject();\r\n\r\n SignalRConnectionId = new BehaviorSubject(null);\r\n\r\n public currentUserSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n ) {\r\n const authLS = localStorage.getItem('authUser');\r\n const ls = authLS ? JSON.parse(authLS) as User : '';\r\n if (ls) {\r\n this.currentUserSubject.next(ls);\r\n }\r\n }\r\n\r\n public get currentUserValue(): User | null {\r\n return this.currentUserSubject.value;\r\n }\r\n public get currentActionsPermissions(): any {\r\n return this.actionsPermissions.value;\r\n }\r\n public get currentSignalRConnectionId(): any {\r\n return this.SignalRConnectionId.value;\r\n }\r\n\r\n login(data: any): any {\r\n return this.http.post(\r\n `${environment.apiUrl}/Authenticate/RestaurantLogin`, data)\r\n .pipe(map(user => {\r\n this.currentUserSubject.next(user);\r\n if (user.owneRestaurant.some(b => b.attendancefeature)) {\r\n this.openAttendenceDialog();\r\n } else {\r\n this.saveUserSession();\r\n }\r\n }));\r\n }\r\n openAttendenceDialog() {\r\n const dialogRef = this.dialog.open(AttendenceComponent, {\r\n width: '400px',\r\n data: { action: Requiredaction.ClockIn }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.saveUserSession();\r\n }\r\n });\r\n }\r\n saveUserSession() {\r\n let user = this.currentUserSubject.value;\r\n let restaurantId = localStorage.getItem('restaurantId');\r\n if (!restaurantId && user?.owneRestaurant.length) {\r\n localStorage.setItem('restaurantId', String(user.owneRestaurant[0].id));\r\n }\r\n localStorage.setItem('authUser', JSON.stringify(user));\r\n this.handleLoginRedirct();\r\n }\r\n handleLoginRedirct() {\r\n let user = this.currentUserSubject.value;\r\n let baseRoute = '/admin';\r\n switch (user?.loginRedirectEnum) {\r\n case ResUserLoginRedirectEnum.Dashboard:\r\n baseRoute = '/admin/dashboard';\r\n break;\r\n case ResUserLoginRedirectEnum.ReservationsList:\r\n baseRoute = '/admin/reservations/list';\r\n break;\r\n case ResUserLoginRedirectEnum.ReservationsFloor:\r\n baseRoute = '/admin/reservations/floor';\r\n break;\r\n case ResUserLoginRedirectEnum.Orders:\r\n baseRoute = '/admin/orders';\r\n break;\r\n case ResUserLoginRedirectEnum.OrdersList:\r\n baseRoute = '/admin/orderList/takeaway-pickup';\r\n break;\r\n case ResUserLoginRedirectEnum.Takeaway:\r\n baseRoute = '/admin/orderList/takeaway-pickup/placeorder';\r\n break;\r\n case ResUserLoginRedirectEnum.Profile:\r\n baseRoute = '/admin/profile';\r\n break;\r\n default:\r\n break;\r\n }\r\n localStorage.setItem('baseRoute', baseRoute);\r\n this.router.navigate([baseRoute]);\r\n }\r\n logout() {\r\n this.clearUserData();\r\n this.router.navigate(['/login']);\r\n }\r\n clearUserData() {\r\n localStorage.removeItem('authUser');\r\n localStorage.removeItem('restaurantId');\r\n localStorage.removeItem('orders');\r\n localStorage.removeItem('baseRoute');\r\n if (localStorage.getItem('deviceId')) {\r\n this.RestaurantLogOut();\r\n }\r\n this.currentUserSubject.next(null);\r\n }\r\n SetUserAttandance(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResRestaurant/SetUserAttandanceInRestaurant`, data);\r\n }\r\n RestaurantLogOut() {\r\n let deviceId = localStorage.getItem('deviceId');\r\n this.http.post(`${environment.apiUrl}/Authenticate/RestaurantLogOut`, { deviceId }).subscribe();\r\n }\r\n\r\n getActionsPermissions(restId: string) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetActionsPermissions?RestaurantId=${restId}`);\r\n }\r\n forgetPassword(email: string): any {\r\n return this.http.get(`${environment.apiUrl}/Authenticate/RestaurantForgetPassword?email=` + email);\r\n }\r\n VerifyResetToken(userId: string, token: string) {\r\n return this.http.post(`${environment.apiUrl}/Authenticate/VerifyResetToken`, { userId, token });\r\n }\r\n resetPassword(userId: string, token: string, newPassword: string, firstTime: boolean) {\r\n if (firstTime) {\r\n return this.http.post(`${environment.apiUrl}/Authenticate/FirstTimePassword`, { userId, token, newPassword });\r\n } else {\r\n return this.http.post(`${environment.apiUrl}/Authenticate/ResetPassword`, { userId, token, newPassword });\r\n }\r\n }\r\n ChangePassword(oldPassword: string, newPassword: string) {\r\n return this.http.post(`${environment.apiUrl}/Authenticate/ChangePassword`, { oldPassword, newPassword });\r\n }\r\n checkResetPasswordLink(userId: string, token: string) {\r\n return this.http.post(`${environment.apiUrl}/Authenticate/VerifyToken`, { userId, token });\r\n }\r\n ConfirmAccount(userId: string, token: string) {\r\n return this.http.post(`${environment.apiUrl}/Authenticate/ConfirmAccount`, { userId, token });\r\n }\r\n\r\n\r\n\r\n GetUserDetails() {\r\n const user = this.currentUserValue || new User();\r\n this.http.get(`${environment.apiUrl}/Account/UserProfile`).subscribe((data: any) => {\r\n user.email = data.userEmail;\r\n user.fullName = data.fullName;\r\n user.id = data.userId;\r\n user.profilePicture = data.userImage;\r\n localStorage.setItem('authUser', JSON.stringify(user));\r\n setTimeout(() => {\r\n location.reload();\r\n }, 100);\r\n }, error => {\r\n this.logout();\r\n });\r\n }\r\n RefeshUserToken() {\r\n return this.http.post(\r\n `${environment.apiUrl}/Authenticate/refresh-token`, {})\r\n .pipe(map(returnUser => {\r\n const user = this.currentUserValue || new User();\r\n user.token = returnUser.token;\r\n this.currentUserSubject.next(returnUser);\r\n localStorage.setItem('authUser', JSON.stringify(user));\r\n location.reload();\r\n }));\r\n\r\n }\r\n checkUniqueEmail(email: string, isProfile = false) {\r\n if (isProfile) {\r\n return this.http.get(`${environment.apiUrl}/User/IsEmailExist?email=` + email + '&isProfile=' + isProfile);\r\n } else {\r\n return this.http.get(`${environment.apiUrl}/User/IsEmailExist?email=` + email);\r\n }\r\n }\r\n RegisterUser(obj: object): any {\r\n return this.http.post(`${environment.apiUrl}/User/RegisterUser`, obj);\r\n }\r\n GetRestaurantUsersList(RestaurantId: any) {\r\n return this.http.get(`${environment.apiUrl}/Account/GetRestaurantUsersList?RestaurantId=${RestaurantId}`);\r\n }\r\n GetUserProfileDetails() {\r\n return this.http.get(`${environment.apiUrl}/Account/ResUserProfile`);\r\n }\r\n\r\n get isOnline$() {\r\n return this.networkStatus.pipe(filter(Boolean));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AppsSettingUrlEnum } from '../models/Lookup';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LookupsService {\r\n refreshList = new BehaviorSubject(false);\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n GetMenu() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetResMenu`);\r\n }\r\n getCountries() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/CountriesWeb`);\r\n return this.http.get(`${environment.apiUrl}/Lookup/Countries`);\r\n }\r\n getCities(countryId: number) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetCitiesbyCountryId?CountryId=${countryId}`);\r\n }\r\n GetGender() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetGender`);\r\n }\r\n getNationalities() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/Nationalities`);\r\n }\r\n getSystems() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/Systems`);\r\n }\r\n getRoles() {\r\n return this.http.get(`${environment.apiUrl}/Roles/list`);\r\n }\r\n DefaultCurrency() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/DefaultCurrency`);\r\n }\r\n GetAllCurrencies() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetAllCurrencies`);\r\n }\r\n PaymentMethods() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/PaymentMethods`);\r\n }\r\n GetAllAmenities() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetAllAmenitiesList`);\r\n }\r\n GetIngredients() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetIngredients`);\r\n }\r\n GetTags() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetTags`);\r\n }\r\n RestaurantDefaultCurrency(restaurantId: any) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/RestaurantDefaultCurrency?RestaurantId=${restaurantId}`);\r\n }\r\n GetStockUnit() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetStockUnit`);\r\n }\r\n GetCategory() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetCategory`);\r\n }\r\n GetReportFeedBackReasons() {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetReportFeedBackReasons`);\r\n }\r\n GetApplicationSettings(pageName: AppsSettingUrlEnum, lang: string) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetApplicationSettings?settingKey=${pageName}&lang=${lang}`);\r\n }\r\n GetPaymentMethodsForHouseAccountPayment(restId: number) {\r\n return this.http.get(`${environment.apiUrl}/Lookup/GetPaymentMethodsForHouseAccountPayment?restId=${restId}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface IMenuItem {\r\n title?: string; // Used as display text for item and title for separator type\r\n description?: string;\r\n type: string; // Possible values: link/dropDown/extLink\r\n state: string; // Router state\r\n icon: string; // Material icon name\r\n sub?: IChildItem[]; // Dropdown items\r\n active?: boolean;\r\n canAccess?: boolean;\r\n}\r\nexport interface IChildItem {\r\n type?: string;\r\n title: string; // Display text\r\n state?: string; // Router state\r\n canAccess?: boolean;\r\n}\r\n\r\ninterface ISidebarState {\r\n sidenavOpen?: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n public sidebarState: ISidebarState = {\r\n sidenavOpen: true,\r\n };\r\n\r\n sidenavOpen = new BehaviorSubject(true);\r\n\r\n defaultMenu: IMenuItem[] = [\r\n {\r\n title: 'Dashboard',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/dashboard'\r\n },\r\n {\r\n title: \"Reward Points\",\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/reward-points',\r\n sub: [\r\n { title: 'Reward Points Config', state: '/admin/reward-points/reward-points-config', type: 'link' },\r\n { title: 'Redeeming Methods', state: '/admin/reward-points/redeeming', type: 'link' }\r\n ]\r\n },\r\n {\r\n title: 'Warehouses',\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/warehouses',\r\n sub: [\r\n { title: 'Warehouses list', state: '/admin/warehouses/list', type: 'link' },\r\n { title: 'Warehouses Transactions', state: '/admin/warehouses/transactions', type: 'link' },\r\n { title: 'Ingredients storage unit', state: '/admin/warehouses/ingredients', type: 'link' },\r\n { title: 'Warehouse Stock', state: '/admin/warehouses/stock', type: 'link' },\r\n { title: 'Purchase Request', state: '/admin/warehouses/parchaseRequest', type: 'link' },\r\n { title: 'Need Stock Request', state: '/admin/warehouses/needStock', type: 'link' },\r\n { title: 'Send Stock Request', state: '/admin/warehouses/sendStock', type: 'link' },\r\n { title: 'Inventory Adjustment', state: '/admin/warehouses/invAdjustment', type: 'link' },\r\n { title: 'Cost Adjustment', state: '/admin/warehouses/costAdjustment', type: 'link' },\r\n { title: 'Convert to Ingredients Stock', state: '/admin/warehouses/convertIngr', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: 'Guests',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/guestList'\r\n },\r\n {\r\n title: 'Restaurant Profile',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/restaurantProfile'\r\n },\r\n {\r\n title: 'Restaurant\\'s Branches',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/restaurants'\r\n },\r\n {\r\n title: 'App Reservations List',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/app-reservations'\r\n },\r\n {\r\n title: 'Staff',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n `,\r\n state: '/admin/staff'\r\n },\r\n {\r\n title: 'Reservations (Floors)',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/reservations/floor'\r\n },\r\n {\r\n title: 'Reservations List',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/reservations/list'\r\n },\r\n {\r\n title: 'Orders',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n `,\r\n state: '/admin/orders',\r\n },\r\n {\r\n title: 'Floors & Kitchens',\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/floorskitchens',\r\n sub: [\r\n { title: 'Floors Plan', state: '/admin/floorskitchens/floorPlan', type: 'link' },\r\n { title: 'Kitchens', state: '/admin/floorskitchens/kitchens', type: 'link' },\r\n { title: 'Servers Assignment', state: '/admin/floorskitchens/serversAssignment', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: 'Availability',\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/availability',\r\n sub: [\r\n { title: 'Hours', state: '/admin/availability/hoursConfig', type: 'link' },\r\n { title: 'Days Off', state: '/admin/availability/daysOffConfig', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: 'Stock Management',\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/stockConfig',\r\n sub: [\r\n // { title: 'Ingredients\\' Categories', state: '/admin/stockConfig/IngredientsCategory', type: 'link' },\r\n { title: 'Ingredients Units Config', state: '/admin/stockConfig/Ingredients', type: 'link' },\r\n // { title: 'Measurement Units', state: '/admin/stockConfig/MeasurementUnits', type: 'link' }\r\n { title: 'Ingredients Stock', state: '/admin/stockConfig/ingredientsStock', type: 'link' },\r\n { title: 'Suppliers', state: '/admin/stockConfig/suppliers', type: 'link' },\r\n { title: 'Stock Transactions', state: '/admin/stockConfig/stockTransaction', type: 'link' },\r\n\r\n ]\r\n },\r\n {\r\n title: \"Menus Management\",\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/menu-management',\r\n sub: [\r\n { title: 'Modifiers', state: '/admin/menu-management/modifiers', type: 'link' },\r\n { title: \"Menu Items' Categories\", state: '/admin/menu-management/menu-categories', type: 'link' },\r\n { title: 'Menu Items', state: '/admin/menu-management/menu-items', type: 'link' },\r\n { title: 'Menus', state: '/admin/menu-management/menus', type: 'link' },\r\n { title: 'Sizes', state: '/admin/menu-management/sizes', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: \"Reports\",\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n `,\r\n state: '/admin/reports-track',\r\n sub: [\r\n { title: 'Paid Orders', state: '/admin/reports-track/orderList/Paid', type: 'link' },\r\n { title: 'Cancelled Orders', state: '/admin/reports-track/orderList/Canceled', type: 'link' },\r\n // { title: 'Most used ingredients', state: '/admin/reports-track/mostUsedIngredients', type: 'link' },\r\n { title: 'Most ordered menu item', state: '/admin/reports-track/mostOrderedMenuItem', type: 'link' },\r\n // { title: 'Most rated menu item', state: '/admin/reports-track/mostRatedMenuItem', type: 'link' },\r\n // { title: 'Sales', state: '/admin/reports-track/sales', type: 'link' },\r\n // { title: 'Promotional codes', state: '/admin/reports-track/promotionalCodes', type: 'link' },\r\n // { title: 'Happy hours', state: '/admin/reports-track/happyHours', type: 'link' },\r\n { title: 'Host achievement', state: '/admin/reports-track/hostAchievement', type: 'link' },\r\n { title: 'Waiter achievement', state: '/admin/reports-track/waiterAchievement', type: 'link' },\r\n // { title: 'Chefs achievement', state: '/admin/reports-track/chefsAchievement', type: 'link' },\r\n // { title: 'Chefs', state: '/admin/reports-track/chefs', type: 'link' },\r\n { title: 'Cashier', state: '/admin/reports-track/cashier', type: 'link' },\r\n { title: 'Cash drawer', state: '/admin/reports-track/cashDrawer', type: 'link' },\r\n { title: 'Tobacco products', state: '/admin/reports-track/tobacco', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: \"Inventory\",\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/inventory'\r\n },\r\n {\r\n title: \"Cancellation & Refund Policies\",\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/cancellation'\r\n },\r\n {\r\n title: 'Promotion',\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/promotions',\r\n sub: [\r\n { title: 'Pre-Defined Discounts', state: '/admin/promotions/promoCode', type: 'link' },\r\n { title: 'Happy Hours', state: '/admin/promotions/happyHours', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: \"Events & Guests Announcements\",\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/eventsAndguests',\r\n sub: [\r\n { title: 'Events', state: '/admin/eventsAndguests/events', type: 'link' },\r\n { title: \"Guests Announcements\", state: '/admin/eventsAndguests/guestAnnouncements', type: 'link' },\r\n ]\r\n },\r\n {\r\n title: \"Reported Reservations\",\r\n type: \"link\",\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/reportedReservations'\r\n },\r\n {\r\n title: \"Guests' Reviews\",\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n `,\r\n state: '/admin/guestsReviews'\r\n },\r\n {\r\n title: \"Reports\",\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n `,\r\n state: '/admin/reports/reports'\r\n },\r\n {\r\n title: \"Track Food Waste\",\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n `,\r\n state: '/admin/reports/trackFoodWaste'\r\n },\r\n {\r\n title: \"Report Wasted Food\",\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/reportWastedFood'\r\n },\r\n {\r\n title: 'Settings',\r\n type: 'dropDown',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/settings',\r\n sub: [\r\n { title: 'Payment Settings', state: '/admin/settings/payment', type: 'link' },\r\n { title: 'Receipt Builder', state: '/admin/settings/receiptBuilder', type: 'link' },\r\n { title: 'Printers', state: '/admin/settings/printers', type: 'link' }\r\n ]\r\n },\r\n {\r\n title: 'Dine-in Orders List',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/orderList/dine-in',\r\n },\r\n {\r\n title: 'Takeaway & Pickup Orders',\r\n type: 'link',\r\n icon: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n state: '/admin/orderList/takeaway-pickup',\r\n },\r\n ];\r\n\r\n // sets iconMenu as default;\r\n menuItems = new BehaviorSubject(this.defaultMenu);\r\n // navigation component has subscribed to this Observable\r\n // menuItems$ = this.menuItems.asObservable();\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotificationsModel } from '../models/Notification';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationsService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n GetUnseenNotificationCount() {\r\n return this.http.get(`${environment.apiUrl}/Notification/GetUnseenNotificationCount`);\r\n }\r\n GetNotifications(data: NotificationsModel) {\r\n return this.http.post(`${environment.apiUrl}/Notification/Notifications`, data);\r\n }\r\n UpdateNotificationsSeenStatus() {\r\n return this.http.get(`${environment.apiUrl}/Notification/UpdateNotificationsSeenStatus`);\r\n }\r\n}\r\n","export enum SignalEventType {\r\n MobNotificationUnreadCountNumber = 'MobNotificationUnreadCountNumber',\r\n NewReservation = 'NewReservation',\r\n UpdateReservation = 'UpdateReservation',\r\n CancelReservation = 'CancelReservation',\r\n menuUpdated = 'menuUpdated',\r\n menuItemUpdated = 'menuItemUpdated',\r\n kdsItemStatusChanged = 'kdsItemStatusChanged',\r\n orderStatusChanged = 'orderStatusChanged',\r\n newOrderToKds = 'newOrderToKds',\r\n editOrder = 'editOrder',\r\n cancelledOrder = 'cancelledOrder',\r\n recallOrder = 'recallOrder',\r\n OrderCheckOut = 'OrderCheckOut',\r\n wasteOrder = 'wasteOrder',\r\n updatePaymentSettings = 'updatePaymentSettings',\r\n blockTable = 'blockTable',\r\n LogOut = 'LogOut',\r\n TakeawayorderStatusChanged = 'TakeawayorderStatusChanged',\r\n QrCodeHyperPay = 'QrCodeHyperPay',\r\n WareHouseSenderReject = 'WareHouseSenderReject',\r\n WareHouseSenderAccept = 'WareHouseSenderAccept',\r\n WareHouseReceiver = 'WareHouseReceiver',\r\n AttandanceFeature = \"AttandanceFeature\",\r\n NearPayNFC = \"NearPayNFC\"\r\n}\r\n\r\nexport interface SignalEvent {\r\n type: SignalEventType,\r\n data: TDataShape\r\n}\r\nexport enum WareHouseLogSourceEnum {\r\n PurchaseOrder = 'PurchaseOrder',\r\n NeedStockRequest = 'NeedStockRequest',\r\n SendStockRequest = 'SendStockRequest',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as signalR from '@microsoft/signalr';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthenticationService } from '../authentication.service';\r\nimport { Observable, Subject, filter } from 'rxjs';\r\nimport { SignalEvent, SignalEventType, WareHouseLogSourceEnum } from './SignalModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalRService {\r\n private hubConnection!: signalR.HubConnection;\r\n private signalEvent!: Subject;\r\n\r\n constructor(\r\n private authService: AuthenticationService,\r\n private snackBar: MatSnackBar,\r\n private translate: TranslateService\r\n ) {\r\n this.signalEvent = new Subject();\r\n }\r\n\r\n public startConnection = () => {\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(environment.signalR, {\r\n accessTokenFactory: () => this.authService.currentUserValue!.token,\r\n transport: signalR.HttpTransportType.WebSockets\r\n }).build();\r\n\r\n this.hubConnection.start()\r\n .then((data) => {\r\n this.setupSignalREvents();\r\n this.authService.SignalRConnectionId.next(this.hubConnection.connectionId);\r\n // localStorage.setItem('connectionId', String(this.hubConnection.connectionId))\r\n console.log('Connection started ...')\r\n })\r\n .catch((err: any) => console.log('Error while starting connection ... ' + err));\r\n\r\n }\r\n stopConnection() {\r\n if (this.hubConnection) {\r\n this.hubConnection.stop()\r\n .then(() => console.log('Connection stopped ...'))\r\n .catch((err: any) => console.log('Error while stopping connection ... ' + err));\r\n }\r\n }\r\n /*\r\n * ***************************************************************\r\n * ***************************************************************\r\n * ***************************************************************\r\n * ***************************************************************\r\n */\r\n\r\n getDataStream(...filterValues: SignalEventType[]): Observable> {\r\n return this.signalEvent.asObservable().pipe(filter(event => filterValues.some(f => f === event.type)));\r\n }\r\n\r\n private onMessage(payload: SignalEvent) {\r\n this.signalEvent.next(payload);\r\n }\r\n\r\n private setupSignalREvents() {\r\n this.hubConnection?.on('LogOut', (msgEn: string, msgAr: string) => {\r\n this.onMessage({ type: SignalEventType.LogOut, data: { msgEn, msgAr } });\r\n });\r\n this.hubConnection?.on('MobNotificationUnreadCountNumber', (count: number) => {\r\n this.onMessage({ type: SignalEventType.MobNotificationUnreadCountNumber, data: { count } });\r\n });\r\n this.hubConnection?.on('NewReservation', (RestaurantId: number, TabelsIds: Number[]) => {\r\n this.onMessage({ type: SignalEventType.NewReservation, data: { RestaurantId, TabelsIds } });\r\n });\r\n this.hubConnection?.on('UpdateReservation', (RestaurantId: number, ReservationId: Number) => {\r\n this.onMessage({ type: SignalEventType.UpdateReservation, data: { RestaurantId, ReservationId } });\r\n });\r\n this.hubConnection?.on('CancelReservation', (ReservationId: number, RestaurantId: Number) => {\r\n this.onMessage({ type: SignalEventType.CancelReservation, data: { ReservationId, RestaurantId } });\r\n });\r\n this.hubConnection?.on('menuUpdated', (RestaurantId: number) => {\r\n this.onMessage({ type: SignalEventType.menuUpdated, data: { RestaurantId } });\r\n });\r\n this.hubConnection?.on('menuItemUpdated', (RestaurantId: number, ItemId: number) => {\r\n this.onMessage({ type: SignalEventType.menuItemUpdated, data: { RestaurantId, ItemId } });\r\n });\r\n this.hubConnection?.on('kdsItemStatusChanged', (RestaurantId: number, ReservationId: number, OrderId: number, ItemId: number, NewStatus: string) => {\r\n this.onMessage({ type: SignalEventType.kdsItemStatusChanged, data: { RestaurantId, ReservationId, OrderId, ItemId, NewStatus } });\r\n });\r\n this.hubConnection?.on('orderStatusChanged', (RestaurantId: number, ReservationId: number, OrderId: number) => {\r\n this.onMessage({ type: SignalEventType.orderStatusChanged, data: { RestaurantId, ReservationId, OrderId } });\r\n });\r\n this.hubConnection?.on('TakeawayorderStatusChanged', (RestaurantId: number, OrderId: number, NewStatus: string) => {\r\n this.onMessage({ type: SignalEventType.TakeawayorderStatusChanged, data: { RestaurantId, OrderId, NewStatus } });\r\n });\r\n this.hubConnection?.on('QrCodeHyperPay', (RestaurantId: number, CheckoutId: string, OrderId: number, Type: string) => {\r\n this.onMessage({ type: SignalEventType.QrCodeHyperPay, data: { RestaurantId, CheckoutId, OrderId, Type } });\r\n });\r\n this.hubConnection?.on('NearPayNFC', (RestaurantId: number, OrderId: number, Type: string, canPrint: string, CheckoutId: string) => {\r\n this.onMessage({ type: SignalEventType.NearPayNFC, data: { RestaurantId, OrderId, Type, canPrint, CheckoutId } });\r\n });\r\n this.hubConnection?.on('newOrderToKds', (RestaurantId: number, ReservationId: number, OrderId: number) => {\r\n this.onMessage({ type: SignalEventType.newOrderToKds, data: { RestaurantId, ReservationId, OrderId } });\r\n });\r\n this.hubConnection?.on('editOrder', (RestaurantId: number, ReservationId: number, OrderId: number) => {\r\n this.onMessage({ type: SignalEventType.editOrder, data: { RestaurantId, ReservationId, OrderId } });\r\n });\r\n this.hubConnection?.on('OrderCheckOut', (data: string) => {\r\n data = JSON.parse(data);\r\n this.onMessage({ type: SignalEventType.OrderCheckOut, data });\r\n });\r\n this.hubConnection?.on('cancelledOrder', (RestaurantId: number, ReservationId: number, OrderId: number) => {\r\n this.onMessage({ type: SignalEventType.cancelledOrder, data: { RestaurantId, ReservationId, OrderId } });\r\n });\r\n this.hubConnection?.on('recallOrder', (RestaurantId: number, ReservationId: number, OrderId: number) => {\r\n this.onMessage({ type: SignalEventType.recallOrder, data: { RestaurantId, ReservationId, OrderId } });\r\n });\r\n this.hubConnection?.on('wasteOrder', (RestaurantId: number, ReservationId: number, OrderId: number) => {\r\n this.onMessage({ type: SignalEventType.wasteOrder, data: { RestaurantId, ReservationId, OrderId } });\r\n });\r\n this.hubConnection?.on('updatePaymentSettings', (RestaurantId: number) => {\r\n this.onMessage({ type: SignalEventType.updatePaymentSettings, data: { RestaurantId } });\r\n });\r\n this.hubConnection?.on('blockTable', (RestaurantId: number, TableId: number) => {\r\n this.onMessage({ type: SignalEventType.blockTable, data: { RestaurantId, TableId } });\r\n });\r\n this.hubConnection?.on('WareHouseSenderReject', (RestaurantId: number, WarehouseId: number, RequestId: number, Type: WareHouseLogSourceEnum) => {\r\n this.onMessage({ type: SignalEventType.WareHouseSenderReject, data: { RestaurantId, WarehouseId, RequestId, Type } });\r\n });\r\n this.hubConnection?.on('WareHouseSenderAccept', (RestaurantId: number, WarehouseId: number, RequestId: number, Type: WareHouseLogSourceEnum) => {\r\n this.onMessage({ type: SignalEventType.WareHouseSenderAccept, data: { RestaurantId, WarehouseId, RequestId, Type } });\r\n });\r\n this.hubConnection?.on('WareHouseReceiver', (RestaurantId: number, WarehouseId: number, RequestId: number, Type: WareHouseLogSourceEnum) => {\r\n this.onMessage({ type: SignalEventType.WareHouseReceiver, data: { RestaurantId, WarehouseId, RequestId, Type } });\r\n });\r\n this.hubConnection?.on('AttandanceFeature', (RestaurantId) => {\r\n this.onMessage({ type: SignalEventType.AttandanceFeature, data: { RestaurantId } });\r\n });\r\n }\r\n\r\n /*******************************************************/\r\n notify(msg: string) {\r\n this.snackBar.open(this.translate.instant('signal.' + msg), '✖', {\r\n duration: 3000,\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n}\r\n","import { Currency, Lookup } from \"src/app/models/Lookup\"\r\n\r\nexport enum OrderDiscountType {\r\n Manual = 'Manual',\r\n HappyHour = 'HappyHour',\r\n PromoCode = 'PromoCode',\r\n RestaurantVoucherLoyalityPoints = 'RestaurantVoucherLoyalityPoints',\r\n RestaurantVoucherCode = 'RestaurantVoucherCode'\r\n}\r\nexport enum ValueTypeEnum {\r\n Percentage = 'Percentage',\r\n Value = 'Value'\r\n}\r\nexport enum CheckOutType {\r\n Total = 'Total',\r\n SplitPrice = 'SplitPrice',\r\n SplitItem = 'SplitItem'\r\n}\r\nexport class CheckOutDetails {\r\n orderId!: number\r\n cashOptions!: number[]\r\n currency!: Currency\r\n discountName!: string\r\n discountValue!: number\r\n serviceValue!: number\r\n surchargeValue!: number\r\n subTotal!: number\r\n taxValue!: number\r\n total!: number\r\n paid!: number\r\n toBePaid!: number\r\n partySize!: number\r\n\r\n hasCashOption!: boolean\r\n paymentDetails!: PaymentDetails[]\r\n paymentOptions!: Lookup[]\r\n canManageDiscount!: boolean\r\n canManageSurcharge!: boolean\r\n canPaymentDetails!: boolean\r\n canItemSplit!: boolean\r\n isTotalyPaid!: boolean\r\n\r\n splitItemList!: any\r\n splitPriceList!: SplitByPrice[]\r\n onlinePaymentPaid!: CheckOutResult\r\n\r\n isClosed!: boolean\r\n closeDate!: Date\r\n closedBy!: {\r\n id?: number\r\n name?: string\r\n profilePic?: string\r\n }\r\n otherPaymentOptions!: Lookup[]\r\n}\r\nexport class PaymentDetails {\r\n checkOutId!: number\r\n canAddTip!: boolean\r\n checkOutType!: CheckOutType\r\n paidPrice!: number\r\n paymentOption!: string\r\n priceAmount!: number\r\n remainAmount!: number\r\n reservationOrderSelectedItems!: CheckOutSplitItemsList[]\r\n tipsValue!: number\r\n}\r\nexport class CheckOutSplitItemsList {\r\n itemName!: string\r\n itemPic!: string\r\n sizeName!: string\r\n priceAmount!: number\r\n itemPrice!: number\r\n shareDiscountValue!: number\r\n shareTaxValue!: number\r\n shareServiceValue!: number\r\n shareSurchargeValue!: number\r\n otherDiscount!: number\r\n quantity!: number\r\n}\r\nexport class CheckOutModel {\r\n orderId!: number\r\n checkOutType!: CheckOutType\r\n paidAmount!: number\r\n paymentOptionsId!: number\r\n splitPriceList!: SplitByPrice[]\r\n splitItemList!: CheckOutSplitItemList[]\r\n\r\n paymentType?: string\r\n paymentOptionsCode?: string\r\n CheckOutRedirectUrl?: string\r\n\r\n otherPaymentOptionsId?: number\r\n otherPaymentOptionsComment?: string\r\n\r\n paymentSourceType!: PaymentSourceTypeEnum;\r\n deviceId!: any\r\n deviceType!: any\r\n}\r\nexport class CheckOutSplitItemList {\r\n reservationMenuItemId!: number\r\n splitQuantity!: number\r\n}\r\nexport class SplitByPrice {\r\n checkOutId!: number\r\n paidAmount!: number\r\n priceAmount!: number\r\n isPaid!: boolean\r\n payNow!: boolean\r\n isValid!: boolean\r\n}\r\nexport class CheckOutResult {\r\n result!: any\r\n hasTips!: boolean\r\n tipValue!: number\r\n orderId!: number\r\n orderNumber!: number\r\n checkOutId!: number\r\n currency!: Currency\r\n isTotalyPaid!: boolean\r\n canPrint!: boolean\r\n kitchens!: Lookup[]\r\n}\r\n\r\nexport enum PaymentSourceTypeEnum {\r\n ClientQrCode = 'ClientQrCode',\r\n System = 'System'\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CheckOutDetails, CheckOutModel, CheckOutResult } from './CheckOut.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckOutService {\r\n refreshView = new BehaviorSubject(false);\r\n refreshPrices = new BehaviorSubject(false);\r\n checkOutDone = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n ResGetDiscountList(orderId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResGetDiscountList?OrderId=${orderId}`);\r\n }\r\n ResGetOrderPaymentById(orderId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResGetOrderPaymentById?OrderId=${orderId}`);\r\n }\r\n ResApplyOrderDiscount(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResApplyOrderDiscount`, data);\r\n }\r\n ResApplyItemDiscount(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResApplyItemDiscount`, data);\r\n }\r\n ResApplyTotalDiscount(OrderId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResApplyTotalDiscount?OrderId=${OrderId}`);\r\n }\r\n ResCloseOrder(OrderId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResCloseOrder?OrderId=${OrderId}`);\r\n }\r\n ResApplySurcharge(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResApplySurcharge`, data);\r\n }\r\n ResRemoveOrderDiscount(orderId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResRemoveOrderDiscount?OrderId=${orderId}`);\r\n }\r\n ResRemoveOrderSurcharge(orderId: number) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResRemoveOrderSurcharge?OrderId=${orderId}`);\r\n }\r\n ResGetTotalPrice(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ReservationOrder/ResGetTotalPrice`, data);\r\n }\r\n ResCheckOut(data: CheckOutModel) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResCheckOut`, data);\r\n }\r\n ResAddTip(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResAddTip`, data);\r\n }\r\n ResCheckOutSplitItemsDetails(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResCheckOutSplitItemsDetails`, data);\r\n }\r\n ResCheckOutSplitPriceDetails(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResCheckOutSplitPriceDetails`, data);\r\n }\r\n ResGetCheckOutRecipt(OrderId: number, CheckOutId: number) {\r\n let query = `OrderId=${OrderId}`;\r\n // if (CheckOutId) { query += `&CheckOutId=${CheckOutId}`; }\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResGetCheckOutRecipt?${query}`);\r\n }\r\n prentrest(data: any) {\r\n let query = `OrderId=${data.OrderId}&deviceId=${data.deviceId}&deviceType=${data.deviceType}`;\r\n if (data.CheckOutId) { query += `&CheckOutId=${data.CheckOutId}`; }\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/prentrest?${query}`);\r\n }\r\n ResPrentOrderPriceList(orderId: number) {\r\n let params: any = { orderId }\r\n if (localStorage.getItem('deviceId')) {\r\n params.deviceId = localStorage.getItem('deviceId');\r\n }\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResPrentOrderPriceList`, { params });\r\n }\r\n ResGetCheckoutId(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResGetCheckoutId`, data);\r\n }\r\n ResGetNFCSDK(data: any) {\r\n return this.http.post(`${environment.apiUrl}/ResCheckOut/ResGetNFCSDK`, data);\r\n }\r\n ResGetCheckoutStatus(CheckoutId: any) {\r\n return this.http.get(`${environment.apiUrl}/ResCheckOut/ResGetCheckoutStatus?CheckoutId=${CheckoutId}`);\r\n }\r\n}\r\n","import { TranslateService } from \"@ngx-translate/core\";\r\nimport { Currency } from \"src/app/models/Lookup\";\r\nimport Swal from \"sweetalert2\";\r\nimport { OrderDiscountType, PaymentDetails, ValueTypeEnum } from \"./CheckOut.models\";\r\nimport { CheckOutService } from \"./CheckOut.service\";\r\n\r\nexport class CheckOutActions {\r\n actionLoading!: string | boolean;\r\n currentOrderId!: number;\r\n discountList: any[] = [];\r\n manualDiscount = false;\r\n manualSurcharge = false;\r\n currency!: Currency\r\n\r\n openCheckout = false;\r\n openPaymentDetails = false;\r\n\r\n activePayment!: PaymentDetails | null;\r\n\r\n constructor(\r\n public checkoutService: CheckOutService,\r\n public translate: TranslateService\r\n ) {\r\n this.checkoutService.checkOutDone.next(false);\r\n }\r\n\r\n counter(i: number) { return new Array(i); }\r\n\r\n ResGetDiscountList() {\r\n this.checkoutService.ResGetDiscountList(this.currentOrderId)\r\n .subscribe(\r\n data => {\r\n this.discountList = data as [];\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n applyTotalDiscount() {\r\n Swal.fire({\r\n title: this.translate.instant('checkout.Apply total discount?'),\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.actionLoading = true;\r\n this.checkoutService.ResApplyTotalDiscount(this.currentOrderId)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n });\r\n }\r\n });\r\n }\r\n applyDiscount(type: string, params: any, hasDiscount: any = false, voucherCode = '') {\r\n let data = {\r\n orderId: this.currentOrderId,\r\n discountType: type,\r\n discountId: (type == OrderDiscountType.Manual) ? 0 : params,\r\n discountValue: params.value,\r\n manualDiscountType: params.valueType || '',\r\n hasDiscount,\r\n voucherCode\r\n }\r\n this.ResApplyOrderDiscount(data);\r\n }\r\n ResApplyOrderDiscount(data: any) {\r\n let title = this.translate.instant('checkout.Apply Discount?');\r\n let html = '';\r\n if (data.hasDiscount) {\r\n html += '
'\r\n + this.translate.instant('checkout.This Order already has discount, Override it?')\r\n + ' (' + this.currency.currencyCode + ' ' + data.hasDiscount + ')'\r\n + '
'\r\n }\r\n if (data.discountValue) {\r\n html += ''\r\n + (data.manualDiscountType == ValueTypeEnum.Percentage ? '%' : this.currency.currencyCode)\r\n + ' '\r\n + data.discountValue\r\n + '';\r\n }\r\n if (data.discountType == 'RestaurantVoucherLoyalityPoints') {\r\n html += '
'\r\n + this.translate.instant('checkout.ApplyRestaurantVoucherText')\r\n + '
'\r\n }\r\n if (data.voucherCode) {\r\n title = this.translate.instant('checkout.Apply Promo Code?');\r\n }\r\n Swal.fire({\r\n title,\r\n html: html,\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.actionLoading = true;\r\n this.checkoutService.ResApplyOrderDiscount(data)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n });\r\n }\r\n });\r\n }\r\n ResApplySurcharge(params: any) {\r\n let html = ''\r\n + (params.valueType == ValueTypeEnum.Value ? this.currency.currencyCode : '%')\r\n + ' '\r\n + params.value\r\n + '';\r\n Swal.fire({\r\n title: this.translate.instant('checkout.Apply Surcharge?'),\r\n html: html,\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n let data = {\r\n orderId: this.currentOrderId,\r\n surchargeValue: Number(params.value),\r\n surchargeType: params.valueType,\r\n }\r\n this.actionLoading = true;\r\n this.checkoutService.ResApplySurcharge(data)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n });\r\n }\r\n });\r\n }\r\n ResRemoveOrderDiscount() {\r\n Swal.fire({\r\n title: this.translate.instant('checkout.Remove Discount?'),\r\n text: '',\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.actionLoading = true;\r\n this.checkoutService.ResRemoveOrderDiscount(this.currentOrderId)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n });\r\n }\r\n });\r\n }\r\n ResRemoveOrderSurcharge() {\r\n Swal.fire({\r\n title: this.translate.instant('checkout.Remove Surcharge?'),\r\n text: '',\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.actionLoading = true;\r\n this.checkoutService.ResRemoveOrderSurcharge(this.currentOrderId)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n closeOrderLoading = false;\r\n closeOrder() {\r\n Swal.fire({\r\n title: this.translate.instant('checkout.Close Order?'),\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value) {\r\n this.actionLoading = true;\r\n this.closeOrderLoading = true;\r\n this.checkoutService.ResCloseOrder(this.currentOrderId)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.closeOrderLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n this.closeOrderLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n applyItemDiscount(item: any, quantity: number) {\r\n if (Number(item.freeQuantity) > Number(item.quantity)) return;\r\n this.actionLoading = true;\r\n let data = {\r\n orderId: this.currentOrderId,\r\n id: item.id,\r\n quantity: Number(quantity)\r\n }\r\n this.checkoutService.ResApplyItemDiscount(data)\r\n .subscribe(\r\n data => {\r\n this.actionLoading = false;\r\n this.checkoutService.refreshView.next(true);\r\n }, error => {\r\n this.actionLoading = false;\r\n this.closeOrderLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.I got it')\r\n });\r\n this.checkoutService.refreshView.next(true);\r\n });\r\n }\r\n\r\n // Adding Tip\r\n addTipManual(data: any) {\r\n if (data?.value) {\r\n let html = '';\r\n if (data.value) {\r\n html = ''\r\n + this.currency.currencyCode\r\n + ' '\r\n + data.value\r\n + '';\r\n }\r\n Swal.fire({\r\n title: this.translate.instant('checkout.Add Tip?'),\r\n html: html,\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No')\r\n }).then((result) => {\r\n if (result.value && this.activePayment) {\r\n this.ResAddTip(this.activePayment.checkOutId, data.value, 'details');\r\n }\r\n this.activePayment = null;\r\n });\r\n } else {\r\n this.activePayment = null;\r\n }\r\n }\r\n ResAddTip(checkOutId: number, tipValue: number, actionType = 'checkout') {\r\n this.actionLoading = true;\r\n let data = {\r\n orderId: this.currentOrderId,\r\n checkOutId,\r\n tipValue\r\n }\r\n this.checkoutService.ResAddTip(data)\r\n .subscribe(response => {\r\n this.actionLoading = false;\r\n if (actionType != 'details') {// After payment confirmation pop up when checkout\r\n this.checkoutService.checkOutDone.next(true);\r\n }\r\n if (actionType == 'details') { // In payment details list\r\n this.checkoutService.refreshView.next(true);\r\n }\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('checkout.Tip Added Successfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n ResNoTip(checkOutId: number) {\r\n this.actionLoading = true;\r\n let data = {\r\n orderId: this.currentOrderId,\r\n checkOutId\r\n }\r\n this.checkoutService.ResAddTip(data)\r\n .subscribe(response => {\r\n this.actionLoading = false;\r\n this.checkoutService.checkOutDone.next(true);\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('checkout.No Tip Added'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n PrintOrderPriceList() {\r\n this.actionLoading = true;\r\n this.checkoutService.ResPrentOrderPriceList(this.currentOrderId).subscribe((data: any) => {\r\n this.actionLoading = false;\r\n if (!localStorage.getItem('deviceId')) {\r\n setTimeout(() => { this.print(data.htmlContent); }, 500);\r\n }\r\n }, err => {\r\n console.log(err);\r\n })\r\n }\r\n\r\n print(html: string): void {\r\n const mywindow: any = window.open('', 'PRINT', 'height=600,width=700');\r\n mywindow.document.write(html);\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport Swal from 'sweetalert2';\r\nimport { CheckOutDetails, CheckOutModel, CheckOutType, CheckOutResult, SplitByPrice, PaymentSourceTypeEnum } from './CheckOut.models';\r\nimport { CheckOutService } from './CheckOut.service';\r\nimport { CheckOutActions } from './CheckOutActions';\r\nimport { PaymentConfirmationComponent } from './payment-confirmation/payment-confirmation.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\nimport { Subscription } from 'rxjs';\r\nimport { SignalRService } from 'src/app/services/signalR/SignalR.service';\r\nimport { SignalEventType } from 'src/app/services/signalR/SignalModel';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-check-out',\r\n templateUrl: './check-out.component.html'\r\n})\r\nexport class CheckOutComponent extends CheckOutActions implements OnInit, OnDestroy {\r\n dataLoading = true;\r\n @Input() orderId!: number;\r\n @Input() canSplit = true;\r\n @Output() close = new EventEmitter();\r\n\r\n details!: CheckOutDetails;\r\n splitedItemsDetails!: CheckOutDetails;\r\n splitedPricesDetails!: CheckOutDetails;\r\n cashOptions: any;\r\n manualCachToPay!: number;\r\n\r\n isSplit = false;\r\n splitType = 'price'; // price - item\r\n floatPattern = Patterns.float2decimal;\r\n maxSplitPrice = 1;\r\n minSplitedPrice = 1;\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n manualCash = false;\r\n CheckOutModel = new CheckOutModel();\r\n CheckOutResult!: CheckOutResult;\r\n checkoutId!: string;\r\n referencePaymentUrl!: string;\r\n paymentIframeLoader = true;\r\n\r\n otherPaymnetFormGroup!: FormGroup;\r\n\r\n hardReload = true;\r\n subscriptions: Subscription[] = [];\r\n\r\n isIOSDevice = this.iOS();\r\n\r\n getDetailsSubscriber!: Subscription;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n checkoutService: CheckOutService,\r\n translate: TranslateService,\r\n private formBuilder: FormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private signal: SignalRService\r\n ) {\r\n super(checkoutService, translate);\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.updatePaymentSettings)\r\n .subscribe(message => { this.signalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.editOrder)\r\n .subscribe(message => { this.editOrderSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.OrderCheckOut)\r\n .subscribe(message => { this.CheckoutSignalAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.QrCodeHyperPay)\r\n .subscribe(message => { this.signalPayAction(message.data); })\r\n )\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.NearPayNFC)\r\n .subscribe(message => { this.signalNFCPayAction(message.data); })\r\n )\r\n }\r\n\r\n signalAction(data: any) {\r\n const restId = Number(localStorage.getItem('restaurantId'))\r\n if (restId && data.RestaurantId == restId) {\r\n this.hardReload = false;\r\n this.signal.notify('Payment settings has been updated');\r\n this.getCheckoutDetails();\r\n }\r\n }\r\n signalPayAction(data: any) {\r\n const restId = Number(localStorage.getItem('restaurantId'))\r\n if (restId\r\n && data.RestaurantId == restId\r\n && (\r\n data.CheckoutId == this.checkoutId\r\n || data.OrderId == this.orderId\r\n )) {\r\n this.getCheckoutDetails();\r\n }\r\n }\r\n signalNFCPayAction(data: any) {\r\n const restId = Number(localStorage.getItem('restaurantId'));\r\n if (\r\n restId\r\n && data.RestaurantId == restId\r\n && data.OrderId == this.orderId\r\n ) {\r\n this.CheckOutResult = new CheckOutResult();\r\n this.CheckOutResult.canPrint = (data.canPrint == 'True');\r\n this.CheckOutResult.orderId = data.OrderId;\r\n this.CheckOutResult.isTotalyPaid = true;\r\n this.checkOutDone();\r\n }\r\n }\r\n editOrderSignalAction(data: any) {\r\n const restId = Number(localStorage.getItem('restaurantId'))\r\n if (data.RestaurantId == restId && data.OrderId == this.orderId) {\r\n this.hardReload = false;\r\n this.getCheckoutDetails();\r\n }\r\n }\r\n CheckoutSignalAction(data: any) {\r\n if (data.OrderId == this.orderId) {\r\n this.getCheckoutDetails();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.CheckOutModel.checkOutType = CheckOutType.Total;\r\n this.currentOrderId = this.orderId;\r\n // this.checkoutService.refreshView.next(true);\r\n this.activatedRoute.queryParamMap.subscribe(params => {\r\n if (params.get('id')) {\r\n this.checkoutId = params.get('id') || '';\r\n this.checkoutService.refreshView.next(false)\r\n // this.checkPaymentStatues();\r\n // } else {\r\n // // get details in normal mode\r\n // this.getCheckoutDetails();\r\n }\r\n });\r\n this.getCheckoutDetails();\r\n\r\n this.checkoutService.refreshView.pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(data => {\r\n if (data && !this.CheckOutResult?.isTotalyPaid) {\r\n this.getCheckoutDetails();\r\n }\r\n });\r\n this.checkoutService.checkOutDone.pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(data => {\r\n if (data) {\r\n this.checkOutDone();\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next(null);\r\n this.unsubscribe$.complete();\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.checkoutService.refreshView.next(false);\r\n }\r\n getCheckoutDetails() {\r\n // this.getDetailsSubscriber?.unsubscribe();\r\n this.dataLoading = true;\r\n this.getDetailsSubscriber = this.checkoutService.ResGetOrderPaymentById(this.orderId)\r\n .subscribe(data => {\r\n this.dataLoading = false;\r\n this.details = data as CheckOutDetails;\r\n this.cashOptions = this.details.cashOptions;\r\n this.manualCachToPay = this.details.toBePaid;\r\n this.currency = this.details.currency;\r\n this.maxSplitPrice = this.details.partySize + 10;\r\n\r\n // reseting view\r\n if (!this.details.isTotalyPaid) {\r\n let checkOutType = CheckOutType.Total;\r\n if (this.details.splitPriceList.length) { // splited prices\r\n checkOutType = CheckOutType.SplitPrice;\r\n } else { // splited items\r\n let paidItems = this.details.splitItemList.filter((item: any) => item.splitedQuantity);\r\n if (paidItems.length) {\r\n checkOutType = CheckOutType.SplitItem;\r\n }\r\n }\r\n if (checkOutType != CheckOutType.Total) {\r\n this.isSplit = true;\r\n this.splitType = (checkOutType == CheckOutType.SplitPrice ? 'price' : 'item');\r\n }\r\n }\r\n this.CheckOutModel = new CheckOutModel();\r\n this.CheckOutModel.orderId = this.orderId;\r\n this.CheckOutModel.checkOutType = CheckOutType.Total;\r\n ////////////////////////////////////\r\n\r\n this.details.splitItemList.map((item: any) => {\r\n item.active = false;\r\n item.splitQuantity = 0;\r\n });\r\n if (!this.details.splitPriceList?.length) {\r\n for (let index = 0; index < this.details.partySize; index++) {\r\n this.plusSplitPriceList()\r\n }\r\n } else {\r\n this.minSplitedPrice = this.details.splitPriceList.length;\r\n }\r\n this.details.splitPriceList.map((item: any) => {\r\n item.isValid = true;\r\n });\r\n this.checkoutId = ''; // reset to hide payment widget\r\n\r\n if (this.details.isTotalyPaid) {\r\n this.closeCheckout();\r\n }\r\n\r\n // check if there is a online payment process\r\n this.CheckOutResult = this.details.onlinePaymentPaid;\r\n if (this.details.onlinePaymentPaid?.result) {\r\n this.checkPaymentStatues();\r\n }\r\n\r\n this.selectedPaymentOpt = null;\r\n this.hardReload = true;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n backToSplitView() {\r\n // this.getCheckoutDetails();\r\n this.cashOptions = this.details.cashOptions;\r\n this.manualCachToPay = this.details.toBePaid;\r\n this.CheckOutModel = new CheckOutModel();\r\n this.CheckOutModel.orderId = this.orderId;\r\n this.CheckOutModel.checkOutType = CheckOutType.Total;\r\n\r\n this.isSplit = true;\r\n this.checkoutId = ''; // reset to hide payment widget\r\n }\r\n closeSplit() {\r\n this.isSplit = false;\r\n this.CheckOutModel.checkOutType = CheckOutType.Total;\r\n this.checkoutId = ''; // reset to hide payment widget\r\n }\r\n\r\n get activeSplitedPrices() {\r\n return this.details.splitPriceList.filter(item => !item.isPaid)\r\n }\r\n minusSplitPriceList() {\r\n if (this.minSplitedPrice >= this.details.splitPriceList.length) return\r\n this.details.splitPriceList.splice(this.details.splitPriceList.length - 1, 1)\r\n this.handleSplitPriceList()\r\n }\r\n plusSplitPriceList() {\r\n this.details.splitPriceList.push(new SplitByPrice())\r\n this.handleSplitPriceList()\r\n }\r\n handleSplitPriceList() {\r\n this.activeSplitedPrices.forEach(item => {\r\n item.isValid = true;\r\n item.priceAmount = Math.floor((this.details.toBePaid / this.activeSplitedPrices.length) * 100) / 100\r\n })\r\n this.calcChange();\r\n }\r\n handleSplitAmountInput(item: SplitByPrice, ctr: any) {\r\n item.isValid = (\r\n !this.checkValid(item.priceAmount)\r\n || ctr.errors?.['pattern']\r\n || ctr.errors?.['maxlength']\r\n ) ? false : true\r\n // if (!item.isValid) return;\r\n\r\n let totalAmount = Number(this.details.toBePaid) - Number(item.priceAmount);\r\n this.activeSplitedPrices.forEach((elem, i) => {\r\n if (elem !== item) {\r\n elem.priceAmount = Math.floor((totalAmount / (this.activeSplitedPrices.length - 1)) * 100) / 100;\r\n elem.isValid = this.checkValid(elem.priceAmount)\r\n }\r\n })\r\n this.calcChange();\r\n }\r\n checkValid(priceAmount: number) {\r\n return (\r\n !Number(priceAmount)\r\n || (Number(priceAmount) >= this.details.toBePaid)\r\n || (Number(priceAmount) <= 0)\r\n ) ? false : true\r\n }\r\n calcChange() {\r\n setTimeout(() => {\r\n let totalAmount = this.activeSplitedPrices.map(item => Number(String(Number(item.priceAmount).toFixed(2)).replace('.', ''))).reduce((acc, cur) => acc + cur, 0) / 100;\r\n if (totalAmount < this.details.toBePaid) {\r\n let lastSplit = this.activeSplitedPrices[this.activeSplitedPrices.length - 1];\r\n if (lastSplit) {\r\n let diff = this.calcDecimals(this.details.toBePaid, totalAmount, '-');\r\n lastSplit.priceAmount = this.calcDecimals(lastSplit.priceAmount, diff, '+');\r\n }\r\n }\r\n }, 100);\r\n }\r\n calcDecimals(b: number, c: number, operation: string) {\r\n let b1 = b.toString().split(\".\")\r\n let b1_max = 0\r\n if (b1.length == 2) {\r\n b1_max = b1[1].length\r\n }\r\n let c1 = c.toString().split(\".\")\r\n let c1_max = 0\r\n if (c1.length == 2) {\r\n c1_max = c1[1].length\r\n }\r\n let max_len = b1_max > c1_max ? b1_max : c1_max\r\n let result = 0;\r\n if (operation == '-') { result = Number((b - c).toFixed(max_len)) }\r\n if (operation == '+') { result = Number((b + c).toFixed(max_len)) }\r\n if (operation == '*') { result = Number((b * c).toFixed(max_len)) }\r\n return result;\r\n }\r\n\r\n splitItemClicked(item: any) {\r\n if ((item.quantity == 1 || item.isWeight) && (item.quantity != item.splitedQuantity)) {\r\n item.active = !item.active\r\n }\r\n }\r\n\r\n paymentConfirmation(amount: number, type: string) {\r\n this.CheckOutModel.paidAmount = amount;\r\n\r\n if (type == 'cash') {\r\n this.selectedPaymentOpt = null;\r\n delete this.CheckOutModel.paymentType;\r\n delete this.CheckOutModel.paymentOptionsCode;\r\n }\r\n\r\n const dialogRef = this.dialog.open(PaymentConfirmationComponent, {\r\n width: '50rem',\r\n data: {\r\n currency: this.currency,\r\n amount, type,\r\n checkOutResult: this.CheckOutResult\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result?.accept) {\r\n this.manualCash = false;\r\n if (result?.accept == 'no-tip') {\r\n this.ResNoTip(result.checkOutResult.checkOutId);\r\n } else {\r\n if (type == 'cash' || type == 'houseAccount') {\r\n this.Checkout();\r\n }\r\n if (type == 'tip') {\r\n this.ResAddTip(result.checkOutResult.checkOutId, result.checkOutResult.tipValue);\r\n }\r\n }\r\n } else {\r\n if (type == 'tip') {\r\n this.checkOutDone();\r\n }\r\n }\r\n });\r\n }\r\n payCashManual(data: any) {\r\n if (data?.value) {\r\n this.paymentConfirmation(data.value, 'cash');\r\n } else {\r\n this.manualCash = false;\r\n }\r\n return;\r\n if (Number(data?.value) < Number(this.details.toBePaid)) {\r\n this.InSufficientValue();\r\n } else {\r\n if (data?.value) {\r\n this.paymentConfirmation(data.value, 'cash');\r\n } else {\r\n this.manualCash = false;\r\n }\r\n }\r\n }\r\n InSufficientValue(error = '') {\r\n if (!error) {\r\n error = this.translate.instant('checkout.The value entered is below the required amount to complete the payment transaction');\r\n }\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.InSufficientValue'),\r\n text: error,\r\n imageUrl: './assets/images/icons/orders/warning-ic.svg',\r\n imageWidth: 50,\r\n imageHeight: 50,\r\n confirmButtonText: this.translate.instant('swalMsg.I got it'),\r\n customClass: {\r\n actions: 'm-0 mt-5 justify-content-end',\r\n },\r\n });\r\n }\r\n Checkout() {\r\n this.dataLoading = true;\r\n if (localStorage.getItem('deviceId')) {\r\n this.CheckOutModel.deviceId = localStorage.getItem('deviceId');\r\n this.CheckOutModel.deviceType = localStorage.getItem('deviceType');\r\n }\r\n this.checkoutService.ResCheckOut(this.CheckOutModel)\r\n .subscribe(response => {\r\n this.dataLoading = false;\r\n if (response?.result?.success) {\r\n this.CheckOutResult = response;\r\n if (response.hasTips) {\r\n this.paymentConfirmation(response.tipValue, 'tip');\r\n } else {\r\n this.checkOutDone();\r\n }\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n }, error => {\r\n this.dataLoading = false;\r\n if (error.status == 400) {\r\n this.InSufficientValue(error.detail);\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n });\r\n }\r\n checkOutDone() {\r\n this.manualCash = false;\r\n this.paymentConfirmation(0, 'done');\r\n if (this.CheckOutResult?.isTotalyPaid) {\r\n this.close.emit(true);\r\n }\r\n this.checkoutService.refreshView.next(true);\r\n }\r\n\r\n getSelectedItems() {\r\n return this.details.splitItemList.filter((item: any) => item.active);\r\n }\r\n getSplitedItemsDetails() {\r\n this.closeSplit();\r\n this.CheckOutModel.checkOutType = CheckOutType.SplitItem;\r\n\r\n this.dataLoading = true;\r\n let splitItemList: any = [];\r\n this.getSelectedItems().forEach((item: any) => {\r\n splitItemList.push({\r\n reservationMenuItemId: item.id,\r\n splitQuantity: item.isWeight ? Number(item.quantity) : Number(item.splitQuantity || 1)\r\n })\r\n })\r\n let data = {\r\n orderId: this.orderId,\r\n splitItemList\r\n }\r\n this.CheckOutModel.splitItemList = splitItemList;\r\n this.checkoutService.ResCheckOutSplitItemsDetails(data)\r\n .subscribe(response => {\r\n this.dataLoading = false;\r\n this.splitedItemsDetails = response as CheckOutDetails;\r\n this.cashOptions = this.splitedItemsDetails.cashOptions;\r\n this.manualCachToPay = this.splitedItemsDetails.total;\r\n }, error => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n getSplitedPriceDetails(item: SplitByPrice) {\r\n this.closeSplit();\r\n this.details.splitPriceList.map(one => { one.payNow = false })\r\n item.payNow = true;\r\n\r\n this.CheckOutModel.checkOutType = CheckOutType.SplitPrice;\r\n this.CheckOutModel.splitPriceList = this.details.splitPriceList;\r\n\r\n this.dataLoading = true;\r\n let data = {\r\n orderId: this.orderId,\r\n splitAmount: item.priceAmount\r\n }\r\n this.checkoutService.ResCheckOutSplitPriceDetails(data)\r\n .subscribe(response => {\r\n this.dataLoading = false;\r\n this.splitedPricesDetails = response as CheckOutDetails;\r\n this.cashOptions = this.splitedPricesDetails.cashOptions;\r\n this.manualCachToPay = this.splitedPricesDetails.total;\r\n }, error => {\r\n this.dataLoading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n\r\n //////////////////////////////////////////////////////////////////////////\r\n checkoutIdRes: any;\r\n paymentWay = 'qrCode'; // qrCode || system\r\n selectedPaymentOpt!: Lookup | null;\r\n\r\n prepareCheckOut() {\r\n this.checkoutId = '';\r\n this.otherPaymnetFormGroup?.reset();\r\n\r\n this.details.paymentOptions.map(item => item.isUsed = false);\r\n\r\n if (!this.selectedPaymentOpt) return;\r\n this.selectedPaymentOpt.isUsed = true;\r\n\r\n this.CheckOutModel.paymentType = this.selectedPaymentOpt.lookupCode;\r\n this.CheckOutModel.paymentOptionsCode = this.selectedPaymentOpt.lookupCode;\r\n\r\n\r\n if (this.CheckOutModel.checkOutType == CheckOutType.Total) {\r\n this.CheckOutModel.paidAmount = this.details.toBePaid;\r\n }\r\n if (this.CheckOutModel.checkOutType == CheckOutType.SplitPrice) {\r\n this.CheckOutModel.paidAmount = this.splitedPricesDetails.total;\r\n }\r\n if (this.CheckOutModel.checkOutType == CheckOutType.SplitItem) {\r\n this.CheckOutModel.paidAmount = this.splitedItemsDetails.total;\r\n }\r\n\r\n if (localStorage.getItem('deviceId')) {\r\n this.CheckOutModel.deviceId = localStorage.getItem('deviceId');\r\n this.CheckOutModel.deviceType = localStorage.getItem('deviceType');\r\n }\r\n\r\n if (this.selectedPaymentOpt.lookupCode == 'HouseAccount') {\r\n this.paymentConfirmation(this.CheckOutModel.paidAmount, 'houseAccount');\r\n return;\r\n }\r\n\r\n if (this.selectedPaymentOpt.lookupCode == 'Other') {\r\n this.buildOtherPaymentForm();\r\n } else if (this.selectedPaymentOpt.lookupCode == 'NearPayNFC') {\r\n this.ResGetNFCSDK();\r\n } else {\r\n this.ResGetCheckoutId();\r\n }\r\n }\r\n\r\n ResGetCheckoutId() {\r\n this.paymentIframeLoader = true;\r\n this.actionLoading = true;\r\n let redirectUrl = window.location.origin;\r\n if (this.paymentWay == 'qrCode') {\r\n redirectUrl += '/pay?Type=Reservation';\r\n }\r\n if (this.paymentWay == 'system') {\r\n redirectUrl = window.location.href;\r\n if (redirectUrl.includes('?')) {\r\n redirectUrl += '&';\r\n } else {\r\n redirectUrl += '?';\r\n }\r\n redirectUrl += 'orderId=' + this.orderId;\r\n }\r\n this.CheckOutModel.CheckOutRedirectUrl = redirectUrl;\r\n this.CheckOutModel.paymentSourceType = this.paymentWay == 'qrCode' ? PaymentSourceTypeEnum.ClientQrCode : PaymentSourceTypeEnum.System;\r\n\r\n this.checkoutService.ResGetCheckoutId(this.CheckOutModel).subscribe(resp => {\r\n this.actionLoading = false;\r\n this.checkoutIdRes = resp;\r\n if (resp && resp.isSuccess && this.selectedPaymentOpt) {\r\n this.checkoutId = resp?.checkoutId;\r\n this.referencePaymentUrl = `./assets/paymentWidget.html?checkoutId=${this.checkoutId}&brand=${this.selectedPaymentOpt.lookupCode}&scriptUrl=${resp.url}`;\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: resp.message,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n setTimeout(() => { document.querySelector(\".pay-methods .active\")?.scrollIntoView() }, 100);\r\n }, err => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n // text: this.translate.instant('swalMsg.Transaction failed!'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n ResGetNFCSDK() {\r\n this.actionLoading = true;\r\n this.checkoutService.ResGetNFCSDK(this.CheckOutModel).subscribe(resp => {\r\n this.actionLoading = false;\r\n this.checkoutIdRes = resp;\r\n setTimeout(() => { document.querySelector(\".pay-methods .active\")?.scrollIntoView() }, 100);\r\n }, err => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: err.message,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n checkPaymentStatues() {\r\n if (this.CheckOutResult?.result.code == 1) {\r\n this.checkOutDone();\r\n } else {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.Transaction failed!'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n }\r\n this.setQueryParams(); // This will call get check out details after remove chackoutId param\r\n }\r\n checkPaymentStatues_() {\r\n this.actionLoading = true;\r\n this.checkoutService.ResGetCheckoutStatus(this.checkoutId).subscribe(resp => {\r\n this.actionLoading = false;\r\n this.CheckOutResult = resp;\r\n this.checkOutDone();\r\n this.setQueryParams(); // This will call get check out details after remove chackoutId param\r\n }, err => {\r\n this.actionLoading = false;\r\n this.setQueryParams();\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: this.translate.instant('swalMsg.Transaction failed!'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n });\r\n });\r\n }\r\n setQueryParams() {\r\n const rIndex = location.search.indexOf(\"&orderId\") || location.search.indexOf(\"?orderId\")\r\n const searchParams = location.search.substring(0, rIndex).replace('?', '');\r\n let queryParams = {};\r\n if (searchParams) {\r\n queryParams =\r\n JSON.parse(\r\n '{\"' + searchParams.replace(/&/g, '\",\"').replace(/=/g, '\":\"') + '\"}',\r\n function (key, value) { return key === \"\" ? value : decodeURIComponent(value) }\r\n );\r\n }\r\n this.router.navigate(\r\n [location.pathname],\r\n {\r\n relativeTo: this.activatedRoute,\r\n queryParams: queryParams\r\n });\r\n }\r\n closeCheckout() {\r\n this.setQueryParams();\r\n this.close.emit();\r\n }\r\n\r\n /*****************\r\n * Other payment form\r\n */\r\n otherPaymentFormLoader = false;\r\n buildOtherPaymentForm() {\r\n this.otherPaymnetFormGroup = this.formBuilder.group({\r\n otherPaymentOptionsId: [null, Validators.required],\r\n otherPaymentOptionsComment: [null, [\r\n // CustomValidator.noWhiteSpace,\r\n Validators.maxLength(400)\r\n ]],\r\n });\r\n }\r\n PaymnetFormError(controlName: string, errorName: string) {\r\n return this.otherPaymnetFormGroup.controls[controlName].hasError(errorName);\r\n }\r\n otherPaymentCheckout() {\r\n if (this.otherPaymnetFormGroup.valid) {\r\n this.CheckOutModel.otherPaymentOptionsId = this.otherPaymnetFormGroup.controls['otherPaymentOptionsId'].value;\r\n this.CheckOutModel.otherPaymentOptionsComment = this.otherPaymnetFormGroup.controls['otherPaymentOptionsComment'].value;\r\n this.otherPaymentFormLoader = true;\r\n this.Checkout();\r\n }\r\n }\r\n\r\n iOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform)\r\n // iPad on iOS 13 detection\r\n || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
{{'checkout.Check out' | translate}}
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n
{{'checkout.Cash Options' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{'checkout.Other Payment options' | translate}}
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n {{ 'placeOrder.Payment option' | translate }}\r\n \r\n \r\n {{option.name}}\r\n \r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n \r\n {{ 'placeOrder.Write a comment' | translate }}\r\n \r\n \r\n {{ 'forms.Required' | translate }}\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{'orders.Client' | translate}}\r\n {{'orders.System' | translate}}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n

{{\"orders.Please, Don't change payment option after the client scan Qr code\" | translate}}

\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n {{'checkout.Split by Price' | translate}}\r\n \r\n {{'checkout.Split by Item' | translate}}\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n \r\n

maxSplitPrice\">\r\n {{ 'forms.Invalid value' | translate }}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
{{'checkout.To Pay' | translate}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{currency.currencyCode}}\r\n {{item.priceAmount}}
\r\n
\r\n \r\n \r\n \r\n {{currency.currencyCode}}\r\n \r\n

\r\n {{ 'forms.Invalid' | translate }}\r\n

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

{{'checkout.Simply tap on the item(s) you want to pay.' | translate}}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
X{{item?.quantity}}
\r\n
\r\n
\r\n
\r\n {{item?.itemName}}\r\n \r\n {{'orders.Paid' | translate}} X{{item.splitedQuantity}}\r\n \r\n
\r\n
\r\n {{'orders.size' | translate}}:\r\n {{item?.sizeName}}\r\n
\r\n
\r\n
\r\n
{{addition.kdsName}}:
\r\n \r\n
{{one.name}}
\r\n
\r\n
\r\n
\r\n
{{variant.name}}:
\r\n \r\n
{{one.name}}
\r\n
\r\n
\r\n
\r\n
{{'orders.Note' | translate}}:
\r\n
{{item.specialRequest}}
\r\n
\r\n
\r\n
\r\n \r\n
1) && (item.splitedQuantity != item.quantity)\">\r\n \r\n \r\n {{'checkout.of' | translate}} {{item.quantity - item.splitedQuantity}} {{'checkout.selected' | translate}}\r\n
\r\n
\r\n\r\n
\r\n
1) && !item.isWeight\">\r\n {{currency.currencyCode}} {{item.oneQtnPrice}}\r\n
\r\n
\r\n {{currency.currencyCode}}\r\n {{item.totalItemprice}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CheckOutService } from '../CheckOut.service';\r\nimport { CheckOutActions } from '../CheckOutActions';\r\n\r\n@Component({\r\n selector: 'app-paid-list',\r\n templateUrl: './paid-list.component.html'\r\n})\r\nexport class PaidListComponent extends CheckOutActions implements OnInit {\r\n\r\n @Input() orderDetails!: any;\r\n printRecipt = false;\r\n printCheckOutId!: any;\r\n\r\n @Input() showActions = true;\r\n\r\n constructor(\r\n checkoutService: CheckOutService,\r\n translate: TranslateService,\r\n ) { super(checkoutService, translate) }\r\n\r\n ngOnInit(): void {\r\n // if (this.orderDetails) {\r\n // this.currentOrderId = this.orderDetails.orderId;\r\n // this.currency = this.orderDetails.currency;\r\n // }\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if (changes.orderDetails) {\r\n this.currentOrderId = this.orderDetails.orderId;\r\n this.currency = this.orderDetails.currency;\r\n }\r\n }\r\n\r\n printReady() {\r\n this.printRecipt = false;\r\n this.printCheckOutId = false;\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{'placeOrder.Closed by' | translate }}\r\n
\r\n
\r\n
\r\n \r\n {{orderDetails.closedBy.name | shortName}}\r\n \r\n \r\n
\r\n
\r\n
{{orderDetails.closedBy.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{'placeOrder.Closed' | translate}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{'placeOrder.Closed Date/Time' | translate }}
\r\n
{{orderDetails.closeDate | date:'d MMM, y - h:mm a'}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n {{'orders.Paid' | translate}}\r\n 1\">\r\n {{'checkout.Paid in split receipts' | translate: {no: orderDetails.paymentDetails.length} }}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{currency.currencyCode}}\r\n {{item.priceAmount}}\r\n \r\n
\r\n \r\n {{'checkout.Paid Cash' | translate}}\r\n ({{currency.currencyCode}} {{item.paidPrice}})\r\n \r\n \r\n {{'checkout.Paid by Card' | translate}}\r\n {{'checkout.Ends with' | translate: {no: item.cardLastNumbers} }}\r\n \r\n \r\n {{'orders.Paid by' | translate}} {{item.paymentOptionName}}\r\n ({{currency.currencyCode}} {{item.paidPrice}})\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n {{'orders.Paid by' | translate}}\r\n \r\n {{item.otherPaymentMethod.otherPaymentMethodsName}}\r\n
\r\n
\r\n {{item.otherPaymentMethod.otherPaymentMethodComment}}
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {{currency.currencyCode}}\r\n {{item.remainAmount}}\r\n \r\n
\r\n {{'checkout.Remaining (Change)' | translate}}\r\n
\r\n
\r\n\r\n \r\n \r\n {{currency.currencyCode}}\r\n {{item.tipsValue}}\r\n \r\n
\r\n {{'checkout.Added Tip' | translate}}\r\n
\r\n
\r\n\r\n
{{'checkout.No Tip Added' | translate}}
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
{{'checkout.Paid Items' | translate}}
\r\n
\r\n
\r\n
\r\n
\"\"
\r\n
\r\n {{x.itemName}} ({{x.sizeName}})\r\n x{{x.quantity}}\r\n
\r\n
\r\n
\r\n \r\n {{currency.currencyCode}}\r\n {{x.itemPrice}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n {{item.handledBy | shortName }}\r\n \r\n \r\n
\r\n
\r\n
\r\n {{'orders.Handled by' | translate }}\r\n
\r\n
\r\n {{item.handledBy}}\r\n \r\n ({{'general.You' | translate}})\r\n \r\n ({{'general.Paid via QR' | translate}})\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AnimationOptions } from 'ngx-lottie';\r\nimport { Currency } from 'src/app/models/Lookup';\r\nimport { CheckOutResult } from '../CheckOut.models';\r\nimport { PlaceOrderService } from 'src/app/features/place-order/services/placeOrder.service';\r\n\r\nexport interface DialogData {\r\n type: string // cash, tip, done, doneClient\r\n currency: Currency\r\n amount: number\r\n checkOutResult: CheckOutResult\r\n}\r\n\r\n@Component({\r\n selector: 'app-payment-confirmation',\r\n templateUrl: './payment-confirmation.component.html'\r\n})\r\nexport class PaymentConfirmationComponent implements OnInit {\r\n loading = false;\r\n options: AnimationOptions = {\r\n path: '/assets/js/done-animation.json',\r\n loop: false,\r\n };\r\n\r\n printLoading = false;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private service: PlaceOrderService\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n close(accept: any = false) {\r\n this.dialogRef.close({accept, checkOutResult: this.data.checkOutResult})\r\n }\r\n\r\n callPrinting(kitchenId: number) {\r\n this.loading = true;\r\n let data: any = {\r\n kitchenId: kitchenId,\r\n orderId: this.data.checkOutResult.orderId,\r\n kdsBonType: 'Add'\r\n }\r\n let isApp = false;\r\n if (localStorage.getItem('deviceId')) {\r\n isApp = true;\r\n data.deviceId = localStorage.getItem('deviceId');\r\n data.deviceType= localStorage.getItem('deviceType');\r\n }\r\n this.service.ResPrintOrderBon(data).subscribe((data: any) => {\r\n this.loading = false;\r\n if (!isApp) {\r\n setTimeout(() => { this.print(data.htmlContent); }, 500);\r\n }\r\n }, err => {\r\n console.log(err);\r\n })\r\n }\r\n\r\n print(html: string): void {\r\n const mywindow: any = window.open('', 'PRINT', 'height=600,width=700');\r\n mywindow.document.write(html);\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n}\r\n","
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n {{'checkout.Apply House Account payment?' | translate}}\r\n
\r\n
\r\n {{data.currency.currencyCode}} {{data.amount}}\r\n
\r\n
\r\n\r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n {{'checkout.Apply cash payment?' | translate}}\r\n
\r\n
\r\n {{data.currency.currencyCode}} {{data.amount}}\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n {{'checkout.Remaining (Change)' | translate}}\r\n
\r\n
\r\n {{data.currency.currencyCode}} {{data.amount}}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n {{'checkout.Transaction successfully done' | translate}}\r\n
\r\n\r\n
\r\n {{'checkout.Your Order ID' | translate}} : #{{data.checkOutResult.orderNumber}}\r\n
\r\n\r\n \r\n
\r\n {{'checkout.Remaining (Change)' | translate}}\r\n
\r\n
\r\n {{data.currency.currencyCode}} {{data.amount}}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

{{'placeOrder.Print KDS Order' | translate}}

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{\"orders.Track your order\" | translate}}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CheckOutDetails } from '../CheckOut.models';\r\nimport { CheckOutService } from '../CheckOut.service';\r\nimport { CheckOutActions } from '../CheckOutActions';\r\n\r\n@Component({\r\n selector: 'app-payment-details',\r\n templateUrl: './payment-details.component.html'\r\n})\r\nexport class PaymentDetailsComponent extends CheckOutActions implements OnInit {\r\n\r\n @Input() override currentOrderId!: number;\r\n @Input() restaurantId!: any;\r\n @Output() close = new EventEmitter();\r\n\r\n dataLoading = false;\r\n details!: CheckOutDetails;\r\n\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n constructor(\r\n checkoutService: CheckOutService,\r\n translate: TranslateService\r\n ) {\r\n super(checkoutService, translate)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.checkoutService.refreshView.pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data) => {\r\n this.getCheckoutDetails()\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next(null);\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getCheckoutDetails() {\r\n this.dataLoading = true;\r\n this.checkoutService.ResGetOrderPaymentById(this.currentOrderId)\r\n .subscribe( data => {\r\n this.dataLoading = false;\r\n this.details = data;\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
{{'orders.Payment Details' | translate}}
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, OnDestroy, EventEmitter } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription, Subject, takeUntil } from 'rxjs';\r\nimport { CheckOutService } from '../CheckOut.service';\r\nimport { CheckOutActions } from '../CheckOutActions';\r\nimport { SignalRService } from 'src/app/services/signalR/SignalR.service';\r\nimport { SignalEventType } from 'src/app/services/signalR/SignalModel';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-prices-details',\r\n templateUrl: './prices-details.component.html'\r\n})\r\nexport class PricesDetailsComponent extends CheckOutActions implements OnInit, OnDestroy {\r\n @Input() orderDetails!: any;\r\n @Input() priceListId!: any;\r\n @Input() checkoutType!: string;\r\n\r\n @Output() updateOrderPrices = new EventEmitter();\r\n\r\n pricesLoading = false;\r\n\r\n private unsubscribe$: Subject = new Subject();\r\n\r\n getPriceSubscriber!: Subscription\r\n\r\n hardReload = true;\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n checkoutService: CheckOutService,\r\n translate: TranslateService,\r\n private signal: SignalRService\r\n ) {\r\n super(checkoutService, translate)\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.updatePaymentSettings)\r\n .subscribe(message => { this.signalAction(message.data); })\r\n )\r\n }\r\n\r\n signalAction(data: any) {\r\n const restId = Number(localStorage.getItem('restaurantId'))\r\n if (\r\n restId && data.RestaurantId == restId\r\n && this.orderDetails?.orderItems?.length\r\n ) {\r\n this.hardReload = false;\r\n this.ResGetTotalPrice();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.orderDetails) {\r\n this.currentOrderId = this.orderDetails.orderId;\r\n this.currency = this.orderDetails.currency;\r\n }\r\n // cart refresh prices\r\n this.checkoutService.refreshPrices.pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data) => {\r\n if (data && this.orderDetails?.orderItems?.length) {\r\n this.ResGetTotalPrice();\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next(null);\r\n this.unsubscribe$.complete();\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n ResGetTotalPrice() {\r\n this.getPriceSubscriber?.unsubscribe();\r\n this.pricesLoading = true;\r\n let orderItems: any = [];\r\n this.orderDetails?.orderItems?.forEach((item: any) => {\r\n item.cartList.forEach((data: any) => {\r\n const orderItem = {\r\n specialRequest: data.specialRequest || null,\r\n quantity: Number(data.quantity),\r\n price: Number(data.netPrice), // for Is open price, when price entered manualy\r\n freeQuantity: data.freeQuantity ? Number(data.freeQuantity) : 0,\r\n menuItemId: data.menuItemId,\r\n restaurantSizeId: data.restaurantSizeId,\r\n unWantedOptionIngrediant: data.unWantedOptionalIngredients?.map((option: any) => option.id) || [],\r\n variantsOptions: data.variantsOptions || [],\r\n additionsOptions: data.additionsOptions || []\r\n }\r\n orderItems.push(orderItem)\r\n })\r\n })\r\n let data = {\r\n orderId: this.orderDetails?.orderId || 0,\r\n orderItems: orderItems,\r\n customerUserId: this.orderDetails.customer?.customerId,\r\n dicount: this.orderDetails.discount,\r\n surcharge: this.orderDetails.surcharge,\r\n reservationType: this.orderDetails.reservationType,\r\n priceListId: this.priceListId\r\n }\r\n this.orderDetails.itemsList = orderItems;\r\n this.getPriceSubscriber = this.checkoutService.ResGetTotalPrice(data)\r\n .subscribe(\r\n (res: any) => {\r\n this.pricesLoading = false;\r\n // delete res?.currency;\r\n Object.assign(this.orderDetails, res);\r\n this.currency = this.orderDetails.currency;\r\n this.updateOrderPrices.emit(this.orderDetails); // For takeaway prices\r\n }, error => {\r\n this.pricesLoading = false;\r\n this.orderDetails.discount = null;\r\n this.ResGetTotalPrice();\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n });\r\n }\r\n\r\n removeSurcharge() {\r\n if (this.orderDetails.reservationType == 'TakeAway') {\r\n this.orderDetails.surcharge = null;\r\n this.ResGetTotalPrice();\r\n } else {\r\n this.ResRemoveOrderSurcharge()\r\n }\r\n }\r\n removeDiscount() {\r\n if (this.orderDetails.reservationType == 'TakeAway') {\r\n this.orderDetails.discount = null;\r\n this.ResGetTotalPrice();\r\n } else {\r\n this.ResRemoveOrderDiscount()\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n

{{'checkout.Your share of order amount' | translate}}

\r\n
\r\n\r\n
\r\n
\r\n {{'content4.Subtotal' | translate }}\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.subTotal}}\r\n \r\n
\r\n\r\n
\r\n
\r\n {{'content2.Service' | translate }}\r\n ({{orderDetails.servicePercentage}}%)\r\n
\r\n
\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.serviceValue}}\r\n \r\n {{'placeOrder.Free' | translate}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{'placeOrder.Surcharge' | translate }}\r\n \r\n
\r\n \r\n +\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.surchargeValue}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {{'checkout.Reservation Deposit' | translate }}\r\n
\r\n \r\n -\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.deposit}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {{'checkout.Discounts' | translate }}\r\n \r\n ({{orderDetails.discountName ? orderDetails.discountName : ('placeOrder.Manual Discount'|translate)}})\r\n \r\n \r\n
\r\n \r\n -\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.discountValue}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n {{tax.taxName}}\r\n ({{tax.taxValue}}%)\r\n \r\n
\r\n
\r\n \r\n {{currency!.currencyCode}}\r\n {{tax.taxTotal}}\r\n \r\n {{'placeOrder.Free' | translate}}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{'placeOrder.Total' | translate }}\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.total}}\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {{'orders.Paid' | translate }}\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.paid}}\r\n \r\n
\r\n \r\n
\r\n
\r\n {{'checkout.To be Paid' | translate }}\r\n \r\n {{currency!.currencyCode}}\r\n {{orderDetails.toBePaid}}\r\n \r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DateFormatterService } from 'ngx-hijri-gregorian-datepicker';\r\nimport { DateStruct } from 'src/app/models/DatePickerModel';\r\n\r\n@Component({\r\n selector: 'app-datepicker',\r\n templateUrl: './datepicker.component.html'\r\n})\r\n\r\nexport class DatepickerComponent implements OnInit, OnChanges {\r\n @Input() label: string = this.translate.instant('forms.Date');\r\n @Input() formGroup: FormGroup = new FormGroup({});\r\n @Input() controlName!: string;\r\n @Input() isSubmitted!: boolean;\r\n @Input() required!: boolean;\r\n @Input() disabled!: boolean;\r\n @Input() min: any; // Date or DateStruct\r\n @Input() max: any; // Date or DateStruct\r\n @Input() invalidMsg!: string;\r\n @Input() showToday = true;\r\n @Input() isView = false;\r\n @Input() placement: string = 'auto';\r\n\r\n @Output() selectedDateChanged = new EventEmitter();\r\n @Output() ageValue = new EventEmitter();\r\n\r\n // date: NgbDate;\r\n isHijri!: boolean;\r\n @Input() selectedDate!: any; //DateStruct-- NgbDateStruct\r\n\r\n minDate!: {\r\n gregorian: NgbDateStruct,\r\n hijri: NgbDateStruct\r\n };\r\n maxDate!: {\r\n gregorian: NgbDateStruct,\r\n hijri: NgbDateStruct\r\n };\r\n\r\n today = this.calendar.getToday();\r\n isTouched = false;\r\n isToday = false;\r\n\r\n constructor(\r\n private calendar: NgbCalendar,\r\n private translate: TranslateService,\r\n private dateFormatterService: DateFormatterService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.min) { this.min = new Date('1/1/1938'); }\r\n // else { this.min = new Date(this.min); }\r\n if (this.max) { this.max = new Date(this.max); }\r\n this.setMinMax();\r\n\r\n this.isHijri = false;\r\n if (this.controlName && this.formGroup.controls[this.controlName].value) {\r\n this.selectedDate = this.tongbDate(this.formGroup.controls[this.controlName].value);\r\n }\r\n if (this.selectedDate) {\r\n this.selectedDate = this.tongbDate(this.selectedDate);\r\n this.setFieldControlValue();\r\n } else {\r\n this.selectedDate = new DateStruct();\r\n }\r\n if (this.controlName) {\r\n this.formGroup.controls[this.controlName].valueChanges.subscribe(value => {\r\n this.selectedDate = this.tongbDate(value);\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n let min = this.min; let max = this.max;\r\n // if (changes.min) { min = changes.min.currentValue; }\r\n // if (changes.max) { max = changes.max.currentValue; }\r\n this.setMinMax(min, max);\r\n this.ckechValid();\r\n }\r\n\r\n setMinMax(min = this.min, max = this.max) {\r\n min = this.tongbDate(min);\r\n max = this.tongbDate(max);\r\n this.minDate = {\r\n gregorian: (min && min.isHijri) ? this.dateFormatterService.ToGregorian(min) : min,\r\n hijri: (min && min.isHijri) ? min : this.dateFormatterService.ToHijri(min)\r\n };\r\n this.maxDate = {\r\n gregorian: (max && max.isHijri) ? this.dateFormatterService.ToGregorian(max) : max,\r\n hijri: (max && max.isHijri) ? max : this.dateFormatterService.ToHijri(max)\r\n };\r\n }\r\n\r\n ckechValid() {\r\n let ctrVal = this.formGroup.controls[this.controlName].value;\r\n if (ctrVal) {\r\n if (ctrVal.isHijri) { ctrVal = this.dateFormatterService.ToGregorian(ctrVal); }\r\n const date = new NgbDate(ctrVal.year, ctrVal.month, ctrVal.day);\r\n if (date.before(this.minDate.gregorian) || date.after(this.maxDate.gregorian)) {\r\n this.formGroup.controls[this.controlName].setErrors({invalid: true});\r\n } else {\r\n this.formGroup.controls[this.controlName].setErrors(null);\r\n }\r\n }\r\n }\r\n\r\n tongbDate(date: any) {\r\n if (typeof(date) === 'string') { date = new Date(date); }\r\n if (date instanceof Date && date.getTime()) {\r\n return { day: date.getUTCDate(), month: date.getUTCMonth() + 1, year: date.getUTCFullYear(), isHijri: false };\r\n } else {\r\n return date;\r\n }\r\n }\r\n\r\n changeDateType(isHijri: boolean) {\r\n if (this.isHijri !== isHijri) {\r\n this.isHijri = isHijri;\r\n\r\n if (this.selectedDate && this.selectedDate.day) {\r\n if (this.isHijri) {\r\n this.selectedDate = this.dateFormatterService.ToHijri(this.selectedDate);\r\n } else {\r\n this.selectedDate = this.dateFormatterService.ToGregorian(this.selectedDate);\r\n }\r\n this.setFieldControlValue();\r\n }\r\n this.ckechValid();\r\n }\r\n }\r\n\r\n setFieldControlValue() {\r\n if (this.selectedDate && this.selectedDate.day) {\r\n this.selectedDate.isHijri = this.isHijri;\r\n }\r\n if (this.controlName) {\r\n this.formGroup.controls[this.controlName].setValue(this.selectedDate);\r\n }\r\n\r\n this.selectedDateChanged.emit(this.selectedDate);\r\n this.calculateAge();\r\n }\r\n setDate(selected: DateStruct|null = null) {\r\n this.selectedDate = selected;\r\n this.setFieldControlValue();\r\n }\r\n hasError(errorName: string|null = null) {\r\n if (this.isSubmitted || this.isTouched) {\r\n if (this.controlName) {\r\n if (!errorName) { return this.formGroup.controls[this.controlName].invalid; }\r\n else { return this.formGroup.controls[this.controlName].hasError(errorName); }\r\n }\r\n else { return !this.selectedDate; }\r\n }\r\n return false;\r\n }\r\n calculateAge() {\r\n let currentDate = this.selectedDate;\r\n let Age = 0;\r\n if (currentDate) {\r\n if (this.isHijri) {\r\n currentDate = this.dateFormatterService.ToGregorian(this.selectedDate);\r\n }\r\n const birthday = new Date(currentDate.year, currentDate.month - 1, currentDate.day);\r\n const ageDifMs = Date.now() - birthday.getTime();\r\n const ageDate = new Date(ageDifMs);\r\n Age = Math.abs(ageDate.getUTCFullYear() - 1970);\r\n }\r\n this.ageValue.emit(Age);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n

\r\n {{ 'forms.Required' | translate }}\r\n

\r\n

\r\n {{ invalidMsg || ('forms.Invalid Date' | translate) }}\r\n

\r\n
\r\n\r\n
\r\n","import { Component, EventEmitter, Injectable, Input, OnInit, Output } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS_AR = ['إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت', 'أحد'];\r\nconst WEEKDAYS_EN = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\r\nconst MONTHS_AR = ['محرم', 'صفر', 'ربيع الأول', 'ربيع الآخر', 'جمادى الأولى', 'جمادى الآخرة', 'رجب', 'شعبان', 'رمضان', 'شوال', 'ذو القعدة', 'ذو الحجة'];\r\nconst MONTHS_EN = ['Muharram', 'Safar', 'Rabi\\'ul-Awwal', 'Rabi\\'ul-Akhir', 'Jumadal-Ula', 'Jumadal-Akhir', 'Rajab', 'Sha\\'ban', 'Ramadan', 'Syawwal', 'Dhul-Qa\\'da', 'Dhul-Hijja'];\r\nconst language = localStorage.getItem('language') || 'en';\r\nconst MONTHS = language === 'en' ? MONTHS_EN : MONTHS_AR;\r\nconst WEEKDAYS = language === 'en' ? WEEKDAYS_EN : WEEKDAYS_AR;\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n getWeekdayShortName(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-islamic-picker',\r\n templateUrl: './islamic-picker.component.html',\r\n providers: [\r\n {provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura},\r\n {provide: NgbDatepickerI18n, useClass: IslamicI18n}\r\n ]\r\n})\r\n\r\nexport class IslamicPickerComponent implements OnInit {\r\n selectedDate!: any;\r\n @Input() label!: string;\r\n @Input() disabled!: boolean;\r\n @Output() dateValueChange = new EventEmitter();\r\n @Input() set dateValue(value: any) {\r\n this.selectedDate = value;\r\n }\r\n @Input() minDate!: NgbDateStruct;\r\n @Input() maxDate!: NgbDateStruct;\r\n\r\n today = this.calendar.getToday();\r\n\r\n constructor(\r\n private calendar: NgbCalendar\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n setDate(selected: any = null) {\r\n this.selectedDate = selected;\r\n this.dateValueChange.emit(this.selectedDate);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AnimationOptions } from 'ngx-lottie';\r\n\r\n@Component({\r\n selector: 'empty-state',\r\n templateUrl: './empty-state.component.html',\r\n})\r\nexport class EmptyStateComponent implements OnInit {\r\n\r\n @Input() title: string = this.translate.instant('general.No Data Found');\r\n @Input() subTitle: string = '';\r\n @Input() desc: string = '';\r\n @Input() img: string = '';\r\n @Input() animationPath: string = '';\r\n @Input() custClass: string = '';\r\n options: AnimationOptions|null = null;\r\n\r\n constructor(private translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.options = {\r\n path: this.animationPath || '/assets/js/empty-state-animated.json',\r\n loop: false,\r\n };\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n\r\n \"\"\r\n\r\n

{{title}}

\r\n

{{subTitle}}

\r\n

{{desc}}

\r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-file-manager',\r\n templateUrl: './file-manager.component.html',\r\n})\r\nexport class FileManagerComponent implements OnInit {\r\n @Output() selectedFiles = new EventEmitter<[]>();\r\n @Output() deletedFilesList = new EventEmitter<[]>();\r\n\r\n @Input() files: any = [];\r\n @Input() docsEditable = true;\r\n @Input() maxFiles = 5;\r\n @Input() maxFileSize = 10;\r\n @Input() managerIndex: any = '0'; // For input id multi file manager in one view\r\n @Input() label!: string;\r\n @Input() isRequired = false;\r\n @Input() isSubmitted = false;\r\n @Input() isDisabled = false;\r\n @Input() cols = 1;\r\n\r\n @Input() allowedExt: any[] = [\r\n 'pdf',\r\n 'jpeg',\r\n 'jpg',\r\n 'png',\r\n 'doc',\r\n 'docx',\r\n 'wpd',\r\n 'tex',\r\n 'ppt',\r\n 'pptx',\r\n 'xlsx',\r\n 'xls',\r\n 'zip',\r\n 'rar',\r\n ];\r\n\r\n @Input() renderBtn = false;\r\n // Uploader\r\n @Input() isUploader = false;\r\n @Input() uplodaerType = 0;\r\n loading = false;\r\n uploadedFilesArr: any = [];\r\n\r\n /////\r\n selectedfilesCount = 0;\r\n deletedFiles: any = [];\r\n validFile = true;\r\n fileMaxSiZeErorr = false;\r\n fileMaxNameSiZeErorr = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.files.map((file: any) => {\r\n file.name = file.filePath\r\n });\r\n // if (this.files.length && this.isUploader) {\r\n // this.files.forEach(file => {\r\n // this.uploadedFilesArr.push({\r\n // fileName: file.name,\r\n // fileUpload: file.token\r\n // });\r\n // });\r\n // this.selectedFiles.emit(this.uploadedFilesArr);\r\n // }\r\n }\r\n\r\n validFileType(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n const extensionUpper = fileName.split('.').pop()?.toUpperCase();\r\n\r\n if (!(this.allowedExt.includes(extension) || this.allowedExt.includes(extensionUpper))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileExt(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'pdf':\r\n return 'pdf';\r\n case 'jpeg':\r\n case 'jpg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n case 'doc':\r\n case 'docx':\r\n case 'wpd':\r\n case 'tex':\r\n return 'doc';\r\n case 'xlsx':\r\n case 'xls':\r\n return 'xls';\r\n case 'zip':\r\n case 'rar':\r\n return 'zip';\r\n case 'ppt':\r\n case 'pptx':\r\n return 'pptx';\r\n case 'mp4':\r\n case 'mpg':\r\n return 'video';\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event: any) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(event: any) {\r\n this.prepareFilesList(event.target.files);\r\n event.target.value = '';\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number, id: any) {\r\n if (id) {\r\n this.deletedFiles.push(id);\r\n }\r\n\r\n const deleted = this.files[index];\r\n this.files.splice(index, 1);\r\n\r\n if (this.isUploader) {\r\n const deletedIndx = this.uploadedFilesArr.findIndex((item: any) => item.fileUpload === deleted.token);\r\n this.uploadedFilesArr.splice(deletedIndx, 1);\r\n this.selectedFiles.emit(this.uploadedFilesArr);\r\n } else {\r\n this.selectedFiles.emit(this.files);\r\n this.deletedFilesList.emit(this.deletedFiles);\r\n }\r\n this.selectedfilesCount = this.files.length;\r\n }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array) {\r\n const filesToUpload = [];\r\n this.validFile = true;\r\n this.selectedfilesCount = this.files.length + files.length;\r\n if (this.selectedfilesCount > this.maxFiles) {\r\n return;\r\n }\r\n for (const item of files) {\r\n if (this.validFileType(item.name)) {\r\n this.validFile = true;\r\n } else {\r\n this.validFile = false;\r\n }\r\n\r\n // Check file and push to array files\r\n if (item.size / (1024 * 1024) <= this.maxFileSize && this.validFileType(item.name)) {\r\n item.fileType = this.fileExt(item.name);\r\n this.files.push(item);\r\n filesToUpload.push(item);\r\n\r\n if (this.isUploader) {\r\n this.uploadFile(filesToUpload);\r\n } else {\r\n this.selectedFiles.emit(this.files);\r\n }\r\n\r\n if (item.size / (1024 * 1024) <= this.maxFileSize) {\r\n this.fileMaxSiZeErorr = false;\r\n }\r\n } else {\r\n if (item.size / (1024 * 1024) > this.maxFileSize) {\r\n this.fileMaxSiZeErorr = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes: number, decimals = 2) {\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals || 2;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n uploadFile(files: any) {\r\n this.loading = true;\r\n this.isDisabled = true;\r\n // this.service.upload_file(files, this.uplodaerType).subscribe(\r\n // (response) => {\r\n // this.loading = false;\r\n // this.Disapled = false;\r\n // this.uploadedFilesArr.push(response.data);\r\n // this.selectedFiles.emit(this.uploadedFilesArr);\r\n // },\r\n // (err) => {\r\n // this.loading = false;\r\n // this.Disapled = false;\r\n // }\r\n // );\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n

{{ label ? label : ('fileManager.Drag and drop' | translate) }}

\r\n
\r\n {{ (label ? 'fileManager.Or' : 'fileManager.Supporting Extensions here Or') | translate }}\r\n \r\n
\r\n
\r\n {{\"fileManager.Supported Formats:\" | translate}}\r\n \r\n {{allowedExt}}\r\n \r\n \r\n PDF, DOC, JPG, and PNG\r\n
\r\n \r\n
\r\n \r\n
maxFiles && maxFiles > 1\" class=\"has-error\">\r\n {{ 'fileManager.Maximum allowed files is' | translate: { maxFiles: maxFiles } }}\r\n
\r\n
maxFiles && maxFiles === 1\" class=\"has-error\">\r\n {{ 'fileManager.Only One File is allowed' | translate }}\r\n
\r\n
{{\"fileManager.Invalid File Extensions\" | translate}}
\r\n
{{ \"fileManager.Max File Size\" | translate: { maxFileSize: maxFileSize } }}
\r\n
\r\n
\r\n {{\"forms.Required\" | translate}}\r\n
\r\n
\r\n

{{\"fileManager.No Files\" | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n {{ formatBytes(file?.size) }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, inject } from '@angular/core';\r\nimport { ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-cropper-dialog',\r\n templateUrl: './cropper-dialog.component.html',\r\n})\r\nexport class CropperDialogComponent {\r\n data: {\r\n image: File;\r\n ratio: number;\r\n } = inject(MAT_DIALOG_DATA);\r\n result!: any;\r\n showCropper = false;\r\n scale = 1;\r\n transform: ImageTransform = {\r\n translateUnit: 'px'\r\n };\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef\r\n ) { }\r\n\r\n imageLoaded() {\r\n this.showCropper = true;\r\n }\r\n imageCropped(event: ImageCroppedEvent) {\r\n this.result = event;\r\n }\r\n\r\n zoomOut() {\r\n this.scale -= .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n saveImage() {\r\n this.dialogRef.close(this.result);\r\n }\r\n}\r\n","
\r\n

{{\"general.Crop Image\" | translate}}

\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CropperDialogComponent } from './cropper-dialog/cropper-dialog.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\r\n\r\n@Component({\r\n selector: 'app-image-control',\r\n templateUrl: './image-control.component.html'\r\n})\r\nexport class ImageControlComponent implements OnInit {\r\n\r\n @Input() ratio = 1 / 1;\r\n @Input() src!: any;\r\n @Output() imageReady = new EventEmitter<{ blob: Blob, src: string }>();\r\n\r\n @Input() maxSize = 2;\r\n fileErrors = {\r\n type: false,\r\n size: false\r\n };\r\n @Output() errors = new EventEmitter();\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private sanitizer: DomSanitizer\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n fileSelected(event: any) {\r\n const file = event.target?.files[0];\r\n if (file && this.validateFile(file)) {\r\n const dialogRef = this.dialog.open(CropperDialogComponent, {\r\n data: { image: file, ratio: this.ratio },\r\n width: '600px',\r\n });\r\n dialogRef.afterClosed().subscribe((result: ImageCroppedEvent) => {\r\n if (result && result.blob) {\r\n this.src =\r\n this.sanitizer.bypassSecurityTrustUrl(result.objectUrl || result.base64 || '');\r\n let file: any = result.blob;\r\n file.name = 'image.png';\r\n this.imageReady.emit({ blob: file, src: this.src });\r\n }\r\n });\r\n }\r\n this.errors.emit(this.fileErrors);\r\n }\r\n\r\n validateFile(file: File): any {\r\n if (this.fileType(file.name)) {\r\n this.fileErrors.type = false;\r\n if ((file.size / (1024 * 1024)) <= this.maxSize) {\r\n this.fileErrors.size = false;\r\n } else {\r\n this.fileErrors.size = true;\r\n return false;\r\n }\r\n } else {\r\n this.fileErrors.type = true;\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileType(fileName: string): any {\r\n const extension = fileName.split('.')?.pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'jpeg':\r\n case 'jpg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Currency } from 'src/app/models/Lookup';\r\nimport Swal from 'sweetalert2';\r\nimport { ValueTypeEnum } from '../check-out/CheckOut.models';\r\n\r\n@Component({\r\n selector: 'app-num-keypad',\r\n templateUrl: './num-keypad.component.html'\r\n})\r\nexport class NumKeypadComponent implements OnInit {\r\n @Input() title!: string;\r\n @Input() hasPercentage: boolean = false;\r\n @Input() min!: number;\r\n @Input() maxLength = 7;\r\n @Input() currency!: Currency;\r\n @Output() close = new EventEmitter();\r\n\r\n valueType = 'Value'; // ValueTypeEnum\r\n @Input() value: any = '';\r\n initClear = false;\r\n canClose = true;\r\n\r\n maxPercentageValue = 100;\r\n constructor(private translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n this.value = String(this.value)\r\n if (this.value) {\r\n this.initClear = true;\r\n }\r\n }\r\n\r\n counter(i: number) { return new Array(i); }\r\n\r\n hasPoint(): boolean {\r\n return this.value.includes('.');\r\n }\r\n\r\n\r\n keyClicked(v: any) {\r\n this.canClose = false;\r\n if (this.initClear) {\r\n this.value = '';\r\n this.initClear = false;\r\n }\r\n let hasPoint = this.hasPoint();\r\n // if (this.value.length > this.maxLength) { return }\r\n if (hasPoint && v == '.') { return }\r\n if (v == '0' && this.value == '0') { return }\r\n\r\n if (!hasPoint && (this.value.length >= this.maxLength) && v != '.') { return }\r\n if (hasPoint && (this.value.split('.')[1].length == 2)) { return }\r\n\r\n // if (!Number(this.value)) { this.value = '' }\r\n if (!this.value && v == '0') {\r\n this.value = '';\r\n } else if (!this.value && v == '.') {\r\n this.value = 0 + '.';\r\n } else {\r\n this.value = this.value + String(v);\r\n }\r\n }\r\n\r\n okClicked(e: any = null) {\r\n if (e) { e.preventDefault() }\r\n if (this.value && (this.value.slice(-1) !== '.')\r\n && Number(this.value)\r\n && (this.valueType == 'Percentage' && Number(this.value) <= this.maxPercentageValue\r\n || this.valueType != 'Percentage')) {\r\n this.close.emit({ value: this.value, valueType: this.valueType })\r\n } else {\r\n this.invalidAlert()\r\n }\r\n }\r\n\r\n validateValue() {\r\n let valArr = this.value.split('.');\r\n if ((valArr[0].length > 7) || (valArr[1].length > 2)) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Warning'),\r\n text: this.translate.instant('swalMsg.YouShouldAddValidValue'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n }\r\n }\r\n\r\n invalidAlert() {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Warning'),\r\n text: this.translate.instant('swalMsg.YouShouldAddValidValue'),\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n }).then((result) => {\r\n this.value = '';\r\n });\r\n }\r\n\r\n clear() {\r\n this.value = '';\r\n }\r\n\r\n closeNumKeyPad() {\r\n if (!this.canClose) {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.are you sure you want to discard all the changes'),\r\n text: '',\r\n icon: 'question',\r\n showCancelButton: true,\r\n confirmButtonText: this.translate.instant('swalMsg.Yes'),\r\n cancelButtonText: this.translate.instant('swalMsg.No'),\r\n }).then((result) => {\r\n if (result.value) {\r\n this.value = '';\r\n this.close.emit();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n } else {\r\n this.close.emit()\r\n }\r\n }\r\n\r\n @HostListener('window:keydown', ['$event']) onKeyDown(e: KeyboardEvent) {\r\n if (\r\n e.key == '.'\r\n || e.key == '0'\r\n || e.key == '1'\r\n || e.key == '2'\r\n || e.key == '3'\r\n || e.key == '4'\r\n || e.key == '5'\r\n || e.key == '6'\r\n || e.key == '7'\r\n || e.key == '8'\r\n || e.key == '9'\r\n ) {\r\n this.keyClicked(e.key)\r\n }\r\n if (e.key == 'Enter') {\r\n this.okClicked(e);\r\n }\r\n if (e.keyCode == 8 || e.keyCode == 46) {\r\n this.value = this.value.substring(0, this.value.length - 1);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
{{title}}
\r\n\r\n \r\n
\r\n\r\n
\r\n
{{value}}
\r\n
\r\n
{{currency.currencyCode}}
\r\n
%
\r\n
\r\n\r\n
\r\n
\r\n \r\n
{{10-i}}
\r\n
\r\n
.
\r\n
0
\r\n
\r\n
\r\n
C
\r\n
OK
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-paging',\r\n templateUrl: './paging.component.html'\r\n})\r\nexport class PagingComponent implements OnInit {\r\n\r\n @Input() pageIndex: number = 0;\r\n @Input() pageCount: number = 0;\r\n @Output() page = new EventEmitter();\r\n\r\n startPage = 0;\r\n endPage = 0;\r\n @Input() maxPages = 5\r\n pages: number[] = [];\r\n\r\n lang = 'en'; // localStorage.getItem('language') || 'en';\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.paginate();\r\n }\r\n\r\n paginate() {\r\n let totalPages = this.pageCount;\r\n let currentPage = this.pageIndex;\r\n let maxPages = this.maxPages;\r\n\r\n if (currentPage < 0) {\r\n currentPage = 0;\r\n } else if (currentPage > totalPages) {\r\n currentPage = totalPages;\r\n }\r\n\r\n if (totalPages <= maxPages) {\r\n // total pages less than max so show all pages\r\n this.startPage = 0;\r\n this.endPage = totalPages;\r\n } else {\r\n // total pages more than max so calculate start and end pages\r\n let maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);\r\n let maxPagesAfterCurrentPage = Math.ceil(maxPages / 2);\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n // current page near the start\r\n this.startPage = 0;\r\n this.endPage = maxPages;\r\n } else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\r\n // current page near the end\r\n this.startPage = totalPages - maxPages;\r\n this.endPage = totalPages;\r\n } else {\r\n // current page somewhere in the middle\r\n this.startPage = currentPage - maxPagesBeforeCurrentPage;\r\n this.endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n this.pages = Array.from(Array(this.endPage - this.startPage).keys()).map(i => this.startPage + i);\r\n }\r\n}\r\n","
1\">\n \n
\n","import { ChangeDetectorRef, Component, Input, Output, OnInit, EventEmitter } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Countries } from 'src/app/models/Lookup';\r\nimport { LookupsService } from 'src/app/services/lookups.service';\r\n\r\n@Component({\r\n selector: 'app-phone-number',\r\n templateUrl: './phone-number.component.html'\r\n})\r\nexport class PhoneNumberComponent implements OnInit {\r\n @Input() formGroup: FormGroup = new FormGroup({});\r\n @Input() controlName!: string;\r\n @Input() isSubmitted!: boolean;\r\n @Input() required = false;\r\n @Input() disabled!: boolean;\r\n @Input() minLength: number = 5;\r\n @Input() maxLength: number = 15;\r\n @Input() label = this.translate.instant('forms.Phone number');\r\n\r\n @Input() selectedCountry!: number | any;\r\n phoneCountryId!: number | any;\r\n @Input() phoneNumberValue!: any;\r\n\r\n @Input() isCleared = false;\r\n @Input() loading = false;\r\n @Output() valueChanged = new EventEmitter();\r\n @Output() valueRemoved = new EventEmitter();\r\n\r\n isTouched!: boolean;\r\n\r\n countryLoading = false;\r\n countryList: Countries[] = []\r\n\r\n countryListAllCodes: any = []\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n public translate: TranslateService,\r\n public lookupService: LookupsService\r\n ) { }\r\n ngAfterViewChecked() {\r\n //your code to update the model\r\n this.cdr.detectChanges();\r\n }\r\n ngOnInit(): void {\r\n this.getAllCountries();\r\n\r\n if (this.controlName && this.formGroup.controls[this.controlName].value) {\r\n this.phoneNumberValue = this.formGroup.controls[this.controlName].value;\r\n this.phoneCountryId = this.selectedCountry;\r\n this.formGroup.controls[this.controlName].setValue(null);\r\n }\r\n\r\n this.formGroup.controls[this.controlName].valueChanges.subscribe((data) => {\r\n setTimeout(() => {\r\n let ctr = this.formGroup.controls[this.controlName];\r\n let ctrVal = { countryId: 0, number: '', changed: false };\r\n this.loading = false;\r\n if (data) {\r\n if (typeof ctr.value == 'object') {\r\n ctrVal.number = ctr.value.number;\r\n ctrVal.countryId = Number(ctr.value.countryCode);\r\n } else {\r\n ctrVal.number = ctr.value;\r\n ctrVal.countryId = Number(this.selectedCountry);\r\n ctrVal.changed = true;\r\n }\r\n } else {\r\n ctrVal.number = '';\r\n ctrVal.countryId = this.countryList.find(x => x.isdefault)?.id || this.countryList[0].id;\r\n }\r\n\r\n this.phoneNumberValue = ctrVal.number;\r\n this.phoneCountryId = ctrVal.countryId;\r\n\r\n if (ctrVal.changed) {\r\n this.setFieldControlValue();\r\n }\r\n }, 100);\r\n })\r\n }\r\n ngOnChanges(changes: any): void {\r\n if (changes.required) {\r\n this.validateNumber();\r\n }\r\n }\r\n\r\n getAllCountries() {\r\n this.countryLoading = true;\r\n this.lookupService.getCountries().subscribe((data: any) => {\r\n this.countryLoading = false\r\n this.countryList = data;\r\n\r\n if (!this.phoneCountryId) {\r\n this.phoneCountryId = this.countryList.find(x => x.isdefault)?.id || this.countryList[0].id;\r\n this.setFieldControlValue();\r\n } else {\r\n this.phoneCountryId = this.countryList.find(x => x.id == Number(this.selectedCountry))?.id;\r\n this.setFieldControlValue();\r\n }\r\n }, (err: any) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n validateNumber() {\r\n if (this.phoneNumberValue?.length) {\r\n if (this.phoneNumberValue.length > this.maxLength\r\n || this.phoneNumberValue.length < this.minLength\r\n || !this.phoneCountryId) {\r\n this.formGroup.controls[this.controlName].setErrors({ 'invalid': true })\r\n } else {\r\n this.formGroup.controls[this.controlName].setErrors(null)\r\n }\r\n } else {\r\n if (this.required) {\r\n this.formGroup.controls[this.controlName].setErrors({ 'required': true })\r\n }\r\n if (!this.required) {\r\n // this.formGroup.controls[this.controlName].setErrors({ 'required': false })\r\n this.formGroup.controls[this.controlName].setErrors(null)\r\n }\r\n }\r\n }\r\n\r\n setFieldControlValue() {\r\n this.validateNumber();\r\n if (this.formGroup.controls[this.controlName].valid) {\r\n if (this.phoneCountryId || this.phoneNumberValue) {\r\n this.formGroup.controls[this.controlName].setValue({\r\n number: this.phoneNumberValue,\r\n countryCode: this.phoneCountryId,\r\n dialCode: this.countryList.find(x => x.id == Number(this.phoneCountryId))?.countryKey\r\n });\r\n }\r\n }\r\n // this.phoneValueChanged();\r\n }\r\n\r\n hasError(errorName: string) {\r\n if (this.isSubmitted || this.isTouched) {\r\n if (this.phoneCountryId || this.phoneNumberValue) {\r\n if (!errorName) { return this.formGroup.controls[this.controlName].invalid; }\r\n else { return this.formGroup.controls[this.controlName].hasError(errorName); }\r\n }\r\n else {\r\n if (this.required && (!this.phoneCountryId || !this.phoneNumberValue)) {\r\n return true\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n phoneValueChanged(event: any = null) {\r\n if (event && !event.id) { event.preventDefault(); }\r\n if (this.phoneNumberValue) {\r\n this.valueChanged.emit(true)\r\n }\r\n }\r\n modelChanged() {\r\n // this.validateNumber();\r\n // this.formGroup.controls[this.controlName].setValue({\r\n // number: this.phoneNumberValue,\r\n // countryCode: this.phoneCountryId,\r\n // dialCode: this.countryList.find(x => x.id == Number(this.phoneCountryId))?.countryKey\r\n // });\r\n this.valueRemoved.emit(true);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\"\"
\r\n {{item.countryKey }}\r\n
\r\n \r\n \r\n \"\"\r\n {{item.name}}\r\n {{item.countryKey }}\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n \r\n
\r\n

\r\n {{ 'forms.Required' | translate }}\r\n

\r\n

\r\n {{ 'forms.Invalid value' | translate }}\r\n

\r\n
\r\n\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FileThumbObj, FileThumbType } from 'src/app/models/Lookup';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'app-photo-manager',\r\n templateUrl: './photo-manager.component.html',\r\n})\r\nexport class PhotoManagerComponent implements OnInit {\r\n @Output() selectedFiles = new EventEmitter<[]>();\r\n @Output() deletedFilesList = new EventEmitter<[]>();\r\n\r\n @Input() files: any = [];\r\n @Input() docsEditable = true;\r\n @Input() maxFiles = 5;\r\n @Input() maxFileSize = 10;\r\n @Input() managerIndex: any = '0'; // For input id multi file manager in one view\r\n @Input() label!: string;\r\n @Input() isRequired = false;\r\n @Input() isSubmitted = false;\r\n @Input() isDisabled = false;\r\n @Input() cols = 1;\r\n\r\n @Input() allowedExt: any[] = ['jpeg', 'jpg', 'png'];\r\n\r\n @Input() renderBtn = false;\r\n // Uploader\r\n @Input() isUploader = false;\r\n @Input() uplodaerType = 0;\r\n loading = false;\r\n uploadedFilesArr: any = [];\r\n\r\n /////\r\n selectedfilesCount = 0;\r\n deletedFiles: any = [];\r\n validFile = true;\r\n fileMaxSiZeErorr = false;\r\n fileMaxNameSiZeErorr = false;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n validFileType(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n const extensionUpper = fileName.split('.').pop()?.toUpperCase();\r\n\r\n if (!(this.allowedExt.includes(extension) || this.allowedExt.includes(extensionUpper))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileExt(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'jpeg':\r\n case 'jpg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event: any) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(event: any) {\r\n this.prepareFilesList(event.target.files);\r\n event.target.value = '';\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number, id: any) {\r\n if (id) {\r\n this.deletedFiles.push(id);\r\n }\r\n this.files.splice(index, 1);\r\n\r\n this.selectedFiles.emit(this.files);\r\n this.deletedFilesList.emit(this.deletedFiles);\r\n\r\n this.selectedfilesCount = this.files.length;\r\n }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array) {\r\n this.validFile = true;\r\n this.selectedfilesCount = this.files.length + files.length;\r\n if (this.selectedfilesCount > this.maxFiles) {\r\n return;\r\n }\r\n for (const item of files) {\r\n if (this.validFileType(item.name)) {\r\n this.validFile = true;\r\n } else {\r\n this.validFile = false;\r\n }\r\n\r\n // Check file and push to array files\r\n if (item.size / (1024 * 1024) <= this.maxFileSize && this.validFileType(item.name)) {\r\n item.fileType = this.fileExt(item.name);\r\n\r\n let fileObj = {\r\n file: item,\r\n thumbStr: '',\r\n thumb: null,\r\n thumbType: FileThumbType.Generated\r\n } as FileThumbObj;\r\n\r\n const myReader: FileReader = new FileReader();\r\n myReader.readAsDataURL(item);\r\n myReader.onloadend = (e) => {\r\n this.generateThumbnail(myReader.result as string).then(thumb => {\r\n fileObj.thumbStr = thumb\r\n fileObj.thumb = this.dataURItoBlob(thumb)\r\n });\r\n }\r\n\r\n this.files.push(fileObj);\r\n this.selectedFiles.emit(this.files);\r\n\r\n if (item.size / (1024 * 1024) <= this.maxFileSize) {\r\n this.fileMaxSiZeErorr = false;\r\n }\r\n } else {\r\n if (item.size / (1024 * 1024) > this.maxFileSize) {\r\n this.fileMaxSiZeErorr = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes: number, decimals = 2) {\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals || 2;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n public generateThumbnail(img: string): Promise {\r\n const canvas: HTMLCanvasElement = this.document.createElement('canvas');\r\n const context: CanvasRenderingContext2D | null = canvas.getContext('2d');\r\n\r\n return new Promise((resolve, reject) => {\r\n canvas.addEventListener('error', reject);\r\n let image = new Image();\r\n image.src = img;\r\n\r\n image.onload = function() {\r\n\r\n\r\n let thumbnailMaxWidth = 300;\r\n let thumbnailMaxHeight = 200;\r\n\r\n let thumbnailScale =\r\n (image.width / image.height) > (thumbnailMaxWidth / thumbnailMaxHeight)\r\n ? thumbnailMaxWidth / image.width : thumbnailMaxHeight / image.height;\r\n // thumbnailScale = 0.5;\r\n let thumbnailWidth = image.width * thumbnailScale;\r\n let thumbnailHeight = image.height * thumbnailScale;\r\n\r\n canvas.width = thumbnailWidth;\r\n canvas.height = thumbnailHeight;\r\n\r\n context?.drawImage(image, 0, 0, thumbnailWidth, thumbnailHeight);\r\n resolve(canvas.toDataURL('image/jpeg'));\r\n };\r\n });\r\n }\r\n dataURItoBlob(dataURI: string) {\r\n dataURI = dataURI.replace('data:image/jpeg;base64,', '');\r\n const byteString = window.atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([int8Array], { type: 'image/jpeg' });\r\n const imageBlob: Blob = blob;\r\n const imageName: string = \"thumb.jpeg\";\r\n const imageFile: File = new File([imageBlob], imageName, {\r\n type: \"image/jpeg\"\r\n });\r\n return imageFile;\r\n }\r\n\r\n //////////////////////////////////////////////////////////////////////\r\n //////////////////////////////////////////////////////////////////////\r\n\r\n // File preview with validation\r\n changeThumbListener($event: any, index: number): void {\r\n const file: File = $event.target.files[0];\r\n if (file && this.validateFile(file, index)) {\r\n this.readThis(file, index);\r\n this.files[index].thumb = file;\r\n this.files[index].thumbType = FileThumbType.Uploaded;\r\n }\r\n }\r\n readThis(file: File, index: number): void {\r\n const myReader: FileReader = new FileReader();\r\n myReader.readAsDataURL(file);\r\n myReader.onloadend = (e) => {\r\n this.files[index].thumbStr = myReader.result as string;\r\n };\r\n }\r\n validateFile(file: File, index: number): any {\r\n if (this.fileType(file.name)) {\r\n // this.fileTypeError = false;\r\n if ((file.size / (1024 * 1024)) <= 1) {\r\n // this.fileSizeError = false;\r\n } else {\r\n // this.fileSizeError = true;\r\n Swal.fire({\r\n icon: 'error',\r\n text: this.translate.instant('forms.Max-file-size') + ' 1' + this.translate.instant('forms.MB')\r\n })\r\n return false;\r\n }\r\n } else {\r\n // this.fileTypeError = true;\r\n Swal.fire({\r\n icon: 'error',\r\n text: this.translate.instant('forms.InvalidFile')\r\n })\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileType(fileName: string): any {\r\n const extension = fileName.split('.')?.pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'jpeg':\r\n case 'jpg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n

{{ label ? label : ('fileManager.Drag and drop' | translate) }}

\r\n
\r\n {{ (label ? 'fileManager.Or' : 'fileManager.Supporting Extensions here Or') | translate }}\r\n \r\n
\r\n
\r\n {{\"fileManager.Supported Formats:\" | translate}}\r\n {{allowedExt}}\r\n
\r\n {{ \"fileManager.Max File Size\" | translate: { maxFileSize: maxFileSize } }}\r\n
\r\n\r\n
maxFiles && maxFiles > 1\" class=\"has-error\">\r\n {{ 'fileManager.Maximum allowed files is' | translate: { maxFiles: maxFiles } }}\r\n
\r\n
maxFiles && maxFiles === 1\" class=\"has-error\">\r\n {{ 'fileManager.Only One File is allowed' | translate }}\r\n
\r\n
{{\"fileManager.Invalid File Extensions\" | translate}}
\r\n
{{ \"fileManager.Max File Size\" | translate: { maxFileSize: maxFileSize } }}
\r\n
\r\n
\r\n {{\"forms.Required\" | translate}}\r\n
\r\n
\r\n

{{\"fileManager.No Files\" | translate}}

\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ formatBytes(file.file?.size) }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n","import { Component, Input, Output, OnInit, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ReceiptSections, ReceiptConfigEnum } from 'src/app/features/settings/models/receipt';\r\nimport { CheckOutService } from '../check-out/CheckOut.service';\r\n\r\n@Component({\r\n selector: 'app-receipt',\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './receipt.component.html'\r\n})\r\nexport class ReceiptComponent implements OnInit {\r\n loading = false;\r\n @Input() sections!: ReceiptSections[];\r\n @Input() logo!: string;\r\n @Input() resDetails!: any;\r\n\r\n @Input() orderId!: number;\r\n @Input() checkOutId!: number;\r\n\r\n @Output() isReady = new EventEmitter();\r\n\r\n config: any = {}\r\n orderDetails: any = {\r\n restaurantName: 'Karam Beirut',\r\n restaurantAddress: 'Bin Awwal، Prince Turki Ibn Abdulaziz Al Awwal Rd, Al Mohammadiyyah, Riyadh 11564',\r\n orderNumber: 18567,\r\n tableName: 'D-54',\r\n waiterName: 'Ahmed Samir',\r\n customerName: 'Omar Tarek',\r\n partySize: 3,\r\n orderId: 1238,\r\n subTotal: 500,\r\n serviceValue: 0,\r\n taxValue: 0,\r\n discountName: '',\r\n discountValue: 500,\r\n surchargeValue: 10,\r\n total: 500,\r\n currency: {},\r\n restaurantVatNumber: '11.111.111/0001-55',\r\n reciptQrCode: '',\r\n orderItems: [\r\n {\r\n itemName: 'Grilled Jumbo Shrimps',\r\n sizeName: 'Regular',\r\n quantity: 1,\r\n price: 77,\r\n totalItemprice: 77,\r\n },\r\n {\r\n itemName: 'Grilled Jumbo Shrimps',\r\n sizeName: 'Regular',\r\n quantity: 1,\r\n price: 77,\r\n totalItemprice: 77,\r\n },\r\n ]\r\n };\r\n paymentDetails = {\r\n priceAmount: 9.25,\r\n paidPrice: 290,\r\n remainAmount: 0.75,\r\n tipsValue: 0.75,\r\n checkOutType: 'SplitPrice',\r\n paymentOption: 'Cash',\r\n paymentOptionName: 'Cash',\r\n cardLastNumbers: '',\r\n isPortion: true,\r\n reservationOrderSelectedItems: null,\r\n canAddTip: false,\r\n isPaid: true,\r\n paidAt: new Date(),\r\n priceDetails: {\r\n subTotal: 500,\r\n serviceValue: 10,\r\n taxValue: 0,\r\n discountName: '',\r\n discountValue: 500,\r\n surchargeValue: 10,\r\n total: 500,\r\n deposit: 0\r\n }\r\n };\r\n\r\n constructor(\r\n private service: CheckOutService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.sections) {\r\n this.setConfig();\r\n this.orderDetails.restaurantName = this.resDetails.restaurantName\r\n this.orderDetails.restaurantAddress = this.resDetails.restaurantAddress\r\n } else if (this.orderId) {\r\n this.callPrinting();\r\n }\r\n }\r\n\r\n setConfig() {\r\n this.sections.forEach(section => {\r\n section.receiptFields.forEach(element => {\r\n this.config[element.lookUpCode] = {}\r\n this.config[element.lookUpCode].isActive = element.isActive\r\n this.config[element.lookUpCode].value = element.fieldValue\r\n })\r\n });\r\n }\r\n\r\n callPrinting() {\r\n if (localStorage.getItem('deviceId')) {\r\n this.MobileRecipt();\r\n } else {\r\n this.getReceiptConfgDetails();\r\n }\r\n }\r\n\r\n getReceiptConfgDetails() {\r\n this.loading = true;\r\n this.service.ResGetCheckOutRecipt(this.orderId, this.checkOutId).subscribe((data: any) => {\r\n this.orderDetails = data.orderDetails;\r\n this.paymentDetails = data.paymentDetails;\r\n this.sections = data.receiptConfig;\r\n this.setConfig();\r\n this.loading = false;\r\n setTimeout(() => { this.print(data.htmlContent); }, 1000);\r\n })\r\n }\r\n MobileRecipt() {\r\n this.loading = true;\r\n let data: any = {\r\n OrderId: this.orderId,\r\n deviceId: localStorage.getItem('deviceId'),\r\n deviceType: localStorage.getItem('deviceType'),\r\n };\r\n // if (this.checkOutId) {\r\n // data.CheckOutId = this.checkOutId;\r\n // }\r\n this.service.prentrest(data).subscribe(data => {\r\n this.loading = false;\r\n this.isReady.emit(true);\r\n }, err => {\r\n this.loading = false;\r\n this.isReady.emit(true);\r\n });\r\n }\r\n\r\n getField(code: ReceiptConfigEnum) {\r\n let field: any;\r\n this.sections.forEach((section: any) => {\r\n if (!field) {\r\n section.receiptFields.forEach((element: any) => {\r\n if (!field) {\r\n if (element.lookUpCode == code) {\r\n field = element;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n return field;\r\n }\r\n\r\n print(html: string): void {\r\n const basicUrl = location.origin;\r\n let style = basicUrl + '/assets/scss/print.css';\r\n let dir = 'rtl';\r\n const mywindow: any = window.open('', 'PRINT', 'height=1000,width=700');\r\n mywindow.document.write(html);\r\n // mywindow.document.write('\\\r\n // \\\r\n // \\\r\n // \\\r\n // \\\r\n // \\\r\n // ' + document.title + '');\r\n // mywindow.document.write('');\r\n // mywindow.document.write(document.getElementById(\"reciept-print\")?.innerHTML);\r\n // mywindow.document.write('');\r\n this.isReady.emit(true)\r\n\r\n mywindow.document.close();\r\n mywindow.focus();\r\n\r\n mywindow.onload = () => {\r\n mywindow.print();\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

فاتورة ضريبية

\r\n
\r\n \"\"\r\n
\r\n
\r\n {{orderDetails.restaurantName}}\r\n
\r\n
\r\n {{orderDetails.restaurantAddress}}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n الرقم الضريبي: {{orderDetails.restaurantVatNumber}}
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n رقم الطلب #{{orderDetails.orderNumber}}
\r\n
\r\n
\r\n رقم الفاتورة #{{orderDetails.orderId}}
\r\n
\r\n\r\n
\r\n \r\n {{paymentDetails.paidAt | date:'y-MM-d, h:mm:ss a'}}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n رقم الطاولة: \r\n {{orderDetails.tableName}}\r\n \r\n النادل: \r\n {{orderDetails.waiterName}}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n اسم الضيف: \r\n {{orderDetails.customerName}}\r\n \r\n عدد الضيوف: \r\n {{orderDetails.partySize}}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
الكميةالعناصرالسعرالمجموع
\r\n {{item.quantity}}\r\n
({{item.freeQuantity}} مجاني)
\r\n
{{item.itemName}} ({{item.sizeName}}){{item.price}}{{item.totalItemprice}}
{{o.name}}
{{i.name}}{{i.price}}
{{o.name}}
{{i.name}}{{i.price}}
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
تكلفة إضافية+{{paymentDetails.priceDetails.surchargeValue}} {{orderDetails.currency?.currencyCode}}
خصم-{{paymentDetails.priceDetails.discountValue}} {{orderDetails.currency?.currencyCode}}
إيداع الحجز-{{paymentDetails.priceDetails.deposit}} {{orderDetails.currency?.currencyCode}}
ضريبة القيمة المضافة{{paymentDetails.priceDetails.taxValue}} {{orderDetails.currency?.currencyCode}}
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
المجموع شامل ضريبة القيمة المضافة:{{paymentDetails.priceDetails.subTotal}} {{orderDetails.currency?.currencyCode}}
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
قيمة الخدمة\r\n {{paymentDetails.priceDetails.serviceValue}} {{orderDetails.currency?.currencyCode}}\r\n
الإجمالي{{paymentDetails.priceDetails.total}} {{orderDetails.currency?.currencyCode}}
\r\n\r\n
\r\n هذا جزء من إجمالي مبلغ الطلب.\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
طريقة الدفعالمدفوع
نقديبطاقة (تنتهي بـ ** {{paymentDetails.cardLastNumbers}}){{paymentDetails.paymentOptionName}}{{paymentDetails.paidPrice}} {{orderDetails.currency?.currencyCode}}
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \"\"\r\n
\r\n

{{ config.Note.value }}

\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { AttendenceComponent } from 'src/app/features/auth/attendance/attendence.component';\r\nimport { RestaurantService } from 'src/app/features/restaurants/services/Restaurant.service';\r\nimport { Requiredaction, UserRest } from 'src/app/models/auth/user';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { SignalEventType } from 'src/app/services/signalR/SignalModel';\r\nimport { SignalRService } from 'src/app/services/signalR/SignalR.service';\r\n\r\n@Component({\r\n selector: 'app-restaurants-dropdown',\r\n templateUrl: './restaurants-dropdown.component.html'\r\n})\r\nexport class RestaurantsDropdownComponent implements OnInit {\r\n\r\n dataLoading = true;\r\n // Restaurant ID\r\n @Input() restaurantId?: any;\r\n @Input() hideLabel = false;\r\n allRestaurants: UserRest[] = [];\r\n\r\n @Output() all = new EventEmitter();\r\n @Output() isChanged = new EventEmitter();\r\n\r\n currentRest!: UserRest | undefined;\r\n newRest!: UserRest | undefined;\r\n\r\n listSubscription!: Subscription;\r\n subscriptions: Subscription[] = [];\r\n\r\n actionsPermissions!: any;\r\n\r\n constructor(\r\n private restaurantService: RestaurantService,\r\n private authenticationService: AuthenticationService,\r\n public dialog: MatDialog,\r\n private signal: SignalRService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.restaurantId) {\r\n localStorage.setItem('restaurantId', this.restaurantId)\r\n } else {\r\n this.restaurantId = localStorage.getItem('restaurantId');\r\n }\r\n this.subscriptions.push(\r\n this.signal.getDataStream(SignalEventType.AttandanceFeature)\r\n .subscribe(message => { this.updateList(message.data); })\r\n )\r\n\r\n this.GetRestaurants();\r\n this.actionsPermissions = this.authenticationService.currentActionsPermissions;\r\n this.authenticationService.actionsPermissions.subscribe((data: any) => {\r\n this.actionsPermissions = data;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n updateList(data: any) {\r\n if (this.allRestaurants.some(r => r.id == data.RestaurantId)) {\r\n this.GetRestaurants(false);\r\n }\r\n }\r\n /** Get All Restaurants for Selection dropdown */\r\n GetRestaurants(sendOutput = true) {\r\n this.listSubscription?.unsubscribe();\r\n this.dataLoading = true;\r\n this.listSubscription = this.restaurantService.GetOwneRestaurant().subscribe((data: any) => {\r\n this.dataLoading = false;\r\n this.allRestaurants = data.pageData;\r\n let localStorageRestaurantValue = localStorage.getItem('restaurantId');\r\n if (localStorageRestaurantValue) {\r\n this.restaurantId = localStorageRestaurantValue\r\n } else {\r\n this.restaurantId = this.allRestaurants[0].id\r\n localStorage.setItem('restaurantId', this.restaurantId)\r\n }\r\n if (this.restaurantId && sendOutput) {\r\n this.all.emit(this.restaurantId)\r\n }\r\n this.currentRest = this.allRestaurants.find(r => r.id == this.restaurantId);\r\n let user = this.authenticationService.currentUserValue;\r\n if (user) {\r\n user.owneRestaurant = this.allRestaurants;\r\n this.authenticationService.currentUserSubject.next(user);\r\n }\r\n })\r\n }\r\n\r\n\r\n getSelectedRestaurant(restaurantId: any) {\r\n this.newRest = this.allRestaurants.find(r => r.id == restaurantId);\r\n\r\n // CurrentRest\r\n if (\r\n this.currentRest?.attendancefeature\r\n && this.currentRest?.requiredaction != Requiredaction.NoAction\r\n ) {\r\n if (this.currentRest?.requiredaction == Requiredaction.ClockOut) {\r\n this.openAttendenceDialog(this.currentRest.id, Requiredaction.ClockOut);\r\n }\r\n if (this.currentRest?.requiredaction == Requiredaction.ClockIn) {\r\n this.openAttendenceDialog(this.currentRest.id, Requiredaction.ClockIn);\r\n }\r\n }\r\n\r\n // NewRest\r\n if (\r\n this.newRest?.attendancefeature\r\n && this.newRest?.requiredaction != Requiredaction.NoAction\r\n ) {\r\n if (this.newRest?.requiredaction == Requiredaction.ClockOut) {\r\n this.openAttendenceDialog(this.newRest.id, Requiredaction.ClockOut);\r\n }\r\n if (this.newRest?.requiredaction == Requiredaction.ClockIn) {\r\n this.openAttendenceDialog(this.newRest.id, Requiredaction.ClockIn);\r\n }\r\n }\r\n\r\n\r\n if (\r\n !(\r\n this.currentRest?.attendancefeature\r\n && this.currentRest?.requiredaction != Requiredaction.NoAction\r\n )\r\n &&\r\n !(\r\n this.newRest?.attendancefeature\r\n && this.newRest?.requiredaction != Requiredaction.NoAction\r\n )\r\n ) {\r\n this.setCurrentRest();\r\n }\r\n\r\n this.authenticationService.updateActionsPermissions.next(true);\r\n }\r\n\r\n openAttendenceDialog(restaurantId: number, action: Requiredaction) {\r\n const dialogRef = this.dialog.open(AttendenceComponent, {\r\n width: '400px',\r\n data: { action, restaurantId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (action == Requiredaction.ClockOut) {\r\n // After ClockOut Need to ClockIn\r\n // if (this.newRest) {\r\n // this.openAttendenceDialog(this.newRest?.id, Requiredaction.ClockIn);\r\n // }\r\n } else {\r\n this.GetRestaurants(false);\r\n this.setCurrentRest();\r\n }\r\n } else {\r\n this.restaurantId = this.currentRest?.id;\r\n }\r\n });\r\n }\r\n\r\n setCurrentRest() {\r\n this.currentRest = this.allRestaurants.find(r => r.id == this.newRest?.id);\r\n localStorage.setItem('restaurantId', String(this.newRest?.id))\r\n this.isChanged.emit(true);\r\n this.all.emit(this.newRest?.id);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { LOCALE_ID, NgModule } from '@angular/core';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeAr from '@angular/common/locales/ar';\r\nregisterLocaleData(localeAr);\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { environment } from 'src/environments/environment';\r\nimport { EmptyStateComponent } from './empty-state/empty-state.component';\r\n\r\n// Helpers\r\nimport { MaterialModule } from 'src/app/helpers/material-modules';\r\nimport { DndDirective } from 'src/app/helpers/dnd.directive';\r\nimport { SanitizeHtmlPipePipe } from 'src/app/helpers/sanitize-html-pipe.pipe';\r\nimport { ShortNamePipe } from 'src/app/helpers/short-name.pipe';\r\nimport { PrintDirective } from 'src/app/helpers/print.directive';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RecaptchaModule, RecaptchaSettings, RECAPTCHA_LANGUAGE, RECAPTCHA_SETTINGS } from 'ng-recaptcha';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DropDownDirective } from '../helpers/drop-down.directive';\r\nimport { LottieModule } from 'ngx-lottie';\r\nimport player from 'lottie-web';\r\nimport { TreeSelectionComponent } from './tree-selection/tree-selection.component';\r\nimport { SideSheetComponent } from './side-sheet/side-sheet.component';\r\nimport { NgxIntlTelInputModule } from 'ngx-intl-tel-input';\r\nimport { OnlynumberDirective } from '../helpers/onlynumber.directive';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { CustomPaginator } from '../helpers/CustomPaginatorConfiguration';\r\nimport { DatepickerComponent } from './datepicker/datepicker.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { IslamicPickerComponent } from './datepicker/islamic-picker/islamic-picker.component';\r\nimport { NgxHijriGregorianDatepickerModule } from 'ngx-hijri-gregorian-datepicker';\r\nimport { DateModelPipe } from '../helpers/DateModelTime.pipe';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { DirtyCheckGuard } from '../helpers/CanDeactivate/dirty-check.guard';\r\nimport { LightgalleryModule } from 'lightgallery/angular';\r\nimport { FileManagerComponent } from './file-manager/file-manager.component';\r\nimport { InView } from '../helpers/in-view.directive';\r\nimport { PhoneNumberComponent } from './phone-number/phone-number.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { NgSelectFormFieldControlDirective } from '../helpers/ng-select.directive';\r\nimport { PagingComponent } from './paging/paging.component';\r\nimport { VideoManagerComponent } from './video-manager/video-manager.component';\r\nimport { PhotoManagerComponent } from './photo-manager/photo-manager.component';\r\nimport { TagsSelectorSearchComponent } from './tags-selector-search/tags-selector-search.component';\r\nimport { RestaurantsDropdownComponent } from './restaurants-dropdown/restaurants-dropdown.component';\r\nimport { FloorViewerComponent } from '../features/reservations/components/floor-viewer/floor-viewer.component';\r\nimport { ServersComponent } from '../features/reservations/components/servers/servers.component';\r\nimport { WastedMenuItemFormComponent } from './wasted-menu-item-form/wasted-menu-item-form.component';\r\nimport { PaymentDetailsComponent } from './check-out/payment-details/payment-details.component';\r\n\r\nimport { CheckOutComponent } from 'src/app/shared/check-out/check-out.component';\r\nimport { NumKeypadComponent } from 'src/app/shared/num-keypad/num-keypad.component';\r\nimport { PaymentConfirmationComponent } from 'src/app/shared/check-out/payment-confirmation/payment-confirmation.component';\r\nimport { PricesDetailsComponent } from 'src/app/shared/check-out/prices-details/prices-details.component';\r\nimport { PaidListComponent } from './check-out/paid-list/paid-list.component';\r\nimport { ReceiptComponent } from './receipt/receipt.component';\r\nimport { ReservationDetailsComponent } from '../features/reservations/components/details/reservation.details.component';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { SafePipe } from '../helpers/SafePipe';\r\nimport { TimeAgoPipe } from '../helpers/time-ago.pipe';\r\nimport { AllFloorsViewerComponent } from '../features/reservations/components/all-floors-viewer/all-floors-viewer.component';\r\nimport { ImageControlComponent } from './image-control/image-control.component';\r\nimport { CropperDialogComponent } from './image-control/cropper-dialog/cropper-dialog.component';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { CartGuestFormComponent } from '../features/place-order/components/cart-guest-form/cart-guest-form.component';\r\nimport { NgxMatDatetimePickerModule, NgxMatNativeDateModule } from '@angular-material-components/datetime-picker';\r\nimport { AutoResizeDirective } from '../helpers/auto-resize.directive';\r\n\r\nexport function playerFactory() {\r\n return player;\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n // Directives\r\n DndDirective,\r\n PrintDirective,\r\n OnlynumberDirective,\r\n InView,\r\n NgSelectFormFieldControlDirective,\r\n AutoResizeDirective,\r\n\r\n // Pipes\r\n ShortNamePipe,\r\n // FilterPipe,\r\n // DateTimeMergePipe,\r\n DropDownDirective,\r\n DateModelPipe,\r\n TimeAgoPipe,\r\n\r\n //Components\r\n EmptyStateComponent,\r\n TreeSelectionComponent,\r\n SideSheetComponent,\r\n DatepickerComponent,\r\n IslamicPickerComponent,\r\n FileManagerComponent,\r\n VideoManagerComponent,\r\n PhotoManagerComponent,\r\n PhoneNumberComponent,\r\n PagingComponent,\r\n TagsSelectorSearchComponent,\r\n RestaurantsDropdownComponent,\r\n FloorViewerComponent,\r\n AllFloorsViewerComponent,\r\n ServersComponent,\r\n WastedMenuItemFormComponent,\r\n ReservationDetailsComponent,\r\n\r\n //checkout\r\n CheckOutComponent,\r\n NumKeypadComponent,\r\n PaymentConfirmationComponent,\r\n PaymentDetailsComponent,\r\n PricesDetailsComponent,\r\n PaidListComponent,\r\n ReceiptComponent,\r\n ImageControlComponent,\r\n CropperDialogComponent,\r\n CartGuestFormComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n InfiniteScrollModule,\r\n TranslateModule.forChild({}),\r\n ReactiveFormsModule,\r\n FormsModule,\r\n RecaptchaModule,\r\n LottieModule.forRoot({ player: playerFactory }),\r\n NgxIntlTelInputModule,\r\n NgbModule,\r\n NgxHijriGregorianDatepickerModule,\r\n NgxMaterialTimepickerModule,\r\n LightgalleryModule,\r\n NgSelectModule,\r\n RouterModule,\r\n SanitizeHtmlPipePipe,\r\n SafePipe,\r\n ImageCropperModule,\r\n NgxMatDatetimePickerModule,\r\n NgxMatNativeDateModule\r\n ],\r\n exports: [\r\n MaterialModule,\r\n SanitizeHtmlPipePipe,\r\n DndDirective,\r\n ShortNamePipe,\r\n PrintDirective,\r\n AutoResizeDirective,\r\n // FilterPipe,\r\n // DateTimeMergePipe,\r\n DropDownDirective,\r\n DateModelPipe,\r\n TimeAgoPipe,\r\n SafePipe,\r\n OnlynumberDirective,\r\n InView,\r\n InfiniteScrollModule,\r\n EmptyStateComponent,\r\n TreeSelectionComponent,\r\n SideSheetComponent,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n RecaptchaModule,\r\n LottieModule,\r\n NgxIntlTelInputModule,\r\n NgbModule,\r\n DatepickerComponent,\r\n IslamicPickerComponent,\r\n NgxHijriGregorianDatepickerModule,\r\n NgxMaterialTimepickerModule,\r\n LightgalleryModule,\r\n FileManagerComponent,\r\n VideoManagerComponent,\r\n PhotoManagerComponent,\r\n PhoneNumberComponent,\r\n NgSelectModule,\r\n NgSelectFormFieldControlDirective,\r\n PagingComponent,\r\n TagsSelectorSearchComponent,\r\n RestaurantsDropdownComponent,\r\n FloorViewerComponent,\r\n AllFloorsViewerComponent,\r\n ServersComponent,\r\n WastedMenuItemFormComponent,\r\n\r\n ReservationDetailsComponent,\r\n RouterModule,\r\n NgxMatDatetimePickerModule,\r\n NgxMatNativeDateModule,\r\n\r\n //checkout\r\n CheckOutComponent,\r\n NumKeypadComponent,\r\n PaymentConfirmationComponent,\r\n PaymentDetailsComponent,\r\n PricesDetailsComponent,\r\n PaidListComponent,\r\n ReceiptComponent,\r\n ImageControlComponent,\r\n CropperDialogComponent,\r\n CartGuestFormComponent,\r\n ],\r\n providers: [\r\n DirtyCheckGuard,\r\n // {provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: {duration: 3000}},\r\n { provide: MatPaginatorIntl, useValue: CustomPaginator() },\r\n // { provide: NgxMatDateAdapter, useClass: CustomNgxMatDateAdapter },\r\n // { provide: NGX_MAT_DATE_FORMATS, useValue: APP_NGX_MAT_DATE_FORMATS }, // Use this instead of MAT_DATE_FORMATS\r\n { provide: LOCALE_ID, useValue: localStorage.getItem('language') || 'en' },\r\n {\r\n provide: RECAPTCHA_SETTINGS,\r\n useValue: {\r\n siteKey: environment.googleSiteKey,\r\n useValue: localStorage.getItem('language') || 'en'\r\n } as RecaptchaSettings,\r\n },\r\n {\r\n provide: RECAPTCHA_SETTINGS,\r\n useValue: { siteKey: environment.googleSiteKey } as RecaptchaSettings,\r\n },\r\n {\r\n provide: RECAPTCHA_LANGUAGE,\r\n useFactory: (locale: string) => locale,\r\n deps: [LOCALE_ID],\r\n }\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-side-sheet',\r\n templateUrl: './side-sheet.component.html'\r\n})\r\nexport class SideSheetComponent implements OnInit {\r\n @Input() open!: boolean;\r\n @Output() close = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\nimport { map, Observable, startWith } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-tags-selector-search',\r\n templateUrl: './tags-selector-search.component.html'\r\n})\r\nexport class TagsSelectorSearchComponent implements OnInit {\r\n @Input() loading = true;\r\n @Input() isRequired = false;\r\n @Input() disabled = false;\r\n @Input() isSubmitted = false;\r\n @Input() list: Lookup[] = [];\r\n @Input() label!: string;\r\n @Output() selectedItems = new EventEmitter();\r\n\r\n searchCtr = new FormControl('');\r\n filteredList!: Observable;\r\n @Input() selectedList: Lookup[] = [];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['loading']?.currentValue == false) {\r\n this.initListFiltiration();\r\n }\r\n if (changes['isSubmitted']?.currentValue && this.isRequired) {\r\n this.hasError();\r\n }\r\n }\r\n\r\n initListFiltiration() {\r\n this.filteredList = this.searchCtr.valueChanges.pipe(\r\n startWith(''),\r\n map(value => {\r\n const name = typeof value === 'string' ? value : value?.name;\r\n return name ? this._filter(name as string) : this.list?.slice();\r\n }),\r\n );\r\n }\r\n displayFn(item: Lookup): string {\r\n return item && item.name ? item.name : '';\r\n }\r\n private _filter(name: string): Lookup[] {\r\n const filterValue = name.toLowerCase();\r\n return this.list.filter(item => item.name.toLowerCase().includes(filterValue));\r\n }\r\n selected(value: Lookup) {\r\n if (!this.isSelected(value)) {\r\n this.selectedList.push(value);\r\n } else {\r\n let index = this.selectedList.findIndex(item => item.id === value.id)\r\n if (index >= 0) {\r\n this.selectedList.splice(index, 1);\r\n }\r\n }\r\n this.searchCtr.setValue('');\r\n this.selectedItems.emit(this.selectedList);\r\n }\r\n removeSelected(i: number) {\r\n this.selectedList.splice(i, 1);\r\n this.selectedItems.emit(this.selectedList);\r\n }\r\n isSelected(v: Lookup) {\r\n return this.selectedList.some(item => item.id === v.id)\r\n }\r\n\r\n hasError() {\r\n if (!this.selectedList.length && this.isRequired) {\r\n this.searchCtr.setErrors({required: true});\r\n } else {\r\n this.searchCtr.setErrors(null);\r\n }\r\n this.searchCtr.markAsTouched()\r\n }\r\n}\r\n","\n {{label}}\n\n \n\n \n \n
\n \n {{item.name}}\n \n
\n
\n
\n\n \n {{ 'forms.Required' | translate }}\n \n
\n\n
\n
    \n
  • \n {{item.name}}\n ×\n
  • \n
\n
\n","import { Component, OnInit, Injectable, EventEmitter, Output, Input, SimpleChanges } from '@angular/core';\r\nimport {SelectionModel} from '@angular/cdk/collections';\r\nimport {FlatTreeControl} from '@angular/cdk/tree';\r\nimport {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree';\r\n\r\nexport class Lookup {\r\n id!: number;\r\n name!: string;\r\n childs!: Lookup[];\r\n level!: number;\r\n expandable!: boolean;\r\n isActive!: boolean;\r\n}\r\n\r\n/** Flat to-do item node with expandable and level information */\r\nexport class TodoItemFlatNode {\r\n id!: number;\r\n name!: string;\r\n item!: string;\r\n childs!: Lookup[];\r\n level!: number;\r\n expandable!: boolean;\r\n isActive!: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-tree-selection',\r\n templateUrl: './tree-selection.component.html'\r\n})\r\nexport class TreeSelectionComponent implements OnInit {\r\n\r\n @Input() isView = false;\r\n @Input() TREE_DATA: Lookup[] = [];\r\n @Input() selected: Lookup[] = [];\r\n @Input() isSubmitted = false;\r\n @Input() isRequired = false;\r\n @Input() searchText!: string;\r\n\r\n @Output() selectedItems = new EventEmitter();\r\n\r\n /** Map from flat node to nested node. This helps us finding the nested node to be modified */\r\n flatNodeMap = new Map();\r\n\r\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\r\n nestedNodeMap = new Map();\r\n\r\n /** A selected parent node to be inserted */\r\n selectedParent: TodoItemFlatNode | null = null;\r\n\r\n /** The new item's name */\r\n newItemName = '';\r\n\r\n treeControl: FlatTreeControl;\r\n\r\n treeFlattener: MatTreeFlattener;\r\n\r\n dataSource: MatTreeFlatDataSource;\r\n\r\n\r\n /** The selection for checklist */\r\n checklistSelection = new SelectionModel(true /* multiple */);\r\n\r\n\r\n\r\n constructor() {\r\n this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel,\r\n this.isExpandable, this.getChildren);\r\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\r\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.TREE_DATA && this.TREE_DATA.length){\r\n this.dataSource.data = this.TREE_DATA;\r\n this.treeControl.dataNodes.forEach((item: TodoItemFlatNode) => {\r\n this.childsR(item);\r\n });\r\n }\r\n // if(this.selected && this.selected.length){\r\n // setTimeout(() => {\r\n // if(this.treeControl && this.treeControl.dataNodes && this.treeControl.dataNodes.length){\r\n // this.treeControl.dataNodes.forEach((parent: any) => {\r\n // this.childsRP(parent);\r\n // });\r\n // }\r\n // }, 100);\r\n // }\r\n }\r\n\r\n childsR(item: any) {\r\n if (item.childs && item.childs.length) {\r\n item.childs.forEach((element: any) => {\r\n if (element.childs && element.childs.length) {\r\n this.childsR(element);\r\n }\r\n });\r\n } else {\r\n if (item.isActive) {\r\n this.todoLeafItemSelectionToggle(item);\r\n }\r\n }\r\n this.selectedItem();\r\n }\r\n\r\n // childsRP(parent: any) {\r\n // if (parent.childs && parent.childs.length) {\r\n // parent.childs.forEach((element: any) => {\r\n // if (element.childs && element.childs.length) {\r\n // this.childsR(element);\r\n // }\r\n // });\r\n // } else {\r\n // const itemFound = this.selected.find((item: any) => parent.id === item.id);\r\n // if (itemFound) {\r\n // this.todoLeafItemSelectionToggle(parent);\r\n // }\r\n // }\r\n // }\r\n\r\n searchNodes() {\r\n this.treeControl.dataNodes.forEach((item: TodoItemFlatNode) => {\r\n this.childsR(item);\r\n });\r\n }\r\n\r\n getLevel = (node: TodoItemFlatNode) => node.level;\r\n\r\n isExpandable = (node: TodoItemFlatNode) => node.expandable;\r\n\r\n getChildren = (node: Lookup): Lookup[] => node.childs!;\r\n\r\n hasChild = (_: number, _nodeData: TodoItemFlatNode) => _nodeData.expandable;\r\n\r\n hasError() {\r\n return this.isRequired && this.isSubmitted && !this.selected.length\r\n }\r\n /**\r\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\r\n */\r\n transformer = (node: Lookup, level: number) => {\r\n const existingNode = this.nestedNodeMap.get(node);\r\n const flatNode = existingNode && existingNode.name === node.name\r\n ? existingNode\r\n : new TodoItemFlatNode();\r\n node.level = level;\r\n node.expandable = !!node.childs?.length;\r\n\r\n flatNode.id = node.id;\r\n flatNode.level = level;\r\n flatNode.expandable = !!node.childs?.length;\r\n flatNode.childs = (node.childs && node.childs.length) ? node.childs : [];\r\n flatNode.name = node.name!;\r\n flatNode.isActive = node.isActive!;\r\n this.flatNodeMap.set(flatNode, node);\r\n this.nestedNodeMap.set(node, flatNode);\r\n return flatNode;\r\n }\r\n\r\n\r\n /** Whether all the descendants of the node are selected. */\r\n descendantsAllSelected(node: TodoItemFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.length > 0 && descendants.every(child => {\r\n return this.checklistSelection.isSelected(child);\r\n });\r\n return descAllSelected;\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: TodoItemFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(node: TodoItemFlatNode): void {\r\n this.checklistSelection.toggle(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n this.checklistSelection.isSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n // Force update for the parent\r\n descendants.forEach(child => this.checklistSelection.isSelected(child));\r\n this.checkAllParentsSelection(node);\r\n\r\n this.selectedItem();\r\n }\r\n\r\n /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */\r\n todoLeafItemSelectionToggle(node: TodoItemFlatNode): void {\r\n this.checklistSelection.toggle(node);\r\n this.checkAllParentsSelection(node);\r\n }\r\n\r\n /* Checks all the parents when a leaf node is selected/unselected */\r\n checkAllParentsSelection(node: TodoItemFlatNode): void {\r\n let parent: TodoItemFlatNode | null = this.getParentNode(node);\r\n while (parent) {\r\n this.checkRootNodeSelection(parent);\r\n parent = this.getParentNode(parent);\r\n }\r\n }\r\n\r\n /** Check root node checked state and change it accordingly */\r\n checkRootNodeSelection(node: TodoItemFlatNode): void {\r\n const nodeSelected = this.checklistSelection.isSelected(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.length > 0 && descendants.every(child => {\r\n return this.checklistSelection.isSelected(child);\r\n });\r\n if (nodeSelected && !descAllSelected) {\r\n this.checklistSelection.deselect(node);\r\n } else if (!nodeSelected && descAllSelected) {\r\n this.checklistSelection.select(node);\r\n }\r\n }\r\n\r\n /* Get the parent node of a node */\r\n getParentNode(node: TodoItemFlatNode): TodoItemFlatNode | null {\r\n const currentLevel = this.getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl.dataNodes[i];\r\n\r\n if (this.getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n isInArray(parentObj: any, item: any) {\r\n return parentObj.some((obj: any) => obj.id === item.id);\r\n }\r\n\r\n selectedItem() {\r\n this.selected = [];\r\n this.checklistSelection.selected.forEach((element: any) => {\r\n if ( ( element.childs && !element.childs!.length ) && !this.isInArray(this.selected, element)) {\r\n this.selected.push(element);\r\n }\r\n });\r\n this.selectedItems.emit(this.selected);\r\n }\r\n\r\n public hideLeafNode(node: TodoItemFlatNode): boolean {\r\n return this.isView && !node.isActive\r\n ? true\r\n : new RegExp(this.searchText, 'i').test(node.name) === false;\r\n }\r\n public showParentNode(node: TodoItemFlatNode): boolean {\r\n const parentNode = this.getParentNode(node);\r\n if (parentNode) {\r\n return !this.hideLeafNode(parentNode);\r\n }\r\n return true;\r\n }\r\n\r\n public hideParentNode(node: TodoItemFlatNode): boolean {\r\n return this.treeControl\r\n .getDescendants(node)\r\n .filter(node => node.childs == null || node.childs.length === 0)\r\n .every(node => this.hideLeafNode(node));\r\n }\r\n}\r\n","\r\n \r\n\r\n \r\n\r\n {{node.name}}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {{node.name}}\r\n \r\n\r\n \r\n\r\n

{{\"forms.Required\" | translate}}

\r\n","import { Component, EventEmitter, Input, OnInit, Output, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport Swal from 'sweetalert2';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FileThumbObj, FileThumbType } from 'src/app/models/Lookup';\r\n\r\n@Component({\r\n selector: 'app-video-manager',\r\n templateUrl: './video-manager.component.html',\r\n})\r\nexport class VideoManagerComponent implements OnInit {\r\n @Output() selectedFiles = new EventEmitter<[]>();\r\n @Output() deletedFilesList = new EventEmitter<[]>();\r\n\r\n @Input() files: any = [];\r\n @Input() docsEditable = true;\r\n @Input() maxFiles = 5;\r\n @Input() maxFileSize = 10;\r\n @Input() managerIndex: any = '0'; // For input id multi file manager in one view\r\n @Input() label!: string;\r\n @Input() isRequired = false;\r\n @Input() isSubmitted = false;\r\n @Input() isDisabled = false;\r\n @Input() cols = 1;\r\n\r\n @Input() allowedExt: any[] = ['mp4', 'mpg'];\r\n\r\n /////\r\n selectedfilesCount = 0;\r\n deletedFiles: any = [];\r\n validFile = true;\r\n fileMaxSiZeErorr = false;\r\n fileMaxNameSiZeErorr = false;\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n validFileType(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n const extensionUpper = fileName.split('.').pop()?.toUpperCase();\r\n\r\n if (!(this.allowedExt.includes(extension) || this.allowedExt.includes(extensionUpper))) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileExt(fileName: string) {\r\n const extension = fileName.split('.').pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'mp4':\r\n case 'mpg':\r\n return 'video';\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event: any) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(event: any) {\r\n this.prepareFilesList(event.target.files);\r\n event.target.value = '';\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number, id: any) {\r\n if (id) {\r\n this.deletedFiles.push(id);\r\n }\r\n this.files.splice(index, 1);\r\n\r\n this.selectedFiles.emit(this.files);\r\n this.deletedFilesList.emit(this.deletedFiles);\r\n\r\n this.selectedfilesCount = this.files.length;\r\n }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array) {\r\n this.validFile = true;\r\n this.selectedfilesCount = this.files.length + files.length;\r\n if (this.selectedfilesCount > this.maxFiles) {\r\n return;\r\n }\r\n for (const item of files) {\r\n if (this.validFileType(item.name)) {\r\n this.validFile = true;\r\n } else {\r\n this.validFile = false;\r\n }\r\n\r\n // Check file and push to array files\r\n if (item.size / (1024 * 1024) <= this.maxFileSize && this.validFileType(item.name)) {\r\n item.fileType = this.fileExt(item.name);\r\n\r\n let fileObj = {\r\n file: item,\r\n thumbStr: '',\r\n thumb: null,\r\n thumbType: FileThumbType.Generated\r\n } as FileThumbObj;\r\n this.generateThumbnail(item).then(thumb => {\r\n fileObj.thumbStr = thumb\r\n fileObj.thumb = this.dataURItoBlob(thumb)\r\n });\r\n\r\n this.files.push(fileObj);\r\n this.selectedFiles.emit(this.files);\r\n\r\n if (item.size / (1024 * 1024) <= this.maxFileSize) {\r\n this.fileMaxSiZeErorr = false;\r\n }\r\n } else {\r\n if (item.size / (1024 * 1024) > this.maxFileSize) {\r\n this.fileMaxSiZeErorr = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes: number, decimals = 2) {\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals || 2;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n public generateThumbnail(videoFile: Blob): Promise {\r\n const video: HTMLVideoElement = this.document.createElement('video');\r\n const canvas: HTMLCanvasElement = this.document.createElement('canvas');\r\n const context: CanvasRenderingContext2D | null = canvas.getContext('2d');\r\n return new Promise((resolve, reject) => {\r\n canvas.addEventListener('error', reject);\r\n video.addEventListener('error', reject);\r\n video.addEventListener('canplay', event => {\r\n canvas.width = video.videoWidth;\r\n canvas.height = video.videoHeight;\r\n context?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\r\n resolve(canvas.toDataURL('image/jpeg'));\r\n });\r\n if (videoFile.type) {\r\n video.setAttribute('type', videoFile.type);\r\n }\r\n video.preload = 'auto';\r\n video.src = window.URL.createObjectURL(videoFile);\r\n video.load();\r\n });\r\n }\r\n\r\n dataURItoBlob(dataURI: string) {\r\n dataURI = dataURI.replace('data:image/jpeg;base64,', '');\r\n const byteString = window.atob(dataURI);\r\n const arrayBuffer = new ArrayBuffer(byteString.length);\r\n const int8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([int8Array], { type: 'image/jpeg' });\r\n const imageBlob: Blob = blob;\r\n const imageName: string = \"thumb.jpeg\";\r\n const imageFile: File = new File([imageBlob], imageName, {\r\n type: \"image/jpeg\"\r\n });\r\n return imageFile;\r\n }\r\n // dataURItoBlob(dataURI: string): Observable {\r\n // return Observable.create((observer: Observer) => {\r\n // const byteString: string = window.atob(dataURI);\r\n // const arrayBuffer: ArrayBuffer = new ArrayBuffer(byteString.length);\r\n // const int8Array: Uint8Array = new Uint8Array(arrayBuffer);\r\n // for (let i = 0; i < byteString.length; i++) {\r\n // int8Array[i] = byteString.charCodeAt(i);\r\n // }\r\n // const blob = new Blob([int8Array], { type: \"image/jpeg\" });\r\n // observer.next(blob);\r\n // observer.complete();\r\n // });\r\n // }\r\n\r\n\r\n //////////////////////////////////////////////////////////////////////\r\n //////////////////////////////////////////////////////////////////////\r\n\r\n // File preview with validation\r\n changeThumbListener($event: any, index: number): void {\r\n const file: File = $event.target.files[0];\r\n if (file && this.validateFile(file, index)) {\r\n this.readThis(file, index);\r\n this.files[index].thumb = file;\r\n this.files[index].thumbType = FileThumbType.Uploaded;\r\n }\r\n }\r\n readThis(file: File, index: number): void {\r\n const myReader: FileReader = new FileReader();\r\n myReader.readAsDataURL(file);\r\n myReader.onloadend = (e) => {\r\n this.files[index].thumbStr = myReader.result as string;\r\n };\r\n }\r\n validateFile(file: File, index: number): any {\r\n if (this.fileType(file.name)) {\r\n // this.fileTypeError = false;\r\n if ((file.size / (1024 * 1024)) <= 1) {\r\n // this.fileSizeError = false;\r\n } else {\r\n // this.fileSizeError = true;\r\n Swal.fire({\r\n icon: 'error',\r\n text: this.translate.instant('forms.Max-file-size') + ' 1' + this.translate.instant('forms.MB')\r\n })\r\n return false;\r\n }\r\n } else {\r\n // this.fileTypeError = true;\r\n Swal.fire({\r\n icon: 'error',\r\n text: this.translate.instant('forms.InvalidFile')\r\n })\r\n return false;\r\n }\r\n return true;\r\n }\r\n fileType(fileName: string): any {\r\n const extension = fileName.split('.')?.pop()?.toLowerCase();\r\n switch (extension) {\r\n case 'jpeg':\r\n case 'jpg':\r\n return 'jpg';\r\n case 'png':\r\n return 'png';\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n

{{ label ? label : ('fileManager.Drag and drop' | translate) }}

\r\n
\r\n {{ (label ? 'fileManager.Or' : 'fileManager.Supporting Extensions here Or') | translate }}\r\n \r\n
\r\n
\r\n {{\"fileManager.Supported Formats:\" | translate}}\r\n {{allowedExt}}\r\n
\r\n {{ \"fileManager.Max File Size\" | translate: { maxFileSize: maxFileSize } }}\r\n
\r\n\r\n\r\n
maxFiles && maxFiles > 1\" class=\"has-error\">\r\n {{ 'fileManager.Maximum allowed files is' | translate: { maxFiles: maxFiles } }}\r\n
\r\n
maxFiles && maxFiles === 1\" class=\"has-error\">\r\n {{ 'fileManager.Only One File is allowed' | translate }}\r\n
\r\n
{{\"fileManager.Invalid File Extensions\" | translate}}
\r\n
{{ \"fileManager.Max File Size\" | translate: { maxFileSize: maxFileSize\r\n } }}
\r\n
\r\n
\r\n {{\"forms.Required\" | translate}}\r\n
\r\n
\r\n

{{\"fileManager.No Files\" | translate}}

\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ formatBytes(file.file?.size) }}\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { menuItemFilter } from 'src/app/features/reports/models/wastedMenuItems';\r\nimport { WastedMenuItemService } from 'src/app/features/reports/services/wastedMenuItems.service';\r\nimport { DirtyComponent } from 'src/app/helpers/CanDeactivate/dirty-component';\r\nimport { Patterns } from 'src/app/helpers/patterns';\r\nimport { Lookup } from 'src/app/models/Lookup';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport interface DialogData {\r\n restaurantId: any,\r\n orderId: any,\r\n KitchenId: number,\r\n isOrder: boolean\r\n}\r\n\r\n@Component({\r\n selector: 'app-wasted-menu-item-form',\r\n templateUrl: './wasted-menu-item-form.component.html'\r\n})\r\nexport class WastedMenuItemFormComponent extends DirtyComponent implements OnInit {\r\n\r\n loading = false;\r\n dataLoading = false;\r\n itemsLoading = true;\r\n isSubmitted = false;\r\n\r\n isOrder = false;\r\n isReportedOrder = false;\r\n orderLoading = true;\r\n ordersList: any[] = []\r\n orderItems: any[] = []\r\n selectedQuantity: number = 1;\r\n orderItemsLoading = false;\r\n\r\n sectionLoading = false;\r\n sectionSelected: any[] = [];\r\n searchText?: any;\r\n noSpecialTxt = Patterns.noSpecialTxt;\r\n sections: any[] = []\r\n items: any = []\r\n SelecteditemSizes: any[] = []\r\n\r\n lossReason: Lookup[] = []\r\n lossReasonLoading = true;\r\n disposition: Lookup[] = []\r\n dispositionLoading = true;\r\n NotAvailable = ''\r\n IsAvailable = ''\r\n\r\n pageSize = 5;\r\n pageNumber = 0;\r\n pageCount: number = 0;\r\n selector: string = '.menu-items';\r\n itemsList: any[] = []\r\n\r\n\r\n constructor(override dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n translate: TranslateService,\r\n private _formBuilder: FormBuilder,\r\n private service: WastedMenuItemService) {\r\n super(translate);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.NotAvailable = this.translate.instant('wastedFood.Not Available');\r\n this.IsAvailable = this.translate.instant('wastedFood.Is Available');\r\n\r\n this.buildForm();\r\n // If it's Opens from KDS Screen\r\n if (this.data.orderId) {\r\n this.isReportedOrder = true\r\n this.formGroup.controls['orderId'].setValue(this.data.orderId)\r\n }\r\n this.getLossReasons();\r\n this.getDisposition();\r\n\r\n // Is this Item within an order? Toggle Off\r\n if (!this.isOrder && !this.isReportedOrder) {\r\n this.getSections();\r\n this.getMenuItems(true);\r\n } else {\r\n this.onOrderChange(this.data.orderId)\r\n if (!this.data.isOrder) {\r\n this.getOrdersList()\r\n }\r\n }\r\n\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this._formBuilder.group({\r\n orderId: [],\r\n itemSizesId: [],\r\n menuItemReservationId: [],\r\n restaurantId: [this.data.restaurantId],\r\n menuItemId: [null, [\r\n Validators.required\r\n ]],\r\n quantity: [],\r\n lossReasonId: [null, [\r\n Validators.required\r\n ]],\r\n dispositionLookupId: [null, [\r\n Validators.required\r\n ]],\r\n note: [null, [\r\n Validators.maxLength(100)\r\n ]]\r\n });\r\n }\r\n\r\n\r\n hasError(formGroup: FormGroup, controlName: string, errorName: string) {\r\n return formGroup.controls[controlName].hasError(errorName);\r\n }\r\n\r\n override canDeactivate() {\r\n return this.searchText || this.sectionSelected.length || this.formGroup.dirty;\r\n }\r\n\r\n\r\n hideOption(item: any) {\r\n return new RegExp(this.searchText, 'i').test(item.itemName) === false\r\n }\r\n // hideBySection(item: any) {\r\n // return this.sectionSelected ? item.sectionId != this.sectionSelected : false\r\n // }\r\n isAllHidden() {\r\n return this.itemsList.every((item: any) => this.hideOption(item)) || !this.itemsList.length;\r\n }\r\n\r\n getOrdersList() {\r\n // Is this Item within an order? Toggle Off\r\n if (!this.isOrder) {\r\n this.orderLoading = true;\r\n this.service.getWasteItemsOrderList(this.data.restaurantId).subscribe((data: any) => {\r\n this.orderLoading = false;\r\n this.ordersList = data\r\n if (this.data.orderId) {\r\n this.isReportedOrder = true\r\n }\r\n })\r\n this.formGroup.controls['menuItemId'].reset();\r\n }\r\n }\r\n\r\n onOrderChange(value: any) {\r\n this.formGroup.controls['menuItemId'].reset();\r\n this.formGroup.controls['itemSizesId'].reset();\r\n\r\n if (value) {\r\n this.orderItemsLoading = true;\r\n this.service.getWasteOrderItems(value, this.data?.KitchenId).subscribe((data: any) => {\r\n this.orderItemsLoading = false\r\n this.orderItems = data;\r\n })\r\n }\r\n }\r\n\r\n counter(i: number) { return new Array(i + 1); }\r\n\r\n getSections() {\r\n this.sectionLoading = true;\r\n this.service.getMenuSectionsList(this.data.restaurantId).subscribe((data: any) => {\r\n this.sections = data;\r\n this.sectionLoading = false;\r\n })\r\n }\r\n\r\n getMenuItems(update = true) {\r\n if (update) {\r\n this.pageNumber = 0;\r\n this.itemsList = [];\r\n }\r\n this.itemsLoading = true\r\n const filter = new menuItemFilter()\r\n filter.restaurantId = this.data.restaurantId\r\n filter.pageSize = this.pageSize;\r\n filter.pageNumber = this.pageNumber;\r\n // if (!this.sectionSelected) {\r\n // filter.sectionId = 0\r\n // } else {\r\n // filter.sectionId = this.sectionSelected\r\n // }\r\n filter.sectionIds = this.sectionSelected\r\n if (this.searchText) {\r\n filter.itemName = this.searchText\r\n\r\n } else {\r\n this.searchText = ''\r\n }\r\n this.service.getMenuItemForWaste(filter).subscribe((data: any) => {\r\n this.items = data;\r\n if (this.items.pageData) {\r\n this.pageCount = Math.ceil(this.items.totalCount / this.pageSize);\r\n this.itemsList = this.itemsList.concat(this.items.pageData);\r\n }\r\n this.itemsLoading = false\r\n }, err => {\r\n this.itemsLoading = false;\r\n console.error(err);\r\n })\r\n }\r\n\r\n getNextPage() {\r\n if (this.pageNumber < this.pageCount - 1) {\r\n this.pageNumber += 1;\r\n this.getMenuItems(false);\r\n }\r\n }\r\n\r\n getSelecteditemSizes() {\r\n this.SelecteditemSizes = this.itemsList.find((item: any) => item.id == this.formGroup.controls['menuItemId'].value)?.itemSizes;\r\n }\r\n\r\n\r\n getLossReasons() {\r\n this.lossReasonLoading = true;\r\n this.service.getWasteItemsReasonList().subscribe((data: any) => {\r\n this.lossReasonLoading = false;\r\n this.lossReason = data;\r\n })\r\n }\r\n\r\n getDisposition() {\r\n this.dispositionLoading = true;\r\n this.service.getDispositionsList().subscribe((data: any) => {\r\n this.dispositionLoading = false;\r\n this.disposition = data;\r\n })\r\n }\r\n\r\n saveRecord() {\r\n this.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.loading = true;\r\n this.formGroup.controls['quantity'].setValue(1)\r\n let data;\r\n\r\n if (this.isOrder || this.isReportedOrder) {\r\n let orderItem = this.orderItems.find((item => item.id == this.formGroup.controls['menuItemId'].value));\r\n data = {\r\n orderId: this.formGroup.controls['orderId'].value,\r\n restaurantId: this.data.restaurantId,\r\n menuItemReservationId: orderItem?.id,\r\n quantity: orderItem?.isWeight ? orderItem.quantity : orderItem.selectedQuantity,\r\n lossReasonId: this.formGroup.controls['lossReasonId'].value,\r\n dispositionLookupId: this.formGroup.controls['dispositionLookupId'].value,\r\n note: this.formGroup.controls['note'].value\r\n }\r\n } else {\r\n data = {\r\n itemSizesId: this.formGroup.controls['itemSizesId'].value,\r\n restaurantId: this.data.restaurantId,\r\n lossReasonId: this.formGroup.controls['lossReasonId'].value,\r\n dispositionLookupId: this.formGroup.controls['dispositionLookupId'].value,\r\n note: this.formGroup.controls['note'].value\r\n }\r\n }\r\n this.service.newWasteMenuItems(data).subscribe((result) => {\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Success'),\r\n text: this.translate.instant('swalMsg.savedsuccessfully'),\r\n icon: 'success',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok')\r\n });\r\n this.dialogRef.close(true);\r\n }, error => {\r\n this.loading = false;\r\n Swal.fire({\r\n title: this.translate.instant('swalMsg.Failed'),\r\n text: error.detail,\r\n icon: 'error',\r\n confirmButtonText: this.translate.instant('swalMsg.Ok'),\r\n }).then((res) => {\r\n if (error.status == 400) {\r\n this.dialogRef.close(true);\r\n }\r\n })\r\n });\r\n\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

{{\"wastedFood.Report Wasted Menu Item\" | translate}}

\r\n

{{'wastedFood.Report a Problem with an Order' | translate }}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{\"wastedFood.Is this Item within an order?\" | translate}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{ 'forms.Invalid value' |\r\n translate }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{'wastedFood.Filter by Section' | translate}}\r\n \r\n \r\n \r\n {{section.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n #{{order.orderNumber}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
{{'wastedFood.Orders Items' | translate }} {{orderItems.length}}
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{{item.itemName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ 'forms.Required' | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{\"general.No Data Found\" | translate}}

\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
X{{item.quantity}}
\r\n
\r\n
\r\n
{{item.itemName}}
\r\n
\r\n {{'orders.size' | translate}}: {{item.sizeName}}\r\n
\r\n
\r\n
\r\n
{{'orders.Unwanted Ingredients' |\r\n translate}}:
\r\n
\r\n {{ingr.name}}
\r\n
\r\n
\r\n
{{addition.name}}:
\r\n \r\n
{{one.name}}
\r\n
\r\n
\r\n
\r\n
{{variant.name}}:
\r\n \r\n
{{one.name}}
\r\n
\r\n
\r\n
\r\n
{{'orders.Note' | translate}}:\r\n
\r\n
{{item.specialRequest}}
\r\n
\r\n\r\n
\r\n
1 && (formGroup.controls['menuItemId'].value == item.id ) && !item.isWeight\">\r\n
\r\n \r\n {{'orders.of selected' | translate: {no: item.quantity} }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'forms.Required' | translate }}\r\n
\r\n
\r\n
\r\n

{{\"general.No Data Found\" | translate}}

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

{{'wastedFood.Please select an Order first' | translate }}

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

{{'wastedFood.Wasted Menu Item Size' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n {{size.sizeName}}\r\n \r\n \r\n \r\n
\r\n {{ 'forms.Required' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'wastedFood.Loss Reason' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n {{reason.name}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {{ 'forms.Required' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'wastedFood.Disposition' | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n {{reason.name}}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {{ 'forms.Required' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{'forms.Notes' | translate }}

\r\n
\r\n
\r\n \r\n {{ 'wastedFood.Type your note here' | translate }}\r\n \r\n {{'forms.Optional' | translate}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{\"wastedFood.Please keep in mind that once you submit the report, the time of order will be sent automatically to the kitchen to prepare again\" | translate }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n\r\n appUrl: 'https://aldiwanrestaurantdev.expertapps.com.sa', // DEV\r\n apiUrl: 'https://diwandevapi.expertapps.com.sa/api', // DEV\r\n signalR: 'https://diwandevslr.expertapps.com.sa/hubs', // DEV\r\n\r\n // appUrl: 'https://aldiwanrestaurantdevnf.expertapps.com.sa/', // DEV New Feature\r\n // apiUrl: 'https://diwandevnfapi.expertapps.com.sa/api', // DEV\r\n // signalR: 'https://diwandevnfslr.expertapps.com.sa/hubs', // DEV\r\n\r\n // appUrl: 'https://diwantest.expertapps.com.sa', // TEST\r\n // apiUrl: 'https://diwantestapi.expertapps.com.sa/api', // TEST API front\r\n // signalR: 'https://diwantestslr.expertapps.com.sa/hubs', // TEST SignalR\r\n\r\n // appUrl: 'https://diwanresturantstage.expertapps.com.sa', // STAGE\r\n // apiUrl: 'https://diwanapistage.expertapps.com.sa/api', // STAGE API front\r\n // signalR: 'https://diwandevslr.expertapps.com.sa/hubs', // STAGE SignalR\r\n\r\n // appUrl: 'https://diwantakeaway.expertapps.com.sa', // STAGE\r\n // apiUrl: 'https://diwantakeawayapi.expertapps.com.sa/api', // STAGE API front\r\n // signalR: 'https://diwantakeawayslr.expertapps.com.sa/hubs', // STAGE SignalR\r\n\r\n /*********************\r\n * !!! PRODUCTION !!!!\r\n * ********************/\r\n // appUrl: 'https://BonTech.inndeve.com/',\r\n // apiUrl: 'https://appapi.inndeve.com/api',\r\n // signalR: 'https://appslr.inndeve.com/hubs',\r\n\r\n googleSiteKey: '6Lfm3xohAAAAALgLSfUIY8YHdzC16AjLY6wl7U9a',\r\n googleApiKey: '6Lfm3xohAAAAADEauzDDPzU0YVrIxWTBbi1k3AkE',\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n window.console.log = () => { };\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 82469,\n\t\"./tg.js\": 82469,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\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 = 46700;"],"names":["APP_INITIALIZER","BrowserModule","AppRoutingModule","AppComponent","BrowserAnimationsModule","HttpClient","HttpClientModule","HTTP_INTERCEPTORS","MissingTranslationHandler","TranslateLoader","TranslateModule","MultiTranslateHttpLoader","MyMissingTranslationHandler","SharedModule","JwtInterceptor","ErrorInterceptor","NgSelectModule","DaysOffConfigComponent","DaysOffFormComponent","HoursConfigComponent","HoursFormComponent","CancellationComponent","CancellationFormComponent","ExceptionRuleGuestsTagsComponent","ExceptionRuleReservationComponent","ShowPolicyComponent","EventFormComponent","EventsComponent","GuestAnnouncementsComponent","GuestReviewDetailsComponent","GuestsReviewsComponent","ReportReviewFormComponent","FloorFormComponent","FloorsManagementComponent","KitchenFormComponent","KitchenManagementComponent","ListComponent","AssignServerComponent","ServersAssignmentComponent","IngredientsStockComponent","StockTransactionComponent","ProfileManagementComponent","ErrorComponent","NotAuthorizedComponent","AdminLayoutComponent","HeaderComponent","SidebarComponent","BasicLayoutComponent","EmptyLayoutComponent","AnonymousLayoutComponent","ActionsBarComponent","TillAmountConfirmComponent","TranslationLoadedService","fetchBuildDetails","buildDetailsService","HttpLoaderFactory","httpClient","translationLoaded","initializeTranslations","translationLoadedService","Promise","resolve","loaded$","subscribe","AppModule","constructor","activatedRoute","translate","queryParams","params","localStorage","getItem","setItem","use","location","reload","i0","bootstrap","provide","useFactory","deps","multi","useClass","imports","forRoot","defaultLanguage","loader","missingTranslationHandler","declarations","i2","FormControl","Validators","MAT_DIALOG_DATA","map","startWith","DirtyComponent","CustomValidator","Patterns","Swal","RestaurantType","$event","ctx_r1","_r32","RestaurantFormDialogComponent","dialogRef","data","_formBuilder","service","lookupsService","cuisineservice","ngOnInit","id","getDetails","details","record","buildForm","getCountries","getCuisines","dataLoading","GetDetails","res","bindDataToUpdate","countryLoading","countries","err","console","error","cityParentChange","countryId","formGroup","controls","setValue","getCities","cityLoading","cities","cuisinesLoading","GetCuisines","cuisines","initCuisinesFiltiration","filteredCuisines","cuisinCtr","valueChanges","pipe","value","name","_filter","slice","displayFn","item","filterValue","toLowerCase","filter","includes","cuisinSelected","isSelected","selectedCuisines","push","index","findIndex","splice","removeCuisin","i","v","some","group","restaurantType","parintId","title_EN","noWhiteSpace","maxLength","title_AR","mail","required","pattern","email","phone","website","cityId","streetEn","streetAr","latitude","float","longitude","vatNumber","shortName","facebook","twitter","instagram","snapchat","tiktok","whatsapp","phoneNumber","youtube","patchValue","Branch","Main","restaurantCuisine","cuisine","logoSrc","icon","bannerSrc","banner","selectedCountry","phoneflag","hasError","controlName","errorName","changeFileListener","file","target","files","validateFile","readThis","logo","undefined","myReader","FileReader","readAsDataURL","onloadend","e","result","fileType","bannerTypeError","size","maxBannerSize","bannerSizeError","fileTypeError","maxFileSize","fileSizeError","fileName","extension","split","pop","checkCuisines","length","setErrors","markAsTouched","saveRecord","isSubmitted","markAllAsTouched","valid","fire","title","instant","text","showCancelButton","confirmButtonText","cancelButtonText","then","editRest","loading","x","countryCode","phoneCode","dialCode","number","close","detail","selectors","features","decls","vars","consts","template","ctx","EventEmitter","TagsSelectorSearchComponent","ngOnChanges","changes","currentValue","initListFiltiration","isRequired","filteredList","searchCtr","list","selected","selectedList","selectedItems","emit","removeSelected","inputs","disabled","label","outputs","_r0"],"sourceRoot":"webpack:///","x_google_ignoreList":[282]}