diff --git a/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt b/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt index 9f51ed7..cd2ca3c 100644 --- a/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt +++ b/src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt @@ -194,28 +194,21 @@ open class TimesheetsService( val row = sheet.getRow(i) // Necessary Cell Value - val mtsid = row.getCell(0).numericCellValue.toInt() - val staffId = row.getCell(1).stringCellValue - var projectCode = when (row.getCell(4).stringCellValue.isNullOrBlank()) { + val staffId = when (row.getCell(1) == null || row.getCell(1).stringCellValue.isNullOrBlank()) { true -> "" - false -> StringBuilder(row.getCell(4).stringCellValue).insert(1, '-').toString() - } - val projectSubCode = when (row.getCell(5)?.cellType) { - CellType.STRING -> row.getCell(5).stringCellValue.padStart(3, '0') - CellType.NUMERIC -> row.getCell(5).numericCellValue.toString().padStart(3, '0') - else -> "" + false -> row.getCell(1).stringCellValue } - val recordDate = when (row.getCell(7).toString().isBlank()) { - true -> null - false -> LocalDate.parse(row.getCell(7).toString(), formatter); + var projectCode = when (row.getCell(4) == null || row.getCell(4).stringCellValue.isNullOrBlank()) { + true -> "" + false -> StringBuilder(row.getCell(4).stringCellValue).insert(1, '-').toString() } - val hours: Double = row.getCell(8).numericCellValue // Start Process if (!staffId.isNullOrBlank() && projectCode.isNotBlank()) { logger.info("row :$i | lastCellNum" + row.lastCellNum) // process staff + val mtsid = row.getCell(0).numericCellValue.toInt() logger.info("---------staff-------") logger.info("mtsid: $mtsid") logger.info("Staff ID: $staffId") @@ -230,7 +223,11 @@ open class TimesheetsService( // process project logger.info("---------project-------") - + val projectSubCode = when (row.getCell(5)?.cellType) { + CellType.STRING -> row.getCell(5).stringCellValue.padStart(3, '0') + CellType.NUMERIC -> row.getCell(5).numericCellValue.toInt().toString().padStart(3, '0') + else -> "" + } if (projectSubCode.isNotBlank()) { val splitMainProjectCode = projectCode.split('-') projectCode = splitMainProjectCode[0] + '-' + String.format( @@ -247,16 +244,21 @@ open class TimesheetsService( // process project task logger.info("---------project task-------") - val task = taskRepository.findById(41).getOrNull() + val task = taskRepository.findById(42).getOrNull() val projectTask = project?.let { p -> task?.let { t -> projectTaskRepository.findByProjectAndTask(p, t) } } // process record date logger.info("---------record date-------") + val recordDate = when (row.getCell(7).toString().isBlank()) { + true -> null + false -> LocalDate.parse(row.getCell(7).toString(), formatter); + } logger.info("Recode Date: $recordDate") // normal hour + ot hour logger.info("---------normal hour + ot hour-------") + val hours: Double = row.getCell(8).numericCellValue val normalHours = if (hours > 8.0) 8.0 else hours val otHours = if (hours > 8.0) hours - 8.0 else 0.0 logger.info("Normal Hours: $normalHours | OT Hours: $otHours") @@ -317,19 +319,17 @@ open class TimesheetsService( for (i in 1.. null - false -> LocalDate.parse(row.getCell(7).toString(), formatter); + val staffId = when (row.getCell(1) == null || row.getCell(1).stringCellValue.isNullOrBlank()) { + true -> "" + false -> row.getCell(1).stringCellValue } - val hours: Double = row.getCell(8).numericCellValue if (!staffId.isNullOrBlank()) { logger.info("row :$i | lastCellNum" + row.lastCellNum) // process staff logger.info("---------staff-------") + val mtsid = row.getCell(0).numericCellValue.toInt() var staff = staffRepository.findByStaffId(staffId).getOrNull() if (staff == null) { staff = staffRepository.findByStaffId("B000").orElseThrow() @@ -352,9 +352,15 @@ open class TimesheetsService( // process record date logger.info("---------record date-------") + val recordDate = when (row.getCell(7).toString().isBlank()) { + true -> null + false -> LocalDate.parse(row.getCell(7).toString(), formatter); + } + logger.info("Recode Date: $recordDate") // normal hour + ot hour logger.info("---------normal hour + ot hour-------") + val hours: Double = row.getCell(8).numericCellValue val normalHours = if (hours > 8.0) 8.0 else hours val otHours = if (hours > 8.0) hours - 8.0 else 0.0