From 75fa5f411d819fbd1ccb6555082283510642cc98 Mon Sep 17 00:00:00 2001 From: Gelo Date: Sun, 15 Oct 2023 16:55:27 +0800 Subject: [PATCH] Refactor code to group by reimbursement request ID and return counts for pending, scheduled, and unscheduled requests --- .../reimbursement.analytics.service.ts | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/src/finance/services/reimbursement.analytics.service.ts b/src/finance/services/reimbursement.analytics.service.ts index 6f4301c..21eab8a 100644 --- a/src/finance/services/reimbursement.analytics.service.ts +++ b/src/finance/services/reimbursement.analytics.service.ts @@ -118,6 +118,9 @@ export class ReimbursementAnalyticsService { '=', PENDING_REQUEST, ) + .groupBy( + 'finance_reimbursement_approval_matrix.reimbursement_request_id', + ) .executeTakeFirst(); const scheduled = await trx @@ -143,6 +146,9 @@ export class ReimbursementAnalyticsService { '=', SCHEDULED_REQUEST, ) + .groupBy( + 'finance_reimbursement_approval_matrix.reimbursement_request_id', + ) .executeTakeFirst(); const unscheduled = await trx @@ -168,12 +174,17 @@ export class ReimbursementAnalyticsService { '=', UNSCHEDULED_REQUEST, ) + .groupBy( + 'finance_reimbursement_approval_matrix.reimbursement_request_id', + ) .executeTakeFirst(); return { - pendingApproval, - scheduled, - unscheduled, + pendingApproval: { + count: pendingApproval ? pendingApproval.count : 0, + }, + scheduled: { count: scheduled ? scheduled.count : 0 }, + unscheduled: { count: scheduled ? scheduled.count : 0 }, }; }); @@ -258,6 +269,9 @@ export class ReimbursementAnalyticsService { '=', PENDING_REQUEST, ) + .groupBy( + 'finance_reimbursement_approval_matrix.reimbursement_request_id', + ) .executeTakeFirst(); const scheduled = await trx @@ -282,6 +296,9 @@ export class ReimbursementAnalyticsService { '=', SCHEDULED_REQUEST, ) + .groupBy( + 'finance_reimbursement_approval_matrix.reimbursement_request_id', + ) .executeTakeFirst(); const unscheduled = await trx @@ -306,12 +323,17 @@ export class ReimbursementAnalyticsService { '=', UNSCHEDULED_REQUEST, ) + .groupBy( + 'finance_reimbursement_approval_matrix.reimbursement_request_id', + ) .executeTakeFirst(); return { - pendingApproval, - scheduled, - unscheduled, + pendingApproval: { + count: pendingApproval ? pendingApproval.count : 0, + }, + scheduled: { count: scheduled ? scheduled.count : 0 }, + unscheduled: { count: unscheduled ? unscheduled.count : 0 }, }; });