| 法人名 ▲ | 契約期間 ▼ | 月額/年額 | 事業所数 | 更新状況 ▼ | ステータス | |
|---|---|---|---|---|---|---|
| 社会福祉法人みどり福祉会 |
2026-04-01〜2027-03-31
|
¥120,000 | 8 | ✔ 更新済み 2026-05-12 |
有効 | |
| 医療法人社団さくら会 |
2025-07-01〜2026-06-30
|
¥60,000 | 3 | ⚠ 未更新 期限 2026-06-30 |
今月更新 | |
| 社会福祉法人あおぞら福祉会 |
2026-04-01〜2027-03-31
|
¥60,000 | 5 | ✔ 更新済み 2026-04-22 |
有効 | |
| 特定非営利活動法人ひまわりの家 |
2025-07-01〜2026-06-30
|
¥60,000 | 2 | ⚠ 未更新 期限 2026-06-30 |
今月更新 | |
| 社会福祉法人やすらぎ会 |
2026-05-01〜2026-07-31
|
¥0 | 1 | — | 有効 | |
| 医療法人大樹会 |
2025-04-01〜2026-03-31
|
¥60,000 | 4 | ⚠ 未更新 期限切れ |
期限切れ | |
| 社会福祉法人かがやき福祉会 |
2026-04-01〜2027-03-31
|
¥120,000 | 12 | ✔ 更新済み 2026-04-05 |
有効 | |
| 特定非営利活動法人みらいケアネット |
2025-04-01〜2026-03-31
|
¥60,000 | 3 | ⚠ 未更新 期限切れ |
期限切れ | |
| 法人名 | 契約期間 | 月額/年額 | 事業所数 | 更新状況 | ステータス |
B-CTR-001(契約情報CRUD)とB-CTR-002(契約状況一覧・更新管理)を統合した一覧画面として実装。カスタムテーブル lms_contracts のデータを WP_List_Table を継承した LMS_Contract_List_Table クラスで表示する。管理メニューは add_submenu_page() で「会員管理」親メニュー配下に「契約管理」として登録。スラッグは lms-contracts。更新状況カラムはKintoneの契約更新管理機能の代替として、契約終了日と renewal_status フィールドをもとに「更新済み」「未更新」を表示する。
表示・編集は manage_lms_contracts capability を持つユーザーのみ許可。事務局(管理者)ロールに付与。一般の editor ロールはアクセス不可。削除操作は delete_lms_contracts capability で別途制御し、管理者(administrator)ロールのみに限定。メニュー表示条件: current_user_can('manage_lms_contracts')。一括操作時もNonce検証 + 権限チェックを必ず実施。
カスタムテーブル lms_contracts の主要カラム: id(主キー)、corporation_id(法人ID・外部キー)、contract_start(DATE)、contract_end(DATE)、monthly_fee(INT・月額円)、office_count(契約事業所数・INT)、renewal_status(ENUM: renewed/pending/none)、renewal_date(DATE・更新手続き完了日)。契約は単一プラン+オプション課金制のため「種別」区分は持たない。法人テーブル lms_corporations と corporation_id でJOINして法人名を取得。ステータス(有効/今月更新/未更新/期限切れ)は contract_end と renewal_status の組み合わせで動的に算出。
一括操作(Bulk Actions): 「更新済みにする」(renewal_status を renewed に更新・renewal_date を処理日に設定)、「削除」(論理削除: deleted_at 付与)。行アクション(Row Actions): 「編集」→ 契約情報編集画面(B-CTR-001編集画面)へ遷移、「詳細」→ 契約詳細ページへ遷移、「削除」→ 確認ダイアログ後に論理削除。「削除」は行アクションの .delete クラスで赤色表示。法人名クリックでも編集画面へ遷移(column-primary のリンク)。
表示列の選択: 法人名 / 契約期間 / 月額・年額 / 事業所数 / 更新状況 / ステータス。デフォルトはすべて表示。ページあたり表示件数: デフォルト20件。set-screen-option フィルタで lms_contracts_per_page キーで保存。「今月更新」ステータスフィルタは contract_end が当月末日までの契約かつ renewal_status = pending の条件で抽出。
Phase1は最大500社・約500〜1,000件の契約レコードを想定。$wpdb->get_results($wpdb->prepare(...)) でページネーション付きクエリ(LIMIT/OFFSET)を使用。フィルタ条件(更新状況・年度)はすべてプリペアドステートメントでSQLインジェクション対策必須。corporation_id、contract_end、renewal_status にDBインデックスを設定して絞り込み高速化。一括操作・削除・更新のすべてのフォーム送信で wp_nonce_field() / check_admin_referer() によるNonce検証必須。renewal_status 変更時は updated_at を自動更新。月額フィールド(monthly_fee)は intval() でサニタイズ。本画面はPhase1の契約情報CRUD・契約状況一覧のみを対象とする。