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.
65 lines
5.3 KiB
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
|