From 2b47abadfa1f47b618227b8da203a0f92e27947f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Glasn=C3=A1k?= Date: Mon, 23 Jun 2025 01:44:54 +0200 Subject: [PATCH] fix(calendar): fixed scheduled capacity calculation by considering work hours and task status --- .../teams/_mixins/TeamsCalendar.mixin.ts | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/app/src/plugins/tm@dashboard/teams/_mixins/TeamsCalendar.mixin.ts b/app/src/plugins/tm@dashboard/teams/_mixins/TeamsCalendar.mixin.ts index 9520700..0443c37 100644 --- a/app/src/plugins/tm@dashboard/teams/_mixins/TeamsCalendar.mixin.ts +++ b/app/src/plugins/tm@dashboard/teams/_mixins/TeamsCalendar.mixin.ts @@ -42,9 +42,34 @@ export default { } else if (selectedDate.isSame(moment(), 'days')) { totalScheduledTime += timelineUtils._getDifferenceInMinutes(task._real_end, task._real_start) // Today - + const isTaskCurrentlyInProgress = moment(task._real_start).isBefore(moment(), 'minutes') && moment(task._real_end).isAfter(moment(), 'minutes') + const isTaskInFuture = moment(task._real_start).isAfter(moment(), 'minutes') + + const isTaskDuringWorkHours = moment(task._real_start).hour() >= employee.work_start && moment(task._real_start).hour() <= employee.work_end + + if (isTaskDuringWorkHours) { + if (isTaskCurrentlyInProgress) { + scheduledCapacityMinutes += + timelineUtils._getDifferenceInMinutes( + moment(), + task._real_end, + ); + } else if (isTaskInFuture) { + scheduledCapacityMinutes += + timelineUtils._getDifferenceInMinutes( + task._real_end, + task._real_start, + ); + } + } } else { - scheduledCapacityMinutes += timelineUtils._getDifferenceInMinutes(task._real_end, task._real_start) + // Future + const isTaskDuringWorkHours = moment(task._real_start).hour() >= employee.work_start && moment(task._real_start).hour() <= employee.work_end + + if (isTaskDuringWorkHours) { + scheduledCapacityMinutes += timelineUtils._getDifferenceInMinutes(task._real_end, task._real_start) + } + totalScheduledTime += timelineUtils._getDifferenceInMinutes(task._real_end, task._real_start) } })