diff --git a/src/main/java/com/ffii/tsms/modules/common/mail/service/MailService.kt b/src/main/java/com/ffii/tsms/modules/common/mail/service/MailService.kt index 84540e6..80e5667 100644 --- a/src/main/java/com/ffii/tsms/modules/common/mail/service/MailService.kt +++ b/src/main/java/com/ffii/tsms/modules/common/mail/service/MailService.kt @@ -84,7 +84,7 @@ open class MailService( if (mailRequest.from != null) { helper.setFrom(mailRequest.from!!) } else { - helper.setFrom(settingsService.getString(SettingNames.MAIL_SMTP_USERNAME)) + helper.setFrom("Timesheet Reminder <" + settingsService.getString(SettingNames.MAIL_SMTP_USERNAME) + ">") } if (mailRequest.priority != null) helper.setPriority(mailRequest.priority!!) diff --git a/src/main/java/com/ffii/tsms/modules/common/mail/web/MailController.kt b/src/main/java/com/ffii/tsms/modules/common/mail/web/MailController.kt index 0ea91c5..406b493 100644 --- a/src/main/java/com/ffii/tsms/modules/common/mail/web/MailController.kt +++ b/src/main/java/com/ffii/tsms/modules/common/mail/web/MailController.kt @@ -48,4 +48,9 @@ class MailController( fun test7thStaffList(){ mailReminderService.test7thStaffList() } + + @GetMapping("/test15th-staff-list") + fun test15thStaffList(){ + mailReminderService.test15thStaffList() + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/tsms/modules/data/entity/BuildingType.kt b/src/main/java/com/ffii/tsms/modules/data/entity/BuildingType.kt index b03c004..03ba8fa 100644 --- a/src/main/java/com/ffii/tsms/modules/data/entity/BuildingType.kt +++ b/src/main/java/com/ffii/tsms/modules/data/entity/BuildingType.kt @@ -29,4 +29,9 @@ open class BuildingType : IdEntity() { final override fun hashCode(): Int = if (this is HibernateProxy) this.hibernateLazyInitializer.persistentClass.hashCode() else javaClass.hashCode() + + fun startsWith(prefix: String, ignoreCase: Boolean = false): Boolean { + if (this.name == null) return false + return this.name!!.startsWith(prefix, ignoreCase) + } } \ No newline at end of file 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 39edddc..72a8a96 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 @@ -495,7 +495,14 @@ open class ProjectsService( } open fun allBuildingTypes(): List { - return buildingTypeRepository.findAll() + val sortedBuildingType = buildingTypeRepository.findAll().sortedBy { it.name }.sortedWith { a, b -> + when { + a.startsWith("Others") && !b.startsWith("Others") -> 1 // Move "Others" to the end + !a.startsWith("Others") && b.startsWith("Others") -> -1 // Keep non-"Others" items above + else -> 0 // Maintain relative order for other items + } + } + return sortedBuildingType; } open fun allWorkNatures(): List {