应付单下推付款单审核未自动核销,手工核销无法过滤出应付单修复SQL参考原创
金蝶云社区-jessie_w
jessie_w
34人赞赏了该文章 156次浏览 未经作者许可,禁止转载编辑于2024年04月19日 18:50:22

业务场景:

应付单下推付款单审核时由于某些异常原因(比如取消核销插件、付款单明细和源单明细订单号或物料编码不匹配、付款用途为预付款等)影响自动核销,审核后未产生核销记录,想手工核销却无法过滤出应付单。


标准流程说明:

应付单下推付款单流程中,付款单保存时会反写付款单的本次付款金额至应付单付款计划的付(退)款单关联金额,在审核时触发应付付款自动核销后会反写应付单的已核销金额。

所以正常情况下,应付单下游如果不存在未审核的付款单,那么应付单的(退)款单关联金额和已核销金额原币是一致的。

手工核销能否过滤出单据是根据单据的付(退)款单关联金额判断!手工核销界面显示的已核销金额也是关联金额!


应收应付核销字段全解析请参考:应收应付核销字段简介及常见问题分析


数据修复方案:

清空由此付款单反写的应付单付款计划的(退)款单关联金额字段,该单据就可正常在手工核销界面过滤

如下SQL语句仅供参考!!!更新前建议做全表备份!!!

--若应付单下游不存在未审核付款单或付款退款单  付退款关联金额=已核销金额原币
MERGE INTO T_AP_PAYABLEPLAN T1 USING (
	SELECT A.FBILLNO,B.FENTRYID,B.FPAYAMOUNTFOR 应付金额,B.FRELATEHADPAYAMOUNT 付退款关联金额,B.FWRITTENOFFAMOUNTFOR 已核销金额原币
	FROM T_AP_PAYABLE A
	LEFT JOIN T_AP_PAYABLEPLAN B ON A.FID=B.FID
	WHERE A.FBILLNO IN ('单据编号')  
) T2 ON (T1.FENTRYID=T2.FENTRYID)
WHEN MATCHED THEN UPDATE SET T1.FRELATEHADPAYAMOUNT=T1.FWRITTENOFFAMOUNTFOR;

注释:如有多个单号同时修复用通过逗号,隔开,例A.FBILLNO IN ('单据编号1','单据编号2')


应收收款核销同理

参考语句:

--若应收单下游不存在未审核收款单或收款退款单  收退款关联金额=已核销金额原币
MERGE INTO T_AR_RECEIVABLEPLAN T1 USING (
	SELECT A.FBILLNO,B.FENTRYID,B.FPAYAMOUNTFOR 应收金额,B.FRELATEHADPAYAMOUNT 收退款关联金额,B.FWRITTENOFFAMOUNTFOR 已核销金额原币 
	FROM T_AR_RECEIVABLE A
	LEFT JOIN T_AR_RECEIVABLEPLAN B ON A.FID=B.FID
	WHERE A.FBILLNO IN ('单据编号')
) T2 ON (T1.FENTRYID=T2.FENTRYID)
WHEN MATCHED THEN UPDATE SET T1.FRELATEHADPAYAMOUNT=T1.FWRITTENOFFAMOUNTFOR;


赞 34