ALTER PROCEDURE GXFPJEYSDZDMX_GZTH AS BEGIN --更新发票金额 EXEC GetIV_SALESICYSMX_GZTH UPDATE A SET PPBillingDate = FORMAT(CONVERT(DATE, B.FPRQ), 'yyyy-MM-dd'), PPBillingAmount = B.KPJE FROM YingShouZhanKuanMX A INNER JOIN FPYSDZDMX B ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ WHERE B.FPLX = '普票' UPDATE A SET ZPBillingDate = FORMAT(CONVERT(DATE, B.FPRQ), 'yyyy-MM-dd'),ZPBillingAmount = B.KPJE FROM YingShouZhanKuanMX A INNER JOIN FPYSDZDMX B ON A.FID = B.XSDDFID AND A.FENTRYID = B.XSDDFENTRYID AND A.FSaleOrgId = B.FPJSZZ WHERE B.FPLX = '专票' --期初专票金额 update A SET A.QCZPBillingAmount = ISNULL(A.QCZPBillingAmount,0) + B.FAFTERTOTALTAXFOR FROM YingShouZhanKuanMX 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) ) B --期初普票金额 update A SET A.QCPPBillingAmount = ISNULL(A.QCPPBillingAmount,0)+ B.FAFTERTOTALTAXFOR FROM YingShouZhanKuanMX 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) ) 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 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 UPDATE A SET ZPBillingAmount = ZPBillingAmount+ B.KPJE FROM YingShouZhanKuanMX 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 --将开票金额和期初开票金额相加值赋值给到表中的开票金额 SELECT A.FID, SUM(ISNULL(A.ZPBillingAmount,0)) + SUM(ISNULL(A.PPBillingAmount,0)) + AVG(ISNULL(A.QCZPBillingAmount,0)) + AVG(ISNULL(A.QCPPBillingAmount,0)) AS '专票金额' INTO #TEMP3 FROM YingShouZhanKuanMX A GROUP BY A.FID UPDATE A SET A.BillingAmount = B.[专票金额] FROM YingShouZhanKuanMX A INNER JOIN #TEMP3 B ON A.FID = B.FID --更新已出货欠款,已开票欠款,欠票,是否已完结字段 SELECT FID, SUM(ShipmentsAmount) - AVG(PaymentAmount) AS '已出货欠款',AVG(BillingAmount) - AVG(PaymentAmount) AS '已开票欠款',AVG(OrderAmount) - AVG(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 GROUP BY FID UPDATE A SET A.ShippedDebt = B.[已出货欠款], A.InvoicedDebt = B.[已开票欠款],A.OwedTickets = B.[欠票], A.IsEnded = B.[是否已完结] FROM YingShouZhanKuanMX A INNER JOIN #TEMP4 B ON A.FID = B.FID --对表中的数据进行调整 SELECT *, ROW_NUMBER() OVER (PARTITION BY FID ORDER BY FID) as row_num INTO #TEMP5 FROM YingShouZhanKuanMX TRUNCATE TABLE YingShouZhanKuanMX_GZTH INSERT INTO YingShouZhanKuanMX_GZTH SELECT * FROM #TEMP5 UPDATE A SET A.BillingAmount = 0,A.OrderAmount = 0,A.PaymentAmount = 0,A.ShippedDebt = 0,A.InvoicedDebt = 0,A.OwedTickets = 0,A.IsEnded = '' FROM YingShouZhanKuanMX_GZTH A WHERE row_num <> 1 END