品目/倉庫原価設定を使用時の LIFO/FIFO スタックの機能
これらの例では、スタック内の行が数量と原価で識別されます。実際には、各行には、日付と原価明細および勘定科目(材料費、労務費、固定間接費、変動間接費、外注費)も含まれます。勘定は、最初の例には含まれていますが、以降の例からは削除されています。
例
倉庫 MAIN は 80 の手持在庫を含み、倉庫 DIST は 20 の手持在庫を含みます。この例では、所定の品目に対して、5 つの別個のエントリを含む 1 つのスタックを使用しています。
数量 | 勘定 | 原価 |
---|---|---|
20 | 1200 | $5.00 |
20 | 1200 | $7.00 |
20 | 1200 | $4.50 |
20 | 1300 | $6.50 |
20 | 1200 | $7.00 |
処理後は、2 つのスタックができます。
スタック #1:配賦
数量 | 勘定 | 原価 |
---|---|---|
4 | 1200 | $5.00 |
4 | 1200 | $7.00 |
4 | 1200 | $4.50 |
4 | 1300 | $6.50 |
4 | 1200 | $7.00 |
スタック #2:メイン
数量 | 勘定 | 原価 |
---|---|---|
16 | 1200 | $5.00 |
16 | 1200 | $7.00 |
16 | 1200 | $4.50 |
16 | 1300 | $6.50 |
16 | 1200 | $7.00 |
DIST には在庫の 20% があったので、DIST のスタックは、各行の 20% を受け取りました。MAIN は、その手持正味数の 80% と一致する残りの数量を受け取りました。品目の合計は、引き続き原価ごとに同じ数のエントリを含んでいます。したがって、在庫の原価には影響はなく、仕訳記帳の必要はありません。
数のまるめ
プログラムは、デフォルト倉庫以外の全ての倉庫を処理し、デフォルト倉庫は最後の切り札にします。数量は各倉庫の処理時にまるめられ、各倉庫には整数が割り当てられます。残りは、デフォルト倉庫に入れられます。分数については、「分数の処理方法」 を参照してください。
FIFO 品目のまるめの例:
倉庫 | 手持在庫数 |
---|---|
メイン | 70 |
配賦 | 30 |
初期スタック
数量 | 原価 |
---|---|
25 | $5.00 |
25 | $7.00 |
25 | $4.50 |
25 | $6.50 |
整数にまるめると、次の配分になります。
DIST 用の 1 スタック
数量 | 原価 |
---|---|
8 | $5.00 |
8 | $7.00 |
8 | $4.50 |
6 | $6.50 |
MAIN 用の別のスタック
数量 | 原価 |
---|---|
17 | $5.00 |
17 | $7.00 |
17 | $4.50 |
19 | $6.50 |
DIST は、在庫全体の 30% を含むので、各スタック行の 30% を取得します。25 の 30% は 7.5 であり、8 にまるめられます。残り (17) は MAIN に配分されます。この例では、DIST が上限 30 に達するので、最後の行は 6 しか含みません。これは、他の行のまるめのためです。残りは MAIN に配分され、全てが調整されます。
FIFO は上から下の順序で処理され、LIFO は下から上の順序で処理されます。上の例では、DIST の 6 と MAIN の 19 がリストの先頭になるので、出庫時に使用される最初の行になります。
全ての倉庫間のバランスの保持
上の例が示すように、倉庫の割り当て数量の追跡は重要です。これによって、残り数量を再割り当てするために、スタックの 2 つ目のパススルーが必要となることがあります。
全ての倉庫間での例:
倉庫 | 手持在庫数 |
---|---|
メイン | 70 |
配賦 | 25 |
DIS1 | 5 |
処理後:
元のスタック数量 | スタック原価 | DIS1 数量 | DIST 数量 | MAIN 数量 |
---|---|---|---|---|
7 | $5.00 | 0 | 2 | 5 |
1 | $7.00 | 0 | 0 | 1 |
10 | $5.50 | 1 | 3 | 6 |
72 | $6.00 | 4 | 18 | 50 |
3 | $5.00 | 0 | 1 | 2 |
2 | $7.50 | 0 | 1 | 1 |
5 | $7.00 | 0 | 0 | 5 |
最後の行では、通常、DIST 倉庫の数量は 1 になりますが、そうなると、DIST の合計を超過してしまうので、残りの 5 が MAIN に配分されます。
次に、手持在庫数の配分が若干異なる場合を検討します。
倉庫 | 手持在庫数 |
---|---|
メイン | 69 |
配賦 | 25 |
DIS1 | 6 |
最後のスタック行の引当は若干異なります。
処理後:
元のスタック数量 | スタック原価 | DIS1 数量 | DIST 数量 | MAIN 数量 |
---|---|---|---|---|
7 | $5.00 | 0 | 2 | 5 |
1 | $7.00 | 0 | 0 | 1 |
10 | $5.50 | 1 | 3 | 6 |
72 | $6.00 | 4 | 18 | 50 |
3 | $5.00 | 0 | 1 | 2 |
2 | $7.50 | 0 | 1 | 1 |
5 | $7.00 | 1 | 0 | 4 |
DIST は、数量 1 を取ることができず、今回 MAIN は 4 しか取れません。このシナリオでは、システムは 2 つ目のパススルーを行い、手持在庫数を超過していない最初の倉庫を見つけ、全ての数量が割り当てられるか、その倉庫がその手持数を超過するまで、あるだけの数量を追加します。この処理は、元のスタックからの残り数量全てを割り当てるまで続きます。
分数
一部の品目の在庫数は、整数ではありません。したがって、3.35 という数は有効でありえます。上記のまるめのセクションで説明したように、処理時には、数量は、整数で倉庫に配分されます。最後に、残りがデフォルト倉庫に配分されます。
例:
倉庫 | 手持在庫数 |
---|---|
メイン | 70 |
配賦 | 30.5 |
初期スタック
数量 | 原価 |
---|---|
25 | $5.00 |
25.5 | $7.00 |
25 | $4.50 |
25 | $6.50 |
整数にまるめた結果は以下の通りです。
倉庫 | 数量 | 原価 |
---|---|---|
メイン | 17 | $5.00 |
17.5 | $7.00 | |
17 | $4.50 | |
18.5 | $6.50 | |
配賦 | 8 | $5.00 |
8 | $7.00 | |
8 | $4.50 | |
6.5 | $6.50 |
最初は、整数だけが DIST に配分され、残りが MAIN に配分されます。$6.50 の最後の値を処理するときは、まず、6 だけが DIST に配分され、残りが 19 になります。ただし、MAIN には 18,5 にしか空きがないので、余分な 0.5 が残されます。
したがって、複数勘定に関するセクションで説明したように、スタックで 2 つ目のパススルーが行われ、残った 0.5 は DIST に配分されます。その結果、全てが正しく合計されます。
負の数
負の数を処理することが必要な場合があります。手持在庫が全て負の場合は、上記の例でこの状況がカバーされます(符号だけが反対になります)。ただし、混合シナリオを含む例を少し説明する必要があります。混合シナリオとは、正の数量を含む倉庫と負の数量を含む倉庫があるシナリオです。
負の数の例
品目スタック
数量 | スタック原価 |
---|---|
7 | $5.00 |
10 | $5.50 |
3 | $5.00 |
品目倉庫数量
倉庫 | 手持在庫数 |
---|---|
メイン | 3 |
配賦 | 24 |
DIS1 | -7 |
品目の全体の数量は正なので、スタック内に負のエントリはありません。倉庫の比率割当は、20 の品目の正味手持数量に基づいています。スタックは、ここでも、比率に基づいて 3 つのスタックに分割されます。
倉庫 | 手持在庫数 | 原価 |
---|---|---|
メイン | 1 | $5.00 |
2 | $5.50 | |
0 | $5.00 | |
配賦 | 8 | $5.00 |
12 | $5.50 | |
4 | $5.00 | |
DIS1 | -2 | 5.00% |
-4 | $5.50 | |
-1 | $5.00 |
残りは全て MAIN に入ります(この場合は負)。たとえば、$5.50 の中間エントリについて検討します。当初、この行には 10 が含まれていました。2 は DIS1 に割り当てられ、8 が残りました。12 が DIST に割り当てられ、-4 が残りました。その残余結果が MAIN に割り当てられます。