﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('dbo.sp_GetDokumentumTanitasiNapokSorszama') IS NOT NULL
BEGIN
  DROP PROCEDURE dbo.sp_GetDokumentumTanitasiNapokSorszama
END  
GO

CREATE PROCEDURE dbo.sp_GetDokumentumTanitasiNapokSorszama
	@tanevId					INT,
	@osztalyId					INT
AS
BEGIN
  SET NOCOUNT ON;
 
--Tanítás nélküli hétköznapok
DECLARE @TanitasNelkuliNapokTanevRendjeTable TABLE (Datum DATE)
INSERT INTO @TanitasNelkuliNapokTanevRendjeTable
SELECT 
	C_DATUM 
FROM T_TANEVRENDJE_OSSZES TanevRendje
WHERE
	C_TANEVID = @tanevId
	AND TOROLT = 'F'
	AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
	AND C_NAPTIPUSA NOT IN (1384, 1385, 1389, 1393, 1394, 1395, 1400, 1401, 1402, 1403, 1404, 1649)
	AND C_HETNAPJA IN (1408, 1409, 1410, 1411, 1412)

UNION

SELECT 
	C_DATUM 
FROM T_TANEVRENDJE_OSSZES TanevRendje
	INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE OsztalyCsoportTanevRendje ON OsztalyCsoportTanevRendje.C_TANEVRENDJEID = TanevRendje.ID
WHERE
	C_TANEVID = @tanevId
	AND TOROLT = 'F'
	AND C_OSSZESCSOPORTRAVONATKOZIK = 'F'
	AND C_NAPTIPUSA NOT IN (1384, 1385, 1389, 1393, 1394, 1395, 1400, 1401, 1402, 1403, 1404, 1649)
	AND C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyId, @tanevId))
	AND C_HETNAPJA IN (1408, 1409, 1410, 1411, 1412)

--Hétvégi tanítási napok
DECLARE @HetvegiTanitasiNapokTanevRendjeTable TABLE (Datum DATE)
INSERT INTO @HetvegiTanitasiNapokTanevRendjeTable
SELECT 
	C_DATUM 
FROM T_TANEVRENDJE_OSSZES TanevRendje
WHERE
	C_TANEVID = @tanevId
	AND TOROLT = 'F'
	AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
	AND C_NAPTIPUSA IN (1384, 1385, 1389, 1393, 1394, 1395, 1400, 1401, 1402, 1403, 1404, 1649)
	AND C_HETNAPJA IN (1413, 1414)

UNION

SELECT 
	C_DATUM 
FROM T_TANEVRENDJE_OSSZES TanevRendje
	INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE OsztalyCsoportTanevRendje ON OsztalyCsoportTanevRendje.C_TANEVRENDJEID = TanevRendje.ID
WHERE
	C_TANEVID = @tanevId
	AND TOROLT = 'F'
	AND C_OSSZESCSOPORTRAVONATKOZIK = 'F'
	AND C_NAPTIPUSA IN (1384, 1385, 1389, 1393, 1394, 1395, 1400, 1401, 1402, 1403, 1404, 1649)
	AND C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyId, @tanevId))
	AND C_HETNAPJA IN (1413, 1414)

--Result
SELECT 
	C_NAPDATUMA
FROM T_NAPTARINAP_OSSZES NaptariNap
WHERE
	NaptariNap.TOROLT = 'F'
	AND C_TANEVID = @tanevId
	AND C_NAPDATUMA NOT IN (SELECT Datum FROM @TanitasNelkuliNapokTanevRendjeTable)
	AND C_HETNAPJA IN (1408, 1409, 1410, 1411, 1412)

UNION

SELECT
	Datum
FROM @HetvegiTanitasiNapokTanevRendjeTable

END