私の知る限りCompiere(コンピエール)では、棚卸伝票(Physical Inventory)と社内使用在庫伝票(Internal Use Inventory)は同じ仕組み(同じテーブルと同じモデルクラス)を使用しており、明確に棚卸伝票と社内使用在庫伝票のデータを区分する事ができませんでした。
これまで、棚卸伝票と社内使用在庫伝票を見分ける方法は、料金タイプ(Charge)と社内使用在庫数量(Internal use Qty)に数値が入力されている(0ではない)場合は、社内使用在庫伝票と判断するし、そうでない場合は棚卸伝票と判断する必要がありました。
このあいまいな判断基準が、iDempiereになって改善されました。棚卸伝票と社内使用在庫伝票に使用する伝票タイプ(ベース伝票タイプ:MMI-Matarial Physical Inventory)に、Inventory用のサブ伝票タイプが追加されて、そこで明確に棚卸伝票なのか社内使用在庫伝票なのか判断できるようになっているようです。
Inventory用サブ伝票タイプは次の2種類です。
- 棚卸(PI:Physical Inventory)
- 社内使用在庫(IU:Internal Use Inventory)
簡単にざっとMInventoryクラスのCompleteIt()メソッドを確認したところ、データ処理もInventory用サブ伝票タイプにより、棚卸伝票か社内使用在庫伝票なのか判断して切り分けて処理しているようです。
これまでの、わかりずらい判断基準ではなく、明確に棚卸伝票か社内使用在庫伝票なのか判断できるのが良いですね!
関連情報
http://wiki.idempiere.org/en/NF001_Inventory_Documents
JIRA:IDEMPIERE-281 Extend Import Inventory to support also internal use
JIRA:IDEMPIERE-675 Internal Use with zero qty is dropping the inventory