/****** 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 发票类型 = '普' 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 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(ReturnNum)- 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 DROP TABLE #TEMP3 DROP TABLE #TEMP4 DROP TABLE #TEMP5 END