The frontend GRN/入倉明細報告 report calls the following endpoint. The backend must implement it to return JSON (not PDF).
GET/report/grn-reportreceiptDateStart – date (e.g. yyyy-MM-dd), filter receipt date fromreceiptDateEnd – date (e.g. yyyy-MM-dd), filter receipt date toitemCode – string, filter by item code (partial match if desired)application/jsonrows array:{
"rows": [
{
"poCode": "PO-2025-001",
"deliveryNoteNo": "DN-12345",
"receiptDate": "2025-03-15",
"itemCode": "MAT-001",
"itemName": "Raw Material A",
"acceptedQty": 100,
"receivedQty": 100,
"demandQty": 120,
"uom": "KG",
"purchaseUomDesc": "Kilogram",
"stockUomDesc": "KG",
"productLotNo": "LOT-001",
"expiryDate": "2026-03-01",
"supplierCode": "P06",
"supplier": "Supplier Name",
"status": "completed",
"grnCode": "PPP004GRN26030298",
"grnId": 7854617
}
]
}
Or a direct array:
[
{ "poCode": "PO-2025-001", "deliveryNoteNo": "DN-12345", ... }
]
receiptDate (or equivalent) between receiptDateStart and receiptDateEnd when provided.itemCode when provided.acceptedQty), uom, and optionally receipt date, lot, expiry, supplier, status.Frontend builds the Excel from this JSON. Columns include: PO No., Delivery Note No., Receipt Date, Item Code, Item Name, Qty, Demand Qty, UOM, Supplier Lot No. 供應商批次, Expiry Date, Supplier Code, Supplier, 入倉狀態, GRN Code (m18_goods_receipt_note_log.grn_code), GRN Id (m18_record_id).
Header colours, number formats (#,##0.00 for amounts), and column alignment are defined in:
../chart/_components/EXCEL_EXPORT_STANDARD.md
Use that document when adding or changing Excel exports so formatting stays consistent.