应付单下推付款单审核未自动核销,手工核销无法过滤出应付单修复SQL参考原创
34人赞赏了该文章
248次浏览
编辑于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;