| @@ -75,6 +75,17 @@ open class LeaveService( | |||||
| return transformToLeaveEntryMap(leaveRepository.findAllByStaff(memberStaff)) | return transformToLeaveEntryMap(leaveRepository.findAllByStaff(memberStaff)) | ||||
| } | } | ||||
| open fun deleteMemberLeaveEntry(staffId: Long, entryId: Long): Map<String, List<LeaveEntry>> { | |||||
| val currentStaff = staffsService.currentStaff() ?: throw BadRequestException() | |||||
| // Make sure current staff is a team lead | |||||
| teamService.getMyTeamForStaff(currentStaff) ?: throw BadRequestException() | |||||
| val memberStaff = staffsService.getStaff(staffId) | |||||
| leaveRepository.deleteById(entryId) | |||||
| return transformToLeaveEntryMap(leaveRepository.findAllByStaff(memberStaff)) | |||||
| } | |||||
| open fun getTeamMemberLeave(): Map<Long, TeamMemberLeaveEntries> { | open fun getTeamMemberLeave(): Map<Long, TeamMemberLeaveEntries> { | ||||
| val currentStaff = staffsService.currentStaff() ?: return emptyMap() | val currentStaff = staffsService.currentStaff() ?: return emptyMap() | ||||
| // Get team where current staff is team lead | // Get team where current staff is team lead | ||||
| @@ -83,6 +83,17 @@ open class TimesheetsService( | |||||
| return transformToTimeEntryMap(timesheetRepository.findAllByStaff(memberStaff)) | return transformToTimeEntryMap(timesheetRepository.findAllByStaff(memberStaff)) | ||||
| } | } | ||||
| open fun deleteMemberTimeEntry(staffId: Long, entryId: Long): Map<String, List<TimeEntry>> { | |||||
| val currentStaff = staffsService.currentStaff() ?: throw BadRequestException() | |||||
| // Make sure current staff is a team lead | |||||
| teamService.getMyTeamForStaff(currentStaff) ?: throw BadRequestException() | |||||
| val memberStaff = staffsService.getStaff(staffId) | |||||
| timesheetRepository.deleteById(entryId) | |||||
| return transformToTimeEntryMap(timesheetRepository.findAllByStaff(memberStaff)) | |||||
| } | |||||
| open fun getTimesheet(): Map<String, List<TimeEntry>> { | open fun getTimesheet(): Map<String, List<TimeEntry>> { | ||||
| // Need to be associated with a staff | // Need to be associated with a staff | ||||
| val currentStaff = staffsService.currentStaff() ?: return emptyMap() | val currentStaff = staffsService.currentStaff() ?: return emptyMap() | ||||
| @@ -66,6 +66,16 @@ class TimesheetsController(private val timesheetsService: TimesheetsService, pri | |||||
| }.getOrNull()) | }.getOrNull()) | ||||
| } | } | ||||
| @PostMapping("/deleteMemberEntry") | |||||
| fun deleteMemberEntry(@Valid @RequestBody request: TeamEntryDelete): Map<String, List<TimeEntry>> { | |||||
| return timesheetsService.deleteMemberTimeEntry(request.staffId, request.entryId) | |||||
| } | |||||
| @PostMapping("/deleteMemberLeave") | |||||
| fun deleteMemberLeave(@Valid @RequestBody request: TeamEntryDelete): Map<String, List<LeaveEntry>> { | |||||
| return leaveService.deleteMemberLeaveEntry(request.staffId, request.entryId) | |||||
| } | |||||
| @GetMapping("/leaves") | @GetMapping("/leaves") | ||||
| fun getLeaveEntry(): Map<String, List<LeaveEntry>> { | fun getLeaveEntry(): Map<String, List<LeaveEntry>> { | ||||
| return leaveService.getLeaves() | return leaveService.getLeaves() | ||||
| @@ -0,0 +1,6 @@ | |||||
| package com.ffii.tsms.modules.timesheet.web.models | |||||
| data class TeamEntryDelete( | |||||
| val staffId: Long, | |||||
| val entryId: Long, | |||||
| ) | |||||