| @@ -1488,27 +1488,31 @@ private fun createLateStartReport( | |||||
| lateStartData: List<Map<String, Any>>, | lateStartData: List<Map<String, Any>>, | ||||
| evaluator: FormulaEvaluator | evaluator: FormulaEvaluator | ||||
| ) { | ) { | ||||
| var dataRowIndex = 6 // Starting from row 7 | |||||
| var dataRowIndex = 6 | |||||
| // Populate the rows with data from the database | |||||
| lateStartData.forEachIndexed { index, data -> | lateStartData.forEachIndexed { index, data -> | ||||
| val row = sheet.getRow(dataRowIndex) ?: sheet.createRow(dataRowIndex) | val row = sheet.getRow(dataRowIndex) ?: sheet.createRow(dataRowIndex) | ||||
| populateDataRow(workbook, sheet, row, data, index) | populateDataRow(workbook, sheet, row, data, index) | ||||
| dataRowIndex++ | dataRowIndex++ | ||||
| } | } | ||||
| // Update conditional formatting to apply to the new range of column J | |||||
| val sheetCF = sheet.sheetConditionalFormatting | |||||
| val rule1 = sheetCF.createConditionalFormattingRule("J7 < 60") | |||||
| val pattern1 = rule1.createPatternFormatting().apply { | |||||
| fillBackgroundColor = IndexedColors.RED.index | |||||
| fillPattern = PatternFormatting.SOLID_FOREGROUND | |||||
| } | |||||
| val rule2 = sheetCF.createConditionalFormattingRule("J7 >= 60") | |||||
| val pattern2 = rule2.createPatternFormatting().apply { | |||||
| fillBackgroundColor = IndexedColors.YELLOW.index | |||||
| fillPattern = PatternFormatting.SOLID_FOREGROUND | |||||
| } | |||||
| val region = CellRangeAddress(dataRowIndex - lateStartData.size, dataRowIndex - 1, 9, 9) // Column J | |||||
| sheetCF.addConditionalFormatting(arrayOf(region), arrayOf(rule1, rule2)) | |||||
| // Only apply conditional formatting if there is data | |||||
| if (lateStartData.isNotEmpty()) { | |||||
| val sheetCF = sheet.sheetConditionalFormatting | |||||
| val rule1 = sheetCF.createConditionalFormattingRule("J7 < 60") | |||||
| val pattern1 = rule1.createPatternFormatting().apply { | |||||
| fillBackgroundColor = IndexedColors.RED.index | |||||
| fillPattern = PatternFormatting.SOLID_FOREGROUND | |||||
| } | |||||
| val rule2 = sheetCF.createConditionalFormattingRule("J7 >= 60") | |||||
| val pattern2 = rule2.createPatternFormatting().apply { | |||||
| fillBackgroundColor = IndexedColors.YELLOW.index | |||||
| fillPattern = PatternFormatting.SOLID_FOREGROUND | |||||
| } | |||||
| val region = CellRangeAddress(6, dataRowIndex - 1, 9, 9) // Column J | |||||
| sheetCF.addConditionalFormatting(arrayOf(region), arrayOf(rule1, rule2)) | |||||
| } | |||||
| } | } | ||||
| private fun setTeamAndClientIds(sheet: Sheet, team: List<Team>, teamId: Long, customer: List<Customer>, clientId: Long) { | private fun setTeamAndClientIds(sheet: Sheet, team: List<Team>, teamId: Long, customer: List<Customer>, clientId: Long) { | ||||
| // Set the 'teamId' value in cell C3 | // Set the 'teamId' value in cell C3 | ||||