hrms-user/src/modules/06_evaluate/stores/evaluationFunction.ts
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 60bda24d1d delete const $q = useQuasar(); .ts
2025-06-06 13:50:04 +07:00

217 lines
5.7 KiB
TypeScript

import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import { useEvaluateStore } from "@/modules/06_evaluate/store";
const store = useEvaluateStore();
const mixin = useCounterMixin();
const { showLoader, hideLoader } = mixin;
/** function เช็คการยื่นข้อประเมิน*/
async function fetchCheckStatus() {
store.showLoadStatus = false;
// = 1;
showLoader();
await http
.get(config.API.evaluationCheckStatus())
.then((res) => {
const data = res.data.result;
store.tabMenu === "1"
? (store.evaluateId = data.expertId)
: (store.evaluateId = data.specialExpertId);
fetchCheckStep(store?.evaluateId);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
hideLoader();
});
}
async function fetchCheckStep(id: string) {
if (id) {
await http
.get(config.API.evaluationCheckStep(id))
.then((res) => {
const data = res.data.result;
let step =
data.step === "CHECK_SPEC"
? 1
: data.step === "PREPARE_DOC_V1"
? 2
: data.step === "CHECK_DOC_V1"
? 3
: data.step === "WAIT_CHECK_DOC_V1"
? 4
: data.step === "ANNOUNCE_WEB"
? 5
: data.step === "PREPARE_DOC_V2"
? 6
: data.step === "WAIT_CHECK_DOC_V2"
? 7
: data.step === "CHECK_DOC_V2"
? 8
: data.step === "DONE"
? 9
: 1;
store.currentStep = step;
store.step = step;
})
.catch((err) => {
console.log(err);
})
.finally(() => {
store.showLoadStatus = true;
});
} else
((store.step = 1), (store.currentStep = 1)), (store.showLoadStatus = true);
}
async function saveEvaluation(formSpec: any, detail: any) {
const salaries = detail.salaries.map((e: any) => ({
amount: e.amount,
date: e.date,
mouthSalaryAmount: e.mouthSalaryAmount ? e.mouthSalaryAmount : 0,
posNo: e.posNo,
position: e.position,
positionSalaryAmount: e.positionSalaryAmount ? e.positionSalaryAmount : 0,
refCommandDate: e.refCommandDate,
refCommandNo: e.refCommandNo ? e.refCommandNo : "",
salaryClass: e.salaryClass ? e.salaryClass : "",
salaryRef: e.salaryRef ? e.salaryRef : "",
salaryStatus: e.salaryStatus ? e.salariesStatus : "",
}));
const educations = detail.educations.map((e: any) => ({
country: e.country,
degree: e.degree,
duration: e.duration,
durationYear: e.durationYear.toString(),
educationLevel: e.educationLevel,
endDate: e.endDate,
field: e.field,
finishDate: e.finishDate,
fundName: e.fundName,
gpa: e.gpa,
institute: e.institute,
isDate: e.isDate,
isEducation: e.isEducation,
other: e.other,
startDate: e.startDate,
}));
const form = {
userId: detail.id,
citizenId: detail.citizenId,
prefix: detail.prefix,
fullName: `${detail.firstName} ${detail.lastName}.`,
position: detail.position,
oc: detail.oc,
salary: detail.salary.toString(),
positionLevel: detail.positionLevel,
posNo: detail.posNo,
birthDate: detail.birthDate,
govAge: detail.govAge,
type: store.tabMenu === "1" ? "EXPERT" : "SPECIAL_EXPERT",
step: "PREPARE_DOC_V1",
isEducationalQft: formSpec.isEducationalQft,
isGovermantServiceHtr: formSpec.isGovermantServiceHtr,
isOperatingExp: formSpec.isOperatingExp,
isMinPeriodOfTenure: formSpec.isMinPeriodOfTenure,
isHaveSpecificQft: formSpec.isHaveSpecificQft,
isHaveProLicense: formSpec.isHaveProLicense,
isHaveMinPeriodOrHoldPos: formSpec.isHaveMinPeriodOrHoldPos,
reason: "",
educations: [...educations],
certificates: [...detail.certificates],
salaries: [...salaries],
trainings: [...detail.trainings],
assessments: [...detail.assessments],
};
showLoader();
await http
.post(config.API.evaluationCheckspec(), form)
.then((res) => {
fetchCheckStatus();
})
.catch((err) => {
console.log(err);
})
.finally(() => {
fetchCheckStep(store?.evaluateId);
hideLoader();
});
}
async function nextPrapare(type: string, body: any) {
showLoader();
await http
.put(config.API.evaluationPreparedoc(store.evaluateId, type), body)
.then((res) => {})
.catch((err) => {
console.log(err);
})
.finally(() => {
hideLoader();
fetchCheckStatus();
});
}
async function nextCheckDoc(type: string) {
showLoader();
await http
.put(config.API.evaluationCheckdoc(store.evaluateId, type))
.then((res) => {})
.catch((err) => {
console.log(err);
})
.finally(() => {
hideLoader();
fetchCheckStep(store?.evaluateId);
});
}
// async function nextCheckDoc2(data: any) {
// const body = {
// commanderAboveFullnameDoc2: data.commanderAboveFullname,
// commanderAbovePositionDoc2: data.commanderAbovePosition,
// commanderFullnameDoc2: data.commanderFullname,
// commanderPositionDoc2: data.commanderPosition,
// };
// showLoader();
// await http
// .put(config.API.evaluationCheckdocV1(store.evaluateId), body)
// .then((res) => {})
// .catch((err) => {})
// .finally(() => {
// hideLoader();
// fetchCheckStatus();
// });
// }
async function nextPrepareDoc2() {
showLoader();
await http
.put(config.API.evaluationPreparedocV2(store.evaluateId))
.then((res) => {})
.catch((err) => {})
.finally(() => {
hideLoader();
fetchCheckStatus();
});
}
export default {
fetchCheckStatus,
saveEvaluation,
nextPrapare,
nextCheckDoc,
// nextCheckDoc2,
nextPrepareDoc2,
};