121 lines
No EOL
5.2 KiB
Transact-SQL
121 lines
No EOL
5.2 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[sp_PedagogusNemBejegyzettOrai]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai]
|
|
@tanevID INT,
|
|
@mindenHeten INT,
|
|
@tanarID INT
|
|
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
|
|
|
|
DECLARE @OsztalyCsoportokTanevRendje TABLE (OsztalyCsoportId INT, Datum DATE, isOrarendiNap NVARCHAR(1))
|
|
INSERT INTO @OsztalyCsoportokTanevRendje
|
|
SELECT
|
|
C_OSZTALYCSOPORTID
|
|
,C_DATUM
|
|
,C_ORARENDINAP
|
|
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
|
|
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID
|
|
WHERE
|
|
TOROLT = 'F'
|
|
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
|
|
AND tr.C_ORARENDINAP = 'F'
|
|
|
|
SELECT
|
|
CONVERT(NVARCHAR(10),ROW_NUMBER() OVER (ORDER BY Napdatuma ))+'.' COLUMN440
|
|
,FORMAT(Napdatuma, 'yyyy.MM.dd.') COLUMN273
|
|
,Oraszam COLUMN274
|
|
,OsztalyNev COLUMN673
|
|
,TanarNev COLUMN456
|
|
,TantargyNev COLUMN252
|
|
,TeremNev COLUMN2477
|
|
,Hetirend COLUMN4252
|
|
FROM (
|
|
SELECT
|
|
naptar.C_NAPDATUMA Napdatuma
|
|
,oo.C_ORASZAM Oraszam
|
|
,ocs.C_NEV OsztalyNev
|
|
,f.C_NYOMTATASINEV TanarNev
|
|
,t.C_NEV TantargyNev
|
|
,ter.C_NEV TeremNev
|
|
,d.C_NAME Hetirend
|
|
FROM T_ORARENDIORA_OSSZES oo
|
|
INNER JOIN T_NAPTARINAP_OSSZES naptar ON ((naptar.C_NAPDATUMA >= oo.C_ORAERVENYESSEGKEZDETE
|
|
AND oo.C_ORAERVENYESSEGVEGE> naptar.C_NAPDATUMA) OR (naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGVEGE))
|
|
AND (naptar.C_HETIREND = oo.C_HETIREND OR oo.C_HETIREND = @mindenHeten)
|
|
AND oo.C_HETNAPJA=naptar.C_HETNAPJA
|
|
AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
|
|
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = naptar.C_NAPDATUMA AND tr.C_TANEVID = naptar.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
|
LEFT JOIN @OsztalyCsoportokTanevRendje OsztalyCsoportokTanevRendje ON OsztalyCsoportokTanevRendje.Datum = naptar.C_NAPDATUMA AND OsztalyCsoportokTanevRendje.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID
|
|
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID
|
|
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
|
|
AND naptar.C_NAPDATUMA=tao.C_DATUM
|
|
AND tao.TOROLT='F'
|
|
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID=oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA
|
|
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
|
|
INNER JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
|
|
INNER JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
|
|
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.ID=oo.C_HETIREND
|
|
WHERE
|
|
oo.C_TANEVID=@tanevId
|
|
AND oo.TOROLT='F'
|
|
AND oo.C_TANARID = @tanarID
|
|
AND naptar.C_NAPDATUMA <= IIF(C_VEGZOSEVFOLYAM = 'T' AND @vegzosUtolsoNapDatuma < GETDATE(), @vegzosUtolsoNapDatuma, GETDATE())
|
|
AND tao.ID IS NULL
|
|
AND hely.ID IS NULL
|
|
AND oo.TOROLT='F'
|
|
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
|
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
|
|
AND naptar.C_TANEVID = @tanevID
|
|
AND (tr.C_ORARENDINAP = 'T' OR tr.C_ORARENDINAP IS NULL)
|
|
AND (OsztalyCsoportokTanevRendje.isOrarendiNap = 'T' OR OsztalyCsoportokTanevRendje.isOrarendiNap IS NULL)
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
naptar.C_NAPDATUMA
|
|
,oo.C_ORASZAM
|
|
,ocs.C_NEV
|
|
,f.C_NYOMTATASINEV
|
|
,t.C_NEV
|
|
,ter.C_NEV
|
|
,d.C_NAME
|
|
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
|
|
INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID
|
|
INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID
|
|
LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
|
|
LEFT JOIN T_FELHASZNALO_OSSZES fh ON hi.C_HELYETTESTANAROKID = f.ID
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
|
|
LEFT JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
|
|
LEFT JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID
|
|
WHERE
|
|
hi.C_HELYETTESITESNAPJA <= IIF(C_VEGZOSEVFOLYAM = 'T', @vegzosUtolsoNapDatuma, GETDATE())
|
|
AND hi.TOROLT='F'
|
|
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
|
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
|
|
AND oo.TOROLT='F'
|
|
AND hi.C_HELYETTESTANAROKID = @tanarID
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM T_ORARENDIORA ooo
|
|
JOIN T_TANITASIORA tao ON tao.C_ORARENDIORAGROUPID = ooo.C_ORARENDIORAGROUPID AND tao.C_DATUM BETWEEN ooo.C_ORAERVENYESSEGKEZDETE AND ooo.C_ORAERVENYESSEGVEGE
|
|
WHERE tao.C_DATUM = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND ooo.ID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F'
|
|
)
|
|
)orak
|
|
ORDER BY Napdatuma, Oraszam
|
|
|
|
END
|
|
GO |