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.
176 lines
14 KiB
176 lines
14 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_fhrlst_projekte_nach_ma_wpi] Script Date: 02.12.2016 09:08:53 ******/
|
|
DROP PROCEDURE [dbo].[sp_rpt_fhrlst_projekte_nach_ma_wpi]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_rpt_fhrlst_projekte_nach_ma_wpi] 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_projekte_nach_ma_wpi]
|
|
@von DATETIME = NULL ,
|
|
@bis DATETIME = NULL ,
|
|
@oestruktur INTEGER = NULL ,
|
|
@struktur_Ausschluss VARCHAR(255) = NULL ,
|
|
@Honoris_Ausschluss VARCHAR(255) = NULL
|
|
AS
|
|
BEGIN
|
|
IF @von IS NULL
|
|
SET @von = '01.01.2013 00:00:01'
|
|
IF @bis IS NULL
|
|
SET @bis = '31.05.2013 23:59:50'
|
|
IF @oestruktur IS NULL
|
|
SET @oestruktur = 25
|
|
IF @struktur_ausschluss IS NULL
|
|
SET @struktur_ausschluss = ''
|
|
IF @honoris_ausschluss IS NULL
|
|
SET @honoris_ausschluss = ''
|
|
|
|
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 NOCOUNT ON;
|
|
|
|
DECLARE @tmpa TABLE
|
|
(
|
|
[TGNummer] [varchar](50) NULL ,
|
|
NAME VARCHAR(255) ,
|
|
KST VARCHAR(255) ,
|
|
START DATETIME ,
|
|
Ende DATETIME ,
|
|
anzahl FLOAT ,
|
|
ProjektNr int ,
|
|
Projektname VARCHAR(255) ,
|
|
oenr INT
|
|
)
|
|
DECLARE @ansatz FLOAT
|
|
SET @ansatz = 8.0
|
|
|
|
--IF @per IS NULL
|
|
-- SET @per = GETDATE()
|
|
|
|
|
|
--***************************************************************************
|
|
-- Relevante Mitarbeiter am Per-Datum
|
|
--***************************************************************************
|
|
DECLARE @mnr INT
|
|
DECLARE @tgnummer VARCHAR(255)
|
|
DECLARE @rc INT
|
|
DECLARE @mm INT
|
|
DECLARE @yy INT
|
|
DECLARE @oe 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, TGNummer
|
|
FROM ma
|
|
WHERE aktiv = 1
|
|
AND gueltig_bis >= @bis
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @mnr, @tgnummer
|
|
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
|
|
SELECT @oe = oenr
|
|
FROM dbo.MADetails
|
|
WHERE manr = @mnr
|
|
AND aktiv = 1
|
|
AND Gueltig_ab <= @von
|
|
|
|
INSERT @tmpa
|
|
SELECT dbo.Honoris_mitarbeiter.MITARBEITER_ID,
|
|
dbo.Honoris_mitarbeiter.NAME + ' ' + dbo.Honoris_mitarbeiter.VORNAME AS Name,
|
|
dbo.Honoris_mitarbeiter.KST, @von, @bis, SUM(dbo.Honoris_JOURNAL.ANZAHLINT) AS Anzahl,
|
|
dbo.Honoris_PROJEKT.PROJEKT_NR, dbo.Honoris_PROJEKT.Kurzname, @oe
|
|
FROM dbo.Honoris_PROJEKT
|
|
INNER JOIN dbo.Honoris_JOURNAL ON dbo.Honoris_PROJEKT.PROJEKT_NR = dbo.Honoris_JOURNAL.PROJEKT_NR
|
|
INNER JOIN dbo.Honoris_mitarbeiter ON dbo.Honoris_JOURNAL.MITARBEITER_NR = dbo.Honoris_mitarbeiter.MITARBEITER_NR
|
|
WHERE ( dbo.Honoris_JOURNAL.DATUM >= @von )
|
|
AND ( dbo.Honoris_JOURNAL.DATUM <= @bis )
|
|
AND dbo.Honoris_mitarbeiter.MITARBEITER_id = @tgnummer AND (honoris_projekt.bool5=1)
|
|
GROUP BY dbo.Honoris_PROJEKT.PROJEKT_NR, dbo.Honoris_PROJEKT.kurzname, dbo.Honoris_mitarbeiter.MITARBEITER_ID,
|
|
dbo.Honoris_mitarbeiter.NAME + ' ' + dbo.Honoris_mitarbeiter.VORNAME, dbo.Honoris_mitarbeiter.KST
|
|
|
|
END
|
|
FETCH NEXT FROM xc INTO @mnr, @tgnummer
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
FETCH NEXT FROM xm INTO @von, @bis
|
|
END
|
|
|
|
CLOSE xm
|
|
|
|
DEALLOCATE xm
|
|
DELETE FROM @tmpa WHERE projektnr IN ( SELECT item FROM dbo.fnkt_split(@Honoris_Ausschluss, ',', 1) )
|
|
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 a.*
|
|
|
|
--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) )
|
|
--ORDER BY dbo.MA.Name
|
|
|
|
|
|
SELECT TOP (100) PERCENT TGNummer, NAME, KST, SUM(anzahl) AS Summe, ProjektNr, Projektname
|
|
FROM @tmpa
|
|
GROUP BY TGNummer, NAME, KST, ProjektNr, Projektname
|
|
ORDER BY tgnummer, ProjektNr
|
|
|
|
END
|
|
|
|
GO
|