Bladeren bron

refine the onpack zip expiry

production
Fai Luk 2 weken geleden
bovenliggende
commit
bf9cdd15bb
2 gewijzigde bestanden met toevoegingen van 15 en 7 verwijderingen
  1. +11
    -4
      src/main/java/com/ffii/fpsms/modules/jobOrder/service/PlasticBagPrinterService.kt
  2. +4
    -3
      src/test/kotlin/com/ffii/fpsms/modules/jobOrder/service/OnPackExpiryZipStemTest.kt

+ 11
- 4
src/main/java/com/ffii/fpsms/modules/jobOrder/service/PlasticBagPrinterService.kt Bestand weergeven

@@ -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" }


+ 4
- 3
src/test/kotlin/com/ffii/fpsms/modules/jobOrder/service/OnPackExpiryZipStemTest.kt Bestand weergeven

@@ -8,9 +8,10 @@ import org.junit.jupiter.api.Test
class OnPackExpiryZipStemTest {

@Test
fun expiry_file_stem_appends_one_based_index() {
assertEquals("pp2211-1", PlasticBagPrinterService.onPackExpiryFileStem("pp2211", 1))
assertEquals("pp2211-2", PlasticBagPrinterService.onPackExpiryFileStem("pp2211", 2))
fun expiry_file_stem_suffixes_only_when_item_has_more_than_one_job() {
assertEquals("pp2211", PlasticBagPrinterService.onPackExpiryFileStem("pp2211", 1, 1))
assertEquals("pp2211-1", PlasticBagPrinterService.onPackExpiryFileStem("pp2211", 1, 2))
assertEquals("pp2211-2", PlasticBagPrinterService.onPackExpiryFileStem("pp2211", 2, 2))
}

@Test


Laden…
Annuleren
Opslaan