在庫管理機能実装案をレビュー反映し、CODEX実装指示書を追加
- StockTransaction から冗長フィールド除外(unit, reference_type/id, created_by, inventory_count) - フロントエンド画面構成を変更(入出庫登録をモーダル化、マスタ管理をタブ統合) - レビュー記録セクション22を追加 - CODEX.md: Phase 1 実装指示書を作成(モデル・API・画面の詳細仕様) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -146,23 +146,28 @@
|
||||
- `material` `ForeignKey(Material)`
|
||||
- `transaction_type`
|
||||
- `quantity`
|
||||
- `unit`
|
||||
- `occurred_on`
|
||||
- `reference_type`
|
||||
- `reference_id`
|
||||
- `note`
|
||||
- `created_by`
|
||||
- `created_at`
|
||||
|
||||
以下のフィールドは初期実装では **除外** する:
|
||||
|
||||
- ~~`unit`~~ → `Material.stock_unit` から取得すれば十分。トランザクションごとに単位を持つと不整合の元になる
|
||||
- ~~`reference_type`~~ / ~~`reference_id`~~ → Generic FK パターンは複雑化の元。将来の施肥計画連携時に必要なら追加する
|
||||
- ~~`created_by`~~ → シングルユーザーシステムのため不要。マルチユーザー対応時に追加する
|
||||
|
||||
`transaction_type` の候補:
|
||||
|
||||
- `purchase`
|
||||
- `use`
|
||||
- `adjustment_plus`
|
||||
- `adjustment_minus`
|
||||
- `inventory_count`
|
||||
- `discard`
|
||||
|
||||
以下は初期実装では除外する:
|
||||
|
||||
- ~~`inventory_count`~~ → `adjustment_plus` / `adjustment_minus` で棚卸差異を十分表現できる
|
||||
|
||||
`quantity` は正の数で持ち、増減方向は `transaction_type` で判定する方式を推奨する。
|
||||
|
||||
#### MaterialStockSnapshot
|
||||
@@ -237,15 +242,13 @@ class StockTransaction(models.Model):
|
||||
USE = 'use', '使用'
|
||||
ADJUSTMENT_PLUS = 'adjustment_plus', '棚卸増'
|
||||
ADJUSTMENT_MINUS = 'adjustment_minus', '棚卸減'
|
||||
INVENTORY_COUNT = 'inventory_count', '棚卸記録'
|
||||
DISCARD = 'discard', '廃棄'
|
||||
|
||||
material = models.ForeignKey(Material, on_delete=models.PROTECT, related_name='stock_transactions')
|
||||
transaction_type = models.CharField(max_length=30, choices=TransactionType.choices)
|
||||
quantity = models.DecimalField(max_digits=10, decimal_places=3)
|
||||
occurred_on = models.DateField()
|
||||
note = models.TextField(blank=True, null=True)
|
||||
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
|
||||
note = models.TextField(blank=True, default='')
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
```
|
||||
|
||||
@@ -425,15 +428,14 @@ backend/apps/materials/
|
||||
### 9.1 新規画面
|
||||
|
||||
- `/materials`
|
||||
- 資材一覧
|
||||
- `/materials/fertilizers`
|
||||
- 肥料マスタ管理
|
||||
- `/materials/pesticides`
|
||||
- 農薬マスタ管理
|
||||
- `/materials/stock`
|
||||
- 在庫一覧
|
||||
- `/materials/stock/new`
|
||||
- 入出庫登録
|
||||
- 在庫一覧(メイン画面)。在庫集計表 + 入出庫登録モーダル
|
||||
- `/materials/masters`
|
||||
- 資材マスタ管理(肥料/農薬/その他をタブ切り替え、インライン編集テーブル)
|
||||
|
||||
**設計判断**: 入出庫登録は独立ページではなくモーダル方式にする。
|
||||
理由: 既存の肥料マスタ画面(`/fertilizer/masters`)のインライン編集パターンに合わせ、
|
||||
画面遷移を減らして操作効率を上げるため。
|
||||
肥料マスタと農薬マスタを別ページに分けず、1画面でタブ切り替えにする。
|
||||
|
||||
### 9.2 一覧画面の基本列
|
||||
|
||||
@@ -1550,3 +1552,32 @@ alias 例:
|
||||
- 補助: `alias辞書`
|
||||
|
||||
この構成であれば、コストを抑えつつ、現場名・ブランド名・保証票名の差異にも対応しやすい。
|
||||
|
||||
---
|
||||
|
||||
## 22. レビュー記録(2026-03-14)
|
||||
|
||||
既存コードとの整合性レビューを実施し、以下の修正を反映した。
|
||||
|
||||
### 22.1 StockTransaction フィールドの簡素化
|
||||
|
||||
以下のフィールドを初期実装から除外した。
|
||||
|
||||
| 除外フィールド | 理由 |
|
||||
|----------------|------|
|
||||
| `unit` | `Material.stock_unit` から取得すれば十分。トランザクションごとに単位を持つと不整合の元 |
|
||||
| `reference_type` / `reference_id` | Generic FK パターンは複雑化の元。将来の施肥計画連携時に必要なら追加 |
|
||||
| `created_by` | シングルユーザーシステムのため不要。マルチユーザー対応時に追加 |
|
||||
| `inventory_count` | `adjustment_plus` / `adjustment_minus` で棚卸差異を十分表現可能 |
|
||||
|
||||
### 22.2 フロントエンド画面構成の変更
|
||||
|
||||
- 入出庫登録を独立ページ (`/materials/stock/new`) → モーダル方式に変更
|
||||
- 肥料マスタ・農薬マスタを別ページ → 1画面タブ切り替え (`/materials/masters`) に統合
|
||||
- 理由: 既存の `/fertilizer/masters` のインライン編集パターンに合わせ、画面遷移を減らす
|
||||
|
||||
### 22.3 実装フェーズの整理
|
||||
|
||||
- セクション1〜16: Phase 1(初期実装)
|
||||
- セクション17〜21: Phase 2(公式データ同期、alias辞書、LLM調査支援)
|
||||
- CODEX への初回作業指示は Phase 1 のみを対象とする
|
||||
|
||||
Reference in New Issue
Block a user