接到一个比较棘手的情况,先描述下现状和遇到的问题:
1、仓库2019-04-11手工制作了一张产品入库单,单据日期误填到了2020-04-11,当时没发现,审核也通过了(审核更新库存);
2、这个入库单的物料库存,4月份和5月份都基本上销售出库完了,涉及到跨月及批次号先入先出,也没办法删单处理;
3、目前4月份也已经结账,无法进行反结账处理,财务的4月份结账也没发现。
根本原因:
金蝶K3库存是不管单据日期的,系统库存更新逻辑是只要单据保存/审核就会进行库存的扣减/增加,所以入库单做到未来的日期,系统不会进行校验的,会继续更新库存;
账务处理方案:以下方法只适用于临时补救,大家还是要养成制单认真检查的习惯。
一、前台调整法:
利:比较保险;
弊:操作时,业务用户所有出入库的动作需要暂停;5月份产品成本核算会比实际低;4月份比实际高;
1、用原来那张做错的入库单,复制一张新的产品入库单并审核,先将这个入库单的库存给人为加进来;
2、反审核原来那张错误的入库单,这个时候有库存了,可以进行反审核操作;
3、修改原来的入库单的制单日期,改为本月的日期后,再进行审核;
4、反审核并删掉第一步复制的新单据,完成调整;
5、找出之前的入库纸单,作废,重新补打一张,作为5月份财务凭证记录;
6、5月份结账时,出现差异时,手工做一张成本调整单进行成本调整;
二、后台调整法(计入本月):
利:便捷快速
弊:后台有风险,操作需谨慎,请先备份账套再操作;5月份产品成本核算会比实际低;4月份比实际高;
1、将错误的入库单的制单日期和审核日期都改成本月;
UPDATE ICStockBill set fdate='2019-05-11 00:00:00.000',FCheckDate='2019-05-11 00:00:00.000' WHERE FBillNo='CIN002124'
2、找出之前的入库纸单,作废,重新补打一张,作为5月份财务凭证记录;
3、5月份结账时,出现差异时,手工做一张成本调整单进行成本调整;
二、后台调整法(计入实际发生月份):
利:便捷快速;与实际业务相符;
弊:后台有风险,操作需谨慎,请先备份账套再操作;4月份会虚增一笔入库成本,需要在5月份进行手工成本调整;
1、将错误的入库单的制单日期和审核日期都改成实际发生月份的日期;
UPDATE ICStockBill set fdate='2019-04-11 00:00:00.000',FCheckDate='2019-04-11 00:00:00.000' WHERE FBillNo='CIN002124'
2、5月份结账时,必须手工做一张成本调整单进行成本调整;
写在最后:
1、调整后,4-5月份整体产品成本核算是平的;
2、可以在icstockbill表上加一个触发器,在单据插入或者更新的时候,检验下制单日期是否在服务器的时间所在月份最近的2个月内(实际业务场景还是有这种需求的),如果不在,进行限制,这样能够较大程度避免误操作制单日期的问题。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--防止出入单据日期输错,如2019-04-01 输成2020-04-01,导致长时间的收发报表结存为负
ALTER TRIGGER [dbo].[ICStockBill_insert_fdatecheck]
ON [dbo].[ICStockBill]
FOR insert,update
AS
SET NOCOUNT ON
declare
@fdate datetime
declare
@day_diff int
select @fdate=a.fdate
from ICStockBill a
inner join inserted b on a.finterid=b.finterid
SELECT @day_diff=DATEDIFF(month,(SELECT CONVERT(VARCHAR(10),GETDATE(),120)),@fdate)
IF @day_diff>2
BEGIN
RAISERROR('制单日期不能超后2月!',18,18)
ROLLBACK TRAN
END
3、如果要彻底杜绝,且不存在前台人为调整制单日期的需求,可以直接把制单日期这个字段给限制编辑,一劳永逸;
--调整入库单日期字段锁定
update ICTemplate SET FEnable=0 WHERE FID='a01' AND FCtlIndex=0--外购入库
update ICTemplate SET FEnable=0 WHERE FID='a02' AND FCtlIndex=0--产品入库
update ICTemplate SET FEnable=0 WHERE FID='a05' AND FCtlIndex=0--委外加工入库单
update ICTemplate SET FEnable=0 WHERE FID='a97' AND FCtlIndex=0--其他入库
--调整出库单日期字段锁定
update ICTemplate SET FEnable=0 WHERE FID='B01' AND FCtlIndex=0--销售出库
update ICTemplate SET FEnable=0 WHERE FID='B04' AND FCtlIndex=0--生产领料单
update ICTemplate SET FEnable=0 WHERE FID='B08' AND FCtlIndex=0--委外加工出库单
update ICTemplate SET FEnable=0 WHERE FID='B09' AND FCtlIndex=0--其他出库单
update ICTemplate SET FEnable=0 WHERE FID='D01' AND FCtlIndex=0--调拨单