采购订单下推先开票财务应付转换规则使用错误导致关联数量反写错误修复SQL参考原创
5人赞赏了该文章
86次浏览
编辑于2024年06月24日 13:56:35
业务场景:
采购订单下推先开票财务应付时,应使用带“先到票业务”字样的单据转换。
部分用户错误操作,使用了不带该字样的单据转换,不会反写订单先开票数量而是反写关联应付数量,
导致后续入库下推暂估保存提示反写订单关联应付数量超额。
历史期间单据可以对订单的先开票数量及关联应付数量做数据修复,入库单再正常下推保存应付单。
注意事项:
适用于采购订单直接下推应付单均属于先到票业务的业务流程,即除了先到票业务采购订单不存在直接下推应付单的业务流程
如下SQL语句仅供参考!!!更新前建议做全表备份!!!
--数据备份语句参考 SELECT * INTO T_PUR_POORDERENTRY_R_SQLBAK_20230206 FROM T_PUR_POORDERENTRY_R --采购订单关联应付数量更新 关联查询采购订单下推应付单但非先到票业务单据转换 MERGE INTO T_PUR_POORDERENTRY_R T1 USING ( SELECT PO.FBILLNO 采购订单号,PO.FPURCHASEORGID,PO.FDATE 业务日期,PO.FCLOSESTATUS 关闭状态,POE.FENTRYID,POE.FSEQ,POE.FMRPCLOSESTATUS 业务关闭状态,POE.FBASEUNITID 基本单位,POE.FUNITID 采购单位,POE.FSTOCKUNITID 库存单位,POE.FQTY 采购数量,POE.FSTOCKQTY 库存数量,POE.FSTOCKBASEQTY 库存基本数量,POER.FBASESTOCKINQTY 累计入库数量基本,POER.FSTOCKINQTY 累计入库数量,POE.FBASEUNITQTY 采购基本数量,POER.FBASEAPJOINQTY 关联应付数量计价基本,POER.FSTOCKBASEAPJOINQTY 关联应付数量库存基本,POER.FBASEFINAPQTY 先收票数量基本单位,POER.FSTOCKBASEFINAPQTY 先收票数量库存基本,POER.FAPJOINAMOUNT 关联应付金额 ,ISNULL(H.FBASICUNITQTY,0) FBASICUNITQTY,ISNULL(H.FSTOCKBASEQTY,0) FSTOCKBASEQTY FROM T_PUR_POORDER PO LEFT JOIN T_PUR_POORDERENTRY POE ON PO.FID=POE.FID LEFT JOIN T_PUR_POORDERENTRY_R POER ON POE.FENTRYID=POER.FENTRYID LEFT JOIN ( SELECT C.FSID,SUM(C.FBASICUNITQTY) FBASICUNITQTY,SUM(C.FSTOCKBASEQTY) FSTOCKBASEQTY FROM T_AP_PAYABLE A LEFT JOIN T_AP_PAYABLEENTRY B ON A.FID=B.FID LEFT JOIN T_AP_PAYABLE_LK C ON B.FENTRYID=C.FENTRYID LEFT JOIN T_AP_PAYABLE_O D ON A.FID=D.FID WHERE C.FRULEID = 'AP_PurOrderToPayable' AND FSTABLENAME='t_PUR_POOrderEntry' AND D.FWBOPENQTY=0 GROUP BY C.FSID ) H ON POE.FENTRYID=H.FSID WHERE ISNULL(H.FBASICUNITQTY,0)<>0 AND POER.FBASEFINAPQTY<>ISNULL(H.FBASICUNITQTY,0) --AND PO.FBILLNO IN('CGDD000001') --通过单据编号查询 ) T2 ON (T1.FENTRYID=T2.FENTRYID) WHEN MATCHED THEN UPDATE SET T1.FBASEFINAPQTY=T1.FBASEFINAPQTY+t2.FBASICUNITQTY,t1.FSTOCKBASEFINAPQTY=t1.FSTOCKBASEFINAPQTY+t2.FSTOCKBASEQTY,t1.FBASEAPJOINQTY=t1.FBASEAPJOINQTY-t2.FBASICUNITQTY,t1.FSTOCKBASEAPJOINQTY=t1.FSTOCKBASEAPJOINQTY-t2.FSTOCKBASEQTY;
推荐阅读