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.
1201 lines
93 KiB
1201 lines
93 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_AN_31] Script Date: 02.12.2016 09:08:53 ******/
|
|
DROP PROCEDURE [dbo].[sp_rpt_AN_31]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_AN_31] 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_AN_31]
|
|
@von DATETIME = NULL ,
|
|
@bis DATETIME = NULL ,
|
|
@oestruktur INTEGER = NULL ,
|
|
@struktur_Ausschluss VARCHAR(255) = NULL ,
|
|
@Honoris_Ausschluss VARCHAR(255) = NULL ,
|
|
@iBereich VARCHAR(255) = NULL
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @rtb_anteil INT
|
|
DECLARE @abwesenheit_anteil INT
|
|
|
|
SET @rtb_anteil = 30
|
|
SET @abwesenheit_anteil = 15
|
|
|
|
IF @ibereich IS NULL
|
|
SET @ibereich = ''
|
|
IF @von IS NULL
|
|
SET @von = '2015-01-01 00:00:00'
|
|
IF @bis IS NULL
|
|
SET @bis = '2015-03-31 00:00:00'
|
|
IF @oestruktur IS NULL
|
|
SET @oestruktur = 42
|
|
IF @struktur_ausschluss IS NULL
|
|
SET @struktur_ausschluss = ''
|
|
IF @honoris_ausschluss IS NULL
|
|
SET @honoris_ausschluss = ''
|
|
|
|
|
|
|
|
|
|
-- ****************************************************************************
|
|
-- Planaufwand der AN_Tickets auslesen
|
|
--****************************************************************************
|
|
DECLARE @planaufwand TABLE
|
|
(
|
|
tgnummer VARCHAR(255) ,
|
|
TicketID VARCHAR(55) ,
|
|
Kurzbeschreibung VARCHAR(1024) NULL ,
|
|
STATUS VARCHAR(255) ,
|
|
Bereich VARCHAR(255) ,
|
|
Aufwand INT ,
|
|
Aufwand_P INT ,
|
|
Aufwand_A INT ,
|
|
geleistet FLOAT ,
|
|
noch_zu_leisten FLOAT ,
|
|
noch_zu_leisten_P FLOAT NULL ,
|
|
noch_zu_leisten_A FLOAT NULL ,
|
|
noch_zu_leisten_1 FLOAT NULL ,
|
|
noch_zu_leisten_1P FLOAT NULL ,
|
|
noch_zu_leisten_1A FLOAT NULL ,
|
|
g_start DATETIME ,
|
|
g_erledigung DATETIME ,
|
|
SOLL_AZ FLOAT NULL ,
|
|
Fhr_Anteil FLOAT NULL ,
|
|
Abwesenheiten FLOAT NULL ,
|
|
RTB FLOAT NULL ,
|
|
pt_fhranteil FLOAT NULL ,
|
|
pt_abwesenheiten FLOAT NULL ,
|
|
pt_rtb FLOAT NULL ,
|
|
Pensum FLOAT NULL,
|
|
Projekt VARCHAR(255) null
|
|
)
|
|
|
|
DECLARE @ticketid VARCHAR(255) ,
|
|
@tgnummer VARCHAR(255) ,
|
|
@g_erledigung DATETIME ,
|
|
@g_start DATETIME ,
|
|
@status VARCHAR(255) ,
|
|
@bereich VARCHAR(255)
|
|
DECLARE @ma1 VARCHAR(255) ,
|
|
@p1 INT ,
|
|
@ma2 VARCHAR(255) ,
|
|
@p2 INT ,
|
|
@ma3 VARCHAR(255) ,
|
|
@p3 INT ,
|
|
@ma4 VARCHAR(255) ,
|
|
@p4 INT ,
|
|
@ma5 VARCHAR(255) ,
|
|
@p5 INT
|
|
DECLARE @ma6 VARCHAR(255) ,
|
|
@p6 INT ,
|
|
@ma7 VARCHAR(255) ,
|
|
@p7 INT ,
|
|
@ma8 VARCHAR(255) ,
|
|
@p8 INT ,
|
|
@ma9 VARCHAR(255) ,
|
|
@p9 INT
|
|
DECLARE @pos1 INT
|
|
DECLARE @pos2 INT
|
|
DECLARE @x VARCHAR(255)
|
|
DECLARE @y INT
|
|
DECLARE @yy VARCHAR(255)
|
|
DECLARE @mm VARCHAR(255)
|
|
DECLARE @tt VARCHAR(255)
|
|
DECLARE @ap VARCHAR(255)
|
|
DECLARE @pa INT
|
|
DECLARE @aa INT
|
|
|
|
|
|
|
|
|
|
DECLARE xx CURSOR
|
|
FOR
|
|
SELECT DISTINCT
|
|
fullid ,
|
|
mitarbeiter_1 ,
|
|
planaufwand_1 ,
|
|
mitarbeiter_2 ,
|
|
planaufwand_2 ,
|
|
mitarbeiter_3 ,
|
|
planaufwand_3 ,
|
|
mitarbeiter_4 ,
|
|
planaufwand_4 ,
|
|
mitarbeiter_5 ,
|
|
planaufwand_5 ,
|
|
mitarbeiter_6 ,
|
|
planaufwand_6 ,
|
|
mitarbeiter_7 ,
|
|
planaufwand_7 ,
|
|
mitarbeiter_8 ,
|
|
planaufwand_8 ,
|
|
mitarbeiter_9 ,
|
|
planaufwand_9 ,
|
|
Geplantes_Erledigungsdatum ,
|
|
Geplantes_Startdatum AS Geplantes_Startdatum ,
|
|
Status ,
|
|
Bereich ,
|
|
ausloeser_projekt
|
|
FROM dbo.shu_view_an_excelexport_lst
|
|
|
|
OPEN xx
|
|
FETCH NEXT FROM xx INTO @ticketid, @ma1, @p1, @ma2, @p2, @ma3, @p3,
|
|
@ma4, @p4, @ma5, @p5, @ma6, @p6, @ma7, @p7, @ma8, @p8, @ma9, @p9,
|
|
@g_erledigung, @g_start, @status, @bereich, @ap
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
IF NOT @g_erledigung IS NULL
|
|
BEGIN
|
|
SET @yy = YEAR(@g_erledigung)
|
|
SET @mm = MONTH(@g_erledigung)
|
|
SET @tt = DAY(@g_erledigung)
|
|
SET @g_erledigung = @tt + '.' + @mm + '.' + @yy
|
|
+ ' 00:00:00'
|
|
SET @g_erledigung = DATEADD(DAY, 1, @g_erledigung)
|
|
END
|
|
IF NOT @g_start IS NULL
|
|
BEGIN
|
|
SET @yy = YEAR(@g_start)
|
|
SET @mm = MONTH(@g_start)
|
|
SET @tt = DAY(@g_start)
|
|
SET @g_start = @tt + '.' + @mm + '.' + @yy
|
|
+ ' 00:00:00'
|
|
SET @g_start = DATEADD(DAY, 1, @g_start)
|
|
END
|
|
|
|
|
|
|
|
IF LEN(@ma1) > 0
|
|
BEGIN
|
|
SET @x = @ma1
|
|
SET @y = @p1
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma2) > 0
|
|
BEGIN
|
|
SET @x = @ma2
|
|
SET @y = @p2
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma3) > 0
|
|
BEGIN
|
|
SET @x = @ma3
|
|
SET @y = @p3
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma4) > 0
|
|
BEGIN
|
|
SET @x = @ma4
|
|
SET @y = @p4
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma5) > 0
|
|
BEGIN
|
|
SET @x = @ma5
|
|
SET @y = @p5
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma6) > 0
|
|
BEGIN
|
|
SET @x = @ma6
|
|
SET @y = @p6
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma7) > 0
|
|
BEGIN
|
|
SET @x = @ma7
|
|
SET @y = @p7
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
END
|
|
END
|
|
IF LEN(@ma8) > 0
|
|
BEGIN
|
|
SET @x = @ma8
|
|
SET @y = @p8
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
|
|
END
|
|
END
|
|
IF LEN(@ma9) > 0
|
|
BEGIN
|
|
SET @x = @ma9
|
|
SET @y = @p9
|
|
SET @pos1 = 0
|
|
SET @pos2 = 0
|
|
SET @pos1 = CHARINDEX('(', @x)
|
|
SET @pos2 = CHARINDEX(')', @x)
|
|
IF @ap = 'Ja'
|
|
BEGIN
|
|
SET @pa = @y
|
|
SET @aa = 0
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @pa = 0
|
|
SET @aa = @y
|
|
END
|
|
IF @pos1 > 0
|
|
AND @pos2 > 0
|
|
BEGIN
|
|
SET @pos1 = @pos1 + 1
|
|
SET @x = SUBSTRING(@x, @pos1, @pos2 - @pos1)
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
VALUES ( @x ,
|
|
@ticketid ,
|
|
@y ,
|
|
@pa ,
|
|
@aa ,
|
|
@g_erledigung ,
|
|
@g_start ,
|
|
@status ,
|
|
@bereich, @ap
|
|
)
|
|
|
|
END
|
|
END
|
|
FETCH NEXT FROM xx INTO @ticketid, @ma1, @p1, @ma2, @p2, @ma3,
|
|
@p3, @ma4, @p4, @ma5, @p5, @ma6, @p6, @ma7, @p7, @ma8, @p8,
|
|
@ma9, @p9, @g_erledigung, @g_start, @status, @bereich, @ap
|
|
END
|
|
CLOSE xx
|
|
DEALLOCATE xx
|
|
-- ****************************************************************************
|
|
-- Ende Planaufwand der AN_Tickets auslesen
|
|
-- ****************************************************************************
|
|
insert @planaufwand
|
|
( tgnummer ,
|
|
ticketid ,
|
|
aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
status ,
|
|
bereich, Projekt
|
|
)
|
|
|
|
select ma.TGNummer,'',0,0,0,null,null,'','',0
|
|
FROM dbo.MA INNER JOIN
|
|
dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr
|
|
WHERE dbo.MADetails.OENr IN
|
|
(SELECT ID FROM dbo.fnkt_get_KPI_hierarchie(@oestruktur) AS fnkt_get_KPI_hierarchie_1)
|
|
-- and tgnummer not in (select tgnummer from #ttg)
|
|
|
|
-- ****************************************************************************
|
|
-- Geleistete, noch zu leistende Tage
|
|
-- ****************************************************************************
|
|
|
|
UPDATE @planaufwand
|
|
SET geleistet = 0.00 ,
|
|
noch_zu_leisten = 00
|
|
DECLARE xx CURSOR
|
|
FOR
|
|
SELECT [Ticket_ID] ,
|
|
[ForUserID] ,
|
|
[CalculatedValue]
|
|
FROM TXP_LVer_IN_AU
|
|
WHERE ticket_id LIKE 'AN%'
|
|
AND [Statusdatum] < @von
|
|
OPEN xx
|
|
FETCH NEXT FROM xx INTO @ticketid, @tgnummer, @y
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
UPDATE @planaufwand
|
|
SET geleistet = geleistet + @y
|
|
WHERE tgnummer = @tgnummer
|
|
AND ticketid = @ticketid
|
|
FETCH NEXT FROM xx INTO @ticketid, @tgnummer, @y
|
|
END
|
|
CLOSE xx
|
|
DEALLOCATE xx
|
|
UPDATE @planaufwand
|
|
SET geleistet = ROUND(geleistet / 8, 2)
|
|
UPDATE @planaufwand
|
|
SET noch_zu_leisten = aufwand - geleistet ,
|
|
noch_zu_leisten_p = aufwand_p - geleistet ,
|
|
noch_zu_leisten_a = aufwand_a - geleistet
|
|
UPDATE @planaufwand
|
|
SET noch_zu_leisten_1 = 0.00 ,
|
|
noch_zu_leisten_1a = 0.00 ,
|
|
noch_zu_leisten_1p = 0.00
|
|
DELETE FROM @planaufwand
|
|
WHERE g_start > @bis
|
|
DELETE FROM @planaufwand
|
|
WHERE g_erledigung < @von
|
|
|
|
UPDATE @planaufwand
|
|
SET noch_zu_leisten_1 = noch_zu_leisten ,
|
|
noch_zu_leisten_1p = noch_zu_leisten_p ,
|
|
noch_zu_leisten_1a = noch_zu_leisten_a
|
|
|
|
DECLARE @gp_dauer FLOAT
|
|
DECLARE @rn_dauer FLOAT
|
|
DECLARE @faktor FLOAT
|
|
|
|
|
|
DECLARE xx CURSOR
|
|
FOR
|
|
SELECT ticketid ,
|
|
tgnummer ,
|
|
g_erledigung ,
|
|
g_start ,
|
|
noch_zu_leisten
|
|
FROM @planaufwand
|
|
WHERE g_erledigung > @bis
|
|
OPEN xx
|
|
FETCH NEXT FROM xx INTO @ticketid, @tgnummer, @g_erledigung, @g_start,
|
|
@y
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @gp_dauer = DATEDIFF(DAY, @g_start, @g_erledigung)
|
|
IF @g_start <= @von
|
|
SET @gp_dauer = DATEDIFF(day, @von, @g_erledigung)
|
|
IF @g_start > @von
|
|
BEGIN
|
|
SET @rn_dauer = DATEDIFF(DAY, @g_start, @bis)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @rn_dauer = DATEDIFF(DAY, @von, @bis)
|
|
END
|
|
SET @faktor = @rn_dauer / @gp_dauer
|
|
|
|
|
|
UPDATE @planaufwand
|
|
SET noch_zu_leisten_1 = ROUND(noch_zu_leisten_1
|
|
* ( @rn_dauer / @gp_dauer ),
|
|
2)
|
|
WHERE ticketid = @ticketid
|
|
AND tgnummer = @tgnummer
|
|
|
|
UPDATE @planaufwand
|
|
SET noch_zu_leisten_1p = ROUND(noch_zu_leisten_1p
|
|
* ( @rn_dauer / @gp_dauer ),
|
|
2)
|
|
WHERE ticketid = @ticketid
|
|
AND tgnummer = @tgnummer
|
|
|
|
UPDATE @planaufwand
|
|
SET noch_zu_leisten_1a = ROUND(noch_zu_leisten_1a
|
|
* ( @rn_dauer / @gp_dauer ),
|
|
2)
|
|
WHERE ticketid = @ticketid
|
|
AND tgnummer = @tgnummer
|
|
|
|
FETCH NEXT FROM xx INTO @ticketid, @tgnummer, @g_erledigung,
|
|
@g_start, @y
|
|
END
|
|
CLOSE xx
|
|
DEALLOCATE xx
|
|
--****************************************************************************
|
|
-- Ende Geleistete, noch zu leistende Tage
|
|
-- ****************************************************************************
|
|
|
|
DECLARE @an4 TABLE
|
|
(
|
|
[JJMM] [varchar](255) NULL ,
|
|
[OE] [varchar](50) NULL ,
|
|
[OESort] [int] NULL ,
|
|
[tgnummer] [varchar](50) NULL ,
|
|
[Name] [varchar](50) NULL ,
|
|
[Vorname] [varchar](50) NULL ,
|
|
[Sortierung] [int] NULL ,
|
|
[START] [datetime] NULL ,
|
|
[ende] [datetime] NULL ,
|
|
[Sort] [int] NULL ,
|
|
[Pensum] [varchar](255) NULL ,
|
|
[Soll] [float] NULL ,
|
|
[Geleistet] [float] NOT NULL ,
|
|
[Engagement_Effektiv] [float] NOT NULL ,
|
|
[Fuehrungsanteil] [float] NULL ,
|
|
[Soll_Zeit] [float] NOT NULL ,
|
|
[abwesenheiten] [float] NOT NULL ,
|
|
[CTB] [float] NULL ,
|
|
[RTB] [float] NULL
|
|
)
|
|
|
|
INSERT @an4
|
|
EXEC dbo.sp_rpt_AN_4_Summary @von = @von, @bis = @bis,
|
|
@oestruktur = @oestruktur,
|
|
@struktur_Ausschluss = @struktur_ausschluss,
|
|
@honoris_ausschluss = @honoris_ausschluss
|
|
UPDATE @an4
|
|
SET Soll_Zeit = ROUND(Soll_Zeit / 100 * Pensum, 2)
|
|
|
|
|
|
|
|
DECLARE @p FLOAT
|
|
DECLARE @s FLOAT
|
|
DECLARE @f FLOAT
|
|
DECLARE xx CURSOR
|
|
FOR
|
|
SELECT tgnummer
|
|
FROM @planaufwand
|
|
OPEN xx
|
|
FETCH NEXT FROM xx INTO @tgnummer
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SELECT @p = Pensum ,
|
|
@s = SUM(Soll) ,
|
|
@f = Fuehrungsanteil
|
|
FROM @an4
|
|
GROUP BY tgnummer ,
|
|
Pensum ,
|
|
Fuehrungsanteil
|
|
HAVING ( tgnummer = @tgnummer )
|
|
|
|
SELECT @rtb_anteil = dbo.MADetails.Planwert_Anteil_RTB_Person
|
|
FROM dbo.MA INNER JOIN
|
|
dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr where ma.TGNummer=@tgnummer
|
|
UPDATE @planaufwand
|
|
SET soll_az = @s ,
|
|
fhr_anteil = @f ,
|
|
abwesenheiten = @abwesenheit_anteil ,
|
|
rtb = @rtb_anteil ,
|
|
pensum = @p
|
|
WHERE tgnummer = @tgnummer
|
|
|
|
|
|
FETCH NEXT FROM xx INTO @tgnummer
|
|
END
|
|
CLOSE xx
|
|
DEALLOCATE xx
|
|
UPDATE @planaufwand
|
|
SET pt_fhranteil = soll_az / 100 * fhr_anteil ,
|
|
pt_abwesenheiten = soll_az / 100 * abwesenheiten ,
|
|
pt_rtb = soll_az / 100 * rtb
|
|
|
|
-- ****************************************************************************
|
|
-- Ressourcen ohne AN-Zuordnung
|
|
-- ****************************************************************************
|
|
|
|
|
|
DECLARE @tmpa TABLE
|
|
(
|
|
[TGNummer] [varchar](50) NULL ,
|
|
oenr INT ,
|
|
sortierung INT ,
|
|
START DATETIME ,
|
|
Ende DATETIME ,
|
|
Vorhaben VARCHAR(255) ,
|
|
Std [float] NOT NULL ,
|
|
Engagement_Effektiv FLOAT NOT NULL ,
|
|
Soll_Zeit FLOAT NOT NULL ,
|
|
JJMM VARCHAR(255) ,
|
|
pensum FLOAT NULL
|
|
)
|
|
|
|
DECLARE @tmpb TABLE
|
|
(
|
|
[TGNummer] [varchar](50) NULL ,
|
|
oenr INT ,
|
|
sortierung INT ,
|
|
START DATETIME ,
|
|
Ende DATETIME ,
|
|
Pensum VARCHAR(255) ,
|
|
Soll_Zeit FLOAT NOT NULL ,
|
|
Std_Geleistet [float] NOT NULL ,
|
|
Engagement_Effektiv FLOAT NOT NULL ,
|
|
Abwesenheiten FLOAT NOT NULL ,
|
|
JJMM VARCHAR(255)
|
|
)
|
|
|
|
DECLARE @ansatz FLOAT
|
|
SET @ansatz = 8.0
|
|
|
|
DECLARE @mnr INT
|
|
DECLARE @rc INT
|
|
DECLARE xm CURSOR
|
|
FOR
|
|
SELECT *
|
|
FROM dbo.get_monatstabelle(@von, @bis)
|
|
ORDER BY start_date
|
|
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
|
|
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
|
|
|
|
|
|
INSERT @tmpa
|
|
SELECT TOP 1
|
|
dbo.MA.TGNummer ,
|
|
madetails.OENr ,
|
|
ma.sortierung ,
|
|
@von ,
|
|
@bis ,
|
|
'' ,
|
|
madetails.Engagement ,
|
|
dbo.get_anteil(engagement,
|
|
MitarbeiterTypNr) ,
|
|
dbo.get_plantage(YEAR(@von),
|
|
MONTH(@von)) ,
|
|
'' ,
|
|
madetails.Engagement
|
|
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
|
|
ORDER BY Gueltig_ab DESC
|
|
|
|
|
|
FETCH NEXT FROM xc INTO @mnr
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
DECLARE @anzahl FLOAT
|
|
DECLARE @ma VARCHAR(255)
|
|
|
|
|
|
FETCH NEXT FROM xm INTO @von, @bis
|
|
END
|
|
|
|
CLOSE xm
|
|
DEALLOCATE xm
|
|
|
|
|
|
UPDATE @tmpa
|
|
SET jjmm = LTRIM(STR(YEAR(start))) + '' +
|
|
LTRIM(STR(MONTH(start)))
|
|
SELECT TOP ( 100 ) PERCENT
|
|
dbo.OE.Bezeichnung AS OE ,
|
|
dbo.OE.Sortierung AS OESort ,
|
|
dbo.MA.Name ,
|
|
dbo.MA.Vorname ,
|
|
dbo.MA.Sortierung ,
|
|
a.TGNummer ,
|
|
a.START ,
|
|
a.ende ,
|
|
a.sortierung AS Expr1 ,
|
|
a.vorhaben ,
|
|
a.Std ,
|
|
a.Engagement_Effektiv ,
|
|
a.Soll_Zeit ,
|
|
a.JJMM ,
|
|
a.pensum
|
|
INTO #tmpfhr
|
|
FROM @tmpa a
|
|
INNER JOIN dbo.MA ON a.TGNummer = dbo.MA.TGNummer
|
|
INNER JOIN dbo.OE ON a.oenr = dbo.OE.OeNr
|
|
WHERE dbo.OE.oenr IN (
|
|
SELECT id
|
|
FROM dbo.fnkt_get_kpi_hierarchie(@oestruktur) )
|
|
AND dbo.oe.oenr NOT IN (
|
|
SELECT item
|
|
FROM dbo.fnkt_split(@struktur_Ausschluss, ',', 1) )
|
|
|
|
|
|
DELETE FROM #tmpfhr
|
|
WHERE tgnummer IN ( SELECT tgnummer
|
|
FROM @planaufwand )
|
|
DECLARE @pe FLOAT
|
|
DECLARE xv CURSOR
|
|
FOR
|
|
SELECT DISTINCT
|
|
tgnummer
|
|
FROM #tmpfhr
|
|
OPEN xv
|
|
FETCH NEXT FROM xv INTO @tgnummer
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SELECT @p = engagement_effektiv ,
|
|
@s = SUM(Soll_zeit) / 100 * std ,
|
|
@f = ( 100 - ( 100 / std * engagement_effektiv ) ) ,
|
|
@pe = pensum
|
|
FROM #tmpfhr
|
|
GROUP BY tgnummer ,
|
|
engagement_effektiv ,
|
|
std ,
|
|
pensum
|
|
HAVING ( tgnummer = @tgnummer )
|
|
|
|
SELECT @rtb_anteil = dbo.MADetails.Planwert_Anteil_RTB_Person
|
|
FROM dbo.MA INNER JOIN
|
|
dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr where ma.TGNummer=@tgnummer
|
|
INSERT @planaufwand
|
|
( tgnummer ,
|
|
TicketID ,
|
|
STATUS ,
|
|
Bereich ,
|
|
Aufwand ,
|
|
Aufwand_P ,
|
|
Aufwand_A ,
|
|
geleistet ,
|
|
noch_zu_leisten ,
|
|
noch_zu_leisten_p ,
|
|
noch_zu_leisten_a ,
|
|
noch_zu_leisten_1 ,
|
|
noch_zu_leisten_1p ,
|
|
noch_zu_leisten_1a ,
|
|
g_start ,
|
|
g_erledigung ,
|
|
SOLL_AZ ,
|
|
Fhr_Anteil ,
|
|
Abwesenheiten ,
|
|
RTB ,
|
|
pt_fhranteil ,
|
|
pt_abwesenheiten ,
|
|
pt_rtb ,
|
|
pensum,projekt
|
|
)
|
|
VALUES ( @tgnummer ,
|
|
'' ,
|
|
'' ,
|
|
'' ,
|
|
0 ,
|
|
0 ,
|
|
0 ,
|
|
0.00 ,
|
|
0.00 ,
|
|
0.00 ,
|
|
0.00 ,
|
|
0.00 ,
|
|
0.00 ,
|
|
0.00 ,
|
|
GETDATE() ,
|
|
GETDATE() ,
|
|
@s ,
|
|
@f ,
|
|
@abwesenheit_anteil ,
|
|
@rtb_anteil ,
|
|
NULL ,
|
|
NULL ,
|
|
NULL ,
|
|
@pe,''
|
|
)
|
|
FETCH NEXT FROM xv INTO @tgnummer
|
|
END
|
|
CLOSE xv
|
|
DEALLOCATE xv
|
|
|
|
UPDATE @planaufwand
|
|
SET kurzbeschreibung = a.Kurzbeschreibung
|
|
FROM @planaufwand
|
|
INNER JOIN shu_view_an_excelexport_lst a ON fullid = ticketid
|
|
|
|
UPDATE @planaufwand
|
|
SET pt_fhranteil = soll_az / 100 * fhr_anteil ,
|
|
pt_abwesenheiten = soll_az / 100 * abwesenheiten ,
|
|
pt_rtb = soll_az / 100 * rtb
|
|
|
|
|
|
SELECT TOP ( 100 ) PERCENT
|
|
dbo.OE.Bezeichnung AS OE ,
|
|
dbo.OE.Sortierung AS OESort ,
|
|
dbo.MA.Name ,
|
|
dbo.MA.Vorname ,
|
|
dbo.MA.Sortierung ,
|
|
a.TGNummer ,
|
|
a.START ,
|
|
a.ende ,
|
|
a.sortierung AS Expr1 ,
|
|
a.vorhaben ,
|
|
a.Std ,
|
|
a.Engagement_Effektiv ,
|
|
a.Soll_Zeit ,
|
|
a.JJMM
|
|
INTO #tmpfhr1
|
|
FROM @tmpa a
|
|
INNER JOIN dbo.MA ON a.TGNummer = dbo.MA.TGNummer
|
|
INNER JOIN dbo.OE ON a.oenr = dbo.OE.OeNr
|
|
WHERE dbo.OE.oenr IN (
|
|
SELECT id
|
|
FROM dbo.fnkt_get_kpi_hierarchie(@oestruktur) )
|
|
AND dbo.oe.oenr NOT IN (
|
|
SELECT item
|
|
FROM dbo.fnkt_split(@struktur_Ausschluss, ',', 1) )
|
|
|
|
|
|
|
|
SELECT a.* ,
|
|
oe ,
|
|
oesort ,
|
|
sortierung ,
|
|
name ,
|
|
vorname
|
|
INTO #a
|
|
FROM @planaufwand a
|
|
INNER JOIN #tmpfhr1 ON a.TGNummer = #tmpfhr1.TGNummer
|
|
--DROP TABLE _an_03
|
|
|
|
DELETE FROM #a
|
|
WHERE ( g_erledigung IS NULL
|
|
AND TicketID <> ''
|
|
)
|
|
OR ( STATUS = 'abgelehnt' )
|
|
--delete from #a where (g_start
|
|
|
|
|
|
SELECT DISTINCT
|
|
*
|
|
INTO #b
|
|
FROM #a
|
|
|
|
DECLARE @tg VARCHAR(255) ,
|
|
@it INT ,
|
|
@tga VARCHAR(255) ,
|
|
@pp1 FLOAT ,
|
|
@pp2 FLOAT ,
|
|
@pp3 FLOAT ,
|
|
@pp4 FLOAT ,
|
|
@pp5 FLOAT ,
|
|
@SUM_WE FLOAT ,
|
|
@sum_delta FLOAT
|
|
SET @it = 0
|
|
SET @tga = ''
|
|
ALTER TABLE #b ADD idtemp INT IDENTITY(1,1)
|
|
ALTER TABLE #b ADD SUM_WE FLOAT
|
|
ALTER TABLE #b ADD SUM_Delta FLOAT
|
|
|
|
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT tgnummer ,
|
|
pt_fhranteil ,
|
|
pt_abwesenheiten ,
|
|
pt_rtb ,
|
|
idtemp ,
|
|
soll_az
|
|
FROM #b
|
|
ORDER BY tgnummer ,
|
|
g_erledigung ASC ,
|
|
ticketid DESC
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @tg, @pp1, @pp2, @pp3, @pp4, @pp5
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
IF @tg <> @tga
|
|
BEGIN
|
|
PRINT @tg
|
|
UPDATE #b
|
|
SET pt_abwesenheiten = 0
|
|
WHERE tgnummer = @tg
|
|
UPDATE #b
|
|
SET pt_fhranteil = 0
|
|
WHERE tgnummer = @tg
|
|
UPDATE #b
|
|
SET pt_rtb = 0
|
|
WHERE tgnummer = @tg
|
|
UPDATE #b
|
|
SET soll_az = 0
|
|
WHERE tgnummer = @tg
|
|
SELECT @SUM_WE = SUM(noch_zu_leisten_1)
|
|
FROM #b
|
|
WHERE tgnummer = @tg
|
|
|
|
SET @sum_WE = @sum_we + ( @pp1 + @pp2 + @pp3 )
|
|
SET @sum_delta = @pp5 - @sum_we
|
|
|
|
UPDATE #b
|
|
SET soll_az = @pp5 ,
|
|
pt_fhranteil = @pp1 ,
|
|
pt_abwesenheiten = @pp2 ,
|
|
pt_rtb = @pp3 ,
|
|
sum_we = @sum_we ,
|
|
sum_delta = @sum_delta
|
|
WHERE idtemp = @pp4
|
|
|
|
SET @tga = @tg
|
|
END
|
|
FETCH NEXT FROM xc INTO @tg, @pp1, @pp2, @pp3, @pp4, @pp5
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
ALTER TABLE #b DROP COLUMN idtemp
|
|
|
|
--select * from #b where Name='Breitler' order by g_erledigung desc, TicketID asc
|
|
--return
|
|
--DROP TABLE _an_03
|
|
UPDATE #b SET noch_zu_leisten_1p =0 WHERE noch_zu_leisten_1p <0
|
|
UPDATE #b SET noch_zu_leisten_1a =0 WHERE noch_zu_leisten_1a <0
|
|
UPDATE #b SET noch_zu_leisten_a =0 WHERE noch_zu_leisten_a <0
|
|
UPDATE #b SET noch_zu_leisten_p =0 WHERE noch_zu_leisten_p <0
|
|
update #b set sum_we=0 where sum_we is null
|
|
update #b set sum_delta=0 where sum_delta is null
|
|
update #b set kurzbeschreibung='' where kurzbeschreibung is null
|
|
|
|
|
|
|
|
|
|
|
|
IF @ibereich <> ''
|
|
SELECT DISTINCT
|
|
*
|
|
FROM #b
|
|
WHERE bereich = @ibereich
|
|
ORDER BY g_erledigung DESC ,
|
|
TicketID ASC
|
|
ELSE
|
|
SELECT DISTINCT
|
|
*
|
|
FROM #b
|
|
ORDER BY g_erledigung DESC ,
|
|
TicketID ASC
|
|
DROP TABLE #a
|
|
DROP TABLE #b
|
|
DROP TABLE #tmpfhr
|
|
DROP TABLE #tmpfhr1
|
|
|
|
END
|
|
|
|
GO
|