Explorar el Código

Add delete and edit api for Project expense

add_swagger
MSI\2Fi hace 11 meses
padre
commit
b415fc8606
Se han modificado 7 ficheros con 59 adiciones y 3 borrados
  1. +0
    -1
      src/main/java/com/ffii/tsms/modules/project/entity/ProjectExpense.kt
  2. +1
    -0
      src/main/java/com/ffii/tsms/modules/project/entity/projections/ProjectExpenseSearchInfo.kt
  3. +23
    -0
      src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt
  4. +13
    -0
      src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt
  5. +14
    -0
      src/main/java/com/ffii/tsms/modules/project/web/models/EditProjectExpenseRequest.kt
  6. +1
    -2
      src/main/java/com/ffii/tsms/modules/project/web/models/ProjectExpenseRequest.kt
  7. +7
    -0
      src/main/resources/db/changelog/changes/20240912_01_derek/03_issueDate_null.sql

+ 0
- 1
src/main/java/com/ffii/tsms/modules/project/entity/ProjectExpense.kt Ver fichero

@@ -14,7 +14,6 @@ open class ProjectExpense : BaseEntity<Long>(){
@Column(name = "expenseNo", length = 45)
open var expenseNo: String? = null

@NotNull
@Column(name = "issueDate")
open var issueDate: LocalDate? = null



+ 1
- 0
src/main/java/com/ffii/tsms/modules/project/entity/projections/ProjectExpenseSearchInfo.kt Ver fichero

@@ -26,4 +26,5 @@ interface ProjectExpenseSearchInfo {
val amount: Double
val issueDate: LocalDate
val receiptDate: LocalDate?
val remarks: String?
}

+ 23
- 0
src/main/java/com/ffii/tsms/modules/project/service/ProjectExpenseService.kt Ver fichero

@@ -6,6 +6,7 @@ import com.ffii.tsms.modules.project.entity.ProjectExpense
import com.ffii.tsms.modules.project.entity.ProjectExpenseRepository
import com.ffii.tsms.modules.project.entity.ProjectRepository
import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo
import com.ffii.tsms.modules.project.web.models.EditProjectExpenseRequest
import com.ffii.tsms.modules.project.web.models.ProjectExpenseRequest
import org.springframework.stereotype.Service

@@ -42,4 +43,26 @@ open class ProjectExpenseService(
return true
}

open fun deleteProjectExpense(id: Long){
repository.save(repository.findById(id).orElseThrow().apply { deleted = true })
}

open fun updateProjectExpenseDetail(projectExpenseReq: EditProjectExpenseRequest): ProjectExpenseSearchInfo?{
val projectExpense = repository.findById(projectExpenseReq.id!!)

if(projectExpense.isPresent){

projectExpense.get().apply {
projectExpenseReq.expenseNo?.let{ expenseNo = it}
// projectExpenseReq.issueDate?.let { issueDate = it }
// projectExpenseReq.receiptDate?.let{ receiptDate = it }
amount = projectExpenseReq.amount
projectExpenseReq.remarks?.let { remarks = it }
}.also {
saveAndFlush(it)
}
return repository.findExpenseSearchInfoByDeletedFalse().find { it.id == projectExpenseReq.id }
}
return null
}
}

+ 13
- 0
src/main/java/com/ffii/tsms/modules/project/web/ProjectExpenseController.kt Ver fichero

@@ -4,8 +4,10 @@ import com.ffii.tsms.modules.data.entity.Staff
import com.ffii.tsms.modules.data.web.models.NewStaffRequest
import com.ffii.tsms.modules.project.entity.projections.ProjectExpenseSearchInfo
import com.ffii.tsms.modules.project.service.ProjectExpenseService
import com.ffii.tsms.modules.project.web.models.EditProjectExpenseRequest
import com.ffii.tsms.modules.project.web.models.ProjectExpenseRequest
import jakarta.validation.Valid
import org.springframework.http.HttpStatus
import org.springframework.web.bind.annotation.*

@RestController
@@ -21,4 +23,15 @@ class ProjectExpenseController(
fun saveProjectExpense(@Valid @RequestBody newProjectExpense: List<ProjectExpenseRequest>): Boolean {
return projectExpenseService.createProjectExpense(newProjectExpense)
}

@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun deleteProjectExpense(@PathVariable id: Long){
projectExpenseService.deleteProjectExpense(id)
}

@PostMapping("/update")
fun updateProjectExpenseDetail(@RequestBody req: EditProjectExpenseRequest): ProjectExpenseSearchInfo?{
return projectExpenseService.updateProjectExpenseDetail(req)
}
}

+ 14
- 0
src/main/java/com/ffii/tsms/modules/project/web/models/EditProjectExpenseRequest.kt Ver fichero

@@ -0,0 +1,14 @@
package com.ffii.tsms.modules.project.web.models

import jakarta.validation.constraints.NotNull
import java.time.LocalDate

data class EditProjectExpenseRequest (
val id: Long?,
val expenseNo: String?,
// val issueDate: LocalDate?,
// val receiptDate: LocalDate?,
@field:NotNull(message = "amount cannot be empty")
val amount: Double,
val remarks: String?,
)

+ 1
- 2
src/main/java/com/ffii/tsms/modules/project/web/models/ProjectExpenseRequest.kt Ver fichero

@@ -11,8 +11,7 @@ data class ProjectExpenseRequest (
@field:NotNull(message = "projectId cannot be empty")
val projectId: Long,

@field:NotNull(message = "issueDate cannot be empty")
val issueDate: LocalDate,
val issueDate: LocalDate?,

val receiptDate: LocalDate?,



+ 7
- 0
src/main/resources/db/changelog/changes/20240912_01_derek/03_issueDate_null.sql Ver fichero

@@ -0,0 +1,7 @@
-- liquibase formatted sql

-- changeset jason:project_expense_issueDate_NULL


ALTER TABLE tsmsdb.project_expense MODIFY COLUMN issueDate date NULL;


Cargando…
Cancelar
Guardar