From 69e3c5d5ee7b0ab898603a9b618c9027ad2967e0 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Thu, 15 Aug 2024 15:49:16 +0800 Subject: [PATCH] 1. Project - Add auto calculation for total manhour --- .../java/com/ffii/tsms/modules/project/entity/Project.kt | 3 +++ .../com/ffii/tsms/modules/project/service/ProjectsService.kt | 2 ++ .../tsms/modules/project/web/models/NewProjectRequest.kt | 1 + .../changes/20240815_01_cyril/01_update_project.sql | 5 +++++ 4 files changed, 11 insertions(+) create mode 100644 src/main/resources/db/changelog/changes/20240815_01_cyril/01_update_project.sql diff --git a/src/main/java/com/ffii/tsms/modules/project/entity/Project.kt b/src/main/java/com/ffii/tsms/modules/project/entity/Project.kt index 77a3e36..54267e8 100644 --- a/src/main/java/com/ffii/tsms/modules/project/entity/Project.kt +++ b/src/main/java/com/ffii/tsms/modules/project/entity/Project.kt @@ -69,6 +69,9 @@ open class Project : BaseEntity() { @Column(name = "totalManhour") open var totalManhour: Double? = null + @Column(name = "ratePerManhour") + open var ratePerManhour: Double? = null + @OneToMany(mappedBy = "project", cascade = [CascadeType.ALL], orphanRemoval = true) open var gradeAllocations: MutableSet = mutableSetOf() 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 0892abd..01521fe 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 @@ -227,6 +227,7 @@ open class ProjectsService( expectedTotalFee = request.expectedProjectFee subContractFee = request.subContractFee totalManhour = request.totalManhour + ratePerManhour = request.ratePerManhour actualStart = request.projectActualStart actualEnd = request.projectActualEnd status = if (this.status == "Deleted" || this.deleted == true) "Deleted" @@ -729,6 +730,7 @@ open class ProjectsService( expectedProjectFee = row.getCell(9).numericCellValue, subContractFee = null, totalManhour = row.getCell(11).numericCellValue, + ratePerManhour = 250.0, locationId = 1, // HK buildingTypeIds = mutableListOf(buildingType!!.id!!), workNatureIds = mutableListOf(workNature!!.id!!), diff --git a/src/main/java/com/ffii/tsms/modules/project/web/models/NewProjectRequest.kt b/src/main/java/com/ffii/tsms/modules/project/web/models/NewProjectRequest.kt index b3214e6..413b0b2 100644 --- a/src/main/java/com/ffii/tsms/modules/project/web/models/NewProjectRequest.kt +++ b/src/main/java/com/ffii/tsms/modules/project/web/models/NewProjectRequest.kt @@ -41,6 +41,7 @@ data class NewProjectRequest( val manhourPercentageByGrade: Map, val taskGroups: Map, val allocatedStaffIds: List, + val ratePerManhour: Double, // Milestones val milestones: Map, diff --git a/src/main/resources/db/changelog/changes/20240815_01_cyril/01_update_project.sql b/src/main/resources/db/changelog/changes/20240815_01_cyril/01_update_project.sql new file mode 100644 index 0000000..89d7ec9 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240815_01_cyril/01_update_project.sql @@ -0,0 +1,5 @@ +-- liquibase formatted sql +-- changeset cyril:project + +ALTER TABLE `project` + ADD COLUMN `ratePerManhour` DOUBLE NULL DEFAULT NULL AFTER `totalManhour`;