「場所」と「状態」の混在を解きほぐし、移動・取り置き・出荷を素直に扱えるマスタへ。
現在の warehouses テーブルは code / name / address / is_active / sort_order しか持たず、
種別・エリア・出荷可否といった構造化属性がゼロ。用途はすべて「倉庫名の文字列」に埋め込まれている。
移動中・不良・処分・調整・取り置きが、独立した倉庫コードとして存在する。物理拠点ではないのに「倉庫」を消費している。
会津 / 会津工場 / 会津処分、中部 / 中部ダイソー のように、同一拠点が複数倉庫に分裂。倉庫間移動の伝票が立つが物理は動かない。
stock_type が死んでいる在庫の状態を持てる stock_type カラムは存在するのに、コード全体で常に normal のみ。取り置き等は倉庫側で表現してしまっている。
「この倉庫から出荷する / しない」の区別が無く、is_active を場当たり的に流用。EC受注画面ではフィルタすら掛かっておらず、移動中・不良倉庫まで出荷先に選べてしまう。
現マスタ全24件を「場所」と「状態」に仕分けると、再設計後の行き先はこうなる。
| コード | 倉庫名 | 現状の性質 | 再設計後の扱い |
|---|---|---|---|
| 0000 | 共通倉庫 | 曖昧 | 用途を確認のうえ実倉庫 or 廃止 |
| 0001 | 名田庄 | 実在の場所 | 実倉庫(そのまま) |
| 0002 | 会津 | 実在の場所 | 実倉庫・エリア=会津 |
| 0003 | 会津工場 | 同一拠点分割 | 実倉庫・エリア=会津(即時移動対象) |
| 0005 | 福谷 | 実在の場所 | 実倉庫 |
| 0007 | 東京 | 実在の場所 | 実倉庫 |
| 0008 | 小森樹脂 | 実在の場所 | 実倉庫(取引先) |
| 0009 | 本社 | 実在の場所 | 実倉庫 |
| 0011 | 高尾工業 | 実在の場所 | 実倉庫(取引先) |
| 0012 | 若狭塗センター | 実在の場所 | 実倉庫 |
| 0013 | 日笠倉庫第二 | 実在の場所 | 実倉庫 |
| 0014 | 小浜センター | 実在の場所 | 実倉庫 |
| 0015 | 中部ダイソー | 同一拠点分割 | 実倉庫・エリア=中部(即時移動対象) |
| 0016 | 中部 | 実在の場所 | 実倉庫・エリア=中部・既定の出荷倉庫 |
| 0017 | 海南 | 実在の場所 | 実倉庫 |
| 0019 | 調整在庫 | 状態を倉庫化 | stock_type=adjustment へ |
| 0020 | ㈲おおきど遠敷 | 実在の場所 | 実倉庫(取引先) |
| 0021 | 江川製作所 | 実在の場所 | 実倉庫(取引先) |
| 0022 | セリア(四日市倉庫) | 実在の場所 | 実倉庫(取引先) |
| 0023 | (有)彩器 | 実在の場所 | 実倉庫(取引先) |
| 0024 | 不良商品 | 状態を倉庫化 | stock_type=defective へ |
| 0025 | 会津処分 | 状態を倉庫化 | 会津の stock_type=disposal へ |
| 0026 | ダイソー取り置き(会津) | 取り置きを倉庫化 | 会津 + 取り置きテーブル(得意先=ダイソー) |
| 0027 | 取り置き(中部) | 取り置きを倉庫化 | 中部 + 取り置きテーブル(得意先単位) |
| 0099 | 移動中 | 状態を倉庫化 | 廃止(既に未使用) |
「場所(倉庫)」「状態(stock_type)」「得意先向け確保(取り置き)」の3層に分離する。
normal(自社) / partner(取引先) 等の分類エリアは当面 area_code 文字列で足りる。将来エリア名や代表倉庫を持つなら areas マスタへ昇格させる。
normal。今後: normal / defective(不良) / disposal(処分) / adjustment(調整)= 会津倉庫の中で「正常」「不良」「処分」を stock_type で並存させられる。スキーマ変更不要。ただし引当・出荷ロジックが「出荷対象は normal のみ」を判定する改修が必要。
取り置きは「場所」ではなく「その実倉庫の在庫のうち、この得意先向けに確保した数量」。
出荷可能数=normal在庫 − 他得意先の取り置き合計 という引き方になる。
新しい倉庫移動は「移動中倉庫」を経由していない。ステータスと在庫予約で表現し、在庫は移動元→移動先へ直接付け替えている。
0099 を参照するコードは一箇所も無い。マスタから落として問題なし。
同一 area_code 内の移動(例: 中部 ⇄ 中部ダイソー)は物理を伴わないので、in_transit を飛ばして即 completed にできる。取り置きをテーブル化したことで、取り置き絡みの「見せかけの移動」はそもそも倉庫移動でなくなる。
不良・処分・調整・取引先預けなどを出荷候補から一律で外せる。今バラバラな受注/EC受注の倉庫絞り込みを can_ship = true に統一する。
warehouses に area_code / warehouse_type / can_ship を追加。名前に埋まっていた用途を属性化。移動中(0099)を廃止し、同一エリア移動を即時完了に。受注/EC受注の出荷候補を can_ship で統一。ここだけで見た目と誤操作は大きく改善。
stock_holds(得意先単位取り置き)を新設し 0026/0027 を移行。不良/処分/調整を stock_type へ。引当・出荷ロジックを「出荷可能数 = normal − 取り置き」に改修。要設計・要テスト。
得意先向け取り置きは、いつ・誰が解除するか(出荷で自動消込 / 手動解放 / 期限切れ)。stock_holds のライフサイクルを決める。
小森樹脂・高尾工業・セリア等は「取引先に預けた在庫」。warehouse_type=partner で分類し、出荷可否をどうするか。
現場で何に使っているかを確認してから、廃止か stock_type 化かを最終決定する。