diff --git a/src/pages/Customer/Card/CustomerSummary.vue b/src/pages/Customer/Card/CustomerSummary.vue
index 324da0771aa..c98bf1ffbbb 100644
--- a/src/pages/Customer/Card/CustomerSummary.vue
+++ b/src/pages/Customer/Card/CustomerSummary.vue
@@ -325,7 +325,7 @@ const sumRisk = ({ clientRisks }) => {
             </QCard>
             <QCard class="vn-max">
                 <VnTitle :text="t('Latest tickets')" />
-                <CustomerSummaryTable />
+                <CustomerSummaryTable :id="entityId" />
             </QCard>
         </template>
     </CardSummary>
diff --git a/src/pages/Customer/components/CustomerSummaryTable.vue b/src/pages/Customer/components/CustomerSummaryTable.vue
index bb6f4442baf..09c7e714c57 100644
--- a/src/pages/Customer/components/CustomerSummaryTable.vue
+++ b/src/pages/Customer/components/CustomerSummaryTable.vue
@@ -20,7 +20,12 @@ const { t } = useI18n();
 const route = useRoute();
 const router = useRouter();
 const { viewSummary } = useSummaryDialog();
-
+const $props = defineProps({
+    id: {
+        type: Number,
+        default: null,
+    },
+});
 const filter = {
     include: [
         {
@@ -43,7 +48,7 @@ const filter = {
             },
         },
     ],
-    where: { clientFk: route.params.id },
+    where: { clientFk: $props.id ?? route.params.id },
     order: ['shipped DESC', 'id'],
     limit: 30,
 };
diff --git a/src/pages/Order/Card/OrderCatalog.vue b/src/pages/Order/Card/OrderCatalog.vue
index 4b3992f2133..dbb66c0ece9 100644
--- a/src/pages/Order/Card/OrderCatalog.vue
+++ b/src/pages/Order/Card/OrderCatalog.vue
@@ -10,6 +10,7 @@ import OrderCatalogFilter from 'src/pages/Order/Card/OrderCatalogFilter.vue';
 import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
 import { useArrayData } from 'src/composables/useArrayData';
 import RightMenu from 'src/components/common/RightMenu.vue';
+import { onUnmounted } from 'vue';
 
 const route = useRoute();
 const router = useRouter();
@@ -23,16 +24,40 @@ const catalogParams = {
 const arrayData = useArrayData(dataKey, {
     url: 'Orders/CatalogFilter',
     userParams: catalogParams,
+    exprBuilder,
+    searchUrl: 'table',
 });
 const store = arrayData.store;
 const tags = ref([]);
 const itemRefs = ref({});
 
-onMounted(() => {
+onMounted(async () => {
     stateStore.rightDrawer = true;
     checkOrderConfirmation();
+
+    if (
+        arrayData.store.userParams &&
+        Object.keys(arrayData.store.userParams).some((key) => !key.startsWith('order'))
+    ) {
+        await arrayData.fetch({});
+    }
 });
 
+onUnmounted(() => {
+    arrayData.destroy();
+});
+
+function exprBuilder(param, value) {
+    switch (param) {
+        case 'categoryFk':
+        case 'typeFk':
+            return { [param]: value };
+        case 'search':
+            if (/^\d+$/.test(value)) return { 'i.id': value };
+            else return { 'i.name': { like: `%${value}%` } };
+    }
+}
+
 async function checkOrderConfirmation() {
     const response = await axios.get(`Orders/${route.params.id}`);
     if (response.data.isConfirmed === 1) {
@@ -96,6 +121,7 @@ watch(
                 :tag-value="tagValue"
                 :tags="tags"
                 :initial-catalog-params="catalogParams"
+                :arrayData
             />
         </template>
     </RightMenu>
diff --git a/src/pages/Order/Card/OrderCatalogFilter.vue b/src/pages/Order/Card/OrderCatalogFilter.vue
index 76e60898343..d16a920179d 100644
--- a/src/pages/Order/Card/OrderCatalogFilter.vue
+++ b/src/pages/Order/Card/OrderCatalogFilter.vue
@@ -24,6 +24,10 @@ const props = defineProps({
         type: Array,
         required: true,
     },
+    arrayData: {
+        type: Object,
+        required: true,
+    },
 });
 
 const { t } = useI18n();
@@ -74,17 +78,6 @@ const loadTypes = async (id) => {
     typeList.value = data;
 };
 
-function exprBuilder(param, value) {
-    switch (param) {
-        case 'categoryFk':
-        case 'typeFk':
-            return { [param]: value };
-        case 'search':
-            if (/^\d+$/.test(value)) return { 'i.id': value };
-            else return { 'i.name': { like: `%${value}%` } };
-    }
-}
-
 const applyTags = (tagInfo, params, search) => {
     if (!tagInfo || !tagInfo.values.length) {
         params.tagGroups = null;
@@ -152,9 +145,8 @@ function addOrder(value, field, params) {
         :data-key="props.dataKey"
         :hidden-tags="['filter', 'orderFk', 'orderBy']"
         :unremovable-params="['orderFk', 'orderBy']"
-        :expr-builder="exprBuilder"
         :custom-tags="['tagGroups', 'categoryFk']"
-        :redirect="false"
+        :arrayData
     >
         <template #tags="{ tag, formatFn }">
             <strong v-if="tag.label === 'typeFk' && typeList">
diff --git a/src/pages/Worker/Card/WorkerCalendarItem.vue b/src/pages/Worker/Card/WorkerCalendarItem.vue
index 893a81c6df8..86d227ad350 100644
--- a/src/pages/Worker/Card/WorkerCalendarItem.vue
+++ b/src/pages/Worker/Card/WorkerCalendarItem.vue
@@ -79,7 +79,7 @@ const editEvent = async (event) => {
     };
     const { data } = await axios.patch(
         `Workers/${route.params.id}/updateAbsence`,
-        params
+        params,
     );
 
     if (data) emit('refresh');
@@ -108,14 +108,14 @@ const handleDateSelected = (date) => {
     if (!event) createEvent(_date);
 };
 
-const handleEventSelected = (event, { year, month, day }) => {
+const handleEventSelected = async (event, { year, month, day }) => {
     if (!props.absenceType) {
         notify(t('Choose an absence type from the right menu'), 'warning');
         return;
     }
 
     const date = new Date(year, month - 1, day);
-    if (!event?.absenceId) createEvent(date);
+    if (!event?.absenceId) await createEvent(date);
     else if (event.type == props.absenceType.code) deleteEvent(event, date);
     else editEvent(event);
 };