178 lines
No EOL
8.7 KiB
Transact-SQL
178 lines
No EOL
8.7 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrarendiOrak
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetNemNaplozottOrarendiOrak
|
|
@IntezmenyId int
|
|
,@TanevId int
|
|
,@IdoszakKezdete datetime
|
|
,@IdoszakVege datetime
|
|
,@TanarId int = NULL
|
|
,@OsztalyCsoportId int = NULL
|
|
,@TantargyId int = NULL
|
|
,@CsakAHelyettesiteseim bit = 0
|
|
,@HelyettesitettOraimIs bit = 0
|
|
,@pFeladatKategoriaId int = NULL
|
|
,@pDatumTol datetime = NULL
|
|
,@pOraszamTol int = NULL
|
|
,@pIdopontTol datetime = NULL
|
|
,@pDatumIg datetime = NULL
|
|
,@pOraszamIg int = NULL
|
|
,@pIdopontIg datetime = NULL
|
|
,@pFeladatEllatasiHelyId int = NULL
|
|
AS BEGIN
|
|
SET NOCOUNT ON;
|
|
SET DATEFIRST 1;
|
|
|
|
SELECT
|
|
ot.C_ORARENDIORAID AS Id,
|
|
ot.C_ORARENDIORAID AS ORARENDIID,
|
|
ot.C_BONTOTT AS Bontott,
|
|
ot.C_HETIREND AS Hetirend,
|
|
ot.C_HETNAPJA AS HetNapja,
|
|
ot.C_HETSORSZAMA AS HetSorszam,
|
|
CAST(ot.C_ORAERVENYESSEGKEZDETE AS DATETIME) AS ErvenyessegKezdete,
|
|
CAST(ot.C_ORAERVENYESSEGVEGE AS DATETIME) AS ErvenyessegVege,
|
|
CAST(ot.C_DATUM AS DATETIME) + CAST(ot.C_ORAKEZDETE AS DATETIME) AS OraKezdete,
|
|
ot.C_DATUM AS OraKezdeteDate,
|
|
CONVERT(varchar(5), CAST(ot.C_ORAKEZDETE AS DATETIME), 108) AS OraKezdeteTimeText,
|
|
CAST(ot.C_DATUM AS DATETIME) + CAST(ot.C_ORAVEGE AS DATETIME) AS OraVege,
|
|
IIF(ot.C_CSENGETESIRENDID IS NOT NULL, ot.C_ORASZAM, NULL) AS Oraszam,
|
|
tt.C_NEV AS TargyNev,
|
|
COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile,
|
|
ISNULL(tt.C_NEVNYOMTATVANYBAN, tt.C_NEV) AS TargyNevForNyomtatvany,
|
|
tt.C_TARGYKATEGORIA AS TargykategoriaID,
|
|
'F' AS Megtartott,
|
|
csr.ID AS CsengetesiRendOraID,
|
|
ot.C_CSENGETESIRENDID AS CsengetesiRendID,
|
|
ot.C_MAXORASZAM AS MaxNapiOraszam,
|
|
ocs.C_NEV AS OsztalyNev,
|
|
'' AS MegjelenesOka,
|
|
tanar.C_NYOMTATASINEV AS TanarNev,
|
|
tanar.C_OKTATASIAZONOSITO AS TanarOktAzon,
|
|
terem.C_NEV AS TeremNev,
|
|
'OrarendiOra' AS OraTipus,
|
|
'F' AS Hianyzas,
|
|
'F' AS Keses,
|
|
'F' AS Ures,
|
|
ot.C_HELYETTESTANAROKID AS HelyettesitoTanarID,
|
|
helyettes.C_NYOMTATASINEV AS HelyettesitoTanarNev,
|
|
ot.C_HELYETTESITESID AS HelyettesitesId,
|
|
ot.C_TANARID AS TanarID,
|
|
NULL AS AdminAltalKiirt,
|
|
ot.C_ORARENDIORAGROUPID AS GroupId,
|
|
NULL AS Tema,
|
|
ot.C_TANTARGYID AS TantargyId,
|
|
ot.C_OSZTALYCSOPORTID AS OsztCsopId,
|
|
IIF(ot.C_HELYETTESTANAROKID IS NOT NULL, tanar.C_NYOMTATASINEV, NULL) AS HelyettesitettPedagogusNev,
|
|
CONVERT(nvarchar(25), CAST(ot.C_DATUM AS DATETIME), 102) AS OraKezdeteDateST,
|
|
DATEPART(w, ot.C_DATUM) + 1407 AS HetNapjaValos,
|
|
CAST(ot.C_DATUM AS DATETIME) AS Datum,
|
|
helyettes.C_OKTATASIAZONOSITO AS HelyettesitoTanarOktAzon
|
|
FROM T_ORARENDTELJES_OSSZES ot
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = ot.C_OSZTALYCSOPORTID --AND ocs.C_INTEZMENYID = ot.C_INTEZMENYID and ocs.C_TANEVID = ot.C_TANEVID --AND ocs.TOROLT = 'F'
|
|
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csr ON csr.C_CSENGETESIRENDID = ot.C_CSENGETESIRENDID AND csr.C_ORASZAM = ot.C_ORASZAM --AND csr.C_INTEZMENYID = ot.C_INTEZMENYID AND csr.C_TANEVID = ot.C_TANEVID AND csr.TOROLT = 'F'
|
|
LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = ot.C_TANTARGYID AND tt.C_INTEZMENYID = ot.C_INTEZMENYID AND tt.C_TANEVID = ot.C_TANEVID AND tt.TOROLT = 'F'
|
|
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = ot.C_TANARID
|
|
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON helyettes.ID = ot.C_HELYETTESTANAROKID --AND helyettes.TOROLT = 'F'
|
|
LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = ot.C_TEREMID
|
|
WHERE ot.C_INTEZMENYID = @IntezmenyId
|
|
AND ot.C_TANEVID = @TanevId
|
|
AND ot.C_DATUM >= @IdoszakKezdete
|
|
AND ot.C_DATUM <= @IdoszakVege
|
|
AND (CAST(ot.C_DATUM AS DATETIME) + CAST(ot.C_ORAVEGE AS DATETIME)) >= CAST(@IdoszakKezdete AS DATE)
|
|
AND (CAST(ot.C_DATUM AS DATETIME) + CAST(ot.C_ORAKEZDETE AS DATETIME)) <= CAST(@IdoszakVege AS DATE)
|
|
AND ot.C_FELADATKATEGORIAID = CASE WHEN @pFeladatKategoriaId IS NOT NULL THEN @pFeladatKategoriaId ELSE ot.C_FELADATKATEGORIAID END
|
|
AND ot.C_OSZTALYCSOPORTID = CASE WHEN @OsztalyCsoportId IS NOT NULL THEN @OsztalyCsoportId ELSE ot.C_OSZTALYCSOPORTID END
|
|
AND ocs.C_FELADATELLATASIHELYID = CASE WHEN @pFeladatEllatasiHelyId IS NOT NULL THEN @pFeladatEllatasiHelyId ELSE ocs.C_FELADATELLATASIHELYID END
|
|
AND ot.C_TANTARGYID = CASE WHEN @TantargyId IS NOT NULL THEN @TantargyId ELSE ot.C_TANTARGYID END
|
|
AND (@TanarId IS NULL OR (ot.C_TANARID = @TanarId OR ot.C_HELYETTESTANAROKID = @TanarId))
|
|
|
|
-- ha 0 mindkét paraméter, adja vissza a tanar osszes sajat nem naplozott orajat + azokat ahol ő volt a helyettesito
|
|
AND (@TanarId IS NULL OR ((@CsakAHelyettesiteseim = 1 OR @HelyettesitettOraimIs = 1) OR (ot.C_HELYETTESTANAROKID = @TanarId OR (ot.C_TANARID = @TanarId AND ot.C_HELYETTESTANAROKID IS NULL))))
|
|
-- ha csak a "csak a helyettesiteseim" parameter igaz, adja vissza a tanar azon nem naplozott orait, ahol ő volt a helyettesito
|
|
AND (@TanarId IS NULL OR ((@CsakAHelyettesiteseim = 0 OR @HelyettesitettOraimIs = 1) OR (ot.C_HELYETTESTANAROKID = @TanarId)))
|
|
-- ha csak a "helyettesitett oram is" parameter igaz, adja vissza a tanar sajat nem naplozott orait + azokat ahol ő volt a helyettesito + ahol őt helyettesítették
|
|
AND (@TanarId IS NULL OR ((@CsakAHelyettesiteseim = 1 OR @HelyettesitettOraimIs = 0) OR (ot.C_HELYETTESTANAROKID IS NOT NULL OR ot.C_TANARID = @TanarId)))
|
|
-- ha a "csak a helyettesiteseim" es a "helyettesitett oraim is" parameter is igaz, adja vissza azokat a nem naplozott orakat ahol a tanar volt a helyettesito, vagy őt helyettesítették
|
|
AND (@TanarId IS NULL OR ((@CsakAHelyettesiteseim = 0 OR @HelyettesitettOraimIs = 0) OR (ot.C_HELYETTESTANAROKID IS NOT NULL)))
|
|
-- inkább így kellene
|
|
--AND (@TanarId IS NULL OR ((@CsakAHelyettesiteseim = 0 OR @HelyettesitettOraimIs = 0) OR (ot.C_HELYETTESTANAROKID = @TanarId OR (ot.C_TANARID = @TanarId AND ot.C_HELYETTESTANAROKID IS NOT NULL))))
|
|
|
|
AND (@pDatumTol IS NULL OR ot.C_DATUM >= CAST(@pDatumTol AS DATE))
|
|
AND (@pDatumIg IS NULL OR ot.C_DATUM <= CAST(@pDatumIg AS DATE))
|
|
AND (@pOraszamTol IS NULL OR ot.C_ORASZAM >= @pOraszamTol)
|
|
AND (@pOraszamIg IS NULL OR ot.C_ORASZAM <= @pOraszamIg)
|
|
AND (@pIdopontTol IS NULL OR ot.C_ORAKEZDETE >= CAST(@pIdopontTol AS TIME))
|
|
AND (@pIdopontIg IS NULL OR ot.C_ORAKEZDETE <= CAST(@pIdopontIg AS TIME))
|
|
AND NOT EXISTS(
|
|
SELECT *
|
|
FROM dbo.T_TANITASIORA_OSSZES tt
|
|
WHERE 1 = 1
|
|
AND tt.TOROLT = 'F'
|
|
AND tt.C_INTEZMENYID = ot.C_INTEZMENYID
|
|
AND tt.C_TANEVID = ot.C_TANEVID
|
|
AND tt.C_DATUM = CAST(ot.C_DATUM AS DATETIME)
|
|
AND tt.C_OSZTALYCSOPORTID = ot.C_OSZTALYCSOPORTID
|
|
AND tt.C_TANTARGYID = ot.C_TANTARGYID
|
|
AND tt.C_TANARID = ot.C_TANARID
|
|
AND (
|
|
tt.C_ORASZAM = ot.C_ORASZAM
|
|
OR
|
|
(
|
|
tt.C_ORAKEZDETE = CAST(ot.C_DATUM AS DATETIME) + CAST(ot.C_ORAKEZDETE AS DATETIME)
|
|
AND
|
|
tt.C_ORAVEGE = CAST(ot.C_DATUM AS DATETIME) + CAST(ot.C_ORAVEGE AS DATETIME)
|
|
)
|
|
)
|
|
)
|
|
|
|
-- Iktatás adatok
|
|
SELECT
|
|
@OsztalyCsoportId AS OsztalyId
|
|
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
|
|
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
|
|
,ocs.C_KEPZESIFORMA AS KepzesiForma
|
|
,o.C_OSZTALYFONOKID AS OsztalyFonokId
|
|
,o.C_TANTERVID AS TantervId
|
|
,o.C_SZAKMACSOPORT AS SzakmaCsoport
|
|
,o.C_AGAZAT AS Agazat
|
|
,o.C_SZAKKEPESITES AS Szakkepesites
|
|
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
|
|
,o.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat
|
|
,o.C_SZAKMATIPUSID AS UjSzktSzakma
|
|
,o.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany
|
|
,o.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet
|
|
,o.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites
|
|
,o.C_SZAKIRANYNKTTIPUSID AS NktSzakirany
|
|
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
|
|
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
|
|
,o.C_NEMZETISEGI AS OJNemzetisegi
|
|
,o.C_KETTANNYELVU AS OJKettannyelvu
|
|
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
|
|
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
|
|
,o.C_SPORT AS OJSportOsztaly
|
|
,o.C_AJPROGRAM AS OJAranyJanosProgram
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
|
|
AND o.C_ALTANEVID = ocs.C_TANEVID
|
|
AND o.C_ALINTEZMENYID = ocs.C_INTEZMENYID
|
|
WHERE ocs.ID = @OsztalyCsoportId
|
|
AND ocs.TOROLT = 'F'
|
|
AND ocs.C_TANEVID = @TanevId
|
|
AND ocs.C_INTEZMENYID = @IntezmenyId
|
|
|
|
-- Tanár iktatás adatok
|
|
SELECT
|
|
f.ID AS TanarId
|
|
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
|
|
FROM T_ALKALMAZOTT_OSSZES a
|
|
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID AND f.TOROLT = 'F'
|
|
AND a.C_ALTANEVID = f.C_TANEVID
|
|
AND a.C_ALINTEZMENYID = f.C_INTEZMENYID
|
|
WHERE a.TOROLT = 'F'
|
|
AND a.C_ALINTEZMENYID = @IntezmenyId
|
|
AND a.C_ALTANEVID = @TanevId
|
|
AND f.ID = CASE WHEN @TanarId IS NOT NULL THEN @TanarId ELSE f.ID END
|
|
|
|
END
|
|
GO |