Files
kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180214114303_HELP_28048/fnGetTanorakNevekkel.sql
2024-03-13 00:33:46 +01:00

103 lines
4.0 KiB
Transact-SQL

IF OBJECT_ID('dbo.fnGetTanorakNevekkel') IS NOT NULL BEGIN
DROP FUNCTION dbo.fnGetTanorakNevekkel
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- A Funkció visszaadja egy pedagógus, egy osztály vagy csoport, egy tantárgy vagy egy terem minden
-- naplózatlan, naplózott, megtartott és nem-megtartott, helyettesített, vagy akármilyen óráját
-- egy megadott időszakra
CREATE FUNCTION dbo.fnGetTanorakNevekkel
(
@tanevId INT, -- Kötelezően átadandó
@kezdoDatum DATETIME = NULL, -- NULL esetén az adott tanév első napjától vizsgálja
@vegDatum DATETIME = NULL, -- NULL esetén az adott tanév utolsó napjáig vizsgálja
@tanarId INT = NULL, -- NULL esetén minden pedagógus órái lejönnek
@tantargyId INT = NULL, -- NULL esetén minden pedagógus órái lejönnek
@teremId INT = NULL, -- NULL esetén minden pedagógus órái lejönnek
@osztalycsoportId INT = NULL, -- NULL esetén minden osztály vagy csoport órái lejönnek
@isKapcsolodoCsoportok BIT = 0 -- 1 esetén az osztály vagy csoport kapcsolódó osztályait is csoportojait is lehozza,
-- csak akkor értelmezhető, ha van @osztalycsoportId is.
)
RETURNS @retTable TABLE (
OraDatuma DATETIME,
OraKezdete DATETIME,
OraVege DATETIME,
HetNapjaId INT,
CsengetesiRendId INT,
CsengetesiRendOraId INT,
HetirendId INT,
Oraszam INT,
OraTulajdonosId INT,
TanarId INT,
HelyettesitoId INT,
OsztalyCsoportId INT,
TantargyId INT,
TeremId INT,
IsHelyettesitett CHAR,
IsNaplozott CHAR,
IsMobilNaplozott CHAR,
IsElmaradt CHAR,
IsOrarendNelkul CHAR,
OrarendiOraId INT,
TanitasiOraId INT,
TanarNev nvarchar(1000),
HelyettesitoNev nvarchar(1000),
OsztalyCsoportNev nvarchar(1000),
TantargyNev nvarchar(1000),
TeremNev nvarchar(1000),
HetirendNev nvarchar(1000)
)
BEGIN
INSERT INTO @retTable (
OraDatuma, OraKezdete, OraVege, HetNapjaId, CsengetesiRendId, CsengetesiRendOraId, Oraszam, HetirendId,
OraTulajdonosId, TanarId, HelyettesitoId, OsztalyCsoportId, TantargyId, TeremId,
IsHelyettesitett, IsNaplozott, IsMobilNaplozott, IsElmaradt, IsOrarendNelkul, OrarendiOraId, TanitasiOraId,
TanarNev, HelyettesitoNev, OsztalyCsoportNev, TantargyNev, TeremNev, HetirendNev)
SELECT
-- Időszak adatok
orarend.OraDatuma,
orarend.OraKezdete,
orarend.OraVege,
orarend.HetNapjaId,
orarend.CsengetesiRendId,
orarend.CsengetesiRendOraId,
orarend.Oraszam,
orarend.HetirendId,
-- Kapcsolati adatok
orarend.OraTulajdonosId,
orarend.TanarId,
orarend.HelyettesitoId,
orarend.OsztalyCsoportId,
orarend.TantargyId,
orarend.TeremId,
-- Egyéb adatok
orarend.IsHelyettesitett,
orarend.IsNaplozott,
orarend.IsMobilNaplozott,
orarend.IsElmaradt,
orarend.IsOrarendNelkul,
orarend.OrarendiOraId,
orarend.TanitasiOraId,
-- Név adatok
ISNULL(tanar.C_NYOMTATASINEV,''),
ISNULL(helyettesito.C_NYOMTATASINEV,''),
ISNULL(osztalycsoport.C_NEV,''),
ISNULL(tantargy.C_NEV,''),
ISNULL(terem.C_NEV,''),
ISNULL(hetirend.C_NAME,'')
FROM fnGetTanorak(@tanevId,@kezdoDatum,@vegDatum,@tanarId,@tantargyId,@teremId,@osztalycsoportId,@isKapcsolodoCsoportok) orarend
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = orarend.TanarId AND tanar.C_TANEVID = @tanevId AND tanar.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = orarend.HelyettesitoId AND helyettesito.C_TANEVID = @tanevId AND helyettesito.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalycsoport ON osztalycsoport.ID = orarend.OsztalyCsoportId AND osztalycsoport.C_TANEVID = @tanevId AND osztalycsoport.TOROLT = 'F'
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = orarend.TantargyId AND tantargy.C_TANEVID = @tanevId AND tantargy.TOROLT = 'F'
LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = orarend.TeremId AND terem.C_TANEVID = @tanevId AND terem.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.ID = orarend.HetirendId AND hetirend.C_TANEVID = @tanevId AND hetirend.TOROLT = 'F'
RETURN
END
GO