diff --git a/src/modules/05_leave/components/DialogDetail.vue b/src/modules/05_leave/components/DialogDetail.vue index dd0aece..d3cbabb 100644 --- a/src/modules/05_leave/components/DialogDetail.vue +++ b/src/modules/05_leave/components/DialogDetail.vue @@ -140,6 +140,8 @@ const formData = reactive({ approveStep: "", dear: "", leaveRange: "", + leaveRangeEnd: "", + leaveSubTypeName: "", }); /** Form รายละเอียดข้อมูล*/ @@ -154,6 +156,7 @@ const formDataCancle = reactive({ leaveAddress: "", leaveNumber: "", leaveDetail: "", + leaveSubTypeName: "", leaveTotal: 0, leaveStartDate: new Date(), leaveEndDate: new Date(), @@ -194,8 +197,7 @@ async function fetchDataDetail(id: string) { formData.dateSendLeave = data.dateSendLeave && date2Thai(data.dateSendLeave); formData.status = data.status ?? "-"; - formData.leaveDateStart = - data.leaveStartDate && date2Thai(data.leaveStartDate); + formData.leaveDateStart = data.leaveStartDate && date2Thai(data.leaveStartDate); formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate); formData.leaveCount = calculateDurationYmd( data.leaveStartDate, @@ -205,9 +207,11 @@ async function fetchDataDetail(id: string) { formData.leaveAddress = data.leaveAddress ?? "-"; formData.leaveNumber = data.leaveNumber ?? "-"; formData.leaveDetail = data.leaveDetail ?? "-"; + formData.leaveSubTypeName = data.leaveSubTypeName ?? null; formData.leaveDocument = data.leaveDocument; formData.leaveDraftDocument = data.leaveDraftDocument; formData.leaveRange = data.leaveRange; + formData.leaveRangeEnd = data.leaveRangeEnd; formData.leaveLastStart = data.leaveLastStart && date2Thai(data.leaveLastStart); formData.leaveLastEnd = @@ -226,7 +230,7 @@ async function fetchDataDetail(id: string) { data.wifeDayDateBorn && date2Thai(data.wifeDayDateBorn); formData.restDayOldTotal = data.restDayOldTotal ?? "-"; formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-"; - formData.ordainDayStatus = data.ordainDayStatus ? "เคย" : "ไม่เคยบวช"; + formData.ordainDayStatus = data.ordainDayStatus; formData.ordainDayLocationName = data.ordainDayLocationName ?? "-"; formData.ordainDayLocationAddress = data.ordainDayLocationAddress ?? "-"; formData.ordainDayLocationNumber = data.ordainDayLocationNumber ?? "-"; @@ -236,9 +240,7 @@ async function fetchDataDetail(id: string) { data.ordainDayBuddhistLentName ?? "-"; formData.ordainDayBuddhistLentAddress = data.ordainDayBuddhistLentAddress ?? "-"; - formData.hajjDayStatus = data.hajjDayStatus - ? "เคย" - : "ไม่เคยไปประกอบพิธีฮัจญ์"; + formData.hajjDayStatus = data.hajjDayStatus; formData.absentDaySummon = data.absentDaySummon ?? "-"; formData.absentDayLocation = data.absentDayLocation ?? "-"; formData.absentDayRegistorDate = @@ -301,15 +303,24 @@ function checkLeaveType( checkForm.value = "FormChildbirth"; } else if (type === "LV-005") { checkForm.value = "FormHoliday"; - } else if (type === "LV-006" && ordainDayLocationName === "") { - checkForm.value = "FormHajj"; - } else if (type === "LV-006") { + } else if (type === "LV-006" && formData.leaveSubTypeName === "ลาอุปสมบท") { checkForm.value = "FormUpasom"; + } else if ( + type === "LV-006" && + formData.leaveSubTypeName === "ลาประกอบพิธีฮัจญ์" + ) { + checkForm.value = "FormHajj"; } else if (type === "LV-007") { checkForm.value = "FormCheckSelect"; - } else if (type === "LV-008" && studyDayTrainingSubject === "") { + } else if ( + type === "LV-008" && + formData.leaveSubTypeName === "ลาไปศึกษาต่อ" + ) { checkForm.value = "FormStudy"; - } else if (type === "LV-008") { + } else if ( + type === "LV-008" && + formData.leaveSubTypeName === "ลาฝึกอบรม/ปฎิบัติการวิจัย/ดูงาน" + ) { checkForm.value = "FormLeaveToTraining"; } else if (type === "LV-009") { checkForm.value = "FormLeaveToWorkInternational"; @@ -344,6 +355,7 @@ async function fetchDataCancelDetail(id: string) { formDataCancle.leaveNumber = data.leaveNumber ?? "-"; formDataCancle.leaveResonDelete = data.leaveReasonDelete ?? "-"; formDataCancle.leaveDetail = data.leaveDetail ?? "-"; + formDataCancle.leaveSubTypeName = data.leaveSubTypeName ?? null; formDataCancle.leaveDocDelete = data.leaveDocDelete ?? null; }) .catch((err) => { diff --git a/src/modules/05_leave/components/FormLeave/01_SickForm.vue b/src/modules/05_leave/components/FormLeave/01_SickForm.vue index 188effb..6cf443d 100644 --- a/src/modules/05_leave/components/FormLeave/01_SickForm.vue +++ b/src/modules/05_leave/components/FormLeave/01_SickForm.vue @@ -15,7 +15,14 @@ const typeForm = defineModel("type", { required: true }); const $q = useQuasar(); const dataStore = useLeaveStore(); const mixin = useCounterMixin(); -const { date2Thai, dateToISO, messageError, convertDateToAPI } = mixin; +const { + date2Thai, + dateToISO, + messageError, + convertDateToAPI, + showLoader, + hideLoader, +} = mixin; const edit = ref(true); const leaveDocumentRef = ref(null); @@ -46,6 +53,7 @@ const formDataSick = reactive({ leaveStartDate: null, leaveEndDate: null, leaveRange: "ALL", + leaveRangeEnd: "ALL", leaveTotal: "", leaveLast: null, leaveDetail: "", @@ -121,6 +129,7 @@ function onValidate() { formData.append("type", formDataSick.type); formData.append("leaveRange", formDataSick.leaveRange); + formData.append("leaveRangeEnd", formDataSick.leaveRangeEnd); formData.append( "leaveStartDate", convertDateToAPI(formDataSick.leaveStartDate) ?? "" @@ -144,12 +153,29 @@ function onValidate() { */ const isLeave = ref(true); const reasonLeave = ref(""); + +const checkDate = computed(() => { + if ( + convertDateToAPI(formDataSick.leaveStartDate) == + convertDateToAPI(formDataSick.leaveEndDate) + ) { + return true; + } else { + return false; + } +}); + async function fetchCheck() { + showLoader(); await http .post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: convertDateToAPI(formDataSick.leaveStartDate) ?? null, EndLeaveDate: convertDateToAPI(formDataSick.leaveEndDate) ?? null, + leaveRange: formDataSick.leaveRange, + leaveRangeEnd: checkDate.value + ? formDataSick.leaveRange + : formDataSick.leaveRangeEnd, }) .then((res: any) => { const data = res.data.result; @@ -162,8 +188,10 @@ async function fetchCheck() { }) .catch((e: any) => { messageError($q, e); + hideLoader(); }) .finally(() => { + hideLoader(); leaveDocumentRef.value.resetValidation(); }); } @@ -212,6 +240,7 @@ watch(props.data, () => { formDataSick.leaveTotal = props.data.leaveTotal; formDataSick.leaveDetail = props.data.leaveDetail; formDataSick.leaveRange = props.data.leaveRange; + formDataSick.leaveRangeEnd = props.data.leaveRangeEnd; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; formDataSick.leaveDocument = []; @@ -228,6 +257,7 @@ onMounted(() => { formDataSick.leaveTotal = props.data.leaveTotal; formDataSick.leaveDetail = props.data.leaveDetail; formDataSick.leaveRange = props.data.leaveRange; + formDataSick.leaveRangeEnd = props.data.leaveRangeEnd; leaveDocumentList.value = props.data.leaveDocument; statusCheck.value = props.data.status; leaveId.value = props.data.id; @@ -257,45 +287,22 @@ onMounted(() => { :readonly="!edit || statusCheck === 'NEW'" :rules="[(val:string) => !!val || `${'เขียนที่'}`]" /> - -
- - - -
-
-
+
+