## 03_company_info.md # 事業者情報マスタ 設計書 ## 1. 概要 ### 1.1 目的 - 個人事業(SPS)および法人(SCSPS)の基本情報を一元管理する - 適格請求書登録番号、探偵業届出情報、会社住所など、帳票出力に必要な情報を保持する - 各帳票(請求書、領収書、決算書、申告書等)で共通して参照する ### 1.2 基本方針 - 会社コード(SPS/SCSPS)で識別 - 権限に応じて閲覧・編集可能 - 変更履歴は別途管理(必要に応じて) ## 2. 保存先 `/master/company_info.json` ## 3. データ構造 ```json { "companies": [ { "code": "SPS", "name": "SPS(個人事業)", "representative": "真柴 直也", "address": "京都府八幡市西山足立4-12", "phone": "075-600-2031", "invoice": { "number": "T1810290539036", "registered_date": "令和5年10月1日" }, "detective": { "trade_name": "総合調査SPサービス", "filing_date": "平成29年11月29日", "license_number": "第61170024号", "available_names": ["SPS", "総合調査SPS", "TSIサービス"] }, "established_date": "平成26年8月26日", "notes": "" }, { "code": "SCSPS", "name": "総合調査SPS株式会社", "representative": "真柴 直也", "address": "京都府八幡市西山足立4-12", "phone": "075-600-2031", "invoice": { "number": "T9130001065624", "registered_date": "令和5年10月1日" }, "detective": { "trade_name": "総合調査SPS株式会社", "filing_date": "令和元年11月11日", "license_number": "第61190014号", "available_names": ["SPS", "損害保険調査SPS", "SPS総合調査"] }, "established_date": "令和元年11月1日", "notes": "" } ] } ``` ## 4. フィールド説明 | フィールド | 型 | 必須 | 説明 | |-----------|-----|------|------| | code | string | ✅ | 会社コード(SPS / SCSPS) | | name | string | ✅ | 会社名 | | representative | string | ✅ | 代表者名 | | address | string | ✅ | 住所 | | phone | string | ✅ | 電話番号 | | invoice | object | ✅ | 適格請求書関連情報 | | invoice.number | string | ✅ | 適格請求書登録番号 | | invoice.registered_date | string | ✅ | 登録日(和暦) | | detective | object | ✅ | 探偵業関連情報 | | detective.trade_name | string | ✅ | 探偵業の商号 | | detective.filing_date | string | ✅ | 届出日(和暦) | | detective.license_number | string | ✅ | 届出番号 | | detective.available_names | array | ✅ | 使用できる名称の一覧 | | established_date | string | ✅ | 設立日/開業日(和暦) | | notes | string | | 備考 | ## 5. 関連する帳票・画面 | 帳票/画面 | 参照項目 | |----------|---------| | 請求書 | 会社名、住所、電話番号、適格請求書登録番号 | | 領収書 | 会社名、適格請求書登録番号 | | 決算書(表紙) | 会社名、住所、代表者名 | | 確定申告書(個人) | 氏名(代表者名)、適格請求書登録番号 | | 法人税申告書 | 会社名、代表者名、適格請求書登録番号 | | 消費税申告書 | 会社名、適格請求書登録番号 | | 従事者情報画面 | (参照なし) | | 管理者メニュー | 編集画面として利用 | ## 6. 閲覧・編集権限 | 操作 | 権限 | 備考 | |------|------|------| | 閲覧 | 該当会社のアクセス権限を持つユーザー | 個人事業の情報はSPS権限者、法人情報はSCSPS権限者のみ閲覧可 | | 編集 | permission_assign 権限保持者 | 両方の情報を編集可能 | ## 7. 画面構成(予定) ### 7.1 事業者情報一覧(管理者メニュー内) - 個人事業 / 法人 の切り替えタブ - 各項目の表示 ### 7.2 事業者情報編集画面 - 各フィールドの入力フォーム - 保存ボタン - キャンセルボタン ## 8. 保存処理API仕様 ### 8.1 概要 事業者情報の保存は、専用のAPI(`/master/api/save_company.php`)を介して行う。 ### 8.2 リクエスト仕様 | 項目 | 内容 | |------|------| | メソッド | POST | | エンドポイント | `/master/api/save_company.php` | | リクエストヘッダー | `Content-Type: application/json` | ### 8.3 リクエストボディ ```json { "company": { "code": "SPS", "name": "SPS(個人事業)", "representative": "真柴 直也", "address": "京都府八幡市西山足立4-12", "phone": "075-600-2031", "invoice": { "number": "T1810290539036", "registered_date": "令和5年10月1日" }, "detective": { "trade_name": "総合調査SPサービス", "filing_date": "平成29年11月29日", "license_number": "第61170024号", "available_names": ["SPS", "総合調査SPS", "TSIサービス"] }, "established_date": "平成26年8月26日", "notes": "" }, "user": "SPS01-00001" } ``` ### 8.4 レスポンス仕様 **成功時** ```json { "success": true, "message": "保存しました", "timestamp": "2026-03-16 15:30:00" } ``` **エラー時** ```json { "success": false, "message": "エラーメッセージ" } ``` ### 8.5 処理内容 1. リクエストデータのバリデーション 2. ファイルロック取得(排他制御) 3. `/master/company_info.json` 読み込み 4. 該当会社コードのデータ更新(なければ新規追加) 5. 更新日時・更新者情報追加 6. ファイル書き込み 7. ロック解除 8. バックアップ作成(自動) ## 改訂履歴 | 日付 | 版 | 内容 | |------|----|------| | 2026-03-15 | 1.0 | 初版作成 | | 2026-03-16 | 1.1 | 保存処理API仕様を追記 | ```