diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt index 860030c..c0bca4b 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/service/PickOrderService.kt @@ -380,7 +380,8 @@ open class PickOrderService( } @Transactional(rollbackFor = [java.lang.Exception::class]) - open fun releaseConsoPickOrderAction(request: ReleaseConsoPickOrderRequest): ResponseEntity { + open fun releaseConsoPickOrderAction(request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse { + val zero = BigDecimal.ZERO val releasedBy = SecurityUtils.getUser().getOrNull() val assignTo = request.assignTo?.let { userService.find(it) }?.getOrNull() val pos = pickOrderRepository.findAllByConsoCodeAndStatus(request.consoCode, PickOrderStatus.CONSOLIDATED) @@ -403,7 +404,18 @@ open class PickOrderService( } stockOutRepository.save(stockOut) suggestedPickLotService.saveAll(suggestions.suggestedList) + + val saveSuggestedPickLots = suggestedPickLotService.saveAll(suggestions.suggestedList) pickOrderRepository.saveAll(pos) - return ResponseEntity("success", HttpStatus.OK) + + val inventoryLotLines = inventoryLotLineRepository.findAllByIdIn(saveSuggestedPickLots.mapNotNull { it.suggestedLotLine?.id }) + + inventoryLotLines.forEach { line -> + line.holdQty = line.holdQty?.plus(saveSuggestedPickLots.find { it.suggestedLotLine == line }?.qty ?: zero) + } + + inventoryLotLineRepository.saveAll(inventoryLotLines) + + return releaseConsoPickOrderInfo(request.consoCode) } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt index 85ea941..5d507cf 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/PickOrderController.kt @@ -92,7 +92,13 @@ class PickOrderController( } @PostMapping("/releaseConso") - fun releaseConsoPickOrderAction(@Valid @RequestBody request: ReleaseConsoPickOrderRequest): ResponseEntity { + fun releaseConsoPickOrderAction(@Valid @RequestBody request: ReleaseConsoPickOrderRequest): ReleasePickOrderInfoResponse { return pickOrderService.releaseConsoPickOrderAction(request) } + + // Start Pick Order + @GetMapping("/pickConso/{consoCode}") + fun pickConsoPickOrderInfo(@PathVariable consoCode: String): ReleasePickOrderInfoResponse { + return pickOrderService.releaseConsoPickOrderInfo(consoCode); + } } \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/ConsoPickOrderRequest.kt b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/ConsoPickOrderRequest.kt index 8bb0068..789b3ea 100644 --- a/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/ConsoPickOrderRequest.kt +++ b/src/main/java/com/ffii/fpsms/modules/pickOrder/web/models/ConsoPickOrderRequest.kt @@ -12,4 +12,9 @@ data class ReleaseConsoPickOrderRequest ( val consoCode: String, val assignTo: Long?, // val suggestedPickLots: List +) + +// Start Pick Order +data class StartConsoPickOrderRequest ( + val consoCode: String, ) \ No newline at end of file diff --git a/src/main/java/com/ffii/fpsms/modules/stock/entity/InventoryLotLineRepository.kt b/src/main/java/com/ffii/fpsms/modules/stock/entity/InventoryLotLineRepository.kt index 5ef3818..06aa883 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/entity/InventoryLotLineRepository.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/entity/InventoryLotLineRepository.kt @@ -24,4 +24,6 @@ interface InventoryLotLineRepository : AbstractRepository): List + + fun findAllByIdIn(ids: List): List } \ No newline at end of file