# 会計担当 引き継ぎ書(2026-03-22 セッション末時点) 保存先:`/docs/07_accounting/00_handover.md` に上書き --- ## 1. システム概要 - 探偵業(個人事業SPS・法人SCSPS)のバックオフィス会計システム - サーバー:Xserver(xs418819)、URL:https://backoffice.scsps.jp - フロントエンド:HTML/CSS/Vanilla JS、バックエンド:PHP、データ:JSONファイル - 個人事業(SPS):1月〜12月、法人(SCSPS):7月〜翌6月 --- ## 2. 今セッションで完了した作業 ### HTMLファイル修正 | ファイル | 内容 | |---|---| | `common/accounting/ledger.html` | 会計TOPへ・pending・レスポンシブ・viewport・@page余白・印刷ボタン2種・すべて選択 | | `common/accounting/trial.html` | 同上 | | `common/accounting/pl.html` | 同上 | | `common/accounting/bs.html` | 同上・#00cc88削除 | | `private/accounting/monthly.html` | 同上 | | `private/accounting/consumption_tax.html` | 印刷CSS・A4対応・pending・権限チェック・prompt削除 | | `private/accounting/tax.html` | 余白・BS入力欄黒文字・住宅ローン印刷非表示・localStorage撤廃 | | `private/accounting/schedule.html` | 新規作成(localStorage撤廃・save_user_data.php利用) | | `private/accounting/depreciation.html` | 新規作成 | | `common/accounting/settings.html` | 全面改修(localStorage撤廃・save_accounts.php・レスポンシブ) | ### PHPファイル新規作成 | ファイル | 内容 | |---|---| | `master/api/save_accounts.php` | accounts.jsonのサーバー保存 | | `master/api/save_fixed_assets.php` | fixed_assets.jsonの保存・読込 | | `master/api/save_user_data.php` | BS期首残高・借入金内訳等の汎用手動入力データ保存 | | `master/api/move_receipt.php` | 会社間移動時の画像移動+案件番号ありログ記録 | ### 仕様書・ツリー修正 | ファイル | 版 | 内容 | |---|---|---| | `01_folder_structure.md` | v1.8 | 新規ファイル全反映・未実装リスト更新 | | `02_journal_spec.md` | v1.12 | 11節「出力仕様」全面更新(印刷2ボタン・@page・フォントサイズ) | | `07_accounts_master.md` | v1.3 | 保存方式をサーバーAPIに変更 | | `03_tax_audit_mode.md` | v1.2 | 名称を「データ参照モード」に変更 | --- ## 3. 積み残し・次の作業 ### 最優先(印刷確認待ち) - 全ファイルをサーバーにアップして実機で印刷確認 - 余白・フォントサイズが意図通りか確認 ### 次に着手する実装 1. **データ参照モード**(旧:税務署モード) - 設計書:`03_tax_audit_mode.md` - トークン発行PHP・閲覧専用HTML・アクセスログ - 会計TOP(`index.html`)に「会計データ参照」リンクを追加 2. **journal.html の追加機能**(高優先) - 領収書追加ボタン(既存仕訳への後付け) - pendingエリア(未確認仕訳の表示・確定操作) - ▲▼ソート切替 3. **法人版の未実装ファイル**(中優先) - `corporate/accounting/schedule.html` - `corporate/accounting/fixed_asset.html` --- ## 4. 重要ルール(必ず守ること) - **打ち合わせ中はコード生成・ファイル作成禁止** - **localStorage使用禁止**(サーバーAPI必須) - **ポップアップ・確認ダイアログ禁止**(`confirm`・`prompt`・`alert` 不使用) - **作成前に必ず「作成していいですか」と確認** - **#00cc88(緑)使用禁止** - **サンプルデータ・絵文字・アイコン禁止** - **`accounts.json` のfetchは `/master/accounts.json`(絶対パス)** - **全ファイルに `pending` フィルター(`status !== 'pending'`)を適用** - **修正申告ボタンは `accounting_approve` 権限チェックで表示制御** --- ## 5. サーバーパス早見表 ``` 仕訳データ: /backoffice/data/accounting/private/[年]/journals.json /backoffice/data/accounting/corporate/[期]/journals.json 領収書画像: /backoffice/data/receipts/private/[年]/[月]/[仕訳ID].jpg 手動入力: /backoffice/data/user_data/[key].json 固定資産: /backoffice/master/fixed_assets.json 勘定科目: /backoffice/master/accounts.json 移動ログ: /backoffice/data/logs/case_transfer.json APIキー: /backoffice/config.php(バックアップ対象外) ``` --- ## 6. 権限チェックの実装パターン ```javascript // sessionStorageからログインユーザーを取得 const user = JSON.parse(sessionStorage.getItem('sps_user') || '{}'); // 修正申告ボタンの表示制御 const canAmend = user.permissions?.accounting_approve === true; document.getElementById('unlockButton').style.display = (isLocked && canAmend) ? 'inline-block' : 'none'; ``` --- ## 7. APIパターン早見表 ```javascript // 仕訳読込(pendingを必ず除外) const res = await fetch(`/master/api/load_journals.php?company=SPS&year=${year}`); const journals = (res.journals || []).filter(j => j.status !== 'pending'); // 仕訳保存 await fetch('/master/api/save_journals.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ company: 'SPS', year, journals }) }); // 手動入力データ保存(BS期首残高・借入金等) await fetch('/master/api/save_user_data.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: 'bs_opening_SPS_2025', data: { ... } }) }); // 固定資産読込 const res = await fetch('/master/api/save_fixed_assets.php?company=SPS'); // 勘定科目保存 await fetch('/master/api/save_accounts.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ accounts: [...] }) }); ```