# 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/`。