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.
297 lines
18 KiB
297 lines
18 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_fhrlst_Anzahl_neu_checkliste] Script Date: 02.12.2016 09:08:53 ******/
|
|
DROP PROCEDURE [dbo].[sp_rpt_fhrlst_Anzahl_neu_checkliste]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_fhrlst_Anzahl_neu_checkliste] 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_rpt_fhrlst_Anzahl_neu_checkliste] @von DATETIME = NULL
|
|
,@bis DATETIME = NULL
|
|
,@OEStruktur INT = NULL
|
|
,@struktur_Ausschluss VARCHAR(255) = NULL
|
|
AS
|
|
BEGIN
|
|
IF @von IS NULL
|
|
SET @von = convert(DATETIME, '01.01.2014', 104)
|
|
ELSE
|
|
SET @von = CONVERT(DATETIME, @von, 104)
|
|
|
|
IF @bis IS NULL
|
|
SET @bis = convert(DATETIME, '31.05.2014', 104)
|
|
ELSE
|
|
SET @bis = CONVERT(DATETIME, @bis, 104)
|
|
|
|
IF @oestruktur IS NULL
|
|
SET @oestruktur = 24
|
|
|
|
IF @struktur_ausschluss IS NULL
|
|
SET @struktur_ausschluss = '31'
|
|
|
|
DECLARE @save_von DATETIME
|
|
DECLARE @save_bis DATETIME
|
|
DECLARE @dd1 VARCHAR(2)
|
|
DECLARE @mm1 VARCHAR(2)
|
|
DECLARE @yy1 VARCHAR(4)
|
|
DECLARE @datum VARCHAR(255)
|
|
|
|
SET @dd1 = DAY(@von)
|
|
SET @mm1 = MONTH(@von)
|
|
SET @yy1 = YEAR(@von)
|
|
|
|
IF LEN(@dd1) < 2
|
|
SET @dd1 = '0' + @dd1
|
|
|
|
IF LEN(@mm1) < 2
|
|
SET @mm1 = '0' + @mm1
|
|
SET @datum = @yy1 + '-' + @mm1 + '-' + @dd1 + ' 00:00:00'
|
|
SET @von = convert(DATETIME, @datum, 20)
|
|
SET @dd1 = DAY(@bis)
|
|
SET @mm1 = MONTH(@bis)
|
|
SET @yy1 = YEAR(@bis)
|
|
|
|
IF LEN(@dd1) < 2
|
|
SET @dd1 = '0' + @dd1
|
|
|
|
IF LEN(@mm1) < 2
|
|
SET @mm1 = '0' + @mm1
|
|
SET @datum = @yy1 + '-' + @mm1 + '-' + @dd1 + ' 23:59:59'
|
|
SET @bis = convert(DATETIME, @datum, 20)
|
|
SET @save_von = @von
|
|
SET @save_bis = @bis
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @tmpa TABLE (
|
|
[TGNummer] [varchar](50) NULL
|
|
,oenr INT
|
|
,sortierung INT
|
|
,START DATETIME
|
|
,Ende DATETIME
|
|
,[AU_offen] [INT] NOT NULL
|
|
,[AU_Geschlossen] [INT] NOT NULL
|
|
,[IN_Offen] [INT] NOT NULL
|
|
,[IN_Geschlossen] [INT] NOT NULL
|
|
,[IN_Langlaeufer] [INT] NOT NULL
|
|
,[IN_Aufwand] [float] NOT NULL
|
|
,[IN_GT_1PT] INT NOT NULL
|
|
)
|
|
DECLARE @tickettable TABLE (
|
|
tgnummer VARCHAR(255)
|
|
,NAME VARCHAR(255)
|
|
,ticketid VARCHAR(255)
|
|
,statusdatum VARCHAR(255)
|
|
,STATUS VARCHAR(255)
|
|
)
|
|
DECLARE @ansatz FLOAT
|
|
|
|
SET @ansatz = 8.0
|
|
|
|
--IF @per IS NULL
|
|
-- SET @per = GETDATE()
|
|
--***************************************************************************
|
|
-- Relevante Mitarbeiter am Per-Datum
|
|
--***************************************************************************
|
|
DECLARE @mnr INT
|
|
DECLARE @rc INT
|
|
DECLARE @mm INT
|
|
DECLARE @yy INT
|
|
|
|
|
|
DECLARE xm CURSOR
|
|
FOR
|
|
SELECT @von AS von
|
|
,@bis AS bis
|
|
|
|
OPEN xm
|
|
|
|
FETCH NEXT
|
|
FROM xm
|
|
INTO @von
|
|
,@bis
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT manr
|
|
FROM ma
|
|
WHERE aktiv = 1
|
|
AND gueltig_bis >= @bis
|
|
OR manr IN (
|
|
SELECT manr
|
|
FROM dbo.MADetails
|
|
WHERE Gueltig_ab >= @von
|
|
)
|
|
|
|
OPEN xc
|
|
|
|
FETCH NEXT
|
|
FROM xc
|
|
INTO @mnr
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
SELECT @rc = COUNT(*)
|
|
FROM dbo.MADetails
|
|
WHERE manr = @mnr
|
|
AND aktiv = 1
|
|
AND Gueltig_ab >= @von
|
|
|
|
IF @rc > 0
|
|
BEGIN
|
|
INSERT @tmpa
|
|
SELECT TOP 1 dbo.MA.TGNummer
|
|
,madetails.OENr
|
|
,ma.sortierung
|
|
,@von
|
|
,@bis
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,0.00
|
|
,0
|
|
FROM dbo.MA
|
|
LEFT OUTER JOIN dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr
|
|
WHERE dbo.MADetails.manr = @mnr
|
|
AND dbo.MADetails.Aktiv = 1
|
|
AND Gueltig_ab >= @von
|
|
AND madetails.oenr IN (
|
|
SELECT id
|
|
FROM dbo.fnkt_get_kpi_hierarchie(@oestruktur)
|
|
)
|
|
ORDER BY Gueltig_ab DESC
|
|
END
|
|
|
|
FETCH NEXT
|
|
FROM xc
|
|
INTO @mnr
|
|
END
|
|
|
|
CLOSE xc
|
|
|
|
DEALLOCATE xc
|
|
|
|
DELETE FROM @tmpa WHERE oenr IN ( SELECT item FROM dbo.fnkt_split(@struktur_Ausschluss, ',', 1) )
|
|
DELETE FROM @tmpa WHERE oenr NOT IN ( SELECT id FROM dbo.fnkt_get_kpi_hierarchie(@oestruktur) )
|
|
-- select * from @tmpa
|
|
-- return
|
|
-- Geschlossene AU
|
|
DECLARE @anzahl INT
|
|
DECLARE @aufwand FLOAT
|
|
DECLARE @ma VARCHAR(255)
|
|
DECLARE @ticketid VARCHAR(255)
|
|
DECLARE @tgnummer VARCHAR(255)
|
|
DECLARE @statusdatum VARCHAR(255)
|
|
|
|
INSERT @tickettable (
|
|
tgnummer
|
|
,NAME
|
|
,ticketid
|
|
,statusdatum
|
|
,STATUS
|
|
)
|
|
SELECT tgnummer
|
|
,''
|
|
,ticketid
|
|
,status_changedate
|
|
,'Geschlossen'
|
|
FROM dbo.txp_au_geschlossen
|
|
WHERE Status_Changedate BETWEEN @von
|
|
AND @bis
|
|
AND tgnummer IN (
|
|
SELECT tgnummer
|
|
FROM @tmpa
|
|
)
|
|
|
|
INSERT @tickettable (
|
|
tgnummer
|
|
,NAME
|
|
,ticketid
|
|
,statusdatum
|
|
,STATUS
|
|
)
|
|
SELECT tgnummer
|
|
,''
|
|
,ticketid
|
|
,status_changedate
|
|
,'Offen'
|
|
FROM dbo.txp_au_offen
|
|
WHERE Status_Changedate <= @bis
|
|
AND tgnummer IN (
|
|
SELECT tgnummer
|
|
FROM @tmpa
|
|
)
|
|
|
|
INSERT @tickettable (
|
|
tgnummer
|
|
,NAME
|
|
,ticketid
|
|
,statusdatum
|
|
,STATUS
|
|
)
|
|
SELECT tgnummer
|
|
,''
|
|
,ticketid
|
|
,status_changedate
|
|
,'Offen'
|
|
FROM dbo.txp_in_offen
|
|
WHERE Status_Changedate <=@bis
|
|
AND tgnummer IN (
|
|
SELECT tgnummer
|
|
FROM @tmpa
|
|
)
|
|
|
|
INSERT @tickettable (
|
|
tgnummer
|
|
,NAME
|
|
,ticketid
|
|
,statusdatum
|
|
,STATUS
|
|
)
|
|
SELECT tgnummer
|
|
,''
|
|
,ticketid
|
|
,status_changedate
|
|
,'Geschlossen'
|
|
FROM dbo.txp_in_geschlossen
|
|
WHERE Status_Changedate BETWEEN @von
|
|
AND @bis
|
|
AND tgnummer IN (
|
|
SELECT tgnummer
|
|
FROM @tmpa
|
|
)
|
|
|
|
FETCH NEXT
|
|
FROM xm
|
|
INTO @von
|
|
,@bis
|
|
END
|
|
|
|
CLOSE xm
|
|
|
|
DEALLOCATE xm
|
|
|
|
UPDATE @tickettable
|
|
SET a.[NAME] = ma.[NAME]
|
|
FROM @tickettable a
|
|
INNER JOIN ma ON ma.TGNummer = a.tgnummer
|
|
|
|
SELECT *
|
|
FROM @tickettable
|
|
ORDER BY tgnummer
|
|
,ticketid
|
|
END
|
|
|
|
|
|
GO
|