Files
17168ERP/data/memo/memo_plan_pay.md
2025-08-29 01:27:25 +08:00

219 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DOCS
## files
D:\dev\ez\17168erp\git_gitea\web\admin\activity\index.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\follower\index.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\follower\reg.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\order\index.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\order\reg.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\accounting\kind_reg.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\accounting\kind_reg2.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\accounting\index.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\admin\accounting\news_reg.aspx.cs
D:\dev\ez\17168erp\git_gitea\web\App_Code\api\orderController.cs
## DESC
### 檔案主要功能說明
1. `activity/index.aspx.cs`活動管理系統主頁負責活動分類建立、管理及活動資料匯出Excel。
2. `follower/index.aspx.cs`:信眾管理系統主頁,負責信眾資料查詢、管理及匯出。
3. `order/index.aspx.cs``order/reg.aspx.cs`:訂單管理系統,負責訂單查詢與登記。
4. `accounting/index.aspx.cs`:會計系統主頁。
5. `accounting/kind_reg.aspx.cs``kind_reg2.aspx.cs`:會計科目分類登記。
6. `accounting/news_reg.aspx.cs`:會計相關新聞或公告登記。
系統採用 ASP.NET Web Forms 與 Entity Framework涵蓋信眾、活動、訂單、會計等模組。
---
### 訂單收款記錄管理作業流程
1. 使用者點擊「收款紀錄」按鈕,開啟對話框並呼叫 `payOrderList2()` 載入資料。
2. 前端檢查訂單編號與明細編號設定分頁參數呼叫API取得收款記錄。
3. 後端API接收查詢條件查詢 `pro_order_record`,回傳付款日期、方式、金額、機構、銀行代碼等資訊。
4. 前端以Vuetify資料表格顯示收款記錄支援搜尋、分頁、排序。
5. 支援新增、編輯、刪除收款記錄。
6. 表格排序或分頁設定改變時自動重新載入資料。
用途:追蹤訂單收款狀況、管理多筆收款記錄、查詢與管理介面、支援多種付款方式。
---
# 功能延伸
## 信眾-登錄匯款
### TABLE結構
新增暫存表 `remittance_register_tmp`
| 欄位名稱 | 型態 | 說明 |
|------------------|----------------|----------------------------|
| id | int, PK, AI | 主鍵,自動編號 |
| activity_id | int | 對應法會/活動ID可選 |
| name | nvarchar(50) | 姓名/暱稱/法號 |
| phone | nvarchar(30) | 聯絡電話 |
| pay_type | nvarchar(20) | 付款方式(現金/匯款等) |
| account_last5 | nvarchar(10) | 帳號後五碼 |
| amount | decimal(12,2) | 付款金額 |
| pay_mode | nvarchar(10) | 付款型態(個人/共同) |
| note | nvarchar(200) | 備註 |
| proof_img | nvarchar(200) | 憑證圖檔路徑 |
| status | nvarchar(20) | 狀態(待核對/已入帳/作廢) |
| create_time | datetime | 建立時間 |
| verify_time | datetime | 核對/入帳時間 |
| verify_user | nvarchar(50) | 核對人員 |
| verify_note | nvarchar(200) | 核對說明 |
| recaptcha_token | nvarchar(200) | reCAPTCHA驗證可選 |
---
### 畫面設計說明
1. 進入方式:法會/活動頁面連結或QRcode進入可帶入活動ID參數。
2. 表單欄位:姓名(可匿名/暱稱/法號、電話、付款方式、帳號後5碼、付款金額、付款型態、備註、匯款憑證上傳、reCAPTCHA驗證。
3. 操作流程填寫表單送出資料以JSON送API成功後顯示訊息或QRcode所有資料進入暫存表不直接入帳後台人工核對後正式入帳。
4. 設計重點手機友善、圖片上傳、送出後明確回饋、不強制檢查資料正確性但利於後續人工核對、加reCAPTCHA防灌單。
---
## 核對入帳資訊
### TABLE結構說明
主表 `remittance_check`,記錄每筆待核對與已核對入帳資料。
| 欄位名稱 | 型態 | 說明 |
|------------------|----------------|----------------------------------------|
| id | int, PK, AI | 主鍵,自動編號 |
| tmp_id | int | 對應暫存登錄表remittance_register_tmp的ID |
| match_signup_id | int | 自動或人工比對到的報名信眾ID |
| match_status | nvarchar(20) | 比對狀態(自動/人工/未比對) |
| pay_type | nvarchar(20) | 付款方式(登錄資料) |
| account_last5 | nvarchar(10) | 帳號後五碼(登錄資料) |
| amount | decimal(12,2) | 付款金額(登錄資料) |
| payer_name | nvarchar(50) | 付款人/登錄人(登錄資料) |
| phone | nvarchar(30) | 電話(登錄資料) |
| proof_img | nvarchar(200) | 憑證圖檔路徑 |
| check_amount | decimal(12,2) | 實際入帳金額(出納填寫) |
| check_date | datetime | 入帳日期(出納填寫) |
| check_type | nvarchar(20) | 入帳方式(出納填寫) |
| check_note | nvarchar(200) | 入帳備註(出納填寫) |
| status | nvarchar(20) | 狀態(待核對/已確認/無效/沖帳) |
| create_time | datetime | 建立時間 |
| update_time | datetime | 最後更新時間 |
| verify_user | nvarchar(50) | 核對人員 |
---
### 畫面設計說明
1. 資料來源與自動比對左側顯示信眾登錄匯款資訊系統自動比對報名信眾結果顯示於DE欄若失敗可手動選擇。
2. 付款資訊與核對欄位F~J欄顯示報名者填寫的付款資訊K~O欄由出納填寫實際入帳資料。
3. 核對狀態管理O欄標註「確認」或「無效」後該筆資料完成核對下次不再顯示未完成資料持續顯示。
4. 輔助說明與操作提示:下方提供人工核對重點、注意事項、歷史紀錄查詢、憑證比對等輔助說明,支援人工補正、標註特殊狀況。
5. 沖帳與分攤明細:支援沖帳與分攤金額明細管理,方便人工確認。
---
## 個人-沖帳流程
### TABLE結構說明
沖帳結果寫入 `pro_order_record`
| 欄位名稱 | 型態 | 說明 |
|------------------|----------------|----------------------------------------|
| num | int, PK, AI | 主鍵,自動編號 |
| detail_num | int | 對應訂單明細pro_order_detail的ID |
| price | decimal(12,2) | 沖帳金額 |
| payment | int | 付款方式對應會計科目細分類ID |
| reg_time | datetime | 沖帳登記時間 |
| pay_date | datetime | 實際付款日期 |
| organization | nvarchar(100) | 匯款機構/銀行名稱 |
| bank_code | nvarchar(20) | 銀行代碼 |
| status | nvarchar(20) | 狀態(有效/作廢等) |
| note | nvarchar(200) | 備註 |
---
### 畫面設計說明
1. 信眾沖帳清單:左側顯示所有待沖帳信眾及其入帳金額與沖帳狀態,點選信眾後彈出沖帳分配視窗。
2. 彈窗內容:顯示信眾所有有報名但尚未完成繳費的項目清單,可自動分配入帳金額,也可人工調整分攤金額,支援部分繳費、溢繳、未繳等情境,並即時顯示分攤結果。
3. 沖帳操作:可調整每個項目的沖帳金額,總金額需與入帳金額一致才能送出,確認後寫入 `pro_order_record`,完成核銷,沖帳完成後狀態更新避免重複處理。
4. 輔助說明與彈性設計:下方提供沖帳規則、人工調整注意事項、分攤原則等輔助說明,支援查詢歷史沖帳紀錄。
---
# TABLE CREATE SQL
```
-- 信眾-登錄匯款暫存表
CREATE TABLE remittance_register_tmp (
id INT IDENTITY(1,1) PRIMARY KEY COMMENT '主鍵,自動編號',
activity_id INT NULL COMMENT '對應法會/活動ID可選',
name NVARCHAR(50) NOT NULL COMMENT '姓名/暱稱/法號',
phone NVARCHAR(30) NULL COMMENT '聯絡電話',
pay_type NVARCHAR(20) NOT NULL COMMENT '付款方式(現金/匯款等)',
account_last5 NVARCHAR(10) NULL COMMENT '帳號後五碼',
amount DECIMAL(12,2) NOT NULL COMMENT '付款金額',
pay_mode NVARCHAR(10) NOT NULL COMMENT '付款型態(個人/共同)',
note NVARCHAR(200) NULL COMMENT '備註',
proof_img NVARCHAR(200) NULL COMMENT '憑證圖檔路徑',
status NVARCHAR(20) NOT NULL DEFAULT '待核對' COMMENT '狀態(待核對/已入帳/作廢)',
create_time DATETIME NOT NULL DEFAULT GETDATE() COMMENT '建立時間',
verify_time DATETIME NULL COMMENT '核對/入帳時間',
verify_user NVARCHAR(50) NULL COMMENT '核對人員',
verify_note NVARCHAR(200) NULL COMMENT '核對說明',
recaptcha_token NVARCHAR(200) NULL COMMENT 'reCAPTCHA驗證可選'
);
-- 入帳核對主表
CREATE TABLE remittance_check (
id INT IDENTITY(1,1) PRIMARY KEY COMMENT '主鍵,自動編號',
tmp_id INT NOT NULL COMMENT '對應暫存登錄表remittance_register_tmp的ID',
match_signup_id INT NULL COMMENT '自動或人工比對到的報名信眾ID',
match_status NVARCHAR(20) NOT NULL DEFAULT '未比對' COMMENT '比對狀態(自動/人工/未比對)',
pay_type NVARCHAR(20) NOT NULL COMMENT '付款方式(登錄資料)',
account_last5 NVARCHAR(10) NULL COMMENT '帳號後五碼(登錄資料)',
amount DECIMAL(12,2) NOT NULL COMMENT '付款金額(登錄資料)',
payer_name NVARCHAR(50) NULL COMMENT '付款人/登錄人(登錄資料)',
phone NVARCHAR(30) NULL COMMENT '電話(登錄資料)',
proof_img NVARCHAR(200) NULL COMMENT '憑證圖檔路徑',
check_amount DECIMAL(12,2) NULL COMMENT '實際入帳金額(出納填寫)',
check_date DATETIME NULL COMMENT '入帳日期(出納填寫)',
check_type NVARCHAR(20) NULL COMMENT '入帳方式(出納填寫)',
check_note NVARCHAR(200) NULL COMMENT '入帳備註(出納填寫)',
status NVARCHAR(20) NOT NULL DEFAULT '待核對' COMMENT '狀態(待核對/已確認/無效/沖帳)',
create_time DATETIME NOT NULL DEFAULT GETDATE() COMMENT '建立時間',
update_time DATETIME NULL COMMENT '最後更新時間',
verify_user NVARCHAR(50) NULL COMMENT '核對人員'
);
-- 個人沖帳紀錄表
CREATE TABLE pro_order_record (
num INT IDENTITY(1,1) PRIMARY KEY COMMENT '主鍵,自動編號',
detail_num INT NOT NULL COMMENT '對應訂單明細pro_order_detail的ID',
price DECIMAL(12,2) NOT NULL COMMENT '沖帳金額',
payment INT NOT NULL COMMENT '付款方式對應會計科目細分類ID',
reg_time DATETIME NOT NULL DEFAULT GETDATE() COMMENT '沖帳登記時間',
pay_date DATETIME NULL COMMENT '實際付款日期',
organization NVARCHAR(100) NULL COMMENT '匯款機構/銀行名稱',
bank_code NVARCHAR(20) NULL COMMENT '銀行代碼',
status NVARCHAR(20) NOT NULL DEFAULT '有效' COMMENT '狀態(有效/作廢等)',
note NVARCHAR(200) NULL COMMENT '備註'
);
```
# HTML 檔名及路徑規劃
| 功能 | 建議檔名/路徑 | 說明 |
|----------------------|----------------------------------------------------|--------------------------|
| 信眾-登錄匯款 | `/web/transfer/register.html` | 信眾匯款登錄前台 |
| 核對入帳資訊 | `/web/admin/finance/remit_check.html` | 後台入帳核對作業 |
| 個人-沖帳流程 | `/web/admin/finance/personal_offset.html` | 後台個人沖帳分攤 |
| 共同-沖帳流程 | `/web/admin/finance/group_offset.html` | 後台多人/批次沖帳 |
| 訂單收款紀錄 | `/web/admin/order/reg.aspx` | 現有訂單收款紀錄 |
前台頁面可用 `.html``.aspx`,依現有架構調整。後台建議統一於 `/web/admin/finance/` 目錄下便於管理。API建議集中於 `/web/App_Code/api/`