# 03_ui_design/02_master_management.md ## マスタ管理方式:B + C ハイブリッド ### 1. 基本方針 - マスタデータは全てJSONファイルで保存 - 通常は管理者画面で編集 - 入力時にも追加可能(便利さ優先) ### 2. 対象マスタ一覧 | マスタ | ファイル名 | 内容 | |--------|------------|------| | 拠点マスタ | branches.json | 本社、京都、大阪など | | 部署マスタ | departments.json | 調査部、経理部、営業部など | | 職務マスタ | positions.json | 役職名、報酬率 | | 勘定科目マスタ | accounts.json | 会計用科目 | | 顧客区分マスタ | client_types.json | 損保、弁護士、企業など | ### 3. 【方式B】管理者画面での編集 #### 画面構成 ``` 【管理者メニュー】 └ マスタ管理 ├ 拠点マスタ [編集] ├ 部署マスタ [編集] ├ 職務マスタ [編集] ├ 勘定科目マスタ [編集] └ 顧客区分マスタ [編集] ``` #### 各マスタ編集画面の機能 - 一覧表示(テーブル形式) - 新規追加ボタン - 各行に編集ボタン・削除ボタン - 削除は論理削除(activeフラグをfalseにする) #### 削除の考え方 - 完全削除はしない(履歴保存のため) - active: true → 使用中 - active: false → 削除済(表示されない) ### 4. 【方式C】入力時追加 #### プルダウンの構造 ```html ``` #### 追加モーダルのイメージ ``` ┌─────────────────────┐ │ 新規拠点追加 │ ├─────────────────────┤ │ 拠点コード: [ ] │ │ 拠点名: [ ] │ │ 場所: [ ] │ ├─────────────────────┤ │ [キャンセル] [追加] │ └─────────────────────┘ ``` #### 追加後の処理 1. 入力値をバリデーション 2. マスタJSONに追加 3. プルダウンを再読み込み 4. 追加した項目が選択状態に ### 5. マスタデータの構造(例:branches.json) ```json { "branches": [ { "code": "01", "name": "本社", "location": "京都", "active": true }, { "code": "02", "name": "京都", "location": "京都", "active": true }, { "code": "03", "name": "大阪", "location": "大阪", "active": true } ] } ``` ### 6. 注意点 - コードは一度決めたら変更しない(履歴管理のため) - 名称は変更可能 - 削除(active: false)しても過去データは参照可能 - 新しいマスタが増えた場合も同じ方式で対応 ### 7. 今後の拡張 - マスタごとに異なる項目があっても対応可能 - 新しいマスタは設定ファイルに追加するだけでOK --- ## 8. master/index.html 仕様 ### 8.1 概要 マスタ管理の起点となるトップページ。 アクセス権限に応じてリンクブロックを表示制御する。 ### 8.2 アクセス権限 `permission_assign` を保有するユーザーのみアクセス可能。 権限なし = このページ自体にアクセス不可(login.html にリダイレクト)。 ### 8.3 画面構成 | ブロック | リンク先 | 表示に必要な権限 | |---------|---------|----------------| | 権限マスタ管理 | master/permission_edit.html | permission_assign | | 従事者マスタ管理 | master/employees.html | profile_edit_all | | 拠点マスタ管理 | master/branch_edit.html | permission_assign | | 部署マスタ管理 | master/department_edit.html | permission_assign | | 契約マスタ管理 | master/contract_edit.html | permission_assign | | 職務マスタ管理 | master/position_edit.html | permission_assign | | 事業者情報 | company_info.html | company_info_view | ### 8.4 権限制御方針 - 権限なし = リンクブロック自体を非表示 - 権限チェックはサーバーAPIから取得したユーザー情報で判定 - localStorage / sessionStorage 使用禁止 --- ## 9. permission_edit.html 仕様 ### 9.1 概要 `/master/permissions.json` への権限の追加・編集・論理削除を 管理者が画面から行う。 ### 9.2 アクセス権限 `permission_assign` を保有するユーザーのみアクセス可能。 権限なし = login.html にリダイレクト。 ### 9.3 機能一覧 | 機能 | 内容 | |------|------| | 権限一覧表示 | テーブル形式。全件表示。active フィルタ切替あり(表示中のみ / 全件) | | 新規権限追加 | 権限ID・表示名・スコープ・レベル・カテゴリ・説明を入力 | | 既存権限編集 | 表示名・説明のみ変更可。権限IDは変更禁止 | | 論理削除 | active: false に変更。物理削除禁止 | ### 9.4 入力項目 | 項目 | 必須 | 備考 | |------|------|------| | 権限ID | ○ | 半角英数・アンダースコアのみ。登録後変更禁止 | | 表示名(日本語) | ○ | | | スコープ | ○ | self / team / branch / all | | レベル | ○ | 1(閲覧)/ 2(編集)/ 3(承認) | | カテゴリ | ○ | 経費 / 案件 / 従事者 / 会計 / 拠点間 / 会社アクセス / 事業者情報 / 労務 | | 説明 | - | 任意 | ### 9.5 保存API - エンドポイント: `POST /master/api/save_permission.php`(新規作成) - 新規: `created_at`・`created_by` を自動付与 - 編集: 表示名・説明のみ更新 - 論理削除: `active: false` に更新 ### 9.6 制約 - 権限IDは一度登録したら変更不可(履歴保存のため) - 物理削除は不可 - confirm() / alert() / prompt() 使用禁止。インライン表示で代替 - localStorage / sessionStorage 使用禁止 --- ## 10. 各マスタ編集画面 共通仕様(branch / department / contract / position) ### 10.1 共通機能 - 一覧表示(テーブル形式) - 新規追加 - 編集(コードは変更禁止、名称等は変更可) - 論理削除(active: false) - 保存先: `/master/api/save_[対象].php` ### 10.2 実装順序 従事者編集画面(employee_edit.html)でプルダウンとして参照されるため、 以下の順で先に実装する。 ``` ① branch_edit.html(拠点) ② department_edit.html(部署) ③ position_edit.html(職務) ④ contract_edit.html(契約) ``` ### 10.3 各マスタのJSON構造 #### branches.json ```json { "branches": [ { "code": "K01", "name": "本社", "location": "京都", "active": true } ] } ``` #### departments.json ```json { "departments": [ { "code": "D00", "name": "管理部", "active": true } ] } ``` #### positions.json ```json { "positions": [ { "code": "P001", "name": "代表取締役", "category": "役員", "default_permissions": ["permission_assign", "case_view_all"], "active": true } ] } ``` #### contracts.json ```json { "contracts": [ { "code": "C01", "name": "役員", "active": true } ] } ``` --- ## 11. 改訂履歴 | 日付 | 版 | 担当 | 内容 | 理由・影響範囲 | |------|----|------|------|--------------| | 2026-03-30 | 2.0 | マスタ管理担当(初代) | 8〜10節を新規追記、改訂履歴を11節に移設 | master/index.html・permission_edit.html・各マスタ編集画面の仕様策定。実装着手前の設計確定 |