484 lines
14 KiB
Markdown
484 lines
14 KiB
Markdown
# 相關頁面
|
||
## 基本功能
|
||
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
|
||
``` |