142 lines
6.7 KiB
Transact-SQL
142 lines
6.7 KiB
Transact-SQL
|
|
/****** 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
|
|
|
|
--更新已出货欠款,已开票欠款,欠票,是否已完结字段
|
|
SELECT
|
|
FID, SUM(ShipmentsAmount) - SUM(PaymentAmount) AS '已出货欠款',SUM(BillingAmount) - SUM(PaymentAmount) AS '已开票欠款',SUM(OrderAmount) - SUM(BillingAmount) AS '欠票',
|
|
CASE WHEN (SUM(ISNULL(OrderAmount,0)) - SUM(ISNULL(ReturnAmount,0))) = SUM(ISNULL(ShipmentsAmount,0))
|
|
AND (SUM(ISNULL(OrderAmount,0)) - SUM(ISNULL(ReturnAmount,0))) = SUM(ISNULL(BillingAmount,0))
|
|
AND (SUM(ISNULL(OrderAmount,0)) - SUM(ISNULL(ReturnAmount,0))) = SUM(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 |