/****** Object: StoredProcedure [dbo].[GXFPJEYSDZDMX_GZTH] Script Date: 2025/7/15 16:06:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[GXFPJEYSDZDMX_GZTH] AS BEGIN --更新发票金额 EXEC GetIV_SALESICYSMX_GZTH 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 = 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 = 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 PPBillingAmount = PPBillingAmount + 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 B.ISTrue = 1 AND A.[是否K3数据] = 0 UPDATE A SET ZPBillingAmount = ZPBillingAmount+ 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 B.ISTrue = 1 AND A.[是否K3数据] = 0 --将开票金额和期初开票金额相加值赋值给到表中的开票金额 SELECT A.FID, A.FENTRYID, SUM(ISNULL(A.ZPBillingAmount,0)) + SUM(ISNULL(A.PPBillingAmount,0)) + SUM(ISNULL(A.QCZPBillingAmount,0)) + SUM(ISNULL(A.QCPPBillingAmount,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) 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 --对表中的数据进行调整 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 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 END