diff --git a/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt b/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt index 112b689..bf8dc06 100644 --- a/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt +++ b/src/main/java/com/ffii/tsms/modules/report/service/ReportService.kt @@ -3633,23 +3633,29 @@ open class ReportService( sortedTeams.forEach { team -> val currentTeam = team.code val _timesheets = timesheets.filter { ts -> -// for team log -// val thisTeam = teamlog.filter { +// for after team log is implemented +// val thisStaffTeam = teamlog.filter { // it.from.isBefore(ts.recordDate) // && it.to != null // && it.staff.id == ts.staff!!.id // }.maxByOrNull { it.from } - ts.project!!.teamLead!!.team.code == currentTeam // check isChargingTeam - && - ts.project!!.teamLead!!.team.code != ts.staff!!.team.code // check isCrossTeam -// ts.project!!.teamLead!!.team.id != thisTeam!!.team.id // for team log +// val thisProjectTeam = teamlog.filter { +// it.from.isBefore(ts.recordDate) +// && it.to != null +// && it.staff.id == ts.project!!.teamLead!!.team.id +// }.maxByOrNull { it.from } + val staffTeam = ts.staff!!.team.code + val projectTeam = ts.project!!.teamLead!!.team.code + (staffTeam == currentTeam && projectTeam != staffTeam) + || (projectTeam == currentTeam && projectTeam != staffTeam) // check isCrossTeam +// ts.project!!.teamLead!!.team.id != thisStaffTeam!!.team.id // for team log } _timesheets.forEach {ts -> // this team charging others // get the grade and salary data of the record val _grade = gradeLog.find { it.staff.id == ts.staff!!.id } val gradeCode = _grade!!.grade.code - val otMultiplier = 1 + val otMultiplier = 1.15 val thisSE = salaryEffective.filter { it.staff.id == ts.staff!!.id && @@ -3889,9 +3895,9 @@ open class ReportService( grades: List, teamId: String, gradeLog: List, - isTeamLead: Boolean, + salaryEffective: List, ) { - val salaryEffective = salaryEffectiveRepository.findAll() +// val salaryEffective = salaryEffectiveRepository.findAll() var sheet: Sheet = workbook.getSheetAt(2) val accountingStyle = workbook.createDataFormat().getFormat("_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)") val rowIndex = 1 // Assuming the location is in (1,2), which is the report date field @@ -3902,10 +3908,10 @@ open class ReportService( sheet.getRow(rowIndex).getCell(columnIndex).apply { setCellValue(convertReportMonth) } - var sortedTeams = teams.sortedBy { it.id }.toMutableList() + var sortedTeams = teams.toMutableList() if (teamId.lowercase() != "all") { // sortedTeams = teams.sortedWith(compareBy { if (it.id == teamId.toLong()) 0 else 1 }).toMutableList() - sortedTeams = mutableListOf(sortedTeams.find { teamId.toLong() == it.id }!!) + sortedTeams = mutableListOf(teams.find { teamId.toLong() == it.id }!!) } //// generate info map ///// val teamsInOutMap: MutableMap> = generateTeamBlock( @@ -4503,18 +4509,20 @@ open class ReportService( } } } - val isTeamLead = false conditionalFormattingNegative(sheet) conditionalFormattingPositive(sheet) + val _teams = teams.sortedBy { it.id } + val salaryEffective = salaryEffectiveRepository.findAll() + // page 3 createThirdSheetTeamChargeReport( month, workbook, timesheets, - teams, + _teams, grades, teamId, gradeLog, - isTeamLead, + salaryEffective ) return workbook } diff --git a/src/main/resources/templates/report/Cross Team Charge Report.xlsx b/src/main/resources/templates/report/Cross Team Charge Report.xlsx index cc17ad6..75eea41 100644 Binary files a/src/main/resources/templates/report/Cross Team Charge Report.xlsx and b/src/main/resources/templates/report/Cross Team Charge Report.xlsx differ