102 lines
3.5 KiB
JavaScript
102 lines
3.5 KiB
JavaScript
export default defineEventHandler(async (event) => {
|
|
const { temujanjiID } = event.context.params;
|
|
const body = await readBody(event);
|
|
|
|
try {
|
|
// Get temujanji details ID
|
|
const temujanjiDetailsID = await prisma.temujanji.findFirst({
|
|
where: { temujanjiID: parseInt(temujanjiID) },
|
|
select: {
|
|
temujanjiID: true,
|
|
temujanjiDetailID: true,
|
|
noSiri: true,
|
|
jenisSemakan: true,
|
|
tarikh: true,
|
|
masa: true,
|
|
status: true,
|
|
},
|
|
});
|
|
|
|
console.log(temujanjiDetailsID);
|
|
|
|
// Update the main `temujanji` table and related details in `temujanji_detail`
|
|
await prisma.temujanji_detail.update({
|
|
where: {
|
|
temujanjiDetailID: temujanjiDetailsID.temujanjiDetailID,
|
|
},
|
|
data: {
|
|
negara: body.negara,
|
|
namaPemilik: body.namaPemilik,
|
|
noDokumen: body.noDokumen,
|
|
kewarganegaraan: body.kewarganegaraan,
|
|
tarikhLahir: new Date(body.tarikhLahir),
|
|
jantina: body.jantina,
|
|
tarikhLuputDokumen: new Date(body.tarikhLuputDokumen),
|
|
skorPersamaanMuka: parseFloat(body.skorPersamaanMuka),
|
|
skorPersamaanCapJari: parseFloat(body.skorPersamaanCapJari),
|
|
umur: body.umur ? parseInt(body.umur) : null,
|
|
tinggi: body.tinggi ? parseFloat(body.tinggi) : null,
|
|
warnaRambut: body.warnaRambut || null,
|
|
bangsa: body.bangsa || null,
|
|
etnik: body.etnik || null,
|
|
bentukKepala: body.bentukKepala || null,
|
|
mata: body.mata || null,
|
|
telinga: body.telinga || null,
|
|
hidung: body.hidung || null,
|
|
mulut: body.mulut || null,
|
|
parut: body.parut || null,
|
|
sejarahPerjalanan: body.sejarahPerjalanan || null,
|
|
persamaanTandaTangan: body.persamaanTandaTangan || null,
|
|
pemeriksaanLain: body.pemeriksaanLain || null,
|
|
dapatan: body.dapatan,
|
|
modified_at: new Date(),
|
|
},
|
|
});
|
|
|
|
// insert temujanji_log
|
|
await prisma.temujanji_log.create({
|
|
data: {
|
|
temujanjiID: parseInt(temujanjiID),
|
|
jenisSemakan: temujanjiDetailsID.jenisSemakan,
|
|
tarikh: temujanjiDetailsID.tarikh,
|
|
masa: temujanjiDetailsID.masa,
|
|
negara: body.negara,
|
|
namaPemilik: body.namaPemilik,
|
|
noDokumen: body.noDokumen,
|
|
kewarganegaraan: body.kewarganegaraan,
|
|
tarikhLahir: new Date(body.tarikhLahir),
|
|
jantina: body.jantina,
|
|
tarikhLuputDokumen: new Date(body.tarikhLuputDokumen),
|
|
skorPersamaanMuka: parseFloat(body.skorPersamaanMuka),
|
|
skorPersamaanCapJari: parseFloat(body.skorPersamaanCapJari),
|
|
umur: body.umur ? parseInt(body.umur) : null,
|
|
tinggi: body.tinggi ? parseFloat(body.tinggi) : null,
|
|
warnaRambut: body.warnaRambut || null,
|
|
bangsa: body.bangsa || null,
|
|
etnik: body.etnik || null,
|
|
bentukKepala: body.bentukKepala || null,
|
|
mata: body.mata || null,
|
|
telinga: body.telinga || null,
|
|
hidung: body.hidung || null,
|
|
mulut: body.mulut || null,
|
|
parut: body.parut || null,
|
|
sejarahPerjalanan: body.sejarahPerjalanan || null,
|
|
persamaanTandaTangan: body.persamaanTandaTangan || null,
|
|
pemeriksaanLain: body.pemeriksaanLain || null,
|
|
dapatan: body.dapatan,
|
|
},
|
|
});
|
|
|
|
return {
|
|
statusCode: 200,
|
|
message: "Temujanji berjaya dikemaskini.",
|
|
};
|
|
} catch (error) {
|
|
console.error("Error updating temujanji:", error);
|
|
return {
|
|
statusCode: 500,
|
|
message: "Gagal mengemaskini temujanji.",
|
|
};
|
|
}
|
|
});
|