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

98 lines
No EOL
3.4 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,
Oraszam INT,
OraTulajdonosId INT,
TanarId INT,
HelyettesitoId INT,
OsztalyCsoportId INT,
TantargyId INT,
TeremId INT,
IsHelyettesitett BIT,
IsNaplozott BIT,
IsMobilNaplozott BIT,
IsElmaradt BIT,
IsOrarendNelkul BIT,
OrarendiOraId INT,
TanitasiOraId INT,
TanarNev nvarchar(1000),
HelyettesitoNev nvarchar(1000),
OsztalyCsoportNev nvarchar(1000),
TantargyNev nvarchar(1000),
TeremNev nvarchar(1000)
)
BEGIN
INSERT INTO @retTable (
OraDatuma, OraKezdete, OraVege, HetNapjaId, CsengetesiRendId, CsengetesiRendOraId, Oraszam,
OraTulajdonosId, TanarId, HelyettesitoId, OsztalyCsoportId, TantargyId, TeremId,
IsHelyettesitett, IsNaplozott, IsMobilNaplozott, IsElmaradt, IsOrarendNelkul, OrarendiOraId, TanitasiOraId,
TanarNev, HelyettesitoNev, OsztalyCsoportNev, TantargyNev, TeremNev)
SELECT
-- Időszak adatok
orarend.OraDatuma,
orarend.OraKezdete,
orarend.OraVege,
orarend.HetNapjaId,
orarend.CsengetesiRendId,
orarend.CsengetesiRendOraId,
orarend.Oraszam,
-- 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,'')
FROM fnGetTanorak(@tanevId,@kezdoDatum,@vegDatum,@tanarId,@tantargyId,@teremId,@osztalycsoportId,@isKapcsolodoCsoportok) orarend
LEFT JOIN T_FELHASZNALO tanar ON tanar.ID = orarend.TanarId
LEFT JOIN T_FELHASZNALO helyettesito ON helyettesito.ID = orarend.HelyettesitoId
LEFT JOIN T_OSZTALYCSOPORT osztalycsoport ON osztalycsoport.ID = orarend.OsztalyCsoportId
LEFT JOIN T_TANTARGY tantargy ON tantargy.ID = orarend.TantargyId
LEFT JOIN T_TEREM terem ON terem.ID = orarend.TeremId
RETURN
END
GO