diff --git a/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt b/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt
index 393e6fd..3f34050 100644
--- a/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt
+++ b/src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt
@@ -83,7 +83,12 @@ WITH base AS (
sl.id AS slId,
DATE(sl.date) AS trnDateRaw,
DATE_FORMAT(sl.date, '%Y-%m-%d') AS trnDate,
- sl.type AS trnRefNo,
+ CASE
+ WHEN UPPER(TRIM(COALESCE(sl.type, ''))) = 'TKE' THEN 'TKE'
+ WHEN UPPER(TRIM(COALESCE(sl.type, ''))) = 'ADJ'
+ AND (so.stockTakeId IS NOT NULL OR so.type = 'stockTake' OR si.stockTakeId IS NOT NULL) THEN 'TKE'
+ ELSE COALESCE(sl.type, '')
+ END AS trnRefNoRaw,
sl.itemId AS itemId,
sl.itemCode AS itemCode,
@@ -101,8 +106,8 @@ WITH base AS (
COALESCE(DATE_FORMAT(lot.expiryDate, '%Y-%m-%d'), '') AS expiryDate,
lot.storeLocation AS storeLocation,
- '' AS orderRefNo,
- '' AS jobOrderNo,
+ COALESCE(TRIM(do.code), TRIM(jo_po.code), TRIM(jo.code), TRIM(po.code), '') AS orderRefNo,
+ COALESCE(TRIM(jo.code), '') AS jobOrderNo,
'' AS openingBalance,
'' AS cumStockIn,
@@ -168,7 +173,30 @@ WITH base AS (
LEFT JOIN warehouse wh_out
ON ill_out.warehouseId = wh_out.id
AND wh_out.deleted = 0
-
+ LEFT JOIN stock_out so
+ ON sol.stockOutId = so.id
+ AND so.deleted = 0
+ LEFT JOIN pick_order_line pol
+ ON sol.pickOrderLineId = pol.id
+ AND pol.deleted = 0
+ LEFT JOIN pick_order po_out
+ ON pol.poId = po_out.id
+ AND po_out.deleted = 0
+ LEFT JOIN job_order jo_po
+ ON po_out.joId = jo_po.id
+ AND jo_po.deleted = 0
+ LEFT JOIN delivery_order do
+ ON po_out.doId = do.id
+ AND do.deleted = 0
+ LEFT JOIN stock_in si
+ ON sil.stockInId = si.id
+ AND si.deleted = 0
+ LEFT JOIN job_order jo
+ ON sil.jobOrderId = jo.id
+ AND jo.deleted = 0
+ LEFT JOIN purchase_order po
+ ON sil.purchaseOrderId = po.id
+ AND po.deleted = 0
WHERE
sl.deleted = 0
AND sl.itemCode IS NOT NULL
@@ -203,8 +231,17 @@ SELECT
unitOfMeasure,
lotNo,
expiryDate,
- trnDate,
- trnRefNo,
+ trnDate,
+ CASE trnRefNoRaw
+ WHEN 'OPEN' THEN '開倉'
+ WHEN 'NOR' THEN '出入倉'
+ WHEN 'TRF' THEN '轉倉'
+ WHEN 'ADJ' THEN '調整'
+ WHEN 'MISS' THEN '遺失'
+ WHEN 'BAD' THEN '不良品'
+ WHEN 'TKE' THEN '盤點'
+ ELSE trnRefNoRaw
+ END AS trnRefNo,
storeLocation,
orderRefNo,
jobOrderNo,
@@ -238,15 +275,15 @@ SELECT
) AS CHAR) AS cumOpeningBal,
-- footer totals(同樣輸出 String)
- CAST(CAST(openingBeforeStart AS DECIMAL(20,0)) AS CHAR) AS totalCumOpeningBal,
- CAST(CAST(SUM(inQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS CHAR) AS totalStockIn,
- CAST(CAST(SUM(outQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS CHAR) AS totalStockOut,
- CAST(CAST(
+ CAST(openingBeforeStart AS DECIMAL(20,0)) AS totalCumOpeningBal,
+ CAST(SUM(inQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS totalStockIn,
+ CAST(SUM(outQty) OVER (PARTITION BY itemCode) AS DECIMAL(20,0)) AS totalStockOut,
+ CAST(
(openingBeforeStart
+ SUM(inQty) OVER (PARTITION BY itemCode)
- SUM(outQty) OVER (PARTITION BY itemCode)
) AS DECIMAL(20,0)
- ) AS CHAR) AS totalCumBalance
+ ) AS totalCumBalance
FROM period
ORDER BY
diff --git a/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt b/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt
index a845b3d..1693aa8 100644
--- a/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt
+++ b/src/main/java/com/ffii/fpsms/modules/stock/service/StockTakeRecordService.kt
@@ -931,7 +931,7 @@ class StockTakeRecordService(
this.outQty = absVariance.toDouble()
this.stockOutLine = stockOutLine
this.balance = newBalance
- this.type = "Adj"
+ this.type = "TKE"
this.date = LocalDate.now()
}
stockLedgerRepository.save(stockLedger)
@@ -974,7 +974,7 @@ class StockTakeRecordService(
this.expiryDate = inventoryLot.expiryDate
this.lotNo = inventoryLot.lotNo
this.status = "completed"
- this.type = "ADJ"
+ this.type = "TKE"
// 注意:此时不设置 inventoryLot 和 inventoryLotLine,因为还没有创建
}
stockInLineRepository.save(stockInLine)
diff --git a/src/main/resources/jasper/StockLedgarReport.jrxml b/src/main/resources/jasper/StockLedgarReport.jrxml
index a4187ff..152f398 100644
--- a/src/main/resources/jasper/StockLedgarReport.jrxml
+++ b/src/main/resources/jasper/StockLedgarReport.jrxml
@@ -57,10 +57,10 @@
-
-
-
-
+
+
+
+
@@ -100,7 +100,7 @@
-
+
@@ -109,7 +109,7 @@
-
+
@@ -118,7 +118,7 @@
-
+
@@ -127,7 +127,7 @@
-
+