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:
2025-12-01 09:56:01 +08:00
parent 83ce1f7fc8
commit 642b879dd4
207 changed files with 19487 additions and 3048 deletions

View File

@@ -0,0 +1,161 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Excel to System Account Code Mapping
|--------------------------------------------------------------------------
|
| This configuration maps Excel accounting codes to system account codes
| for importing accounting data from Excel files.
|
*/
'excel_to_system' => [
// Assets (1000 series)
'1000' => '1101', // 現金及約當現金 → 現金
'1100' => '1102', // 庫存現金 → 零用金
'1101' => '1201', // 銀行存款 → 銀行存款
'1107' => '1201', // 其他現金等價物 → 銀行存款
// Income (4000 series)
'4100' => '4201', // 一般捐款收入 → 捐贈收入
'4310' => '4102', // 入會費 → 入會費收入
'4101' => '4101', // 會費收入 → 會費收入 (direct match)
// Expenses (5000 series)
// 5100 業務費用需要根據描述細分,見下方 expense_keywords
],
/*
|--------------------------------------------------------------------------
| Expense Classification Keywords
|--------------------------------------------------------------------------
|
| Excel 中的 5100 業務費用需要根據描述關鍵字分類到具體科目
|
*/
'expense_keywords' => [
// 5206 - 旅運費
[
'keywords' => ['交通', '車費', '計程車', '高鐵', '台鐵', '客運', '機票', '油資', '停車'],
'account_code' => '5206',
'account_name' => '旅運費',
],
// 5209 - 會議費
[
'keywords' => ['會場', '場地', '清潔', '點心', '餐', '便當', '茶水', '會議'],
'account_code' => '5209',
'account_name' => '會議費',
],
// 5203 - 郵電費
[
'keywords' => ['郵寄', '郵資', '郵票', '快遞', '宅配', '電話', '網路', '通訊', '電信'],
'account_code' => '5203',
'account_name' => '郵電費',
],
// 5205 - 印刷費
[
'keywords' => ['影印', '列印', '印刷', '裝訂', '海報', '傳單', '文宣'],
'account_code' => '5205',
'account_name' => '印刷費',
],
// 5204 - 文具用品
[
'keywords' => ['文具', '用品', '紙張', '筆', '資料夾', '辦公用品'],
'account_code' => '5204',
'account_name' => '文具用品',
],
// 5202 - 水電費
[
'keywords' => ['水費', '電費', '水電'],
'account_code' => '5202',
'account_name' => '水電費',
],
// 5201 - 租金支出
[
'keywords' => ['租金', '房租', '場租'],
'account_code' => '5201',
'account_name' => '租金支出',
],
// 5208 - 修繕費
[
'keywords' => ['修繕', '維修', '修理', '保養'],
'account_code' => '5208',
'account_name' => '修繕費',
],
// 5212 - 廣告宣傳費
[
'keywords' => ['廣告', '宣傳', '行銷', '推廣'],
'account_code' => '5212',
'account_name' => '廣告宣傳費',
],
// 5213 - 專案活動費
[
'keywords' => ['活動', '專案', '講座', '課程', '研習', '訓練'],
'account_code' => '5213',
'account_name' => '專案活動費',
],
// 5211 - 交際費
[
'keywords' => ['交際', '禮品', '贈品', '紀念品'],
'account_code' => '5211',
'account_name' => '交際費',
],
// 5304 - 銀行手續費
[
'keywords' => ['手續費', '匯費', '轉帳費'],
'account_code' => '5304',
'account_name' => '銀行手續費',
],
// 5308 - 資訊系統費
[
'keywords' => ['軟體', '系統', '網站', 'domain', '主機', '雲端'],
'account_code' => '5308',
'account_name' => '資訊系統費',
],
// Default: 5901 雜項支出 (if no keywords match)
[
'keywords' => [],
'account_code' => '5901',
'account_name' => '雜項支出',
'is_default' => true,
],
],
/*
|--------------------------------------------------------------------------
| Cash Account
|--------------------------------------------------------------------------
|
| Default cash account for generating journal entries
|
*/
'cash_account_code' => '1101', // 現金
/*
|--------------------------------------------------------------------------
| Bank Account
|--------------------------------------------------------------------------
|
| Default bank account
|
*/
'bank_account_code' => '1201', // 銀行存款
];