--- title: 施工報告書どうしの結合に対応(混在はエラー) updated: 2026-09-01 --- # 2026-09-01 施工報告書の結合 ## 何を変えたか - **施工報告書どうしを1つのPDFに結合できるようにした。** 先頭の表紙 → 全体の目次 → 各現場(工事概要 → 施工前・施工中・施工後の写真)の順です。 - **調査報告書と施工報告書の混在をエラーにした。**ページの構成そのものが違う (調査=現状確認/調査実施/総合所見、施工=工事概要/施工前・中・後)ためです。 結合画面では最初にチェックした種類に自動で絞り込まれ、行に〈調査〉〈施工〉のバッジが付きます。 - **様式(5タイプ)は報告書ごとにそのまま。**結合したというだけの理由で、 お客様が選んだ様式を変えることはしません(調査報告書の結合も元からこの動きです)。 - 写真が1枚も載っていない施工報告書が含まれていると、その現場名を挙げて止まります (単体でPDFを出すときと同じ判断。表紙だけの報告書が出ると「壊れている」と読まれるため)。 ### これまで何が起きていたか 施工報告書は調査報告書と同じレコードで作られるため、**結合の一覧に施工報告書も並び、 選ぶこともできていました。**ただし出力は調査報告書の様式で、表題も「調査報告書」でした。 SOLOプラン限定の機能なので、実際に踏んだ方はいないはずですが、踏めば壊れた状態でした。 ## AI影響 - [x] **プランのゲート(`App\Services\Entitlement`)を変えた?** → **影響なし。** 報告書結合は従来どおり SOLO 限定(`canMergeReports`・単品解放では開きません)。 - [x] **ロールのゲート(誰が使えるか)を変えた?** → **影響なし。** - [x] **画面名・操作手順が変わった?** → **あり。** `faq/merge-reports.md` と `manual/pc-report.md` の報告書結合の項に、 種別ごとの構成と混在不可を追記。画面名(報告書結合)は変えていません。 - [x] **画面のURLを変えた?** → **なし。**`/survey-reports/merge` のままです。 - [x] **新しいエラー文言が出るようになった?** → **あり(2件)。** - 「調査報告書と施工報告書を一緒に結合することはできません。どちらか一方を選んでください。」 - 「「〇〇」に報告書へ載せる写真が1枚もありません。アルバムで「報告書に載せる」を選んでから結合してください。」 どちらも画面上の警告表示で、`errors/` に立てるほどではありません。 - [x] **文言は出ないが挙動が変わる現象が増えた?** → **あり(1件)。** 結合画面で、**別の種類の報告書はチェックできなくなります**(お客様の絞り込みと同じ挙動)。 - [x] **用語が増減した?** → **なし。** ## 実装のメモ(次に触る人へ) - 施工報告書のPDFデータ組み立ては `App\Services\RepairReportBuilder::pdfData()` に移しました (結合と単体出力の両方から呼ぶため)。**コントローラから別のコントローラを呼ばないこと。** - 施工報告書のテンプレートに `omitCover` / `omitBody` を足しました。 **両方 true にすると空のPDFになります**(呼び出し側の責任)。 - 通し目次のビュー(`pdf.survey_report_merge_toc`)は種別に依存しません。 `label / title / address / sections[]` を回すだけなので、調査・施工の両方で使っています。 - `Pdf::loadView` をモックしたテストは「フラグが渡ったか」までしか見ません。 **モックなしで実際に描くテストを1本必ず残すこと**(施工報告書は日本語が全部 `????` になった前例あり)。