# 相關頁面
## 基本功能
admin/order/index.aspx
admin/activity/index.aspx
admin/follower/index.aspx
admin/activity/index2.aspx
admin/transfer/index.aspx

## 入帳沖帳
D:\dev\ez\17168erp\git_17888\web\admin\transfer\balance_reconcile_query.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\balance_reconcile.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\group_reconcile.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\index.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\personal_reconcile.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\register.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify_order_record_query.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify1.aspx
D:\dev\ez\17168erp\git_17888\web\admin\transfer\verify2.aspx

# 資料結構

## 📊 17168ERP 系統使用的資料表架構

### 🎯 **核心業務資料表**

#### 1. **報名管理系統** (`order/index.aspx`)
**主要資料表：**
- **`pro_order`** - 報名主表
  - `order_no` (單號)、`up_time` (報名日期)、`keyin1` (單據狀態)
  - `f_num` (信眾編號)、`activity_num` (活動編號)、`phone` (聯絡電話)
  
- **`pro_order_detail`** - 報名明細表
  - `order_no` (關聯主表)、`actItem_num` (活動品項)、`f_num` (報名者)
  - `price` (金額)、`qty` (數量)、`pay` (已收金額)、`pay_date` (付款期限)
  
- **`activity`** - 活動主表
  - `num`、`subject` (活動名稱)、`start_date` (開始日期)、`end_date` (結束日期)
  
- **`actItem`** - 活動品項表
  - `num`、`subject` (品項名稱)、`category` (品項分類)

#### 2. **信眾管理系統** (`follower/index.aspx`)
**主要資料表：**
- **`followers`** - 信眾基本資料表
  - `num`、`f_number` (信眾編號)、`u_name` (姓名)、`sex` (性別)
  - `identity_type` (身分別)、`birthday` (生日)、`phone` (電話)
  - `address` (地址)、`country` (國籍)、`refugedate` (皈依日期)

- **`countries`** - 國籍資料表
  - `ID`、`name_zh` (中文名稱)、`name_en` (英文名稱)

#### 3. **活動管理系統** (`activity/index.aspx`)
**主要資料表：**
- **`activity`** - 活動主表
  - `num`、`subject` (活動名稱)、`startDate_solar` (國曆開始日期)
  - `startDate_lunar` (農曆開始日期)、`endDate_solar` (國曆結束日期)
  - `endDate_lunar` (農曆結束日期)、`dueDate` (報名截止日期)

- **`activity_kind`** - 活動分類表
  - `num`、`subject` (分類名稱)

#### 4. **匯款沖帳系統** (`transfer/index.aspx`)
**主要資料表：**
- **`transfer_register`** - 匯款登錄表
  - `id`、`name` (匯款人姓名)、`phone` (電話)、`amount` (匯款金額)
  - `pay_type` (付款方式)、`account_last5` (帳號後五碼)
  - `proof_img` (匯款證明圖片)、`status` (狀態)
  - `f_num_match` (配對信眾編號)、`check_amount` (核對金額)

- **`accounting`** - 會計帳務表
  - `num`、`category` (科目分類)、`kind` (收支類型)
  - `price` (金額)、`debtor` (債務人)、`activity_num` (關聯活動)

- **`pro_order_record`** - 報名收款記錄表
  - `num`、`detail_num` (關聯明細)、`price` (金額)、`payment` (付款方式)
  - `pay_date` (收款日期)、`transfer_id` (關聯匯款記錄)

### 🔗 **關聯關係**

#### **主要外鍵關聯：**
```
pro_order → followers (f_num)
pro_order → activity (activity_num)
pro_order_detail → pro_order (order_no)
pro_order_detail → actItem (actItem_num)
pro_order_detail → followers (f_num)
transfer_register → followers (f_num)
transfer_register → activity (activity_num)
accounting → pro_order_detail (pro_order_detail_num)
```

### 📈 **資料表統計**

| 功能模組 | 主要資料表數量 | 核心業務表 |
|---------|-------------|-----------|
| 報名管理 | 5個 | `pro_order`, `pro_order_detail` |
| 信眾管理 | 2個 | `followers`, `countries` |
| 活動管理 | 2個 | `activity`, `activity_kind` |
| 匯款沖帳 | 3個 | `transfer_register`, `accounting`, `pro_order_record` |

### 🎯 **系統特色**

1. **模組化設計**：每個功能模組都有獨立的資料表群組
2. **關聯完整**：透過外鍵建立完整的業務關聯關係
3. **狀態管理**：多個狀態表支援複雜的業務流程
4. **UUID設計**：新模組採用UUID作為主鍵，提升擴展性
5. **軟刪除機制**：使用`IsDeleted`欄位而非物理刪除

這個資料表架構支援了一個完整的宗教活動管理ERP系統，涵蓋了從信眾管理、活動報名、床位安排到財務沖帳的全流程管理。

# 入帳沖帳
```
報名者匯款 → transfer_register (status: pending)
     ↓
出納核對身份 → transfer_register (status: verified, f_num_match)
     ↓  
出納核對金額 → transfer_register (status: confirmed, check_amount)
     ↓
會計個人沖帳 → pro_order_record + accounting
     ↓
會計共同沖帳 → pro_order_record + accounting (多筆)
     ↓
會計餘額核銷 → transfer_register (remain_amount)
     ↓
查詢統計報表 → 各表關聯查詢
```

# DB SCHEMA
我來為您使用 Mermaid 語法繪製 17168ERP 系統的 ER 圖，展示各個資料表之間的關聯關係。


[1 tool called]

我無法直接創建 Mermaid 圖表，但我可以為您提供完整的 Mermaid ER 圖代碼，您可以複製到支援 Mermaid 的工具中查看（如 GitHub、GitLab、或 Mermaid Live Editor）。

以下是 17168ERP 系統的 ER 圖 Mermaid 代碼：

```mermaid
erDiagram
    %% 信眾管理系統
    followers {
        int num PK
        string f_number
        string u_name
        string sex
        int identity_type
        datetime birthday
        string phone
        string email
        datetime refugedate
        string refuge_name
        string address
        string demo
        int leader
        string socialid1
        string socialid2
        string tab
        string contactor
        string contactor_phone
        string blood
        string customize_data
    }

    countries {
        int ID PK
        string name_zh
        string name_en
        string range
    }

    %% 活動管理系統
    activity {
        int num PK
        string subject
        datetime startDate_solar
        datetime startDate_lunar
        datetime endDate_solar
        datetime endDate_lunar
        datetime dueDate
        int kind
        string demo
        string customize_data
    }

    activity_kind {
        int num PK
        string subject
        string demo
    }

    actItem {
        int num PK
        int activity_num FK
        string subject
        int category
        string demo
        string customize_data
    }

    %% 報名管理系統
    pro_order {
        string order_no PK
        datetime up_time
        datetime reg_time
        string keyin1
        int f_num FK
        string phone
        int activity_num FK
        string address
        string demo
        string customize_data
        int introducer FK
        boolean send_receipt
        string receipt_title
    }

    pro_order_detail {
        int num PK
        string order_no FK
        int actItem_num FK
        int f_num FK
        string f_num_tablet
        string address
        int from_id FK
        string from_id_tablet
        datetime due_date
        int bed_type
        float price
        int qty
        datetime start_date
        datetime extend_date
        float pay
        datetime pay_date
        int keyin1
        string demo
        datetime UpdateTime
    }

    %% 匯款沖帳系統
    transfer_register {
        int id PK
        int activity_num FK
        string name
        string phone
        string pay_type
        string account_last5
        decimal amount
        string pay_mode
        string note
        string proof_img
        string status
        datetime create_time
        int f_num_match FK
        int f_num FK
        int acc_num
        datetime check_date
        decimal check_amount
        string check_memo
        string check_status
        int acc_kind
        int member_num
        datetime verify_time
        string verify_note
        string draft
        decimal remain_amount
        int balance_act_item FK
        int balance_pro_order_detail FK
    }

    accounting {
        int num PK
        datetime uptime
        int category
        int kind
        int kind2
        float price
        float tax
        string demo
        int mem_num
        string debtor
        int activity_num FK
        string excerpt
        datetime reg_time
        int pro_order_detail_num FK
    }

    pro_order_record {
        int num PK
        int detail_num FK
        float price
        int payment
        datetime reg_time
        datetime pay_date
        string organization
        string bank_code
        int transfer_id FK
        string reconcile_memo
    }

    %% 區域床位管理系統
    Region {
        Guid Uuid PK
        string Name
        boolean Gender
        boolean IsActive
        boolean IsDeleted
    }

    Room {
        Guid Uuid PK
        string Name
        boolean Gender
        int BedCount
        boolean IsActive
        datetime CreatedAt
        datetime UpdatedAt
        boolean IsDeleted
        Guid RegionUuid FK
    }

    RegionRoomBed {
        Guid Uuid PK
        string Name
        boolean IsActive
        boolean Gender
        boolean IsDeleted
        Guid RoomUuid FK
        string StatusCode FK
    }

    RegionRoomBedStatus {
        string Code PK
        string Name
        string Description
        int Category
        boolean IsDeleted
    }

    %% 掛單管理系統
    GuaDanOrder {
        Guid Uuid PK
        datetime StartDate
        datetime EndDate
        int CreateUser FK
        datetime CreatedAt
        datetime UpdatedAt
        string Notes
        string GuaDanOrderNo
        int BookerFollowerNum FK
        string BookerName
        string BookerPhone
        boolean IsDeleted
        int ActivityNum FK
        boolean IsCancel
    }

    GuaDanOrderGuest {
        Guid Uuid PK
        string GuaDanOrderNo FK
        int FollowerNum FK
        boolean IsDeleted
        Guid RoomUuid FK
        Guid BedUuid FK
        datetime CheckInAt
        datetime CheckOutAt
        string StatusCode FK
    }

    RegionAndRoomAndBedSchedule {
        Guid Uuid PK
        Guid TargetUuid FK
        string GuaDanOrderNo
        date ScheduleDate
        boolean IsCancel
        boolean IsDeleted
        int UseType
        string Title
        string Description
        string CreatedBy
        datetime CreatedAt
        Guid GuaDanOrderGuestUuid FK
    }

    %% 關聯關係
    followers ||--o{ pro_order : "報名"
    followers ||--o{ pro_order_detail : "報名明細"
    followers ||--o{ transfer_register : "匯款人"
    followers ||--o{ GuaDanOrderGuest : "掛單客人"
    
    activity ||--o{ pro_order : "活動報名"
    activity ||--o{ actItem : "活動品項"
    activity ||--o{ transfer_register : "活動匯款"
    activity ||--o{ GuaDanOrder : "掛單活動"
    
    pro_order ||--o{ pro_order_detail : "報名明細"
    pro_order ||--o{ pro_order_record : "收款記錄"
    
    pro_order_detail ||--o{ pro_order_record : "明細收款"
    pro_order_detail ||--o{ accounting : "會計分錄"
    pro_order_detail ||--o{ transfer_register : "沖帳明細"
    
    transfer_register ||--o{ pro_order_record : "匯款記錄"
    transfer_register ||--o{ accounting : "會計記錄"
    
    Region ||--o{ Room : "區域房間"
    Room ||--o{ RegionRoomBed : "房間床位"
    RegionRoomBedStatus ||--o{ RegionRoomBed : "床位狀態"
    RegionRoomBedStatus ||--o{ GuaDanOrderGuest : "客人狀態"
    
    GuaDanOrder ||--o{ GuaDanOrderGuest : "掛單客人"
    GuaDanOrderGuest ||--o{ RegionAndRoomAndBedSchedule : "床位排程"
    
    countries ||--o{ followers : "國籍"
    activity_kind ||--o{ activity : "活動分類"
```

## 📊 **ER 圖說明**

### **主要實體群組：**

1. **信眾管理群組**
   - `followers` (信眾基本資料)
   - `countries` (國籍資料)

2. **活動管理群組**
   - `activity` (活動主表)
   - `activity_kind` (活動分類)
   - `actItem` (活動品項)

3. **報名管理群組**
   - `pro_order` (報名主表)
   - `pro_order_detail` (報名明細)

4. **財務管理群組**
   - `transfer_register` (匯款登錄)
   - `accounting` (會計帳務)
   - `pro_order_record` (收款記錄)

5. **床位管理群組**
   - `Region` (區域)
   - `Room` (房間)
   - `RegionRoomBed` (床位)
   - `RegionRoomBedStatus` (床位狀態)

6. **掛單管理群組**
   - `GuaDanOrder` (掛單主表)
   - `GuaDanOrderGuest` (掛單客人)
   - `RegionAndRoomAndBedSchedule` (床位排程)

### **關鍵關聯關係：**

- **一對多關係**：使用 `||--o{` 表示
- **外鍵關聯**：FK 標記顯示主要的外鍵關聯
- **業務流程**：從信眾報名 → 匯款 → 沖帳 → 床位安排的完整流程

您可以将這個 Mermaid 代碼複製到 [Mermaid Live Editor](https://mermaid.live/) 或其他支援 Mermaid 的工具中查看完整的 ER 圖表。

---
# 報表系統規劃
為每場活動(法會)建立報名到舉辦過程的報表,
要涵蓋以下面向的統計分析資訊

- 以單一場法會為核心
- 時間面向: 當前狀況, 指定期間狀況
- 維度:
  - 信眾: 報名數量, 金額, 收款狀態
  - 牌位型態(活動品項表): 報名數量, 金額, 收款狀態
  - 收款狀態: 己收/未收 統計明細

## 執行方式:
- 類似excel, 詳細資料->pivot table
- 先建立一個(或數個)最核心的sql view, 包含各項:報名資料, 收款明細
  - 先以單一活動編號為固定FILTER : activity.num=59
- 再依不同面向, 建立第二級的sql view
- 再人工將以上:第一, 第二級的SQL VIEW, 以EXCEL查詢, 做資料分析/整理
- 相關英文欄名, 在VIEW中以中文別名顯示

## 相關SQL VIEW
- (查詢清單)
### (查詢)
(說明)
```sql
```