You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ITSM/.svn/pristine/5f/5f973e7b1f537d070e3cd577c22...

65 lines
5.3 KiB

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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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