時間に基づく在庫評価について(LIFO/FIFO)

後入れ先出し(LIFO)、先入れ先出し(FIFO)の在庫評価方法を使用して在庫を設定し、初期化することができます。LIFOとFIFOはどちらも時間に基づく価格タイプです。FIFO在庫価格決定では、最新の購入機材を使用する前に、最初に購入した機材を消費します。LIFO在庫価格決定では、最初に購入した機材を使用する前に、最新の購入機材を消費します。

LIFOとFIFOはどちらも、倉庫レベルで価格決定レベルを設定する必要のある倉庫価格タイプです。価格決定レベルはインストールパラメータPRICELEVで定義します。倉庫レベルの価格決定には、これをSに設定する必要があります。

LIFOまたはFIFOは価格決定方法として[倉庫]フォームで作成する各倉庫に設定することができますが、LIFO/FIFO倉庫内の部品の価格タイプは、平均価格、最終価格、標準価格などLIFO/FIFO以外の価格タイプを使った変更が可能です。倉庫のデフォルト価格タイプはインストールパラメータPRICETYPによって決まります。

PRICETYPは[インストールパラメータ]フォームでを設定できますが、このパラメータで決まるのは、[倉庫]フォームで倉庫を作成するときに[価格タイプ]に自動表示されるデフォルトのみです。必要に応じて各倉庫の価格タイプを変更します。

[部品]フォームまたは[設備]フォーム(ステータスが倉庫内で定義された設備用)から任意の価格タイプで在庫を作成すると、[R5BINSTOCK]テーブルが増量で更新され、[R5TRANSACTIONS、R5TRANSLINES]テーブルで受領処理が作成されます。受領処理は[PO受領]フォームで確認できます。受領処理はすべて仕入先を必要とするため、受領に対する仕入先としてアスタリスク(*)が自動挿入されます。各受領処理の説明のデフォルトは「在庫の初期化」です。価格決定方法にLIFO/FIFOを使用する場合、倉庫から今後発行される全在庫品目に適切な価格が使用されるよう、[R5FIFO]テーブル内の全在庫の初期化に対するレコードも作成されます。

[R5FIFO]テーブルには受領処理ごとの部品、価格、数量、倉庫、処理日に加え、購買オーダから受領された全LIFO/FIFO在庫の購買オーダや購買オーダ明細も保存されます。処理日とは在庫が入庫した日付を表し、その後のLIFO/FIFO処理の基点となります。在庫を増加させる各処理に対し、新しいレコードが[R5FIFO]テーブルに入ります。在庫を減少させる各処理に対しては、適切なレコードが検索され、処理日に基づいた更新や削除が行われます。FIFO価格決定では、在庫リストに最初に加わったレコードが検索されます。LIFO価格決定では、在庫リストに最後に加わったレコードが検索されます。

在庫に関わる処理が発生するとき、機材の価格はLIFO/FIFOの価格決定に基づいて再評価されます。[部品]フォームの[倉庫]ページにある[在庫値]にはLIFO/FIFO在庫の現在の価格が表示されます。LIFO/FIFOの価格決定方法に対する在庫処理で、システムが異なるタイプを設定する方法については次のシナリオをご覧ください。

次の各シナリオの例にはFIFOの価格決定が使用されています。LIFO価格決定を使用する場合、システムのLIFO価格決定の取扱い方はどの例でも同じです。ここで検索されるのは最初の入庫レコードではなく、最も最近の入庫レコードで適切な価格が算出されます。

シナリオ1:作業オーダへの部品発行(LIFO/FIFO)

[作業オーダ]フォームを使用して倉庫の部品を作業オーダに発行するとき、価格決定方法がLIFO/FIFOなら、発行済み部品の処理価格は[R5PARTS、R5STOCK]テーブルから基本価格を取得するのではなく、[R5FIFO]テーブルを使って計算されます。

価格決定方法にFIFOを選択した場合、[R5FIFO]テーブルで最初の入庫日を持つ最古の部品が検索され、作業オーダ上の部品の需要数量を満たそうとします。最初のレコードの数量が作業オーダにある部品の需要を満たせない場合、最初のレコードの使用可能な数量が作業オーダに発行され、続いて[R5FIFO]テーブルで次に入庫したレコードが検索されます。[R5FIFO]テーブルからの部品の検索と発行は、最も古い部品から順に作業オーダ上の要求数量が満たされるまで続きます。

作業オーダへのLIFO/FIFO発行の処理価格は、[R5FIFO]テーブルに加えられた該当部品の価格を使って記録されます。発行数量を満たすために[R5FIFO]テーブル上のレコードが複数使用された場合、発行価格はR5FIFOのレコードにある価格の加重平均を用いて計算されます。ただし将来、発行部品が倉庫に返品される可能性があるため、元の発行価格と発行部品の数量のレコードは[R5ISSUES]テーブルに加えられ、部品の元の発行価格のレコードは保持されます。システムがLIFO/FIFOの価格決定で作業オーダに部品を発行する方法については次の例をご覧ください。

例:

価格決定方法はFIFOです。この例では10台のエアフィルタの需要がある作業オーダを作成したとします。現在、倉庫には価格も入庫日も異なるエアフィルタが19台あります。発行時、[R5FIFO]テーブルには次の情報が含まれます。

入庫日 在庫数量 価格
2002年4月1日 4 700円
2002年5月7日 3 800円
2002年6月10日 8 1,600円
2002年6月25日 4 1,800円

前のテーブルの「入庫日」の列は在庫を受領した日付を表します。

システムは作業オーダにあるエアフィルタの要求数量を満たすため、2002年4月1日に1個700円で入庫した4個を検索し、価格700円の部品4個のレコードを[R5ISSUES]テーブルに挿入します。その後、その700円の部品4個のレコードを[R5FIFO]テーブルから削除します。システムは次に2002年5月7日に1個800円で入庫した3個を検索し、価格800円の部品3個のレコードを[R5ISSUES]テーブルに挿入します。その後、その元の3個のレコードを[R5FIFO]テーブルから削除します。続いてシステムは2002年6月10日に1個1,600円で入庫した8個を検索し、そのうちの3個の部品のレコードを[R5ISSUES]テーブルに挿入します。その後、[R5FIFO]テーブルで2002年6月10日のレコードの数量を5に更新します。システムはそれから作業オーダへの発行を作成し、次の式を使って発行の処理価格を計算します。

[(4個のエアフィルタ、各700円) + (3個のエアフィルタ、各800円) + (3個のエアフィルタ、各1,600円)] / 10 = 1,000円

作業オーダへの発行が完了すると、[R5ISSUES、R5FIFO]テーブルに次の情報が含まれます。

R5ISSUES R5FIFO
4個の空気フィルタ、各700円 5個の空気フィルタ、各1,600円
3個の空気フィルタ、各800円 4個の空気フィルタ、各1,800円
3個の空気フィルタ、各1,600円

シナリオ2:部品の受領(LIFO/FIFO)

価格決定方法にLIFO/FIFOを使用して在庫に部品を受領するとき、受領が承認されると、受領部品のレコードは [R5FIFO]テーブルに自動挿入されます。

[PO受領]フォームを使って受領を作成し、承認すると、システムは[R5FIFO]テーブルに挿入された在庫レコードと該当する購買オーダ明細上の部品を関連付けます。在庫レコードと購買オーダ明細を[R5FIFO]テーブルで関連付けることで、購買単価で受領した部品の数量が記録されます。部品の価格に税やその他の請求が含まれるように設定した場合は、購買単価には部品に対する税、その他の請求が含まれてきます。

シナリオ3:作業オーダから在庫に部品を返品(LIFO/FIFO)

[作業オーダ]フォームを使って作業オーダから部品を倉庫に返品するとき、価格決定方法がLIFO/FIFOなら、システムは[R5ISSUES]テーブルから、返品を行う倉庫と部品に対するものと同じ発行を検索しようとします。また、部品の元の発行先の作業オーダと活動、あるいは設備やプロジェクトも検索しようとします。同等の発行が[R5ISSUES]テーブルに存在するとき、システムはその発行価格を返品価格として使用します。同等の発行では返品全部を満たせない場合、部品の残りの数量は現在の平均価格を使って返品されます。

返品数量を満たす発行が検索されると、使用済みの発行は[R5ISSUES]テーブルから削除され、[R5ISSUES]テーブルのレコードに保存されていた元の受領日時を使って[R5FIFO]テーブルにレコードが挿入されます。[R5ISSUES]テーブルからのレコードでは返品数量を満たせない場合、現在のシステム日時を処理日とする新しいレコードが[R5FIFO]テーブルに挿入されます。返品数量を満たす発行が検索された場合は、返品に使用される発行数量が[R5ISSUES]テーブルから削除または削減されます。

システムは作業オーダ、設備、あるいはプロジェクトから倉庫へのLIFO/FIFO返品の処理価格を、[R5ISSUES]テーブルから使用部品の価格の加重平均を使って算出します。返品数量を満たす同等の発行が存在するなら、システムは[R5ISSUES]テーブルのISS_FIFODATE列に保存された元のR5FIFOレコードの日付を、返品用の[R5FIFO]テーブルに挿入するレコードの処理日として使用します。返品数量を満たす同等の発行が存在しない場合は現在の日付が使用されます。作業オーダから在庫への部品の返品で、システムがLIFO/FIFO価格決定をどう扱うかについての詳細は、次の例をご覧ください。

例:

価格決定方法はFIFOです。この例では10個のエアフィルタを作業オーダから倉庫に返品する必要があるとします。返品時、[R5ISSUES、R5FIFO]テーブルには次の情報が含まれています。

R5ISSUES(この作業オーダ用) R5FIFO
3個のエアフィルタ、各800円 2002年5月4日 1個のエアフィルタ、各800円 2002年5月7日
5個のエアフィルタ、各1,000円 2002年4月1日 2個のエアフィルタ、各700円 2002年5月29日
2個のエアフィルタ、各900円 2002年6月1日

前のテーブルのR5ISSUES列に表示された日付は、在庫を受領した日付です。

システムは返品数量を満たすため、2002年4月1日にR5ISSUESに1個1,000円で挿入した部品5個を検索し、作業オーダから倉庫に返品し、[R5FIFO]テーブルに1,000円の価格の部品5個のレコードを加え、同等のレコードを[R5ISSUES]テーブルから削除します。続いて2002年5月4日に1個800円でR5ISSUESに挿入した部品3個を検索して作業オーダから倉庫に返品し、[R5FIFO]テーブルに800円の価格の部品3個のレコードを加え、元の3個のレコードを[R5ISSUES]テーブルから削除します。

10個という返品数量を満たすにはさらに2個が必要でも、それを満たす同等の発行が残されていないため、システムは返品前から[R5FIFO]テーブルに存在したレコードを検索し、次の式を使って部品の加重平均価格を計算します。

[(1個のエアフィルタ、各800円) + (2個のエアフィルタ、各700円) + (2個のエアフィルタ、各900円)] / 5 = 800円

残った2個の部品は800円の価格で返品され、新しい800円の部品2個というレコードが[R5FIFO]テーブルに挿入されます。

システムは次の式を用いて返品の処理価格を算出します。

[(5個のエアフィルタ、各1,000円) + (3個のエアフィルタ、各800円) + (2個のエアフィルタ、各800円)] / 10 = 900円

作業オーダから倉庫への発行が完了すると、[R5ISSUES、R5FIFO]テーブルに次の情報が含まれます。

R5ISSUES R5FIFO
5個のエアフィルタ、各1,000円 2002年4月1日
3個のエアフィルタ、各800円 2002年5月4日
1個のエアフィルタ、各800円 2002年5月7日
2個のエアフィルタ、各700円 2002年5月29日
2個のエアフィルタ、各900円 2002年6月1日

2個のエアフィルタ、各800円 2002年6月4日

(このレコードの処理日は現在のシステム日時に更新されます。)

シナリオ4:倉庫間処理の価格決定(LIFO/FIFO)

倉庫間で部品を移動させるには、[クイック倉庫間転送]フォーム、[倉庫間発行]フォーム、[倉庫間調達要求]フォーム、[倉庫間受領]フォームが利用できます。倉庫間処理では、システムは2つの処理明細を作成します。まず、転送する部品の発行側倉庫で、発行処理を作成します。受領側倉庫では受領処理を作成します。倉庫間の移動時、価格決定方法がLIFO/FIFOなら、システムは受領側倉庫の[R5FIFO]テーブルにもレコードを作成します。ただし、この発行処理では発行側倉庫の[R5ISSUES]テーブルにはレコードは作りません。

倉庫間での機材の移動の価格がゼロになる処理を作成しないようにするには、[クイック倉庫間転送]フォームで部品を発行する際、[価格]に値を指定する必要があります。

[価格]には発行側倉庫での部品の平均LIFO/FIFO価格が自動挿入されます。必要に応じた[価格]の修正が可能です。発行側倉庫での発行処理の価格は、転送によって影響を受ける[R5FIFO]テーブルにあるレコードの平均価格となります。

転送中の部品が受領側倉庫にすでに存在しない場合、システムは[クイック倉庫間転送]フォームか[PO受領]フォームで[価格]に指定された値を価格とし、部品と受領側倉庫の新しいレコードを[R5FIFO]テーブルに挿入します。転送済みの数量の受領処理と[価格]に指定する値も作成します。

シナリオ5:仕入先への返品価格決定(LIFO/FIFO)

購買オーダで購入した部品を[仕入先返品]フォームを使って倉庫から仕入先に返品するとき、価格決定方法がLIFO/FIFOなら、システムは[R5FIFO]テーブルから、元の購買オーダ明細にある同じ部品のレコードを検索しようとします。この明細から部品の返品価格が計算されます。購買オーダ明細上の部品のレコードが[R5FIFO]テーブルで検索されると、システムはその購買オーダ明細の元の価格を返品価格に使用します。返品数量が[R5FIFO]テーブルの購買オーダ明細にあった部品の数量では満たせない場合、[R5FIFO]テーブルの購買オーダ明細レコードから一致する返品部品レコードの検索が返品数量を完全に満たすまで続きます。

検索結果では返品数量を満せない場合は、その返品の残数を満たすために、[R5FIFO]テーブルで部品を返品しようとする元の購買オーダ明細と関連がなく、同じ部品で使用可能なレコードが用いられます。システムは価格タイプがLIFOかFIFOかにより、該当する最初または最後のレコードを使用します。返品数量を満たすために使用されたレコードの数量は、すべて[R5FIFO]テーブルから削除または削減されます。

仕入先への返品の価格決定で、システムがLIFO/FIFO価格決定をどう扱うかについての詳細は、次の例をご覧ください。

例:

価格決定方法はFIFOです。購買オーダ番号10003、1個800円で購入したエアフィルタ10個を返品する必要があるとします。返品時、[R5FIFO]テーブルには次の情報が含まれます。

入庫日 在庫数量 価格 購買オーダ番号
2002年4月1日 2 1,800円
2002年5月7日 9 800円 10003
2002年6月10日 8 950円 10004

前のテーブルの「入庫日」の列は在庫を受領した日付を表します。

システムは元の購買オーダ10003から800円の部品9個を返品用に検索し、このレコードを[R5FIFO]テーブルから削除します。このR5FIFOレコードでは部品の残数はありません。

10個の返品数量を満たすには部品はあと1個が必要ですが、それを満たすべき購買オーダ明細上の部品レコードには一致するものがありません。そこでシステムが最初に検索するのは各1,800円で入庫し、2002年4月1日に[R5FIFO]テーブルに挿入された2個です。この返品のため、数量は2から1に更新されます。最後の部品は1,800円の価格で返品されます。

システムは次の式を用いて返品価格を算出します。

[(9個のエアフィルタ、各800円) + (1個のエアフィルタ、各1,800円)] / 10 = 900円

倉庫から仕入先への返品が完了すると、[R5FIFO]テーブルに次の情報が含まれます。

入庫日 在庫数量 価格 購買オーダ番号
2002年4月1日 1 1,800円
2002年6月10日 8 950円 10004

シナリオ6:内部修理受領の価格決定(LIFO/FIFO)

内部修理受領の価格決定は、仕入先からの通常の受領とほとんど同じ扱いです。前出のシナリオ2をご覧ください。修理可能部品の修理は内部でも外部でも可能です。修理可能部品の受領に使用されるフォームと受領処理は、部品の修理が内部で行われるか外部で行われるかによって異なります。内部で修理する部品に対する受領を作成するには[内部修理受領]フォームを使用します。外部で修理する部品に対する受領を作成するには[PO受領]フォームを使用します。内部や外部で修理された部品の価格決定で、システムがLIFO/FIFO価格決定をどう扱うかについての詳細は、次の例をご覧ください。

例1:

内部で修理した部品の受領です。内部修理の受領が承認されると、システムは在庫にある部品の使用可能数量を受領数量で更新し、部品と[修理価格]のレコードを[R5FIFO]テーブルに挿入します。

例2:

外部で修理した部品の受領です。PO受領が承認されると、システムは在庫にある部品の使用可能数量を受領数量で更新し、部品と受領単価のレコードを[R5FIFO]テーブルに挿入します。

[部品]フォームの[在庫値]ページで、全LIFO/FIFO在庫に対する処理によって作成した在庫値情報は、表示したり編集することができます。

シナリオ7:価格の正負調整(LIFO/FIFO)

[実地棚卸]フォームを使った棚卸を承認し終えて数量を更新するとき、LIFO/FIFO価格決定での負の調整は通常の発行と同様の扱いになります。

正の調整ではシステムが棚卸で調整した在庫部品の平均価格を計算します。算出された平均価格での正の調整数量のレコードと正の調整の処理レコードが[R5FIFO]テーブルに挿入されます。

修理可能部品が破棄された場合は外部修理や内部修理の価格が更新されることはありません。