diff --git a/app/modules/absensi/services/absensi.service.js b/app/modules/absensi/services/absensi.service.js index af88536..4711103 100644 --- a/app/modules/absensi/services/absensi.service.js +++ b/app/modules/absensi/services/absensi.service.js @@ -36,19 +36,22 @@ const create = async (req, res) => { const user = await User.findOne({ where: { id: user_id } }); - if (!user) return response.failed(res, 404, 'User tidak ditemukan'); + if (!user) { + await t.rollback() + return response.failed(res, 404, 'User tidak ditemukan'); + } const branch = await Branch.findOne({ where: { id: user.branch_id } }); - if (!branch) return response.failed(res, 404, 'Branch kantor tidak ditemukan'); + if (!branch) { + await t.rollback() + return response.failed(res, 404, 'Branch kantor tidak ditemukan'); + } let attendance = await Attedances.findOne({ where: { user_id, date: today }, }); - if (attendance && ['sick', 'permission'].includes(attendance.type)) { - return response.failed(res, 400, `Hari ini Anda sudah absen ${attendance.type}`); - } - + // === Jika izin (sakit / izin) === if (['sick', 'permission'].includes(type)) { if (attendance) return response.failed(res, 400, 'Sudah ada absensi hari ini'); @@ -65,6 +68,10 @@ const create = async (req, res) => { await t.commit(); return response.success(res, attendance, 'Izin berhasil disimpan'); } + if (attendance && ['sick', 'permission'].includes(attendance.type)) { + await t.rollback() + return response.failed(res, 400, `Hari ini Anda sudah absen ${attendance.type}`); + } if (attendance && attendance.clock_in) { // 🕛 Jika branch tidak mengaktifkan absen siang