diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt index 15c3073..7fa49d1 100644 --- a/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt +++ b/src/main/java/com/ffii/fpsms/modules/stock/service/StockInLineService.kt @@ -470,7 +470,12 @@ open class StockInLineService( val antValues = byPol.map { (_, silList) -> val sil = silList.first() val pol = sil.purchaseOrderLine!! - val totalQty = silList.sumOf { it.acceptedQty ?: BigDecimal.ZERO } + // acceptedQty on StockInLine is in stock unit; M18 ant expects purchase unit qty + val totalStockQty = silList.sumOf { it.acceptedQty ?: BigDecimal.ZERO } + val itemId = sil.item?.id ?: pol.item?.id + val totalQtyInPurchaseUnit = if (itemId != null) { + itemUomService.convertStockQtyToPurchaseQty(itemId, totalStockQty) + } else totalStockQty val unitIdFromDataLog = (pol.m18DataLog?.dataLog?.get("unitId") as? Number)?.toLong()?.toInt() val itemName = (sil.item?.name ?: pol.item?.name).orEmpty() // always non-null for M18 bDesc/bDesc_en GoodsReceiptNoteAntValue( @@ -480,12 +485,12 @@ open class StockInLineService( proId = (sil.item?.m18Id ?: pol.item?.m18Id ?: 0L).toInt(), locId = 155, unitId = unitIdFromDataLog ?: (pol.uom?.m18Id ?: 0L).toInt(), - qty = totalQty.toDouble(), + qty = totalQtyInPurchaseUnit.toDouble(), up = pol.up?.toDouble() ?: 0.0, amt = CommonUtils.getAmt( up = pol.up ?: BigDecimal.ZERO, discount = pol.m18Discount ?: BigDecimal.ZERO, - qty = totalQty + qty = totalQtyInPurchaseUnit ), beId = beId, flowTypeId = flowTypeId,