Files
GateDge2023_ljy/05.长园/CYG/销售合同数据计算/20241226.sql
PastSaid 3d15fd4b7e a
2025-01-01 08:21:58 +08:00

129 lines
4.7 KiB
SQL

;WITH # AS (
SELECT t1.FSALES
,SUM(t1e_f.FALLAMOUNT_LC) '累计销售订单本位币'
,SUM(t1e.F_CYG_OPENTOTAL) AS '公开价小计'
,SUM(t1e.F_CYG_OUTSOURCINGTOTAL) AS '外购价小计'
,SUM(t1e.F_CYG_MOUNTINGTOTAL) AS '安装费小计'
,SUM(t1e.F_CYG_COSTTOTAL) AS '成本小计'
FROM T_SAL_ORDER t1
INNER JOIN T_SAL_ORDERENTRY t1e on t1e.FID = t1.FID
INNER JOIN T_SAL_ORDERENTRY_F t1e_f on t1e_f.FENTRYID = t1e.FENTRYID
WHERE 1=1
AND t1.FDOCUMENTSTATUS = 'C'
AND t1.F_CYG_CHECKBALANCE != '1'
AND t1e.F_CYG_CHECKBALANCE1 != '1'
AND t1.FBILLTYPEID != 'a300e2620037435492aed9842875b451'
AND t1e.FMRPTERMINATESTATUS != 'B'
GROUP BY t1.FSALES
)
SELECT t1.*
,t2.
,t3.
INTO #
FROM # t1
OUTER APPLY (
SELECT SUM(t3e.FALLAMOUNT) AS '累计发货本位币'
FROM T_AR_RECEIVABLE t3
INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID
WHERE t1.FSALES = t3.FSALES
AND t3.FSETACCOUNTTYPE = '2'--立账类型:暂估
AND t3.FDOCUMENTSTATUS = 'C'
AND t3.FBYVERIFY = '0'
GROUP BY t3.FSALES
) t2
OUTER APPLY (
SELECT SUM(t3e.FALLAMOUNT) AS '累计开票金额'
FROM T_AR_RECEIVABLE t3
INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID
WHERE t1.FSALES = t3.FSALES
AND t3.FSETACCOUNTTYPE = '3'--立账类型:财务
AND t3.FDOCUMENTSTATUS = 'C'
AND CHARINDEX('-',t3.FBILLNO) = 0
GROUP BY t3.FSALES
) t3
;WITH # AS (
SELECT t4.FOldFId
,CAST(t4.FJSONDATA AS nvarchar(4000)) AS 'FJSONDATA'
,ROW_NUMBER() OVER (PARTITION BY t4.FOldFId ORDER BY t4.FVERSION DESC) RN
FROM T_SCM_BILLCHANGEVERSIONS t4
WHERE 1 = 1
AND t4.FFormId = 'CRM_Contract'
AND t4.FACTIVESTATUS != 'A'
)
,# AS (
SELECT t0.FID,t0.FBILLNO,t0.F_CYG_SALESNUMBER
,t0.FNAME as FName
,t0.FDOCUMENTSTATUS
,t0.F_CYG_ContractNoDL
,'A' AS 'FFORBIDSTATUS'
,t0f.FCONTRACTAMOUNT_LC AS '合同金额'
,ISNULL(t4.FCONTRACTAMOUNT_X,t0f.F_CYG_CONTRACTCHANGE) AS '合同变化金额'
,ISNULL(t1.,0) AS '累计销售订单本位币'
,ISNULL(t1.,0) AS '公开价小计'
,ISNULL(t1.,0) AS '外购价小计'
,ISNULL(t1.,0) AS '安装费小计'
,ISNULL(t1.,0) AS '成本小计'
,ISNULL(t1.,0) AS '累计发货本位币'
,ISNULL(t1.,0) AS '累计开票金额'
FROM T_CRM_CONTRACT t0
INNER JOIN T_CRM_CONTRACTFIN t0f on t0f.FID = t0.FID
LEFT JOIN # t1 on t1.FSALES = t0.F_CYG_YSALESNUMBER
OUTER APPLY (
SELECT CAST(JSON_VALUE(t4.FJSONDATA,'$.CRM_ContractFIN[0].FCONTRACTAMOUNT_LC') AS decimal(23,10)) - t0f.FCONTRACTAMOUNT_LC 'FCONTRACTAMOUNT_X'
FROM # t4
WHERE t4.FOLDFID = t0.FID AND t4.RN = 2
) t4
WHERE 1=1
AND t0.FDOCUMENTSTATUS = 'C'
AND t0f.FCONTRACTAMOUNT_LC > 0
AND t0.F_CYG_CONTRACTTYPE = '664cd624468638'
AND CONVERT(int,CONVERT(varchar(4) ,t0.FDATE,112)) = 2024 --只修改这个数就可以更新对应的年份
)
SELECT tt.FID,tt.FBILLNO,tt.F_CYG_SALESNUMBER,tt.FName
--,tt.FDOCUMENTSTATUS,tt.F_CYG_CONTRACTNODL,tt.FFORBIDSTATUS
,tt.,tt.,tt.,tt. - tt. AS '未下单销售订单本位币'
,tt.,tt.
,tt. - tt. AS '剩余未发货本位币'
,tt. - tt. AS '未开票金额'
,tt.,tt.,tt.,tt.
INTO #
FROM # tt
INNER JOIN T_CRM_CONTRACTFIN t0 on t0.FID = tt.FID
WHERE NOT ( t0.F_CYG_CUMSALESORDERS = tt.
AND t0.F_CYG_NOORDERSALES = tt. - tt.
AND t0.F_CYG_CUMSHIPMENT = tt.
AND t0.F_CYG_REMAINSHIPMENT = tt. - tt.
AND t0.F_CYG_CONTRACTCHANGE = tt.
AND t0.F_CYG_ACCUMULATEDINVOIC = tt.
AND t0.F_CYG_UNINVOICEDAMOUNT = tt. - tt.
AND t0.F_CYG_OPENPRICE = tt.
AND t0.F_CYG_OUTSOURCINGPRICE = tt.
AND t0.F_CYG_MOUNTINGCOST = tt.
AND t0.F_CYG_COST = tt.)
UPDATE t0 SET t0.F_CYG_CUMSALESORDERS = tt.
,t0.F_CYG_NOORDERSALES = tt.
,t0.F_CYG_CUMSHIPMENT = tt.
,t0.F_CYG_REMAINSHIPMENT = tt.
,t0.F_CYG_CONTRACTCOLLECTION = tt.
,t0.F_CYG_SHIPMENTUNCOLLECTION = tt.
,t0.F_CYG_CONTRACTCHANGE = tt.
,t0.F_CYG_ACCUMULATEDINVOIC = tt.
,t0.F_CYG_UNINVOICEDAMOUNT = tt.
,t0.F_CYG_OPENPRICE = tt.
,t0.F_CYG_OUTSOURCINGPRICE = tt.
,t0.F_CYG_MOUNTINGCOST = tt.
,t0.F_CYG_COST = tt.
FROM T_CRM_CONTRACTFIN t0
INNER JOIN # tt on t0.FID = tt.FID
UPDATE t0 SET t0.FDATE = GETDATE()
FROM T_CRM_CONTRACT t0
INNER JOIN # tt on t0.FID = tt.FID
--SELECT *
--FROM #最终数据
--ORDER BY FID
DROP TABLE #
DROP TABLE #