diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt
index a5e7efc..fa3939d 100644
--- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt
+++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DeliveryOrderService.kt
@@ -1360,7 +1360,11 @@ open class DeliveryOrderService(
}
params["deliveryNoteCode"] = doPickOrderRecord.deliveryNoteCode ?: ""
params["shopAddress"] = cartonLabelInfo[0].shopAddress ?: ""
- params["shopName"] = doPickOrderRecord.shopName ?: cartonLabelInfo[0].shopName ?: ""
+ val rawShopLabel = doPickOrderRecord.shopName ?: cartonLabelInfo[0].shopName ?: ""
+ val parsedShopLabel = parseShopLabelForCartonLabel(rawShopLabel)
+ params["shopCode"] = parsedShopLabel.shopCode
+ params["shopCodeAbbr"] = parsedShopLabel.shopCodeAbbr
+ params["shopName"] = parsedShopLabel.shopNameForLabel
params["truckNo"] = doPickOrderRecord.truckLanceCode ?: ""
for (cartonNumber in 1..request.numOfCarton) {
@@ -1374,6 +1378,44 @@ open class DeliveryOrderService(
)
}
+ private data class ParsedShopLabelForCartonLabel(
+ val shopCode: String,
+ val shopCodeAbbr: String,
+ val shopNameForLabel: String
+ )
+
+ private fun parseShopLabelForCartonLabel(rawInput: String): ParsedShopLabelForCartonLabel {
+ // Fixed input format: shopCode - shopName1-shopName2
+ val raw = rawInput.trim()
+
+ val (shopCodePartRaw, restPart) = raw.split(" - ", limit = 2).let { parts ->
+ (parts.getOrNull(0)?.trim().orEmpty()) to (parts.getOrNull(1)?.trim().orEmpty())
+ }
+
+ val shopCode = shopCodePartRaw.let { code ->
+ val trimmed = code.trim()
+ if (trimmed.length > 5) trimmed.substring(0, 5) else trimmed
+ }
+
+ val (shopName1, shopName2) = restPart.split("-", limit = 2).let { parts ->
+ (parts.getOrNull(0)?.trim().orEmpty()) to (parts.getOrNull(1)?.trim().orEmpty())
+ }
+
+ val shopNameForLabel = if (shopName2.isNotBlank()) {
+ "$shopName1\n$shopName2"
+ } else {
+ shopName1
+ }
+
+ val shopCodeAbbr = if (shopCode.length >= 2) shopCode.substring(0, 2) else shopCode
+
+ return ParsedShopLabelForCartonLabel(
+ shopCode = shopCode,
+ shopCodeAbbr = shopCodeAbbr,
+ shopNameForLabel = shopNameForLabel
+ )
+ }
+
//Print Carton Labels
@Transactional
diff --git a/src/main/resources/DeliveryNote/DeliveryNoteCartonLabelsPDF.jrxml b/src/main/resources/DeliveryNote/DeliveryNoteCartonLabelsPDF.jrxml
index bd6161c..953bdd4 100644
--- a/src/main/resources/DeliveryNote/DeliveryNoteCartonLabelsPDF.jrxml
+++ b/src/main/resources/DeliveryNote/DeliveryNoteCartonLabelsPDF.jrxml
@@ -1,166 +1,180 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/fonts/fonts.xml b/src/main/resources/fonts/fonts.xml
index 13d0ae2..79d3016 100644
--- a/src/main/resources/fonts/fonts.xml
+++ b/src/main/resources/fonts/fonts.xml
@@ -2,7 +2,7 @@
fonts/msjh_0.ttf
- fonts/msjhbd.ttc
+ fonts/msjh_0.ttf
fonts/msjh_0.ttf
fonts/msjh_0.ttf
Identity-H
@@ -24,5 +24,4 @@
'華文宋體', Arial, Helvetica, sans-serif
-
-
+
\ No newline at end of file
diff --git a/src/main/resources/fonts/msjhbd.ttc b/src/main/resources/fonts/msjhbd.ttc
deleted file mode 100644
index 33873b7..0000000
Binary files a/src/main/resources/fonts/msjhbd.ttc and /dev/null differ