@@ -9,6 +9,7 @@ import com.ffii.tsms.modules.project.entity.projections.InvoiceInfo | |||||
import com.ffii.tsms.modules.project.entity.projections.InvoicePDFReq | import com.ffii.tsms.modules.project.entity.projections.InvoicePDFReq | ||||
import com.ffii.tsms.modules.project.entity.projections.ProjectSearchInfo | import com.ffii.tsms.modules.project.entity.projections.ProjectSearchInfo | ||||
import com.ffii.tsms.modules.project.web.models.CreateInvoiceRequest | |||||
import com.ffii.tsms.modules.project.web.models.EditInvoiceRequest | import com.ffii.tsms.modules.project.web.models.EditInvoiceRequest | ||||
import com.ffii.tsms.modules.project.web.models.EditInvoiceResponse | import com.ffii.tsms.modules.project.web.models.EditInvoiceResponse | ||||
import com.ffii.tsms.modules.project.web.models.InvoiceResponse | import com.ffii.tsms.modules.project.web.models.InvoiceResponse | ||||
@@ -729,4 +730,20 @@ open class InvoiceService( | |||||
}) | }) | ||||
} | } | ||||
open fun createInvoices(invoices: List<CreateInvoiceRequest>){ | |||||
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd") | |||||
for (invoice in invoices){ | |||||
val newInvoice = Invoice().apply { | |||||
invoiceNo = invoice.invoiceNo | |||||
projectCode = invoice.projectCode | |||||
invoiceDate = LocalDate.parse(invoice.issuedDate) | |||||
issueAmount = invoice.issuedAmount | |||||
receiptDate = invoice.receiptDate?.let { LocalDate.parse(invoice.receiptDate) } | |||||
paidAmount = invoice.receivedAmount | |||||
} | |||||
invoiceRepository.saveAndFlush(newInvoice) | |||||
} | |||||
} | |||||
} | } |
@@ -7,6 +7,7 @@ import com.ffii.tsms.modules.project.entity.projections.InvoicePDFReq | |||||
import com.ffii.tsms.modules.project.entity.projections.InvoiceSearchInfo | import com.ffii.tsms.modules.project.entity.projections.InvoiceSearchInfo | ||||
import com.ffii.tsms.modules.project.service.InvoiceService | import com.ffii.tsms.modules.project.service.InvoiceService | ||||
import com.ffii.tsms.modules.project.service.ProjectsService | import com.ffii.tsms.modules.project.service.ProjectsService | ||||
import com.ffii.tsms.modules.project.web.models.CreateInvoiceRequest | |||||
import com.ffii.tsms.modules.project.web.models.EditInvoiceRequest | import com.ffii.tsms.modules.project.web.models.EditInvoiceRequest | ||||
import com.ffii.tsms.modules.project.web.models.EditInvoiceResponse | import com.ffii.tsms.modules.project.web.models.EditInvoiceResponse | ||||
import jakarta.servlet.http.HttpServletRequest | import jakarta.servlet.http.HttpServletRequest | ||||
@@ -146,4 +147,10 @@ class InvoiceController( | |||||
fun deleteProject(@PathVariable id: Long) { | fun deleteProject(@PathVariable id: Long) { | ||||
invoiceService.markDeleted(id) | invoiceService.markDeleted(id) | ||||
} | } | ||||
@PostMapping("/create") | |||||
fun createInvoices(@RequestBody req: List<CreateInvoiceRequest>): ResponseEntity<*>{ | |||||
invoiceService.createInvoices(req) | |||||
return ResponseEntity.ok("OK"); | |||||
} | |||||
} | } |
@@ -0,0 +1,13 @@ | |||||
package com.ffii.tsms.modules.project.web.models | |||||
import java.math.BigDecimal | |||||
data class CreateInvoiceRequest ( | |||||
// val id: Long, | |||||
val invoiceNo: String, | |||||
val projectCode: String, | |||||
val issuedAmount: BigDecimal, | |||||
val issuedDate: String, | |||||
val receiptDate: String?, | |||||
val receivedAmount: BigDecimal? | |||||
) |