127 lines
4.5 KiB
Transact-SQL
127 lines
4.5 KiB
Transact-SQL
DECLARE @billNo varchar(100)
|
|
SET @billNo = 'FBILL2024040437'
|
|
SET @billNo = 'FBILL2024041172'
|
|
DECLARE @billId int
|
|
SET @billId = 0
|
|
;WITH #财务应收单 AS (
|
|
SELECT t0.FBILLNO AS '财务单据编号'
|
|
,t0.FID,t0e.FENTRYID,t0e.FSRCROWID,t0e.FSEQ
|
|
,t0e_lk.FSBILLID,t0e_lk.FSID
|
|
FROM T_AR_RECEIVABLE t0
|
|
INNER JOIN T_AR_RECEIVABLEENTRY t0e on t0.FID = t0e.FID
|
|
INNER JOIN T_AR_RECEIVABLEENTRY_LK t0e_lk on t0e_lk.FENTRYID = t0e.FENTRYID
|
|
WHERE 1=1
|
|
AND t0e_lk.FSTABLENAME = 't_AR_receivableEntry'
|
|
--AND t0.FBILLNO = @billNo
|
|
AND t0.FID = @billId
|
|
AND t0.FDOCUMENTSTATUS = 'C'
|
|
)
|
|
, #暂估应收单 AS (
|
|
SELECT tt.财务单据编号
|
|
,tt.FID AS '财务ID'
|
|
,tt.FSEQ
|
|
,tt.FENTRYID AS '财务ENTRYID'
|
|
,t0.FBILLNO AS '暂估单据编号'
|
|
,t0.FID AS '暂估ID',t0e.FENTRYID AS '暂估ENTRYID'
|
|
,t0e.FCOSTAMTSUM ,t0e.FBASICUNITQTY
|
|
,CAST(t0e.FCOSTAMTSUM / t0e.FBASICUNITQTY AS decimal(23,6)) AS '暂估成本价'
|
|
,t1.FID AS '暂估冲回ID',t1e.FENTRYID AS '暂估冲回ENTRYID'
|
|
,t1.FBILLNO AS '暂估冲回单据编号'
|
|
,t1e.FCOSTAMTSUM 'FCOSTAMTSUM1',t1e.FBASICUNITQTY 'FBASICUNITQTY1'
|
|
,CAST(t1e.FCOSTAMTSUM / t1e.FBASICUNITQTY AS decimal(23,6)) AS '暂估冲回成本价'
|
|
FROM #财务应收单 tt
|
|
INNER JOIN T_AR_RECEIVABLEENTRY t0e on tt.FSBILLID = t0e.FID AND tt.FSID = t0e.FENTRYID
|
|
INNER JOIN T_AR_RECEIVABLE t0 on t0.FID = t0e.FID
|
|
INNER JOIN T_AR_RECEIVABLEENTRY t1e on t1e.FSRCROWID = t0e.FENTRYID
|
|
INNER JOIN T_AR_RECEIVABLE t1 on t1.FID = t1e.FID
|
|
WHERE 1=1
|
|
AND t0.FDOCUMENTSTATUS = 'C'
|
|
AND t1.FDOCUMENTSTATUS = 'C'
|
|
)
|
|
, #最终数据 AS (
|
|
SELECT t1.*,t0.*
|
|
FROM #暂估应收单 t0
|
|
CROSS APPLY (
|
|
SELECT t3e.FENTRYID AS 'ENTRYID'
|
|
,t1e.FSRCBILLID,t3.FBILLNO--,t3e.FSEQ
|
|
,t3e.FALLAMOUNT,t3e.FALLAMOUNTFOR
|
|
,t3e.FTAXAMOUNT,t3e.FTAXAMOUNTFOR
|
|
,t3e.FNOTAXAMOUNT,t3e.FNOTAXAMOUNTFOR
|
|
--,t3e.FBASICUNITQTY
|
|
,t3e.F_CYG_TECost
|
|
,t3e.F_CYG_TEAmount
|
|
,t3e.F_CYG_TECBCost
|
|
,t3e.F_CYG_TECBAmount
|
|
FROM T_AR_RECMACTHLOG t1
|
|
INNER JOIN T_AR_RECMACTHLOGENTRY t1e on t1.FID = t1e.FID
|
|
INNER JOIN T_AR_RECMACTHLOGENTRY t2e on t2e.FID = t1e.FID
|
|
INNER JOIN T_AR_RECEIVABLE t3 on t3.FID = t1e.FSRCBILLID
|
|
INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID AND t3e.FSEQ = t0.FSEQ
|
|
WHERE 1=1
|
|
AND t2e.FSRCBILLID = t0.财务ID
|
|
AND t2e.FSOURCEFROMID = 'AR_receivable'
|
|
AND t1e.FISADIBILL = 1
|
|
AND t1.FMATCHFIELDNAME = 'FMatchAmount'
|
|
) t1
|
|
)
|
|
--SELECT * FROM #最终数据
|
|
--ORDER BY ENTRYID,FSEQ
|
|
UPDATE t0e SET t0e.F_CYG_TECost = t1.暂估成本价
|
|
,t0e.F_CYG_TEAmount = t1.FCOSTAMTSUM
|
|
,t0e.F_CYG_TECBCost = t1.暂估冲回成本价
|
|
,t0e.F_CYG_TECBAmount = t1.FCOSTAMTSUM1
|
|
FROM T_AR_RECEIVABLEENTRY t0e
|
|
INNER JOIN #最终数据 t1 on t1.ENTRYID = t0e.FENTRYID
|
|
|
|
|
|
--DECLARE @billNo varchar(100)
|
|
--SET @billNo = 'FBILL2024040437'
|
|
----SET @billNo = 'FBILL2024041172'
|
|
--SET @billNo = 'FBILL2024040438'
|
|
--DECLARE @billId int
|
|
--SET @billId = 0
|
|
--;WITH #财务应收单 AS (
|
|
-- SELECT t0.FBILLNO AS '财务单据编号'
|
|
-- ,t0.FID,t0.FISPRICEEXCLUDETAX
|
|
-- ,t0f.FALLAMOUNT,t0.FALLAMOUNTFOR
|
|
-- ,t0f.FNOTAXAMOUNT,t0f.FNOTAXAMOUNTFOR
|
|
-- ,t0f.FTAXAMOUNT,t0f.FTAXAMOUNTFOR
|
|
-- ,t2e.FSRCBILLID
|
|
-- --,t3f.FALLAMOUNT,t3.FALLAMOUNTFOR
|
|
-- --,t3f.FNOTAXAMOUNT,t3f.FNOTAXAMOUNTFOR
|
|
-- --,t3f.FTAXAMOUNT,t3f.FTAXAMOUNTFOR
|
|
-- ,t2e.FISWRITEAMOUNT
|
|
-- FROM T_AR_RECEIVABLE t0
|
|
-- INNER JOIN T_AR_RECEIVABLEFIN t0f on t0.FID = t0f.FID
|
|
-- INNER JOIN T_AR_RECMACTHLOGENTRY t1e on t1e.FSRCBILLID = t0.FID
|
|
-- INNER JOIN T_AR_RECMACTHLOGENTRY t2e on t2e.FID = t1e.FID
|
|
-- WHERE 1=1
|
|
-- AND t0.FBILLNO = @billNo
|
|
-- --AND t0.FID = @billId
|
|
-- --AND t2e.FSRCBILLID != t1e.FSRCBILLID
|
|
-- AND t1e.FSOURCEFROMID = 'AR_receivable'
|
|
-- AND t2e.FISADIBILL = 1
|
|
-- AND t0.FDOCUMENTSTATUS = 'C'
|
|
--)
|
|
--SELECT t0.*
|
|
-- ,t3f.FNOTAXAMOUNT,t3f.FNOTAXAMOUNTFOR
|
|
-- ,t3f.FTAXAMOUNT,t3f.FTAXAMOUNTFOR
|
|
-- ,t3e.FENTRYTAXRATE
|
|
-- ,t3e.FALLAMOUNT,t3e.FALLAMOUNTFOR
|
|
-- ,t3e.FNOTAXAMOUNT,t3e.FNOTAXAMOUNTFOR
|
|
-- ,t3e.FTAXAMOUNT,t3e.FTAXAMOUNTFOR
|
|
-- ,t3e.FALLAMOUNTFOR / (t3e.FENTRYTAXRATE / 100 + 1) --价外税不含税金额
|
|
-- ,t3e.FALLAMOUNTFOR / (t3e.FENTRYTAXRATE / 100 + 1) * t3e.FENTRYTAXRATE / 100 --价外税税额
|
|
-- ,t3e.FALLAMOUNTFOR * (1 - t3e.FENTRYTAXRATE / 100) --价内税不含税金额
|
|
-- ,t3e.FALLAMOUNTFOR * t3e.FENTRYTAXRATE / 100 --价内税税额
|
|
-- ,t0.FISPRICEEXCLUDETAX
|
|
--FROM #财务应收单 t0
|
|
-- INNER JOIN T_AR_RECEIVABLEFIN t3f on t3f.FID = t0.FSRCBILLID
|
|
-- INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3f.FID
|
|
----ORDER BY ENTRYID,FSEQ
|
|
----UPDATE t0e SET t0e.F_CYG_TECost = t1.暂估成本价
|
|
---- ,t0e.F_CYG_TEAmount = t1.FCOSTAMTSUM
|
|
---- ,t0e.F_CYG_TECBCost = t1.暂估冲回成本价
|
|
---- ,t0e.F_CYG_TECBAmount = t1.FCOSTAMTSUM1
|
|
----FROM T_AR_RECEIVABLEENTRY t0e
|
|
---- INNER JOIN #最终数据 t1 on t1.ENTRYID = t0e.FENTRYID |