This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,48 @@
DISABLE TRIGGER tr_ORARENDIORALog ON T_ORARENDIORA
GO
DISABLE TRIGGER tr_TANITASIORALog ON T_TANITASIORA
GO
UPDATE T_ORARENDIORA_OSSZES
SET C_ORARENDIORAGROUPID = ID
WHERE ID IN (
SELECT TOP(1000) ID
FROM T_ORARENDIORA_OSSZES
WHERE C_ORARENDIORAGROUPID IS NULL)
WHILE @@ROWCOUNT <> 0 BEGIN
UPDATE T_ORARENDIORA_OSSZES
SET C_ORARENDIORAGROUPID = ID
WHERE ID IN (
SELECT TOP(1000) ID
FROM T_ORARENDIORA_OSSZES
WHERE C_ORARENDIORAGROUPID IS NULL)
END
GO
UPDATE T_TANITASIORA_OSSZES
SET C_ORARENDIORAGROUPID = C_ORARENDIORAID
WHERE ID IN (
SELECT TOP(1000) ID
FROM T_TANITASIORA_OSSZES
WHERE C_ORARENDIORAGROUPID IS NULL
AND C_ORARENDIORAID IS NOT NULL)
WHILE @@ROWCOUNT <> 0 BEGIN
UPDATE T_TANITASIORA_OSSZES
SET C_ORARENDIORAGROUPID = C_ORARENDIORAID
WHERE ID IN (
SELECT TOP(1000) ID
FROM T_TANITASIORA_OSSZES
WHERE C_ORARENDIORAGROUPID IS NULL
AND C_ORARENDIORAID IS NOT NULL)
END
GO
ENABLE TRIGGER tr_ORARENDIORALog ON T_ORARENDIORA
GO
ENABLE TRIGGER tr_TANITASIORALog ON T_TANITASIORA

View file

@ -0,0 +1,43 @@
IF OBJECT_ID('fnGetUtkozesByOsztalycsoport') IS NOT NULL BEGIN
DROP FUNCTION fnGetUtkozesByOsztalycsoport
END
GO
CREATE FUNCTION [fnGetUtkozesByOsztalycsoport] (
@startTime datetime,
@endTime datetime,
@osztalyCsoportId int,
@intezmenyId int,
@tanevId int
) RETURNS TABLE
RETURN (
SELECT o.ID AS OrarendiOraId, NULL AS TanitasioraId, NULL as NemKotottMunkaido
FROM T_NAPTARINAP_OSSZES n
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA
INNER JOIN T_ORARENDIORA_OSSZES o ON (ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND OR o.C_HETIREND = 1554)
AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA
AND n.C_INTEZMENYID = o.C_INTEZMENYID
AND n.C_TANEVID = o.C_TANEVID
WHERE
CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) < @endTime
AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) > @startTime
AND o.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
AND n.C_TANEVID = @tanevId
AND n.C_INTEZMENYID = @intezmenyId
AND n.C_NAPDATUMA >= CAST(@startTime AS DATE) AND n.C_NAPDATUMA <= CAST(@endTime AS DATE)
AND n.TOROLT = 'F' AND (tr.TOROLT = 'F' OR tr.TOROLT IS NULL) AND o.TOROLT = 'F' and o.C_PARHUZAMOSORA = 'F'
AND o.C_ORAERVENYESSEGKEZDETE <= CAST(@endTime AS DATE) AND o.C_ORAERVENYESSEGVEGE >= CAST(@startTime AS DATE)
UNION
SELECT o.ID AS OrarendiOraId, tn.ID AS TanitasioraId, NULL as NemKotottMunkaido
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN T_ORARENDIORA o ON tn.C_ORARENDIORAGROUPID = o.C_ORARENDIORAGROUPID AND tn.C_DATUM BETWEEN o.C_ORAERVENYESSEGKEZDETE AND o.C_ORAERVENYESSEGVEGE
WHERE tn.C_ORAKEZDETE <= @endTime
AND tn.C_ORAVEGE >= @startTime
AND tn.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
AND tn.C_TANEVID = @tanevId
AND tn.C_INTEZMENYID = @intezmenyId
AND tn.TOROLT = 'F' and tn.C_PARHUZAMOSORA = 'F'
);
GO

View file

@ -0,0 +1,69 @@
IF OBJECT_ID('fnGetUtkozesByTanar') IS NOT NULL BEGIN
DROP FUNCTION fnGetUtkozesByTanar
END
GO
CREATE FUNCTION [fnGetUtkozesByTanar] (
@startTime datetime,
@endTime datetime,
@tanarId int,
@intezmenyId int,
@tanevId int
) RETURNS TABLE
RETURN (
SELECT
o.ID AS OrarendiOraId
,NULL AS TanitasiOraId
,NULL as NemKotottMunkaido
FROM T_NAPTARINAP_OSSZES n
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA
INNER JOIN T_ORARENDIORA_OSSZES o ON (ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND OR o.C_HETIREND = 1554)
AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA
AND n.C_INTEZMENYID = o.C_INTEZMENYID
AND n.C_TANEVID = o.C_TANEVID
WHERE
CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) < @endTime
AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) > @startTime
AND o.C_TANARID = @tanarId
AND n.C_TANEVID = @tanevId
AND n.C_INTEZMENYID = @intezmenyId
AND n.C_NAPDATUMA >= CAST(@startTime AS DATE) AND n.C_NAPDATUMA <= CAST(@endTime AS DATE)
AND n.TOROLT = 'F' AND (tr.TOROLT = 'F' OR tr.TOROLT IS NULL) AND o.TOROLT = 'F' and o.C_PARHUZAMOSORA = 'F'
AND o.C_ORAERVENYESSEGKEZDETE <= CAST(@endTime AS DATE) AND o.C_ORAERVENYESSEGVEGE >= CAST(@startTime AS DATE)
UNION
SELECT
o.ID AS OrarendiOraId
,tn.ID AS TanitasioraId
,NULL as NemKotottMunkaido
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN T_ORARENDIORA o ON tn.C_ORARENDIORAGROUPID = o.C_ORARENDIORAGROUPID AND tn.C_DATUM BETWEEN o.C_ORAERVENYESSEGKEZDETE AND o.C_ORAERVENYESSEGVEGE
WHERE
tn.C_ORAKEZDETE <= @endTime
AND tn.C_ORAVEGE >= @startTime
AND ISNULL(tn.C_HELYETTESITOTANARID, tn.C_ORATULAJDONOSID) = @tanarId
AND tn.C_TANEVID = @tanevId
AND tn.C_INTEZMENYID = @intezmenyId
AND tn.TOROLT = 'F' and tn.C_PARHUZAMOSORA = 'F'
UNION
SELECT
*
FROM
(
SELECT
NULL AS OrarendiOraId
,NULL AS TanitasiOraId
,IIF(COUNT(*) > 0, COUNT(*), NULL) AS NemKotottMunkaido
FROM T_NEMKOTOTTMUNKAIDO nkm
WHERE
nkm.C_TANEVID = @tanevId
AND nkm.C_INTEZMENYID = @intezmenyId
AND nkm.TOROLT = 'F'
AND nkm.C_TANARID = @tanarId
AND nkm.C_KEZDETE <= @endTime
AND nkm.C_VEGE >= @startTime
) AS nkmselect
WHERE
nkmselect.NemKotottMunkaido IS NOT NULL
);
GO

View file

@ -0,0 +1,53 @@
IF OBJECT_ID('[dbo].[sp_CheckTanarOra]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_CheckTanarOra]
END
GO
CREATE PROCEDURE [dbo].[sp_CheckTanarOra]
@tanarId int,
@start datetime,
@end datetime,
@IntezmenyId int,
@TanevId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @startDate datetime;
set @startDate = CAST(@start AS DATE)
declare @csengetesiRendId int;
set @csengetesiRendId = (select C_AKTIVCSENGETESIRENDID from T_NAPTARINAP nn where nn.C_NAPDATUMA = @startDate and nn.C_INTEZMENYID = @IntezmenyId and nn.C_TANEVID = @TanevId and nn.TOROLT = 'F')
declare @hetNapId int;
set @hetNapId = (select C_HETNAPJA from T_NAPTARINAP nn where nn.C_NAPDATUMA = @startDate and nn.C_INTEZMENYID = @IntezmenyId and nn.C_TANEVID = @TanevId and nn.TOROLT = 'F')
if(@csengetesiRendId is null) set @csengetesiRendId = (select ID from T_CSENGETESIREND where C_INTEZMENYID = @IntezmenyId and C_TANEVID = @TanevId and C_AKTIV = 'T' and TOROLT = 'F')
declare @csengetesiRendOraId int;
set @csengetesiRendOraId = (select ID from T_CSENGETESIRENDORA where C_CSENGETESIRENDID = @csengetesiRendId and CAST(C_KEZDETE as TIME) = CAST(@start AS Time) and CAST(C_VEGE as TIME) = CAST(@end AS Time) and C_INTEZMENYID = @IntezmenyId and C_TANEVID = @TanevId and TOROLT = 'F')
if ((select count(*) from T_ORARENDIORA where C_TANARID = @tanarId and C_CSENGETESIRENDORAID = @csengetesiRendOraId and C_HETNAPJA = @hetNapId and C_INTEZMENYID = @IntezmenyId and C_TANEVID = @TanevId and TOROLT = 'F' and CAST(@start as date) >= C_ORAERVENYESSEGKEZDETE and CAST(@start as date) <= C_ORAERVENYESSEGVEGE and CAST(@end as date) >= C_ORAERVENYESSEGKEZDETE and CAST(@end as date) <= C_ORAERVENYESSEGVEGE) = 1)
begin
declare @orarendiOraId int;
set @orarendiOraId = (select ID from T_ORARENDIORA where C_TANARID = @tanarId and C_CSENGETESIRENDORAID = @csengetesiRendOraId and C_HETNAPJA = @hetNapId and C_INTEZMENYID = @IntezmenyId and C_TANEVID = @TanevId and TOROLT = 'F' and CAST(@start as date) >= C_ORAERVENYESSEGKEZDETE and CAST(@start as date) <= C_ORAERVENYESSEGVEGE and CAST(@end as date) >= C_ORAERVENYESSEGKEZDETE and CAST(@end as date) <= C_ORAERVENYESSEGVEGE)
declare @orarendiOraGroupId int;
set @orarendiOraGroupId = (select C_ORARENDIORAGROUPID from T_ORARENDIORA where ID = @orarendiOraId)
declare @tanitasiOraId int;
set @tanitasiOraId = (select ID from T_TANITASIORA where C_ORARENDIORAGROUPID = @orarendiOraGroupId and C_ORAKEZDETE = @start and C_ORAVEGE = @end and C_INTEZMENYID = @IntezmenyId and C_TANEVID = @TanevId and TOROLT = 'F')
if(@tanitasiOraId is null)
select C_FOGLALKOZASID, C_TEREMID, C_TANTARGYID, C_OSZTALYCSOPORTID, ID as C_ORARENDIORAID from T_ORARENDIORA where Id = @orarendiOraId and C_INTEZMENYID = @IntezmenyId and C_TANEVID = @TanevId and TOROLT = 'F'
else
select C_FOGLALKOZASID, C_TEREMID, C_TANTARGYID, C_OSZTALYCSOPORTID, ID as C_ORARENDIORAID from T_ORARENDIORA where Id = -1
end
else
begin
select C_FOGLALKOZASID, C_TEREMID, C_TANTARGYID, C_OSZTALYCSOPORTID, ID as C_ORARENDIORAID from T_ORARENDIORA where Id = -1
end
END

View file

@ -0,0 +1,75 @@
-- =============================================
-- Description: Foglalkozások egész évben megtartandó óráinak száma.
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]
END
GO
CREATE PROCEDURE [dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
select ID foglalkozasID, count(OraID) OraSzam from(
select t_foglalkozas_OSSZES.ID ID, T_ORARENDIORA_OSSZES.ID OraID from
T_ORARENDIORA_OSSZES
inner join t_foglalkozas_OSSZES on T_ORARENDIORA_OSSZES.C_FOGLALKOZASID = T_FOGLALKOZAS_OSSZES.ID
inner join T_NAPTARINAP_OSSZES on T_ORARENDIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
and (T_ORARENDIORA_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_ORARENDIORA_OSSZES.C_HETIREND = 1554)
INNER JOIN T_TANEV_OSSZES ON T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID and t_foglalkozas_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
left join T_TANITASIORA_OSSZES on T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANITASIORA_OSSZES.C_DATUM
and T_TANITASIORA_OSSZES.C_ORARENDIORAGROUPID = T_ORARENDIORA_OSSZES.C_ORARENDIORAGROUPID
and T_TANITASIORA_OSSZES.C_DATUM BETWEEN T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
and T_TANITASIORA_OSSZES.C_MEGTARTOTT ='F'
and T_TANITASIORA_OSSZES.TOROLT='F'
left join T_OSZTALYCSOPORT_TANEVRENDJE on T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
where NOT EXISTS (Select 1 from
T_TANEVRENDJE_OSSZES
left join T_OSZTALYCSOPORT_TANEVRENDJE on t_foglalkozas_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM
and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
and T_TANEVRENDJE_OSSZES.TOROLT='F'
and T_NAPTARINAP_OSSZES.C_NAPDATUMA >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE
and T_NAPTARINAP_OSSZES.C_NAPDATUMA <= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
))
AND T_TANITASIORA_OSSZES.ID is null
AND T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F'
union all
select foglalkozas.ID ID, T_TANITASIORA_OSSZES.id OraID
from T_TANITASIORA_OSSZES
inner join ( select ID, C_OSZTALYCSOPORTID from t_foglalkozas_OSSZES where torolt='F' ) foglalkozas on T_TANITASIORA_OSSZES.C_FOGLALKOZASID = foglalkozas.ID
inner join T_NAPTARINAP_OSSZES on T_TANITASIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
where
C_ORARENDIORAGROUPID is null and T_TANITASIORA_OSSZES.TOROLT='F'
and
NOT EXISTS (Select 1 from
T_TANEVRENDJE_OSSZES
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM
and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
and T_TANEVRENDJE_OSSZES.TOROLT='F'))
) orak
Group by ID
END

View file

@ -0,0 +1,199 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_GetHelyettesitesekOrarend') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetHelyettesitesekOrarend
END
GO
CREATE PROCEDURE [dbo].[sp_GetHelyettesitesekOrarend]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int,
@CsakOrarendiOrak bit
AS
BEGIN
SET NOCOUNT ON;
DECLARE @KezdoHet int = DATEPART( ISO_WEEK, @IdoszakKezdete);
DECLARE @ZaroHet int = DATEPART( ISO_WEEK, @IdoszakVege);
SELECT Distinct
Datum,
ISNULL(TanevHetirend, NapHetirend) Hetirend,
ISNULL(TanevHetNapja, NapHetNapja) HetNapja,
OsztalyCsoportId
INTO #TEMPORARENDINAPOK
FROM (
SELECT
NAPTARINAP.Datum Datum,
NAPTARINAP.NapHetirend,
NAPTARINAP.NapHetNapja,
NAPTARINAP.TanevHetirend,
NAPTARINAP.TanevHetNapja,
NAPTARINAP.OsztalyCsoportId
FROM (
(
SELECT
C_NAPDATUMA Datum,
C_HETIREND NapHetirend,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), C_HETNAPJA) NapHetNapja,
null TanevHetirend,
null TanevHetNapja,
null OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES
WHERE (TOROLT = 'F' AND C_NAPDATUMA >= @IdoszakKezdete AND C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
union
(
SELECT
NAPTARINAP.C_NAPDATUMA Datum,
NAPTARINAP.C_HETIREND NapHetirend,
IIF(NAPTARINAP.C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), NAPTARINAP.C_HETNAPJA) NapHetNapja,
tanevRendHetirend.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
tanevRendHetirend.C_OSZTALYCSOPORTID OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES NAPTARINAP
inner JOIN (
SELECT
C_DATUM,
C_HETIREND,
T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA
from T_TANEVRENDJE_OSSZES
inner Join T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
WHERE TOROLT = 'F' AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId And TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.C_NAPDATUMA
WHERE (TOROLT = 'F' AND NAPTARINAP.C_NAPDATUMA >= @IdoszakKezdete AND NAPTARINAP.C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
) NAPTARINAP
) result
DECLARE @VegzosUtolsoTanitasiNap_spGetOrarend DATETIME;
SELECT
@VegzosUtolsoTanitasiNap_spGetOrarend = C_DATUM
FROM
T_TANEVRENDJE
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
/*Tanítási órák*/
SELECT
TANITASIORA.ID Id,
oo.ID ORARENDIID,
TANITASIORA.C_BONTOTT Bontott,
(SELECT T_NAPTARINAP.C_HETIREND FROM T_NAPTARINAP WHERE T_NAPTARINAP.ID = TANITASIORA.C_NAPTARINAPID) Hetirend,
TANITASIORA.C_HETNAPJA HetNapja,
'' ErvenyessegKezdete,
'' ErvenyessegVege,
TANITASIORA.C_ORAKEZDETE OraKezdete,
TANITASIORA.C_ORAVEGE OraVege,
TANITASIORA.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, TARGY.C_NEV) TargyNev,
TANITASIORA.C_MEGTARTOTT Megtartott,
TANITASIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV OsztalyNev,
CAST(null AS int) TanevRendOsztalyCsoportId,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'TanitasiOra' OraTipus,
''Hianyzas,
'' Keses,
TANITASIORA.C_HELYETTESITOTANARID HelyettesitoTanarID,
TANAR.ID TanarID,
TANITASIORA.C_ADMINALTALKIIRT AdminAltalKiirt,
HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev,
null as HelyettesitesId
INTO #TEMPORAK
FROM T_TANITASIORA TANITASIORA
LEFT JOIN T_TANTARGY TARGY ON (TARGY.ID = TANITASIORA.C_TANTARGYID AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId)
LEFT JOIN T_ORAK_TANAROK ON TANITASIORA.ID = T_ORAK_TANAROK.C_ORAKID
LEFT JOIN T_FELHASZNALO TANAR ON T_ORAK_TANAROK.C_TANAROKID = TANAR.ID
LEFT JOIN T_OSZTALYCSOPORT OSZTALY ON (TANITASIORA.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId)
LEFT JOIN T_TEREM TEREM ON (TEREM.id = TANITASIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
LEFT JOIN T_FELHASZNALO HELYETTESTANAR on TANITASIORA.C_HELYETTESITOTANARID = HELYETTESTANAR.ID
LEFT JOIN T_ORARENDIORA oo ON TANITASIORA.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND TANITASIORA.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
WHERE
@CsakOrarendiOrak = 0 AND TANITASIORA.TOROLT='F' AND TANITASIORA.C_INTEZMENYID = @IntezmenyId AND TANITASIORA.C_TANEVID=@TanevId
AND TANITASIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND (TANITASIORA.C_ORAKEZDETE >= @IdoszakKezdete
AND TANITASIORA.C_ORAVEGE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END))
AND (@TanarId IS NULL OR ( TANITASIORA.C_HELYETTESITOTANARID = @TanarId OR TANITASIORA.C_ORATULAJDONOSID = @TanarId OR T_ORAK_TANAROK.C_TANAROKID = @TanarId))
/*Órarendi órák*/
INSERT INTO #TEMPORAK
SELECT DISTINCT
OrarendiOrak.Id, ORARENDIID, Bontott, Hetirend, HetNapja, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege,
Oraszam, TargyNev, Megtartott, CsengetesiRendOraID, OsztalyNev, TanevRendOsztalyCsoportId,TanarNev, TeremNev, OraTipus, Hianyzas, Keses,
T_HELYETTESITESIIDOSZAK.C_HELYETTESTANAROKID HelyettesitoTanarID, TanarID,AdminAltalKiirt,HELYETTESTANAR.C_NYOMTATASINEV as HelyettesitoTanarNev, T_HELYETTESITESIIDOSZAK.ID as HelyettesitesId
FROM (
SELECT
T_ORARENDIORA.ID Id,
T_ORARENDIORA.ID ORARENDIID,
T_ORARENDIORA.C_BONTOTT Bontott,
T_ORARENDIORA.C_HETIREND Hetirend,
T_ORARENDIORA.C_HETNAPJA HetNapja,
T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE ErvenyessegKezdete,
T_ORARENDIORA.C_ORAERVENYESSEGVEGE ErvenyessegVege,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA.C_ORAKEZDETE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA.C_ORAKEZDETE), ORARENDINAPOK.DATUM)) OraKezdete,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA.C_ORAVEGE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA.C_ORAVEGE), ORARENDINAPOK.DATUM)) OraVege,
T_ORARENDIORA.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, TARGY.C_NEV) TargyNev,
'F' Megtartott,
T_ORARENDIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV OsztalyNev,
ORARENDINAPOK.OsztalyCsoportId TanevRendOsztalyCsoportId,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'OrarendiOra' OraTipus,
'F' Hianyzas,
'F' Keses,
TANAR.ID TanarID,
'F' AdminAltalKiirt
FROM
T_ORARENDIORA
INNER JOIN #TEMPORARENDINAPOK ORARENDINAPOK ON (( T_ORARENDIORA.C_HETIREND = 1554 OR ORARENDINAPOK.HETIREND = T_ORARENDIORA.C_HETIREND ) AND ORARENDINAPOK.HETNAPJA = T_ORARENDIORA.C_HETNAPJA And (T_ORARENDIORA.C_OSZTALYCSOPORTID = ORARENDINAPOK.OsztalyCsoportId or ORARENDINAPOK.OsztalyCsoportId is null) )
LEFT JOIN T_TANTARGY TARGY ON TARGY.ID = T_ORARENDIORA.C_TANTARGYID AND TARGY.TOROLT = 'F' AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId
LEFT JOIN T_FELHASZNALO TANAR ON TANAR.ID = T_ORARENDIORA.C_TANARID AND TANAR.TOROLT= 'F'
LEFT JOIN T_OSZTALYCSOPORT OSZTALY ON T_ORARENDIORA.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId
LEFT JOIN T_TEREM TEREM ON (TEREM.id = T_ORARENDIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
WHERE
T_ORARENDIORA.TOROLT='F'
AND T_ORARENDIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND T_ORARENDIORA.C_INTEZMENYID = @IntezmenyId
AND T_ORARENDIORA.C_TANEVID=@TanevId
AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND ORARENDINAPOK.DATUM BETWEEN @IdoszakKezdete AND (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND (
(ORARENDINAPOK.DATUM >= T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM < T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
OR
(ORARENDINAPOK.DATUM = T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM = T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
)
) OrarendiOrak
LEFT JOIN T_HELYETTESITESIIDOSZAK ON (OrarendiOrak.ID = T_HELYETTESITESIIDOSZAK.C_HELYETTESITETTORARENDID
And T_HELYETTESITESIIDOSZAK.C_HETSORSZAMA >= @KezdoHet
AND (T_HELYETTESITESIIDOSZAK.C_HETSORSZAMA <= @ZaroHet)
And T_HELYETTESITESIIDOSZAK.TOROLT = 'F' AND DATEDIFF(DAY, OrarendiOrak.OraKezdete, T_HELYETTESITESIIDOSZAK.C_HELYETTESITESNAPJA) = 0)
LEFT JOIN T_FELHASZNALO HELYETTESTANAR ON HELYETTESTANAR.ID = T_HELYETTESITESIIDOSZAK.C_HELYETTESTANAROKID
WHERE (@TanarId IS NULL OR OrarendiOrak.TanarID = @TanarId OR T_HELYETTESITESIIDOSZAK.C_HELYETTESTANAROKID = @TanarId)
AND NOT EXISTS (
SELECT 1 FROM #TEMPORAK TANORAK
WHERE TANORAK.ORARENDIID = OrarendiOrak.ID
AND DATEDIFF(DAY, TANORAK.OraKezdete, OrarendiOrak.OraKezdete) = 0
AND DATEDIFF(DAY, TANORAK.OraVege, OrarendiOrak.OraVege) = 0
)
SELECT * FROM #TEMPORAK order by orakezdete
DROP TABLE #TEMPORAK
DROP TABLE #TEMPORARENDINAPOK
END

View file

@ -0,0 +1,27 @@
IF OBJECT_ID('dbo.sp_GetHelyettesitoTanarTanorahoz') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetHelyettesitoTanarTanorahoz
END
GO
-- =============================================
-- Author: <Zsiga Attila>
-- Create date: <2016.03.09.>
-- Description: <Tanorahoz tartozo helyettesito tanar>
-- =============================================
Create PROCEDURE [dbo].[sp_GetHelyettesitoTanarTanorahoz]
-- Add the parameters for the stored procedure here
@pOrarendiOraID int,
@pDatum DateTime
AS
BEGIN
SET NOCOUNT ON;
SELECT
tto.C_HELYETTESITOTANARID HelyettesitoID
FROM T_ORARENDIORA oo
JOIN T_TANITASIORA tto ON tto.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tto.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
WHERE
oo.ID = @pOrarendiOraID
AND tto.C_DATUM = @pDatum
END
GO

View file

@ -0,0 +1,58 @@
IF OBJECT_ID('dbo.sp_GetHianyzoOrabeirasok') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetHianyzoOrabeirasok
END
GO
-- =============================================
-- Author: <Zsiga Attila>
-- Create date: <2016.03.09.>
-- Description: <Hiányzó órabeírások (órarendióra, ami nem lett lenaplózva tanításiórává) értesítés generáláshoz>
-- =============================================
Create PROCEDURE [dbo].[sp_GetHianyzoOrabeirasok]
-- Add the parameters for the stored procedure here
@pIdoszakVege DateTime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
-- :TOKNOW:
-- 1608: Hiányzó óra naplózás
-- 1554: Minden héten
DECLARE @pIdoszakKezdete DateTime;
SET @pIdoszakKezdete =
(
SELECT
TOP 1 CREATED LastCreated
FROM
T_ERTESITES
WHERE
T_ERTESITES.C_TIPUS = 1608
ORDER BY
T_ERTESITES.CREATED DESC
);
DECLARE @pLastCreated DateTime;
SET @pLastCreated = @pIdoszakKezdete;
SELECT
T_ORARENDIORA.ID OrarendiOraID,
T_NAPTARINAP.C_NAPDATUMA Datum,
T_ORARENDIORA.C_ORASZAM Oraszam
FROM
(SELECT * FROM T_ORARENDIORA WHERE T_ORARENDIORA.TOROLT = 'F' AND ((T_ORARENDIORA.C_ORAERVENYESSEGVEGE >= @pIdoszakKezdete AND T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE <= @pIdoszakVege) OR (T_ORARENDIORA.CREATED > @pLastCreated AND T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE <= @pIdoszakVege))) T_ORARENDIORA
LEFT JOIN T_NAPTARINAP ON
T_NAPTARINAP.C_NAPDATUMA >= CONVERT(DATE, T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND T_NAPTARINAP.C_NAPDATUMA <= CONVERT(DATE, T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
AND ((T_NAPTARINAP.C_NAPDATUMA >= @pIdoszakKezdete AND T_NAPTARINAP.C_NAPDATUMA <= @pIdoszakVege) OR (T_ORARENDIORA.CREATED > @pLastCreated AND T_NAPTARINAP.C_NAPDATUMA <= @pIdoszakVege))
AND T_NAPTARINAP.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA
AND (T_ORARENDIORA.C_HETIREND = 1554 OR T_NAPTARINAP.C_HETIREND = T_ORARENDIORA.C_HETIREND)
AND T_NAPTARINAP.TOROLT = 'F'
LEFT JOIN T_TANITASIORA ON T_TANITASIORA.C_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.C_DATUM = T_NAPTARINAP.C_NAPDATUMA AND T_TANITASIORA.TOROLT = 'F'
WHERE
T_TANITASIORA.C_MEGTARTOTT IS NULL
END
GO

View file

@ -0,0 +1,145 @@
IF OBJECT_ID('dbo.sp_GetNaploEllenorzes') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetNaploEllenorzes
END
GO
IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzes]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNaploEllenorzes]
END
GO
-- =============================================
-- Author: Kelemen Attila
-- Create date: 2016.03.21.
-- Description: Naplóellenőrzés összegzése
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzes]
@osztalyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select
'' Osszegzes,
Eszrevetelek.EV,
Eszrevetelek.HetSzama ID,
count(1) NemNaplozottOrakSzama,
(case when T_NAPLOELLENORZES.ID IS NULL then 'F' else 'T' end) Ellenorizve,
T_NAPLOELLENORZES.ID EllenorzesID,
Ellenorzo.C_NYOMTATASINEV EllenorzoSzemely,
T_NAPLOELLENORZES.C_ELLENORZESDATUMA EllenorzesDatum,
T_NAPLOELLENORZES.C_ESZREVETEL Eszrevetel,
Eszrevetelek.OsztalyID
from (
select KapcsolodoCsoportok.OsztalyID osztalyID,
KapcsolodoCsoportok.OsztalyNev OsztalyNev,
naptar.C_HETSORSZAMA HetSzama,
YEAR(naptar.c_napdatuma) EV
from T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
inner join T_NAPTARINAP naptar on (( CONVERT(date,naptar.C_NAPDATUMA) BETWEEN CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGVEGE))
AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = 1554
AND naptar.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA) )
LEFT JOIN T_TANITASIORA ON (T_TANITASIORA.C_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.TOROLT='F' AND naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM)
left join (select T_OSZTALYCSOPORT.ID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
kcs.CsoportID
from T_OSZTALYCSOPORT
--Az osztályhoz kapcsolódó csoportok óráit is listázzuk
left join (Select OsztalyID,
OsztalyNev,
CsoportID
from (select C_OSZTALYCSOPORTID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
C_TANULOID TanuloID
from T_TANULOCSOPORT
INNER JOIN T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
INNER JOIN T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID
where T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
inner join
(select T_CSOPORT.ID CsoportID,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_CSOPORT on T_TANULOCSOPORT.ID=T_CSOPORT.ID
where T_CSOPORT.TOROLT='F'
and T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) Csoportok
on OsztalyTanuloi.TanuloID = Csoportok.TanuloID) kcs
on kcs.OsztalyID = T_OSZTALYCSOPORT.ID
where T_OSZTALYCSOPORt.TOROLT = 'F') KapcsolodoCsoportok
on KapcsolodoCsoportok.OsztalyID = @osztalyId
and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID
where
T_ORARENDIORA.TOROLT='F'
and naptar.TOROLT = 'F'
and T_FOGLALKOZAS.TOROLT='F'
and GETDATE() >= naptar.C_NAPDATUMA
and T_TANITASIORA.ID IS NULL
and KapcsolodoCsoportok.OsztalyID = @osztalyId
union all
select KapcsolodoCsoportok.OsztalyID osztalyID,
KapcsolodoCsoportok.OsztalyNev OsztalyNev,
naptar.C_HETSORSZAMA HetSzama,
YEAR(naptar.c_napdatuma) EV
from T_TANITASIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID
inner join T_NAPTARINAP naptar on T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA
left join (select T_OSZTALYCSOPORT.ID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
kcs.CsoportID
from T_OSZTALYCSOPORT
left join (Select OsztalyID,
OsztalyNev,
CsoportID
from
(select C_OSZTALYCSOPORTID OsztalyID,
T_OSZTALYCSOPORT.C_NEV OsztalyNev,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
inner join T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID
where T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
inner join
(select T_CSOPORT.ID CsoportID,
C_TANULOID TanuloID
from T_TANULOCSOPORT
inner join T_CSOPORT on T_TANULOCSOPORT.ID=T_CSOPORT.ID
where T_CSOPORT.TOROLT='F'
and T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
) Csoportok on OsztalyTanuloi.TanuloID = Csoportok.TanuloID) kcs
on kcs.OsztalyID = T_OSZTALYCSOPORT.ID
where T_OSZTALYCSOPORt.TOROLT = 'F')
KapcsolodoCsoportok on
KapcsolodoCsoportok.OsztalyID = @osztalyId
and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID
where T_TANITASIORA.C_ORARENDIORAGROUPID is null
and T_TANITASIORA.C_MEGTARTOTT is null
and KapcsolodoCsoportok.OsztalyID = @osztalyId
) Eszrevetelek
left join T_NAPLOELLENORZES on ( T_NAPLOELLENORZES.C_OSZTALYID = @osztalyId
AND T_NAPLOELLENORZES.C_HETSORSZAMA = Eszrevetelek.HetSzama
AND T_NAPLOELLENORZES.TOROLT = 'F')
left join T_FELHASZNALO Ellenorzo on Ellenorzo.ID = T_NAPLOELLENORZES.C_ELLENORZOSZEMELYID
group by Eszrevetelek.EV,
Eszrevetelek.HetSzama,
T_NAPLOELLENORZES.ID,
Ellenorzo.C_NYOMTATASINEV,
T_NAPLOELLENORZES.C_ELLENORZESDATUMA,
T_NAPLOELLENORZES.C_ESZREVETEL,
T_NAPLOELLENORZES.C_OSZTALYID,
Eszrevetelek.OsztalyID
order by EV desc, Eszrevetelek.HetSzama desc
END

View file

@ -0,0 +1,120 @@
IF OBJECT_ID('dbo.sp_GetNaploEllenorzesTetelek') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetNaploEllenorzesTetelek
END
GO
IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzesTetelek]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetNaploEllenorzesTetelek]
END
GO
-- =============================================
-- Author: Kelemen Attila
-- Create date: 2016.03.21.
-- Description: Naplóellenőrzés tételei
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzesTetelek]
@osztalyId int,
@hetSorszam int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select * from
(
--Órarendi órák, amikhez nem tartozik tanóra
select T_ORARENDIORA.ID Id,
naptar.C_HETSORSZAMA HetSzama,
naptar.C_NAPDATUMA Datum,
naptar.C_HETNAPJA Hetnapja,
T_ORARENDIORA.C_ORASZAM Oraszam,
osztaly.C_NEV OsztalyNev,
T_TANTARGY.C_NEV TargyNev,
--Ha van helyettesítő, akkor annak a nevére van szükségünk
(select top 1 tanar.C_NYOMTATASINEV from T_FELHASZNALO tanar
where ((T_TANITASIORA.C_HELYETTESITOTANARID IS null and T_FOGLALKOZAS.C_TANARID = tanar.ID)
OR (T_TANITASIORA.C_HELYETTESITOTANARID IS not null and T_TANITASIORA.C_HELYETTESITOTANARID= tanar.ID))) TanarNev
FROM
T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID AND T_FOGLALKOZAS.TOROLT='F'
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
inner join T_NAPTARINAP naptar on (( CONVERT(date,naptar.C_NAPDATUMA) BETWEEN CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGVEGE))
AND
(naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = 1554
AND naptar.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA) )
LEFT JOIN T_TANITASIORA ON (T_TANITASIORA.C_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.TOROLT='F' AND naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM)
inner join T_OSZTALYCSOPORT osztaly on T_FOGLALKOZAS.C_OSZTALYCSOPORTID = osztaly.ID AND osztaly.TOROLT='F'
--Az osztályhoz kapcsolódó csoportok óráit is listázzuk
left join (Select OsztalyID, CsoportID from
(select C_OSZTALYCSOPORTID OsztalyID, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY ON T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
WHERE T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
INNER JOIN
(SELECT T_CSOPORT.ID CsoportID, C_TANULOID TanuloID FROM T_TANULOCSOPORT
INNER JOIN T_CSOPORT ON T_TANULOCSOPORT.ID=T_CSOPORT.ID
WHERE T_CSOPORT.TOROLT='F'
AND T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
) Csoportok ON OsztalyTanuloi.TanuloID = Csoportok.TanuloID) KapcsolodoCsoportok ON
KapcsolodoCsoportok.OsztalyID = @osztalyId
where T_ORARENDIORA.TOROLT='F'
AND naptar.TOROLT = 'F'
AND GETDATE() >= naptar.C_NAPDATUMA
AND T_TANITASIORA.ID IS NULL
AND (osztaly.ID = @osztalyId OR osztaly.ID = KapcsolodoCsoportok.CsoportID)
and naptar.C_HETSORSZAMA = @hetSorszam
UNION ALL
--Tanítási órák, amikhez nem tartozik órarendi óra
select T_TANITASIORA.ID Id,
naptar.C_HETSORSZAMA HetSzama,
naptar.C_NAPDATUMA Datum,
naptar.C_HETNAPJA Hetnapja,
T_TANITASIORA.C_ORASZAM Oraszam,
osztaly.C_NEV OsztalyNev,
T_TANTARGY.C_NEV TargyNev,
tanar.C_NYOMTATASINEV TanarNev
from T_TANITASIORA
inner join T_NAPTARINAP naptar on (T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA)
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID
left join T_OSZTALYCSOPORT osztaly on T_FOGLALKOZAS.C_OSZTALYCSOPORTID = osztaly.ID
left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID
left join T_FELHASZNALO tanar on
--Ha van helyettesítő, akkor aszerint joinolunk
(case when T_TANITASIORA.C_HELYETTESITOTANARID IS not null then T_TANITASIORA.C_HELYETTESITOTANARID
else T_FOGLALKOZAS.C_TANARID end) = tanar.ID
left join (Select OsztalyID, CsoportID from
(select C_OSZTALYCSOPORTID OsztalyID, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY ON T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID
WHERE T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi
INNER JOIN
(SELECT T_CSOPORT.ID CsoportID, C_TANULOID TanuloID FROM T_TANULOCSOPORT
INNER JOIN T_CSOPORT ON T_TANULOCSOPORT.ID=T_CSOPORT.ID
WHERE T_CSOPORT.TOROLT='F'
AND T_TANULOCSOPORT.TOROLT='F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())
) Csoportok ON OsztalyTanuloi.TanuloID = Csoportok.TanuloID) KapcsolodoCsoportok ON
KapcsolodoCsoportok.OsztalyID = @osztalyId
where T_TANITASIORA.C_ORARENDIORAGROUPID is null
AND T_TANITASIORA.C_MEGTARTOTT is null
AND (osztaly.ID = @osztalyId OR osztaly.ID = KapcsolodoCsoportok.CsoportID)
and naptar.C_HETSORSZAMA = @hetSorszam
) Orak
ORDER BY Datum DESC
END

View file

@ -0,0 +1,168 @@
IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaByHet') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
END
GO
CREATE PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
@osztalyId INT
,@intezmenyId INT
,@tanevId INT
,@hetSorszam INT
AS
BEGIN
DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
DECLARE @vegzosOsztalyokCsoportok TABLE (osztalyId INT)
INSERT INTO @vegzosOsztalyokCsoportok
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_VEGZOSEVFOLYAM = 'T' AND C_TANEVID = @tanevID AND TOROLT = 'F'
DECLARE @aktualisHetHetirendje INT = (SELECT C_HETIREND FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA=@hetSorszam AND TOROLT='F' AND C_TANEVID=@tanevId)
DECLARE @OsszesNap TABLE (Datum DATE, Hetirend INT, OrarendiNap NVARCHAR(1), OsztalyCsoportId INT)
INSERT INTO @OsszesNap
SELECT DISTINCT
C_NAPDATUMA
,C_HETIREND
,C_ORARENDINAP
,kapcsolodo.Id
FROM T_NAPTARINAP_OSSZES
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
DECLARE @TanevRendje TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
INSERT INTO @TanevRendje
SELECT
C_DATUM
,C_HETIREND
,kapcsolodo.Id
,C_ORARENDINAP
FROM T_TANEVRENDJE_OSSZES
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
DECLARE @TanevRendjeOsztalyCsoportonkent TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
INSERT INTO @TanevRendjeOsztalyCsoportonkent
SELECT
C_DATUM
,C_HETIREND
,C_OSZTALYCSOPORTID
,C_ORARENDINAP
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.ID = ocstr.C_TANEVRENDJEID
INNER JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo ON kapcsolodo.Id = C_OSZTALYCSOPORTID
WHERE
TOROLT = 'F'
DECLARE @OrarendiNapok TABLE (Datum DATE, OsztalyCsoportId INT, Hetirend INT)
INSERT INTO @OrarendiNapok
SELECT
Datum
,OsztalyCsoportId
,Hetirend
FROM
(SELECT
OsszesNap.Datum
,OsszesNap.OsztalyCsoportId
,COALESCE(trocs.OrarendiNap, tr.OrarendiNap, OsszesNap.OrarendiNap) OrarendiNap
,COALESCE(trocs.Hetirend, tr.Hetirend, OsszesNap.Hetirend) Hetirend
FROM @OsszesNap OsszesNap
LEFT JOIN @TanevRendje tr ON tr.Datum = OsszesNap.Datum AND tr.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
LEFT JOIN @TanevRendjeOsztalyCsoportonkent trocs ON trocs.Datum = OsszesNap.Datum AND trocs.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
WHERE
OsszesNap.OrarendiNap = 'T' OR tr.OrarendiNap = 'T' OR trocs.OrarendiNap = 'T'
) a
WHERE OrarendiNap ='T'
SELECT
Id AS Id
,@hetSorszam AS HetSzama
,C_NAPDATUMA AS Datum
,C_HETNAPJA AS Hetnapja
,C_ORASZAM AS Oraszam
,C_NEV AS OsztalyNev
,tant AS TargyNev
,Nev AS TanarNev
FROM
(
SELECT DISTINCT
oo.id
,naptar.C_NAPDATUMA
,naptar.C_HETNAPJA
,oo.C_ORASZAM
,ocs.C_NEV
,t.C_NEV tant
,ISNULL(fh.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Nev
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_NAPTARINAP_OSSZES naptar ON
((naptar.C_NAPDATUMA >=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA < oo.C_ORAERVENYESSEGVEGE)
OR
(naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGVEGE))
AND oo.C_HETNAPJA=naptar.C_HETNAPJA
AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
INNER JOIN @OrarendiNapok OrarendiNapok ON OrarendiNapok.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND OrarendiNapok.Datum = naptar.C_NAPDATUMA AND (OrarendiNapok.Hetirend = oo.C_HETIREND OR oo.C_HETIREND = 1554)
LEFT JOIN T_TANITASIORA_OSSZES tao ON
naptar.C_NAPDATUMA = tao.C_DATUM
AND tao.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
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
LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
LEFT JOIN T_FELHASZNALO_OSSZES fh ON hely.C_HELYETTESTANAROKID = f.ID
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_DICTIONARYITEMBASE_OSSZES d ON d.ID=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID
WHERE
oo.TOROLT='F'
AND oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
AND naptar.C_NAPDATUMA <= IIF(@osztalyId IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
AND tao.ID IS NULL
AND hely.ID IS NULL
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
AND naptar.C_TANEVID = @tanevId
AND naptar.C_HETSORSZAMA = @hetSorszam
UNION
SELECT
oo.id
,naptar.C_NAPDATUMA
,naptar.C_HETNAPJA
,oo.C_ORASZAM
,ocs.C_NEV
,t.C_NEV
,f.C_NYOMTATASINEV +' (' + fh.C_NYOMTATASINEV +')'
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 = fH.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
oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
AND (oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA=1034) OR oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES))
AND hi.TOROLT='F'
AND naptar.C_HETSORSZAMA = @hetSorszam
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_HELYETTESITESNAPJA <= IIF(oo.C_OSZTALYCSOPORTID IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
AND NOT EXISTS (
SELECT 1 FROM T_ORARENDIORA_OSSZES ooo
JOIN T_TANITASIORA_OSSZES 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')
)a
ORDER BY Datum, Oraszam
END
GO

View file

@ -0,0 +1,147 @@
IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaPerHet') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetNemMegtartottOrakSzamaPerHet
END
GO
CREATE PROCEDURE [sp_GetNemMegtartottOrakSzamaPerHet]
@osztalyId int,
@intezmenyId int,
@tanevId int
AS
BEGIN
DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
DECLARE @vegzosOsztalyokCsoportok TABLE (osztalyId INT)
INSERT INTO @vegzosOsztalyokCsoportok
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_VEGZOSEVFOLYAM = 'T' AND C_TANEVID = @tanevID AND TOROLT = 'F'
DECLARE @OsszesNap TABLE (Datum DATE, Hetirend INT, OrarendiNap NVARCHAR(1), OsztalyCsoportId INT)
INSERT INTO @OsszesNap
SELECT DISTINCT
C_NAPDATUMA
,C_HETIREND
,C_ORARENDINAP
,kapcsolodo.Id
FROM T_NAPTARINAP_OSSZES
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
DECLARE @TanevRendje TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
INSERT INTO @TanevRendje
SELECT
C_DATUM
,C_HETIREND
,kapcsolodo.Id
,C_ORARENDINAP
FROM T_TANEVRENDJE_OSSZES
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
DECLARE @TanevRendjeOsztalyCsoportonkent TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
INSERT INTO @TanevRendjeOsztalyCsoportonkent
SELECT
C_DATUM
,C_HETIREND
,C_OSZTALYCSOPORTID
,C_ORARENDINAP
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.ID = ocstr.C_TANEVRENDJEID
INNER JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo ON kapcsolodo.Id = C_OSZTALYCSOPORTID
WHERE
TOROLT = 'F'
DECLARE @OrarendiNapok TABLE (Datum DATE, OsztalyCsoportId INT, Hetirend INT)
INSERT INTO @OrarendiNapok
SELECT
Datum
,OsztalyCsoportId
,Hetirend
FROM
(SELECT
OsszesNap.Datum
,OsszesNap.OsztalyCsoportId
,COALESCE(trocs.OrarendiNap, tr.OrarendiNap, OsszesNap.OrarendiNap) OrarendiNap
,COALESCE(trocs.Hetirend, tr.Hetirend, OsszesNap.Hetirend) Hetirend
FROM @OsszesNap OsszesNap
LEFT JOIN @TanevRendje tr ON tr.Datum = OsszesNap.Datum AND tr.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
LEFT JOIN @TanevRendjeOsztalyCsoportonkent trocs ON trocs.Datum = OsszesNap.Datum AND trocs.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
WHERE
OsszesNap.OrarendiNap = 'T' OR tr.OrarendiNap = 'T' OR trocs.OrarendiNap = 'T'
) a
WHERE OrarendiNap ='T'
SELECT
HetSorszam HetSorszama
,count(ID) NemNaplozottOrakSzama
,@osztalyId OsztalyID
FROM
(
SELECT
Id
,HetSorszam
FROM
(
SELECT DISTINCT
naptar.C_HETSORSZAMA HetSorszam
,oo.Id Id
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN T_NAPTARINAP_OSSZES naptar ON
((naptar.C_NAPDATUMA >=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA < oo.C_ORAERVENYESSEGVEGE)
OR
(naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGVEGE))
AND oo.C_HETNAPJA=naptar.C_HETNAPJA
AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
INNER JOIN @OrarendiNapok OrarendiNapok ON OrarendiNapok.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND OrarendiNapok.Datum = naptar.C_NAPDATUMA AND (OrarendiNapok.Hetirend = oo.C_HETIREND OR oo.C_HETIREND = 1554)
LEFT JOIN T_TANITASIORA_OSSZES tao ON
naptar.C_NAPDATUMA = tao.C_DATUM
AND tao.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
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
WHERE
oo.TOROLT='F'
AND oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
AND naptar.C_NAPDATUMA <= IIF(@osztalyId IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
AND tao.ID IS NULL
AND hely.ID IS NULL
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
AND naptar.C_TANEVID = @tanevId
UNION
SELECT
naptar.C_HETSORSZAMA HetSorszam
,hi.ID Id
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
WHERE
oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
AND (oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA=1034) OR oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES))
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_HELYETTESITESNAPJA <= IIF(oo.C_OSZTALYCSOPORTID IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
AND NOT EXISTS (
SELECT 1 FROM T_ORARENDIORA_OSSZES ooo
JOIN T_TANITASIORA_OSSZES 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'
)
)a
)a
GROUP BY HetSorszam
ORDER BY HetSorszam
END
GO

View file

@ -0,0 +1,137 @@
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetOralatogatasok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOralatogatasok
END
GO
CREATE PROCEDURE [dbo].[sp_GetOralatogatasok]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @KezdoHet int = DATEPART( ISO_WEEK, @IdoszakKezdete);
DECLARE @ZaroHet int = DATEPART( ISO_WEEK, @IdoszakVege);
SELECT
Datum,
CASE
WHEN TanevHetirend is null THEN NapHetirend
ELSE TanevHetirend
END Hetirend,
CASE
WHEN TanevHetNapja is null THEN NapHetNapja
ELSE TanevHetNapja
END HetNapja
INTO
#TEMPORARENDINAPOK
from(
SELECT
NAPTARINAP.Datum Datum,
napHetirend.C_HETIREND NapHetirend,
napHetirend.C_HETNAPJA NapHetNapja,
tanevRendHetirend.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja
FROM /*ÁTÍRANDÓÓÓ*/
(
/*Minden naptári nap, ami az időintervallumba beleesik.*/
(SELECT C_NAPDATUMA Datum FROM T_NAPTARINAP_OSSZES NAPTARINAP WHERE (TOROLT = 'F' AND C_NAPDATUMA BETWEEN @IdoszakKezdete AND @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId))
EXCEPT /*Kivéve, ha van aznap kiemelt típusú tanévrendje esemény, vagy olyan esemény, aminél C_ORARENDINAP = 'F'.*/
(SELECT C_DATUM Datum FROM T_TANEVRENDJE_OSSZES TANEVRENDJE WHERE (TOROLT = 'F' AND (C_NAPTIPUSA IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401) OR C_ORARENDINAP = 'F') AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId))
UNION /*Azokat a dátumokat vegyük hozzá, amely napokon van C_ORARENDINAP = 'T' és C_ORARENDINAP = 'F' esemény is felvéve.*/
(
SELECT
Datum
FROM
(
SELECT
C_DATUM Datum,
COUNT (C_DATUM) DatumCounter
FROM
(SELECT C_DATUM, C_ORARENDINAP FROM T_TANEVRENDJE_OSSZES TANEVRENDJE WHERE (TOROLT = 'F') AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId) TANEVRENDJE1
GROUP BY
C_ORARENDINAP,
C_DATUM
) TANEVRENDJE2
GROUP BY
Datum
HAVING
COUNT(Datum) = 2
)
) NAPTARINAP
left join (select C_NAPDATUMA, C_HETIREND, C_HETNAPJA from T_NAPTARINAP_OSSZES WHERE TOROLT = 'F') napHetirend on napHetirend.C_NAPDATUMA = NAPTARINAP.Datum
left join (select C_DATUM, C_HETIREND, C_HETNAPJA from T_TANEVRENDJE_OSSZES WHERE TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.Datum
) NapokHetirenddel
-- Vegzosok utolso tanitasi napja
DECLARE @VegzosUtolsoTanitasiNap_spGetOrarend DATETIME;
SELECT
@VegzosUtolsoTanitasiNap_spGetOrarend = C_DATUM
FROM
T_TANEVRENDJE_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
-- Tanítási órák
SELECT
TANITASIORA.ID Id,
oo.ID ORARENDIID,
TANITASIORA.C_BONTOTT Bontott,
( SELECT
T_NAPTARINAP_OSSZES.C_HETIREND
FROM
T_NAPTARINAP_OSSZES
WHERE
T_NAPTARINAP_OSSZES.ID = TANITASIORA.C_NAPTARINAPID
) Hetirend,
TANITASIORA.C_HETNAPJA HetNapja,
'' ErvenyessegKezdete,
'' ErvenyessegVege,
TANITASIORA.C_ORAKEZDETE OraKezdete,
TANITASIORA.C_ORAVEGE OraVege,
TANITASIORA.C_ORASZAM Oraszam,
TARGY.C_ROVIDNEV TargyNev,
TANITASIORA.C_MEGTARTOTT Megtartott,
TANITASIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV OsztalyNev,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'TanitasiOra' OraTipus,
TANITASIORA.C_HELYETTESITOTANARID HelyettesitoTanarID,
TANAR.ID TanarID
INTO #TEMPORAK
FROM
T_TANITASIORA_OSSZES TANITASIORA
LEFT JOIN T_TANTARGY_OSSZES TARGY ON (TARGY.ID = TANITASIORA.C_TANTARGYID AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId)
LEFT JOIN T_ORAK_TANAROK ON TANITASIORA.ID = T_ORAK_TANAROK.C_ORAKID
LEFT JOIN T_FELHASZNALO_OSSZES TANAR on T_ORAK_TANAROK.C_TANAROKID = TANAR.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY on (TANITASIORA.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId)
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = TANITASIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
LEFT JOIN T_ORARENDIORA oo ON TANITASIORA.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND TANITASIORA.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
WHERE
TANITASIORA.TOROLT='F' AND TANITASIORA.C_INTEZMENYID = @IntezmenyId AND TANITASIORA.C_TANEVID=@TanevId
AND TANITASIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND TANITASIORA.C_MEGTARTOTT = 'T'
AND (TANITASIORA.C_ORAKEZDETE >= @IdoszakKezdete
AND TANITASIORA.C_ORAVEGE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END))
AND (@TanarId IS NULL OR ( TANITASIORA.C_HELYETTESITOTANARID = @TanarId OR TANITASIORA.C_ORATULAJDONOSID = @TanarId OR T_ORAK_TANAROK.C_TANAROKID = @TanarId ))
SELECT * FROM #TEMPORAK order by orakezdete
DROP TABLE #TEMPORAK
DROP TABLE #TEMPORARENDINAPOK
END

View file

@ -0,0 +1,275 @@
-- =============================================
-- Author: Sólyom Péter
-- Create date: 2016.02.16.
-- Description: Órarend lekérdezése.
-- =============================================
IF OBJECT_ID('dbo.sp_GetOrarend') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetOrarend
END
GO
CREATE PROCEDURE [dbo].[sp_GetOrarend]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int,
@OsztalyCsoportId int,
@TanuloId int,
@CsakOrarendiOrak bit
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE
@KezdoHet int = DATEPART( ISO_WEEK, @IdoszakKezdete),
@ZaroHet int = DATEPART( ISO_WEEK, @IdoszakVege);
SELECT Distinct
Datum,
ISNULL(TanevHetirend, NapHetirend) Hetirend,
ISNULL(TanevHetNapja, NapHetNapja) HetNapja,
OsztalyCsoportId
INTO #TEMPORARENDINAPOK
FROM (
SELECT
NAPTARINAP.Datum Datum,
NAPTARINAP.NapHetirend,
NAPTARINAP.NapHetNapja,
NAPTARINAP.TanevHetirend,
NAPTARINAP.TanevHetNapja,
NAPTARINAP.OsztalyCsoportId
FROM (
(
SELECT
C_NAPDATUMA Datum,
C_HETIREND NapHetirend,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), C_HETNAPJA) NapHetNapja,
null TanevHetirend,
null TanevHetNapja,
null OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES
WHERE (TOROLT = 'F' AND C_NAPDATUMA >= @IdoszakKezdete AND C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
union
(
SELECT
NAPTARINAP.C_NAPDATUMA Datum,
NAPTARINAP.C_HETIREND NapHetirend,
IIF(NAPTARINAP.C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), NAPTARINAP.C_HETNAPJA) NapHetNapja,
tanevRendHetirend.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
tanevRendHetirend.C_OSZTALYCSOPORTID OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES NAPTARINAP
inner JOIN (
SELECT
C_DATUM,
C_HETIREND,
T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA
from T_TANEVRENDJE_OSSZES
inner Join T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
WHERE TOROLT = 'F' AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId And TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.C_NAPDATUMA
WHERE (TOROLT = 'F' AND NAPTARINAP.C_NAPDATUMA >= @IdoszakKezdete AND NAPTARINAP.C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
) NAPTARINAP
) result
-- Vegzosok utolso tanitasi napja
DECLARE @VegzosUtolsoTanitasiNap_spGetOrarend DATETIME;
SELECT
@VegzosUtolsoTanitasiNap_spGetOrarend = C_DATUM
FROM T_TANEVRENDJE_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
DECLARE @tempCsoportok TABLE (CsoportID int PRIMARY KEY, Oka nvarchar(20))
IF @OsztalyCsoportId IS NOT NULL
BEGIN
INSERT INTO @tempCsoportok (CsoportID, Oka)
SELECT ID as CsoportID, OKA AS Oka
FROM dbo.fnGetKapcsolodoOsztalycsoportokByDate(@OsztalyCsoportId,@IdoszakKezdete,@IdoszakVege)
END
ELSE
BEGIN
INSERT INTO @tempCsoportok (CsoportID, Oka)
SELECT ID as CsoportID, '' AS Oka
FROM T_OSZTALYCSOPORT_OSSZES WHERE C_TANEVID = @TanevId
END
-- Tanítási órák
SELECT
TANITASIORA.ID Id,
oo.ID ORARENDIID,
TANITASIORA.C_BONTOTT Bontott,
(
SELECT T_NAPTARINAP_OSSZES.C_HETIREND
FROM T_NAPTARINAP_OSSZES
WHERE T_NAPTARINAP_OSSZES.ID = TANITASIORA.C_NAPTARINAPID
) Hetirend,
TANITASIORA.C_HETNAPJA HetNapja,
CAST(null AS datetime) ErvenyessegKezdete,
CAST(null AS datetime) ErvenyessegVege,
TANITASIORA.C_ORAKEZDETE OraKezdete,
TANITASIORA.C_ORAVEGE OraVege,
TANITASIORA.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
COALESCE(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNevForMobile,
TARGY.C_TARGYKATEGORIA TargykategoriaID,
TANITASIORA.C_MEGTARTOTT Megtartott,
TANITASIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV OsztalyNev,
CAST(null AS int) TanevRendOsztalyCsoportId,
tcs.OKA AS MegjelenesOka,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'TanitasiOra' OraTipus,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1500 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.hianyzas
THEN 'T'
ELSE 'F'
END AS Hianyzas,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1499 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.keses
THEN 'T'
ELSE 'F'
END AS Keses,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1817 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.ures
THEN 'T'
ELSE 'F'
END AS Ures,
TANITASIORA.C_HELYETTESITOTANARID HelyettesitoTanarID,
HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev,
TANAR.ID TanarID,
TANITASIORA.C_ADMINALTALKIIRT AdminAltalKiirt,
TANITASIORA.C_TEMA as Tema
INTO #TEMPORAK
FROM T_TANITASIORA_OSSZES TANITASIORA
INNER JOIN @tempCsoportok tcs ON tcs.CsoportID = TANITASIORA.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES TARGY ON (TARGY.ID = TANITASIORA.C_TANTARGYID AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId)
LEFT JOIN T_ORAK_TANAROK ON TANITASIORA.ID = T_ORAK_TANAROK.C_ORAKID
LEFT JOIN T_FELHASZNALO_OSSZES TANAR on T_ORAK_TANAROK.C_TANAROKID = TANAR.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY on (TANITASIORA.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId)
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = TANITASIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
LEFT JOIN T_FELHASZNALO_OSSZES HELYETTESTANAR on TANITASIORA.C_HELYETTESITOTANARID = HELYETTESTANAR.ID
LEFT JOIN T_ORARENDIORA_OSSZES oo ON TANITASIORA.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND TANITASIORA.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
WHERE @CsakOrarendiOrak = 0
AND TANITASIORA.TOROLT='F' AND TANITASIORA.C_INTEZMENYID = @IntezmenyId AND TANITASIORA.C_TANEVID=@TanevId
AND TANITASIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND (TANITASIORA.C_ORAKEZDETE >= @IdoszakKezdete
AND TANITASIORA.C_ORAVEGE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN DATEADD(DAY, 1, @VegzosUtolsoTanitasiNap_spGetOrarend) ELSE @IdoszakVege END))
AND (@TanarId IS NULL OR ( TANITASIORA.C_HELYETTESITOTANARID = @TanarId OR TANITASIORA.C_ORATULAJDONOSID = @TanarId OR T_ORAK_TANAROK.C_TANAROKID = @TanarId ))
AND ( @TanuloId IS NULL OR EXISTS (
SELECT 1 FROM T_TANULOCSOPORT_OSSZES TANCSOP
WHERE
TANCSOP.C_OSZTALYCSOPORTID = TANITASIORA.C_OSZTALYCSOPORTID
AND TANCSOP.TOROLT = 'F' AND TANCSOP.C_INTEZMENYID = @IntezmenyId AND TANCSOP.C_TANEVID=@TanevId
AND TANCSOP.C_BELEPESDATUM < GETDATE()
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE())
AND TANCSOP.C_TANULOID = @TanuloId
)
)
-- Órarendi órák
INSERT INTO #TEMPORAK
SELECT
OrarendiOrak.Id, ORARENDIID, Bontott, Hetirend, HetNapja, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege,
Oraszam, TargyNev, TargyNevForMobile, TargykategoriaID, Megtartott, CsengetesiRendOraID, OsztalyNev,TanevRendOsztalyCsoportId, MegjelenesOka, TanarNev, TeremNev, OraTipus, Hianyzas, Keses, Ures,
T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID HelyettesitoTanarID, HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev, TanarID,AdminAltalKiirt, Tema
FROM (
SELECT
T_ORARENDIORA_OSSZES.ID Id,
T_ORARENDIORA_OSSZES.ID ORARENDIID,
T_ORARENDIORA_OSSZES.C_BONTOTT Bontott,
T_ORARENDIORA_OSSZES.C_HETIREND Hetirend,
T_ORARENDIORA_OSSZES.C_HETNAPJA HetNapja,
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE ErvenyessegKezdete,
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE ErvenyessegVege,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA_OSSZES.C_ORAKEZDETE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA_OSSZES.C_ORAKEZDETE), ORARENDINAPOK.DATUM)) OraKezdete,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA_OSSZES.C_ORAVEGE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA_OSSZES.C_ORAVEGE), ORARENDINAPOK.DATUM)) OraVege,
T_ORARENDIORA_OSSZES.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
COALESCE(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNevForMobile,
TARGY.C_TARGYKATEGORIA TargykategoriaID,
'F' Megtartott,
T_ORARENDIORA_OSSZES.C_CSENGETESIRENDORAID CsengetesiRendOraID,
OSZTALY.C_NEV AS OsztalyNev,
ORARENDINAPOK.OsztalyCsoportId TanevRendOsztalyCsoportId,
tcs.OKA AS MegjelenesOka,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'OrarendiOra' OraTipus,
'F' Hianyzas,
'F' Keses,
'F' Ures,
TANAR.ID TanarID,
'F' AdminAltalKiirt,
NULL AS Tema
FROM T_ORARENDIORA_OSSZES
INNER JOIN @tempCsoportok tcs ON tcs.CsoportID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN #TEMPORARENDINAPOK ORARENDINAPOK ON (( T_ORARENDIORA_OSSZES.C_HETIREND = 1554 OR ORARENDINAPOK.HETIREND = T_ORARENDIORA_OSSZES.C_HETIREND ) AND ORARENDINAPOK.HETNAPJA = T_ORARENDIORA_OSSZES.C_HETNAPJA And (T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = ORARENDINAPOK.OsztalyCsoportId or ORARENDINAPOK.OsztalyCsoportId is null) )
LEFT JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = T_ORARENDIORA_OSSZES.C_TANTARGYID
LEFT JOIN T_FELHASZNALO_OSSZES TANAR ON TANAR.ID = T_ORARENDIORA_OSSZES.C_TANARID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY ON T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALY.ID
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = T_ORARENDIORA_OSSZES.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
WHERE
T_ORARENDIORA_OSSZES.TOROLT='F'
AND T_ORARENDIORA_OSSZES.C_CSENGETESIRENDORAID IS NOT NULL
AND T_ORARENDIORA_OSSZES.C_INTEZMENYID = @IntezmenyId
AND T_ORARENDIORA_OSSZES.C_TANEVID = @TanevId
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND ORARENDINAPOK.DATUM BETWEEN @IdoszakKezdete AND (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND (
(ORARENDINAPOK.DATUM >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM < T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE)
OR
(ORARENDINAPOK.DATUM = T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM = T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE)
)
AND (@TanuloId IS NULL OR EXISTS (
SELECT 1 FROM T_TANULOCSOPORT_OSSZES TANCSOP
WHERE
TANCSOP.C_OSZTALYCSOPORTID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
AND TANCSOP.TOROLT = 'F' AND TANCSOP.C_INTEZMENYID = @IntezmenyId AND TANCSOP.C_TANEVID=@TanevId
AND TANCSOP.C_BELEPESDATUM < GETDATE()
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE())
AND TANCSOP.C_TANULOID = @TanuloId )
)
) OrarendiOrak
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES on (OrarendiOrak.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITETTORARENDID
And T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA >= @KezdoHet
And (T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA <= @ZaroHet) And T_HELYETTESITESIIDOSZAK_OSSZES.TOROLT = 'F' AND DATEDIFF(DAY, OrarendiOrak.OraKezdete, T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITESNAPJA) = 0
)
LEFT JOIN T_FELHASZNALO_OSSZES HELYETTESTANAR ON HELYETTESTANAR.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID
WHERE (@TanarId IS NULL OR OrarendiOrak.TanarID = @TanarId Or T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID = @TanarId)
AND NOT EXISTS (
SELECT 1 FROM #TEMPORAK TANORAK
WHERE TANORAK.ORARENDIID = OrarendiOrak.ID
AND DATEDIFF(DAY, TANORAK.OraKezdete, OrarendiOrak.OraKezdete) = 0
AND DATEDIFF(DAY, TANORAK.OraVege, OrarendiOrak.OraVege) = 0
)
SELECT * FROM #TEMPORAK order by orakezdete
DROP TABLE #TEMPORAK
DROP TABLE #TEMPORARENDINAPOK
END

View file

@ -0,0 +1,270 @@
-- =============================================
-- Author: Sólyom Péter
-- Create date: 2016.02.16.
-- Description: Órarend lekérdezése.
-- =============================================
IF OBJECT_ID('sp_GetOrarendTanoranKivuli') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOrarendTanoranKivuli
END
GO
CREATE PROCEDURE [sp_GetOrarendTanoranKivuli]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int,
@OsztalyCsoportId int,
@TanuloId int,
@CsakOrarendiOrak bit
AS
BEGIN
SET NOCOUNT ON;
DECLARE @KezdoHet int = DATEPART( ISO_WEEK, @IdoszakKezdete);
DECLARE @ZaroHet int = DATEPART( ISO_WEEK, @IdoszakVege);
SELECT Distinct
Datum,
ISNULL(TanevHetirend, NapHetirend) Hetirend,
ISNULL(TanevHetNapja, NapHetNapja) HetNapja,
OsztalyCsoportId
INTO #TEMPORARENDINAPOK
FROM (
SELECT
NAPTARINAP.Datum Datum,
NAPTARINAP.NapHetirend,
NAPTARINAP.NapHetNapja,
NAPTARINAP.TanevHetirend,
NAPTARINAP.TanevHetNapja,
NAPTARINAP.OsztalyCsoportId
FROM (
(
SELECT
C_NAPDATUMA Datum,
C_HETIREND NapHetirend,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), C_HETNAPJA) NapHetNapja,
null TanevHetirend,
null TanevHetNapja,
null OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES
WHERE (TOROLT = 'F' AND C_NAPDATUMA >= @IdoszakKezdete AND C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
union
(
SELECT
NAPTARINAP.C_NAPDATUMA Datum,
NAPTARINAP.C_HETIREND NapHetirend,
IIF(NAPTARINAP.C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), NAPTARINAP.C_HETNAPJA) NapHetNapja,
tanevRendHetirend.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
tanevRendHetirend.C_OSZTALYCSOPORTID OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES NAPTARINAP
inner JOIN (
SELECT
C_DATUM,
C_HETIREND,
T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA
from T_TANEVRENDJE_OSSZES
inner Join T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
WHERE TOROLT = 'F' AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId And TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.C_NAPDATUMA
WHERE (TOROLT = 'F' AND NAPTARINAP.C_NAPDATUMA >= @IdoszakKezdete AND NAPTARINAP.C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
) NAPTARINAP
) result
-- Vegzosok utolso tanitasi napja
DECLARE @VegzosUtolsoTanitasiNap DATETIME;
SELECT
@VegzosUtolsoTanitasiNap = C_DATUM
FROM
T_TANEVRENDJE_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
DECLARE @TEMPCSOPORTOK TABLE (CsoportID int PRIMARY KEY, Oka nvarchar(20))
IF @OsztalyCsoportId IS NOT NULL
BEGIN
INSERT INTO @tempCsoportok (CsoportID, Oka)
SELECT ID as CsoportID, OKA AS Oka
FROM dbo.fnGetKapcsolodoOsztalycsoportokByDate(@OsztalyCsoportId,@IdoszakKezdete,@IdoszakVege)
END
ELSE
BEGIN
INSERT INTO @tempCsoportok (CsoportID, Oka)
SELECT ID as CsoportID, '' AS Oka
FROM T_OSZTALYCSOPORT_OSSZES WHERE C_TANEVID = @TanevId
END
-- Tanítási órák
SELECT
TANITASIORA.ID Id,
oo.ID ORARENDIID,
TANITASIORA.C_BONTOTT Bontott,
( SELECT
T_NAPTARINAP_OSSZES.C_HETIREND
FROM
T_NAPTARINAP_OSSZES
WHERE
T_NAPTARINAP_OSSZES.ID = TANITASIORA.C_NAPTARINAPID
) Hetirend,
TANITASIORA.C_HETNAPJA HetNapja,
CAST('19000101' AS DATETIME) ErvenyessegKezdete,
CAST('19000101' AS DATETIME) ErvenyessegVege,
TANITASIORA.C_ORAKEZDETE OraKezdete,
TANITASIORA.C_ORAVEGE OraVege,
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
TANITASIORA.C_MEGTARTOTT Megtartott,
OSZTALY.C_NEV OsztalyNev,
CAST(null AS int) TanevRendOsztalyCsoportId,
fh.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'TanitasiOra' OraTipus,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1500 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.hianyzas
THEN 'T'
ELSE 'F'
END AS Hianyzas,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1499 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.keses
THEN 'T'
ELSE 'F'
END AS Keses,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1817 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.ures
THEN 'T'
ELSE 'F'
END AS Ures,
TANITASIORA.C_HELYETTESITOTANARID HelyettesitoTanarID,
HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev,
fh.ID TanarID,
null as HelyettesitesId,
TANITASIORA.C_ADMINALTALKIIRT AdminAltalKiirt,
TANITASIORA.C_TEMA as Tema
INTO #TEMPORAK
FROM T_TANITASIORA_OSSZES TANITASIORA
INNER JOIN @TEMPCSOPORTOK tcs ON tcs.CsoportID = TANITASIORA.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES TARGY ON (TARGY.ID = TANITASIORA.C_TANTARGYID)
LEFT JOIN T_ORAK_TANAROK ON TANITASIORA.ID = T_ORAK_TANAROK.C_ORAKID
LEFT JOIN T_FELHASZNALO_OSSZES fh on T_ORAK_TANAROK.C_TANAROKID = fh.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY on (TANITASIORA.C_OSZTALYCSOPORTID = OSZTALY.ID )
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = TANITASIORA.C_TEREMID )
LEFT JOIN T_FELHASZNALO_OSSZES HELYETTESTANAR on TANITASIORA.C_HELYETTESITOTANARID = HELYETTESTANAR.ID
LEFT JOIN T_ORARENDIORA_OSSZES oo ON TANITASIORA.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND TANITASIORA.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
WHERE @CsakOrarendiOrak = 0 -- TANÓRA IS
AND TANITASIORA.TOROLT='F' AND TANITASIORA.C_INTEZMENYID = @IntezmenyId AND TANITASIORA.C_TANEVID=@TanevId
AND TANITASIORA.C_CSENGETESIRENDORAID IS NULL
AND (TANITASIORA.C_ORAKEZDETE >= @IdoszakKezdete
AND TANITASIORA.C_ORAVEGE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap THEN DATEADD(DAY, 1, @VegzosUtolsoTanitasiNap) ELSE @IdoszakVege END))
AND (@TanarId IS NULL OR ( TANITASIORA.C_HELYETTESITOTANARID = @TanarId OR TANITASIORA.C_ORATULAJDONOSID = @TanarId OR T_ORAK_TANAROK.C_TANAROKID = @TanarId))
AND ( @TanuloId IS NULL
OR EXISTS (SELECT 1
FROM T_TANULOCSOPORT_OSSZES TANCSOP
WHERE TANCSOP.C_OSZTALYCSOPORTID = TANITASIORA.C_OSZTALYCSOPORTID
AND TANCSOP.TOROLT = 'F' AND TANCSOP.C_INTEZMENYID = @IntezmenyId AND TANCSOP.C_TANEVID=@TanevId
AND TANCSOP.C_BELEPESDATUM < GETDATE()
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE()) -- TÖRÖLT
AND TANCSOP.C_TANULOID = @TanuloId )
)
-- Órarendi órák
INSERT INTO #TEMPORAK
Select
OrarendiOrak.Id, ORARENDIID, Bontott, Hetirend, HetNapja, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege,
TargyNev, Megtartott, OsztalyNev,TanevRendOsztalyCsoportId, TanarNev, TeremNev, OraTipus, Hianyzas, Keses, Ures,
C_HELYETTESTANAROKID HelyettesitoTanarID, HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev, TanarID, T_HELYETTESITESIIDOSZAK_OSSZES.ID,AdminAltalKiirt, Tema
FROM (
SELECT
T_ORARENDIORA_OSSZES.ID Id,
T_ORARENDIORA_OSSZES.ID ORARENDIID,
T_ORARENDIORA_OSSZES.C_BONTOTT Bontott,
T_ORARENDIORA_OSSZES.C_HETIREND Hetirend,
T_ORARENDIORA_OSSZES.C_HETNAPJA HetNapja,
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE ErvenyessegKezdete,
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE ErvenyessegVege,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA_OSSZES.C_ORAKEZDETE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA_OSSZES.C_ORAKEZDETE), ORARENDINAPOK.DATUM)) OraKezdete,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA_OSSZES.C_ORAVEGE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA_OSSZES.C_ORAVEGE), ORARENDINAPOK.DATUM)) OraVege,
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
'F' Megtartott,
OSZTALY.C_NEV OsztalyNev,
ORARENDINAPOK.OsztalyCsoportId TanevRendOsztalyCsoportId,
fh.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'OrarendiOra' OraTipus,
'F' Hianyzas,
'F' Keses,
'F' Ures,
fh.ID TanarID,
'F' AdminAltalKiirt,
NULL AS Tema
FROM T_ORARENDIORA_OSSZES
INNER JOIN @TEMPCSOPORTOK tcs ON tcs.CsoportID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN #TEMPORARENDINAPOK ORARENDINAPOK ON (( T_ORARENDIORA_OSSZES.C_HETIREND = 1554 OR ORARENDINAPOK.HETIREND = T_ORARENDIORA_OSSZES.C_HETIREND ) AND ORARENDINAPOK.HETNAPJA = T_ORARENDIORA_OSSZES.C_HETNAPJA And (T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = ORARENDINAPOK.OsztalyCsoportId or ORARENDINAPOK.OsztalyCsoportId is null) )
LEFT JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = T_ORARENDIORA_OSSZES.C_TANTARGYID
LEFT JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = T_ORARENDIORA_OSSZES.C_TANARID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY ON T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALY.ID
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = T_ORARENDIORA_OSSZES.C_TEREMID )
WHERE
T_ORARENDIORA_OSSZES.TOROLT= 'F'
AND T_ORARENDIORA_OSSZES.C_CSENGETESIRENDORAID IS NULL
AND T_ORARENDIORA_OSSZES.C_INTEZMENYID = @IntezmenyId
AND T_ORARENDIORA_OSSZES.C_TANEVID = @TanevId
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap THEN @VegzosUtolsoTanitasiNap ELSE @IdoszakVege END)
AND ORARENDINAPOK.DATUM BETWEEN @IdoszakKezdete AND (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap THEN @VegzosUtolsoTanitasiNap ELSE @IdoszakVege END)
AND TEREM.C_TANEVID = @TanevId
AND (
(ORARENDINAPOK.DATUM >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM < T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE)
OR
(ORARENDINAPOK.DATUM = T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM = T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE)
)
AND ( @TanuloId IS NULL
OR EXISTS (
SELECT 1
FROM T_TANULOCSOPORT_OSSZES TANCSOP
WHERE TANCSOP.C_OSZTALYCSOPORTID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
AND TANCSOP.TOROLT = 'F'
AND TANCSOP.C_INTEZMENYID = @IntezmenyId
AND TANCSOP.C_TANEVID = @TanevId
AND TANCSOP.C_BELEPESDATUM < GETDATE()
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE()) -- TÖRÖLT
AND TANCSOP.C_TANULOID = @TanuloId )
)
) OrarendiOrak
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES on (OrarendiOrak.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITETTORARENDID
And T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA >= @KezdoHet
And (T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA <= @ZaroHet) And T_HELYETTESITESIIDOSZAK_OSSZES.TOROLT = 'F' AND DATEDIFF(DAY, OrarendiOrak.OraKezdete, T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITESNAPJA) = 0
)
LEFT JOIN T_FELHASZNALO_OSSZES HELYETTESTANAR ON HELYETTESTANAR.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID
WHERE (@TanarId IS NULL OR OrarendiOrak.TanarID = @TanarId Or T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID = @TanarId)
AND NOT EXISTS (
SELECT 1
FROM #TEMPORAK TANORAK
WHERE TANORAK.ORARENDIID = OrarendiOrak.ID
AND DATEDIFF(DAY, TANORAK.OraKezdete, OrarendiOrak.OraKezdete) = 0
AND DATEDIFF(DAY, TANORAK.OraVege, OrarendiOrak.OraVege) = 0
) -- HA MÁR VAN TANÍTÁSI ÓRA, AMELYIK VALAMELYIK ÓRARENDI ÓRÁBÓL JÖN, AKKOR NEM KELL AHHOZ AZ ÓRARENDI ÓRA IS
SELECT * FROM #TEMPORAK order by orakezdete
DROP TABLE #TEMPORAK
DROP TABLE #TEMPORARENDINAPOK
END
GO

View file

@ -0,0 +1,65 @@
IF OBJECT_ID('dbo.sp_GetOsszesNemBejegyzettOra') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetOsszesNemBejegyzettOra
END
GO
IF OBJECT_ID('[DBO].[sp_GetOsszesNemBejegyzettOra]') IS NOT NULL BEGIN
DROP PROCEDURE [DBO].[sp_GetOsszesNemBejegyzettOra]
END
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 07.>
-- Description: <Azok a megtartott, vagy elmaradt órák, amik nincsenek bejegyezve a naplóba, havi bontásban, tanáronként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetOsszesNemBejegyzettOra]
@tanevID int,
@mindenHeten int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
--Nem naplózott órák
select
MONTH(naptar.C_NAPDATUMA) Honap,
T_FELHASZNALO.C_NYOMTATASINEV TanarNeve,
COUNT(*)
FROM
T_ORARENDIORA
inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
inner join T_NAPTARINAP naptar on ((naptar.C_NAPDATUMA BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = @mindenHeten)) -- Minden héten
INNER JOIN T_CSENGETESIRENDORA on T_ORARENDIORA.C_CSENGETESIRENDORAID=T_CSENGETESIRENDORA.ID
LEFT JOIN T_TANITASIORA ON T_TANITASIORA.C_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.TOROLT='F'
inner join T_FELHASZNALO on T_FOGLALKOZAS.C_TANARID = T_FELHASZNALO.ID
WHERE
T_ORARENDIORA.TOROLT='F'
AND naptar.TOROLT = 'F' AND T_FOGLALKOZAS.TOROLT='F'
AND T_FOGLALKOZAS.TOROLT='F'
AND T_FELHASZNALO.TOROLT='F'
AND GETDATE() >= naptar.C_NAPDATUMA
AND T_TANITASIORA.ID IS NULL
AND T_FOGLALKOZAS.C_TANEVID = @tanevID
group by MONTH(naptar.C_NAPDATUMA), T_FELHASZNALO.C_NYOMTATASINEV
order by case --Hónapok sorrendje
when MONTH(naptar.C_NAPDATUMA) = 9 then 1
when MONTH(naptar.C_NAPDATUMA) = 10 then 2
when MONTH(naptar.C_NAPDATUMA) = 11 then 3
when MONTH(naptar.C_NAPDATUMA) = 12 then 4
when MONTH(naptar.C_NAPDATUMA) = 1 then 5
when MONTH(naptar.C_NAPDATUMA) = 2 then 6
when MONTH(naptar.C_NAPDATUMA) = 3 then 7
when MONTH(naptar.C_NAPDATUMA) = 4 then 8
when MONTH(naptar.C_NAPDATUMA) = 5 then 9
when MONTH(naptar.C_NAPDATUMA) = 6 then 10
when MONTH(naptar.C_NAPDATUMA) = 7 then 11
when MONTH(naptar.C_NAPDATUMA) = 8 then 12
end;
END

View file

@ -0,0 +1,82 @@
-- =============================================
-- Description: Tanulók egész évben megtartandó óráinak száma
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanulokMegtartandoOraSzama]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanulokMegtartandoOraSzama]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanulokMegtartandoOraSzama]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
select TanuloId, count(OrarendId) OraSzam
from (
select T_TANULOCSOPORT_OSSZES.C_TANULOID TanuloId, T_ORARENDIORA_OSSZES.id OrarendId
from T_ORARENDIORA_OSSZES
inner join ( select ID, C_OSZTALYCSOPORTID from t_foglalkozas_OSSZES where torolt='F' ) foglalkozas on T_ORARENDIORA_OSSZES.C_FOGLALKOZASID = foglalkozas.ID
inner join T_NAPTARINAP_OSSZES on T_ORARENDIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
and (T_ORARENDIORA_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_ORARENDIORA_OSSZES.C_HETIREND = 1554)
INNER JOIN T_TANULOCSOPORT_OSSZES ON foglalkozas.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM > GETDATE())
AND T_TANULOCSOPORT_OSSZES.TOROLT='F'
LEFT JOIN T_TANITASIORA_OSSZES ON (T_TANITASIORA_OSSZES.C_ORARENDIORAGROUPID = T_ORARENDIORA_OSSZES.C_ORARENDIORAGROUPID
AND T_TANITASIORA_OSSZES.C_DATUM BETWEEN T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
AND T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANITASIORA_OSSZES.C_DATUM
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT !='T'
AND T_TANITASIORA_OSSZES.TOROLT='F')
inner join T_TANEV_OSSZES on T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
where NOT EXISTS (Select 1 from
T_TANEVRENDJE_OSSZES
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM
and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
and T_TANEVRENDJE_OSSZES.TOROLT='F'
and T_NAPTARINAP_OSSZES.C_NAPDATUMA >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE
and T_NAPTARINAP_OSSZES.C_NAPDATUMA <= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
))
AND T_TANITASIORA_OSSZES.ID is null
AND T_TANEV_OSSZES.C_AKTIV='T' AND T_TANEV_OSSZES.TOROLT='F'
union all
select T_TANULOCSOPORT_OSSZES.C_TANULOID TanuloId, T_TANITASIORA_OSSZES.id OrarendId
from T_TANITASIORA_OSSZES
inner join ( select ID, C_OSZTALYCSOPORTID from t_foglalkozas_OSSZES where torolt='F' ) foglalkozas on T_TANITASIORA_OSSZES.C_FOGLALKOZASID = foglalkozas.ID
INNER JOIN T_TANULOCSOPORT_OSSZES ON foglalkozas.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM > GETDATE())
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
AND T_TANULOCSOPORT_OSSZES.TOROLT='F'
inner join T_NAPTARINAP_OSSZES on T_NAPTARINAP_OSSZES.ID = T_TANITASIORA_OSSZES.C_NAPTARINAPID
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
inner join T_TANEV_OSSZES on T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
where C_ORARENDIORAGROUPID is null and T_TANITASIORA_OSSZES.TOROLT='F'
and
NOT EXISTS (Select 1 from
T_TANEVRENDJE_OSSZES
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM
and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
and T_TANEVRENDJE_OSSZES.TOROLT='F'))
AND T_TANEV_OSSZES.C_AKTIV='T' AND T_TANEV_OSSZES.TOROLT='F'
) orak
group by TanuloId
END

View file

@ -0,0 +1,147 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanulokMulasztasokReszletezese]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanulokMulasztasokReszletezese]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanulokMulasztasokReszletezese]
@OsztalyId INT,
@TanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Diakok TABLE (DiakId INT)
INSERT INTO @Diakok
SELECT
T_FELHASZNALO_OSSZES.ID
FROM T_FELHASZNALO_OSSZES
JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F') TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE T_FELHASZNALO_OSSZES.TOROLT='F'
AND T_FELHASZNALO_OSSZES.C_TANEVID = @TanevId
AND TANCSOPORT.C_OSZTALYCSOPORTID = @OsztalyId
order by T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
DECLARE @Mulasztasok TABLE (MulasztasId INT)
INSERT INTO @Mulasztasok
SELECT ID FROM T_MULASZTASTIPUS_OSSZES
WHERE ID != 1497
AND ID != 1498
AND ID != 1817
AND C_ALTANEVID = @TanevId
DECLARE @tmp TABLE (OSZTALY NVARCHAR(255), INT_NEV NVARCHAR(255), INT_OMKOD int, INT_VAROS NVARCHAR(255)
, INT_CIM NVARCHAR(255), INT_IGAZGATO_NEV NVARCHAR(255), OSZTFO_NEV NVARCHAR(255))
INSERT INTO @tmp
SELECT TOP 1
ocs.C_NEV
, i.C_NEV AS INT_NEV
,i.C_OMKOD AS INT_OMKOD
,i.C_VAROS AS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS INT_CIM
,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV
,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV AS OSZTFO_NEV
FROM T_OSZTALYCSOPORT_OSSZES ocs
JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F'
JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
LEFT OUTER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.TOROLT = 'F'
LEFT OUTER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
LEFT OUTER JOIN T_FELHASZNALO_OSSZES osztf ON osztf.ID = o.C_OSZTALYFONOKID AND osztf.TOROLT = 'F'
where
tcs.C_OSZTALYCSOPORTID = @OsztalyId
AND ocs.C_TANEVID = @TanevId
AND tcs.TOROLT = 'F'
AND ocs.TOROLT = 'F'
declare @TenylegesMulasztasok table (DiakId INT, MulasztasId int, NEV NVARCHAR(255), OSZTALY NVARCHAR(255), DATUM DATETIME
, ORA INT, MULASZTASJELLEG NVARCHAR(255), KESESPERC int, OSZTALYCSOPORT NVARCHAR(255)
, TANTARGY NVARCHAR(255), INT_NEV NVARCHAR(255), INT_OMKOD NVARCHAR(255), INT_VAROS NVARCHAR(255)
, INT_CIM NVARCHAR(255), INT_IGAZGATO_NEV NVARCHAR(255), OSZTFO_NEV NVARCHAR(255))
INSERT INTO @TenylegesMulasztasok
SELECT
f.Id
,tm.C_TIPUS
,f.C_VEZETEKNEV + ' ' + f.C_UTONEV AS NEV
,ocs.C_NEV AS OSZTALY
,tno.C_DATUM AS DATUM
,oo.C_ORASZAM AS ORA
,tm.C_TIPUS as MULASZTASJELLEG
,tm.C_KESESPERCBEN AS KESESPERC
,ocs.C_NEV AS OSZTALYCSOPORT
,tt.C_NEV AS TANTARGY
,i.C_NEV AS INT_NEV
,i.C_OMKOD AS INT_OMKOD
,i.C_VAROS AS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS INT_CIM
,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV
,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV AS OSZTFO_NEV
FROM T_OSZTALYCSOPORT_OSSZES ocs
JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F'
JOIN T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
LEFT JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_ORATANULOIID = tcs.C_TANULOID and tm.TOROLT = 'F'
LEFT JOIN T_TANITASIORA_OSSZES tno ON tno.ID = tm.C_TANITASIORAKID AND tno.TOROLT = 'F'
LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = tno.C_TANTARGYID AND tt.TOROLT = 'F'
LEFT JOIN T_ORARENDIORA_OSSZES oo ON tno.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tno.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F'
LEFT OUTER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.TOROLT = 'F'
LEFT OUTER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
LEFT OUTER JOIN T_FELHASZNALO_OSSZES osztf ON osztf.ID = o.C_OSZTALYFONOKID AND osztf.TOROLT = 'F'
WHERE
tcs.C_OSZTALYCSOPORTID = @OsztalyId
AND ocs.C_TANEVID = @TanevId
AND tcs.TOROLT = 'F'
AND ocs.TOROLT = 'F'
DECLARE @tmp2 TABLE (DiakId INT, MulasztasId INT, Cnt INT)
INSERT INTO @tmp2
SELECT
N.DiakId
,O.MulasztasId
,count(*) AS Cnt
FROM @Diakok N
CROSS JOIN @Mulasztasok O
JOIN @TenylegesMulasztasok T ON T.DiakId = N.DiakId AND T.MulasztasId = O.MulasztasId
GROUP BY N.DiakId,O.MulasztasId
SELECT
N.DiakId
,O.MulasztasId
,O.MulasztasId AS Mulasztas
,f.C_VEZETEKNEV + ' ' + f.C_UTONEV AS NEV
,(select OSZTALY FROM @tmp) AS OSZTALY
,DATUM
,ORA
,T.MulasztasId AS MULASZTASJELLEG
,KESESPERC
,OSZTALYCSOPORT
,TANTARGY
,(SELECT INT_NEV FROM @tmp) AS INT_NEV
,(SELECT INT_OMKOD FROM @tmp) AS INT_OMKOD
,(SELECT INT_VAROS FROM @tmp) AS INT_VAROS
,(SELECT INT_CIM FROM @tmp) AS INT_CIM
,(SELECT INT_IGAZGATO_NEV FROM @tmp) AS INT_IGAZGATO_NEV
,(SELECT OSZTFO_NEV FROM @tmp) as OSZTFO_NEV
,isnull(Cntr.Cnt, 0) AS Cntr
,f.C_NYOMTATASINEV + ' ' + cast(N.DiakId as nvarchar) AS GROUPPARAMETER
FROM @Diakok N
CROSS JOIN @Mulasztasok O
LEFT JOIN @TenylegesMulasztasok T ON T.DiakId = N.DiakId AND T.MulasztasId = O.MulasztasId
JOIN T_FELHASZNALO_OSSZES f ON f.ID = N.DiakId AND f.TOROLT = 'F'
LEFT JOIN @tmp2 Cntr ON Cntr.DiakId = N.DiakId AND Cntr.MulasztasId = O.MulasztasId
ORDER BY f.C_NYOMTATASINEV
SELECT C_OSZTALYFONOKID PartnerID FROM T_OSZTALY_OSSZES
WHERE
T_OSZTALY_OSSZES.ID = @OsztalyId
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.C_ALTANEVID = @TanevId
END
GO

View file

@ -0,0 +1,122 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]
@OsztalyId int,
@TanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Diakok TABLE (DiakId INT)
INSERT INTO @Diakok
SELECT
TanuloId
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'T')
declare @Mulasztasok table (MulasztasId int) insert into @Mulasztasok select ID from T_MULASZTASTIPUS_OSSZES where ID != 1497 and ID != 1498 and ID !=1817 and C_ALTANEVID = @TanevId
declare @tmp table (OSZTALY nvarchar(255), INT_NEV nvarchar(255), INT_OMKOD int, INT_VAROS nvarchar(255), INT_CIM nvarchar(255), INT_IGAZGATO_NEV nvarchar(255), OSZTFO_NEV nvarchar(255))
insert into @tmp select top(1) ocs.C_NEV, i.C_NEV as INT_NEV,i.C_OMKOD as INT_OMKOD,i.C_VAROS as INT_VAROS,dbo.fnGetDokumentumIntezmenyCime(@tanevId) as INT_CIM,
i.C_IGAZGATONEVE as INT_IGAZGATO_NEV,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV as OSZTFO_NEV
from T_OSZTALYCSOPORT_OSSZES ocs
join T_TANULOCSOPORT_OSSZES tcs on tcs.C_OSZTALYCSOPORTID = ocs.ID and tcs.TOROLT = 'F'
join T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID and f.TOROLT = 'F'
left outer join T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = ocs.C_INTEZMENYID and i.C_TANEVID = ocs.C_TANEVID and i.TOROLT = 'F'
left outer join T_OSZTALY_OSSZES o on o.ID = ocs.ID and o.TOROLT = 'F'
left outer join T_FELHASZNALO_OSSZES osztf on osztf.ID = o.C_OSZTALYFONOKID and osztf.TOROLT = 'F'
where
tcs.C_OSZTALYCSOPORTID = @OsztalyId
and ocs.C_TANEVID = @TanevId
and ocs.TOROLT = 'F'
and tcs.TOROLT = 'F'
and tcs.C_BELEPESDATUM < GETDATE()
and (tcs.C_KILEPESDATUM is null or tcs.C_KILEPESDATUM >= GETDATE())
declare @TenylegesMulasztasok table (DiakId int, MulasztasId int, NEV nvarchar(100), OSZTALY nvarchar(100), DATUM datetime, ORA int, MULASZTASJELLEG nvarchar(100), KESESPERC int, OSZTALYCSOPORT nvarchar(100),
TANTARGYID int, TANTARGY nvarchar(100), INT_NEV nvarchar(255), INT_OMKOD nvarchar(100), INT_VAROS nvarchar(100), INT_CIM nvarchar(255), INT_IGAZGATO_NEV nvarchar(100), OSZTFO_NEV nvarchar(100), IGAZOLT nvarchar(1),IG_TIPUS nvarchar(100))
insert into @TenylegesMulasztasok select f.Id,tm.C_TIPUS,f.C_VEZETEKNEV + ' ' + f.C_UTONEV as NEV,ocs.C_NEV as OSZTALY,tno.C_DATUM as DATUM,oo.C_ORASZAM as ORA,tm.C_TIPUS as MULASZTASJELLEG,
tm.C_KESESPERCBEN as KESESPERC,ocs.C_NEV as OSZTALYCSOPORT,tt.ID as TANTARGYID, tt.C_NEV as TANTARGY,i.C_NEV as INT_NEV,i.C_OMKOD as INT_OMKOD,i.C_VAROS as INT_VAROS,dbo.fnGetDokumentumIntezmenyCime(@tanevId) as INT_CIM,
i.C_IGAZGATONEVE as INT_IGAZGATO_NEV,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV as OSZTFO_NEV, tm.C_IGAZOLT as IGAZOLT, tm.C_IGAZOLASTIPUSA as IG_TIPUS
from T_OSZTALYCSOPORT_OSSZES ocs
join T_TANULOCSOPORT_OSSZES tcs on tcs.C_OSZTALYCSOPORTID = ocs.ID and tcs.TOROLT = 'F'
join T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID and f.TOROLT = 'F'
left join T_TANULOMULASZTAS_OSSZES tm on tm.C_ORATANULOIID = tcs.C_TANULOID and tm.TOROLT = 'F' and tm.C_TIPUS != 1817
left join T_TANITASIORA_OSSZES tno on tno.ID = tm.C_TANITASIORAKID and tno.TOROLT = 'F'
left join T_TANTARGY_OSSZES tt on tt.ID = tno.C_TANTARGYID and tt.TOROLT = 'F'
left join T_ORARENDIORA_OSSZES oo ON tno.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tno.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE and oo.TOROLT = 'F'
left outer join T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = ocs.C_INTEZMENYID and i.C_TANEVID = ocs.C_TANEVID and i.TOROLT = 'F'
left outer join T_OSZTALY_OSSZES o on o.ID = ocs.ID and o.TOROLT = 'F'
left outer join T_FELHASZNALO_OSSZES osztf on osztf.ID = o.C_OSZTALYFONOKID and osztf.TOROLT = 'F'
where
tcs.C_OSZTALYCSOPORTID = @OsztalyId
and ocs.C_TANEVID = @TanevId
and ocs.TOROLT = 'F'
and tcs.TOROLT = 'F'
and tcs.C_BELEPESDATUM < GETDATE()
and (tcs.C_KILEPESDATUM is null or tcs.C_KILEPESDATUM >= GETDATE())
declare @tmp2 table (DiakId int, TantargyId int, Cnt int)
insert into @tmp2
select
N.DiakId
,T.TANTARGYID
,count(*) as Cnt
from @Diakok N
cross join @Mulasztasok O
join @TenylegesMulasztasok T on T.DiakId = N.DiakId and T.MulasztasId = O.MulasztasId
group by N.DiakId,T.TANTARGYID
--select * from @tmp2
select
N.DiakId
,O.MulasztasId
,O.MulasztasId as Mulasztas
,f.C_VEZETEKNEV + ' ' + f.C_UTONEV as NEV
,(select OSZTALY from @tmp) as OSZTALY
,DATUM
,ORA
,T.MulasztasId as MULASZTASJELLEG
,IGAZOLT
,IG_TIPUS
,KESESPERC
,OSZTALYCSOPORT
,T.TANTARGYID
,TANTARGY
,(select INT_NEV from @tmp) as INT_NEV
,(select INT_OMKOD from @tmp) as INT_OMKOD
,(select INT_VAROS from @tmp) as INT_VAROS
,(select INT_CIM from @tmp) as INT_CIM
,(select INT_IGAZGATO_NEV from @tmp) as INT_IGAZGATO_NEV
,(select OSZTFO_NEV from @tmp) as OSZTFO_NEV
,isnull(Cntr.Cnt, 0) as Cntr
,f.C_NYOMTATASINEV + ' ' + cast(N.DiakId as nvarchar) as GROUPPARAMETER
from @Diakok N
cross join @Mulasztasok O
left join @TenylegesMulasztasok T on T.DiakId = N.DiakId and T.MulasztasId = O.MulasztasId
join T_FELHASZNALO_OSSZES f on f.ID = N.DiakId and f.TOROLT = 'F'
left join @tmp2 Cntr on Cntr.DiakId = N.DiakId and Cntr.TantargyId = T.TANTARGYID
where T.TANTARGYID is not null
order by f.C_NYOMTATASINEV
select
DiakId,
TANTARGY,
isnull(count(1),0) as Ossz
from @TenylegesMulasztasok
group by DiakId,TANTARGY
order by DiakId,TANTARGY
select C_OSZTALYFONOKID PartnerID From T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @OsztalyId AND T_OSZTALY_OSSZES.TOROLT='F' and T_OSZTALY_OSSZES.C_ALTANEVID = @TanevId
END

View file

@ -0,0 +1,121 @@
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

View file

@ -0,0 +1,329 @@
GO
/****** Object: StoredProcedure [dbo].[sp_SetRendszerErtesitesek] Script Date: 2016.06.09. 14:34:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_SetRendszerErtesitesek') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_SetRendszerErtesitesek]
END
GO
-- =============================================
-- Author: DT
-- Create date: 2016-03-21
-- Description: Rendszer értesítések tábla frissítése
-- =============================================
CREATE PROCEDURE [dbo].[sp_SetRendszerErtesitesek]
AS
BEGIN
SET NOCOUNT ON;
/*Globál UPDATE*/
UPDATE T_RENDSZERERTESITESEK
SET C_FRISSITESIDEJE = GETDATE()
,LASTCHANGED = GETDATE()
,C_KELLFRISSITES = 'F'
WHERE TOROLT = 'F'
/*Az elektronikus naplóban nincs beállítva a visszamenőleges beírás korlátozása!*/
/*
A rendszerben ...
tanuló nincs osztályba sorolva!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANULOKOSZTALYBASOROLASA =
( SELECT COUNT(1)
FROM T_TANULO t
LEFT JOIN T_TANULOCSOPORT TCS ON ( TCS.C_TANULOID = t.ID
AND TCS.TOROLT = 'F'
AND TCS.C_BELEPESDATUM < GETDATE()
AND (TCS.C_KILEPESDATUM is null OR TCS.C_KILEPESDATUM >= GETDATE())
AND T_RENDSZERERTESITESEK.C_INTEZMENYID = TCS.C_INTEZMENYID
AND T_RENDSZERERTESITESEK.C_TANEVID = TCS.C_TANEVID
)
WHERE T.TOROLT = 'F' AND TCS.ID IS NULL
AND T_RENDSZERERTESITESEK.C_INTEZMENYID = T.C_ALINTEZMENYID
AND T_RENDSZERERTESITESEK.C_TANEVID = T.C_ALTANEVID
)
WHERE TOROLT = 'F'
/*
Az órarendben ... órában tanulóütközés van,
azonos órában a tanulónak több tanóra IS rögzítve van!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_ORARENDTANULOUTKOZESEK =
( SELECT count(1)
FROM (
SELECT sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, sub.C_TANULOID, COUNT(1) AS cnt
FROM (
SELECT o.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, tcs.C_TANULOID--, COUNT(1)
FROM T_ORARENDIORA o
INNER JOIN T_FOGLALKOZAS F ON F.ID = o.C_FOGLALKOZASID AND F.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = F.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT TCS ON TCS.C_OSZTALYCSOPORTID = OCS.ID AND TCS.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND F.C_FOGLALKOZASTIPUSA IN (1339, 1368)
AND o.C_ORAERVENYESSEGKEZDETE < GETDATE()
AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
AND tcs.C_BELEPESDATUM < GETDATE()
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
UNION ALL
SELECT n.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, tcs.C_TANULOID
FROM T_TANITASIORA o
INNER JOIN T_FOGLALKOZAS F ON F.ID = o.C_FOGLALKOZASID AND F.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = F.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT TCS ON TCS.C_OSZTALYCSOPORTID = OCS.ID AND TCS.TOROLT = 'F'
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND F.C_FOGLALKOZASTIPUSA IN (1339, 1368)
AND tcs.C_BELEPESDATUM < GETDATE()
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
AND o.C_ORARENDIORAGROUPID IS NULL
AND o.C_DATUM > getdate() - 1
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) sub
GROUP BY sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, sub.C_TANULOID
HAVING COUNT(1) > 1
) A )
WHERE TOROLT = 'F'
/*
Az intézménynek hiányosan vannak kitöltve az adatai!
Ennek következményeként a dokumentumokban az intézmény adatai nem jelennek meg!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_INTEZMENYHIANYOSADATOK = IIF(
(SELECT count(1)
FROM T_INTEZMENYADATOK i
WHERE i.TOROLT = 'F'
AND (C_NEV IS NULL
OR C_OMKOD IS NULL
OR C_IRANYITOSZAM IS NULL
OR C_VAROS IS NULL
OR C_KOZTERULETNEV IS NULL
OR C_KOZTERULETJELLEG IS NULL
OR C_HAZSZAM IS NULL
OR C_IGAZGATONEVE IS NULL)
AND I.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND I.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) > 0, 'T', 'F' )
WHERE TOROLT = 'F'
/*
A rendszerben ...
tanulónak nem megfelelő formátumú az oktatási azonosítója.
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANULOHIANYOSOKTATASIAZONOSI = (
SELECT count(1)
FROM T_TANULO t
INNER JOIN T_FELHASZNALO f ON f.ID = t.ID AND f.TOROLT = 'F'
WHERE t.TOROLT = 'F'
AND (f.C_OKTATASIAZONOSITO NOT LIKE '7%'
OR f.C_OKTATASIAZONOSITO LIKE '%[^0-9]%'
OR LEN(f.C_OKTATASIAZONOSITO) <> 11)
AND T.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND T.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
A rendszerben ...
tanárnak nem megfelelő formátumú az oktatási azonosítója.
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANAROKHIANYOSOKTATASIAZONOS = (
SELECT count(1)
FROM T_ALKALMAZOTT a
INNER JOIN T_FELHASZNALO f ON f.ID = a.ID AND f.TOROLT = 'F'
WHERE a.TOROLT = 'F'
AND (f.C_OKTATASIAZONOSITO not like '7%'
or f.C_OKTATASIAZONOSITO LIKE '%[^0-9]%'
or LEN(f.C_OKTATASIAZONOSITO) <> 11)
AND A.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND A.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
A tantárgyfelosztásban ...
tanár nem szerepel!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTARGYFELOSZTASTANARNINCSE = (
SELECT COUNT(1)
FROM T_ALKALMAZOTT a
LEFT JOIN T_FOGLALKOZAS F ON ( A.ID = F.C_TANARID AND F.TOROLT = 'F'
AND F.C_INTEZMENYID = A.C_ALINTEZMENYID
AND F.C_TANEVID = A.C_ALTANEVID
)
WHERE a.TOROLT = 'F' AND f.ID IS NULL
AND A.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND A.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
A tantárgyak közül ...
tantárgy nem szerepel a tantárgyfelosztásban!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTARGYFELOSZTASTANTARGYNIN = (
SELECT count(1)
FROM T_TANTARGY tt
LEFT JOIN T_FOGLALKOZAS f ON ( f.C_TANTARGYID = tt.ID AND f.TOROLT = 'F'
AND F.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND F.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE f.ID IS NULL AND TT.TOROLT = 'F'
AND TT.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND TT.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
Az osztályok ill. tanórai célú csoportok közül ...
nem szerepel a tantárgyfelosztásban!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTARGYFELOSZTASOSZTALYOKNI = (
SELECT count(1)
FROM T_OSZTALYCSOPORT ocs
LEFT JOIN T_FOGLALKOZAS f ON ( f.C_OSZTALYCSOPORTID = ocs.ID AND f.TOROLT = 'F'
AND F.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND F.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE ocs.TOROLT = 'F' AND f.ID IS NULL
AND ( EXISTS ( SELECT 1 FROM T_OSZTALY WHERE T_OSZTALY.ID = OCS.ID ) -- OSZTÁLY
OR
EXISTS ( SELECT 1 FROM T_CSOPORT WHERE T_CSOPORT.C_TIPUSA = 1034 AND T_CSOPORT.ID = OCS.ID) -- CSOPORT
)
AND ocs.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND ocs.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
)
WHERE TOROLT = 'F'
/*
Az órarendben ... órában teremütközés van,
azonos teremben több óra IS szerepel!
*/
UPDATE T_RENDSZERERTESITESEK
SET C_ORARENDTEREMUTKOZES = ( SELECT COUNT(1)
FROM (
SELECT sub.C_HETIREND, sub.C_HETNAPJA, sub.C_TEREMID, sub.C_CSENGETESIRENDORAID, COUNT(1) cnt
FROM (
SELECT DISTINCT o.C_HETIREND, o.C_HETNAPJA, o.C_TEREMID, o.C_CSENGETESIRENDORAID, o.C_FOGLALKOZASID
FROM T_ORARENDIORA o
INNER JOIN T_TEREM t ON t.ID = o.C_TEREMID AND t.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
WHERE o.C_ORAERVENYESSEGKEZDETE < GETDATE() AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
AND t.C_TOBBORATLEHETTARTANI = 'F'
AND o.TOROLT = 'F'
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
UNION
SELECT DISTINCT n.C_HETIREND , n.C_HETNAPJA, o.C_TEREMID, o.C_CSENGETESIRENDORAID, o.C_FOGLALKOZASID
FROM T_TANITASIORA o
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
INNER JOIN T_TEREM t ON t.ID = o.C_TEREMID AND t.TOROLT = 'F'
WHERE o.C_ORARENDIORAGROUPID IS NULL
AND n.C_NAPDATUMA > GETDATE() - 1
AND t.C_TOBBORATLEHETTARTANI = 'F'
AND o.TOROLT = 'F'
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) sub
GROUP BY sub.C_HETIREND, sub.C_HETNAPJA, sub.C_TEREMID, sub.C_CSENGETESIRENDORAID
HAVING COUNT(1) > 1
) tbl )
WHERE TOROLT = 'F'
/*
Az órarendben ... órában tanárütközés szerepel,
azonos órában a pedagógushoz több tanóra IS tartozik.
*/
UPDATE T_RENDSZERERTESITESEK
SET C_ORARENDTANARUTKOZES = ( SELECT count(1)
FROM (
SELECT sub.C_TANARID, sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, COUNT(1) cnt
FROM (
SELECT f.C_TANARID, o.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, o.C_TEREMID
FROM T_ORARENDIORA o
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND o.C_ORAERVENYESSEGKEZDETE < GETDATE()
AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
UNION
SELECT ISNULL(o.C_HELYETTESITOTANARID, f.C_TANARID) AS C_TANAROKID, n.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, o.C_TEREMID
FROM T_TANITASIORA o
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
WHERE o.TOROLT = 'F'
AND o.C_ORARENDIORAGROUPID IS NULL
AND o.C_DATUM > getdate() - 1
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) sub
GROUP BY sub.C_TANARID, sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID
HAVING COUNT(1) > 1
) tbl )
WHERE TOROLT = 'F'
/*
Azon tanulók száma, akik osztályba vannak sorolva, de nincs tantervük
*/
UPDATE T_RENDSZERERTESITESEK
SET C_TANTERVNELKULITANULOK = (
SELECT count(1)
FROM (
select distinct T_TANULO.ID
from T_TANULOCSOPORT
inner join T_TANULO on (T_TANULO.ID = T_TANULOCSOPORT.C_TANULOID and T_TANULO.TOROLT = 'F')
where T_TANULO.C_TANTERVID is null
and T_TANULOCSOPORT.TOROLT = 'F'
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE())
AND T_TANULOCSOPORT.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND T_TANULOCSOPORT.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
) tbl )
WHERE TOROLT = 'F'
/*
Nincs beállítva aktív csengetési rend
*/
UPDATE T_RENDSZERERTESITESEK
SET C_AKTIVCSENGETESIREND = ( SELECT IIF(EXISTS(SELECT 1
FROM T_CSENGETESIREND
WHERE C_AKTIV = 'T'
AND T_CSENGETESIREND.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
AND T_CSENGETESIREND.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID),
'F', 'T') )
WHERE TOROLT = 'F'
END