98 lines
No EOL
3.4 KiB
Transact-SQL
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 |