diff --git a/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt b/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt index 01b6aff..e86aeed 100644 --- a/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt +++ b/src/main/java/com/ffii/tsms/modules/project/service/ProjectsService.kt @@ -11,6 +11,7 @@ import com.ffii.tsms.modules.project.entity.Milestone import com.ffii.tsms.modules.project.entity.projections.InvoiceInfoSearchInfo import com.ffii.tsms.modules.project.entity.projections.InvoiceSearchInfo import com.ffii.tsms.modules.project.web.models.* +import com.ffii.tsms.modules.timesheet.entity.TimesheetRepository import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import java.time.LocalDate @@ -39,7 +40,8 @@ open class ProjectsService( private val milestoneRepository: MilestoneRepository, private val gradeAllocationRepository: GradeAllocationRepository, private val projectTaskRepository: ProjectTaskRepository, - private val milestonePaymentRepository: MilestonePaymentRepository, private val taskGroupRepository: TaskGroupRepository + private val milestonePaymentRepository: MilestonePaymentRepository, private val taskGroupRepository: TaskGroupRepository, + private val timesheetRepository: TimesheetRepository ) { open fun allProjects(): List { return projectRepository.findProjectSearchInfoByOrderByCreatedDesc() @@ -80,7 +82,7 @@ open class ProjectsService( ) }, hoursAllocated = project.totalManhour ?: 0.0, hoursAllocatedOther = 0.0, - hoursSpent = 0.0, + hoursSpent = timesheetRepository.totalNormalHoursConsumedByProject(project), hoursSpentOther = 0.0 ) } } diff --git a/src/main/java/com/ffii/tsms/modules/timesheet/entity/TimesheetRepository.kt b/src/main/java/com/ffii/tsms/modules/timesheet/entity/TimesheetRepository.kt index 148ab90..59b09f8 100644 --- a/src/main/java/com/ffii/tsms/modules/timesheet/entity/TimesheetRepository.kt +++ b/src/main/java/com/ffii/tsms/modules/timesheet/entity/TimesheetRepository.kt @@ -2,6 +2,8 @@ package com.ffii.tsms.modules.timesheet.entity; import com.ffii.core.support.AbstractRepository import com.ffii.tsms.modules.data.entity.Staff +import com.ffii.tsms.modules.project.entity.Project +import org.springframework.data.jpa.repository.Query import java.time.LocalDate interface TimesheetRepository : AbstractRepository { @@ -9,4 +11,7 @@ interface TimesheetRepository : AbstractRepository { fun findAllByStaff(staff: Staff): List fun deleteAllByStaffAndRecordDate(staff: Staff, recordDate: LocalDate) + + @Query("SELECT IFNULL(SUM(normalConsumed), 0) FROM Timesheet t JOIN ProjectTask pt on t.projectTask = pt WHERE pt.project = ?1") + fun totalNormalHoursConsumedByProject(project: Project): Double } \ No newline at end of file