diff --git a/src/components/displays/user/bookings/NewTimeBookingFlow.vue b/src/components/displays/user/bookings/NewTimeBookingFlow.vue index 99683504..c2fdaced 100644 --- a/src/components/displays/user/bookings/NewTimeBookingFlow.vue +++ b/src/components/displays/user/bookings/NewTimeBookingFlow.vue @@ -7,6 +7,7 @@ import NewBookingStep1 from "@/views/dashboards/userDashboard/bookings/displays/ import NewBookingStep2 from "@/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep2.vue"; import NewBookingStep3 from "@/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep3.vue"; import NewBookingStep4 from "@/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep4.vue"; +import NewBookingStep5 from "@/views/dashboards/userDashboard/bookings/displays/steps/NewBookingStep5.vue"; /** * This is the new time booking flow. * It contains the functions used to create a new time booking. @@ -31,7 +32,7 @@ const stepComponents = { 2: NewBookingStep2, 3: NewBookingStep3, 4: NewBookingStep4, - 5: null, + 5: NewBookingStep5, } const steps = ref([ { diff --git a/src/components/forms/department/pos/SelectProductsFormPOS.vue b/src/components/forms/department/pos/SelectProductsFormPOS.vue index 08bfd648..b25f37ff 100644 --- a/src/components/forms/department/pos/SelectProductsFormPOS.vue +++ b/src/components/forms/department/pos/SelectProductsFormPOS.vue @@ -71,6 +71,34 @@ onMounted(() => { } }); +// React to department or category changes +watch(() => department_id.value, (newDeptId) => { + // Reload categories for the new department + loadCategories(); + // Refetch products for the current category scope + if (getProductsCategory() === null) { + getProducts(newDeptId).then((response) => { + products.value = response.data.data; + }); + } else { + getProductCategory(getProductsCategory(), newDeptId).then((response) => { + products.value = response.data.data; + }); + } +}); + +watch(() => getProductsCategory(), (newCategory) => { + if (newCategory === null) { + getProducts(department_id.value).then((response) => { + products.value = response.data.data; + }); + } else { + getProductCategory(newCategory, department_id.value).then((response) => { + products.value = response.data.data; + }); + } +}); + @@ -129,9 +157,10 @@ const loadCategories = async () => { categories.value.push(...categories_static.value); // Get the department id from the route const route = useRoute(); - const departmentId = route.params.departmentId; + // Prefer route param, otherwise fallback to global POS department_id + const departmentId = route.params.departmentId ?? department_id.value; // If the department id is not set, return - if (departmentId === undefined) { + if (departmentId === undefined || departmentId === null) { return; } // Get the categories diff --git a/src/views/dashboards/userDashboard/bookings/MyBookingsBook.vue b/src/views/dashboards/userDashboard/bookings/MyBookingsBook.vue index d8b05784..3eb15c1a 100644 --- a/src/views/dashboards/userDashboard/bookings/MyBookingsBook.vue +++ b/src/views/dashboards/userDashboard/bookings/MyBookingsBook.vue @@ -1,7 +1,7 @@ + + + @@ -1199,4 +1287,39 @@ const completeBasket = computed({ .custom-date-picker-time.is-selected:hover { background-color: #d0dff5; } - \ No newline at end of file + +