プロジェクト

全般

プロフィール

機能 #707

完了

未発送(発送日未入力)の注文は配送完了報告をグレーアウトして操作できないようにする

本間 紀史 さんが8日前に追加. 8日前に更新.

ステータス:
終了
優先度:
通常
担当者:
開始日:
2026/08/21
期日:
進捗率:

0%

予定工数:

説明

事象・要望

admin の注文一覧で、発送日(shipped_on)が未入力=「発送済」になっていない注文でも、配送完了報告の欄が操作できてしまう

未発送のまま「配送完了報告」を押すと注文者へ発送完了メールが飛び、delivery_reported_at が記録されてステータスが「お届け済み」になる。発送していないのに完了扱いになるため、事故につながる。

やること

発送日が入っていない注文は、配送完了報告の欄を全てグレーアウトして操作できないようにする。

  • メールを送れないようにする
  • 「配送完了」に進めないようにする
  • 対象は「配送完了報告」「メール以外で発送連絡済」の両ボタンと、件名・本文の入力欄

実装メモ

  • 対象ファイル … app/views/admin/orders/index.html.erb の配送完了報告カラム(現状 delivery.delivery_reported_at.present? / delivery.persisted? のみで分岐しており、shipped_on を見ていない)
  • ビューの無効化だけでは不十分Admin::DeliveryReportsController#create にサーバ側のガードを入れ、shipped_on が未設定なら記録・メール送信を行わずエラーで戻す(フォームを無効化しても直接 POST できるため)
  • グレーアウト時は「発送日を入力すると操作できます」等の理由を添えると親切
  • 参考 … supplier 側(app/views/supplier/orders/index.html.erb)は既に shipped_on の有無で表示を出し分けている

補足

shipped_on は配送情報フォームの発送日を直接入力するか、追跡番号を入力すると Delivery 側で自動記録される(app/models/delivery.rb)。

関連: #703

他の形式にエクスポート: Atom PDF