使用物料/仓库成本核算时,后进先出/先进先出堆栈功能如何发挥作用

如果您选择跟踪物料/仓库级别的成本,现有后进先出/先进先出堆栈将根据“物料仓库”数量按比例划分。每个现有堆栈都由用于具有在库量的“物料仓库”的新堆栈所替代。本主题提供了示例。

在这些示例中,堆栈中的行将由数量和成本标识。事实上,每一行也都包含日期、成本细分和科目编号(物料、人工、固定间接成本、可变间接费和外协费用)。为便于说明,第一个示例中包括了科目,但是后续示例中将删除科目。

例如

仓库 MAIN 的在库量为 80,仓库 DIST 的在库量为 20。该示例为一项物料使用一个堆栈,带有五条单独分录。

数量 科目 成本
20 1200 $5.00
20 1200 $7.00
20 1200 $4.50
20 1300 $6.50
20 1200 $7.00

处理后,现在共有两个堆栈。

堆栈 #1:DIST

数量 科目 成本
4 1200 $5.00
4 1200 $7.00
4 1200 $4.50
4 1300 $6.50
4 1200 $7.00

堆栈 #2:MAIN

数量 科目 成本
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% 匹配。物料的合计仍然与每项成本的分录数量相同。但是,它不影响存货的成本,并且不要求日记账分录。

注意: 这会产生一个问题:假设客户使用科目编号区分不同的仓库会怎么样?在上面的示例中,如果科目 1200 用于 MAIN,而科目 1300 用于 DIST,堆栈可能不会如预期向后显示,但所有内容最终都将通过科目平衡。

舍入数量

程序将处理缺省仓库以外的全部仓库,保存最后值。在每个仓库的处理期间,数量将被舍入,导致每一个仓库都是完整数量。任何剩余数量都置入缺省仓库。有关分散数量的信息,请参见“处理分散数量”。

FIFO 物料舍入示例:

仓库 在库量
MAIN 70
DIST 30

初始堆栈

数量 成本
25 $5.00
25 $7.00
25 $4.50
25 $6.50

舍入为整数将导致以下分摊:

DIST 中一项堆栈

数量 成本
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 堆栈,然后获得平衡。

先进先出指从顶到底处理,后进先出是从底到顶处理。在以上示例中,列表中的第一项为 DIST - 6、MAIN - 19,但是存货发放后,第一行将继续消耗。

维护全部仓库中的余量

如上例所示,跟踪仓库中已分配的数量非常重要。这可能指示第二次经过堆栈以重新分配任何剩余数量。

遍布全部仓库的示例:

仓库 在库量
MAIN 70
DIST 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 堆栈。

注意: 当堆栈行产生零数量时,将不会创建一条记录。保留数量为零的堆栈行是毫无用途的。

现在,假设综合在库量的少许差异:

仓库 在库量
MAIN 69
DIST 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。在该场景中,系统将采用第二次经过并查找未超出在库量的第一个仓库,添加足够数量以使各项物料分配怠尽或仓库超出其在库量。该过程将一直继续,直到原始堆栈中的全部剩余数量分配完毕。

分散数量

部分物料未以完整数量存储。因此,数量 3.35 也同样有效。如舍入部分中所述,完整数量在处理期间置入仓库。任何剩余数量都置入缺省仓库。

例如:

仓库 在库量
MAIN 70
DIST 30.5

初始堆栈

数量 成本
25 $5.00
25.5 $7.00
25 $4.50
25 $6.50

舍入到整数的结果:

仓库 数量 成本
MAIN 17 $5.00
17.5 $7.00
17 $4.50
18.5 $6.50
DIST 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 无处安放。

因此,根据多科目部分中的讨论,将在堆栈中进行第二次传递,剩余 0.5 进入 DIST。从而,使所有数量均正确添加。

负数量

用户很可能遇到需要处理负数量的情况。如果所有对象的在库量均为负值,以上示例仍然适用(只需要转换符号即可)。但是,部分带有混和场景的示例,仍需加以说明。混和场景将被定义为带有部分仓库负值和部分仓库正值的场景。

负数量示例

注意: 此过程将舍入负值,因此 -7.5 变为 -8。

物料堆栈

数量 堆栈成本
7 $5.00
10 $5.50
3 $5.00

物料仓库金额

仓库 在库量
MAIN 3
DIST 24
DIS1 -7

因为物料的综合数量为正值,所以在堆栈中不存在负值分录。仓库百分比分配基于物料的净在库量 20。该堆栈将根据百分比再次细分为以下三个堆栈:

仓库 在库量 成本
MAIN 1 $5.00
2 $5.50
0 $5.00
DIST 8 $5.00
12 $5.50
4 $5.00
DIS1 -2 %5.00
-4 $5.50
-1 $5.00

全部剩余数量进入 MAIN,在此例中为负值。例如,假设中间分录为 $5.50。最初该行的数量为 10。其中两个分配给 DIS1,剩余 8 个。12 个分配给 DIST,剩余 -4。该剩余结果会进入 MAIN。

注意:即使在混和场景中,每个堆栈仍必须包含所有正值或所有负值。SyteLine 从不创建同时带有正值和负值的单一堆栈。