From 8d17490f7e239692a793057aff395325a52a99d3 Mon Sep 17 00:00:00 2001 From: chamiakJ Date: Tue, 29 Jul 2025 19:08:52 +0530 Subject: [PATCH] fix(reporting): update task logging queries for accuracy - Modified SQL queries in the ReportingMembersController to correctly reference user IDs from the team_members table, ensuring accurate time logged calculations. - Added a check in the on_quick_assign_or_remove command to handle cases where no team member is found, improving error handling and logging. --- .../controllers/reporting/reporting-members-controller.ts | 4 ++-- .../src/socket.io/commands/on-quick-assign-or-remove.ts | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/worklenz-backend/src/controllers/reporting/reporting-members-controller.ts b/worklenz-backend/src/controllers/reporting/reporting-members-controller.ts index 97500437..bad62e16 100644 --- a/worklenz-backend/src/controllers/reporting/reporting-members-controller.ts +++ b/worklenz-backend/src/controllers/reporting/reporting-members-controller.ts @@ -265,8 +265,8 @@ export default class ReportingMembersController extends ReportingControllerBase (SELECT color_code FROM project_phases WHERE id = (SELECT phase_id FROM task_phase WHERE task_id = t.id)) AS phase_color, (total_minutes * 60) AS total_minutes, - (SELECT SUM(time_spent) FROM task_work_log WHERE task_id = t.id AND ta.team_member_id = $1) AS time_logged, - ((SELECT SUM(time_spent) FROM task_work_log WHERE task_id = t.id AND ta.team_member_id = $1) - (total_minutes * 60)) AS overlogged_time`; + (SELECT SUM(time_spent) FROM task_work_log twl WHERE twl.task_id = t.id AND twl.user_id = (SELECT user_id FROM team_members WHERE id = $1)) AS time_logged, + ((SELECT SUM(time_spent) FROM task_work_log twl WHERE twl.task_id = t.id AND twl.user_id = (SELECT user_id FROM team_members WHERE id = $1)) - (total_minutes * 60)) AS overlogged_time`; } protected static getActivityLogsOverdue(key: string, dateRange: string[]) { diff --git a/worklenz-backend/src/socket.io/commands/on-quick-assign-or-remove.ts b/worklenz-backend/src/socket.io/commands/on-quick-assign-or-remove.ts index 4551bd72..6c641530 100644 --- a/worklenz-backend/src/socket.io/commands/on-quick-assign-or-remove.ts +++ b/worklenz-backend/src/socket.io/commands/on-quick-assign-or-remove.ts @@ -75,7 +75,7 @@ export async function on_quick_assign_or_remove(_io: Server, socket: Socket, dat assign_type: type }); - if (userId !== assignment.user_id) { + if (assignment && userId !== assignment.user_id) { NotificationsService.createTaskUpdate( type, userId as string, @@ -109,6 +109,11 @@ export async function assignMemberIfNot(taskId: string, userId: string, teamId: const result = await db.query(q, [taskId, userId, teamId]); const [data] = result.rows; + if (!data) { + log_error(new Error(`No team member found for userId: ${userId}, teamId: ${teamId}`)); + return; + } + const body = { team_member_id: data.team_member_id, project_id: data.project_id,