リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: SubconTrack - 外注加工費・工賃台帳&支払管理システム
納期アラート:納期超過・直近納期の依頼を一覧でハイライト表示
## 1. 目的
製造現場では「納期が過ぎているのに気づかなかった」「あと数日なのに対応が遅れた」というミスが起きやすい。現在のダッシュボードには「納期超過件数」のカウントは表示されているが、どの依頼がそれに該当するかをワンクリックで確認する手段がない。依頼一覧(orders ページ)に視覚的なハイライトとフィルタを追加し、担当者が即座に要注意案件を把握できるようにする。
## 2. 具体的な仕様
### 2-1. 依頼一覧テーブルの行ハイライト
`pages/orders.php` の依頼一覧テーブルで、各行を出力する際に以下の判定を行い CSS クラスを付与する。
- **納期超過**(due_date < TODAY かつ status IN ('依頼済','納品済'))→ `class="row-overdue"` → 背景色 `#fff1f2`(薄い赤)、左ボーダー `4px solid #ef4444`
- **直近3日以内**(due_date BETWEEN TODAY AND TODAY+3 かつ status IN ('依頼済','納品済'))→ `class="row-warning"` → 背景色 `#fffbeb`(薄い黄)、左ボーダー `4px solid #f59e0b`
- それ以外はスタイル変更なし
判定は PHP 側で行う(SQL の SELECT に `DATEDIFF(due_date, CURDATE()) AS days_left` を追加し、PHP で `$days_left < 0` / `$days_left <= 3` を評価)。
### 2-2. フィルタ追加
既存のフィルタバー(外注先・ステータス絞り込みが既にある想定)に「納期」セレクトを追加する。
```
<select name="due_filter">
<option value="">すべて</option>
<option value="overdue">納期超過のみ</option>
<option value="soon">直近3日以内</option>
</select>
```
GET パラメータ `due_filter` を受け取り、SQL の WHERE 句に条件を追加する。
- `overdue` → `AND o.due_date < CURDATE() AND o.status IN ('依頼済','納品済')`
- `soon` → `AND o.due_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 3 DAY) AND o.status IN ('依頼済','納品済')`
### 2-3. ダッシュボードのリンク化
`pages/dashboard.php` の「納期超過件数」メトリクスカードを、クリックすると `?page=orders&due_filter=overdue` に遷移するリンクに変更する。
```php
<a href="?page=orders&due_filter=overdue" style="text-decoration:none;color:inherit;">
<div class="card metric">...</div>
</a>
```
### 2-4. CSS 追記(lib.php 内の render_layout スタイルブロックに追加)
```css
tr.row-overdue td { background: #fff1f2; border-left: 4px solid #ef4444; }
tr.row-warning td { background: #fffbeb; border-left: 4px solid #f59e0b; }
```
## 3. 既存機能との整合
- 既存の外注先・ステータス・締め月フィルタのクエリ構造に WHERE 句を `AND` で追記するだけなので、他フィルタと組み合わせて使える。
- ハイライトは表示上の装飾のみで、データの変更・削除は一切行わない。
- CSV エクスポート(orders)は既存のまま変更しない。
- スマホでは行の左ボーダーカラーで視認できるため、追加のレスポンシブ対応は不要。
- 印刷時(no-print 外の要素)は背景色が出るが実害はなく、必要であれば `@media print { tr.row-overdue td, tr.row-warning td { background: none; border-left: none; } }` を追加する。
製造現場では「納期が過ぎているのに気づかなかった」「あと数日なのに対応が遅れた」というミスが起きやすい。現在のダッシュボードには「納期超過件数」のカウントは表示されているが、どの依頼がそれに該当するかをワンクリックで確認する手段がない。依頼一覧(orders ページ)に視覚的なハイライトとフィルタを追加し、担当者が即座に要注意案件を把握できるようにする。
## 2. 具体的な仕様
### 2-1. 依頼一覧テーブルの行ハイライト
`pages/orders.php` の依頼一覧テーブルで、各行を出力する際に以下の判定を行い CSS クラスを付与する。
- **納期超過**(due_date < TODAY かつ status IN ('依頼済','納品済'))→ `class="row-overdue"` → 背景色 `#fff1f2`(薄い赤)、左ボーダー `4px solid #ef4444`
- **直近3日以内**(due_date BETWEEN TODAY AND TODAY+3 かつ status IN ('依頼済','納品済'))→ `class="row-warning"` → 背景色 `#fffbeb`(薄い黄)、左ボーダー `4px solid #f59e0b`
- それ以外はスタイル変更なし
判定は PHP 側で行う(SQL の SELECT に `DATEDIFF(due_date, CURDATE()) AS days_left` を追加し、PHP で `$days_left < 0` / `$days_left <= 3` を評価)。
### 2-2. フィルタ追加
既存のフィルタバー(外注先・ステータス絞り込みが既にある想定)に「納期」セレクトを追加する。
```
<select name="due_filter">
<option value="">すべて</option>
<option value="overdue">納期超過のみ</option>
<option value="soon">直近3日以内</option>
</select>
```
GET パラメータ `due_filter` を受け取り、SQL の WHERE 句に条件を追加する。
- `overdue` → `AND o.due_date < CURDATE() AND o.status IN ('依頼済','納品済')`
- `soon` → `AND o.due_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 3 DAY) AND o.status IN ('依頼済','納品済')`
### 2-3. ダッシュボードのリンク化
`pages/dashboard.php` の「納期超過件数」メトリクスカードを、クリックすると `?page=orders&due_filter=overdue` に遷移するリンクに変更する。
```php
<a href="?page=orders&due_filter=overdue" style="text-decoration:none;color:inherit;">
<div class="card metric">...</div>
</a>
```
### 2-4. CSS 追記(lib.php 内の render_layout スタイルブロックに追加)
```css
tr.row-overdue td { background: #fff1f2; border-left: 4px solid #ef4444; }
tr.row-warning td { background: #fffbeb; border-left: 4px solid #f59e0b; }
```
## 3. 既存機能との整合
- 既存の外注先・ステータス・締め月フィルタのクエリ構造に WHERE 句を `AND` で追記するだけなので、他フィルタと組み合わせて使える。
- ハイライトは表示上の装飾のみで、データの変更・削除は一切行わない。
- CSV エクスポート(orders)は既存のまま変更しない。
- スマホでは行の左ボーダーカラーで視認できるため、追加のレスポンシブ対応は不要。
- 印刷時(no-print 外の要素)は背景色が出るが実害はなく、必要であれば `@media print { tr.row-overdue td, tr.row-warning td { background: none; border-left: none; } }` を追加する。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (subcontrack))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「SubconTrack - 外注加工費・工賃台帳&支払管理システム」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=subcontrack
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/subcontrack/
ご利用ありがとうございます!
ご要望いただいた「SubconTrack - 外注加工費・工賃台帳&支払管理システム」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=subcontrack
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/subcontrack/
ご利用ありがとうございます!
Echo
Iris