| @@ -470,22 +470,25 @@ open class SuggestedPickLotService( | |||||
| } | } | ||||
| // Get or create StockOut | // 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 | val handlerId = pickOrder.assignTo?.id ?: SecurityUtils.getUser().orElse(null)?.id | ||||
| require(handlerId != null) { "Cannot create StockOut: handlerId is null" } | require(handlerId != null) { "Cannot create StockOut: handlerId is null" } | ||||
| val newStockOut = StockOut().apply { | 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.status = StockOutStatus.PENDING.status | ||||
| this.handler = handlerId | this.handler = handlerId | ||||
| } | } | ||||
| stockOutRepository.save(newStockOut) | 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 | // Create stock out line with inventoryLotLineId = null | ||||
| val stockOutLine = StockOutLine().apply { | val stockOutLine = StockOutLine().apply { | ||||
| this.stockOut = stockOut | this.stockOut = stockOut | ||||