This commit is contained in:
liqionghai 2025-07-15 18:40:15 +08:00
commit 70891aba20
4 changed files with 322 additions and 114 deletions

View File

@ -1,114 +0,0 @@
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

View File

@ -0,0 +1,142 @@
/****** 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

View File

@ -0,0 +1,180 @@
/****** Object: StoredProcedure [dbo].[UpdateYSDZBMX_GZTH] Script Date: 2025/7/15 15:56:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UpdateYSDZBMX_GZTH]
@FSDATE varchar(1000),
@FEDATE varchar(1000),
@FSaleOrgId varchar(1000),
@FCUSTID varchar(1000),
@XSYFID varchar(1000),
@ZZHTH varchar(1000)
AS
BEGIN
DECLARE @StartDate DATE = CONVERT(DATE, @FSDATE);
DECLARE @EndDate DATE = CONVERT(DATE, @FEDATE);
-- 将结束日期增加一天
SET @EndDate = DATEADD(DAY, 1, @EndDate);
TRUNCATE TABLE YingShouZhanKuanMX_GZTH;
INSERT INTO
YingShouZhanKuanMX_GZTH
(FID,FENTRYID,FSaleOrgId,FBILLNO,FSalerId,[DATE],CONTRACTNUMBER,ProjectName,SizeModel,FQty,FTaxPrice,FAllAmount,OrderAmount,PaymentAmount,[K3数据])
SELECT
A.FID AS FID
,B.FENTRYID AS FENTRYID
,A.FSaleOrgId AS
,A.FBILLNO AS
,XS.FNAME AS FID
,FORMAT( A.FApproveDate,'yyyy-MM-dd') AS
,A.F_contractnumber AS
,GC.FNAME AS
,WL_L.FSpecification AS
,B.FQTY AS
,B_F.FTAXPRICE AS
,B_F.FALLAMOUNT_LC AS
,AF.FBillAllAmount
,A.F_Amount AS
,0 AS K3数据
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN AF ON A.FID = AF.FID
INNER JOIN T_BAS_PREBDONE_L GC ON A.F_projectname = GC.FID
INNER JOIN T_SAL_ORDERENTRY B ON A.FID = B.FID
INNER JOIN T_BD_MATERIAL_L WL_L ON B.FMATERIALID = WL_L.FMATERIALID
INNER JOIN T_SAL_ORDERENTRY_F B_F ON B.FENTRYID = B_F.FENTRYID
INNER JOIN V_BD_SALESMAN_L XS ON XS.FID = A.FSALERID
WHERE A.FSaleOrgId = @FSaleOrgId
AND A.FCUSTID = @FCUSTID
AND A.FApproveDate >= @StartDate
AND A.FApproveDate <= @EndDate
AND (ISNULL(@XSYFID, '') = '' OR A.FSalerId = @XSYFID)
AND (ISNULL(@ZZHTH,'') = '' OR A.F_contractnumber = @ZZHTH) ;
UPDATE a
SET a.[K3发货数量]=b.,a.[K3发货金额]=b.,a.[K3退货数量]=b.退
,a.[K3退货金额]=b.退,a.[K3专票金额] = b. ,a.[K3普票金额]= b.
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN [oldk3seorder0701] b
ON a.FBILLNO=b.[] AND a.SizeModel=[] AND a.FQty=[] AND (ABS(a.FTaxPrice-b.[])<=0.02 OR ABS(a.FTaxPrice-b.[])<=0.02)
WHERE K3数据=0
----K3数据
--INSERT INTO
--YingShouZhanKuanMX_GZTH
--(FID,FENTRYID,FSaleOrgId,FBILLNO,FSalerId,[DATE],CONTRACTNUMBER,ProjectName,SizeModel,[K3发货数量],[K3发货金额],[K3退货数量],[K3退货金额],[K3普票金额],[K3专票金额],[K3数据])
--SELECT
-- B.FID AS 销售订单FID
--,0 AS FENTRYID
--,B.FSaleOrgId AS
--,B.FBILLNO AS
--,XS.FNAME AS FID
--,FORMAT( B.FApproveDate,'yyyy-MM-dd') AS
--,B.F_contractnumber AS
--,GC.FNAME AS
--,A. AS
--,A. AS
--,A. AS
--,A.退 AS 退
--,A.退 AS 退
--,A. AS
--,A. AS
--,1 AS K3数据
--FROM oldk3seorder0701 A
--INNER JOIN T_SAL_ORDER B ON A. = B.FBILLNO
--INNER JOIN T_BAS_PREBDONE_L GC ON B.F_projectname = GC.FID
--INNER JOIN V_BD_SALESMAN_L XS ON XS.FID = B.FSALERID
--WHERE B.FSaleOrgId = @FSaleOrgId
--AND B.FCUSTID = @FCUSTID
--AND B.FApproveDate >= @StartDate
--AND B.FApproveDate <= @EndDate
--AND (ISNULL(@XSYFID, '') = '' OR B.FSalerId = @XSYFID)
--AND (ISNULL(@ZZHTH,'') = '' OR B.F_contractnumber = @ZZHTH)
--
SELECT
C.FSBILLID AS FID
,C.FSID AS FENTRYID
,A.FApproveDate AS
,B.FQTY AS
,B_F.FAllAmount_LC AS
INTO #TEMP1
FROM T_SAL_DELIVERYNOTICE A
INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F B_F ON B.FENTRYID = B_F.FENTRYID
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON B_F.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY'
WHERE C.FSBILLID IN (SELECT FID FROM YingShouZhanKuanMX_GZTH)
AND C.FSID IN (SELECT FENTRYID FROM YingShouZhanKuanMX_GZTH)
----k3发货数据
--update A
--SET A.K3发货数量 = C.,A.K3发货金额 = C.
--FROM YingShouZhanKuanMX_GZTH A
--INNER JOIN T_SAL_ORDERENTRY B ON A.FID = B.FID AND A.FENTRYID = B.FENTRYID
--INNER JOIN T_BD_MATERIAL D ON B.FMATERIALID = B.FMaterialId
--INNER JOIN oldk3seorder0701 C ON A.FBILLNO = C. AND A.CONTRACTNUMBER = C. AND D.FOldNumber = C.
SELECT
FID,
FENTRYID,
SUM() AS ,
SUM() AS
INTO #FHTEMP1
FROM #TEMP1
GROUP BY FID,FENTRYID
UPDATE A
SET ShipmentsDate = FORMAT( B.,'yyyy-MM-dd')
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN #TEMP1 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
UPDATE A
SET A. = B.,A. = B.
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN #FHTEMP1 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
--
UPDATE A
SET A.ShipmentsNum = ISNULL([],0) + ISNULL([K3发货数量],0),A.ShipmentsAmount = ISNULL([],0) + ISNULL([K3发货金额],0)
FROM YingShouZhanKuanMX_GZTH A
--退退退
SELECT
C.FSBILLID AS FID
,C.FSID AS FENTRYID
,A.FDATE AS 退
,B.FQTY AS 退
,B_F.FALLAMOUNT_LC AS 退
INTO #TEMP2
FROM T_SAL_RETURNNOTICE A
INNER JOIN T_SAL_RETURNNOTICEENTRY B ON A.FID = B.FID
INNER JOIN T_SAL_RETURNNOTICEENTRY_F B_F ON B.FENTRYID = B_F.FENTRYID
INNER JOIN T_SAL_RETURNNOTICEENTRY_LK C ON B_F.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY'
----k3退货数据
--update A
--SET A.K3退货数量 = C.退,A.K3退货金额 = C.退
--FROM YingShouZhanKuanMX_GZTH A
--INNER JOIN T_SAL_ORDERENTRY B ON A.FID = B.FID AND A.FENTRYID = B.FENTRYID
--INNER JOIN T_BD_MATERIAL D ON B.FMATERIALID = B.FMaterialId
--INNER JOIN oldk3seorder0701 C ON A.FBILLNO = C. AND A.CONTRACTNUMBER = C. AND D.FOldNumber = C.
UPDATE A
SET ReturnDate = FORMAT( B.退,'yyyy-MM-dd'),A.退 = B.退,A.退 = B.退
FROM YingShouZhanKuanMX_GZTH A
INNER JOIN #TEMP2 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
update YingShouZhanKuanMX_GZTH
SET ReturnNum = K3退货数量 + 退, ReturnAmount = K3退货金额 + 退;
--SELECT OrderAmount,PaymentAmount,ShippedDebt,InvoicedDebt,IsEnded ,OwedTickets,BillingAmount, CASE WHEN ROW_NUMBER() OVER(PARTITION BY FBILLNO ORDER BY fid) = 1 THEN FBILLNO
--END AS ,* FROM YingShouZhanKuanMX_GZTH
END