| @@ -1,48 +1,96 @@ | |||||
| package com.ffii.fpsms.py | |||||
| import com.ffii.fpsms.modules.jobOrder.entity.JobOrder | |||||
| import com.ffii.fpsms.modules.master.service.ItemUomService | |||||
| import com.ffii.fpsms.modules.stock.entity.StockInLineRepository | |||||
| object PyJobOrderListMapper { | |||||
| fun toListItem( | |||||
| jo: JobOrder, | |||||
| printed: PrintedQtyByChannel?, | |||||
| stockInLineRepository: StockInLineRepository, | |||||
| itemUomService: ItemUomService, | |||||
| ): PyJobOrderListItem { | |||||
| val itemCode = jo.bom?.item?.code ?: jo.bom?.code | |||||
| val baseName = jo.bom?.name ?: jo.bom?.item?.name | |||||
| val itemId = jo.bom?.item?.id | |||||
| val stockUnitDesc = itemId?.let { id -> | |||||
| itemUomService.findStockUnitByItemId(id)?.uom?.udfudesc | |||||
| }?.trim().orEmpty() | |||||
| val baseTrim = baseName?.trim().orEmpty() | |||||
| val baseAlreadyHasParens = '(' in baseTrim && ')' in baseTrim | |||||
| val itemName = when { | |||||
| stockUnitDesc.isEmpty() && baseTrim.isEmpty() -> null | |||||
| stockUnitDesc.isEmpty() -> baseTrim | |||||
| baseTrim.isEmpty() -> "($stockUnitDesc)" | |||||
| baseAlreadyHasParens -> baseTrim | |||||
| else -> "$baseTrim($stockUnitDesc)" | |||||
| } | |||||
| val stockInLine = jo.id?.let { stockInLineRepository.findFirstByJobOrder_IdAndDeletedFalse(it) } | |||||
| val stockInLineId = stockInLine?.id | |||||
| val lotNo = stockInLine?.lotNo | |||||
| val p = printed ?: PrintedQtyByChannel() | |||||
| return PyJobOrderListItem( | |||||
| id = jo.id!!, | |||||
| code = jo.code, | |||||
| planStart = jo.planStart, | |||||
| itemCode = itemCode, | |||||
| itemName = itemName, | |||||
| reqQty = jo.reqQty, | |||||
| stockInLineId = stockInLineId, | |||||
| itemId = itemId, | |||||
| lotNo = lotNo, | |||||
| bagPrintedQty = p.bagPrintedQty, | |||||
| labelPrintedQty = p.labelPrintedQty, | |||||
| laserPrintedQty = p.laserPrintedQty, | |||||
| ) | |||||
| } | |||||
| } | |||||
| package com.ffii.fpsms.py | |||||
| import com.ffii.fpsms.modules.jobOrder.entity.JobOrder | |||||
| import com.ffii.fpsms.modules.master.service.ItemUomService | |||||
| import com.ffii.fpsms.modules.stock.entity.StockInLineRepository | |||||
| object PyJobOrderListMapper { | |||||
| fun toListItem( | |||||
| jo: JobOrder, | |||||
| printed: PrintedQtyByChannel?, | |||||
| stockInLineRepository: StockInLineRepository, | |||||
| itemUomService: ItemUomService, | |||||
| ): PyJobOrderListItem { | |||||
| val itemCode = jo.bom?.item?.code ?: jo.bom?.code | |||||
| val baseName = jo.bom?.name ?: jo.bom?.item?.name | |||||
| val itemId = jo.bom?.item?.id | |||||
| val stockUnitDesc = itemId?.let { id -> | |||||
| itemUomService.findStockUnitByItemId(id)?.uom?.udfudesc | |||||
| }?.trim().orEmpty() | |||||
| val baseTrim = baseName?.trim().orEmpty() | |||||
| val baseAlreadyHasParens = '(' in baseTrim && ')' in baseTrim | |||||
| val itemName = when { | |||||
| stockUnitDesc.isEmpty() && baseTrim.isEmpty() -> null | |||||
| stockUnitDesc.isEmpty() -> baseTrim | |||||
| baseTrim.isEmpty() -> "($stockUnitDesc)" | |||||
| baseAlreadyHasParens -> baseTrim | |||||
| else -> "$baseTrim($stockUnitDesc)" | |||||
| } | |||||
| val stockInLine = jo.id?.let { stockInLineRepository.findFirstByJobOrder_IdAndDeletedFalse(it) } | |||||
| val stockInLineId = stockInLine?.id | |||||
| val lotNo = stockInLine?.lotNo | |||||
| val p = printed ?: PrintedQtyByChannel() | |||||
| return PyJobOrderListItem( | |||||
| id = jo.id!!, | |||||
| code = jo.code, | |||||
| planStart = jo.planStart, | |||||
| itemCode = itemCode, | |||||
| itemName = itemName, | |||||
| reqQty = jo.reqQty, | |||||
| stockInLineId = stockInLineId, | |||||
| itemId = itemId, | |||||
| lotNo = lotNo, | |||||
| bagPrintedQty = p.bagPrintedQty, | |||||
| labelPrintedQty = p.labelPrintedQty, | |||||
| laserPrintedQty = p.laserPrintedQty, | |||||
| ) | |||||
| } | |||||
| } | |||||