This commit is contained in:
余宇波 2025-07-17 19:24:39 +08:00
parent 5f8b73dff2
commit dcca6f2985
2 changed files with 141 additions and 3 deletions

View File

@ -343,11 +343,13 @@ else
, null, null, null, null, null,'',1 [HuiLv],SUM([DingDanZongE_YuanBi]),'' [ZeRenRen],0 [XinYongEDu],'' [],SUM([DaoKuanJinE_YuanBi]) ,SUM([YingShouHeJi_YuanBi]),SUM([YunZaFei]),SUM([LeiJiTuiHuoJinE_YuanBi]) , null, null, null, null, null,'',1 [HuiLv],SUM([DingDanZongE_YuanBi]),'' [ZeRenRen],0 [XinYongEDu],'' [],SUM([DaoKuanJinE_YuanBi]) ,SUM([YingShouHeJi_YuanBi]),SUM([YunZaFei]),SUM([LeiJiTuiHuoJinE_YuanBi])
,SUM([F_SJYCHYSKHJ_BWB]) ,sum(F_WDQJE_BWB) F_WDQJE_BWB,sum(F_DQJE_BWB) F_DQJE_BWB,null AS F_zuzhi,NULL,NULL ,SUM([F_SJYCHYSKHJ_BWB]) ,sum(F_WDQJE_BWB) F_WDQJE_BWB,sum(F_DQJE_BWB) F_DQJE_BWB,null AS F_zuzhi,NULL,NULL
From From
(select distinct [ID],[ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 ,0 as F_024 ,F_025, ( select [ID],[ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 ,SUM([F_024]) as F_024 ,F_025,
0 as F_027,0 F_036 ,[BiBie] ,[DingDanZongE_YuanBi] ,[DaoKuanJinE_YuanBi] ,[YingShouHeJi_YuanBi] ,[YunZaFei], [LeiJiTuiHuoJinE_YuanBi] SUM(F_027) F_027,SUM(F_036) F_036 ,[BiBie] ,[DingDanZongE_YuanBi] ,[DaoKuanJinE_YuanBi] ,[YingShouHeJi_YuanBi] ,[YunZaFei], [LeiJiTuiHuoJinE_YuanBi]
,[F_025]*[HuiLv] as F_SJYCHYSKHJ_BWB, [F_024]*[HuiLv] as F_WDQJE_BWB, [F_027]*[HuiLv] F_DQJE_BWB from ,[F_025]*[HuiLv] as F_SJYCHYSKHJ_BWB, SUM([F_024]*[HuiLv]) as F_WDQJE_BWB, SUM([F_027]*[HuiLv]) F_DQJE_BWB from
[ReceivablesDetailsTable] [ReceivablesDetailsTable]
where {wheresql} where {wheresql}
GROUP BY [ID],[ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 , F_025,
[BiBie] ,[DingDanZongE_YuanBi] ,[DaoKuanJinE_YuanBi] ,[YingShouHeJi_YuanBi] ,[YunZaFei], [LeiJiTuiHuoJinE_YuanBi] ,[HuiLv]
) a )) W Order by W.F_001"); ) a )) W Order by W.F_001");
var sql_2 = ""; var sql_2 = "";

View File

@ -0,0 +1,136 @@
UPDATE [oldk3seorder0701] SET [专票金额1]=NULL,[普票金额1]=NULL;
--TRUNCATE TABLE [ZZZ_ZZ_FaPiaoLosed];
DECLARE @FDATE DATETIME,@FSourceBillNo NVARCHAR(200),@FSourceTranType INT,@FSourceInterId INT ,@F_contractnumber NVARCHAR(2000)
,@F_contractnumber2 NVARCHAR(2000),@F_contractnumber3 NVARCHAR(2000),@F_contractnumber4 NVARCHAR(2000),@FOrderInterID INT,@FOrderEntryID INT,@frob INT,@FNumber NVARCHAR(200),@FAuxQty DECIMAL(18,2)
,@amount DECIMAL(18,2),@hexiao DECIMAL(18,2),@FTranType INT,@saleBill NVARCHAR(200),@ifok INT=0,@id INT,@fid1 INT ,@fid2 INT,@row INT=0,@row2 INT=0,@row3 INT=0,@id2 INT
,@zhuanPiao DECIMAL(18,2),@PuPiao DECIMAL(18,2),@qty INT ;
-- 1. 声明游标
DECLARE cursor_name2 CURSOR FOR
SELECT b.FNumber,FAuxQty [数量]
,a.FStdAmountIncludeTax [价税合计(本位币)]
,aa.FHeadSelfI0456 [合同号]
,frob,aa.FTranType,ddd.[FInterID] ,ddd.[FEntryID]
FROM k3.AIS20130323140156.dbo.icsaleentry a
LEFT JOIN k3.AIS20130323140156.dbo.icsale aa ON a.FInterID=aa.FInterID
LEFT JOIN k3.AIS20130323140156.dbo.t_icitem b ON a.FItemID=b.FItemID
INNER JOIN [AIS2025].[dbo].[ZZZ_ZZ_FaPiaoLosed] ddd ON a.FInterID=ddd.[FInterID] AND a.[FEntryID]=ddd.[FEntryID]
INNER JOIN (SELECT DISTINCT 合同号 FROM [AIS20250707104732].[dbo].[oldk3seorder0701]) vv ON aa.FHeadSelfI0456=vv.合同号 -- AND vv.物料编码= b.FNumber
WHERE a.FStdAmountIncludeTax !=0
ORDER BY a.FInterID,b.FNumber
OPEN cursor_name2;
FETCH NEXT FROM cursor_name2
INTO @FNumber,@FAuxQty,@amount,@F_contractnumber
,@frob,@FTranType,@fid1,@fid2
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @row=@row+1,@row2=0;
SELECT @ifok=0,@id=0;
DECLARE cursor_name3 CURSOR FOR
SELECT [id],[合同号],[数量],[专票金额],[普票金额] FROM [oldk3seorder0701] WHERE [合同号]=@F_contractnumber AND [物料编码]=@FNumber
OPEN cursor_name3;
FETCH NEXT FROM cursor_name3
INTO @id2 ,@F_contractnumber,@qty,@zhuanPiao,@PuPiao
WHILE @@FETCH_STATUS = 0
BEGIN
SET @row2=@row2+1;
PRINT CONCAT('id=',@id2,' 第几行: ',@row,' FInterID: ',@fid1,' FEntryID: ',@fid2,' [价税合计(本位币)] ',@amount);
SELECT @row3=COUNT(1) FROM [oldk3seorder0701] WHERE [合同号]=@F_contractnumber AND [物料编码]=@FNumber
PRINT CONCAT('update id=',@id2,' @row2= ',@row2,' @row3=',@row3,' FTranType: ',@FTranType,' @zhuanPiao: ',@zhuanPiao,' @PuPiao ',@PuPiao ,' [价税合计(本位币)] ',@amount);
IF(@amount>0)
BEGIN
-- @FTranType 80 专票 86 普票 602 专票 601 普票
IF(@FTranType IN (80,602) AND @id>0)
BEGIN
UPDATE [oldk3seorder0701] SET [专票金额1]=ISNULL([专票金额1],0)+ @amount
WHERE id=@id2
end
IF(@FTranType IN (86,601) AND @id>0)
BEGIN
UPDATE [oldk3seorder0701] SET [普票金额1]=ISNULL([专票金额1],0)+ @amount
WHERE id=@id2
end
SELECT @amount=0;
END
ELSE IF(@amount<0)
BEGIN
IF(@row2<@row3)
BEGIN
-- @FTranType 80 专票 86 普票 602 专票 601 普票
IF(@FTranType IN (80,602) )
BEGIN
IF(ABS(@amount)>= ABS(@zhuanPiao))
begin
SELECT @amount=@amount+ABS(@zhuanPiao)
UPDATE [oldk3seorder0701] SET [专票金额1]=ISNULL([专票金额1],0) -ABS(@zhuanPiao)
WHERE id=@id2;
END
ELSE
begin
UPDATE [oldk3seorder0701] SET [专票金额1]=ISNULL([专票金额1],0)+ @amount
WHERE id=@id2;
end
end
IF(@FTranType IN (86,601) )
BEGIN
IF(ABS(@amount)>= ABS(@PuPiao))
BEGIN
SELECT @amount=@amount+ABS(@PuPiao)
UPDATE [oldk3seorder0701] SET [普票金额1]=ISNULL([普票金额1],0) -ABS(@PuPiao)
WHERE id=@id2
END
ELSE
begin
UPDATE [oldk3seorder0701] SET [普票金额1]=ISNULL([普票金额1],0)+ @amount
WHERE id=@id2
end
end
end
IF(@row2=@row3)
BEGIN
-- @FTranType 80 专票 86 普票 602 专票 601 普票
IF(@FTranType IN (80,602) )
BEGIN
UPDATE [oldk3seorder0701] SET [专票金额1]=ISNULL([专票金额1],0)+@amount
WHERE id=@id2
end
IF(@FTranType IN (86,601) )
BEGIN
UPDATE [oldk3seorder0701] SET [普票金额1]=ISNULL([普票金额1],0)+@amount
WHERE id=@id2
end
end
end
-- 获取下一条记录
FETCH NEXT FROM cursor_name3
INTO @id2 ,@F_contractnumber,@qty,@zhuanPiao,@PuPiao;
END
-- 4. 关闭游标
CLOSE cursor_name3;
-- 5. 释放游标资源
DEALLOCATE cursor_name3;
-- 获取下一条记录
FETCH NEXT FROM cursor_name2
INTO @FNumber,@FAuxQty,@amount,@F_contractnumber
,@frob,@FTranType,@fid1,@fid2;
END
-- 4. 关闭游标
CLOSE cursor_name2;
-- 5. 释放游标资源
DEALLOCATE cursor_name2;