工单在制成本明细表与总账对账
成本计算之后要与总账对帐,一般是对生产成本科目的期末余额与成本系统的期末在制金额。成本系统的期末在制通过工单在制成本明细表打印期末在制得到,总账里面的成本科目通过跑科目余额表来查看。
成本与总账对不上,一般说来主要是成本计算的有问题,导致单据抛转分录后与总账对不上,另外就是成本计算没有问题,但是单据抛转有问题,比如单据漏抛等等,这里主要说成本计算的问题。
检查成本是否算的正确,理论的公式是:期初在制+本期投入=本期入库+期末在制,这个恒等式就相当于会计恒等式一样,相当重要,一切查账的基础都是从此而来。下面就从期初在制,本期投入,本期入库及期末在制四个方面来说明。
1. 期初在制
期初在制一般是上期期末在制余额结转过来,一般金额是和总账里面生产成本科目本期的期初金额一致,如果不一致则要检查这里金额是否和上期期末金额一致,一般如果如果上期有指定结束的工单存在期末在制而没有进行成本差异调整,就会导致这部分期末在制不能结转到本月的期初在制。
2. 本期投入
一般成本计算出错的就是这里,本期投入分为材料,人工,制费,加工。
这里要注意成本参数里面是否勾选半成品投入归入上阶材料成本。
先从交易明细中计算本期存货系统投入的材料,人工,制费,加工。
SELECT
TE011,SUM(LA017*LA005*-1),sum(LA018*LA005*-1),sum(LA019*LA005*-1),sum(LA020*LA005*-1)
FROM MOCTE LEFT JOIN MOCTC ON TC001=TE001 AND TC002=TE002
LEFT JOIN INVLA ON TE001=LA006 AND TE002=LA007 AND TE003=LA008
LEFT JOIN CMSMC ON TE008=MC001 AND MC004='1'
LEFT JOIN CSTTA ON TE011=TA003 AND TE012=TA004 AND TA002='200808'
WHERE TC009='Y' AND TE016 IN ('1','3') AND TC003>='20080801' AND TC003
GROUP BY TE011'
(可以在SELECT, 和GROUP 后面分别加TE012,既可以按照工单单别单号汇总) 这里会按照工单单别汇总存货系统本期投入的材料成本,下阶人工,下阶制费,下阶加工。
然后从成本里面计算本期投入的本阶材料,本阶人工,本阶制费,本阶加工,下阶人工 ,下阶制费 ,下阶加工 。也是按照工单单别汇总
select
TA003,
sum(TA015),SUM(TA016),SUM(TA017),SUM(TA018),SUM(TA019),SUM(TA020),SUM(TA021) FROM CSTTA WHERE TA002='200808'
GROUP BY TA003
(可以在SELECT 和GROUP 后卖弄分别加TA004,既可以按照工单单别单号汇总) 这样对于每个单别,存货里面算出的本期投入人工等于下阶人工,制费等于下阶制费,加工等于下阶加工等于本阶加工,
在参数半成品投入归上阶材料 勾选的情况下
本期存货系统投入的材料,人工,制费,加工的总和等于成本系统本期投入的材料成本。 本阶人工和本阶制费分别等于汇总录入工作中心成本分摊的人工和制费。
在参数没有勾选的情况下,
存货系统投入的材料成本等于本阶材料成本,本阶人工减去下阶人工等于工作中心分摊的人工,本阶制费减去下阶制费等于工作中心分摊的制费。
这里就是本期投入的所有必须相等的金额,如果有一个不等,则说明此工单单别下有单据有问题,则在语句里加入单号,并在WHERE 条件里面增加一个单别的限定条件,则可以对比每一个工单,然后找出有问题的工单再查工单的具体问题。
一般本期投入有问题,比较多的原因是循环领退料,工单的完工日期和实际的生产入库日期不同,这个需要具体问题具体对待,可以通过成本异常检测表来看,这里就不详细说明。
3. 本期投入
本期投入的计算比较复杂,简单归纳可分为两种正常完工和非正常完工(包含指定完工和生产中)
正常完工,在制约量为0,在制金额也为0,本期入库=期初在制+本期投入
非正常完工,会按照在制约量的计算公式计算在制约量,然后根据在制约量和本期入库的数量来计算在制金额和本期入库的金额。
下面是从存货系统计算本期实际入库的材料,人工,制费,和加工的语句
SELECT
TG014,
SUM(LA017*LA005),sum(LA018*LA005),sum(LA019*LA005),sum(LA020*LA005) FROM MOCTG
LEFT JOIN MOCTF ON TF001=TG001 AND TF002=TG002
LEFT JOIN INVLA ON TG001=LA006 AND TG002=LA007 AND TG003=LA008
LEFT JOIN CMSMC ON TG010=MC001 AND MC004='1'
LEFT JOIN CSTTA ON TG014=TA003 AND TG015=TA004 AND TA002='200808'
WHERE TF006='Y' AND TF003>='20080801' AND TF003
group by TG014
union all
SELECT TI013,
SUM(LA017*LA005),sum(LA018*LA005),sum(LA019*LA005),sum(LA020*LA005) FROM MOCTI
LEFT JOIN MOCTH ON TH001=TI001 AND TH002=TI002
LEFT JOIN INVLA ON TI001=LA006 AND TI002=LA007 AND TI003=LA008
LEFT JOIN CMSMC ON TI010=MC001 AND MC004='1'
LEFT JOIN CSTTA ON TI013=TA003 AND TI014=TA004 AND TA002='200806'
WHERE TH023='Y' AND TH003>='20080601' AND TH003
group by TI013
union all
SELECT TL015,
SUM(LA017*LA005),sum(LA018*LA005),sum(LA019*LA005),sum(LA020*LA005) FROM MOCTL
LEFT JOIN MOCTK ON TK001=TL001 AND TK002=TL002
LEFT JOIN INVLA ON TL001=LA006 AND TL002=LA007 AND TL003=LA008
LEFT JOIN CMSMC ON TL013=MC001 AND MC004='1'
LEFT JOIN CSTTA ON TL015=TA003 AND TL016=TA004 AND TA002='200806'
WHERE TK021='Y' AND TK003>='20080601' AND TK003
group by TL015
这里也是分单别汇总,包括了生产入库和委外进退货,也可以在后面加单号来按单号汇总。
查询出的本期入库金额主要是为了对比来计算本期在制的金额是否计算正确。
4. 本期在制。
一般在当月正常完工的工单,其期末在制为0,这个完工是由工单状态码和工单完工日期来判断,如果实际最后的入库单是在本月,而完工日显示的是下个月,则需要对工单做重计,然后重新计算,否则会出错。
指定完工和未完工的工单是有期末在制的,其在制如何计算,都有相关的文档,大家可以自己去看。
这里注意的有几点:(前提期初在制为0,如果有期初在制,计算的金额会加入这部分。)
【1】. 指定完工而没有做多余的退料,这部分材料会算入到在制;
【2】. 从存货仓领料,而退入到非存货仓,这部分材料还是会计算入本期投入,如果工单未完工或者指定完工,这部分会计算在制的;
【3】. 当期全数报废而工单指定完工,本期投入的材料会算入在制;
【4】. 当期全数报废而工单正常完工,期末在制为0,本期投入需要手动做调整单调整并切凭证。
【5】. 跨月领退料,即上个月全数领料,不做生产,本月又全数退料,如果材料的月加权成本不一样,会有一笔差额计入期末在制。
【6】. 之前提过的一点,指定完工的期末在制需要做成本差异调整,并对调整的金额手动做调整单和凭证分别在存货和总账做调整。
一般来说经过这4个方面的检查,如果计算出来的期初在制+本期投入=本期入库+期末在制,则说明成本计算没有问题,这个时候如果还有余额对不上,则说明单据抛转的有问题,一般会是:单据性质的分录设置和单据分录码已勾选而没有对应的底稿和凭证。分录性质设置问题的比较少见,一般期初上线这个就是顾问帮助设置好的,除非客户中途修改,更改过设置会出现。单据抛转的问题就比较多,这种时候如果检查出是这个问题,就需要还原了重新再抛转。
下面简要介绍一下如何查看存货里面工单系统单据抛转金额的情况以及在工单单别关联下查询。
--从存货INVLA 中查询领退料和生产入库的金额
SELECT
LA006,SUM(LA017*LA005*-1),sum(LA018*LA005*-1),sum(LA019*LA005*-1),sum(LA020*LA005*-1)
FROM INVLA INNER JOIN INVMB ON MB001=LA001
INNER JOIN CMSMC ON MC001=LA009
LEFT JOIN INVMA ON MA002=MB005
WHERE LA004>='20080801' AND LA004
AND MC004=1
GROUP BY LA006
ORDER BY LA006
--将前面查询领料和入库的语句中将工单单别改成领退料单别和入库进货单别
SELECT
TE001,SUM(LA017*LA005*-1),sum(LA018*LA005*-1),sum(LA019*LA005*-1),sum(LA020*LA005*-1)
FROM MOCTE LEFT JOIN MOCTC ON TC001=TE001 AND TC002=TE002
LEFT JOIN INVLA ON TE001=LA006 AND TE002=LA007 AND TE003=LA008
LEFT JOIN CMSMC ON TE008=MC001 AND MC004='1'
LEFT JOIN CSTTA ON TE011=TA003 AND TE012=TA004 AND TA002='200808'
WHERE TC009='Y' AND TE016 IN ('1','3') AND TC003>='20080801' AND TC003
GROUP BY TE001
ORDER BY TE001
--(入库和委外进退货的语句可以做同样的修改)
--从分录底稿中查询分录生成的金额
--假设查询生产成本-材料,其科目为500101
SELECT TB013,SUM(TB007*TB004) FROM AJSTA INNER JOIN AJSTB ON TA001=TB001 AND TA002=TB002
WHERE TA006>='20080801' AND TA006
GROUP BY TB013
ORDER BY TB013
--(这些语句都是存货对总账的语句,只是将其中的条件做相应的修改即可用了)
此外,一般成本计算的流程是先做月底成本计价,然后做计算生产成本,在计算完生产成本之后就不要在做月底成本计价了,因为如果有返工领退料和返工入库,前后两次算的月加权成本会不一样,导致最后出来的数据就不对,如果做了月底成本计价,那就得再做一次计算成本了。