业务背景
因之前下推过应收单并进行提交审核,但是因为种种原因需要把应收单删除,删除应收单时,因为某种原因之前应收单反写到销售订单和销售合同上的关联应收数量没有及时清空,导致下次下推应收单保存和审核时提示关联应收数量超额,无法进行保存和审核操作。
解决思路
先定位出是哪种反写规则报的提示,找到时确定反写字段,再从BOS平台中的数据模型中确定后台表及字段
数据库操作
--查询订单与应收单的反写关联字段
SELECT
a.fid,
d.fentryid,
B.FJoinOrderAmount 关联应收金额订单,
C.FBASEARQTY 累计应收数量销售基本,
C.FARAMOUNT 累计应收金额,
C.FBaseARJoinQty 关联应收数量计价基本,
C.FSalBaseARJoinQty 关联应收数量销售基本,
C.FStockBaseARJoinQty 关联应收数量库存基本,
D.FBASEFINARQTY 先开票数量计价基本,
D.FSALBASEFINARQTY 先开票数量销售基本 --,E.*
FROM
T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID
INNER JOIN T_SAL_ORDERENTRY_R C ON C.FID = A.FID
INNER JOIN T_SAL_ORDERENTRY_E D ON D.FID = A.FID
INNER JOIN T_SAL_ORDERENTRY E ON E.FID = A.FID
AND e.FENTRYID = d.FENTRYID
AND c.FENTRYID = e.fentryid
WHERE
A.FBILLNO = 'XXX'
--备份相关表
SELECT
* INTO T_SAL_ORDERENTRY_R_XXX_20230314
FROM
T_SAL_ORDERENTRY_R
SELECT
* INTO T_SAL_ORDERFIN_XXX_20230314
FROM
T_SAL_ORDERFIN
--更新反写关联字段
--UPDATE T_SAL_ORDERENTRY_R
SET FBASEARQTY = 0,
FARAMOUNT = 0,
FBaseARJoinQty = 0,
FSalBaseARJoinQty = 0,
FStockBaseARJoinQty = 0
WHERE
fentryid = XXX
--UPDATE T_SAL_ORDERFIN
SET FJoinOrderAmount = 0
WHERE
fid = XXX
--备份表
select * into T_CRM_CONTRACTENTRY_R_zhengyilun20230314 from T_CRM_CONTRACTENTRY_R
--查找反写字段
select c.fentryid,c.FARBASEUNITQTY,c.FBASEARJOINQTY,c.FBASEFINARQTY,c.FSALBASEFINARQTY,*
from T_CRM_CONTRACT a
left join T_CRM_CONTRACTentry b on a.fid=b.FID
left join T_CRM_CONTRACTENTRY_R c on c.fentryid=b.fentryid
--left join T_CRM_CONTRACTentry_lk d on d.fentryid=b.fentryid
where a.fbillno='XXX'
--清除销售合同的数据
--update T_CRM_CONTRACTENTRY_R set FARBASEUNITQTY=0 where fentryid=XXX
3.执行以上操作,应收单就可以正常保存和审核了。
推荐阅读