From 43f8ffb9fc037036e5290c070d6db32bc7cf99a1 Mon Sep 17 00:00:00 2001 From: "MSI\\2Fi" Date: Thu, 12 Sep 2024 15:11:16 +0800 Subject: [PATCH] Add Invoice list from UI --- .../modules/project/service/InvoiceService.kt | 17 +++++++++++++++++ .../modules/project/web/InvoiceController.kt | 7 +++++++ .../project/web/models/CreateInvoiceRequest.kt | 13 +++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 src/main/java/com/ffii/tsms/modules/project/web/models/CreateInvoiceRequest.kt diff --git a/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt b/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt index 4fe659f..b191878 100644 --- a/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt +++ b/src/main/java/com/ffii/tsms/modules/project/service/InvoiceService.kt @@ -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.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.EditInvoiceResponse import com.ffii.tsms.modules.project.web.models.InvoiceResponse @@ -729,4 +730,20 @@ open class InvoiceService( }) } + open fun createInvoices(invoices: List){ + 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) + } + } + } diff --git a/src/main/java/com/ffii/tsms/modules/project/web/InvoiceController.kt b/src/main/java/com/ffii/tsms/modules/project/web/InvoiceController.kt index 62ef65b..2e9e990 100644 --- a/src/main/java/com/ffii/tsms/modules/project/web/InvoiceController.kt +++ b/src/main/java/com/ffii/tsms/modules/project/web/InvoiceController.kt @@ -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.service.InvoiceService 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.EditInvoiceResponse import jakarta.servlet.http.HttpServletRequest @@ -146,4 +147,10 @@ class InvoiceController( fun deleteProject(@PathVariable id: Long) { invoiceService.markDeleted(id) } + + @PostMapping("/create") + fun createInvoices(@RequestBody req: List): ResponseEntity<*>{ + invoiceService.createInvoices(req) + return ResponseEntity.ok("OK"); + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/tsms/modules/project/web/models/CreateInvoiceRequest.kt b/src/main/java/com/ffii/tsms/modules/project/web/models/CreateInvoiceRequest.kt new file mode 100644 index 0000000..bcbd1a5 --- /dev/null +++ b/src/main/java/com/ffii/tsms/modules/project/web/models/CreateInvoiceRequest.kt @@ -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? +) \ No newline at end of file