"No","業務要件","テストケース名","テストシナリオ","前提条件","操作手順","期待結果","優先度","備考"
"UAT-001","ユーザー認証","管理者ログイン成功","管理者がシステムにログインできることを確認する","管理者アカウントが作成済み、システムが稼働中","1. ログイン画面にアクセス
2. 管理者のメールアドレスを入力
3. パスワードを入力
4. ログインボタンをクリック","管理者ダッシュボードが表示される","高","初期セットアップ後のインストールコマンドで管理者認証情報を設定"
"UAT-002","ユーザー認証","不正なパスワードでのログイン拒否","不正なパスワードでログインが拒否されることを確認","有効なユーザーアカウントが存在","1. ログイン画面にアクセス
2. 有効なメールアドレスを入力
3. 不正なパスワードを入力
4. ログインボタンをクリック","エラーメッセージが表示され、ログインが拒否される","高","セキュリティ要件"
"UAT-003","ユーザー管理","新規ユーザー作成","管理者が新しいユーザーを作成できることを確認","管理者権限でログイン済み","1. セキュリティメニューからユーザー管理を選択
2. 新規作成ボタンをクリック
3. 必須項目（名前、メール、パスワード）を入力
4. ロールを割り当て
5. 保存ボタンをクリック","新しいユーザーがリストに表示され、ログイン可能になる","高","UserResource.phpのform定義に基づく"
"UAT-004","ユーザー管理","ユーザーへのロール割り当て","ユーザーに複数のロールを割り当てられることを確認","ユーザーとロールが存在、管理者権限でログイン済み","1. ユーザー一覧から対象ユーザーを選択
2. 編集画面を開く
3. ロール選択フィールドで複数のロールを選択
4. 保存ボタンをクリック","選択したロールがユーザーに割り当てられ、対応する権限が有効になる","高","Spatie Permissionパッケージによるロール管理"
"UAT-005","ユーザー管理","ユーザーのマルチ会社設定","ユーザーが複数の会社にアクセスできるように設定できることを確認","複数の会社が登録済み、管理者権限でログイン済み","1. ユーザー編集画面を開く
2. 許可会社フィールドで複数の会社を選択
3. デフォルト会社を設定
4. 保存ボタンをクリック","ユーザーが指定した会社間で切り替えできる","中","マルチカンパニー機能"
"UAT-006","ユーザー管理","ユーザー削除","管理者がユーザーを削除できることを確認","削除対象のユーザーが存在、管理者権限でログイン済み","1. ユーザー一覧から対象ユーザーを選択
2. 削除アクションを実行
3. 確認ダイアログで削除を確定","ユーザーがソフトデリートされ、一覧から非表示になる","中","デフォルトユーザーは削除不可"
"UAT-007","販売管理","見積書作成","営業担当者が新しい見積書を作成できることを確認","顧客情報と製品情報が登録済み、販売権限でログイン済み","1. 販売メニューから見積書を選択
2. 新規作成ボタンをクリック
3. 顧客を選択
4. 製品明細を追加（製品、数量、単価）
5. 保存ボタンをクリック","見積書が作成され、見積番号が自動採番される","高","QuotationResource.php実装に基づく"
"UAT-008","販売管理","見積書から受注への変換","見積書を受注に変換できることを確認","承認済みの見積書が存在","1. 見積書一覧から対象の見積書を開く
2. 受注確定アクションを実行
3. 確認ダイアログで確定","見積書のステータスが「販売」に変更され、受注として管理される","高","OrderState::SALEへの遷移"
"UAT-009","販売管理","受注からの請求書生成","受注から請求書を生成できることを確認","受注が確定済み","1. 受注詳細画面を開く
2. 請求書タブを選択
3. 請求書作成アクションを実行","請求書が自動生成され、受注と紐付けられる","高","ManageInvoicesページ"
"UAT-010","販売管理","受注からの配送指示生成","受注から配送指示を生成できることを確認","受注が確定済み、在庫管理プラグインがインストール済み","1. 受注詳細画面を開く
2. 配送タブを選択
3. 配送作成アクションを実行","配送指示が自動生成され、受注と紐付けられる","高","ManageDeliveriesページ"
"UAT-011","購買管理","見積依頼作成","購買担当者が仕入先への見積依頼を作成できることを確認","仕入先と製品情報が登録済み、購買権限でログイン済み","1. 購買メニューから見積依頼を選択
2. 新規作成ボタンをクリック
3. 仕入先を選択
4. 製品明細を追加
5. 保存ボタンをクリック","見積依頼が作成され、Draft状態で保存される","高","QuotationResource.php (Purchases)"
"UAT-012","購買管理","見積依頼のメール送信","仕入先に見積依頼をメールで送信できることを確認","見積依頼が作成済み","1. 見積依頼詳細画面を開く
2. メール送信アクションを実行
3. メール内容を確認し送信","メールが仕入先に送信され、ステータスが「送信済み」に変更される","高","SendEmailAction.php"
"UAT-013","購買管理","発注書への変換","見積依頼を発注書に変換できることを確認","見積依頼が送信済みで仕入先から回答を受領","1. 見積依頼詳細画面を開く
2. 確定アクションを実行
3. 確認ダイアログで確定","発注書に変換され、ステータスがPURCHASEに変更される","高","ConfirmAction.php"
"UAT-014","購買管理","購買協定の作成","購買協定（ブランケット契約）を作成できることを確認","購買協定機能が有効、仕入先情報が登録済み","1. 購買メニューから購買協定を選択
2. 新規作成ボタンをクリック
3. 仕入先と条件を入力
4. 製品明細を追加
5. 保存ボタンをクリック","購買協定が作成され、関連する発注で参照可能になる","中","PurchaseAgreementResource.php"
"UAT-015","購買管理","仕入先価格マスタ登録","製品ごとの仕入先価格を登録できることを確認","製品と仕入先が登録済み","1. 購買設定から仕入先価格を選択
2. 新規作成ボタンをクリック
3. 製品、仕入先、価格、最小数量を入力
4. 保存ボタンをクリック","仕入先価格が登録され、発注時に自動適用される","中","VendorPriceResource.php"
"UAT-016","在庫管理","入庫処理","購買による入庫処理ができることを確認","発注が確定済み、在庫管理プラグインがインストール済み","1. 入庫一覧から対象の入庫指示を開く
2. 入庫明細を確認
3. 受入数量を入力
4. 検証アクションを実行","在庫が増加し、入庫ステータスが完了に変更される","高","ReceiptResource.php"
"UAT-017","在庫管理","出庫処理","販売による出庫処理ができることを確認","受注が確定済み、在庫が十分にある","1. 出庫一覧から対象の出庫指示を開く
2. 出庫明細を確認
3. 出庫数量を入力
4. 検証アクションを実行","在庫が減少し、出庫ステータスが完了に変更される","高","DeliveryResource.php"
"UAT-018","在庫管理","内部移動","倉庫間の在庫移動ができることを確認","複数の倉庫/ロケーションが設定済み","1. 内部移動メニューを選択
2. 新規作成ボタンをクリック
3. 移動元・移動先ロケーションを選択
4. 製品と数量を入力
5. 検証アクションを実行","在庫が移動元から移動先に移動される","中","InternalTransferResource.php"
"UAT-019","在庫管理","在庫スクラップ処理","不良品等の在庫をスクラップ処理できることを確認","スクラップ対象の在庫が存在","1. スクラップメニューを選択
2. 新規作成ボタンをクリック
3. 製品、数量、スクラップ理由を入力
4. 検証アクションを実行","在庫がスクラップロケーションに移動され、通常在庫から除外される","低","ScrapResource.php"
"UAT-020","在庫管理","在庫数量調整","在庫の実地棚卸結果を反映できることを確認","対象製品の在庫が存在","1. 製品マスタから対象製品を開く
2. 在庫数量調整アクションを実行
3. 新しい在庫数量を入力
4. 確定ボタンをクリック","在庫数量が調整され、調整履歴が記録される","中","ProductQuantityPolicy.php"
"UAT-021","請求管理","顧客請求書作成","顧客への請求書を手動で作成できることを確認","顧客情報が登録済み、請求権限でログイン済み","1. 請求書メニューから顧客請求書を選択
2. 新規作成ボタンをクリック
3. 顧客を選択
4. 請求明細を追加
5. 保存ボタンをクリック","請求書が作成され、Draft状態で保存される","高","InvoiceResource.php"
"UAT-022","請求管理","請求書の転記","請求書を転記して確定できることを確認","請求書がDraft状態で存在","1. 請求書詳細画面を開く
2. 転記アクションを実行
3. 確認ダイアログで確定","請求書がPosted状態に変更され、会計仕訳が生成される","高","会計連携機能"
"UAT-023","請求管理","仕入先請求書登録","仕入先からの請求書を登録できることを確認","仕入先情報と発注情報が存在","1. 請求書メニューから仕入先請求書を選択
2. 新規作成ボタンをクリック
3. 仕入先と発注を選択
4. 請求明細を確認・調整
5. 保存ボタンをクリック","仕入先請求書が登録される","高","BillResource.php"
"UAT-024","請求管理","クレジットノート発行","請求書に対するクレジットノート（返金）を発行できることを確認","転記済みの請求書が存在","1. 請求書詳細画面を開く
2. クレジットノート発行アクションを実行
3. 返金理由と金額を入力
4. 確定ボタンをクリック","クレジットノートが発行され、元の請求書と紐付けられる","中","CreditNotesResource.php"
"UAT-025","請求管理","入金消込","顧客からの入金を請求書に消込できることを確認","転記済みの請求書と入金情報が存在","1. 入金メニューを選択
2. 新規入金を登録または既存の入金を選択
3. 対象の請求書を選択
4. 消込アクションを実行","請求書が支払済みステータスに変更される","高","PaymentsResource.php"
"UAT-026","従業員管理","従業員登録","新しい従業員を登録できることを確認","人事権限でログイン済み、部署情報が登録済み","1. 従業員メニューを選択
2. 新規作成ボタンをクリック
3. 必須項目（氏名、メール）を入力
4. 部署と職位を選択
5. 保存ボタンをクリック","従業員が登録され、従業員一覧に表示される","高","EmployeeResource.php"
"UAT-027","従業員管理","従業員スキル登録","従業員にスキルを登録できることを確認","従業員が登録済み、スキルタイプが設定済み","1. 従業員詳細画面を開く
2. スキルタブを選択
3. スキル追加アクションを実行
4. スキルタイプとレベルを選択
5. 保存ボタンをクリック","スキルが従業員に紐付けて登録される","低","ManageSkillページ"
"UAT-028","従業員管理","従業員履歴書管理","従業員の職歴・学歴を登録できることを確認","従業員が登録済み","1. 従業員詳細画面を開く
2. 履歴書タブを選択
3. 経歴追加アクションを実行
4. 職歴または学歴の詳細を入力
5. 保存ボタンをクリック","履歴書情報が従業員に登録される","低","ManageResumeページ"
"UAT-029","休暇管理","休暇申請","従業員が休暇を申請できることを確認","従業員として登録・ログイン済み、休暇タイプが設定済み","1. 休暇メニューから自分の休暇を選択
2. 新規申請ボタンをクリック
3. 休暇タイプを選択
4. 開始日と終了日を入力
5. 申請ボタンをクリック","休暇申請が作成され、承認待ち状態になる","高","MyTimeOffResource.php"
"UAT-030","休暇管理","休暇承認","マネージャーが部下の休暇を承認できることを確認","部下からの休暇申請が存在、マネージャーとしてログイン済み","1. 休暇管理メニューを選択
2. 承認待ちの休暇申請を表示
3. 対象の申請を選択
4. 承認アクションを実行","休暇が承認され、従業員の休暇残日数が減少する","高","TimeOffResource.php"
"UAT-031","休暇管理","休暇割当","従業員に休暇日数を割り当てることができることを確認","人事権限でログイン済み","1. 休暇管理から割当を選択
2. 新規割当ボタンをクリック
3. 従業員と休暇タイプを選択
4. 割当日数を入力
5. 保存ボタンをクリック","休暇日数が従業員に割り当てられる","中","AllocationResource.php"
"UAT-032","採用管理","求人作成","採用担当者が求人を作成できることを確認","採用権限でログイン済み、部署情報が登録済み","1. 採用メニューから求人を選択
2. 新規作成ボタンをクリック
3. 職位と部署を選択
4. 求人詳細を入力
5. 公開ボタンをクリック","求人が作成・公開され、応募を受け付ける状態になる","中","JobPositionResource.php"
"UAT-033","採用管理","応募者登録","応募者情報を登録できることを確認","求人が公開済み","1. 応募者メニューを選択
2. 新規作成ボタンをクリック
3. 応募者の個人情報を入力
4. 応募する求人を選択
5. 保存ボタンをクリック","応募者が登録され、採用パイプラインに表示される","中","ApplicantResource.php"
"UAT-034","採用管理","採用ステージ移動","応募者を次の採用ステージに進められることを確認","応募者が登録済み","1. 応募者詳細画面を開く
2. ステージ変更アクションを実行
3. 次のステージを選択
4. 確定ボタンをクリック","応募者のステージが変更され、進捗が更新される","中","StageResource.php"
"UAT-035","採用管理","内定・不採用処理","応募者に対して採否を決定できることを確認","応募者が最終面接ステージまで進んでいる","1. 応募者詳細画面を開く
2. 採用決定または不採用アクションを実行
3. 理由を入力（不採用の場合）
4. 確定ボタンをクリック","応募者のステータスが更新され、採用の場合は従業員登録への移行が可能になる","中","RefuseReasonResource.php"
"UAT-036","プロジェクト管理","プロジェクト作成","新しいプロジェクトを作成できることを確認","プロジェクト管理権限でログイン済み","1. プロジェクトメニューを選択
2. 新規作成ボタンをクリック
3. プロジェクト名と説明を入力
4. 担当者を割り当て
5. 保存ボタンをクリック","プロジェクトが作成され、タスクを追加できる状態になる","高","ProjectResource.php"
"UAT-037","プロジェクト管理","タスク作成","プロジェクトにタスクを追加できることを確認","プロジェクトが作成済み","1. プロジェクト詳細画面を開く
2. タスク追加ボタンをクリック
3. タスク名と説明を入力
4. 担当者と期限を設定
5. 保存ボタンをクリック","タスクがプロジェクトに追加される","高","TaskResource.php"
"UAT-038","プロジェクト管理","タスクステージ変更","タスクのステージ（進捗）を変更できることを確認","タスクが作成済み","1. タスク詳細画面を開く
2. ステージを変更
3. 保存ボタンをクリック","タスクのステージが更新され、カンバンボードに反映される","中","TaskStageResource.php"
"UAT-039","工数管理","タイムシート入力","作業時間を記録できることを確認","プロジェクトとタスクが作成済み、従業員としてログイン済み","1. タイムシートメニューを選択
2. 新規入力ボタンをクリック
3. プロジェクトとタスクを選択
4. 作業時間を入力
5. 保存ボタンをクリック","タイムシートが記録され、プロジェクトの工数に反映される","中","TimesheetResource.php"
"UAT-040","製品管理","製品登録","新しい製品を登録できることを確認","製品管理権限でログイン済み、カテゴリが設定済み","1. 製品メニューを選択
2. 新規作成ボタンをクリック
3. 製品名と製品タイプを入力
4. 価格と原価を設定
5. カテゴリを選択
6. 保存ボタンをクリック","製品が登録され、販売・購買で使用可能になる","高","ProductResource.php"
"UAT-041","製品管理","製品バリエーション作成","製品属性に基づくバリエーションを作成できることを確認","製品と属性が登録済み","1. 製品詳細画面を開く
2. バリエーションタブを選択
3. 属性を設定
4. バリエーション生成アクションを実行","バリエーション製品が自動生成される","中","ManageVariantsページ"
"UAT-042","製品管理","製品カテゴリ管理","製品カテゴリを階層的に管理できることを確認","製品管理権限でログイン済み","1. 製品設定からカテゴリを選択
2. 新規作成ボタンをクリック
3. カテゴリ名と親カテゴリを設定
4. 保存ボタンをクリック","カテゴリが階層構造で登録される","中","CategoryResource.php"
"UAT-043","連絡先管理","取引先登録","新しい取引先（顧客/仕入先）を登録できることを確認","連絡先管理権限でログイン済み","1. 連絡先メニューを選択
2. 新規作成ボタンをクリック
3. 会社名または個人名を入力
4. 連絡先情報（住所、電話、メール）を入力
5. 顧客/仕入先フラグを設定
6. 保存ボタンをクリック","取引先が登録され、販売・購買で選択可能になる","高","PartnerResource.php"
"UAT-044","連絡先管理","取引先住所追加","取引先に複数の住所を登録できることを確認","取引先が登録済み","1. 取引先詳細画面を開く
2. 住所追加アクションを実行
3. 住所種別と詳細を入力
4. 保存ボタンをクリック","住所が取引先に追加登録される","中","AddressResource.php"
"UAT-045","ブログ管理","ブログ記事作成","ブログ記事を作成・公開できることを確認","ブログ管理権限でログイン済み","1. ブログメニューから投稿を選択
2. 新規作成ボタンをクリック
3. タイトルと本文を入力
4. カテゴリとタグを設定
5. 公開ボタンをクリック","ブログ記事が公開され、ウェブサイトで閲覧可能になる","低","PostResource.php (Blogs)"
"UAT-046","ブログ管理","ブログカテゴリ管理","ブログカテゴリを管理できることを確認","ブログ管理権限でログイン済み","1. ブログ設定からカテゴリを選択
2. 新規作成ボタンをクリック
3. カテゴリ名を入力
4. 保存ボタンをクリック","カテゴリが登録され、記事に設定可能になる","低","CategoryResource.php (Blogs)"
"UAT-047","権限管理","ロール作成","新しいロールを作成できることを確認","管理者権限でログイン済み","1. セキュリティメニューからロールを選択
2. 新規作成ボタンをクリック
3. ロール名を入力
4. 権限を選択
5. 保存ボタンをクリック","ロールが作成され、ユーザーに割り当て可能になる","高","RoleResource.php"
"UAT-048","権限管理","リソース権限タイプ確認","ユーザーのリソース権限タイプが正しく動作することを確認","異なる権限タイプのユーザーが存在","1. グローバル権限ユーザーでログイン
2. 全レコードが閲覧可能なことを確認
3. 個人権限ユーザーでログイン
4. 自分が作成/割り当てられたレコードのみ閲覧可能なことを確認","権限タイプに応じたデータアクセス制御が機能する","高","PermissionType Enum"
"UAT-049","会社管理","会社情報登録","新しい会社を登録できることを確認","管理者権限でログイン済み","1. セキュリティメニューから会社を選択
2. 新規作成ボタンをクリック
3. 会社名と基本情報を入力
4. 通貨を設定
5. 保存ボタンをクリック","会社が登録され、マルチカンパニー機能で使用可能になる","中","CompanyResource.php"
"UAT-050","会社管理","会社切替","ログイン中に会社を切り替えられることを確認","複数の会社へのアクセス権を持つユーザーでログイン済み","1. 画面右上の会社選択メニューをクリック
2. 別の会社を選択","選択した会社のコンテキストでデータが表示される","中","マルチカンパニー機能"
"UAT-051","チーム管理","チーム作成","チームを作成してメンバーを割り当てられることを確認","管理者権限でログイン済み、ユーザーが存在","1. セキュリティメニューからチームを選択
2. 新規作成ボタンをクリック
3. チーム名を入力
4. メンバーを選択
5. 保存ボタンをクリック","チームが作成され、グループ権限で使用可能になる","中","TeamResource.php"
"UAT-052","フィールドカスタマイズ","カスタムフィールド追加","リソースにカスタムフィールドを追加できることを確認","管理者権限でログイン済み","1. 対象リソースの設定を開く
2. カスタムフィールド設定を選択
3. 新規フィールドを追加
4. フィールドタイプと設定を指定
5. 保存ボタンをクリック","カスタムフィールドがフォームとテーブルに表示される","低","HasCustomFieldsトレイト"
"UAT-053","プラグイン管理","プラグインインストール","新しいプラグインをインストールできることを確認","管理者権限、CLIアクセス","1. ターミナルでプラグインインストールコマンドを実行
2. インストールオプションを選択
3. 完了を待つ","プラグインがインストールされ、機能が有効になる","低","PluginResource.php"
"UAT-054","検索機能","グローバル検索","システム全体を横断して検索できることを確認","ログイン済み、データが存在","1. 画面上部の検索バーをクリック
2. 検索キーワードを入力
3. 検索結果を確認","複数のリソースタイプにまたがる検索結果が表示される","中","getGloballySearchableAttributes"
"UAT-055","フィルタリング","高度なフィルタリング","QueryBuilderを使った高度なフィルタリングができることを確認","一覧画面にアクセス、データが存在","1. 一覧画面でフィルタボタンをクリック
2. 複数の条件を設定（日付範囲、関連レコード等）
3. 適用ボタンをクリック","設定した条件に一致するレコードのみが表示される","中","QueryBuilder Filter"
"UAT-056","ソート機能","一覧ソート","一覧のソート順を変更できることを確認","一覧画面にアクセス、データが存在","1. 一覧画面を表示
2. 列ヘッダーをクリックしてソート
3. 再度クリックして降順/昇順を切り替え","クリックした列でソートされ、昇順/降順が切り替わる","低","sortable定義"
"UAT-057","エクスポート","データエクスポート","一覧データをエクスポートできることを確認","一覧画面にアクセス、データが存在","1. 一覧画面を表示
2. エクスポートボタンをクリック
3. エクスポート形式を選択
4. ダウンロード","選択した形式でデータがダウンロードされる","低","Filament Export機能"
"UAT-058","一括操作","一括削除","複数レコードを一括削除できることを確認","一覧画面にアクセス、削除可能なデータが存在","1. 一覧画面でレコードを複数選択
2. 一括操作メニューから削除を選択
3. 確認ダイアログで確定","選択したレコードが削除（ソフトデリート）される","中","DeleteBulkAction"
"UAT-059","通知機能","システム通知受信","システムからの通知を受信できることを確認","通知を発生させるアクションを実行","1. 通知を発生させるアクション（例：保存、承認）を実行
2. 画面上の通知エリアを確認","適切な通知メッセージが表示される","低","Notification::make"
"UAT-060","監査ログ","操作履歴確認","リソースの変更履歴を確認できることを確認","データの作成・更新履歴が存在","1. 対象リソースの詳細画面を開く
2. 履歴/アクティビティタブを選択","作成者、更新者、日時などの履歴情報が表示される","低","Chatterプラグイン"
"UAT-061","マスタデータ","税設定","税率を設定・管理できることを確認","会計設定権限でログイン済み","1. 設定メニューから税を選択
2. 新規作成ボタンをクリック
3. 税名と税率を入力
4. 税タイプ（購買/販売）を選択
5. 保存ボタンをクリック","税率が登録され、請求書・発注書で適用可能になる","高","TaxResource.php"
"UAT-062","マスタデータ","支払条件設定","支払条件を設定できることを確認","会計設定権限でログイン済み","1. 設定メニューから支払条件を選択
2. 新規作成ボタンをクリック
3. 条件名と支払期限計算方法を入力
4. 保存ボタンをクリック","支払条件が登録され、請求書で適用可能になる","中","PaymentTermResource.php"
"UAT-063","マスタデータ","通貨設定","通貨を管理できることを確認","設定権限でログイン済み","1. 設定メニューから通貨を選択
2. 通貨の有効/無効を切り替え
3. 為替レートを更新","通貨設定が更新され、取引で使用可能になる","中","通貨管理機能"
"UAT-064","倉庫管理","倉庫登録","新しい倉庫を登録できることを確認","在庫管理権限でログイン済み","1. 設定メニューから倉庫を選択
2. 新規作成ボタンをクリック
3. 倉庫名と住所を入力
4. ロケーション構成を設定
5. 保存ボタンをクリック","倉庫が登録され、在庫管理で使用可能になる","中","WarehouseResource.php"
"UAT-065","倉庫管理","ロケーション設定","倉庫内のロケーション階層を設定できることを確認","倉庫が登録済み","1. 倉庫設定からロケーションを選択
2. 新規作成ボタンをクリック
3. ロケーション名と親ロケーションを入力
4. ロケーションタイプを選択
5. 保存ボタンをクリック","ロケーションが階層構造で登録される","中","LocationResource.php"
"UAT-066","レポート機能","従業員別休暇レポート","従業員別の休暇取得状況をレポートで確認できることを確認","休暇データが存在、レポート権限でログイン済み","1. 休暇メニューからレポートを選択
2. 従業員別レポートを選択
3. 期間を指定
4. レポート生成ボタンをクリック","従業員別の休暇取得状況が表示される","低","ByEmployeeResource.php"
"UAT-067","カレンダー表示","休暇カレンダー","休暇をカレンダー形式で確認できることを確認","休暇データが存在","1. 休暇メニューからカレンダーを選択
2. 月/週表示を切り替え","休暇がカレンダー上に視覚的に表示される","低","full-calendarプラグイン"
"UAT-068","発注確認","仕入先による発注確認","仕入先が発注内容を確認できることを確認","発注書がメール送信済み","1. 仕入先がメール内のリンクをクリック
2. 発注内容を確認
3. 確認/修正依頼ボタンをクリック","発注が確認済みまたは修正依頼状態に更新される","中","RespondQuotation Livewire"
"UAT-069","テーブルビュー","テーブルビュー保存","カスタムテーブルビューを保存できることを確認","一覧画面にアクセス","1. 一覧画面でフィルタと表示列を設定
2. ビュー保存ボタンをクリック
3. ビュー名を入力
4. 保存ボタンをクリック","テーブルビューが保存され、後で呼び出し可能になる","低","table-viewsプラグイン"
"UAT-070","モバイル対応","レスポンシブ表示","モバイルデバイスでも操作できることを確認","モバイルデバイスまたはエミュレータ","1. モバイルブラウザでシステムにアクセス
2. 各主要画面を確認
3. 基本操作（一覧表示、詳細表示、フォーム入力）を実行","画面がレスポンシブに表示され、操作可能である","中","TailwindCSS対応"
"UAT-071","データ整合性","発注-入庫連携","発注確定時に入庫指示が自動生成されることを確認","在庫管理プラグインがインストール済み、発注がDraft状態","1. 発注書を確定
2. 入庫一覧を確認","発注に対応する入庫指示が自動生成される","高","Package::isPluginInstalled確認"
"UAT-072","データ整合性","受注-出庫連携","受注確定時に出庫指示が自動生成されることを確認","在庫管理プラグインがインストール済み、見積がDraft状態","1. 見積書を受注確定
2. 出庫一覧を確認","受注に対応する出庫指示が自動生成される","高","Package::isPluginInstalled確認"
"UAT-073","データ整合性","在庫移動と数量連動","入出庫処理が在庫数量に正しく反映されることを確認","入庫または出庫指示が存在、在庫数量を確認済み","1. 現在の在庫数量を記録
2. 入庫または出庫を処理
3. 在庫数量を再確認","処理した数量分だけ在庫が増減している","高","StockMove連携"
"UAT-074","ワークフロー","発注ステータス遷移","発注書のステータスが正しく遷移することを確認","発注書が作成済み","1. Draft状態の発注書を開く
2. 送信アクションを実行（Sent状態へ）
3. 確定アクションを実行（Purchase状態へ）
4. 全商品受領後にDone状態を確認","Draft→Sent→Purchase→Doneの順に遷移する","高","OrderState Enum"
"UAT-075","ワークフロー","販売ステータス遷移","見積書/受注のステータスが正しく遷移することを確認","見積書が作成済み","1. Draft状態の見積書を開く
2. 送信アクションを実行（Sent状態へ）
3. 確定アクションを実行（Sale状態へ）","Draft→Sent→Saleの順に遷移する","高","OrderState Enum (Sales)"
"UAT-076","キャンセル処理","発注キャンセル","発注書をキャンセルできることを確認","発注書がDraftまたはSent状態","1. 発注書を開く
2. キャンセルアクションを実行
3. 確認ダイアログで確定","発注書がCanceled状態に変更される","中","CancelAction.php"
"UAT-077","キャンセル処理","入庫キャンセル","入庫指示をキャンセルできることを確認","入庫指示がDraft状態","1. 入庫指示を開く
2. キャンセルアクションを実行
3. 確認ダイアログで確定","入庫指示がキャンセルされ、発注書の状態も更新される","中","OperationState連携"
"UAT-078","ロック機能","発注書ロック","確定済み発注書をロックできることを確認","発注書がPurchase状態","1. 発注書を開く
2. ロックアクションを実行","発注書がロックされ、編集不可になる","低","LockAction.php"
"UAT-079","ロック解除","発注書アンロック","ロックされた発注書を解除できることを確認","発注書がロック済み、適切な権限を持つユーザー","1. ロックされた発注書を開く
2. アンロックアクションを実行","発注書のロックが解除され、編集可能になる","低","UnlockAction.php"
"UAT-080","印刷機能","発注書PDF出力","発注書をPDFで出力できることを確認","発注書が存在","1. 発注書詳細画面を開く
2. PDF出力アクションを実行","発注書がPDF形式でダウンロードされる","中","PrintRFQAction.php"
"UAT-081","メール機能","発注書メール送信","発注書を仕入先にメール送信できることを確認","発注書が存在、仕入先のメールアドレスが設定済み","1. 発注書詳細画面を開く
2. メール送信アクションを実行
3. メール内容を確認
4. 送信ボタンをクリック","発注書が添付されたメールが仕入先に送信される","高","SendPOEmailAction.php"
"UAT-082","リマインダー","期限リマインダー","納期/支払期限のリマインダーが機能することを確認","期限が近い発注/請求書が存在","1. リマインダー設定を確認
2. 期限が近づくのを待つ（またはテスト日付を設定）
3. 通知を確認","期限が近いレコードに対してリマインダー通知が送信される","低","mail_reminder機能"
"UAT-083","アクティビティ","アクティビティ登録","レコードにアクティビティを登録できることを確認","詳細画面にアクセス","1. レコード詳細画面を開く
2. アクティビティ追加アクションを実行
3. アクティビティタイプと内容を入力
4. 期限を設定
5. 保存ボタンをクリック","アクティビティがレコードに紐付けて登録される","低","ActivityPlanResource.php"
"UAT-084","アクティビティ","アクティビティ完了","登録したアクティビティを完了できることを確認","アクティビティが登録済み","1. アクティビティ一覧を確認
2. 対象アクティビティの完了ボタンをクリック
3. 完了内容を入力（必要に応じて）","アクティビティが完了状態に変更される","低","ActivityTypeResource.php"
"UAT-085","単位管理","測定単位設定","製品の測定単位を設定できることを確認","UoM機能が有効","1. 設定メニューから単位を選択
2. 新規作成ボタンをクリック
3. 単位名とカテゴリを入力
4. 変換係数を設定
5. 保存ボタンをクリック","測定単位が登録され、製品で使用可能になる","中","UoM設定"
"UAT-086","パッケージング","製品パッケージング設定","製品のパッケージング単位を設定できることを確認","製品が登録済み、パッケージング機能が有効","1. 製品詳細画面を開く
2. パッケージングタブを選択
3. パッケージング追加アクションを実行
4. パッケージング名と数量を入力
5. 保存ボタンをクリック","パッケージングが製品に設定され、発注/販売で使用可能になる","低","PackagingResource.php"
"UAT-087","割引処理","明細行割引","発注/販売明細に割引を適用できることを確認","発注書または見積書が編集状態","1. 明細行を編集
2. 割引率を入力
3. 保存ボタンをクリック","割引が適用され、小計と合計が再計算される","中","discount フィールド"
"UAT-088","税計算","税額自動計算","明細行の税額が自動計算されることを確認","製品と税設定が登録済み","1. 見積書/発注書を作成
2. 税設定のある製品を追加
3. 数量と単価を入力","税額が自動計算され、小計と合計に反映される","高","TaxFacade::collect"
"UAT-089","価格自動設定","仕入先価格自動反映","仕入先選択時に仕入先価格が自動反映されることを確認","製品に仕入先価格が設定済み","1. 発注書を作成
2. 仕入先を選択
3. 製品を追加","仕入先価格が自動的に単価フィールドに設定される","高","supplierInformation連携"
"UAT-090","データバリデーション","必須項目チェック","必須項目が未入力の場合にエラーが表示されることを確認","フォーム画面にアクセス","1. 新規作成画面を開く
2. 必須項目を空のまま保存ボタンをクリック","必須項目にバリデーションエラーメッセージが表示される","高","required()バリデーション"
"UAT-091","データバリデーション","メール形式チェック","メールアドレスの形式がチェックされることを確認","メール入力フィールドを含むフォーム","1. フォーム画面を開く
2. 不正なメール形式を入力
3. 保存ボタンをクリック","メール形式エラーメッセージが表示される","中","email()バリデーション"
"UAT-092","データバリデーション","一意性チェック","ユニーク制約の項目が重複チェックされることを確認","既存データが存在","1. 新規作成画面を開く
2. 既存レコードと同じ値（例：メールアドレス）を入力
3. 保存ボタンをクリック","重複エラーメッセージが表示される","中","unique()バリデーション"
"UAT-093","データバリデーション","数値範囲チェック","数値入力の範囲がチェックされることを確認","数値入力フィールドを含むフォーム","1. フォーム画面を開く
2. 範囲外の数値を入力
3. 保存ボタンをクリック","範囲エラーメッセージが表示される","低","minValue/maxValueバリデーション"
"UAT-094","データ復元","削除データ復元","ソフトデリートされたデータを復元できることを確認","削除済みデータが存在、適切な権限を持つ","1. 削除済みデータを含むフィルタを適用
2. 対象レコードを選択
3. 復元アクションを実行","レコードが復元され、通常の一覧に表示される","低","RestoreAction"
"UAT-095","完全削除","データ完全削除","ソフトデリートされたデータを完全削除できることを確認","削除済みデータが存在、管理者権限","1. 削除済みデータを含むフィルタを適用
2. 対象レコードを選択
3. 完全削除アクションを実行
4. 確認ダイアログで確定","レコードがデータベースから完全に削除される","低","ForceDeleteBulkAction"
"UAT-096","インポート","データ一括インポート","CSVファイルからデータをインポートできることを確認","インポート機能が有効、CSVファイルを準備","1. インポート画面を開く
2. CSVファイルを選択
3. フィールドマッピングを確認
4. インポート実行","CSVのデータがシステムに登録される","低","Importable機能"
"UAT-097","パフォーマンス","大量データ表示","大量データでも一覧が適切に表示されることを確認","1000件以上のレコードが存在","1. 一覧画面を開く
2. ページネーションを確認
3. スクロール・ページ遷移を実行","適切にページネーションされ、パフォーマンスが維持される","中","ページネーション設定"
"UAT-098","パフォーマンス","検索レスポンス","検索機能のレスポンスが適切であることを確認","大量データが存在","1. 検索キーワードを入力
2. 検索を実行
3. 結果表示までの時間を計測","3秒以内に検索結果が表示される","中","Searchable設定"
"UAT-099","セッション管理","セッションタイムアウト","一定時間操作がない場合にセッションがタイムアウトすることを確認","ログイン済み","1. システムにログイン
2. 指定時間（例：30分）操作せずに放置
3. 操作を再開","セッションが切れ、再ログインが要求される","中","Laravelセッション設定"
"UAT-100","エラーハンドリング","エラー時の適切な表示","システムエラー時に適切なエラーページが表示されることを確認","テスト環境でエラーを発生させる","1. 不正なURLにアクセス
2. 存在しないレコードにアクセス","適切なエラーページ（404等）が表示される","中","Laravelエラーハンドリング"
