Skip to main content

銷貨訂單查詢與來源統計系統

📌 功能簡介

此系統透過 Flask + MSSQL 建置 Web 查詢平台,提供每日銷貨訂單明細檢視、訂單來源統計,並支援依來源匯出 SKU 統計。

🔧 系統架構

  • 框架:Flask (Python)

  • 資料庫:MSSQL (pyodbc 連線)

  • 資料處理:Pandas

  • UI:HTML(Flask Templates)

  • 設定檔display_config.json 控制 SKU 排序

  • 埠號:5104

📑 功能說明

1. 首頁查詢 (/)

  • 預設顯示今日銷貨訂單(可輸入日期查詢)。

  • 顯示內容:

    • 銷貨日期、銷貨單號、訂單來源

    • 訂購人資訊(姓名、電話)

    • 收件人資訊(姓名、地址、電話、手機)

    • 付款方式、託運單號

    • 訂單總金額(Total + Tax)

    • 宅配代收金額(透過 OBTNumber 查詢)

    • 商品明細(SKU、品名規格、數量、分錄備註)

  • 自動排除以下 SKU:

    • P07-005-09

    • A

  • 同時計算各「訂單來源」的統計數量並顯示。


2. 來源 SKU 統計匯出 (/export_stat)

  • 可選擇指定的訂單來源,輸出 SKU 統計。

  • 統計內容:

    • SKU

    • 品名規格

    • 總數量

  • 排序規則:

    • 依照 display_config.json 中的 SKU 順序排序

    • 未列入設定的 SKU 排在最後

  • 輸出為 JSON 格式,前端可進一步處理或下載。


3. display_config.json 設定

{
  "SKU": ["P01-001-01", "P01-002-05", "P01-003-10"]
}

用來控制統計結果的 SKU 排序。

📂 主要 SQL 查詢

主檔(銷貨單)

SELECT 
  A.BillDate AS 銷貨日期,
  A.FundBillNo AS 銷貨單號,
  C.FullName AS 訂單來源,
  A.ContactPerson AS 訂購人,
  A.ContactPhone AS 訂購人電話,
  A.Remark AS 備註,
  A.EBOUserDef4 AS 付款方式,
  A.ReceMan AS 收件人姓名,
  A.ReceAddress AS 收件人地址,
  A.ReceTelephone AS 收件人電話,
  A.ReceMobilePhone AS 收件人手機,
  A.ConsignNo AS 託運單號,
  A.Total,
  A.Tax,
  A.OBTNumber
FROM comBillAccounts A
LEFT JOIN comCustomer C ON A.CustID = C.ID
WHERE A.BillDate = '{bill_date}' AND A.Flag = 500

明細(過濾指定 SKU)

SELECT 
    S.BillNO AS 銷貨單號,
    B.CustBillNo AS 來源單號,
    S.ProdID AS SKU,
    S.ProdName AS 品名規格,
    S.Quantity AS 數量,
    S.ItemRemark AS 分錄備註
FROM comProdRec S
LEFT JOIN (
    SELECT BillNO, MIN(CustBillNo) AS CustBillNo
    FROM stkBillSub
    WHERE Flag = 500 AND CustBillNo IS NOT NULL
    GROUP BY BillNO
) B ON S.BillNO = B.BillNO
WHERE S.Flag = 500
  AND S.BillNO IN ({placeholders})
  AND S.ProdID NOT LIKE '%P07-005-09%'
  AND S.ProdID != 'A'