Add membership fee system with disability discount and fix document permissions
Features: - Implement two fee types: entrance fee and annual fee (both NT$1,000) - Add 50% discount for disability certificate holders - Add disability certificate upload in member profile - Integrate disability verification into cashier approval workflow - Add membership fee settings in system admin Document permissions: - Fix hard-coded role logic in Document model - Use permission-based authorization instead of role checks Additional features: - Add announcements, general ledger, and trial balance modules - Add income management and accounting entries - Add comprehensive test suite with factories - Update UI translations to Traditional Chinese 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
331
會計科目比對分析.md
Normal file
331
會計科目比對分析.md
Normal file
@@ -0,0 +1,331 @@
|
||||
# 會計科目比對分析
|
||||
|
||||
**分析日期:** 2025-11-30
|
||||
|
||||
---
|
||||
|
||||
## 一、系統現況
|
||||
|
||||
### ✅ 系統已具備會計科目功能
|
||||
|
||||
**Model:** `App\Models\ChartOfAccount`
|
||||
**資料表:** `chart_of_accounts` (已建立,但目前為空)
|
||||
**Seeder:** `ChartOfAccountSeeder` (已準備好 56 個科目)
|
||||
|
||||
#### 資料表結構:
|
||||
|
||||
| 欄位名稱 | 說明 |
|
||||
|---------|------|
|
||||
| `account_code` | 科目代碼(如:1101, 4201) |
|
||||
| `account_name_zh` | 中文科目名稱 |
|
||||
| `account_name_en` | 英文科目名稱 |
|
||||
| `account_type` | 科目類型(asset/liability/net_asset/income/expense) |
|
||||
| `category` | 科目分類 |
|
||||
| `parent_account_id` | 父科目ID(支援階層結構) |
|
||||
| `is_active` | 是否啟用 |
|
||||
| `display_order` | 顯示順序 |
|
||||
| `description` | 說明 |
|
||||
|
||||
#### 支援的科目類型:
|
||||
|
||||
1. **asset** - 資產
|
||||
2. **liability** - 負債
|
||||
3. **net_asset** - 淨資產/基金
|
||||
4. **income** - 收入
|
||||
5. **expense** - 支出
|
||||
|
||||
---
|
||||
|
||||
## 二、系統預設科目 vs Excel 科目
|
||||
|
||||
### 📊 數量對比
|
||||
|
||||
| 來源 | 科目數量 | 狀態 |
|
||||
|------|---------|------|
|
||||
| **系統 Seeder** | 56 個科目 | ✅ 已定義,待執行 |
|
||||
| **Excel 檔案** | 44 個科目 | ✅ 已整理 |
|
||||
|
||||
### 🔍 詳細比對
|
||||
|
||||
#### A. 資產類科目 (1xxx)
|
||||
|
||||
**系統預設 (11個):**
|
||||
- 1101 現金
|
||||
- 1102 零用金
|
||||
- 1201 銀行存款
|
||||
- 1301 應收帳款
|
||||
- 1302 其他應收款
|
||||
- 1401 土地
|
||||
- 1402 房屋及建築
|
||||
- 1403 機器設備
|
||||
- 1404 辦公設備
|
||||
- 1405 電腦設備
|
||||
- 1501 存出保證金
|
||||
|
||||
**Excel (1000系列):**
|
||||
- 1000 現金及約當現金
|
||||
- 1100 庫存現金
|
||||
- 1101 銀行存款 ✅ 相符
|
||||
- 1107 其他現金等價物
|
||||
|
||||
**差異:**
|
||||
- ⚠️ Excel 使用更寬泛的「1000現金及約當現金」作為大類
|
||||
- 系統有更細分的固定資產科目(土地、房屋等)
|
||||
- 協會目前可能不需要那麼多固定資產科目
|
||||
|
||||
#### B. 收入類科目 (4xxx)
|
||||
|
||||
**系統預設 (10個):**
|
||||
- 4101 會費收入 ✅
|
||||
- 4102 入會費收入 ✅
|
||||
- 4201 捐贈收入 ✅
|
||||
- 4202 企業捐贈收入
|
||||
- 4301 政府補助收入
|
||||
- 4302 計畫補助收入
|
||||
- 4401 利息收入
|
||||
- 4402 活動報名費收入
|
||||
- 4901 雜項收入
|
||||
|
||||
**Excel (4000系列):**
|
||||
- 4100 一般捐款收入 ≈ 4201 捐贈收入
|
||||
- 4310 入會費 ≈ 4102 入會費收入
|
||||
|
||||
**對應關係:**
|
||||
| Excel | 系統 | 說明 |
|
||||
|-------|------|------|
|
||||
| 4100 | 4201 | 捐款收入(編號不同) |
|
||||
| 4310 | 4102 | 入會費(編號不同) |
|
||||
|
||||
**差異:**
|
||||
- ⚠️ 科目編號不完全相同
|
||||
- 系統有更細分的收入來源分類
|
||||
- Excel 較精簡
|
||||
|
||||
#### C. 支出類科目 (5xxx)
|
||||
|
||||
**系統預設 (35個,非常詳細):**
|
||||
|
||||
**人事費 (5101-5105):**
|
||||
- 5101 薪資支出
|
||||
- 5102 勞健保費
|
||||
- 5103 退休金提撥
|
||||
- 5104 加班費
|
||||
- 5105 員工福利
|
||||
|
||||
**業務費 (5201-5215):**
|
||||
- 5201 租金支出
|
||||
- 5202 水電費
|
||||
- 5203 郵電費
|
||||
- 5204 文具用品
|
||||
- 5205 印刷費
|
||||
- 5206 旅運費
|
||||
- 5207 保險費
|
||||
- 5208 修繕費
|
||||
- 5209 會議費
|
||||
- 5210 訓練費
|
||||
- 5211 交際費
|
||||
- 5212 廣告宣傳費
|
||||
- 5213 專案活動費
|
||||
- 5214 會員服務費
|
||||
- 5215 志工費用
|
||||
|
||||
**管理費 (5301-5308):**
|
||||
- 5301 折舊費用
|
||||
- 5302 稅捐
|
||||
- 5303 什項購置
|
||||
- 5304 銀行手續費
|
||||
- 5305 審計費
|
||||
- 5306 法律諮詢費
|
||||
- 5307 顧問費
|
||||
- 5308 資訊系統費
|
||||
|
||||
**其他支出:**
|
||||
- 5401 捐贈支出
|
||||
- 5901 雜項支出
|
||||
|
||||
**Excel (5000系列):**
|
||||
- 5100 業務費用(較籠統)
|
||||
|
||||
**差異:**
|
||||
- ⭐ 系統科目非常詳細,Excel 較精簡
|
||||
- 系統適合大型組織,Excel 適合小型協會
|
||||
- 可能需要調整
|
||||
|
||||
---
|
||||
|
||||
## 三、建議處理方案
|
||||
|
||||
### 🎯 方案一:使用系統預設科目(推薦)
|
||||
|
||||
**優點:**
|
||||
- ✅ 更完整、更專業
|
||||
- ✅ 未來擴展性強
|
||||
- ✅ 符合台灣非營利組織會計準則
|
||||
- ✅ 已經寫好,直接執行 Seeder 即可
|
||||
|
||||
**需要做的:**
|
||||
1. 執行 `php artisan db:seed --class=ChartOfAccountSeeder`
|
||||
2. 匯入 Excel 資料時,建立科目對照表
|
||||
3. Excel「4100一般捐款」→ 系統「4201捐贈收入」
|
||||
4. Excel「4310入會費」→ 系統「4102入會費收入」
|
||||
5. Excel「5100業務費用」→ 依實際用途對應到細項(如5206旅運費、5205印刷費等)
|
||||
|
||||
**科目對照表範例:**
|
||||
```
|
||||
Excel 4100 → 系統 4201 (捐贈收入)
|
||||
Excel 4310 → 系統 4102 (入會費收入)
|
||||
Excel 5100 → 系統 5201-5215 (依用途細分)
|
||||
- 會場清潔費 → 5208 修繕費 或 5209 會議費
|
||||
- 點心費 → 5209 會議費
|
||||
- 交通費 → 5206 旅運費
|
||||
- 郵寄費 → 5203 郵電費
|
||||
- 影印費 → 5205 印刷費
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🎯 方案二:使用 Excel 科目
|
||||
|
||||
**優點:**
|
||||
- 簡單直接
|
||||
- 與現有資料一致
|
||||
|
||||
**缺點:**
|
||||
- ❌ 科目較少,未來可能不夠用
|
||||
- ❌ 支出科目太籠統(全部都是「業務費用」)
|
||||
- ❌ 不符合標準會計科目結構
|
||||
|
||||
**需要做的:**
|
||||
1. 修改 Seeder,使用 Excel 的 44 個科目
|
||||
2. 或手動建立 Excel 科目
|
||||
|
||||
---
|
||||
|
||||
### 🎯 方案三:混合使用(折衷方案)
|
||||
|
||||
**做法:**
|
||||
1. 使用系統預設科目作為基礎
|
||||
2. 保留 Excel 中重要但系統沒有的科目
|
||||
3. 匯入時建立對照關係
|
||||
|
||||
---
|
||||
|
||||
## 四、推薦執行步驟
|
||||
|
||||
### ✅ 建議採用「方案一:使用系統預設科目」
|
||||
|
||||
#### 步驟 1:執行系統 Seeder
|
||||
|
||||
```bash
|
||||
php artisan db:seed --class=ChartOfAccountSeeder
|
||||
```
|
||||
|
||||
這會建立 56 個標準會計科目。
|
||||
|
||||
#### 步驟 2:建立 Excel 科目對照表
|
||||
|
||||
創建一個對照表文件,記錄 Excel 科目如何對應到系統科目:
|
||||
|
||||
| Excel科目編號 | Excel科目名稱 | 系統科目編號 | 系統科目名稱 | 備註 |
|
||||
|--------------|--------------|------------|------------|------|
|
||||
| 4100 | 一般捐款收入 | 4201 | 捐贈收入 | |
|
||||
| 4310 | 入會費 | 4102 | 入會費收入 | |
|
||||
| 5100 | 業務費用 | (多個) | 依用途細分 | 需分析摘要 |
|
||||
|
||||
#### 步驟 3:匯入 Excel 資料時進行轉換
|
||||
|
||||
在匯入程式中:
|
||||
1. 讀取 Excel 的科目編號
|
||||
2. 查詢對照表
|
||||
3. 轉換為系統科目編號
|
||||
4. 寫入資料庫
|
||||
|
||||
#### 步驟 4:特別處理「5100業務費用」
|
||||
|
||||
Excel 中所有支出都記為「5100業務費用」,需要根據「支出用途備註」欄位來判斷應該對應到哪個細項科目:
|
||||
|
||||
```php
|
||||
// 範例邏輯
|
||||
if (str_contains($description, '交通') || str_contains($description, '車費')) {
|
||||
$accountCode = '5206'; // 旅運費
|
||||
} elseif (str_contains($description, '會場') || str_contains($description, '清潔')) {
|
||||
$accountCode = '5209'; // 會議費
|
||||
} elseif (str_contains($description, '點心') || str_contains($description, '餐')) {
|
||||
$accountCode = '5209'; // 會議費
|
||||
}
|
||||
// ... 更多規則
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、執行檢查清單
|
||||
|
||||
### 匯入前
|
||||
|
||||
- [ ] 決定使用哪個方案
|
||||
- [ ] 執行 ChartOfAccountSeeder(如果用方案一)
|
||||
- [ ] 建立科目對照表
|
||||
- [ ] 準備支出科目判斷邏輯
|
||||
|
||||
### 匯入中
|
||||
|
||||
- [ ] 驗證科目代碼存在
|
||||
- [ ] 記錄無法對應的科目
|
||||
- [ ] 保留原始 Excel 科目編號(在備註欄)
|
||||
|
||||
### 匯入後
|
||||
|
||||
- [ ] 檢查科目使用統計
|
||||
- [ ] 確認借貸平衡
|
||||
- [ ] 產生匯入報告
|
||||
|
||||
---
|
||||
|
||||
## 六、立即可做的事
|
||||
|
||||
### 現在就可以執行
|
||||
|
||||
```bash
|
||||
# 1. 查看系統已有多少科目(應該是 0)
|
||||
php artisan tinker --execute="echo App\Models\ChartOfAccount::count();"
|
||||
|
||||
# 2. 執行 Seeder 建立 56 個預設科目
|
||||
php artisan db:seed --class=ChartOfAccountSeeder
|
||||
|
||||
# 3. 再次確認科目數量(應該變成 56)
|
||||
php artisan tinker --execute="echo App\Models\ChartOfAccount::count();"
|
||||
|
||||
# 4. 列出所有收入類科目
|
||||
php artisan tinker --execute="
|
||||
\$accounts = App\Models\ChartOfAccount::where('account_type', 'income')->get();
|
||||
foreach (\$accounts as \$a) {
|
||||
echo \$a->account_code . ' - ' . \$a->account_name_zh . '\n';
|
||||
}
|
||||
"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、結論
|
||||
|
||||
### ✅ 系統已經準備好會計科目功能
|
||||
|
||||
1. **Model 完整** - ChartOfAccount 已實作
|
||||
2. **資料表已建立** - chart_of_accounts 存在
|
||||
3. **預設科目齊全** - 56個專業科目已定義
|
||||
4. **關聯完整** - 支援父子科目、交易關聯
|
||||
|
||||
### 🎯 下一步
|
||||
|
||||
**推薦做法:**
|
||||
1. ✅ 執行 ChartOfAccountSeeder 建立系統科目
|
||||
2. ✅ 建立 Excel → 系統科目對照表
|
||||
3. ✅ 開發匯入程式,在匯入時自動轉換科目
|
||||
|
||||
**優勢:**
|
||||
- 使用專業的會計科目結構
|
||||
- 未來擴展性強
|
||||
- 符合台灣非營利組織準則
|
||||
- 財報產出更專業
|
||||
|
||||
需要我現在執行 Seeder 建立這 56 個會計科目嗎?
|
||||
Reference in New Issue
Block a user