kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190110105100_AL_114/sp_GetDokumentumHelyettesitesekByDateInterval.sql
2024-03-13 00:33:46 +01:00

91 lines
No EOL
3.7 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetDokumentumHelyettesitesekByDateInterval') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval
END
GO
CREATE PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval
@tanevId INT,
@helyettesitesListaFormatumId INT = 0, --0 helyettesitett, 1 helyettesito
@idoszakKezdete DATE,
@idoszakVege DATE
AS
BEGIN
SET NOCOUNT ON;
SELECT
helyettesito.ID HelyettesitoId
,helyettesitesett.ID HelyettesitettId
,dbo.fnGetDokumentumDatumFormatum(hi.C_HELYETTESITESNAPJA) HetNapja
,ISNULL(CONVERT(NVARCHAR(5), orarendiOra.C_ORASZAM) + '.', '')Oraszam
,helyettesito.C_NYOMTATASINEV HelyettesitoNeve
,helyettesitesett.C_NYOMTATASINEV HelyettesitettNeve
,ocs.C_NEV OsztalyCsoportNev
,tantargy.C_NEV TantargyNev
,terem.C_NEV TeremNev
,HelyettesitesTipusa.C_NAME HelyettesitesTipusa
,helyettesito.C_OKTATASIAZONOSITO HelyettesitoOktatasiAzon
,helyettesitesett.C_OKTATASIAZONOSITO HelyettesitettOktatasiAzon
INTO #adatok
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
LEFT JOIN T_ORARENDIORA_OSSZES orarendiOra ON orarendiOra.Id = hi.C_HELYETTESITETTORARENDID AND orarendiOra.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = hi.C_HELYETTESTANAROKID AND helyettesito.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesitesett ON helyettesitesett.ID = orarendiOra.C_TANARID AND helyettesitesett.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = orarendiOra.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = orarendiOra.C_TANTARGYID AND tantargy.TOROLT = 'F'
LEFT JOIN T_TEREM_OSSZES terem ON terem.Id = orarendiOra.C_TEREMID AND terem.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES HelyettesitesTipusa ON HelyettesitesTipusa.ID = hi.C_HELYETTESITESTIPUS AND HelyettesitesTipusa.C_TANEVID = @tanevId
WHERE
hi.TOROLT = 'F'
AND hi.C_TANEVID = @tanevId
AND hi.C_HELYETTESITESNAPJA BETWEEN @idoszakKezdete AND @idoszakVege
ORDER BY dbo.fnGetDokumentumDatumFormatum(hi.C_HELYETTESITESNAPJA), orarendiOra.C_ORASZAM
-- elmaradt órák hozzáadása
INSERT INTO #adatok
SELECT
NULL HelyettesitoId
,tanar.ID HelyettesitettId
,dbo.fnGetDokumentumDatumFormatum(ora.C_DATUM) HetNapja
,ISNULL(CONVERT(NVARCHAR(5), ora.C_ORASZAM) + '.', '')Oraszam
,'Elmaradt óra' HelyettesitoNeve
,tanar.C_NYOMTATASINEV HelyettesitettNeve
,ocs.C_NEV OsztalyCsoportNev
,tantargy.C_NEV TantargyNev
,terem.C_NEV TeremNev
,'' HelyettesitesTipusa
,NULL HelyettesitoOktatasiAzon
,tanar.C_OKTATASIAZONOSITO HelyettesitettOktatasiAzon
FROM T_TANITASIORA_OSSZES ora
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = ora.C_TANARID AND tanar.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = ora.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = ora.C_TANTARGYID AND tantargy.TOROLT = 'F'
LEFT JOIN T_TEREM_OSSZES terem ON terem.Id = ora.C_TEREMID AND terem.TOROLT = 'F'
WHERE
ora.TOROLT = 'F'
AND ora.C_MEGTARTOTT = 'F'
AND ora.C_TANEVID = @tanevId
AND ora.C_DATUM BETWEEN @idoszakKezdete AND @idoszakVege
ORDER BY dbo.fnGetDokumentumDatumFormatum(ora.C_DATUM), ora.C_ORASZAM
SELECT DISTINCT HetNapja FROM #adatok
IF @helyettesitesListaFormatumId = 0
BEGIN
SELECT DISTINCT HelyettesitettId PedagogusId, HelyettesitettNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitettNeve
SELECT * FROM #adatok ORDER BY HetNapja, Oraszam
END
ELSE
BEGIN
SELECT DISTINCT HelyettesitoId PedagogusId, HelyettesitoNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitoNeve
SELECT * FROM #adatok ORDER BY HetNapja, Oraszam
END
END
GO