2025-07-17 19:24:39 +08:00
|
|
|
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [专票金额1]=NULL,[普票金额1]=NULL;
|
2025-07-17 19:24:39 +08:00
|
|
|
--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]
|
2025-08-04 09:45:55 +08:00
|
|
|
INNER JOIN (SELECT DISTINCT 合同号 FROM [AIS20250707104732].[dbo].[oldk3seorder0714]) vv ON aa.FHeadSelfI0456=vv.合同号 -- AND vv.物料编码= b.FNumber
|
2025-07-17 19:24:39 +08:00
|
|
|
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
|
2025-08-04 09:45:55 +08:00
|
|
|
SELECT [id],[合同号],[数量],[专票金额],[普票金额] FROM [oldk3seorder0714] WHERE [合同号]=@F_contractnumber AND [物料编码]=@FNumber
|
2025-07-17 19:24:39 +08:00
|
|
|
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);
|
2025-08-04 09:45:55 +08:00
|
|
|
SELECT @row3=COUNT(1) FROM [oldk3seorder0714] WHERE [合同号]=@F_contractnumber AND [物料编码]=@FNumber
|
2025-07-17 19:24:39 +08:00
|
|
|
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
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [专票金额1]=ISNULL([专票金额1],0)+ @amount
|
2025-07-17 19:24:39 +08:00
|
|
|
WHERE id=@id2
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
IF(@FTranType IN (86,601) AND @id>0)
|
|
|
|
|
BEGIN
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [普票金额1]=ISNULL([专票金额1],0)+ @amount
|
2025-07-17 19:24:39 +08:00
|
|
|
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)
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [专票金额1]=ISNULL([专票金额1],0) -ABS(@zhuanPiao)
|
2025-07-17 19:24:39 +08:00
|
|
|
WHERE id=@id2;
|
|
|
|
|
END
|
|
|
|
|
ELSE
|
|
|
|
|
begin
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [专票金额1]=ISNULL([专票金额1],0)+ @amount
|
2025-07-17 19:24:39 +08:00
|
|
|
WHERE id=@id2;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
IF(@FTranType IN (86,601) )
|
|
|
|
|
BEGIN
|
|
|
|
|
IF(ABS(@amount)>= ABS(@PuPiao))
|
|
|
|
|
BEGIN
|
|
|
|
|
SELECT @amount=@amount+ABS(@PuPiao)
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [普票金额1]=ISNULL([普票金额1],0) -ABS(@PuPiao)
|
2025-07-17 19:24:39 +08:00
|
|
|
WHERE id=@id2
|
|
|
|
|
END
|
|
|
|
|
ELSE
|
|
|
|
|
begin
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [普票金额1]=ISNULL([普票金额1],0)+ @amount
|
2025-07-17 19:24:39 +08:00
|
|
|
WHERE id=@id2
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
IF(@row2=@row3)
|
|
|
|
|
BEGIN
|
|
|
|
|
-- @FTranType 80 专票 86 普票 602 专票 601 普票
|
|
|
|
|
IF(@FTranType IN (80,602) )
|
|
|
|
|
BEGIN
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [专票金额1]=ISNULL([专票金额1],0)+@amount
|
2025-07-17 19:24:39 +08:00
|
|
|
WHERE id=@id2
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
IF(@FTranType IN (86,601) )
|
|
|
|
|
BEGIN
|
2025-08-04 09:45:55 +08:00
|
|
|
UPDATE [oldk3seorder0714] SET [普票金额1]=ISNULL([普票金额1],0)+@amount
|
2025-07-17 19:24:39 +08:00
|
|
|
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;
|