|
|
USE [Vertragsverwaltung_20160404]
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[_count_Appl_Kontakt] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
CREATE FUNCTION [dbo].[_count_Appl_Kontakt]
|
|
|
(
|
|
|
@applnr int
|
|
|
)
|
|
|
RETURNS int
|
|
|
AS
|
|
|
BEGIN
|
|
|
declare @rc int
|
|
|
select @rc=count(ApplikationKontaktnr) from applikationkontakt where applikationnr=@applnr and aktiv=1
|
|
|
RETURN @rc
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Check_Date] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS OFF
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
CREATE FUNCTION [dbo].[Check_Date]
|
|
|
(@datum datetime)
|
|
|
RETURNS datetime
|
|
|
|
|
|
BEGIN
|
|
|
declare @result datetime
|
|
|
|
|
|
if @datum is null set @datum='01.01.1900'
|
|
|
set @result=@datum
|
|
|
|
|
|
if year(@datum)=1900 set @result=null
|
|
|
|
|
|
return @result
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Check_Generate_Activity] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS OFF
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER OFF
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE FUNCTION [dbo].[Check_Generate_Activity]
|
|
|
(@startdatum datetime,
|
|
|
@enddatum datetime,
|
|
|
@steuerdatum datetime,
|
|
|
@vorlauf int,
|
|
|
@periode int,
|
|
|
@generate int,
|
|
|
@kuendigungsfristnr int,
|
|
|
@kuendigung int,
|
|
|
@fnkt int,
|
|
|
@einmalig int)
|
|
|
Returns varchar(25) AS
|
|
|
|
|
|
BEGIN
|
|
|
declare @workdate datetime
|
|
|
declare @result varchar(15)
|
|
|
declare @eom int
|
|
|
declare @eomdate datetime
|
|
|
declare @dd varchar(2)
|
|
|
declare @mm varchar(2)
|
|
|
declare @yy varchar(4)
|
|
|
|
|
|
set @eom=0
|
|
|
set @result=0
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
--Initialisierung - Datum / Zeit-Sync
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
set @startdatum = FLOOR( CAST( @startdatum AS FLOAT ) )
|
|
|
set @enddatum = FLOOR( CAST( @enddatum AS FLOAT ) )
|
|
|
set @steuerdatum = FLOOR( CAST( @steuerdatum AS FLOAT ) )
|
|
|
set @eomdate=DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@startdatum)+1,0))
|
|
|
set @eomdate = FLOOR( CAST( @eomdate AS FLOAT ) )
|
|
|
--if @enddatum < '01.01.1901' set @enddatum = '31.12.2099'
|
|
|
if @enddatum < '01.01.1901' set @enddatum = '31.12.2099'---------------------------------------------------------------------------------------------------------------------------
|
|
|
--Einmalige Ereignisse
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
if @einmalig = 1 begin
|
|
|
if @periode=15 begin
|
|
|
set @result=''
|
|
|
set @workdate = @startdatum
|
|
|
if @kuendigung=1 begin
|
|
|
if @kuendigungsfristnr=1 set @workdate=dateadd(mm,-1,@startdatum)
|
|
|
if @kuendigungsfristnr=2 set @workdate=dateadd(mm,-2,@startdatum)
|
|
|
if @kuendigungsfristnr=3 set @workdate=dateadd(mm,-3,@startdatum)
|
|
|
if @kuendigungsfristnr=4 set @workdate=dateadd(mm,-6,@startdatum)
|
|
|
if @kuendigungsfristnr=5 set @workdate=dateadd(mm,-9,@startdatum)
|
|
|
if @kuendigungsfristnr=6 set @workdate=dateadd(mm,-12,@startdatum)
|
|
|
set @workdate=FLOOR( CAST( @workdate AS FLOAT ) )
|
|
|
end
|
|
|
set @workdate=dateadd(dd,@vorlauf*-1,@workdate)
|
|
|
if @steuerdatum=floor(cast(@workdate as float)) begin
|
|
|
set @result='1'
|
|
|
if @fnkt=1 begin
|
|
|
set @dd=ltrim(str(day(@startdatum)))
|
|
|
while len(@dd)<2 begin
|
|
|
set @dd='0'+@dd
|
|
|
end
|
|
|
set @mm=ltrim(str(month(@startdatum)))
|
|
|
while len(@mm)<2 begin
|
|
|
set @mm='0'+@mm
|
|
|
end
|
|
|
set @result=@dd+'.'+@mm+'.'+ltrim(str(year(@startdatum)))
|
|
|
end
|
|
|
--if @fnkt=1 set @result=@startdatum
|
|
|
end
|
|
|
end
|
|
|
return @result
|
|
|
end
|
|
|
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
--Startdatum auf EOM prüfen
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
if @eomdate=@startdatum begin
|
|
|
set @eom=1
|
|
|
end
|
|
|
|
|
|
if @generate=0 begin
|
|
|
set @result=''
|
|
|
return @result
|
|
|
end
|
|
|
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
--Vorlaufzeit in Tagen vom Startdatum abziehen. Wenn dieses nach dem aktuellen Tagesdatum liegt, keine Aktivität generieren
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
if @startdatum='01.01.1900' begin
|
|
|
set @result=''
|
|
|
return @result
|
|
|
|
|
|
end
|
|
|
set @workdate=@startdatum
|
|
|
if @kuendigung=1 begin
|
|
|
if @kuendigungsfristnr=1 set @workdate=dateadd(mm,-1,@startdatum)
|
|
|
if @kuendigungsfristnr=2 set @workdate=dateadd(mm,-2,@startdatum)
|
|
|
if @kuendigungsfristnr=3 set @workdate=dateadd(mm,-3,@startdatum)
|
|
|
if @kuendigungsfristnr=4 set @workdate=dateadd(mm,-6,@startdatum)
|
|
|
if @kuendigungsfristnr=5 set @workdate=dateadd(mm,-9,@startdatum)
|
|
|
if @kuendigungsfristnr=6 set @workdate=dateadd(mm,-12,@startdatum)
|
|
|
end
|
|
|
|
|
|
set @workdate=dateadd(dd,@vorlauf*-1,@workdate)
|
|
|
if @workdate > @steuerdatum begin
|
|
|
set @result=''
|
|
|
return @result
|
|
|
|
|
|
end
|
|
|
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
-- Berechnung
|
|
|
-- 1=einmalig,2=täglich,3=wöchentlich,4=monatlich,5=zwei-monatlich,6=vierteljährlich,7=halbjährlich,8=jählrich
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
declare @dd1 int
|
|
|
declare @dd2 int
|
|
|
set @dd1=datepart(dd,@startdatum)
|
|
|
--Print @workdate
|
|
|
|
|
|
declare @tmpdate datetime
|
|
|
declare @ok int
|
|
|
set @ok=0
|
|
|
while @workdate < @enddatum begin
|
|
|
if month(@workdate)=2 and day(@startdatum)>28 and @vorlauf>0 begin
|
|
|
set @tmpdate=dateadd(dd,(day(@startdatum)-28)*-1,@workdate)
|
|
|
if @tmpdate=@steuerdatum set @ok=1
|
|
|
end
|
|
|
if @workdate=@steuerdatum begin
|
|
|
set @ok=1
|
|
|
end
|
|
|
if @ok=1 begin
|
|
|
set @result='1'
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
--Berechnung des Kündigungstermins
|
|
|
---------------------------------------------------------------------------------------------------------------------------
|
|
|
if @fnkt=1 begin
|
|
|
--set @workdate=dateadd(d,@vorlauf,@workdate)
|
|
|
|
|
|
if @kuendigungsfristnr=1 set @workdate=dateadd(mm,1,@workdate)
|
|
|
if @kuendigungsfristnr=2 set @workdate=dateadd(mm,2,@workdate)
|
|
|
if @kuendigungsfristnr=3 set @workdate=dateadd(mm,3,@workdate)
|
|
|
if @kuendigungsfristnr=4 set @workdate=dateadd(mm,6,@workdate)
|
|
|
if @kuendigungsfristnr=5 set @workdate=dateadd(mm,9,@workdate)
|
|
|
if @kuendigungsfristnr=6 set @workdate=dateadd(mm,12,@workdate)
|
|
|
if @eom=1 begin
|
|
|
set @workdate=DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@workdate)+1,0))
|
|
|
set @workdate = FLOOR( CAST( @workdate AS FLOAT ) )
|
|
|
set @dd=ltrim(str(day(@workdate)))
|
|
|
while len(@dd)<2 begin
|
|
|
set @dd='0'+@dd
|
|
|
end
|
|
|
set @mm=ltrim(str(month(@workdate)))
|
|
|
while len(@mm)<2 begin
|
|
|
set @mm='0'+@mm
|
|
|
end
|
|
|
set @result=@dd+'.'+@mm+'.'+ltrim(str(year(@workdate)))
|
|
|
-- set @result=@workdate
|
|
|
end else begin
|
|
|
set @workdate = FLOOR( CAST( @workdate AS FLOAT ) )
|
|
|
-- Datumsberechung zur Datumsausgabe - Termin (28. - 31.)
|
|
|
set @dd2=datepart(dd,@workdate)
|
|
|
if @dd1>=28 begin
|
|
|
if @dd2 < @dd1 begin
|
|
|
set @workdate=dateadd(dd,@dd1-@dd2,@workdate)
|
|
|
end
|
|
|
end
|
|
|
set @dd=ltrim(str(day(@workdate)))
|
|
|
while len(@dd)<2 begin
|
|
|
set @dd='0'+@dd
|
|
|
end
|
|
|
set @mm=ltrim(str(month(@workdate)))
|
|
|
while len(@mm)<2 begin
|
|
|
set @mm='0'+@mm
|
|
|
end
|
|
|
set @result=@dd+'.'+@mm+'.'+ltrim(str(year(@workdate)))
|
|
|
--set @result=@workdate
|
|
|
end
|
|
|
end else begin
|
|
|
if @kuendigungsfristnr=1 set @workdate=dateadd(mm,1,@workdate)
|
|
|
if @kuendigungsfristnr=2 set @workdate=dateadd(mm,2,@workdate)
|
|
|
if @kuendigungsfristnr=3 set @workdate=dateadd(mm,3,@workdate)
|
|
|
if @kuendigungsfristnr=4 set @workdate=dateadd(mm,6,@workdate)
|
|
|
if @kuendigungsfristnr=5 set @workdate=dateadd(mm,9,@workdate)
|
|
|
if @kuendigungsfristnr=6 set @workdate=dateadd(mm,12,@workdate)
|
|
|
|
|
|
if @workdate > @enddatum begin
|
|
|
set @result=''
|
|
|
return @result
|
|
|
end
|
|
|
end
|
|
|
|
|
|
return @result
|
|
|
break
|
|
|
end
|
|
|
if @workdate > @steuerdatum begin
|
|
|
set @result=''
|
|
|
return @result
|
|
|
break
|
|
|
end
|
|
|
|
|
|
if @periode = 10 set @workdate=dateadd(dd,1,@workdate)
|
|
|
if @periode = 11 set @workdate=dateadd(ww,1,@workdate)
|
|
|
if @periode = 12 set @workdate=dateadd(mm,1,@workdate)
|
|
|
if @periode =13 set @workdate=dateadd(mm,2,@workdate)
|
|
|
if @periode = 16 set @workdate=dateadd(qq,1,@workdate)
|
|
|
if @periode = 14 set @workdate=dateadd(qq,2,@workdate)
|
|
|
if @periode =9 set @workdate=dateadd(yy,1,@workdate)
|
|
|
--if @periode = 9 set @workdate=dateadd(mm,1,@workdate)
|
|
|
end
|
|
|
set @result=''
|
|
|
return @result
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_erstloesungsquote] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[fnkt_erstloesungsquote]
|
|
|
(
|
|
|
@fnkt INT,
|
|
|
@ticketid VARCHAR(255)
|
|
|
)
|
|
|
RETURNS int
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @res int
|
|
|
DECLARE @bg VARCHAR(255)
|
|
|
DECLARE @cnt int
|
|
|
|
|
|
IF @fnkt=1 BEGIN -- Check Erste Besitzergruppe = ServiceDesk
|
|
|
SELECT TOP 1 @bg=besitzergruppe FROM txp_ticket_data WHERE ticketid=@ticketid ORDER BY Status_Changedate
|
|
|
IF @bg='ServiceDesk' SET @res = 1 ELSE SET @res=0
|
|
|
IF @res=0 BEGIN
|
|
|
SET @res = @res
|
|
|
END ELSE BEGIN
|
|
|
SELECT @cnt=COUNT(*) FROM txp_ticket_data WHERE ticketid=@ticketid AND (status_neu='Zugewiesen 2nd Level' OR Status_Neu='In Bearbeitung - 3rd Level' OR status_neu='Zugewiesen WPI')
|
|
|
IF @cnt>0 SET @res=0 ELSE SET @res= 1
|
|
|
end
|
|
|
END
|
|
|
RETURN @res
|
|
|
|
|
|
|
|
|
|
|
|
--IF @fnkt=1 BEGIN -- Check Erste Besitzergruppe = ServiceDesk
|
|
|
-- SELECT TOP 1 @bg=besitzergruppe FROM txp_ticket_data WHERE ticketid=@ticketid ORDER BY Status_Changedate
|
|
|
-- IF @bg='ServiceDesk' SET @res = 1 ELSE SET @res=0
|
|
|
-- END
|
|
|
|
|
|
--IF @fnkt=2 BEGIN -- Prüfung, ob Status durchlaufen worden sind
|
|
|
-- SELECT @cnt=COUNT(*) FROM txp_ticket_data WHERE ticketid=@ticketid AND (status_neu='Zugewiesen 2nd Level' OR Status_Neu='In Bearbeitung - 3rd Level' OR status_neu='Zugewiesen WPI')
|
|
|
-- IF @cnt>0 SET @res=1 ELSE SET @res= 0
|
|
|
-- END
|
|
|
|
|
|
--RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_get_KPI_hierarchie] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
Create Function [dbo].[fnkt_get_KPI_hierarchie]
|
|
|
(
|
|
|
@startkey int
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE
|
|
|
(
|
|
|
ID INT
|
|
|
)
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
WITH tmp1 (id)
|
|
|
AS
|
|
|
(
|
|
|
SELECT oenr
|
|
|
FROM oe
|
|
|
WHERE oenr=@startkey
|
|
|
UNION ALL
|
|
|
SELECT C.oenr FROM oe C
|
|
|
INNER JOIN tmp1 R ON C.parentid = R.id
|
|
|
)
|
|
|
INSERT INTO @tmp1
|
|
|
SELECT id
|
|
|
FROM tmp1
|
|
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_get_last_closedstate] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[fnkt_get_last_closedstate]
|
|
|
(
|
|
|
@ticketid varchar(255)
|
|
|
)
|
|
|
RETURNS varchar(255)
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @res VARCHAR(255)
|
|
|
SELECT TOP 1 @res= ISNULL(statusid,'') FROM txp_ticket_data WHERE ticketid=@ticketid AND status_neu='Solved' ORDER BY Erstellungsdatum DESC
|
|
|
RETURN @res
|
|
|
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_get_last_status] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[fnkt_get_last_status]
|
|
|
(
|
|
|
@ticketid varchar(255)
|
|
|
)
|
|
|
RETURNS VARCHAR(255)
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @res VARCHAR(255)
|
|
|
SELECT TOP 1 @res=status_neu FROM TXP_Ticket_Data WHERE ticketid=@ticketid ORDER BY Status_Changedate desc
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_get_last_statusID] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
Create FUNCTION [dbo].[fnkt_get_last_statusID]
|
|
|
(
|
|
|
@ticketid varchar(255)
|
|
|
)
|
|
|
RETURNS VARCHAR(255)
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @res VARCHAR(255)
|
|
|
SELECT TOP 1 @res=statusID FROM TXP_Ticket_Data WHERE ticketid=@ticketid ORDER BY Status_Changedate desc
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[fnkt_split] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[fnkt_split]
|
|
|
(
|
|
|
@sInputList varchar(8000) -- List of delimited items
|
|
|
, @Delimiter char(1) = ',' -- delimiter that separates items
|
|
|
, @Delimiterlength INT = 1
|
|
|
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (item varchar(8000))
|
|
|
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
DECLARE @Item VARCHAR(8000)
|
|
|
|
|
|
WHILE CHARINDEX(@Delimiter, @sInputList, 0) <> 0
|
|
|
BEGIN
|
|
|
SELECT @Item = RTRIM(LTRIM(SUBSTRING(@sInputList, 1, CHARINDEX(@Delimiter, @sInputList, 0) - 1))),
|
|
|
@sInputList = RTRIM(LTRIM(SUBSTRING(@sInputList, CHARINDEX(@Delimiter, @sInputList, 0) + @Delimiterlength, LEN(@sInputList))))
|
|
|
IF LEN(@Item) > 0
|
|
|
INSERT INTO @tmp1
|
|
|
SELECT @Item
|
|
|
END
|
|
|
|
|
|
IF LEN(@sInputList) > 0
|
|
|
INSERT INTO @tmp1
|
|
|
SELECT @sInputList
|
|
|
|
|
|
RETURN
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_anteil] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_anteil]
|
|
|
(
|
|
|
@engagement int,
|
|
|
@matyp int
|
|
|
)
|
|
|
RETURNS float
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @fhranteil INT
|
|
|
SELECT @fhranteil=Fuehrungsanteil FROM dbo.MitarbeiterTyp WHERE mitarbeitertypnr=@matyp
|
|
|
|
|
|
DECLARE @res FLOAT
|
|
|
SET @res=(@engagement * (100-@fhranteil))/100
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_applobject] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_applobject]
|
|
|
|
|
|
(
|
|
|
|
|
|
-- Add the parameters for the function here
|
|
|
|
|
|
@input_guid varchar(255),
|
|
|
|
|
|
@input_type int
|
|
|
|
|
|
)
|
|
|
|
|
|
RETURNS varchar(1024)
|
|
|
|
|
|
AS
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
|
|
|
|
|
|
declare @resultat varchar(1024)
|
|
|
|
|
|
set @resultat=''
|
|
|
|
|
|
declare @appl varchar(255)
|
|
|
|
|
|
declare @crlf varchar(2)
|
|
|
|
|
|
SET @crlf = char(13) + char(10)
|
|
|
|
|
|
|
|
|
|
|
|
if @input_type=1 begin
|
|
|
|
|
|
declare xc cursor for
|
|
|
|
|
|
select applikation from applikationarchitekturobjectappl where guid=@input_guid
|
|
|
|
|
|
open xc
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
while @@fetch_status=0 begin
|
|
|
|
|
|
set @resultat=@resultat + '- '+@appl+@crlf
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
end
|
|
|
|
|
|
close xc
|
|
|
|
|
|
deallocate xc
|
|
|
|
|
|
RETURN @resultat
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @input_type=2 begin
|
|
|
|
|
|
declare xc cursor for
|
|
|
|
|
|
select datenbank from applikationarchitekturobjectdb where guid=@input_guid
|
|
|
|
|
|
open xc
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
while @@fetch_status=0 begin
|
|
|
|
|
|
set @resultat=@resultat + '- '+@appl+@crlf
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
end
|
|
|
|
|
|
close xc
|
|
|
|
|
|
deallocate xc
|
|
|
|
|
|
RETURN @resultat
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @input_type=3 begin
|
|
|
|
|
|
declare xc cursor for
|
|
|
|
|
|
select sst from applikationarchitekturobjectsst where guid=@input_guid
|
|
|
|
|
|
open xc
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
while @@fetch_status=0 begin
|
|
|
|
|
|
set @resultat=@resultat + '- '+@appl+@crlf
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
end
|
|
|
|
|
|
close xc
|
|
|
|
|
|
deallocate xc
|
|
|
|
|
|
RETURN @resultat
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @input_type=4 begin
|
|
|
|
|
|
declare xc cursor for
|
|
|
|
|
|
select applikation from applikationarchitekturobjectvirt where guid=@input_guid
|
|
|
|
|
|
open xc
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
while @@fetch_status=0 begin
|
|
|
|
|
|
set @resultat=@resultat + '- '+@appl+@crlf
|
|
|
|
|
|
fetch next from xc into @appl
|
|
|
|
|
|
end
|
|
|
|
|
|
close xc
|
|
|
|
|
|
deallocate xc
|
|
|
|
|
|
RETURN @resultat
|
|
|
|
|
|
end
|
|
|
|
|
|
RETURN @resultat
|
|
|
|
|
|
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_arbeitstage] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_arbeitstage]
|
|
|
(
|
|
|
@madetailnr INT,
|
|
|
@jahr int,
|
|
|
@monat INT
|
|
|
)
|
|
|
RETURNS float
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @SOLL INT
|
|
|
DECLARE @Netto INT
|
|
|
DECLARE @oenr INT
|
|
|
DECLARE @Individuelle_Reduktion float
|
|
|
DECLARE @reduktion_nicht_verrechenbar int
|
|
|
DECLARE @valuefound INT
|
|
|
SET @valuefound=-1
|
|
|
SET @Individuelle_Reduktion=0
|
|
|
SELECT @Individuelle_Reduktion=Individuelle_Reduktion, @oenr=oenr FROM dbo.MADetails WHERE MADetailNr=@madetailnr
|
|
|
WHILE @valuefound<0 BEGIN
|
|
|
SELECT @reduktion_nicht_verrechenbar=ISNULL(reduktion_nicht_verrechenbar,0),@oenr=parentid FROM oe WHERE oenr=@oenr
|
|
|
IF @reduktion_nicht_verrechenbar>0 SET @valuefound=1
|
|
|
IF @oenr = 0 BEGIN
|
|
|
SET @valuefound=2
|
|
|
IF @reduktion_nicht_verrechenbar=0 SET @reduktion_nicht_verrechenbar=0
|
|
|
END
|
|
|
end
|
|
|
IF @Individuelle_Reduktion > 0 SET @Individuelle_Reduktion=@Individuelle_Reduktion/12
|
|
|
DECLARE @res float
|
|
|
SELECT @res = Plantage FROM jahrestabelle WHERE jahr=@jahr AND monat=@monat
|
|
|
SET @res=@res*((100-@reduktion_nicht_verrechenbar))/100
|
|
|
SET @res=@res - @Individuelle_Reduktion
|
|
|
SET @res=ROUND(@res,2)
|
|
|
|
|
|
--SELECT @res = Arbeitstage FROM jahrestabelle WHERE jahr=@jahr AND monat=@monat
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_arbeitstage_old] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
Create FUNCTION [dbo].[get_arbeitstage_old]
|
|
|
(
|
|
|
@jahr int,
|
|
|
@monat int
|
|
|
)
|
|
|
RETURNS float
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @res int
|
|
|
SELECT @res = arbeitstage FROM jahrestabelle WHERE jahr=@jahr AND monat=@monat
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_arbeitstage_prozent] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_arbeitstage_prozent]
|
|
|
(
|
|
|
@OE INT
|
|
|
)
|
|
|
RETURNS float
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @SOLL INT
|
|
|
DECLARE @Netto INT
|
|
|
DECLARE @oenr INT
|
|
|
DECLARE @Individuelle_Reduktion float
|
|
|
DECLARE @reduktion_nicht_verrechenbar int
|
|
|
DECLARE @valuefound INT
|
|
|
|
|
|
SET @valuefound=-1
|
|
|
SELECT @reduktion_nicht_verrechenbar=ISNULL(reduktion_nicht_verrechenbar,0),@oenr=parentid FROM oe WHERE oenr=@oe
|
|
|
if @reduktion_nicht_verrechenbar > 0 set @valuefound=1
|
|
|
WHILE @valuefound<0 BEGIN
|
|
|
SELECT @reduktion_nicht_verrechenbar=ISNULL(reduktion_nicht_verrechenbar,0),@oenr=parentid FROM oe WHERE oenr=@oenr
|
|
|
IF @reduktion_nicht_verrechenbar>0 SET @valuefound=1
|
|
|
IF @oenr = 0 BEGIN
|
|
|
SET @valuefound=2
|
|
|
IF @reduktion_nicht_verrechenbar=0 SET @reduktion_nicht_verrechenbar=0
|
|
|
END
|
|
|
end
|
|
|
DECLARE @res float
|
|
|
set @res=@reduktion_nicht_verrechenbar
|
|
|
--SET @res=@res*((100-@reduktion_nicht_verrechenbar))/100
|
|
|
--'SET @res=ROUND(@res,2)
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Get_Dateperiode] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
Create FUNCTION [dbo].[Get_Dateperiode]
|
|
|
(
|
|
|
@type varchar(255),
|
|
|
@startperiode int
|
|
|
)
|
|
|
Returns datetime
|
|
|
AS
|
|
|
BEGIN
|
|
|
declare @dt datetime
|
|
|
declare @offset int
|
|
|
if @type='ActWeek' begin
|
|
|
if @startperiode=1 begin
|
|
|
set @dt=DATEADD(wk, DATEDIFF(wk, 6, getdate()), 6)
|
|
|
set @dt=dateadd(dd,1,@dt)
|
|
|
end
|
|
|
if @startperiode=0 begin
|
|
|
set @dt=DATEADD(wk, DATEDIFF(wk, 5, getdate()), 5)
|
|
|
set @dt=dateadd(dd,2,@dt)
|
|
|
set @dt=dateadd(ms,-3,@dt)
|
|
|
end
|
|
|
return @dt
|
|
|
end
|
|
|
if @type='ActMonth' begin
|
|
|
if @startperiode=1 set @dt=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
|
|
|
if @startperiode=0 set @dt=Dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate() )+1, 0))
|
|
|
return @dt
|
|
|
end
|
|
|
if @type='ActQuarter' begin
|
|
|
if @startperiode=1 set @dt= DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
|
|
|
if @startperiode=0 begin
|
|
|
set @dt= dateadd(qq,datediff(qq,-1,getdate()),-1)
|
|
|
set @dt=dateadd(dd,1,@dt)
|
|
|
set @dt=dateadd(ms,-3,@dt)
|
|
|
end
|
|
|
return @dt
|
|
|
end
|
|
|
if @type='ActYear' begin
|
|
|
if @startperiode=1 set @dt = DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
|
|
|
if @startperiode=0 set @dt = dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate() )+1, 0))
|
|
|
return @dt
|
|
|
end
|
|
|
|
|
|
declare @calcdate datetime
|
|
|
if @type='LastWeek' begin
|
|
|
set @calcdate=dateadd(wk,-1,getdate())
|
|
|
if @startperiode=1 begin
|
|
|
set @dt=DATEADD(wk, DATEDIFF(wk, 6, @calcdate), 6)
|
|
|
set @dt=dateadd(dd,1,@dt)
|
|
|
end
|
|
|
if @startperiode=0 begin
|
|
|
set @dt=DATEADD(wk, DATEDIFF(wk, 5, @calcdate), 5)
|
|
|
set @dt=dateadd(dd,2,@dt)
|
|
|
set @dt=dateadd(ms,-3,@dt)
|
|
|
end
|
|
|
return @dt
|
|
|
end
|
|
|
if @type='LastMonth' begin
|
|
|
set @calcdate=dateadd(mm,-1,getdate())
|
|
|
if @startperiode=1 set @dt=DATEADD(mm, DATEDIFF(mm,0,@calcdate), 0)
|
|
|
if @startperiode=0 set @dt=Dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,@calcdate )+1, 0))
|
|
|
return @dt
|
|
|
end
|
|
|
if @type='LastQuarter' begin
|
|
|
set @calcdate=dateadd(qq,-1,getdate())
|
|
|
if @startperiode=1 set @dt= DATEADD(qq, DATEDIFF(qq,0,@calcdate), 0)
|
|
|
if @startperiode=0 begin
|
|
|
set @dt= dateadd(qq,datediff(qq,-1,@calcdate),-1)
|
|
|
set @dt=dateadd(dd,1,@dt)
|
|
|
set @dt=dateadd(ms,-3,@dt)
|
|
|
end
|
|
|
return @dt
|
|
|
end
|
|
|
if @type='LastYear' begin
|
|
|
set @calcdate=dateadd(yy,-1,getdate())
|
|
|
if @startperiode=1 set @dt = DATEADD(yy, DATEDIFF(yy,0,@calcdate), 0)
|
|
|
if @startperiode=0 set @dt = dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,@calcdate )+1, 0))
|
|
|
return @dt
|
|
|
end
|
|
|
|
|
|
|
|
|
return @dt
|
|
|
END
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_gremium] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_gremium]
|
|
|
(
|
|
|
@keyvalue int
|
|
|
)
|
|
|
RETURNS varchar(255)
|
|
|
AS
|
|
|
BEGIN
|
|
|
declare @res varchar(255)
|
|
|
set @res=''
|
|
|
select @res=ISNULL(Gruppierungsbegriff,'') from gremiumgruppierung where gremiumgruppierungnr=@keyvalue and aktiv=1
|
|
|
if @@ROWCOUNT=0 set @res=''
|
|
|
return @res
|
|
|
|
|
|
END
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_keyuser_stv] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_keyuser_stv]
|
|
|
(@applikationnr int,
|
|
|
@typ int)
|
|
|
RETURNS varchar(255)
|
|
|
AS
|
|
|
BEGIN
|
|
|
declare @res varchar(255)
|
|
|
SELECT @res=dbo.Person.Name + ' ' + dbo.Person.Vorname
|
|
|
FROM dbo.ApplikationKontakt INNER JOIN
|
|
|
dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr
|
|
|
WHERE (dbo.Person.Aktiv = 1) AND (dbo.ApplikationKontakt.Aktiv = 1) AND
|
|
|
(dbo.ApplikationKontakt.KontakttypNr = @typ) AND (dbo.ApplikationKontakt.Applikationnr = @applikationnr)
|
|
|
if @res is null set @res=''
|
|
|
return @res
|
|
|
END
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Get_Kuendigungsfrist] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS OFF
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER OFF
|
|
|
GO
|
|
|
|
|
|
CREATE FUNCTION [dbo].[Get_Kuendigungsfrist]
|
|
|
(@kuendigungsfristnr int, @kuendigung int)
|
|
|
RETURNS varchar (25)
|
|
|
as
|
|
|
BEGIN
|
|
|
declare @result varchar(25)
|
|
|
SET @result=''
|
|
|
if @kuendigung=0 return @result
|
|
|
select @result = bezeichnung from kuendigungsfristen where kuendigungsfristnr = @kuendigungsfristnr
|
|
|
return @result
|
|
|
END
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_monatstabelle] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_monatstabelle](@from AS DATETIME, @to AS DATETIME)
|
|
|
RETURNS @Dates TABLE(start_date DATETIME, End_Date datetime)
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @st DATETIME
|
|
|
DECLARE @ed DATETIME
|
|
|
|
|
|
WHILE @from < @to BEGIN
|
|
|
SELECT @st=DATEADD(MONTH, DATEDIFF(MONTH, 0, @from), 0)
|
|
|
SELECT @ed=DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, @from) + 1, 0))
|
|
|
SET @ed=DATEADD(HOUR,23,@ed)
|
|
|
SET @ed=DATEADD(MINUTE,59,@ed)
|
|
|
SET @ed=DATEADD(SECOND,45,@ed)
|
|
|
|
|
|
INSERT @dates (start_date, end_date) VALUES(@st, @ed)
|
|
|
SET @from = DATEADD(MONTH, 1,@from)
|
|
|
end
|
|
|
RETURN
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Get_Next_Kuendigungstermin] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
Create FUNCTION [dbo].[Get_Next_Kuendigungstermin]
|
|
|
(@ereignisnr int)
|
|
|
Returns datetime AS
|
|
|
BEGIN
|
|
|
declare @start as datetime
|
|
|
declare @ende as datetime
|
|
|
declare @periode as integer
|
|
|
declare @workdate datetime
|
|
|
|
|
|
select @start=start, @ende=ende, @periode=periodizitaetnr from vertragsereignis where ereignisnr=@ereignisnr
|
|
|
if @ende < '01.01.1901' set @ende='31.12.2099'
|
|
|
if @periode = 15 begin
|
|
|
select @start=datum, @ende=ende, @periode=periodizitaetnr from vertragsereignis where ereignisnr=@ereignisnr
|
|
|
if @start > getdate()
|
|
|
set @workdate=@start
|
|
|
return @workdate
|
|
|
end
|
|
|
|
|
|
--PeriodizitaetNr Bezeichnung--
|
|
|
--9 jährlich
|
|
|
--10 täglich
|
|
|
--11 wöchentlich
|
|
|
--12 monatlich
|
|
|
--13 zwei-monatlich
|
|
|
--14 halb-jährlich
|
|
|
--15 einmalig
|
|
|
--16 vierteljährlich
|
|
|
set @workdate = @start
|
|
|
while @workdate < @ende and @workdate < getdate() begin
|
|
|
if @periode = 9 set @workdate=dateadd(yy,1,@workdate)
|
|
|
if @periode = 10 set @workdate=dateadd(dd,1,@workdate)
|
|
|
if @periode = 11 set @workdate=dateadd(ww,1,@workdate)
|
|
|
if @periode = 12 set @workdate=dateadd(mm,1,@workdate)
|
|
|
if @periode = 13 set @workdate=dateadd(mm,2,@workdate)
|
|
|
if @periode = 14 set @workdate=dateadd(mm,6,@workdate)
|
|
|
if @periode = 16 set @workdate=dateadd(qq,1,@workdate)
|
|
|
end
|
|
|
|
|
|
if @workdate > @ende set @workdate='01.01.1900'
|
|
|
return @workdate
|
|
|
end
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_plantage] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_plantage]
|
|
|
(
|
|
|
@jahr int,
|
|
|
@monat INT
|
|
|
)
|
|
|
RETURNS float
|
|
|
AS
|
|
|
BEGIN
|
|
|
DECLARE @res INT
|
|
|
SELECT @res = plantage FROM jahrestabelle WHERE jahr=@jahr AND monat=@monat
|
|
|
RETURN @res
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Get_SecurityLevel] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS OFF
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER OFF
|
|
|
GO
|
|
|
|
|
|
CREATE FUNCTION [dbo].[Get_SecurityLevel] (@mitarbeiternr int)
|
|
|
RETURNS int AS
|
|
|
BEGIN
|
|
|
declare @seclevel int
|
|
|
SELECT TOP 1 @seclevel = dbo.SecurityLevel.SecurityLevelNr
|
|
|
FROM dbo.funktionsgruppe_rolle INNER JOIN
|
|
|
dbo.rolle ON dbo.funktionsgruppe_rolle.rollenr = dbo.rolle.rollenr INNER JOIN
|
|
|
dbo.rolle_securitylevel ON dbo.rolle.rollenr = dbo.rolle_securitylevel.rollenr INNER JOIN
|
|
|
dbo.funktionsgruppe ON dbo.funktionsgruppe_rolle.funktionsgruppenr = dbo.funktionsgruppe.funktionsgruppenr INNER JOIN
|
|
|
dbo.mitarbeiter_funktionsgruppe ON dbo.funktionsgruppe.funktionsgruppenr = dbo.mitarbeiter_funktionsgruppe.funktionsgruppenr INNER JOIN
|
|
|
dbo.SecurityLevel ON dbo.rolle_securitylevel.SecurityLevelNr = dbo.SecurityLevel.SecurityLevelNr
|
|
|
WHERE (dbo.SecurityLevel.Aktiv = 1) AND (dbo.mitarbeiter_funktionsgruppe.aktiv = 1) AND (dbo.funktionsgruppe.aktiv = 1) AND (dbo.rolle.aktiv = 1) AND
|
|
|
(dbo.funktionsgruppe_rolle.aktiv = 1) AND (dbo.rolle_securitylevel.aktiv = 1) and dbo.mitarbeiter_funktionsgruppe.mitarbeiternr=@mitarbeiternr
|
|
|
ORDER BY dbo.rolle_securitylevel.SecurityLevelNr desc
|
|
|
if @@rowcount = 0 begin
|
|
|
set @seclevel=9999
|
|
|
end
|
|
|
return @seclevel
|
|
|
END
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Get_SecurityLevelTab] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[Get_SecurityLevelTab]
|
|
|
(
|
|
|
@mitarbeiternr int
|
|
|
)
|
|
|
RETURNS @Seclevel TABLE(SecurityLevelnr int)
|
|
|
AS
|
|
|
begin
|
|
|
insert @Seclevel (SecurityLevelnr) values(0)
|
|
|
insert @seclevel
|
|
|
SELECT dbo.SecurityLevel.SecurityLevelNr
|
|
|
FROM dbo.funktionsgruppe_rolle INNER JOIN
|
|
|
dbo.rolle ON dbo.funktionsgruppe_rolle.rollenr = dbo.rolle.rollenr INNER JOIN
|
|
|
dbo.rolle_securitylevel ON dbo.rolle.rollenr = dbo.rolle_securitylevel.rollenr INNER JOIN
|
|
|
dbo.funktionsgruppe ON dbo.funktionsgruppe_rolle.funktionsgruppenr = dbo.funktionsgruppe.funktionsgruppenr INNER JOIN
|
|
|
dbo.mitarbeiter_funktionsgruppe ON dbo.funktionsgruppe.funktionsgruppenr = dbo.mitarbeiter_funktionsgruppe.funktionsgruppenr INNER JOIN
|
|
|
dbo.SecurityLevel ON dbo.rolle_securitylevel.SecurityLevelNr = dbo.SecurityLevel.SecurityLevelNr
|
|
|
WHERE (dbo.SecurityLevel.Aktiv = 1) AND (dbo.mitarbeiter_funktionsgruppe.aktiv = 1) AND (dbo.funktionsgruppe.aktiv = 1) AND (dbo.rolle.aktiv = 1) AND
|
|
|
(dbo.funktionsgruppe_rolle.aktiv = 1) AND (dbo.rolle_securitylevel.aktiv = 1) and dbo.mitarbeiter_funktionsgruppe.mitarbeiternr=@mitarbeiternr
|
|
|
return
|
|
|
end
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_solved_in] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
CREATE FUNCTION [dbo].[get_solved_in]
|
|
|
(
|
|
|
@von DATETIME,
|
|
|
@bis DATETIME
|
|
|
)
|
|
|
RETURNS @solved_in TABLE (ticketid varchar(255), statusid varchar(255))
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
DECLARE @ticketid varchar(255)
|
|
|
DECLARE @statusid VARCHAR(255)
|
|
|
DECLARE @changedate DATETIME
|
|
|
DECLARE @rc int
|
|
|
DECLARE xc CURSOR FOR
|
|
|
SELECT DISTINCT ticketid FROM txp_ticket_data WHERE ticketid LIKE 'in_%' AND status_neu = 'solved' AND Status_Changedate BETWEEN @von AND @bis
|
|
|
OPEN xc
|
|
|
FETCH NEXT FROM xc INTO @ticketid
|
|
|
WHILE @@FETCH_STATUS=0 BEGIN
|
|
|
FETCH NEXT FROM xc INTO @ticketid
|
|
|
SELECT TOP 1 @statusid=statusid, @changedate=Status_Changedate FROM txp_ticket_data WHERE ticketid=@ticketid AND status_neu='Solved' ORDER BY Status_Changedate DESC
|
|
|
SELECT @rc=COUNT(*) FROM dbo.TXP_Ticket_Data WHERE ticketid=@ticketid AND Status_Changedate>@changedate AND status_neu <> 'Solved' AND status_neu <> 'Geschlossen'
|
|
|
AND status_neu <> 'Geschlossen "Autoclose"' AND status_neu <> 'Warten auf Schliessung'
|
|
|
IF @rc=0 begin
|
|
|
INSERT @solved_in (ticketid, statusid) VALUES(@ticketid, @statusid)
|
|
|
end
|
|
|
END
|
|
|
CLOSE xc
|
|
|
DEALLOCATE xc
|
|
|
return
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[Get_Type] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[Get_Type]
|
|
|
|
|
|
(
|
|
|
|
|
|
@typ int,
|
|
|
|
|
|
@det varchar(25),
|
|
|
|
|
|
@applnr int
|
|
|
|
|
|
)
|
|
|
|
|
|
RETURNS varchar(50)
|
|
|
|
|
|
AS
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
declare @ret varchar(50)
|
|
|
|
|
|
declare @cnt int
|
|
|
|
|
|
declare @user varchar(50)
|
|
|
|
|
|
if @typ=1 begin
|
|
|
|
|
|
if @det='TS' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=1 and aktiv = 1
|
|
|
|
|
|
if @det='Filer' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=2 and aktiv = 1
|
|
|
|
|
|
if @det='FAT (paketiert)' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=3 and aktiv = 1
|
|
|
|
|
|
if @det='FAT Manuell' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=4 and aktiv = 1
|
|
|
|
|
|
if @det='Web-Server' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=5 and aktiv = 1
|
|
|
|
|
|
if @det='Standalone' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=6 and aktiv = 1
|
|
|
|
|
|
if @det='externe URL' select @cnt=count(*) from ApplikationInstallationTyp where applikationnr=@applnr and installationtypnr=7 and aktiv = 1
|
|
|
|
|
|
|
|
|
if @cnt>0 set @ret='X' else set @ret=''
|
|
|
|
|
|
|
|
|
return @ret
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @typ=2 begin
|
|
|
|
|
|
if @det='SPF' select @cnt=count(*) from ApplikationInstallationals where applikationnr=@applnr and installationalstypnr=1 and aktiv=1
|
|
|
|
|
|
if @det='IPF' select @cnt=count(*) from ApplikationInstallationals where applikationnr=@applnr and installationalstypnr=2 and aktiv=1
|
|
|
|
|
|
if @det='NL' select @cnt=count(*) from ApplikationInstallationals where applikationnr=@applnr and installationalstypnr=3 and aktiv=1
|
|
|
|
|
|
if @det='HS' select @cnt=count(*) from ApplikationInstallationals where applikationnr=@applnr and installationalstypnr=4 and aktiv=1
|
|
|
|
|
|
if @det='CC' select @cnt=count(*) from ApplikationInstallationals where applikationnr=@applnr and installationalstypnr=5 and aktiv=1
|
|
|
|
|
|
if @det='Handel' select @cnt=count(*) from ApplikationInstallationals where applikationnr=@applnr and installationalstypnr=6 and aktiv=1
|
|
|
|
|
|
if @cnt>0 set @ret='X' else set @ret=''
|
|
|
|
|
|
return @ret
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @typ=3 begin
|
|
|
|
|
|
if @det='PK' select @cnt=count(*) from ApplikationInstallationFuer where applikationnr=@applnr and ApplikationStandardTypNr=1 and aktiv=1
|
|
|
|
|
|
if @det='FK' select @cnt=count(*) from ApplikationInstallationFuer where applikationnr=@applnr and ApplikationStandardTypNr=2 and aktiv=1
|
|
|
|
|
|
if @det='PBI'select @cnt=count(*) from ApplikationInstallationFuer where applikationnr=@applnr and ApplikationStandardTypNr=3 and aktiv=1
|
|
|
|
|
|
if @det='Stab' select @cnt=count(*) from ApplikationInstallationFuer where applikationnr=@applnr and ApplikationStandardTypNr=4 and aktiv=1
|
|
|
|
|
|
if @cnt>0 set @ret='X' else set @ret=''
|
|
|
|
|
|
return @ret
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @typ=4 begin
|
|
|
|
|
|
if @det='Key_User' begin
|
|
|
|
|
|
SELECT @ret=dbo.Person.Name + ' ' + dbo.Person.Vorname
|
|
|
|
|
|
FROM dbo.ApplikationKontakt INNER JOIN
|
|
|
|
|
|
dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr
|
|
|
|
|
|
WHERE (dbo.ApplikationKontakt.Aktiv = 1) AND (dbo.ApplikationKontakt.Applikationnr = @applnr) AND (dbo.ApplikationKontakt.KontakttypNr = 1)
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @det='Key_User_Stv' begin
|
|
|
|
|
|
SELECT @ret=dbo.Person.Name + ' ' + dbo.Person.Vorname
|
|
|
|
|
|
FROM dbo.ApplikationKontakt INNER JOIN
|
|
|
|
|
|
dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr
|
|
|
|
|
|
WHERE (dbo.ApplikationKontakt.Aktiv =1 ) AND (dbo.ApplikationKontakt.Applikationnr = @applnr) AND (dbo.ApplikationKontakt.KontakttypNr = 2)
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if @det='Fachvertreter' begin
|
|
|
|
|
|
SELECT @ret=dbo.Person.Name + ' ' + dbo.Person.Vorname
|
|
|
|
|
|
FROM dbo.ApplikationKontakt INNER JOIN
|
|
|
|
|
|
dbo.Person ON dbo.ApplikationKontakt.PersonNr = dbo.Person.PersonNr
|
|
|
|
|
|
WHERE (dbo.ApplikationKontakt.Aktiv = 1) AND (dbo.ApplikationKontakt.Applikationnr = @applnr) AND (dbo.ApplikationKontakt.KontakttypNr = 3)
|
|
|
|
|
|
end
|
|
|
|
|
|
return @ret
|
|
|
|
|
|
end
|
|
|
|
|
|
return @ret
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[get_x] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date, ,>
|
|
|
-- Description: <Description, ,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[get_x]
|
|
|
|
|
|
(
|
|
|
|
|
|
@inp bit
|
|
|
|
|
|
)
|
|
|
|
|
|
RETURNS varchar(1)
|
|
|
|
|
|
AS
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
DECLARE @RET VARCHAR(1)
|
|
|
|
|
|
IF @INP=1 SET @RET='x' ELSE SET @RET=''
|
|
|
|
|
|
RETURN @RET
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[lc_rpt1] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[lc_rpt1]
|
|
|
(
|
|
|
@produkte VARCHAR(255),
|
|
|
@von varchar(255),
|
|
|
@bis varchar(255),
|
|
|
@produkttypnr int
|
|
|
|
|
|
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (LC_Phasenr INT, Phase VARCHAR(255))
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
declare @tmp2 TABLE (LC_Phasenr INT, Phase VARCHAR(255), datum datetime)
|
|
|
declare @tmp3 TABLE (LC_Phasenr INT, Phase VARCHAR(255))
|
|
|
|
|
|
IF @von='' SET @von='01.01.1900'
|
|
|
IF @bis='' SET @bis='31.12.4712'
|
|
|
|
|
|
IF @produkte='' BEGIN
|
|
|
insert into @tmp2 SELECT DISTINCT dbo.LC_Phase.LC_PhaseNr, dbo.LC_Phase.Bezeichnung AS Phase, lc_produkt_phase.datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
AND (@produkttypnr=-1 OR @produkttypnr = lc_produkt.ProdukttypNr)
|
|
|
ORDER BY lc_produkt_phase.datum
|
|
|
|
|
|
END
|
|
|
IF @produkte<>'' BEGIN
|
|
|
insert into @tmp2 SELECT DISTINCT dbo.LC_Phase.LC_PhaseNr, dbo.LC_Phase.Bezeichnung AS Phase, lc_produkt_phase.datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
and dbo.LC_Produkt_Phase.LC_Produktnr IN (SELECT item FROM dbo.fnkt_split(@produkte,',',1))
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
AND (@produkttypnr=-1 OR @produkttypnr = lc_produkt.ProdukttypNr)
|
|
|
ORDER BY lc_produkt_phase.datum
|
|
|
end
|
|
|
|
|
|
INSERT @tmp3
|
|
|
SELECT TOP (100) PERCENT LC_Phasenr, Phase
|
|
|
FROM @tmp2
|
|
|
GROUP BY LC_Phasenr, Phase
|
|
|
ORDER BY MIN(datum)
|
|
|
|
|
|
DECLARE @phase VARCHAR(255)
|
|
|
DECLARE @i INT
|
|
|
DECLARE @zwphase VARCHAR(255)
|
|
|
SET @zwphase=''
|
|
|
SET @i=0
|
|
|
DECLARE xc CURSOR FOR
|
|
|
SELECT phase FROM @tmp3
|
|
|
OPEN xc
|
|
|
FETCH NEXT FROM xc INTO @phase
|
|
|
WHILE @@FETCH_STATUS=0 BEGIN
|
|
|
IF @zwphase<>@phase BEGIN
|
|
|
SET @i=@i+1
|
|
|
SET @zwphase=@phase
|
|
|
END
|
|
|
UPDATE @tmp3 SET phase=STR(@i)+' '+@phase WHERE phase=@phase
|
|
|
FETCH NEXT FROM xc INTO @phase
|
|
|
END
|
|
|
CLOSE xc
|
|
|
deallocate xc
|
|
|
INSERT @tmp1 SELECT lc_phasenr, phase FROM @tmp3
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[lc_rpt2] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[lc_rpt2]
|
|
|
(
|
|
|
@produkte VARCHAR(255),
|
|
|
@von varchar(255),
|
|
|
@bis varchar(255),
|
|
|
@produkttypnr int
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (LC_Produktnr INT, Produkt VARCHAR(255), LC_PhaseNr INT, datum DATETIME)
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
IF @von='' SET @von='01.01.1900'
|
|
|
IF @bis='' SET @bis='31.12.4712'
|
|
|
|
|
|
IF @produkte='' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT distinct dbo.LC_Produkt.LC_ProduktNr, dbo.LC_Produkt.Bezeichnung AS Produkt, dbo.LC_Phase.LC_PhaseNr, dbo.LC_Produkt_Phase.Datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN
|
|
|
dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
ORDER BY Produkt
|
|
|
|
|
|
end
|
|
|
IF @produkte<>'' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT distinct dbo.LC_Produkt.LC_ProduktNr, dbo.LC_Produkt.Bezeichnung AS Produkt, dbo.LC_Phase.LC_PhaseNr, dbo.LC_Produkt_Phase.Datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN
|
|
|
dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
and dbo.lc_produkt.lc_produktnr IN (SELECT item FROM dbo.fnkt_split(@produkte,',',1))
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
ORDER BY Produkt
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[lc_rpt3] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[lc_rpt3]
|
|
|
(
|
|
|
@produkte VARCHAR(255),
|
|
|
@von varchar(255),
|
|
|
@bis varchar(255),
|
|
|
@produkttypnr int
|
|
|
|
|
|
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (LC_Phasenr INT, Phase VARCHAR(255))
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
declare @tmp2 TABLE (LC_Phasenr INT, Phase VARCHAR(255), datum datetime)
|
|
|
declare @tmp3 TABLE (LC_Phasenr INT, Phase VARCHAR(255))
|
|
|
|
|
|
|
|
|
IF @von='' SET @von='01.01.1900'
|
|
|
IF @bis='' SET @bis='31.12.4712'
|
|
|
|
|
|
IF @produkte='' BEGIN
|
|
|
insert into @tmp2 SELECT DISTINCT dbo.LC_Phase.LC_PhaseNr, dbo.LC_Phase.Bezeichnung AS Phase, lc_produkt_phase.datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
AND (@produkttypnr=-1 OR @produkttypnr = lc_produkt.ProdukttypNr)
|
|
|
ORDER BY lc_produkt_phase.datum
|
|
|
|
|
|
END
|
|
|
IF @produkte<>'' BEGIN
|
|
|
insert into @tmp2 SELECT DISTINCT dbo.LC_Phase.LC_PhaseNr, dbo.LC_Phase.Bezeichnung AS Phase, lc_produkt_phase.datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
and dbo.lc_phase.lc_phasenr IN (SELECT item FROM dbo.fnkt_split(@produkte,',',1))
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
AND (@produkttypnr=-1 OR @produkttypnr = lc_produkt.ProdukttypNr)
|
|
|
ORDER BY lc_produkt_phase.datum
|
|
|
end
|
|
|
|
|
|
INSERT @tmp3
|
|
|
SELECT TOP (100) PERCENT LC_Phasenr, Phase
|
|
|
FROM @tmp2
|
|
|
GROUP BY LC_Phasenr, Phase
|
|
|
ORDER BY MIN(datum)
|
|
|
|
|
|
DECLARE @phase VARCHAR(255)
|
|
|
DECLARE @i INT
|
|
|
DECLARE @zwphase VARCHAR(255)
|
|
|
SET @zwphase=''
|
|
|
SET @i=0
|
|
|
DECLARE xc CURSOR FOR
|
|
|
SELECT phase FROM @tmp3
|
|
|
OPEN xc
|
|
|
FETCH NEXT FROM xc INTO @phase
|
|
|
WHILE @@FETCH_STATUS=0 BEGIN
|
|
|
IF @zwphase<>@phase BEGIN
|
|
|
SET @i=@i+1
|
|
|
SET @zwphase=@phase
|
|
|
END
|
|
|
UPDATE @tmp3 SET phase=STR(@i)+' '+@phase WHERE phase=@phase
|
|
|
FETCH NEXT FROM xc INTO @phase
|
|
|
END
|
|
|
CLOSE xc
|
|
|
deallocate xc
|
|
|
INSERT @tmp1 SELECT lc_phasenr, phase FROM @tmp3
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[lc_rpt4] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[lc_rpt4]
|
|
|
(
|
|
|
@produkte VARCHAR(255),
|
|
|
@von varchar(255),
|
|
|
@bis varchar(255),
|
|
|
@produkttypnr int
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (LC_Produktnr INT, Produkt VARCHAR(255), LC_PhaseNr INT, datum DATETIME)
|
|
|
AS
|
|
|
begin
|
|
|
|
|
|
IF @von='' SET @von='01.01.1900'
|
|
|
IF @bis='' SET @bis='31.12.4712'
|
|
|
|
|
|
IF @produkte='' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT distinct dbo.LC_Produkt.LC_ProduktNr, dbo.LC_Produkt.Bezeichnung AS Produkt, dbo.LC_Phase.LC_PhaseNr, dbo.LC_Produkt_Phase.Datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN
|
|
|
dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
AND (@produkttypnr=-1 OR @produkttypnr = lc_produkt.ProdukttypNr)
|
|
|
|
|
|
ORDER BY dbo.LC_Produkt_Phase.Datum,Produkt
|
|
|
|
|
|
end
|
|
|
IF @produkte<>'' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT distinct dbo.LC_Produkt.LC_ProduktNr, dbo.LC_Produkt.Bezeichnung AS Produkt, dbo.LC_Phase.LC_PhaseNr, dbo.LC_Produkt_Phase.Datum
|
|
|
FROM dbo.LC_Produkt INNER JOIN
|
|
|
dbo.LC_Produkt_Phase ON dbo.LC_Produkt.LC_ProduktNr = dbo.LC_Produkt_Phase.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Phase.Aktiv = 1) AND (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
and dbo.lc_phase.lc_phasenr IN (SELECT item FROM dbo.fnkt_split(@produkte,',',1))
|
|
|
AND dbo.LC_Produkt_Phase.Datum BETWEEN @von AND @bis
|
|
|
AND (@produkttypnr=-1 OR @produkttypnr = lc_produkt.ProdukttypNr)
|
|
|
|
|
|
ORDER BY dbo.LC_Produkt_Phase.Datum,Produkt
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[lc_rpt5] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[lc_rpt5]
|
|
|
(
|
|
|
@produkte VARCHAR(255),
|
|
|
@inTagen varchar(255)
|
|
|
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (LC_Phasenr INT, Phase VARCHAR(255))
|
|
|
AS
|
|
|
begin
|
|
|
DECLARE @von DATETIME
|
|
|
DECLARE @it integer
|
|
|
DECLARE @bis datetime
|
|
|
SET @it=@intagen
|
|
|
IF @intagen <> 0 BEGIN
|
|
|
SET @von=DATEADD(DAY,@it,GETDATE())
|
|
|
SET @von=DATEADD(dd, DATEDIFF(dd, 0, @von), 0)
|
|
|
END
|
|
|
|
|
|
DECLARE @tmp2 TABLE (lc_Produktnr INT, Produkt VARCHAR(255), lc_phasenr INT, Phase VARCHAR(255), datum DATETIME, skey INT IDENTITY)
|
|
|
DECLARE @tmp3 TABLE (lc_Produktnr INT, Produkt VARCHAR(255), lc_phasenr int, phase VARCHAR(255), datumvon DATETIME, datumbis DATETIME, diff INT, skey INT )
|
|
|
|
|
|
INSERT @tmp2
|
|
|
SELECT TOP (100) PERCENT dbo.LC_Produkt_Phase.LC_ProduktNr, dbo.lc_produkt.bezeichnung AS Produkt, dbo.LC_Produkt_Phase.LC_PhaseNr, dbo.LC_Phase.Bezeichnung AS Phase, dbo.LC_Produkt_Phase.Datum
|
|
|
FROM dbo.LC_Produkt_Phase INNER JOIN
|
|
|
dbo.LC_Produkt ON dbo.LC_Produkt_Phase.LC_ProduktNr = dbo.LC_Produkt.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
ORDER BY dbo.LC_Produkt_Phase.LC_ProduktNr, dbo.LC_Produkt_Phase.Datum DESC
|
|
|
|
|
|
INSERT @tmp3
|
|
|
SELECT t1.lc_ProduktNr, t1.produkt, t1.lc_phasenr, t1.Phase , t1.datum AS DatumVon, x.datum AS DatumBis, ISNULL(DATEDIFF(DAY,t1.datum,x.datum),0) AS Diff, t1.skey
|
|
|
FROM @tmp2 t1
|
|
|
OUTER APPLY (
|
|
|
SELECT TOP 1 datum FROM @tmp2 t2 WHERE t2.skey < t1.skey ORDER BY t2.skey desc) x
|
|
|
ORDER BY lc_ProduktNr, t1.datum asc
|
|
|
|
|
|
UPDATE @tmp3 SET diff=0 WHERE diff < 0
|
|
|
DELETE FROM @tmp3 WHERE diff=0
|
|
|
|
|
|
IF @produkte='' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT DISTINCT LC_PhaseNr, Phase AS Phase FROM @tmp3
|
|
|
WHERE @von BETWEEN datumvon AND datumbis
|
|
|
END
|
|
|
IF @produkte<>'' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT DISTINCT LC_PhaseNr, Phase AS Phase FROM @tmp3
|
|
|
WHERE @von BETWEEN datumvon AND datumbis AND lc_produktnr IN (SELECT item FROM dbo.fnkt_split(@produkte,',',1))
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[lc_rpt6] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS ON
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
|
GO
|
|
|
|
|
|
|
|
|
-- =============================================
|
|
|
-- Author: <Author,,Name>
|
|
|
-- Create date: <Create Date,,>
|
|
|
-- Description: <Description,,>
|
|
|
-- =============================================
|
|
|
CREATE FUNCTION [dbo].[lc_rpt6]
|
|
|
(
|
|
|
@produkte VARCHAR(255),
|
|
|
@inTagen VARCHAR(255)
|
|
|
)
|
|
|
RETURNS @tmp1 TABLE (LC_Produktnr INT, Produkt VARCHAR(255), LC_PhaseNr INT, datum DATETIME)
|
|
|
AS
|
|
|
begin
|
|
|
DECLARE @von DATETIME
|
|
|
DECLARE @it integer
|
|
|
DECLARE @bis datetime
|
|
|
SET @it=@intagen
|
|
|
IF @intagen <> 0 BEGIN
|
|
|
SET @von=DATEADD(DAY,@it,GETDATE())
|
|
|
SET @von=DATEADD(dd, DATEDIFF(dd, 0, @von), 0)
|
|
|
END
|
|
|
|
|
|
DECLARE @tmp2 TABLE (lc_Produktnr INT, Produkt VARCHAR(255), lc_phasenr INT, Phase VARCHAR(255), datum DATETIME, skey INT IDENTITY)
|
|
|
DECLARE @tmp3 TABLE (lc_Produktnr INT, Produkt VARCHAR(255), lc_phasenr int, phase VARCHAR(255), datumvon DATETIME, datumbis DATETIME, diff INT, skey INT )
|
|
|
|
|
|
INSERT @tmp2
|
|
|
SELECT TOP (100) PERCENT dbo.LC_Produkt_Phase.LC_ProduktNr, dbo.lc_produkt.bezeichnung AS Produkt, dbo.LC_Produkt_Phase.LC_PhaseNr, dbo.LC_Phase.Bezeichnung AS Phase, dbo.LC_Produkt_Phase.Datum
|
|
|
FROM dbo.LC_Produkt_Phase INNER JOIN
|
|
|
dbo.LC_Produkt ON dbo.LC_Produkt_Phase.LC_ProduktNr = dbo.LC_Produkt.LC_ProduktNr INNER JOIN
|
|
|
dbo.LC_Phase ON dbo.LC_Produkt_Phase.LC_PhaseNr = dbo.LC_Phase.LC_PhaseNr
|
|
|
WHERE (dbo.LC_Produkt_Phase.Aktiv = 1) AND (dbo.LC_Produkt.Aktiv = 1) AND (dbo.LC_Produkt.StatusNr = 1)
|
|
|
ORDER BY dbo.LC_Produkt_Phase.LC_ProduktNr, dbo.LC_Produkt_Phase.Datum DESC
|
|
|
|
|
|
INSERT @tmp3
|
|
|
SELECT t1.lc_ProduktNr, t1.produkt, t1.lc_phasenr, t1.Phase , t1.datum AS DatumVon, x.datum AS DatumBis, ISNULL(DATEDIFF(DAY,t1.datum,x.datum),0) AS Diff, t1.skey
|
|
|
FROM @tmp2 t1
|
|
|
OUTER APPLY (
|
|
|
SELECT TOP 1 datum FROM @tmp2 t2 WHERE t2.skey < t1.skey ORDER BY t2.skey desc) x
|
|
|
ORDER BY lc_ProduktNr, t1.datum asc
|
|
|
|
|
|
UPDATE @tmp3 SET diff=0 WHERE diff < 0
|
|
|
|
|
|
DELETE FROM @tmp3 WHERE diff=0
|
|
|
|
|
|
IF @produkte='' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT DISTINCT LC_Produktnr, Produkt, lc_phasenr, datumvon
|
|
|
FROM @tmp3
|
|
|
WHERE @von BETWEEN datumvon AND datumbis
|
|
|
ORDER BY Produkt
|
|
|
|
|
|
end
|
|
|
IF @produkte<>'' BEGIN
|
|
|
insert into @tmp1
|
|
|
SELECT DISTINCT LC_Produktnr, Produkt, lc_phasenr, datumvon
|
|
|
FROM @tmp3
|
|
|
WHERE @von BETWEEN datumvon AND datumbis
|
|
|
|
|
|
AND lc_produktnr IN (SELECT item FROM dbo.fnkt_split(@produkte,',',1))
|
|
|
ORDER BY Produkt
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
/****** Object: UserDefinedFunction [dbo].[search_vertragselement] Script Date: 27.01.2017 08:56:19 ******/
|
|
|
SET ANSI_NULLS OFF
|
|
|
GO
|
|
|
SET QUOTED_IDENTIFIER OFF
|
|
|
GO
|
|
|
|
|
|
CREATE FUNCTION [dbo].[search_vertragselement]
|
|
|
(@vertragselementnr int, @suchstring varchar(255))
|
|
|
RETURNS int
|
|
|
AS
|
|
|
BEGIN
|
|
|
declare @cnt int
|
|
|
set @suchstring='%'+@suchstring+'%'
|
|
|
select @cnt=count(vertragselementnr) from dbo.vertragselement where vertragselementnr=@vertragselementnr and
|
|
|
(bezeichnung like @suchstring or beschreibung like @suchstring or nummer like @suchstring or suchbegriffe like @suchstring)
|
|
|
return @cnt
|
|
|
END
|
|
|
|
|
|
GO
|