|
|
|
@@ -161,8 +161,8 @@ class PlasticBagPrinterService( |
|
|
|
.thenBy { it.jobOrderId }, |
|
|
|
) |
|
|
|
|
|
|
|
fun onPackExpiryFileStem(itemCodeLower: String, indexOneBased: Int): String = |
|
|
|
"$itemCodeLower-$indexOneBased" |
|
|
|
fun onPackExpiryFileStem(itemCodeLower: String, indexOneBased: Int, totalForItem: Int): String = |
|
|
|
if (totalForItem > 1) "$itemCodeLower-$indexOneBased" else itemCodeLower |
|
|
|
|
|
|
|
/** ISO `yyyy-MM-dd`, compact `yyyyMMdd`, or already `Expiry Date yyyyMMdd`. */ |
|
|
|
fun formatLaserExpiryParam(expiryDate: String?): String { |
|
|
|
@@ -778,15 +778,22 @@ class PlasticBagPrinterService( |
|
|
|
.flatMap { (codeLower, orders) -> |
|
|
|
val sorted = sortOnPackExportJobOrders(orders, jobOrdersById) |
|
|
|
val selected = if (includeExpiry) sorted else listOfNotNull(sorted.firstOrNull()) |
|
|
|
selected.mapIndexedNotNull { index, order -> |
|
|
|
val items = selected.mapNotNull { order -> |
|
|
|
toOnPackBmpExportItem( |
|
|
|
codeLower = codeLower, |
|
|
|
fileStem = if (includeExpiry) onPackExpiryFileStem(codeLower, index + 1) else codeLower, |
|
|
|
fileStem = codeLower, |
|
|
|
order = order, |
|
|
|
expiryPrintNames = expiryPrintNames, |
|
|
|
jobOrder = jobOrdersById[order.jobOrderId], |
|
|
|
) |
|
|
|
} |
|
|
|
if (includeExpiry) { |
|
|
|
items.mapIndexed { index, item -> |
|
|
|
item.copy(fileStem = onPackExpiryFileStem(codeLower, index + 1, items.size)) |
|
|
|
} |
|
|
|
} else { |
|
|
|
items |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
require(exportItemsRaw.isNotEmpty()) { "No OnPack QR files could be generated for the selected date" } |
|
|
|
|