| @@ -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<Grade>, | |||
| teamId: String, | |||
| gradeLog: List<GradeLog>, | |||
| isTeamLead: Boolean, | |||
| salaryEffective: List<SalaryEffective>, | |||
| ) { | |||
| 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<String, MutableMap<String, InOut>> = 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 | |||
| } | |||