| @@ -380,6 +380,8 @@ open class InvoiceService( | |||
| return invoiceRepository.findInvoiceInfoByPaidAmountIsNotNull() | |||
| } | |||
| @Transactional(rollbackFor = [Exception::class]) | |||
| open fun importIssueInvoice(workbook: Workbook?): InvoiceResponse { | |||
| @@ -416,7 +418,17 @@ open class InvoiceService( | |||
| // println(ExcelUtils.getCell(sheet, i, 0)) | |||
| // println("sheet.physicalNumberOfRows ${sheet.physicalNumberOfRows}") | |||
| // println("sheet.lastRowNum ${sheet.lastRowNum}") | |||
| val sheetInvoice = ExcelUtils.getCell(sheet, i, 0).toString() | |||
| val sheetInvoiceCell = ExcelUtils.getCell(sheet, i, 0) | |||
| val sheetInvoice = when (sheetInvoiceCell.cellType) { | |||
| CellType.STRING -> sheetInvoiceCell.stringCellValue | |||
| CellType.NUMERIC -> { | |||
| val numericValue = sheetInvoiceCell.numericCellValue | |||
| numericValue.toInt().toString() // Return as integer string | |||
| } | |||
| CellType.BLANK -> "" // Return empty string for blank cells | |||
| else -> "Unsupported cell type" | |||
| } | |||
| val sheetProjectCode = ExcelUtils.getCell(sheet, i, 1).stringCellValue | |||
| checkInvoiceNo(sheetInvoice, invoices, invoicesResult, true) | |||
| checkProjectCode(sheetProjectCode, projects, newProjectCodes) | |||
| @@ -455,7 +467,16 @@ open class InvoiceService( | |||
| // val paymentMilestoneId = getMilestonePaymentId(ExcelUtils.getCell(sheet, i, 1).stringCellValue, ExcelUtils.getCell(sheet, i, 5).stringCellValue) | |||
| // val milestonePayment = milestonePaymentRepository.findById(paymentMilestoneId).orElseThrow() | |||
| val invoice = Invoice().apply { | |||
| invoiceNo = ExcelUtils.getCell(sheet, i, 0).toString() | |||
| invoiceNo = when (ExcelUtils.getCell(sheet, i, 0).cellType) { | |||
| CellType.STRING -> ExcelUtils.getCell(sheet, i, 0).stringCellValue | |||
| CellType.NUMERIC -> { | |||
| val numericValue = ExcelUtils.getCell(sheet, i, 0).numericCellValue | |||
| numericValue.toInt().toString() // Return as integer string | |||
| } | |||
| CellType.BLANK -> "" // Return empty string for blank cells | |||
| else -> "Unsupported cell type" | |||
| } | |||
| projectCode = ExcelUtils.getCell(sheet, i, 1).stringCellValue | |||
| // projectName = ExcelUtils.getCell(sheet, i, 2).stringCellValue | |||
| // team = ExcelUtils.getCell(sheet, i, 3).stringCellValue | |||
| @@ -513,7 +534,17 @@ open class InvoiceService( | |||
| if(ExcelUtils.getCell(sheet, i, 0).cellType == CellType.BLANK){ | |||
| break | |||
| } | |||
| val sheetInvoice = ExcelUtils.getCell(sheet, i, 0).toString() | |||
| val sheetInvoiceCell = ExcelUtils.getCell(sheet, i, 0) | |||
| val sheetInvoice = when (sheetInvoiceCell.cellType) { | |||
| CellType.STRING -> sheetInvoiceCell.stringCellValue | |||
| CellType.NUMERIC -> { | |||
| val numericValue = sheetInvoiceCell.numericCellValue | |||
| numericValue.toInt().toString() // Return as integer string | |||
| } | |||
| CellType.BLANK -> "" // Return empty string for blank cells | |||
| else -> "Unsupported cell type" | |||
| } | |||
| val sheetProjectCode = ExcelUtils.getCell(sheet, i, 1).stringCellValue | |||
| checkInvoiceNo(sheetInvoice, invoices, invoicesResult, false) | |||
| checkProjectCode(sheetProjectCode, projects, newProjectCodes) | |||