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