diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt index fa96c32..2b9bbdd 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/service/SuggestedPickLotService.kt @@ -470,22 +470,25 @@ open class SuggestedPickLotService( } // Get or create StockOut - /* - val stockOut = stockOutRepository.findFirstByConsoPickOrderCodeOrderByIdDesc(pickOrder.consoCode ?: "") - .orElseGet { + + val consoCode = (pickOrder.consoCode ?: "").trim() + // Fallback when consoCode is blank (prevents querying "" and always getting null) + val stockOutKey = if (consoCode.isNotEmpty()) consoCode else "PO-${pickOrder.id ?: 0L}" + + val stockOut = stockOutRepository.findFirstByConsoPickOrderCodeOrderByIdDesc(stockOutKey) + ?: run { val handlerId = pickOrder.assignTo?.id ?: SecurityUtils.getUser().orElse(null)?.id require(handlerId != null) { "Cannot create StockOut: handlerId is null" } val newStockOut = StockOut().apply { - this.consoPickOrderCode = pickOrder.consoCode ?: "" - this.type = pickOrderTypeValue // Use pick order type (do, job, material, etc.) + this.consoPickOrderCode = stockOutKey + this.type = pickOrderTypeValue this.status = StockOutStatus.PENDING.status this.handler = handlerId } stockOutRepository.save(newStockOut) } - */ - val stockOut = stockOutRepository.findFirstByConsoPickOrderCodeOrderByIdDesc(pickOrder.consoCode ?: "") - val item = pickOrderLine.item ?: itemRepository.findById(pickOrderLine.item!!.id!!).orElseThrow() + + val item = pickOrderLine.item ?: itemRepository.findById(pickOrderLine.item!!.id!!).orElseThrow() // Create stock out line with inventoryLotLineId = null val stockOutLine = StockOutLine().apply { this.stockOut = stockOut