Files
PiolotTH_ReportFrom/派诺报表SQL文件/应收对账表(明细创建).sql
liqionghai e8da4d5199 1
2025-07-15 18:38:45 +08:00

156 lines
7.3 KiB
Transact-SQL

ALTER PROCEDURE 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)
--插入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退货金额 + 星空退货金额
END