@php // 更新権限がある場合のみ受注残作成の操作を表示する $canUpdate = App\Services\Logic\Assist::getCurrentRoutePermissions()->canUpdate; // 連携テストは本番では使わせない(サーバー側でも同じ判定でガードしている) $canSyncTest = $canUpdate && !App\Services\Logic\User\Replenishment\ReplenishmentSyncTestService::isProduction(); @endphp {{-- header --}} @php($breadcrumbs = [ '補充リスト'=>null ]) {{-- 説明 --}}
NextEngineの商品マスタに設定された発注点を、EC倉庫(003)のフリー在庫が下回っている商品の一覧です。 補充量=在庫定数 − EC在庫で算出しています。 ※ 在庫の移動は自動では行いません。 @if(!empty($calculatedAt)) 算出日時:{{ $calculatedAt->format('Y/m/d H:i') }}(毎朝9時に更新) @endif
{{-- 未生成の案内 --}} @if(!empty($notice))
{{ $notice }}
@endif {{-- 連携テスト(受入テスト用・本番では非表示) ★一覧(x-list.data)の外側に置くこと。 x-list.data はデータが空のとき actions スロットを描画しないため、 内側に置くと「補充対象0件のときに押せない」=一覧を生成したいときに使えなくなる。 連携テストは「一覧に対する操作」ではなく「一覧そのものを作り直す操作」なので、 一覧の有無に依存しない位置が正しい。 ※ フォームは入れ子にできないため受注残フォームとは分けて配置し、JSで送信する。 --}} @if($canSyncTest)
@csrf
@endif
@csrf
補充対象:{{ number_format($rows->count()) }} 件
{{-- ※ 連携テストボタンは一覧の外側に配置(空のときも押せるようにするため) --}} @if($canUpdate) @endif
@if($canUpdate) @endif @if($canUpdate) @endif {{-- 商品ごとに tbody を分け、商品行と展開行で Alpine のスコープを共有する --}} @foreach($rows as $row) {{-- 商品行(クリックで移動元候補の内訳を展開) --}} @if($canUpdate) {{-- 受注残作成の対象選択(行の展開と競合しないよう伝播を止める) --}} @endif {{-- 展開行:移動元候補の倉庫別フリー在庫 --}} @if($canUpdate) @endif @endforeach
商品 EC在庫 発注点 在庫定数 補充量 移動元候補計 EC受注残 判定
{{ $row['product_code'] }} {{ $row['product_name'] }}
{{ num_format($row['current_qty']) }} {{ num_format($row['order_point']) }} {{ num_format($row['stock_constant']) }} {{ num_format($row['replenish_qty']) }} {{ num_format($row['transferable_qty']) }} @if($row['ec_backorder_qty'] > 0) {{ num_format($row['ec_backorder_qty']) }} @else 0 @endif @if($row['is_handled']) {{-- 受注残で補充量を満たしている(お知らせにも出さない) --}} 手配済み @elseif($row['can_transfer']) 移動可 @elseif($row['ec_backorder_qty'] > 0) 受注残あり @else 在庫なし @endif
@if(empty($row['warehouses']))
移動元候補の倉庫に在庫がありません(受注残の検討対象)
@else
移動元候補の倉庫別フリー在庫(現在値)
@foreach($row['warehouses'] as $wh) @endforeach
{{ $wh->warehouse_code }} {{ $wh->warehouse_name }} {{ num_format($wh->free_qty) }} {{ $wh->is_source ? '※連携元(合計から除外)' : '' }}
@endif
@if($canUpdate) {{-- 受注残作成の数量確認モーダル(同一フォーム内に置き、入力値をそのまま送信する) --}}

受注残の作成

作成する数量を確認してください。初期値は「補充量 − 既存のEC受注残」です。 ※ 数量を 0 にした商品は作成されません。
@foreach($rows as $row) {{-- 未選択の行は disabled にして送信対象から外す(JSで制御) --}} @endforeach
商品 補充量 EC受注残 作成数量
@endif
@if($canUpdate) @push('scripts') @endpush @endif