From c2203f77cb4d590dc5aa9c1810bfd9e146a93366 Mon Sep 17 00:00:00 2001 From: Matthieu Haineault Date: Tue, 4 Nov 2025 09:41:46 -0500 Subject: [PATCH] fix(shifts): fix overlaping logic --- .../shifts/services/shifts-upsert.service.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/time-and-attendance/time-tracker/shifts/services/shifts-upsert.service.ts b/src/time-and-attendance/time-tracker/shifts/services/shifts-upsert.service.ts index f2c5bd0..52884c7 100644 --- a/src/time-and-attendance/time-tracker/shifts/services/shifts-upsert.service.ts +++ b/src/time-and-attendance/time-tracker/shifts/services/shifts-upsert.service.ts @@ -187,8 +187,23 @@ export class ShiftsUpsertService { select: shift_select, }); - existing.push({ start_time: row.start_time, end_time: row.end_time }); - existing_map.set(map_key, existing); + const normalizeHHmm = (value: Date) => toHHmmFromString(toStringFromHHmm(value)); + + for (const { timesheet_id, day, key } of timesheet_keys) { + const day_date = new Date(day); + existing.push({ + start_time: normalizeHHmm(row.start_time), + end_time: normalizeHHmm(row.end_time) + }); + existing_map.set( + key, + existing.map(row => ({ + start_time: normalizeHHmm(row.start_time), + end_time: normalizeHHmm(row.end_time), + })), + ); + } + const {type: bank_type} = await this.typeResolver.findTypeByBankCodeId(row.bank_code_id); const summary = await this.overtime.getWeekOvertimeSummary(timesheet_id, normed.date, tx);