From 1a24673c0f31022e2b1e571d9de06103c4516efb Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Thu, 30 May 2024 11:42:39 +0800 Subject: [PATCH] update consumption report --- .../modules/report/service/ReportService.kt | 2 ++ .../report/AR03_Resource Overconsumption.xlsx | Bin 13170 -> 13340 bytes 2 files changed, 2 insertions(+) diff --git a/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt b/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt index 621ae19..2a54572 100644 --- a/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt +++ b/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt @@ -1806,6 +1806,7 @@ open class ReportService( + " p.name, " + " t.code as team, " + " c.code as client, " + + " COALESCE(ss.name, 'N/A') as subsidiary, " + " p.expectedTotalFee * 0.8 as plannedBudget, " + " COALESCE(tns.totalBudget, 0) as actualConsumedBudget, " + " COALESCE(p.totalManhour, 0) as plannedManhour, " @@ -1826,6 +1827,7 @@ open class ReportService( + " LEFT JOIN staff s ON p.teamLead = s.id " + " LEFT JOIN salary sa ON s.salaryId = sa.salaryPoint " + " LEFT JOIN customer c ON p.customerId = c.id " + + " LEFT JOIN subsidiary ss on p.customerSubsidiaryId = ss.id " + " left join teamNormalConsumed tns on tns.project_id = p.id " + " WHERE p.deleted = false " + " and p.status = 'On-going' " diff --git a/src/main/resources/templates/report/AR03_Resource Overconsumption.xlsx b/src/main/resources/templates/report/AR03_Resource Overconsumption.xlsx index 88dd3c84e085a54dff23962317db12778795a695..52e46ba30c385dcd4837082125c3196623179a20 100644 GIT binary patch delta 5456 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 delta 5280 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