| @@ -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? | |||||
| ) | |||||