From ec5f1139224590a13091c65e352329a0cbcc83d2 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 26 Mar 2026 09:49:02 +0700 Subject: [PATCH 001/104] fix(registry): handle router.push based on isLeave status --- src/modules/04_registryPerson/views/detailView.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/04_registryPerson/views/detailView.vue b/src/modules/04_registryPerson/views/detailView.vue index f5e951411..33ca37200 100644 --- a/src/modules/04_registryPerson/views/detailView.vue +++ b/src/modules/04_registryPerson/views/detailView.vue @@ -806,9 +806,13 @@ function handleBackNavigation() { router.go(-1); } else { if (empType.value === "") { - router.push("/registry-officer"); + storeRegistry.isLeave + ? router.push("/registry-retire-officer") + : router.push("/registry-officer"); } else if (empType.value === "-employee") { - router.push("/registry-employee"); + storeRegistry.isLeave + ? router.push("/registry-retire-employee") + : router.push("/registry-employee"); } } } From 3c15bb3b0b159587ec35a03112fe93c366c6ad88 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 26 Mar 2026 09:59:29 +0700 Subject: [PATCH 002/104] fix(salary): add null check for id before processing --- src/modules/13_salary/components/04_salaryLists/TabMain.vue | 2 ++ .../13_salary/components/05_salaryListsEmployee/TabMain.vue | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/modules/13_salary/components/04_salaryLists/TabMain.vue b/src/modules/13_salary/components/04_salaryLists/TabMain.vue index 5da8f0b3d..ddf8804e5 100644 --- a/src/modules/13_salary/components/04_salaryLists/TabMain.vue +++ b/src/modules/13_salary/components/04_salaryLists/TabMain.vue @@ -222,6 +222,7 @@ const itemsCard = ref([ * @param id กลุ่ม */ async function fetchDataQuota(id: string) { + if (!id) return; await http .get(config.API.salaryListPeriodQuota(id)) .then((res) => { @@ -254,6 +255,7 @@ async function fetchDataQuota(id: string) { * @param id กลุ่ม */ async function fetchDataPeriod(id: string, force: boolean = false) { + if (!id) return; force && showLoader(); let formData = { ...params.value, diff --git a/src/modules/13_salary/components/05_salaryListsEmployee/TabMain.vue b/src/modules/13_salary/components/05_salaryListsEmployee/TabMain.vue index e4f00a7cc..cc50f45cb 100644 --- a/src/modules/13_salary/components/05_salaryListsEmployee/TabMain.vue +++ b/src/modules/13_salary/components/05_salaryListsEmployee/TabMain.vue @@ -215,6 +215,7 @@ const itemsCard = ref([ * @param id กลุ่ม */ async function fetchDataQuota(id: string) { + if (!id) return; await http .get(config.API.salaryListPeriodQuotaEmp(id)) .then((res) => { @@ -246,6 +247,7 @@ async function fetchDataQuota(id: string) { * @param id กลุ่ม */ async function fetchDataPeriod(id: string, force: boolean = false) { + if (!id) return; force && showLoader(); let formData = { ...params.value, From dd5b2e0676fe08323db7c9a2e5f8b8b4b8059201 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 26 Mar 2026 10:16:46 +0700 Subject: [PATCH 003/104] fix(discipline): clear selected employees on class change --- src/components/Dialogs/AddPersonal.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Dialogs/AddPersonal.vue b/src/components/Dialogs/AddPersonal.vue index 6003ace6f..42bd3965b 100644 --- a/src/components/Dialogs/AddPersonal.vue +++ b/src/components/Dialogs/AddPersonal.vue @@ -305,7 +305,7 @@ watch( outlined option-label="name" option-value="id" - @update:model-value="rows = []" + @update:model-value="(rows = []), (selected = [])" /> From db4df70a8373dfbe5facc6926081b277eaebfe2c Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 26 Mar 2026 11:11:59 +0700 Subject: [PATCH 004/104] fix(salary): filter data to show only records with groupid --- src/modules/13_salary/views/04_salaryLists.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/13_salary/views/04_salaryLists.vue b/src/modules/13_salary/views/04_salaryLists.vue index 6e9a4c4fc..d3f38a61f 100644 --- a/src/modules/13_salary/views/04_salaryLists.vue +++ b/src/modules/13_salary/views/04_salaryLists.vue @@ -308,6 +308,7 @@ async function fetchSalalyPeriod( if (!data.group1id) { hideLoader(); } + isLoad.value = data.group1id ? true : false; }) .catch((err) => { messageError($q, err); From 24c307e076a9478273dc741133faf98e5aef6ef1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Fri, 27 Mar 2026 10:44:41 +0700 Subject: [PATCH 005/104] refactor(ui report): remove unused code and clean up --- .../views/01_compete/CompeteReport.vue | 10 ----- src/modules/14_KPI/views/report.vue | 37 ------------------- .../21_report/views/05_reportSalary.vue | 22 ----------- 3 files changed, 69 deletions(-) diff --git a/src/modules/03_recruiting/views/01_compete/CompeteReport.vue b/src/modules/03_recruiting/views/01_compete/CompeteReport.vue index d75dded2d..de4c59ddc 100644 --- a/src/modules/03_recruiting/views/01_compete/CompeteReport.vue +++ b/src/modules/03_recruiting/views/01_compete/CompeteReport.vue @@ -403,16 +403,6 @@ function clearFilter() { - -
- -
-
- -
-
-
-
diff --git a/src/modules/14_KPI/views/report.vue b/src/modules/14_KPI/views/report.vue index f723dd697..23d14d89b 100644 --- a/src/modules/14_KPI/views/report.vue +++ b/src/modules/14_KPI/views/report.vue @@ -876,43 +876,6 @@ onMounted(() => { - - - -
- - -
- -
- -
-
-
-
- diff --git a/src/modules/21_report/views/05_reportSalary.vue b/src/modules/21_report/views/05_reportSalary.vue index dafbfd3be..786f4dd3a 100644 --- a/src/modules/21_report/views/05_reportSalary.vue +++ b/src/modules/21_report/views/05_reportSalary.vue @@ -807,28 +807,6 @@ onMounted(() => { - -
- -
-
- -
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
diff --git a/src/modules/09_leave/interface/request/work.ts b/src/modules/09_leave/interface/request/work.ts index e69de29bb..c448c9fc9 100644 --- a/src/modules/09_leave/interface/request/work.ts +++ b/src/modules/09_leave/interface/request/work.ts @@ -0,0 +1,6 @@ +interface FormDataProcess { + startDate: Date | null; + endDate: Date | null; +} + +export type { FormDataProcess }; diff --git a/src/modules/09_leave/interface/response/work.ts b/src/modules/09_leave/interface/response/work.ts index 41df27b5f..af055b794 100644 --- a/src/modules/09_leave/interface/response/work.ts +++ b/src/modules/09_leave/interface/response/work.ts @@ -85,4 +85,24 @@ interface FormDetail { checkInLocationName: string; checkOutLocationName: string; } -export type { TableRows, DataResLog, DataResTime, TableRowsTime, FormDetail }; + +interface DataProcess { + id: string; + createdFullName: string; + createdAt: Date | null; + status: string; + startDate: Date | null; + endDate: Date | null; + processingDate: Date | null; + completedDate: Date | null; + errorMessage: string | null; +} + +export type { + TableRows, + DataResLog, + DataResTime, + TableRowsTime, + FormDetail, + DataProcess, +}; diff --git a/src/modules/09_leave/views/02_WorkingMain.vue b/src/modules/09_leave/views/02_WorkingMain.vue index 99387a4bb..fed615baf 100644 --- a/src/modules/09_leave/views/02_WorkingMain.vue +++ b/src/modules/09_leave/views/02_WorkingMain.vue @@ -1,15 +1,26 @@