From 05e5e5e95a601896b74793ccd63d7ee4e983f65c Mon Sep 17 00:00:00 2001 From: Wayne Date: Sun, 26 May 2024 00:16:25 +0900 Subject: [PATCH] Add project field to timesheet --- .../com/ffii/tsms/modules/timesheet/entity/Timesheet.kt | 5 +++++ .../tsms/modules/timesheet/service/TimesheetsService.kt | 4 +++- .../changes/20240525_01_wayne/01_timesheet_project.sql | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/db/changelog/changes/20240525_01_wayne/01_timesheet_project.sql diff --git a/src/main/java/com/ffii/tsms/modules/timesheet/entity/Timesheet.kt b/src/main/java/com/ffii/tsms/modules/timesheet/entity/Timesheet.kt index 9128493..1566126 100644 --- a/src/main/java/com/ffii/tsms/modules/timesheet/entity/Timesheet.kt +++ b/src/main/java/com/ffii/tsms/modules/timesheet/entity/Timesheet.kt @@ -2,6 +2,7 @@ package com.ffii.tsms.modules.timesheet.entity import com.ffii.core.entity.BaseEntity import com.ffii.tsms.modules.data.entity.Staff +import com.ffii.tsms.modules.project.entity.Project import com.ffii.tsms.modules.project.entity.ProjectTask import jakarta.persistence.* import jakarta.validation.constraints.NotNull @@ -29,6 +30,10 @@ open class Timesheet : BaseEntity() { @JoinColumn(name = "projectTaskId") open var projectTask: ProjectTask? = null + @ManyToOne + @JoinColumn(name = "projectId") + open var project: Project? = null + @Column(name = "remark") open var remark: String? = null } \ No newline at end of file diff --git a/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt b/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt index 1324c4b..31350b1 100644 --- a/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt +++ b/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt @@ -46,6 +46,7 @@ open class TimesheetsService( this.normalConsumed = timeEntry.inputHours this.otConsumed = timeEntry.otHours this.projectTask = projectTask + this.project = project this.remark = timeEntry.remark } } @@ -72,6 +73,7 @@ open class TimesheetsService( this.normalConsumed = entry.inputHours this.otConsumed = entry.otHours this.projectTask = projectTask + this.project = project this.remark = entry.remark this.recordDate = this.recordDate ?: recordDate this.staff = this.staff ?: memberStaff @@ -112,7 +114,7 @@ open class TimesheetsService( .mapValues { (_, timesheets) -> timesheets.map { timesheet -> TimeEntry( id = timesheet.id!!, - projectId = timesheet.projectTask?.project?.id, + projectId = timesheet.projectTask?.project?.id ?: timesheet.project?.id, taskId = timesheet.projectTask?.task?.id, taskGroupId = timesheet.projectTask?.task?.taskGroup?.id, inputHours = timesheet.normalConsumed ?: 0.0, diff --git a/src/main/resources/db/changelog/changes/20240525_01_wayne/01_timesheet_project.sql b/src/main/resources/db/changelog/changes/20240525_01_wayne/01_timesheet_project.sql new file mode 100644 index 0000000..d4a42a5 --- /dev/null +++ b/src/main/resources/db/changelog/changes/20240525_01_wayne/01_timesheet_project.sql @@ -0,0 +1,6 @@ +-- liquibase formatted sql +-- changeset wayne:timesheet_project + +ALTER TABLE timesheet ADD projectId INT NULL; + +ALTER TABLE timesheet ADD CONSTRAINT FK_TIMESHEET_ON_PROJECTID FOREIGN KEY (projectId) REFERENCES project (id);