fix: create startOfTour from startBegin on same day as tour start

This commit is contained in:
Marcel Arndt 2025-06-30 07:55:14 +02:00
parent b9fd09a79f
commit c2b5f55d2d
1 changed files with 9 additions and 12 deletions

View File

@ -2,15 +2,15 @@ import { Logger } from '@nestjs/common';
import { Anomaly, Employee, Prisma, Tour } from '@prisma/client';
import {
Interval,
addDays,
addMilliseconds,
addMinutes,
differenceInMinutes,
format,
getHours,
getMinutes,
isBefore,
isWithinInterval,
set,
subMilliseconds,
subMilliseconds
} from 'date-fns';
import { getTimezoneOffset, toZonedTime } from 'date-fns-tz';
@ -108,7 +108,7 @@ export class EmployeesLoggedInDetector extends AnomalyDetector {
startOfTour,
getTimezoneOffset('Europe/Berlin', startOfTour),
),
'HH:mm',
'dd.MM.yy HH:mm',
)}`,
},
...(attendanceInterval
@ -119,7 +119,7 @@ export class EmployeesLoggedInDetector extends AnomalyDetector {
attendanceInterval.start,
getTimezoneOffset('Europe/Berlin', startOfTour),
),
'HH:mm',
'dd.MM.yy HH:mm',
)}${
attendanceInterval.end
? ` - ${format(
@ -363,16 +363,13 @@ export class EmployeesLoggedInDetector extends AnomalyDetector {
if (!startBegin) return null;
const [hours, minutes] = startBegin.split(':').map((v) => +v);
const tempDate = subMilliseconds(
let modifiedTime = subMilliseconds(
set(startDate, { hours, minutes }),
getTimezoneOffset('Europe/Berlin', startDate),
);
const hourValue = getHours(tempDate);
const minuteValue = getMinutes(tempDate);
const modifiedTime = set(startDate, {
hours: hourValue,
minutes: minuteValue,
});
if (differenceInMinutes(modifiedTime, startDate) / 60 < -4) {
modifiedTime = addDays(modifiedTime, 1);
}
// this.logger.debug(
// `getStartOfTour(${startDate.toISOString()}, ${startBegin}): ${modifiedTime.toISOString()}`,