USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_mittelfristplanung_addvalue] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_mittelfristplanung_addvalue] GO /****** Object: StoredProcedure [dbo].[sp_mittelfristplanung_addvalue] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_mittelfristplanung_addvalue] @year int, @betrag float, @inklmwst int, @ereignisnr int, @tmptabl varchar(255) AS BEGIN declare @cnt int declare @xsql nvarchar (1024) declare @tmpbetrag float declare @tmpmwstbetrag float declare @tmptotal float declare @mwst float declare @mwstBetrag float declare @mwstsatz float declare @total float select @mwstsatz=mwstsatz from dbo.mwstsatz where jahr=@year if @inklmwst=1 begin set @mwstBetrag=(@betrag / (100 + @mwstsatz)) * @mwstsatz set @betrag = @betrag - @mwstbetrag end else begin set @mwstBetrag = (@betrag * @mwstsatz) / 100 end set @total=@betrag + @mwstBetrag set @xsql='select @RECORDCNT=count(*) from ' + @tmptabl + ' where Ereignisnr = ' + STR(@ereignisnr) execute sp_executesql @xsql,N'@RECORDCNT int out',@cnt out if @cnt=0 begin set @xsql='Insert ' + @tmptabl + ' (Ereignisnr,[Kosten_'+ltrim(str(@year))+'], [Mwst_'+ltrim(str(@year))+'], [Total_'+ltrim(str(@year))+']) values('+ltrim(str(@ereignisnr))+','+convert(varchar,@betrag)+','+CONVERT(varchar,@mwstbetrag)+','+CONVERT(varchar,@Total)+')' execute (@xsql) end else begin set @xsql = 'select @zbetrag=isnull([Kosten_'+LTRIM(str(@year))+'],0), @zmwst=isnull([mwst_'+LTRIM(str(@year))+'],0), @ztotal=isnull([total_'+LTRIM(str(@year))+'],0) from ' + @tmptabl + ' where Ereignisnr = ' + STR(@ereignisnr) execute sp_executesql @xsql,N'@zbetrag float out, @zmwst float out, @ztotal float out',@tmpbetrag out, @tmpmwstbetrag out, @tmptotal out set @tmpbetrag=@tmpbetrag+@betrag set @tmpmwstbetrag = @tmpmwstbetrag + @mwstBetrag set @tmptotal = @tmptotal + @total set @xsql = 'update ' + @tmptabl + ' set [Kosten_'+ltrim(str(@year))+'] = ' + CONVERT(varchar, @tmpbetrag) + ', [Mwst_'++ltrim(str(@year))+'] = ' + CONVERT(varchar, @tmpmwstbetrag) + ', [Total_'++ltrim(str(@year))+'] = ' + CONVERT(varchar, @tmptotal)+' where Ereignisnr = ' + STR(@ereignisnr) execute (@xsql) end END GO