90 lines
3.0 KiB
Transact-SQL
90 lines
3.0 KiB
Transact-SQL
ALTER PROCEDURE UpdateYSDZBMX_GZTH
|
|
@FSDATE varchar(1000),
|
|
@FEDATE varchar(1000),
|
|
@FSaleOrgId varchar(1000),
|
|
@FCUSTID 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;
|
|
|
|
INSERT INTO YingShouZhanKuanMX (FID,FENTRYID,FSaleOrgId,FBILLNO,FSalerId,[DATE],CONTRACTNUMBER,ProjectName,SizeModel,FQty,FTaxPrice,FAllAmount,OrderAmount,ShipmentsNum,
|
|
ShipmentsAmount,ReturnNum,ReturnAmount,PaymentAmount)
|
|
SELECT
|
|
A.FID AS 销售订单FID
|
|
,B.FENTRYID AS 销售订单FENTRYID
|
|
,A.FSaleOrgId AS 销售组织
|
|
,A.FBILLNO AS 销售订单编号
|
|
,A.FSalerId 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 订单金额
|
|
,B.F_sendQty AS 发货数量
|
|
,B.F_sendAmount AS 发货金额
|
|
,F_returnQty AS 退货数量
|
|
,F_returnAmount AS 退货金额
|
|
,A.F_Amount AS 累计核销金额
|
|
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
|
|
WHERE A.FSaleOrgId = @FSaleOrgId
|
|
AND A.FCUSTID = @FCUSTID
|
|
AND A.FApproveDate >= @StartDate
|
|
AND A.FApproveDate <= @EndDate
|
|
|
|
--更新发货日期,发货数量和发货金额
|
|
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)
|
|
AND C.FSID IN (SELECT FENTRYID FROM YingShouZhanKuanMX)
|
|
|
|
|
|
UPDATE A
|
|
SET ShipmentsDate = FORMAT( B.发货日期,'yyyy-MM-dd'),ShipmentsNum = ShipmentsNum+B.发货数量,ShipmentsAmount = ShipmentsAmount + B.发货金额
|
|
FROM YingShouZhanKuanMX A
|
|
INNER JOIN #TEMP1 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
|
|
|
|
--更新退货日期,退货数量,退货金额
|
|
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'
|
|
|
|
UPDATE A
|
|
SET ReturnDate = FORMAT( B.退货日期,'yyyy-MM-dd'),ReturnNum = ShipmentsNum+B.退货数量,ReturnAmount = ShipmentsAmount + B.退货金额
|
|
FROM YingShouZhanKuanMX A
|
|
INNER JOIN #TEMP2 B ON A.FID = B.销售订单FID AND A.FENTRYID = B.销售订单FENTRYID
|
|
|
|
END
|
|
|
|
|