オープンソースのERP iDempiereでは、基本的な仕様として在庫管理を行う枠組みである"倉庫"は、倉庫の中にある在庫の責任部署を明確にするために、必ずどこかの組織に所属する事になります。この仕様によりセグメント(組織)別の貸借対照表を作成する事が可能になり、在庫の責任部署の明確化とセグメント別の業績評価という観点では理解できる仕様です。
しかしいっぽうで、現実的には複数の組織の在庫が、物理的に同じ倉庫に中に保管されている事はよくある事でしょう。複数の組織で使用している倉庫を"共有倉庫"とし、JPiereではその共有倉庫とセグメント(組織)別の在庫管理がスムーズに処理できるように検討し、セグメント別の倉庫と共有倉庫とで論理的に在庫移動が受注伝票で出来るようにしました。
論理在庫移動
マスタ定義
JPiereでは、iDempiereの標準機能としてある”倉庫”はセグメント別の在庫を管理するための”論理倉庫”と定義し、地理的に実際に在庫がある場所を管理する”物理倉庫”として、両方の倉庫を”保管場所”に設定する事でマトリクス的に在庫管理できるようにしました。
論理在庫移動(受注伝票での在庫移動伝票作成)
物理倉庫にあるどの組織でも利用できる在庫(以下、共有在庫)をある組織が販売する場合、ある組織の論理倉庫に、物理倉庫から在庫移動する必要があります。しかし、この際の在庫移動は、実際に物が動くわけではなく、物の責任部署を移動するだけです。責任部署を変更するためだけに行う在庫移動を"論理在庫移動"として、受注伝票で論理在庫移動が行えるようにしました。
資料
カスタマズ履歴
2017年4月12日
【JPIERE-0317】物理倉庫を追加した事により、受注伝票明細での移動元保管場所と移動先保管場所のチェックロジックを、同一保管場所タイプのチェックから同一物理倉庫へのチェックへ変更しました。
2018年1月26日
論理在庫移動伝票を伝票ステータスをクローズにする際には、関連する受注伝票の伝票ステータスがクローズである事のチェックロジックを追加しました。
過去の仕様の検討資料
【JPIERE-0317】物理倉庫ができるまで、共有倉庫として"保管場所タイプ"を使用する事を想定していました。下記の資料はその際の検討資料です。”保管場所タイプ”の記載を"物理倉庫"と読み替えて頂ければ、【JPIERE-0317】物理倉庫の考え方を理解できると思います。
共有倉庫とセグメント別在庫管理の検討資料
共有倉庫と保管場所と保管場所タイプの定義例
カスタマズ情報
クラス
- org.adempiere.base.JPiereOrderLineModelValidator.java
- org.adempiere.base.JPiereOrderModelValidator.java
追加カラム
◆C_DocTypeテーブル
- JP_DocTypeMM_IDカラムを追加
◆C_OrderLineテーブル
- JP_Locator_IDカラムを追加
- JP_LocatorFrom_IDカラムを追加
- JP_LocatorTo_IDカラムを追加
- JP_ASI_From_IDカラムを追加
- JP_ASI_To_IDカラムを追加
- JP_MovementLine_IDカラムを追加
◆M_Movementテーブル
- JP_Order_IDカラムを追加
◆M_LocatorTypeテーブル
- JP_Location_IDカラムを追加
◆M_Locatorテーブル
- IsCommonLocatorJPカラムを追加
追加メッセージ
◆JP_CanNotChangeQtyForMM
- You can not change Qty. Because Inventory Move Doc created.(在庫移動伝票が作成されているため数量を変更する事はできません。)
◆JP_CanNotChangeMMInfoForMM
- You can not change Inventory Move Info. Because Inventory Move Doc created.(在庫移動伝票が作成されているため在庫移動情報を変更する事はできません。)
◆JP_PleaseInputToField
- Please input a value into the field : (次のフィールドに値を入力して下さい : )
◆JP_SameLocatorMM
- You are goring to create Inventory Move Doc at same Locator. (同じ保管場所に対して在庫移動伝票を作成しようとしています。)
◆JP_CanNotCreateMMforDiffLocatorType
- You can not create Inventory move doc at Sales Order because of different Locator type. (受注伝票では保管場所区分が異なる在庫移動伝票は作成できません。)
◆JP_CanNotCreateMMforDocType
- You can not create Inventory move doc because of missing Doc Type setting. (この伝票タイプでは在庫移動伝票を作成する事はできません。)