From dcca6f2985fa28dc0a1476da709eaf663cececb1 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Thu, 17 Jul 2025 19:24:39 +0800 Subject: [PATCH] 111 --- .../Receivables/ReceivablesDetails.cs | 8 +- 非C#代码文件/K3数据第二步.txt | 136 ++++++++++++++++++ 2 files changed, 141 insertions(+), 3 deletions(-) create mode 100644 非C#代码文件/K3数据第二步.txt diff --git a/Pilot.Report.Exploitation/Receivables/ReceivablesDetails.cs b/Pilot.Report.Exploitation/Receivables/ReceivablesDetails.cs index 51935d7..de8c88f 100644 --- a/Pilot.Report.Exploitation/Receivables/ReceivablesDetails.cs +++ b/Pilot.Report.Exploitation/Receivables/ReceivablesDetails.cs @@ -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]) ,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 - (select distinct [销售单主键ID],[销售员ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 ,0 as F_024 ,F_025, - 0 as F_027,0 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 + ( 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, + 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, SUM([F_024]*[HuiLv]) as F_WDQJE_BWB, SUM([F_027]*[HuiLv]) F_DQJE_BWB from [ReceivablesDetailsTable] 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"); var sql_2 = ""; diff --git a/非C#代码文件/K3数据第二步.txt b/非C#代码文件/K3数据第二步.txt new file mode 100644 index 0000000..9cc71da --- /dev/null +++ b/非C#代码文件/K3数据第二步.txt @@ -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; \ No newline at end of file