2024-09-05 10:54:53 +08:00

62 lines
2.2 KiB
JavaScript

// File: /api/permohonan/[noSiri]/semak.put.js
export default defineEventHandler(async (event) => {
const { noSiri } = event.context.params;
const body = await readBody(event); // Get form data from frontend
try {
// Get the current user (assuming user authentication is handled)
const user = event.context.user;
// Find the permohonan by its noSiri
const permohonan = await prisma.permohonan.findUnique({
where: { no_siri: noSiri },
});
if (!permohonan) {
return { statusCode: 404, message: "Permohonan tidak dijumpai." };
}
// Update or create the permohonan semakan entry
await prisma.permohonan_semakan.upsert({
where: {
permohonanID: permohonan.id,
},
update: {
peralatan_keadaan_baik: body.peralatanBaik === "Ya" ? 1 : 0,
pegawai_berkelayakan: body.pegawaiBerkelayakan === "Ya" ? 1 : 0,
kaedah_dpt_dilakukan: body.kaedahDapatDilakukan === "Ya" ? 1 : 0,
subkontrak_diperlukan: body.subkontrakDiperlukan === "Ya" ? 1 : 0,
tugasan_diterima: body.tugasanDiterima === "Ya" ? 1 : 0,
ulasan_pegawai: body.ulasanPegawaiKaunter,
disemak_oleh: user.userID, // Use the authenticated user ID
create_at: new Date(),
},
create: {
permohonanID: permohonan.id,
peralatan_keadaan_baik: body.peralatanBaik === "Ya" ? 1 : 0,
pegawai_berkelayakan: body.pegawaiBerkelayakan === "Ya" ? 1 : 0,
kaedah_dpt_dilakukan: body.kaedahDapatDilakukan === "Ya" ? 1 : 0,
subkontrak_diperlukan: body.subkontrakDiperlukan === "Ya" ? 1 : 0,
tugasan_diterima: body.tugasanDiterima === "Ya" ? 1 : 0,
ulasan_pegawai: body.ulasanPegawaiKaunter,
disemak_oleh: user.userID,
create_at: new Date(),
},
});
// Update the status of the permohonan to "Permohonan Disemak"
await prisma.permohonan.update({
where: { no_siri: noSiri },
data: { status_permohonan: "Permohonan Disemak" },
});
return {
statusCode: 200,
message: "Maklumat semakan berjaya dikemaskini.",
};
} catch (error) {
console.error(error);
return { statusCode: 500, message: "Gagal mengemaskini maklumat semakan." };
}
});