diff --git a/src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt b/src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt
index 8b5e8c6..b3b7085 100644
--- a/src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt
+++ b/src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt
@@ -283,7 +283,8 @@ SELECT
CASE WHEN SUM(COALESCE(openingQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(openingQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(openingQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalOpeningBalance,
CASE WHEN SUM(COALESCE(inQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(inQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(inQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCumStockIn,
CASE WHEN SUM(COALESCE(outQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(outQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(outQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCumStockOut,
- CASE WHEN SUM(COALESCE(currentQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(currentQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(currentQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCurrentBalance
+ CASE WHEN SUM(COALESCE(currentQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(currentQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(currentQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCurrentBalance,
+ CASE WHEN SUM(COALESCE(stkApproverQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(stkApproverQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(stkApproverQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalStockTakeQty
FROM data
ORDER BY
@@ -515,7 +516,8 @@ SELECT
CASE WHEN SUM(COALESCE(openingQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(openingQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(openingQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalOpeningBalance,
CASE WHEN SUM(COALESCE(inQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(inQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(inQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCumStockIn,
CASE WHEN SUM(COALESCE(outQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(outQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(outQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCumStockOut,
- CASE WHEN SUM(COALESCE(stkBookQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(stkBookQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(stkBookQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCurrentBalance
+ CASE WHEN SUM(COALESCE(stkBookQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(stkBookQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(stkBookQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalCurrentBalance,
+ CASE WHEN SUM(COALESCE(stkApproverQty, 0)) OVER (PARTITION BY itemNo) < 0 THEN CONCAT('(', FORMAT(-SUM(COALESCE(stkApproverQty, 0)) OVER (PARTITION BY itemNo), 0), ')') ELSE FORMAT(SUM(COALESCE(stkApproverQty, 0)) OVER (PARTITION BY itemNo), 0) END AS totalStockTakeQty
FROM data
ORDER BY
diff --git a/src/main/java/com/ffii/fpsms/modules/report/web/StockTakeVarianceReportController.kt b/src/main/java/com/ffii/fpsms/modules/report/web/StockTakeVarianceReportController.kt
index a5c4a08..dac4db1 100644
--- a/src/main/java/com/ffii/fpsms/modules/report/web/StockTakeVarianceReportController.kt
+++ b/src/main/java/com/ffii/fpsms/modules/report/web/StockTakeVarianceReportController.kt
@@ -413,7 +413,7 @@ class StockTakeVarianceReportController(
}
}
- fun addItemSummaryRow(totalQty: Double, _itemNo: String, _itemName: String) {
+ fun addItemSummaryRow(totalQty: Double, totalStockTakeQty: Double, _itemNo: String, _itemName: String) {
val r = sheet.createRow(rowIndex++)
// keep keys for filtering/grouping, visually hidden
r.createCell(0).apply {
@@ -448,6 +448,12 @@ class StockTakeVarianceReportController(
setCellValue(totalQty)
cellStyle = summaryQtyThickBottomStyle
}
+
+ // also set "盤點總數" at the "盤點數"欄(col 7)
+ r.getCell(7).apply {
+ setCellValue(totalStockTakeQty)
+ cellStyle = summaryQtyThickBottomStyle
+ }
}
fun addBlankSeparatorRow() {
@@ -462,12 +468,13 @@ class StockTakeVarianceReportController(
cellStyle = textStyle
}
}
- addItemSummaryRow(0.0, "", "")
+ addItemSummaryRow(0.0, 0.0, "", "")
} else {
var currentItemNo: String? = null
var currentItemName = ""
var currentUom = ""
var currentItemTotalQty = 0.0
+ var currentItemTotalStockTakeQty = 0.0
dbData.forEach { rowMap ->
val itemNo = rowMap["itemNo"]?.toString().orEmpty()
@@ -475,9 +482,10 @@ class StockTakeVarianceReportController(
val uom = rowMap["unitOfMeasure"]?.toString().orEmpty()
if (currentItemNo != null && itemNo != currentItemNo) {
- addItemSummaryRow(currentItemTotalQty, currentItemNo!!, currentItemName)
+ addItemSummaryRow(currentItemTotalQty, currentItemTotalStockTakeQty, currentItemNo!!, currentItemName)
addBlankSeparatorRow()
currentItemTotalQty = 0.0
+ currentItemTotalStockTakeQty = 0.0
}
val r = sheet.createRow(rowIndex++)
@@ -497,9 +505,10 @@ class StockTakeVarianceReportController(
currentItemName = itemName
currentUom = uom
currentItemTotalQty += parseSignedNumber(rowMap["currentBookBalance"]) ?: 0.0
+ currentItemTotalStockTakeQty += parseSignedNumber(rowMap["stockTakeQty"]) ?: 0.0
}
- addItemSummaryRow(currentItemTotalQty, currentItemNo ?: "", currentItemName)
+ addItemSummaryRow(currentItemTotalQty, currentItemTotalStockTakeQty, currentItemNo ?: "", currentItemName)
}
val lastRowIndex = rowIndex - 1
diff --git a/src/main/resources/jasper/StockTakeVarianceReport.jrxml b/src/main/resources/jasper/StockTakeVarianceReport.jrxml
index 73a97a8..26fb9a0 100644
--- a/src/main/resources/jasper/StockTakeVarianceReport.jrxml
+++ b/src/main/resources/jasper/StockTakeVarianceReport.jrxml
@@ -64,6 +64,7 @@
+
@@ -109,11 +110,20 @@
-
+
+
+
+
+
+
+
+
+
+