# 會計科目比對分析 **分析日期:** 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 個會計科目嗎?