114 lines
3.6 KiB
SQL
114 lines
3.6 KiB
SQL
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 |