294 lines
14 KiB
Transact-SQL
294 lines
14 KiB
Transact-SQL
|
|
/****** Object: StoredProcedure [dbo].[GXFPJEYSDZDMX_GZTH] Script Date: 2025/8/2 10:22:54 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
ALTER PROCEDURE [dbo].[GXFPJEYSDZDMX_GZTH]
|
|
@FSDATE varchar(1000),
|
|
@FEDATE varchar(1000)
|
|
AS
|
|
BEGIN
|
|
-- 只取2025年1月开始云星空发票
|
|
SET @FSDATE = CASE WHEN CONVERT(DATE,@FSDATE) < '2025-01-01' THEN '2025-01-01'ELSE @FSDATE END
|
|
--更新发票金额
|
|
EXEC GetIV_SALESICYSMX_GZTH @FSDATE,@FEDATE
|
|
|
|
UPDATE A
|
|
SET PPBillingDate = FORMAT(CONVERT(DATE, B.FPRQ), 'yyyy-MM-dd'),
|
|
PPBillingAmount = ISNULL(PPBillingAmount,0) + B.KPJE
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN FPYSDZDMX B ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ
|
|
WHERE B.FPLX = '普票' AND A.[是否K3数据] = 0
|
|
|
|
UPDATE A
|
|
SET ZPBillingDate = FORMAT(CONVERT(DATE, B.FPRQ), 'yyyy-MM-dd'),
|
|
ZPBillingAmount = ISNULL(ZPBillingAmount,0) + B.KPJE
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN FPYSDZDMX B ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ
|
|
WHERE B.FPLX = '专票' AND A.[是否K3数据] = 0
|
|
|
|
----期初专票金额
|
|
--UPDATE A
|
|
--SET A.QCZPBillingAmount =0 -- ISNULL(A.QCZPBillingAmount,0) + B.FAFTERTOTALTAXFOR
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--CROSS APPLY
|
|
--(SELECT SUM(FAFTERTOTALTAXFOR) AS FAFTERTOTALTAXFOR
|
|
--FROM T_IV_SALESIC
|
|
--WHERE F_PAPERNUMBER = A.CONTRACTNUMBER
|
|
--AND FBILLTYPEID = '50ea4e69b6144f69961d2e9b44820929'
|
|
--AND FID NOT IN (SELECT FPFID FROM FPYSDZDMX)
|
|
--AND A.[是否K3数据] = 0
|
|
--) B
|
|
|
|
----期初普票金额
|
|
--UPDATE A
|
|
--SET A.QCPPBillingAmount =0-- ISNULL(A.QCPPBillingAmount,0)+ B.FAFTERTOTALTAXFOR
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--CROSS APPLY
|
|
--(SELECT SUM(FAFTERTOTALTAXFOR) AS FAFTERTOTALTAXFOR
|
|
--FROM T_IV_SALESIC
|
|
--WHERE F_PAPERNUMBER = A.CONTRACTNUMBER
|
|
--AND FBILLTYPEID = '1cab58bc33d24e27826be02249f4edac'
|
|
--AND FID NOT IN (SELECT FPFID FROM FPYSDZDMX)
|
|
--AND A.[是否K3数据] = 0
|
|
--) B
|
|
|
|
--更新蓝票下推红票的开票金额
|
|
UPDATE A
|
|
SET --A.KPJE = B.HZKPJE,
|
|
A.ISTrue = 1
|
|
FROM FPYSDZDMX A
|
|
INNER JOIN FPYSDZDHPMXHP B ON A.FPFID = B.LZFPFID AND A.FPFENTRYID = B.LZFPFENTRYID
|
|
|
|
--UPDATE A
|
|
--SET PPBillingDate = FORMAT(CONVERT(DATE, B.FPRQ), 'yyyy-MM-dd')
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN (SELECT MAX(FPRQ) FPRQ,XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX FROM FPYSDZDMX GROUP BY XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX) B
|
|
--ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ
|
|
--WHERE B.FPLX = '普票' AND A.[是否K3数据] = 0
|
|
|
|
--星空普票日期
|
|
UPDATE A
|
|
SET PPBillingDate = B.FPRQ
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN (
|
|
SELECT (
|
|
stuff((select ','+format(convert(date,FPRQ),'yyyy-MM-dd') from (select distinct FPRQ,XSDDFID from FPYSDZDMX)b WHERE XSDDFID = A.XSDDFID AND FPLX = '普票' FOR xml path('')),1,1,'')) FPRQ,
|
|
XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX
|
|
FROM FPYSDZDMX A
|
|
GROUP BY XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX) B
|
|
ON A.FID = B.XSDDFID AND A.FSaleOrgId = B.FPJSZZ
|
|
WHERE B.FPLX = '普票' AND A.[是否K3数据] = 0
|
|
|
|
--追加K3普票日期
|
|
UPDATE A
|
|
SET PPBillingDate = CASE ISNULL(A.PPBillingDate,'') WHEN '' THEN '' ELSE A.PPBillingDate + ',' END + B.FPRQ
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN (
|
|
SELECT (
|
|
stuff((select ','+format(convert(date,开票日期),'yyyy-MM-dd') from (select distinct 开票日期,合同号,发票类型,是否普票存财务 from oldk3ICSale0802)b WHERE 合同号 = A.合同号 AND 发票类型 = '普' AND ISNULL(是否普票存财务,'') <> 1 FOR xml path('')),1,1,'')) FPRQ,
|
|
合同号,发票类型,是否普票存财务
|
|
FROM oldk3ICSale0802 A
|
|
WHERE 发票类型 = '普'
|
|
AND ISNULL(是否普票存财务,'') <> 1
|
|
GROUP BY 合同号,发票类型,是否普票存财务) B
|
|
ON A.CONTRACTNUMBER = B.合同号
|
|
WHERE B.发票类型 = '普'
|
|
AND A.[是否K3数据] = 0
|
|
AND ISNULL(B.是否普票存财务,'') <> 1
|
|
|
|
-- UPDATE A
|
|
--SET ZPBillingDate = FORMAT(CONVERT(DATE, B.FPRQ), 'yyyy-MM-dd')
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN (SELECT MAX(FPRQ) FPRQ,XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX FROM FPYSDZDMX GROUP BY XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX) B
|
|
--ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ
|
|
-- WHERE B.FPLX = '专票' AND A.[是否K3数据] = 0
|
|
|
|
--星空专票日期
|
|
UPDATE A
|
|
SET ZPBillingDate = B.FPRQ
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN (
|
|
SELECT (
|
|
stuff((select ','+format(convert(date,FPRQ),'yyyy-MM-dd') from (select distinct FPRQ,XSDDFID from FPYSDZDMX)b WHERE XSDDFID = A.XSDDFID AND FPLX = '专票' FOR xml path('')),1,1,'')) FPRQ,
|
|
XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX
|
|
FROM FPYSDZDMX A
|
|
GROUP BY XSDDFID,XSDDFENTRYID,FPJSZZ,FPLX) B
|
|
ON A.FID = B.XSDDFID AND A.FSaleOrgId = B.FPJSZZ
|
|
WHERE B.FPLX = '专票' AND A.[是否K3数据] = 0
|
|
|
|
--追加K3专票日期
|
|
UPDATE A
|
|
SET ZPBillingDate = CASE ISNULL(A.ZPBillingDate,'') WHEN '' THEN '' ELSE A.ZPBillingDate + ',' END + B.FPRQ
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN (
|
|
SELECT (
|
|
stuff((select ','+format(convert(date,开票日期),'yyyy-MM-dd') from (select distinct 开票日期,合同号,发票类型 from oldk3ICSale0802)b WHERE 合同号 = A.合同号 AND 发票类型 = '专' FOR xml path('')),1,1,'')) FPRQ,
|
|
合同号,发票类型
|
|
FROM oldk3ICSale0802 A
|
|
WHERE 发票类型 = '专'
|
|
GROUP BY 合同号,发票类型) B
|
|
ON A.CONTRACTNUMBER = B.合同号
|
|
WHERE B.发票类型 = '专' AND A.[是否K3数据] = 0
|
|
|
|
--UPDATE A
|
|
--SET PPBillingAmount = B.KPJE
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN (SELECT bb.XSDDFID,bb.XSDDFENTRYID,bb.FPJSZZ,SUM(KPJE) KPJE FROM FPYSDZDMX bb
|
|
--WHERE bB.FPLX = '普票'
|
|
--GROUP BY bb.XSDDFID,bb.XSDDFENTRYID,bb.FPJSZZ ) B
|
|
--ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ
|
|
--WHERE A.[是否K3数据] = 0
|
|
|
|
--UPDATE A
|
|
--SET ZPBillingAmount = B.KPJE
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN (SELECT bb.XSDDFID,bb.XSDDFENTRYID,bb.FPJSZZ,SUM(KPJE) KPJE FROM FPYSDZDMX bb
|
|
--WHERE bB.FPLX = '专票'
|
|
--GROUP BY bb.XSDDFID,bb.XSDDFENTRYID,bb.FPJSZZ ) B
|
|
--ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ
|
|
--WHERE A.[是否K3数据] = 0
|
|
|
|
|
|
UPDATE A
|
|
SET PPBillingAmount = B.KPJE
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN ( SELECT SUM(cc.KPJE) KPJE,XSDDFID,cc.FPJSZZ FROM (
|
|
SELECT DISTINCT bb.XSDDFID,bb.FPFENTRYID,bb.KPJE ,bb.FPJSZZ FROM FPYSDZDMX bb
|
|
WHERE bb.FPLX = '普票' ) cc
|
|
GROUP BY cc.XSDDFID,cc.FPJSZZ ) B
|
|
ON A.FID = B.XSDDFID AND A.FSaleOrgId = B.FPJSZZ
|
|
WHERE A.[是否K3数据] = 0
|
|
|
|
--UPDATE A
|
|
--SET PPBillingAmount = B.KPJE
|
|
-- FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN ( SELECT SUM(cc.KPJE) KPJE,XSDDFID,cc.FPJSZZ,cc.XSDDFENTRYID FROM (
|
|
-- SELECT DISTINCT bb.XSDDFID,bb.FPFENTRYID,bb.KPJE ,bb.FPJSZZ,bb.XSDDFENTRYID FROM FPYSDZDMX bb
|
|
-- WHERE bb.FPLX = '普票' ) cc
|
|
-- GROUP BY cc.XSDDFID,cc.FPJSZZ,cc.XSDDFENTRYID ) B
|
|
--ON A.FID = B.XSDDFID AND A.FSaleOrgId = B.FPJSZZ AND A.FENTRYID = b.XSDDFENTRYID
|
|
--WHERE A.[是否K3数据] = 0
|
|
|
|
|
|
UPDATE A
|
|
SET ZPBillingAmount = B.KPJE
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN ( SELECT SUM(cc.KPJE) KPJE,XSDDFID,cc.FPJSZZ FROM (
|
|
SELECT DISTINCT bb.XSDDFID,bb.FPFENTRYID,bb.KPJE ,bb.FPJSZZ FROM FPYSDZDMX bb
|
|
WHERE bb.FPLX = '专票' ) cc
|
|
GROUP BY cc.XSDDFID,cc.FPJSZZ ) B
|
|
ON A.FID = B.XSDDFID AND A.FSaleOrgId = B.FPJSZZ
|
|
WHERE A.[是否K3数据] = 0
|
|
|
|
--UPDATE A
|
|
--SET PPBillingAmount = B.KPJE
|
|
-- FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN ( SELECT SUM(cc.KPJE) KPJE,XSDDFID,cc.FPJSZZ,cc.XSDDFENTRYID FROM (
|
|
-- SELECT DISTINCT bb.XSDDFID,bb.FPFENTRYID,bb.KPJE ,bb.FPJSZZ,bb.XSDDFENTRYID FROM FPYSDZDMX bb
|
|
-- WHERE bb.FPLX = '专票' ) cc
|
|
-- GROUP BY cc.XSDDFID,cc.FPJSZZ,cc.XSDDFENTRYID ) B
|
|
--ON A.FID = B.XSDDFID AND A.FSaleOrgId = B.FPJSZZ AND A.FENTRYID = b.XSDDFENTRYID
|
|
--WHERE A.[是否K3数据] = 0
|
|
|
|
--将开票金额和期初开票金额相加值赋值给到表中的开票金额
|
|
SELECT
|
|
A.FID,
|
|
A.FENTRYID,
|
|
SUM(ISNULL(A.ZPBillingAmount,0)) + SUM(ISNULL(A.PPBillingAmount,0)) + SUM(ISNULL(A.K3专票金额,0)) + SUM(ISNULL(A.K3普票金额,0)) AS '专票金额'
|
|
--SUM(ISNULL(A.ZPBillingAmount,0)) + SUM(ISNULL(A.K3专票金额,0)) AS '专票金额'
|
|
INTO #TEMP3
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
WHERE A.[是否K3数据] = 0
|
|
GROUP BY A.FID, A.FENTRYID
|
|
|
|
|
|
UPDATE A
|
|
SET A.BillingAmount = B.[专票金额]
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNER JOIN #TEMP3 B ON A.FID = B.FID AND A.FENTRYID = B.FENTRYID
|
|
WHERE A.[是否K3数据] = 0
|
|
|
|
--更新已出货欠款,已开票欠款,欠票,是否已完结字段
|
|
-- OrderAmount=0,PaymentAmount=0,ShippedDebt=0,InvoicedDebt=0,IsEnded = NULL ,OwedTickets= 0,BillingAmount=0
|
|
SELECT
|
|
FID,
|
|
SUM(ShipmentsAmount) - AVG(PaymentAmount) - SUM(ISNULL(ReturnAmount,0)) AS '已出货欠款',
|
|
AVG(BillingAmount) - AVG(PaymentAmount) AS '已开票欠款',SUM(OrderAmount) - SUM(BillingAmount) AS '欠票',
|
|
CASE WHEN (AVG(ISNULL(OrderAmount,0)) - SUM(ISNULL(ReturnAmount,0))) = SUM(ISNULL(ShipmentsAmount,0))
|
|
AND (AVG(ISNULL(OrderAmount,0)) - SUM(ISNULL(ReturnAmount,0))) = AVG(ISNULL(BillingAmount,0))
|
|
AND (AVG(ISNULL(OrderAmount,0)) - SUM(ISNULL(ReturnAmount,0))) = AVG(ISNULL(PaymentAmount,0))
|
|
THEN '已完结'
|
|
ELSE '未完结'
|
|
END AS '是否已完结'
|
|
INTO #TEMP4
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
WHERE A.[是否K3数据] = 0
|
|
GROUP BY FID
|
|
|
|
--UPDATE A
|
|
--SET --A.ShippedDebt = B.[已出货欠款],-- A.InvoicedDebt = B.[已开票欠款],--A.OwedTickets = B.[欠票],
|
|
--A.IsEnded = B.[是否已完结]
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--INNER JOIN #TEMP4 B ON A.FID = B.FID
|
|
--WHERE A.[是否K3数据] = 0
|
|
|
|
--已开票欠款,已出货欠款
|
|
UPDATE A
|
|
SET A.InvoicedDebt = BillingAmount - PaymentAmount
|
|
,ShippedDebt= ShipmentsAmount- PaymentAmount -ReturnAmount
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
|
|
--对表中的数据进行调整
|
|
SELECT
|
|
*,
|
|
ROW_NUMBER() OVER (PARTITION BY FID ORDER BY FID) AS row_num1
|
|
INTO #TEMP5
|
|
FROM YingShouZhanKuanMX_GZTH
|
|
|
|
|
|
UPDATE A
|
|
SET row_num = row_num1
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
INNEr JOIN #TEMP5 B ON A.FID = B.FID AND A.FENTRYID = B.FENTRYID
|
|
|
|
|
|
|
|
--UPDATE A
|
|
--SET A.BillingAmount = 0,A.OrderAmount = 0,A.PaymentAmount = 0,A.ShippedDebt = 0,A.InvoicedDebt = 0,A.OwedTickets = 0,A.IsEnded = '',QCPPBillingAmount = 0,QCZPBillingAmount = 0
|
|
--FROM YingShouZhanKuanMX_GZTH A
|
|
--WHERE row_num <> 1
|
|
|
|
UPDATE A
|
|
SET A.PPBillingDate = ''
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
WHERE PPBillingAmount = 0
|
|
|
|
UPDATE YingShouZhanKuanMX_GZTH
|
|
SET OrderAmount=0,PaymentAmount=0,ShippedDebt=0,InvoicedDebt=0,IsEnded = NULL ,OwedTickets= 0,BillingAmount=0,PPBillingAmount=0,ZPBillingAmount=0,ZPBillingDate='',PPBillingDate='',PaymentDate = '',ShipmentsDate = ''
|
|
,ShipmentsAmount = 0,ReturnAmount = 0
|
|
from (
|
|
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY FBILLNO ORDER BY fid) = 1 THEN FBILLNO
|
|
END AS 单号,* FROM YingShouZhanKuanMX_GZTH
|
|
|
|
) B
|
|
WHERE YingShouZhanKuanMX_GZTH.FID=B.FID AND YingShouZhanKuanMX_GZTH.FENTRYID=b.FENTRYID AND b.单号 IS null
|
|
|
|
UPDATE A
|
|
SET OwedTickets = B.QP
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
JOIN (SELECT FID,SUM(ShipmentsAmount) -SUM(ReturnAmount)- SUM(BillingAmount) AS 'QP' --SUM(ShipmentsAmount)- SUM(BillingAmount) AS 'QP'
|
|
FROM YingShouZhanKuanMX_GZTH GROUP BY FID) B ON A.FID = B.FID
|
|
WHERE A.[是否K3数据] = 0 AND A.row_num = 1
|
|
|
|
UPDATE A
|
|
SET A.IsEnded = CASE WHEN A.OwedTickets = 0 AND A.InvoicedDebt = 0 AND A.ShippedDebt = 0 AND A.OrderAmount = A.ShipmentsAmount THEN '已完结' ELSE '未完结' END
|
|
FROM YingShouZhanKuanMX_GZTH A
|
|
WHERE A.[是否K3数据] = 0 AND A.row_num = 1
|
|
|
|
|
|
DROP TABLE #TEMP3
|
|
DROP TABLE #TEMP4
|
|
DROP TABLE #TEMP5
|
|
END |