From ecd97ae5a3f5fd7aacec7c4fd8412df3ea1339e3 Mon Sep 17 00:00:00 2001 From: BOHA Date: Thu, 2 Apr 2026 11:05:42 +0200 Subject: [PATCH] fix: bulk attendance fill creates holiday records instead of skipping Holidays now get leave_type: "holiday" with 8h so they count in fund calculation. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/services/attendance.service.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/services/attendance.service.ts b/src/services/attendance.service.ts index fe53c4d..bb1d798 100644 --- a/src/services/attendance.service.ts +++ b/src/services/attendance.service.ts @@ -1087,7 +1087,6 @@ export async function bulkCreateAttendance(data: BulkAttendanceData) { const dow = date.getDay(); if (dow === 0 || dow === 6) continue; - if (isHoliday(dateStr)) continue; if (existingSet.has(`${userId}:${dateStr}`)) { skipped++; @@ -1095,6 +1094,20 @@ export async function bulkCreateAttendance(data: BulkAttendanceData) { } const shiftDate = new Date(Date.UTC(yr, mo - 1, day, 12, 0, 0)); + + if (isHoliday(dateStr)) { + await prisma.attendance.create({ + data: { + user_id: userId, + shift_date: shiftDate, + leave_type: "holiday", + leave_hours: 8, + }, + }); + inserted++; + continue; + } + await prisma.attendance.create({ data: { user_id: userId,