@php // 入金内訳(調整行)で選べる入金区分 // 入金情報セクションの区分から「振込」を除いたもの(振込は銀行の入金額そのもののため) $adjustmentReceiptTypes = collect(\App\Services\Logic\User\FBImport\AllocationService::getSelectableReceiptTypeValues()) ->map(fn ($value) => [ 'value' => $value, 'label' => \App\Enums\PaymentReceiptType::from($value)->getName(), ]) ->all(); @endphp {{-- header --}} @php($breadcrumbs = [ 'FBインポート' => route('payment-receipt.fb-import.index'), 'CSVアップロード' => null ])
{{-- メインコンテンツ --}}
{{-- バッチ情報サマリーセクション --}}

バッチ情報

バッチID:
{{ $batch->id }}
銀行:
{{ $batch->bank_name }}
インポート日:
{{ $batch->import_date->format('Y/m/d') }}
ファイル名:
{{ Str::limit($batch->file_name, 20) }}
{{-- 統計情報セクション --}}

処理統計

{{ $batch->total_rows }}
総件数
全データ行数
{{ $batch->payment_rows }}
入金件数
入金データのみ
{{ $batch->matched_rows }}
マッチング成功
自動確定済み
{{-- 明細一覧のバッジと色を揃える。 confidence=2(要確認・黄)は matchCustomers() の実装上そもそも保存されず (getBestMatch() が confidence=1 のときしか得意先を返さないため、 2 のときは更新がスキップされ既定値の 3 のまま残る)、 一覧に黄色の行が現れることはない。 ここを黄色にしておくと「黄色の行はどれか」という誤解を招く。 --}}
未マッチ
得意先の紐づけが必要
{{-- マッチング状況の詳細(非表示:上の統計と重複するため) --}}
@if(!$isRegistered) {{-- アクションボタン --}}
@csrf
@csrf
{{-- 登録不可の警告。止めるのは未マッチ・配分超過・請求超過(赤)だけ。 請求残(橙)・請求なし入金(黄)は止めない(請求なし入金は本登録で入金得意先への振込(消込なし)にする) --}}

本登録できない理由

  • 未マッチの行が 件あります
  • {{ \App\Enums\FbAllocationState::OverAllocated->label() }}の行が 件あります
  • {{ \App\Enums\FbAllocationState::BillingOver->label() }}の行が 件あります
@endif {{-- 明細一覧セクション --}}

明細一覧

{{-- 画面に出ている行のとおりに出す(本登録対象外の表示・チップの絞り込みを渡す) --}}
{{-- 本登録対象外(should_register=1)の明細は既定で非表示にする。 誤って対象外にした明細を戻せるよう、チェックで再表示できるようにしている。 隠れている明細があること自体に気づけるよう、件数を併記する。 --}}
{{-- 確認が必要な行(チップ)。押すとその状態の行だけを下の一覧に出し、「絞込み解除」で戻す。 「すべて表示」にしないのは、隣の「本登録対象外も表示する」と並ぶため、対象外の行まで出すと読まれないように。 絞る相手の一覧のすぐ上に置く(処理統計の欄に置くと、一覧との間にボタンや本登録できない理由が挟まり、 スクロールすると絞り込み中であることも見えなくなるため)。処理統計のカードは増やさない。 件数は各明細の配分状況(サーバーで判定: AllocationStatusService)を数える。色は配分状況と同じ (赤=直さないと本登録できない/橙=判断する/黄=確かめる) --}}
確認が必要な行: {{-- 絞り込んでいないときは外すものが無いので押せない --}}
{{-- x-for は details 全件のまま維持する。 toggleShouldRegister / changeCustomer / openAllocationModal は index で this.details[index] を引くため、配列を絞り込むと別の明細を操作してしまう。 表示の絞り込み(本登録対象外の表示・確認が必要な行のチップ)は行側の x-show で行う。 --}}
No 本登録 取引日 金額 摘要 マッチング 得意先 配分状況 操作
{{-- データがない場合 --}}
明細データがありません
{{-- 補足情報 --}} @if($isRegistered)

本登録完了

このバッチは既に本登録が完了しています。内容は参照のみ可能です。

@else

次のステップ

明細一覧で各行の得意先マッチングと配分を確認してください。

  • 🟢 自動確定: 配分内容を確認してください
  • 🔴 未マッチ: 得意先を手動で選択してください

すべての確認が完了したら「すべて確定して本登録」ボタンで本登録を実行できます。

@endif {{-- 得意先変更モーダル --}} @include('user.payment-receipt.fb-import.partials.change-customer-modal') {{-- 配分詳細モーダル --}}
{{-- 背景オーバーレイ --}}
{{-- モーダルコンテンツ 請求の表に支払予定日・入金済み(内訳つき)・配分後残高の列があるので、横幅を広めにとる (4xl だと得意先グループの請求が並ぶ明細で配分額・配分後残高が横スクロールの外に出るため) --}}
{{-- ヘッダー --}}

配分詳細

{{-- ボディ --}}
{{-- フッター --}}
@if(!$isRegistered) {{-- 保存できないのは配分超過(配分合計 > 入金合計)のときだけ。請求なし入金・請求残・請求超過は保存できる --}} @endif