From 60e512b3ddb9d53eae18f35bfd1d5de8ed0de483 Mon Sep 17 00:00:00 2001 From: Tirta Aditya Date: Fri, 24 Oct 2025 11:16:35 +0700 Subject: [PATCH] fixing absensi --- .../absensi/services/absensi.service.js | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/app/modules/absensi/services/absensi.service.js b/app/modules/absensi/services/absensi.service.js index ab43600..8439002 100644 --- a/app/modules/absensi/services/absensi.service.js +++ b/app/modules/absensi/services/absensi.service.js @@ -76,6 +76,11 @@ const create = async (req, res) => { if (attendance && attendance.clock_in) { // 🕛 Jika branch tidak mengaktifkan absen siang if (!branch.lunch_attendance) { + + if (currentHour < 15 && !attendance.clock_out) { + await t.rollback(); + return response.failed(res, 400, 'Belum waktunya absen pulang'); + } // Langsung lewati logika absen siang dan lanjut ke clock_out if (currentHour >= 15 && !attendance.clock_out) { attendance.clock_out = now.toDate(); @@ -101,11 +106,19 @@ const create = async (req, res) => { ); } - if (currentHour < 15 && !attendance.clock_out) { + + } else { + + if (currentHour < 15 && attendance.lunch_in && !attendance.clock_out) { await t.rollback(); return response.failed(res, 400, 'Belum waktunya absen pulang'); } - } else { + + if (currentHour < 12 && !attendance.lunch_in) { + await t.rollback(); + return response.failed(res, 400, 'Belum waktunya absen setelah makan siang'); + } + // 🕛 Jika branch pakai absen siang if (currentHour >= 12 && currentHour < 15 && !attendance.lunch_in) { attendance.lunch_in = now.toDate(); @@ -113,12 +126,7 @@ const create = async (req, res) => { await t.commit(); return response.success(res, attendance, 'Absen masuk setelah makan siang berhasil'); } - - if (currentHour < 12 && !attendance.lunch_in) { - await t.rollback(); - return response.failed(res, 400, 'Belum waktunya absen setelah makan siang'); - } - + if (currentHour >= 15 && !attendance.clock_out) { attendance.clock_out = now.toDate(); @@ -141,12 +149,7 @@ const create = async (req, res) => { }, 'Absen pulang berhasil' ); - } - - if (currentHour < 15 && attendance.lunch_in && !attendance.clock_out) { - await t.rollback(); - return response.failed(res, 400, 'Belum waktunya absen pulang'); - } + } } await t.rollback();