182 lines
8.2 KiB
Transact-SQL
182 lines
8.2 KiB
Transact-SQL
|
|
/****** 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数据
|
|
,tmm.FOldNumber
|
|
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_BD_MATERIAL tmm ON B.FMATERIALID = tmm.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.旧物料编码=[物料编码] 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
|
|
LEFT JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID
|
|
LEFT JOIN T_SAL_DELIVERYNOTICEENTRY_F B_F ON B.FENTRYID = B_F.FENTRYID
|
|
LEFT 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 |