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,75 @@
-- =============================================
-- Description: <Ellenőrizzuk, hogy a megadott 4T alapján szerepel-e az adatbázisban>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_Check4TValidation]
GO
CREATE PROCEDURE [dbo].[sp_Check4TValidation]
@pCheckValidationType int,
@pElotag nvarchar(255),
@pVezeteknev nvarchar(255),
@pUtonev nvarchar(255),
@pAnyjaNeve nvarchar(255) = null,
@pAnyjaVezeteknev nvarchar(255) = null,
@pAnyjaUtonev nvarchar(255) = null,
@pSzuletesiHely nvarchar(255),
@pSzuletesiDatum datetime,
@pTanevId int = null,
@pUserId int = null,
@pFelvetelStatuszaFelveve int = null,
@pFelvetelStatuszaNemFelveve int = null
AS
BEGIN
SET NOCOUNT ON;
IF (@pCheckValidationType = 1) /* Tanuló */
BEGIN
IF (@pUserId IS NOT NULL)
SELECT f.ID FROM T_FELHASZNALO_OSSZES f
JOIN T_TANULO_OSSZES t on t.ID = f.ID
WHERE
f.C_VEZETEKNEV = @pVezeteknev AND f.C_UTONEV = @pUtonev AND f.C_ANYJANEVE = @pAnyjaNeve
AND f.C_SZULETESIHELY = @pSzuletesiHely AND f.C_SZULETESIDATUM = @pSzuletesiDatum AND f.ID != @pUserId
AND f.C_TANEVID = @pTanevId AND f.TOROLT = 'F' AND ISNULL(f.C_ELOTAG,'') = @pElotag
ELSE
SELECT f.ID FROM T_FELHASZNALO_OSSZES f
JOIN T_TANULO_OSSZES t on t.ID = f.ID
WHERE
f.C_VEZETEKNEV = @pVezeteknev AND f.C_UTONEV = @pUtonev AND f.C_ANYJANEVE = @pAnyjaNeve
AND f.C_SZULETESIHELY = @pSzuletesiHely AND f.C_SZULETESIDATUM = @pSzuletesiDatum
AND f.C_TANEVID = @pTanevId AND f.TOROLT = 'F' AND ISNULL(f.C_ELOTAG,'') = @pElotag
END
ELSE IF (@pCheckValidationType = 2) /* Alkalmazott */
BEGIN
IF (@pUserId IS NOT NULL)
SELECT f.ID FROM T_FELHASZNALO_OSSZES f
JOIN T_ALKALMAZOTT_OSSZES a on a.ID = f.ID
WHERE
f.C_VEZETEKNEV = @pVezeteknev AND f.C_UTONEV = @pUtonev AND f.C_ANYJANEVE = @pAnyjaNeve
AND f.C_SZULETESIHELY = @pSzuletesiHely AND f.C_SZULETESIDATUM = @pSzuletesiDatum AND f.ID != @pUserId
AND f.C_TANEVID = @pTanevId AND f.TOROLT = 'F' AND ISNULL(f.C_ELOTAG,'') = @pElotag
ELSE
SELECT f.ID FROM T_FELHASZNALO_OSSZES f
JOIN T_ALKALMAZOTT_OSSZES a on a.ID = f.ID
WHERE
f.C_VEZETEKNEV = @pVezeteknev AND f.C_UTONEV = @pUtonev AND f.C_ANYJANEVE = @pAnyjaNeve
AND f.C_SZULETESIHELY = @pSzuletesiHely AND f.C_SZULETESIDATUM = @pSzuletesiDatum
AND f.C_TANEVID = @pTanevId AND f.TOROLT = 'F' AND ISNULL(f.C_ELOTAG,'') = @pElotag
END
ELSE IF (@pCheckValidationType = 3) /* Nebuló */
BEGIN
IF EXISTS (SELECT 1 FROM T_NEBULO n
WHERE
n.C_TANULOCSALADINEVE = @pVezeteknev AND n.C_TANULOUTONEVE = @pUtonev
AND n.C_EDESANYJASZULETESICSALADINEV = @pAnyjaVezeteknev AND n.C_EDESANYJASZULETESIUTONEVE = @pAnyjaUtonev
AND n.C_SZULETESIHELY = @pSzuletesiHely AND n.C_SZULETESIIDO = @pSzuletesiDatum
AND (@pUserId IS NULL OR ID != @pUserId) AND (n.C_FELVETELSTATUSZA = @pFelvetelStatuszaFelveve OR n.C_FELVETELSTATUSZA = @pFelvetelStatuszaNemFelveve) AND n.TOROLT = 'F'
AND ISNULL(n.C_ELOTAG,'') = @pElotag
)
SELECT 1
ELSE
SELECT 0
END
END
GO

View file

@ -0,0 +1,35 @@
-- =============================================
-- Description: <Ellenőrizzuk, hogy a felhasználóhoz tartozik-e a paraméterben megadott szerepkor>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_CheckFelhasznaloHasSzerepkor]
GO
CREATE PROCEDURE [dbo].[sp_CheckFelhasznaloHasSzerepkor]
@pFelhasznaloId AS INT,
@pSzerepkorTipusId AS INT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(
SELECT 1
FROM
T_FELHASZNALO felhasznalo
LEFT JOIN
T_FELHASZNALO_SZEREPKOR felhasznaloSzerepkor ON
felhasznaloSzerepkor.C_FELHASZNALOID = felhasznalo.ID
LEFT JOIN
T_SZEREPKOR szerepkor ON
szerepkor.ID = felhasznaloSzerepkor.C_SZEREPKORID
WHERE
felhasznalo.TOROLT = 'F' AND
felhasznalo.ID = @pFelhasznaloId AND
szerepkor.TOROLT = 'F' AND
szerepkor.C_SZEREPKORTIPUS = @pSzerepkorTipusId
)
SELECT 1
ELSE
SELECT 0
END
GO

View file

@ -0,0 +1,41 @@
-- =============================================
-- Description: <Ellenőrizzuk, hogy a megadott nebuló 4T alapján szerepel-e az adatbázisban>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_CheckNebulo4TValidation]
GO
CREATE PROCEDURE [dbo].[sp_CheckNebulo4TValidation]
@pNebuloId AS INT = NULL,
@pFelvetelStatuszaFelveve INT,
@pVezeteknev NVARCHAR(255),
@pUtonev NVARCHAR(255),
@pAnyjaVezeteknev NVARCHAR(255),
@pAnyjaUtonev NVARCHAR(255),
@pSzuletesiHely NVARCHAR(50),
@pSzuletesiDatum DATETIME
AS
BEGIN
SET NOCOUNT ON;
IF
EXISTS (SELECT 1
FROM
T_NEBULO
WHERE
TOROLT = 'F'
AND (@pNebuloId IS NULL OR ID != @pNebuloId)
AND C_FELVETELSTATUSZA = @pFelvetelStatuszaFelveve
AND C_TANULOCSALADINEVE = @pVezeteknev
AND C_TANULOUTONEVE = @pUtonev
AND C_EDESANYJASZULETESICSALADINEV = @pAnyjaVezeteknev
AND C_EDESANYJASZULETESIUTONEVE = @pAnyjaUtonev
AND C_SZULETESIHELY = @pSzuletesiHely
AND C_SZULETESIIDO = @pSzuletesiDatum
)
SELECT 1
ELSE
SELECT 0
END
GO

View file

@ -0,0 +1,44 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_CheckOktatasiAzonositoUtkozesValidation]
GO
CREATE PROCEDURE [dbo].[sp_CheckOktatasiAzonositoUtkozesValidation]
@pNebuloId AS INT = NULL,
@pFelvetelStatusza INT = NULL,
@pOktatasiAzonosito NVARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
IF (@pFelvetelStatusza IS NULL)
IF
EXISTS (SELECT 1
FROM
T_NEBULO
WHERE
TOROLT = 'F'
AND (@pNebuloId IS NULL OR ID != @pNebuloId)
AND C_OKTATASIAZONOSITOSZAMA = @pOktatasiAzonosito
)
SELECT 1
ELSE
SELECT 0
ELSE
IF
EXISTS (SELECT 1
FROM
T_NEBULO
WHERE
TOROLT = 'F'
AND (@pNebuloId IS NULL OR ID != @pNebuloId)
AND C_FELVETELSTATUSZA = @pFelvetelStatusza
AND C_OKTATASIAZONOSITOSZAMA = @pOktatasiAzonosito
)
SELECT 1
ELSE
SELECT 0
END
GO

View file

@ -0,0 +1,124 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_CsengetesiRendOrakTorles]
GO
CREATE PROCEDURE [dbo].[sp_CsengetesiRendOrakTorles]
@TanevId int,
@xml xml
AS
BEGIN
SET NOCOUNT ON;
DECLARE @torlendoCsengetesiRendek TABLE (id int);
INSERT INTO @torlendoCsengetesiRendek
SELECT
sor.value('.', 'int') AS id
FROM @xml.nodes('/CsengetesiRendOraTorles/IdLista/Id') as sorok(sor)
SELECT
ID oraId,
csengrendOraId,
newCsengrendOraId,
newOraKezdete,
newOraVege,
ISNULL(newOraszam, 0) newOraszam,
newCsengrendId,
IsTanora,
UpdateVegeDate,
UpdateKezdeteDate,
UpdateType
INTO #TEMPmodositandoOrak
from (
select kapcsolodoOrak.ID,
kapcsolodoOrak.C_CSENGETESIRENDID,
kapcsolodoOrak.C_CSENGETESIRENDORAID csengrendOraId,
kapcsolodoOrak.C_ORASZAM,
alapcsora.C_KEZDETE,
alapcsora.C_VEGE,
kapcsolodoOrak.C_ORAKEZDETE,
kapcsolodoOrak.C_ORAVEGE,
kapcsolodoOrak.Tanora IsTanora,
csengrend.ID newCsengrendOraId,
csengrend.C_CSENGETESIRENDID newCsengrendId,
csengrend.C_KEZDETE newOraKezdete,
csengrend.C_VEGE newOraVege,
csengrend.C_ORASZAM newOraszam
,IIF(kapcsolodoOrak.Tanora = 0 and cast(alapcsora.C_VEGE as time) = cast(kapcsolodoOrak.C_ORAVEGE as time) and csengrend.C_VEGE is not null, 1, 0) UpdateVegeDate
,IIF(kapcsolodoOrak.Tanora = 0 and cast(alapcsora.C_KEZDETE as time) = cast(kapcsolodoOrak.C_ORAKEZDETE as time) and csengrend.C_KEZDETE is not null, 1, 0) UpdateKezdeteDate
,IIF(csengrend.ID is null, 1, 0) UpdateType
from (
select
x.ID,
C_CSENGETESIRENDID,
C_CSENGETESIRENDORAID,
C_ORASZAM,
C_ORAKEZDETE,
C_ORAVEGE,
Tanora
from(
select ID,
C_CSENGETESIRENDID,
C_CSENGETESIRENDORAID,
C_ORASZAM,
C_ORAKEZDETE,
C_ORAVEGE,
0 Tanora
from T_ORARENDIORA_OSSZES
union
select ID,
C_CSENGETESIRENDID,
C_CSENGETESIRENDORAID,
C_ORASZAM,
C_ORAKEZDETE,
C_ORAVEGE,
1 Tanora
from T_TANITASIORA_OSSZES
) x
inner join @torlendoCsengetesiRendek torlendoIdk on torlendoIdk.id = x.C_CSENGETESIRENDORAID
) kapcsolodoOrak
left join (
select
ID,
C_KEZDETE,
C_VEGE
from T_CSENGETESIRENDORA_OSSZES) alapcsora on alapcsora.ID = kapcsolodoOrak.C_CSENGETESIRENDORAID
left join (select csora.ID,
csora.C_CSENGETESIRENDID,
csora.C_KEZDETE,
csora.C_VEGE,
csora.C_ORASZAM
from T_CSENGETESIRENDORA_OSSZES csora
inner join T_CSENGETESIREND_OSSZES on csora.C_CSENGETESIRENDID = T_CSENGETESIREND_OSSZES.ID And T_CSENGETESIREND_OSSZES.C_AKTIV = 'T'
where csora.C_TANEVID = @TanevId)csengrend on csengrend.C_ORASZAM = kapcsolodoOrak.C_ORASZAM and csengrend.ID != kapcsolodoOrak.C_CSENGETESIRENDORAID
)t
UPDATE o
SET
o.C_ORAVEGE = IIF(temp.UpdateVegeDate = 1,
DATEADD(HOUR, datepart(hour, temp.newOraVege),DATEADD(MINUTE,datepart(minute, temp.newOraVege),CAST(CAST(o.C_ORAVEGE AS DATE) as datetime))),
o.C_ORAVEGE),
o.C_ORAKEZDETE = IIF(temp.UpdateKezdeteDate = 1,
DATEADD(HOUR, datepart(hour, temp.newOraVege),DATEADD(MINUTE,datepart(minute, temp.newOraVege),CAST(CAST(o.C_ORAKEZDETE AS DATE) as datetime))),
o.C_ORAKEZDETE),
o.C_CSENGETESIRENDID = temp.newCsengrendId,
o.C_CSENGETESIRENDORAID = temp.newCsengrendOraId,
o.C_ORASZAM = temp.newOraszam
from T_ORARENDIORA_OSSZES o
inner join #TEMPmodositandoOrak temp on temp.csengrendOraId = o.C_CSENGETESIRENDORAID and temp.IsTanora = 0
UPDATE t
SET
t.C_CSENGETESIRENDID = temp.newCsengrendId,
t.C_CSENGETESIRENDORAID = temp.newCsengrendOraId,
t.C_ORASZAM = temp.newOraszam
from T_TANITASIORA_OSSZES t
inner join #TEMPmodositandoOrak temp on temp.csengrendOraId = t.C_CSENGETESIRENDORAID and temp.IsTanora = 1
DELETE csro
FROM T_CSENGETESIRENDORA_OSSZES csro
inner join @torlendoCsengetesiRendek torlendoIdk on torlendoIdk.id = csro.ID
DROP TABLE #TEMPmodositandoOrak
END
GO

View file

@ -0,0 +1,29 @@
DROP PROCEDURE IF EXISTS dbo.sp_CsoportKisorolasok
GO
CREATE PROCEDURE dbo.sp_CsoportKisorolasok
@pintezmenyId INT
,@paktTanevId INT
,@pfelhasznaloId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @date datetime = (
SELECT DATEADD(DAY, 1, C_DATUM)
FROM T_TANEVRENDJE_OSSZES
WHERE C_NAPTIPUSA = 1395
AND TOROLT = 'F'
AND C_INTEZMENYID = @pintezmenyId
AND C_TANEVID = @paktTanevId);
UPDATE T_TANULOCSOPORT_OSSZES
SET C_KILEPESDATUM = @date,
MODIFIER = @pfelhasznaloId
WHERE C_KILEPESDATUM IS NULL
AND TOROLT = 'F'
AND C_INTEZMENYID = @pintezmenyId
AND C_TANEVID = @paktTanevId;
END
GO

View file

@ -0,0 +1,112 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_DeleteAllTTF]
GO
CREATE PROCEDURE [dbo].[sp_DeleteAllTTF]
@feladatellatasiHelyId INT = NULL
,@tanevId INT
AS
BEGIN
SET NOCOUNT ON;
IF @feladatellatasiHelyId IS NULL BEGIN
DELETE FROM T_FOGLALKOZAS_OSSZES
WHERE ID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND f.C_IMPORTALT = 'T'
AND f.C_TANEVID = @tanevId
)
END
ELSE BEGIN -- Csak a megadott feladatellátási helyen töröl TODO:ez a rész sehonnan nincs hívvva, töröl
DELETE FROM T_FOGLALKOZAS_OSSZES
WHERE ID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND f.C_IMPORTALT = 'T'
AND f.C_OSZTALYCSOPORTID IN (
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_FELADATELLATASIHELYID = @feladatellatasiHelyId and C_TANEVID = @tanevId
)
AND f.C_TANEVID = @tanevId
)
END
/*
* Innentől nem kell figyelni a feladatellátási helyet,
* mert a NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS szerepel mindenütt
*/
DELETE t
FROM T_TANTARGY_OSSZES t
WHERE NOT EXISTS (SELECT 1 FROM T_ORATERVTARGY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOMENTESSEG_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_FOTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_TANTARGYID = t.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevId
DELETE cs
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID
WHERE NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = cs.ID)
--T_OSZTALYCSOPORT függőségeinek vizsgálata
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevId
DELETE o
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
WHERE NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES_OSSZES WHERE o.ID = C_OSZTALYID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = o.ID)
AND C_ALTANEVID = @tanevId
--T_OSZTALYCSOPORT függőségeinek vizsgálata
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevId
DELETE ocs
FROM T_OSZTALYCSOPORT_OSSZES ocs
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_HITTANADATSZOLGALTATAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANULOESEMENY WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevId
END
GO

View file

@ -0,0 +1,21 @@
DROP PROCEDURE IF EXISTS sp_ElozoTanevesViewokTorlese
GO
CREATE PROCEDURE sp_ElozoTanevesViewokTorlese
@pintezmenyId INT
,@pintezmenyAzonosito NVARCHAR(MAX)
,@pkovTanevId INT
WITH EXECUTE AS 'kreta_tech_user'
AS
BEGIN
SET NOCOUNT ON
DECLARE @schemaName nvarchar(max) = CONCAT(N'KR_', @pintezmenyAzonosito, N'_Schema')
EXEC dev.uspDeleteViewsAll @schemaName
EXEC dev.uspCreateSchemaViews
@pTables = NULL
,@pSchemas = @schemaName
,@pDebugMode = 0
END
GO

View file

@ -0,0 +1,633 @@
DROP PROCEDURE IF EXISTS dbo.sp_ExportEsl_A03T01_1
GO
CREATE PROCEDURE [dbo].[sp_ExportEsl_A03T01_1]
@tanevId int
,@feladatEllatasiHelyId int
,@isFelevi int = 0
,@osztalyzatTipusTypeID int = 44
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
CREATE TABLE #Tanulok (
TanuloNev nvarchar(1024)
,Neme int
,Evfolyam int
,Kategoria nvarchar(500)
)
CREATE TABLE #TanulokOsszes (
Kategoria nvarchar(500)
,Osszes int
,OsszesLany int
)
CREATE TABLE #TanuloErtekeles (
Id int
,Tanulo int
,Ertekeles int
,Tipus int
)
CREATE TABLE #ErintettTanulok (
Evfolyam int
,TanuloId int
,Neme int
,TanuloNev nvarchar(255)
,Oktatasiazonosito nvarchar(11)
,TanuloOsztalyNev nvarchar(255)
,IsKozepesMiatt int
,IsRontasMiatt int
,TanuloOsztalyId int
,INDEX IX_01 (TanuloId)
)
CREATE TABLE #KetFeltetelTanulok (
TanuloId int
,Evfolyam int
,Neme int
,TanuloNev nvarchar(510)
,OktatasiAzonosito nvarchar(11)
,TanuloOsztalyNev nvarchar(255)
,IsHianyzasMiatt int
,IsKiemeltMiatt int
,IsGyermekVedelemMiatt int
,IsAltalanosIskolaMiatt int
)
CREATE TABLE #Kategoria(
KategoriaNev nvarchar(500)
,Sorrend int
)
CREATE TABLE #IntezmenyEvfolyamok(
ID int
,EvfolyamNev nvarchar(510)
)
INSERT INTO #Kategoria( --Egyszerűbb így, hogy meglegyen minden kategória a végén, sorrenddel együtt, akkor is, ha nincs hozzá elem
KategoriaNev
,Sorrend
) VALUES
('Osszesen',1)
,('Lany',2)
,('AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet',3)
,('AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama',4)
,('AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott',5)
,('AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott',6)
,('AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott',7)
,('AzAdottTanitasiEvbenEvismetlesreKotelezett',8)
,('AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik',9)
,('AFelevbenSzuloiKeresreMagantanulovaValtTanulo',10)
,('AFelevbenMenekultOltalmazottMenedekesTanulokSzama',11)
,('AFelevbenVeszelyezeztetteValtTanulokSzama',12)
,('AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama',13)
,('KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo',14)
,('EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama',15)
,('EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel',16)
,('EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama',17)
,('EbbolAlapfokuOktatasbanBetoltotteA16Eletevet',18)
DECLARE @FelevKezdete DATETIME= (
SELECT C_DATUM + IIF(@isFelevi = 1, 0, 1)
FROM T_TANEVRENDJE_OSSZES tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1394, 1400)
AND C_TANEVID = @tanevid
AND TOROLT = 'F'
)
DECLARE @FelevVege DATETIME= (
SELECT C_DATUM + 1
FROM T_TANEVRENDJE tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1400, 1395)
AND C_TANEVID=@tanevid
AND TOROLT='F')
DECLARE @ertekelesTipus int=IIF(@isFelevi=1,1519,1520)
DECLARE @osszesDb int
DECLARE @cols nvarchar(max)
INSERT INTO #IntezmenyEvfolyamok(
Id
,Evfolyamnev
)
SELECT DISTINCT
dib.ID
,dib.C_NAME
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = ocs.C_EVFOLYAMTIPUSA AND dib.ID NOT IN(1303,1304,1305,1306,7366)--1-4 évfolyamok és összevont osztály
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
WHERE ocs.C_FELADATELLATASIHELYID = @feladatEllatasiHelyId AND ocs.C_KEPZESIFORMA = 1096 --Nappali rendszerű iskolai oktatás
UNION
SELECT DISTINCT
dib.ID
,dib.C_NAME
FROM T_TANULOTANUGYIADATOK tta
INNER JOIN T_TANULOCSOPORT tcs ON tcs.ID = tta.C_TANULOCSOPORTID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATELLATASIHELYID = @feladatEllatasiHelyId
AND ocs.C_KEPZESIFORMA = 1096 --Nappali rendszerű iskolai oktatás
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = tta.C_TANULOEVFOLYAMTIPUSID
WHERE tta.C_TANULOEVFOLYAMTIPUSID NOT IN (1303,1304,1305,1306,7366) --1-4 évfolyamok és összevont osztály
SET @cols =
STUFF((SELECT ',' + QUOTENAME(Evfolyamnev)
FROM #IntezmenyEvfolyamok
ORDER BY ID
FOR XML PATH('')),1,1,'')
INSERT INTO #ErintettTanulok (
TanuloId
,Evfolyam
,Neme
,TanuloNev
,OktatasiAzonosito
,TanuloOsztalyNev
,TanuloOsztalyId
,IsKozepesMiatt
,IsRontasMiatt
)
SELECT * FROM fnGetLemorzsolodottTanulokByFelhely (@feladatEllatasiHelyId, @tanevId, @isFelevi, @osztalyzatTipusTypeID)
INSERT INTO #TanuloErtekeles
SELECT
te.ID
,C_TANULOID
,C_ERTEKELESOSZTALYZATID
,C_TIPUSID
FROM T_TANULOERTEKELES te
INNER JOIN #ErintettTanulok fht ON fht.TanuloId=te.C_TANULOID
INNER JOIN T_TANTARGY tgy ON tgy.ID = te.C_TANTARGYID AND tgy.C_ESLTANTARGYKATEGORIAID IS NOT NULL
WHERE te.C_TIPUSID=@ertekelesTipus
DECLARE @Kategoria nvarchar(500)
----------------------------------------------------------------------
-- PRINT '1'
----------------------------------------------------------------------
-- Összes
----------------------------------------------------------------------
SET @Kategoria = 'Osszesen'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok
----------------------------------------------------------------------
-- PRINT '2'
----------------------------------------------------------------------
-- Lány
----------------------------------------------------------------------
SET @Kategoria = 'Lany'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok
WHERE Neme = 5
----------------------------------------------------------------------
-- PRINT '3'
----------------------------------------------------------------------
-- Összes rontott
----------------------------------------------------------------------
SET @Kategoria = 'AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok
WHERE IsKozepesMiatt = 1
----------------------------------------------------------------------
-- PRINT '4'
----------------------------------------------------------------------
-- Legalább 1.1-et rontott
----------------------------------------------------------------------
SET @Kategoria = 'AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok
WHERE IsRontasMiatt = 1
----------------------------------------------------------------------
-- PRINT '5'
----------------------------------------------------------------------
-- egy, vagy több tantárgyból elégtelen osztályzat
----------------------------------------------------------------------
SET @Kategoria = 'AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #TanuloErtekeles te
INNER JOIN #ErintettTanulok fht ON fht.TanuloId=te.Tanulo
WHERE te.Tipus = @ertekelesTipus AND te.Ertekeles = 1501
----------------------------------------------------------------------
-- PRINT '6'
----------------------------------------------------------------------
-- félév, magatartás, 2
----------------------------------------------------------------------
SET @Kategoria = 'AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN T_TANULOERTEKELES te ON te.C_TANULOID=fht.TanuloId AND te.C_ISMAGATARTASSZORGALOM = 'T'
AND (te.C_MAGATARTASERTEKID=1558 OR te.C_MAGATARTASOSZTALYZATID=1502) AND te.C_TIPUSID = @ertekelesTipus
----------------------------------------------------------------------
-- PRINT '7'
----------------------------------------------------------------------
-- félév, szorgalom, 2
----------------------------------------------------------------------
SET @Kategoria = 'AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN T_TANULOERTEKELES te ON te.C_TANULOID=fht.TanuloId AND te.C_ISMAGATARTASSZORGALOM = 'T'
AND (te.C_SZORGALOMERTEKID = 1562 OR te.C_SZORGALOMOSZTALYZATID=1502) AND te.C_TIPUSID = @ertekelesTipus
----------------------------------------------------------------------
-- PRINT '8'
----------------------------------------------------------------------
-- adott évben évismétlés
----------------------------------------------------------------------
SET @Kategoria = 'AzAdottTanitasiEvbenEvismetlesreKotelezett'
IF @isFelevi = 0
BEGIN
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN (
SELECT COUNT(DISTINCT fht.TanuloId) db,fht.TanuloId
FROM #ErintettTanulok fht
INNER JOIN #TanuloErtekeles te ON te.Tanulo=fht.TanuloId AND te.Ertekeles=1501
GROUP BY fht.TanuloId
HAVING COUNT(*)>=4) x ON x.TanuloId = fht.TanuloId
END
----------------------------------------------------------------------
-- PRINT '9'
----------------------------------------------------------------------
-- Félévben 50 órát elérő igazolatlan hiányzás
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,fht.Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN (
SELECT fht.TanuloId AS Tanulo FROM T_TANULOMULASZTAS tm
INNER JOIN #ErintettTanulok fht on fht.TanuloId=tm.C_ORATANULOIID
INNER JOIN T_TANITASIORA tao on tao.ID=tm.C_TANITASIORAKID AND tao.C_DATUM >= @FelevKezdete AND tao.C_DATUM<@FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
WHERE tm.C_IGAZOLT='F' AND cs.ID IS NULL
GROUP BY fht.TanuloId
HAVING COUNT(Tanuloid) > 50) x ON x.Tanulo = fht.TanuloId
----------------------------------------------------------------------
-- PRINT '10'
----------------------------------------------------------------------
-- Szülő kérésére magántanuló
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenSzuloiKeresreMagantanulovaValtTanulo'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,fht.Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
----------------------------------------------------------------------
-- PRINT '11'
----------------------------------------------------------------------
-- Menekült, menedékjoggal rendelkező
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenMenekultOltalmazottMenedekesTanulokSzama'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,fht.Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.ID
----------------------------------------------------------------------
-- PRINT '12'
----------------------------------------------------------------------
-- Félévben veszélyeztetett tanulók száma
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenVeszelyezeztetteValtTanulokSzama'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,fht.Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.ID=fht.TanuloId AND t.C_VESZELYEZTETETT='T'
----------------------------------------------------------------------
-- PRINT '13'
----------------------------------------------------------------------
-- ideiglenes hatállyal elhelyezett vagy nevelésbe vett tanulók
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,fht.Neme
,Evfolyam
,@Kategoria
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.ID
----------------------------------------------------------------------
-- PRINT '14'
----------------------------------------------------------------------
-- legalább 2 feltétel teljesül
----------------------------------------------------------------------
INSERT INTO #KetFeltetelTanulok
SELECT DISTINCT
ftt.TanuloId
,ftt.Evfolyam
,ftt.Neme
,ftt.TanuloNev
,ftt.OktatasiAzonosito
,ftt.TanuloOsztalyNev
,IIF((SELECT COUNT(1)
FROM T_TANULOMULASZTAS tm
INNER JOIN T_TANITASIORA tno ON tno.ID = tm.C_TANITASIORAKID AND tno.C_DATUM > @FelevKezdete AND tno.C_DATUM < @FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tno.C_OSZTALYCSOPORTID
WHERE (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))) AND tm.C_IGAZOLT='T' AND tm.C_TIPUS = 1500 AND tm.C_ORATANULOIID = ftt.TanuloId) > 100, 1, 0) AS IsHianyzasMiatt
,IIF((SELECT COUNT(1)
FROM T_TANULO t
WHERE t.ID = ftt.TanuloId
AND (t.C_SAJATOSNEVELESU='T' OR t.C_BTMPROBLEMAS='T' OR t.C_HATRANYOSHELYZETU IN (1122, 1123))) > 0, 1, 0) AS IsKiemeltMiatt
,IIF((SELECT COUNT(1)
FROM T_TANULO t
WHERE t.ID = ftt.TanuloId
AND t.C_RENDSZERESGYERMEKVEDELMIKEDV IS NOT NULL) > 0, 1, 0) AS IsGyermekVedelemMiatt
,IIF((SELECT COUNT(1)
FROM T_FELHASZNALO t
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=t.ID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_ISESL16EVESUTANBELEPETT = 'T'
INNER JOIN T_FELADATELLATASIHELY fh ON fh.ID=ocs.C_FELADATELLATASIHELYID AND fh.C_OKTATASINEVELESIFELADATTIPUS IN (1158,1178)
AND fh.ID = @feladatEllatasiHelyId
WHERE t.ID = ftt.TanuloId) > 0, 1, 0) AS IsAltalanosIskolaMiatt
FROM #ErintettTanulok ftt
DELETE kt FROM #KetFeltetelTanulok kt WHERE (kt.IsHianyzasMiatt + kt.IsKiemeltMiatt + kt.IsGyermekVedelemMiatt + kt.IsAltalanosIskolaMiatt) < 2
SET @Kategoria = 'KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,Neme
,Evfolyam
,@Kategoria
FROM #KetFeltetelTanulok
----------------------------------------------------------------------
-- PRINT '15'
----------------------------------------------------------------------
-- kettő feltétel esetén ... félévben 100 órát elért igazolt hiányzás
----------------------------------------------------------------------
SET @Kategoria = 'EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,kt.Neme
,Evfolyam
,@Kategoria
FROM #KetFeltetelTanulok kt
WHERE kt.IsHianyzasMiatt = 1
----------------------------------------------------------------------
-- PRINT '16'
----------------------------------------------------------------------
-- kettő feltétel ... kiemelet figyelmet igénylő --sni, btmn, hh, 3h
----------------------------------------------------------------------
SET @Kategoria = 'EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,kt.Neme
,Evfolyam
,@Kategoria
FROM #KetFeltetelTanulok kt
WHERE kt.IsKiemeltMiatt = 1
----------------------------------------------------------------------
-- PRINT '17'
----------------------------------------------------------------------
-- kettő feltétel ... --rendszeres gyermekvédelmi támogatás
----------------------------------------------------------------------
SET @Kategoria = 'EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,kt.Neme
,Evfolyam
,@Kategoria
FROM #KetFeltetelTanulok kt
WHERE kt.IsGyermekVedelemMiatt = 1
----------------------------------------------------------------------
-- PRINT '18'
----------------------------------------------------------------------
-- kettő feltétel ... alapfokú oktatásban 16
----------------------------------------------------------------------
SET @Kategoria = 'EbbolAlapfokuOktatasbanBetoltotteA16Eletevet'
INSERT INTO #Tanulok(
TanuloNev
,Neme
,Evfolyam
,Kategoria
) SELECT DISTINCT
TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev
,kt.Neme
,Evfolyam
,@Kategoria
FROM #KetFeltetelTanulok kt
WHERE kt.IsAltalanosIskolaMiatt = 1
INSERT INTO #TanulokOsszes(
Kategoria
,Osszes
,OsszesLany
) SELECT
Kategoria
,COUNT(TanuloNev)
,SUM(IIF(Neme = 5,1,0))
FROM #Tanulok
GROUP BY Kategoria
DECLARE @query nvarchar(max)
set @query =
'SELECT
KategoriaNev
,Sorrend
,rn
,' + @cols + '
,Osszes
,OsszesLany
INTO #RetTable
FROM (
SELECT
k.KategoriaNev
,t.TanuloNev
,ROW_NUMBER() OVER (PARTITION BY t.Kategoria,t.Evfolyam ORDER BY t.TanuloNev) rn
,dib.C_NAME as Evfolyam
,k.Sorrend
,Ossz.Osszes
,Ossz.OsszesLany
FROM #Kategoria k
LEFT JOIN #Tanulok t ON t.Kategoria = k.KategoriaNev
LEFT JOIN T_DICTIONARYITEMBASE dib ON dib.ID = t.Evfolyam
LEFT JOIN #TanulokOsszes ossz ON ossz.Kategoria = k.KategoriaNev
) x
PIVOT (
MIN(TanuloNev)
FOR Evfolyam IN (' + @cols + ')
) p
SELECT
KategoriaNev as Leiras
,'+@cols+'
,Osszes as Összesen
,OsszesLany as Lány
FROM #RetTable
ORDER BY Sorrend,rn'
EXEC sp_executesql @query
END
GO

View file

@ -0,0 +1,72 @@
DROP PROCEDURE IF EXISTS dbo.sp_FizikaiTorlesOrarendek
GO
-- =============================================
-- Description: <Fizikailag töröljük az intézmény adott tanévére az órarendeket>
-- =============================================
CREATE PROCEDURE [dbo].[sp_FizikaiTorlesOrarendek]
@pIntezmenyId INT
,@pTanevId INT
,@pUserId INT
AS
BEGIN
SET NOCOUNT ON;
UPDATE T_TANITASIORA_OSSZES SET
C_ORARENDIORAID = NULL
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM T_TANITASIORA_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_ORARENDIORAID IS NOT NULL
UPDATE T_HAZIFELADATOK_OSSZES SET
TOROLT = 'T'
,C_ORARENDIORAID = NULL
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM T_HAZIFELADATOK_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
DELETE FROM
T_HELYETTESITESIIDOSZAK_OSSZES
WHERE
C_HELYETTESITETTORARENDID IN (
SELECT ID
FROM
T_ORARENDIORA_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
)
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
DELETE o
FROM T_ORAREND_OSSZES o
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = o.C_ORARENDIORAID AND oo.C_TANEVID = o.C_TANEVID
WHERE o.C_TANEVID = @pTanevId
CREATE TABLE #TempFajlIDs (ID int)
DELETE fajlorarend
OUTPUT DELETED.C_FELTOLTOTTFAJLID INTO #TempFajlIDs
FROM T_FELTOLTOTTFAJL_ORARENDIORA fajlorarend
INNER JOIN T_FELTOLTOTTFAJL fajl ON fajl.ID = fajlorarend.C_FELTOLTOTTFAJLID
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
DELETE fajl FROM T_FELTOLTOTTFAJL fajl
INNER JOIN #TempFajlIDs ids ON ids.ID = fajl.ID
DELETE FROM
T_ORARENDIORA_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
END
GO

View file

@ -0,0 +1,49 @@
DROP PROCEDURE IF EXISTS dbo.sp_FizikaiTorlesTantargyfelosztas
GO
-- =============================================
-- Description: <Fizikailag töröljük az intézmény adott tanévére a tantárgyfelosztást>
-- =============================================
CREATE PROCEDURE [dbo].[sp_FizikaiTorlesTantargyfelosztas]
@pIntezmenyId INT
,@pTanevId INT
,@pUserId INT
AS
BEGIN
SET NOCOUNT ON;
UPDATE T_ORARENDIORA_OSSZES SET
C_FOGLALKOZASID = NULL
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM T_ORARENDIORA_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_FOGLALKOZASID IS NOT NULL
UPDATE T_TANITASIORA_OSSZES SET
C_FOGLALKOZASID = NULL
,SERIAL += 1
,LASTCHANGED = GETDATE()
,MODIFIER = @pUserId
FROM T_TANITASIORA_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND C_FOGLALKOZASID IS NOT NULL
DELETE fat
FROM T_FOGLALKOZASAMITANULO_OSSZES fat
INNER JOIN T_FOGLALKOZAS_OSSZES f ON fat.C_FOGLALKOZASID = f.ID AND f.C_TANEVID = fat.C_TANEVID
WHERE fat.C_TANEVID = @pTanevId
DELETE FROM
T_FOGLALKOZAS_OSSZES
WHERE C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId;
END
GO

View file

@ -0,0 +1,90 @@
DROP PROCEDURE IF EXISTS sp_FoglalkozasArchiv
GO
CREATE PROCEDURE sp_FoglalkozasArchiv
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO T_FOGLALKOZASARCHIV (
[C_ALKALMAZOTTID] -- INT NULL,
,[C_ELFOGADASDATUMA] -- DATETIME NULL,
,[C_FELADATELLATASIHELYID] -- INT NULL,
,[C_FELADATELLATASIHELYNEVE] -- NVARCHAR (255) NULL,
,[C_ORASZAM] -- NUMERIC (10, 2) NULL,
,[C_OSZTALYCSOPORTID] -- INT NULL,
,[C_OSZTALYCSOPORTNEVE] -- NVARCHAR (255) NULL,
,[C_TANARKOTELEZOORASZAMA] -- NUMERIC (10, 2) NULL,
,[C_TANARMUNKAIDOKEDVEZMENYE] -- INT NULL,
,[C_TANARMUNKAIDOKEDVEZMENYOKA] -- NVARCHAR (255) NULL,
,[C_TANARMUNKAIDOKEDVEZMENYOKAID]-- INT NULL,
,[C_TANARMUNKAKORE] -- NVARCHAR (255) NULL,
,[C_TANARMUNKAKOREID] -- INT NULL,
,[C_TANARNEVE] -- NVARCHAR (255) NULL,
,[C_TANARPEDAGOGIAIKEPESITESE] -- NVARCHAR (255) NULL,
,[C_TANARPEDAGOGIAIKEPESITESEID]-- INT NULL,
,[C_TANEVNEVE] -- NVARCHAR (255) NULL,
,[C_TANTARGYID] -- INT NULL,
,[C_TANTARGYNEVE] -- NVARCHAR (255) NULL,
,[C_INTEZMENYID] -- INT NOT NULL,
,[C_TANEVID] -- INT NOT NULL,
,[TOROLT] -- CHAR (1) NULL,
,[SERIAL] -- INT NULL,
,[LASTCHANGED] -- DATETIME NULL,
,[CREATED] -- DATETIME NULL,
,[MODIFIER] -- INT NULL,
,[CREATOR] -- INT NULL,
) SELECT
u.ID AS [C_ALKALMAZOTTID] -- INT NULL,
,GETDATE() AS [C_ELFOGADASDATUMA] -- DATETIME NULL,
,fh.ID AS [C_FELADATELLATASIHELYID] -- INT NULL,
,'' AS [C_FELADATELLATASIHELYNEVE] -- NVARCHAR (255) NULL,
,f.C_ORASZAM AS [C_ORASZAM] -- NUMERIC (10, 2) NULL,
,ocs.ID AS [C_OSZTALYCSOPORTID] -- INT NULL,
,ocs.C_NEV AS [C_OSZTALYCSOPORTNEVE] -- NVARCHAR (255) NULL,
,m.C_KOTELEZOORASZAM AS [C_TANARKOTELEZOORASZAMA] -- NUMERIC (10, 2) NULL,
,m.C_MUNKAIDOKEDVEZMENYORASZAM AS [C_TANARMUNKAIDOKEDVEZMENYE] -- INT NULL,
,mk.C_NAME AS [C_TANARMUNKAIDOKEDVEZMENYOKA] -- NVARCHAR (255) NULL,
,m.C_MUNKAIDOKEDVEZMENYOKA AS [C_TANARMUNKAIDOKEDVEZMENYOKAID]-- INT NULL,
,k.C_NAME AS [C_TANARMUNKAKORE] -- NVARCHAR (255) NULL,
,m.C_MUNKAKORTIPUSA AS [C_TANARMUNKAKOREID] -- INT NULL,
,u.C_NYOMTATASINEV AS [C_TANARNEVE] -- NVARCHAR (255) NULL,
,kp.C_NAME AS [C_TANARPEDAGOGIAIKEPESITESE] -- NVARCHAR (255) NULL,
,m.C_BESOROLASIFOKOZAT AS [C_TANARPEDAGOGIAIKEPESITESEID]-- INT NULL,
,te.C_NEV AS [C_TANEVNEVE] -- NVARCHAR (255) NULL,
,t.ID AS [C_TANTARGYID] -- INT NULL,
,t.C_NEV AS [C_TANTARGYNEVE] -- NVARCHAR (255) NULL,
,f.C_INTEZMENYID AS [C_INTEZMENYID] -- INT NOT NULL,
,f.C_TANEVID AS [C_TANEVID] -- INT NOT NULL,
,'F' AS [TOROLT] -- CHAR (1) NULL,
,0 AS [SERIAL] -- INT NULL,
,NULL AS [LASTCHANGED] -- DATETIME NULL,
,GETDATE() AS [CREATED] -- DATETIME NULL,
,NULL AS [MODIFIER] -- INT NULL,
,NULL AS [CREATOR] -- INT NULL,
-- select count(1)
FROM T_FOGLALKOZAS f
INNER JOIN T_FELHASZNALO u ON u.ID = f.C_TANARID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = f.C_OSZTALYCSOPORTID and ocs.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
INNER JOIN T_ALKALMAZOTT a ON a.ID = u.ID
INNER JOIN T_MUNKAUGYIADATOK m ON m.C_ALKALMAZOTTID = a.ID
INNER JOIN T_TANTARGY t ON f.C_TANTARGYID = t.ID
INNER JOIN T_TANEV te ON te.ID = f.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE mk ON mk.ID = m.C_MUNKAIDOKEDVEZMENYOKA AND mk.C_TANEVID = f.C_TANEVID AND mk.C_INTEZMENYID = f.C_INTEZMENYID
LEFT JOIN T_DICTIONARYITEMBASE k ON k.ID = m.C_MUNKAKORTIPUSA AND k.C_TANEVID = f.C_TANEVID AND k.C_INTEZMENYID = f.C_INTEZMENYID
LEFT JOIN T_DICTIONARYITEMBASE kp ON kp.ID = m.C_BESOROLASIFOKOZAT AND kp.C_TANEVID = f.C_TANEVID AND kp.C_INTEZMENYID = f.C_INTEZMENYID
INNER JOIN T_FELADATELLATASIHELY fh ON fh.ID = m.C_FELADATELLATASIHELYID
WHERE f.TOROLT = 'F'
/*AND f.C_INTEZMENYID IN (
SELECT DISTINCT e.C_INTEZMENYID FROM T_ENTITYHISTORY e
INNER JOIN T_ENTITYATTRIBUTEHISTORY a ON a.C_ENTITYHISTORYID = e.ID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS i ON i.C_INTEZMENYID = e.C_INTEZMENYID
WHERE e.C_ENTITYNAME IN ('T_INTEZMENYADATSZOLGALTATAS', 'INTEZMENYADATSZOLGALTATAS')
AND a.C_PROPERTYNAME = 'C_VEGLEGESTTF'
AND a.C_CURRENTVALUE = 'T'
AND i.C_VEGLEGESTTF = 'T'
)*/
AND f.C_INTEZMENYID = @intezmenyId AND f.C_TANEVID = @tanevId
END
GO

View file

@ -0,0 +1,90 @@
-- ==========================================================================================
-- Author: Telek Ákos
-- Create date: 2016.06.08.
-- Description: Naptári hetek generálása TANEVRENDJE alapján
-- ==========================================================================================
DROP PROCEDURE IF EXISTS sp_GenerateNaptariHetek
GO
CREATE PROCEDURE sp_GenerateNaptariHetek
@intezmenyId int
,@tanevId int
,@ABHet bit = 1
,@hetiRendTipusTypeId int = 49
AS
BEGIN
SET NOCOUNT ON;
SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday).
DECLARE @startDate datetime,
@endDate datetime,
@cnt int;
DELETE FROM T_NAPTARIHET_OSSZES
WHERE C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @tanevId
/* megnézzük, hány nem 1554-es hetirend van */
SELECT @cnt = COUNT(1)
FROM T_HETIRENDTIPUS_OSSZES
WHERE ID <> 1554 AND C_ALTANEVID = @tanevId
AND TOROLT='F'
SELECT @endDate = C_UTOLSONAP, @startDate = C_KEZDONAP
FROM T_TANEV_OSSZES
WHERE ID = @tanevId
AND TOROLT='F';
/* CTE a napok legenerálásához */
;WITH ctedaterange AS (
SELECT [Dates] = @startDate, week = 1
UNION ALL
SELECT [dates] + 1, week + IIF(DATEPART(dw, dates + 1) = 1, 1, 0)
FROM ctedaterange
WHERE [dates] + 1 <= @endDate
)
/* Maga az inzert */
INSERT INTO T_NAPTARIHET_OSSZES (
C_HETIREND
,C_HETKEZDONAPJA
,C_HETSORSZAMA
,C_HETUTOLSONAPJA
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT
IIF(@ABHet=1,ISNULL(x.ID, 1554),1554) AS C_HETIREND -- C_HETIREND - int
,mindate AS C_HETKEZDONAPJA -- C_HETKEZDONAPJA - datetime
,week AS C_HETSORSZAMA -- C_HETSORSZAMA - int
,maxdate AS C_HETUTOLSONAPJA -- C_HETUTOLSONAPJA - datetime
,@intezmenyId AS C_INTEZMENYID -- C_INTEZMENYID - int
,@tanevId AS C_TANEVID -- C_TANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,NULL AS CREATOR -- CREATOR - int
FROM (
SELECT
MIN(dates) AS mindate -- C_HETKEZDONAPJA - datetime
,week AS week -- C_HETSORSZAMA - int
,MAX(dates) AS maxdate -- C_HETUTOLSONAPJA - datetime
FROM ctedaterange
GROUP BY week
) c
LEFT JOIN (
SELECT ROW_NUMBER() OVER (ORDER BY C_VALUE) AS RN, ID
FROM T_DICTIONARYITEMBASE_OSSZES d
WHERE d.C_DICTIONARYTYPEID = @hetiRendTipusTypeId AND ID <> 1554
AND C_INTEZMENYID = @intezmenyId AND C_TANEVID = @tanevId AND TOROLT='F'
) x ON x.RN % NULLIF(@cnt, 0) = c.week % NULLIF(@cnt, 0)
OPTION (maxrecursion 0)
END
GO

View file

@ -0,0 +1,227 @@
-- ==========================================================================================
-- Author: Telek Ákos
-- Create date: 2016.05.31.
-- Description: Ha az adott tanévhez nincs egy naptári nap sem, akkor létrehoz egy alapot.
-- Ha van, akkor update-el a tanév rendje alapján.
-- ==========================================================================================
DROP PROCEDURE IF EXISTS [sp_GenerateNaptariNapok]
GO
CREATE PROCEDURE [sp_GenerateNaptariNapok]
@intezmenyId int
,@tanevId int
,@overrideDefault bit = 0 -- felülírja-e az alapadatokat is?
,@hetNapjaTipusTypeId int = 40
AS
BEGIN
SET NOCOUNT ON;
SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday).
DECLARE
@startDate datetime
,@endDate datetime
,@firstDay datetime
,@lastDay datetime
,@hetvegiTanitas int;
-- Adott @tanevId alapján kezdő és végdátum lekérdezése
SELECT
@startDate = t.C_KEZDONAP
,@endDate = t.C_UTOLSONAP
,@firstDay = t.C_ELSOTANITASINAP
,@lastDay = t.C_UTOLSOTANITASINAP
FROM T_TANEV t
WHERE t.ID = @tanevId
SET @hetvegiTanitas = dbo.fnGetRendszerbeallitasEnumBool(7683, @intezmenyId, (SELECT ID FROM T_TANEV WHERE C_INTEZMENYID = @intezmenyId AND C_AKTIV = 'T' AND TOROLT = 'F'))
-- 1 - H-P
-- 2 - H-Szo
-- 3 - H-V
IF (SELECT COUNT(1) FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevId) = 0 BEGIN
-- a két dátum közötti napok kigenerálása
;WITH ctedaterange AS (
SELECT [Dates] = @startDate, week = 1
UNION ALL
SELECT [dates] + 1, week + IIF(DATEPART(dw, dates + 1) = 1, 1, 0)
FROM ctedaterange
WHERE [dates] + 1 <= @endDate
)
INSERT INTO T_NAPTARINAP (
C_HETIREND
,C_HETNAPJA
,C_HETSORSZAMA
,C_NAPDATUMA
,C_NAPTIPUSA
,C_ORARENDINAP
,C_ALAPHETIREND
,C_ALAPHETNAPJA
,C_ALAPNAPTIPUSA
,C_ALAPORARENDINAP
,C_ALAPCSENGETESIRENDID
,C_AKTIVCSENGETESIRENDID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
) SELECT
ISNULL(h.C_HETIREND, 1554) AS C_HETIREND -- C_HETIREND - int
,hn.ID AS C_HETNAPJA -- C_HETNAPJA - int
,h.C_HETSORSZAMA AS C_HETSORSZAMA -- C_HETSORSZAMA - int
,s.dates AS C_NAPDATUMA -- C_NAPDATUMA - datetime
,CASE
WHEN DATEPART(dw, s.dates) = 6 AND @hetvegiTanitas IN (2, 3)
THEN 1386 -- 'Munkaszüneti nap'
WHEN DATEPART(dw, s.dates) = 7 AND @hetvegiTanitas = 3
THEN 1386 -- 'Munkaszüneti nap'
ELSE 1385 -- 'Tanítási nap'
END AS C_NAPTIPUSA -- C_NAPTIPUSA - int
,CASE
WHEN DATEPART(dw, s.dates) = 6 AND @hetvegiTanitas IN (2, 3)
THEN 'F' -- 'Munkaszüneti nap'
WHEN DATEPART(dw, s.dates) = 7 AND @hetvegiTanitas = 3
THEN 'F' -- 'Munkaszüneti nap'
ELSE 'T' -- 'Tanítási nap'
END AS C_ORARENDINAP -- C_ORARENDINAP - char(1)
,ISNULL(h.C_HETIREND, 1554) AS C_ALAPHETIREND -- C_ALAPHETIREND - int
,hn.ID AS C_ALAPHETNAPJA -- C_ALAPHETNAPJA - int
,CASE
WHEN DATEPART(dw, s.dates) = 6 AND @hetvegiTanitas IN (2, 3)
THEN 1386 -- 'Munkaszüneti nap'
WHEN DATEPART(dw, s.dates) = 7 AND @hetvegiTanitas = 3
THEN 1386 -- 'Munkaszüneti nap'
ELSE 1385 -- 'Tanítási nap'
END AS C_ALAPNAPTIPUSA -- C_ALAPNAPTIPUSA - int
,CASE
WHEN DATEPART(dw, s.dates) = 6 AND @hetvegiTanitas IN (2, 3)
THEN 'F' -- 'Munkaszüneti nap'
WHEN DATEPART(dw, s.dates) = 7 AND @hetvegiTanitas = 3
THEN 'F' -- 'Munkaszüneti nap'
ELSE 'T' -- 'Tanítási nap'
END AS C_ALAPORARENDINAP -- C_ALAPORARENDINAP - char(1)
,NULL AS C_ALAPCSENGETESIRENDID -- C_ALAPCSENGETESIRENDID - int
,NULL AS C_AKTIVCSENGETESIRENDID -- C_AKTIVCSENGETESIRENDID - int
,@intezmenyId AS C_INTEZMENYID -- C_INTEZMENYID - int
,@tanevId AS C_TANEVID -- C_TANEVID - int
,'F' AS TOROLT -- TOROLT - char(1)
,0 AS SERIAL -- SERIAL - int
,GETDATE() AS LASTCHANGED -- LASTCHANGED - datetime
,GETDATE() AS CREATED -- CREATED - datetime
,NULL AS MODIFIER -- MODIFIER - int
,NULL AS CREATOR -- CREATOR - int
FROM ctedaterange s
LEFT JOIN T_TANEVRENDJE_OSSZES t ON s.dates = t.C_DATUM AND t.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hn ON hn.C_VALUE = DATEPART(dw, s.dates) AND hn.C_DICTIONARYTYPEID = @hetNapjaTipusTypeId AND hn.C_TANEVID = @tanevId
LEFT JOIN T_NAPTARIHET_OSSZES h ON s.dates BETWEEN h.C_HETKEZDONAPJA AND h.C_HETUTOLSONAPJA AND h.C_TANEVID = @tanevId
ORDER BY s.dates
OPTION (maxrecursion 0) -- hogy ne legyen korlátozva a regurzitás mélysége a CTE-ben /* default 100 */
END
ELSE BEGIN
SELECT @firstDay = ro.C_DATUM
FROM T_TANEVRENDJE_OSSZES ro
WHERE ro.C_TANEVID = @tanevId
AND ro.C_NAPTIPUSA = 1394
SELECT @lastDay = ro.C_DATUM
FROM T_TANEVRENDJE_OSSZES ro
WHERE ro.C_TANEVID = @tanevId
AND ro.C_NAPTIPUSA = 1395
SELECT
@firstDay = ISNULL(@firstDay, C_KEZDONAP)
,@lastDay = ISNULL(@lastDay, C_UTOLSONAP)
FROM T_TANEV_OSSZES
WHERE ID = @tanevId
IF @overrideDefault = 1 BEGIN
UPDATE T_NAPTARINAP_OSSZES SET -- Nyári szünet UPDATE-je
C_NAPTIPUSA = IIF(DATEPART(dw, C_NAPDATUMA) BETWEEN 1 AND 5, 1392, C_NAPTIPUSA)
,C_ALAPNAPTIPUSA = IIF(DATEPART(dw, C_NAPDATUMA) BETWEEN 1 AND 5, 1392, C_ALAPNAPTIPUSA)
,C_ORARENDINAP = 'F'
,C_ALAPORARENDINAP = 'F'
WHERE (C_NAPDATUMA < @firstDay OR C_NAPDATUMA > @lastDay)
AND C_TANEVID = @tanevId
END
IF @hetvegiTanitas = 1 BEGIN -- H - P
UPDATE nn SET
nn.C_ALAPORARENDINAP = 'F'
,nn.C_ORARENDINAP = IIF(tr.ID IS NULL, 'F', nn.C_ORARENDINAP)
,nn.C_NAPTIPUSA = IIF(tr.ID IS NULL, 1386, nn.C_NAPTIPUSA)
,nn.C_ALAPNAPTIPUSA = 1386
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND tr.TOROLT = 'F' AND nn.C_TANEVID = tr.C_TANEVID
WHERE DATEPART(dw, nn.C_NAPDATUMA) IN (6, 7)
AND nn.C_TANEVID = @tanevId
END
IF @hetvegiTanitas = 2 BEGIN -- H - Szo
UPDATE nn SET
nn.C_ALAPORARENDINAP = 'T'
,nn.C_ORARENDINAP = IIF(tr.ID IS NULL, 'T', nn.C_ORARENDINAP)
,nn.C_NAPTIPUSA = IIF(tr.ID IS NULL, 1385, nn.C_NAPTIPUSA)
,nn.C_ALAPNAPTIPUSA = 1385
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND tr.TOROLT = 'F' AND nn.C_TANEVID = tr.C_TANEVID
WHERE DATEPART(dw, nn.C_NAPDATUMA) = 6
AND nn.C_TANEVID = @tanevId
UPDATE nn SET
nn.C_ALAPORARENDINAP = 'F'
,nn.C_ORARENDINAP = IIF(tr.ID IS NULL, 'F', nn.C_ORARENDINAP)
,nn.C_NAPTIPUSA = IIF(tr.ID IS NULL, 1386, nn.C_NAPTIPUSA)
,nn.C_ALAPNAPTIPUSA = 1386
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND tr.TOROLT = 'F' AND nn.C_TANEVID = tr.C_TANEVID
WHERE DATEPART(dw, nn.C_NAPDATUMA) = 7
AND nn.C_TANEVID = @tanevId
END
IF @hetvegiTanitas = 3 BEGIN -- H - V
UPDATE nn SET
nn.C_ALAPORARENDINAP = 'T'
,nn.C_ORARENDINAP = IIF(tr.ID IS NULL, 'T', nn.C_ORARENDINAP)
,nn.C_NAPTIPUSA = IIF(tr.ID IS NULL, 1385, nn.C_NAPTIPUSA)
,nn.C_ALAPNAPTIPUSA = 1385
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND tr.TOROLT = 'F' AND nn.C_TANEVID = tr.C_TANEVID
WHERE DATEPART(dw, nn.C_NAPDATUMA) IN (6, 7)
AND nn.C_TANEVID = @tanevId
END
UPDATE n SET
n.C_HETIREND = IIF(x.TOROLT = 'F', ISNULL(x.C_HETIREND, ISNULL(h.C_HETIREND,n.C_ALAPHETIREND)), ISNULL(h.C_HETIREND,n.C_ALAPHETIREND))
,n.C_HETNAPJA = IIF(x.TOROLT = 'F', ISNULL(x.C_HETNAPJA, n.C_HETNAPJA), n.C_ALAPHETNAPJA)
,n.C_NAPTIPUSA = IIF(x.TOROLT = 'F', ISNULL(x.C_NAPTIPUSA, n.C_NAPTIPUSA), n.C_ALAPNAPTIPUSA)
,n.C_ORARENDINAP = IIF(x.TOROLT = 'F', ISNULL(x.C_ORARENDINAP, n.C_ORARENDINAP), n.C_ALAPORARENDINAP)
,n.C_AKTIVCSENGETESIRENDID = IIF(x.TOROLT = 'F', ISNULL(x.C_CSENGETESIRENDID, n.C_AKTIVCSENGETESIRENDID), n.C_ALAPCSENGETESIRENDID)
,n.C_ALAPHETIREND = IIF(@overrideDefault = 0 OR x.TOROLT = 'T', n.C_ALAPHETIREND, h.C_HETIREND)
,n.C_ALAPHETNAPJA = IIF(@overrideDefault = 0 OR x.TOROLT = 'T', n.C_ALAPHETNAPJA, ISNULL(x.C_HETNAPJA, n.C_ALAPHETNAPJA))
,n.C_ALAPNAPTIPUSA = IIF(@overrideDefault = 0 OR x.TOROLT = 'T', n.C_ALAPNAPTIPUSA, ISNULL(x.C_NAPTIPUSA, n.C_ALAPNAPTIPUSA))
,n.C_ALAPORARENDINAP = IIF(@overrideDefault = 0 OR x.TOROLT = 'T', n.C_ALAPORARENDINAP, ISNULL(x.C_ORARENDINAP, n.C_ALAPORARENDINAP))
,n.C_ALAPCSENGETESIRENDID = IIF(@overrideDefault = 0 OR x.TOROLT = 'T', n.C_ALAPCSENGETESIRENDID, ISNULL(x.C_CSENGETESIRENDID, n.C_ALAPCSENGETESIRENDID))
FROM T_NAPTARINAP_OSSZES n
INNER JOIN T_NAPTARIHET_OSSZES h ON n.C_NAPDATUMA BETWEEN h.C_HETKEZDONAPJA AND h.C_HETUTOLSONAPJA
LEFT JOIN (
SELECT ro.C_DATUM, ro.TOROLT, ro.C_HETNAPJA, ro.C_NAPTIPUSA, ro.C_ORARENDINAP, ro.C_CSENGETESIRENDID ,ro.C_HETIREND
FROM T_TANEVRENDJE_OSSZES ro
WHERE ro.C_TANEVID = @tanevId
AND ro.TOROLT = 'F'
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE o WHERE o.C_TANEVRENDJEID = ro.ID)
UNION ALL
SELECT DISTINCT ro.C_DATUM, ro.TOROLT, NULL, NULL, NULL, NULL,NULL
FROM T_TANEVRENDJE_OSSZES ro
WHERE ro.C_TANEVID = @tanevId
AND ro.TOROLT = 'T'
AND NOT EXISTS (SELECT 1 FROM T_TANEVRENDJE_OSSZES r WHERE ro.C_DATUM = r.C_DATUM AND C_TANEVID = @tanevId AND TOROLT = 'F')
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE o WHERE o.C_TANEVRENDJEID = ro.ID)
) x ON x.C_DATUM = n.C_NAPDATUMA
WHERE n.C_TANEVID = @tanevId AND h.C_TANEVID = @tanevId
END
END
GO

View file

@ -0,0 +1,71 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetAdminDashboardNaplo]
GO
CREATE PROCEDURE [dbo].[sp_GetAdminDashboardNaplo]
@pTanevId INT
,@pTanarAlkalmazottMunkakor int = 8384
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #AKTIV_ALKALMAZOTT (ID int,INDEX IX1 CLUSTERED(ID));
INSERT INTO #AKTIV_ALKALMAZOTT (ID)
SELECT f.ID
FROM T_FELHASZNALO_OSSZES f
INNER JOIN T_MUNKAUGYIADATOK_OSSZES munkaugyiadat ON munkaugyiadat.C_ALKALMAZOTTID = f.ID AND munkaugyiadat.C_TARTOSHELYETTESITES = 'F' AND ISNULL(munkaugyiadat.C_ALKALMAZASKEZDETE,getdate()) <= getdate() AND ISNULL(munkaugyiadat.C_ALKALMAZASMEGSZUNESE,getdate()) >= getdate() AND munkaugyiadat.TOROLT = 'F'
INNER JOIN T_MUNKAKORTIPUS_OSSZES mkt ON mkt.ID = munkaugyiadat.C_MUNKAKORTIPUSA AND mkt.C_ALTANEVID = munkaugyiadat.C_TANEVID AND mkt.TOROLT = 'F'
WHERE
f.C_TANEVID = @pTanevId
AND f.TOROLT = 'F'
AND mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = @pTanarAlkalmazottMunkakor
SELECT
ia.C_NEV AS IntezmenyNev
,i.C_AZONOSITO AS IntezmenyAzonosito
,i.C_ALTERNATIVAZONOSITO AS IntezmenyAlternativAzonosito
,tv.C_NEV AS TanevNev
,(SELECT IIF(LEFT(REPLACE(JSON_VALUE(C_ERTEK, '$.Date'),'-',''), 8) > GETDATE(), 1, 0)
FROM T_RENDSZERBEALLITAS_OSSZES rb
WHERE C_BEALLITASTIPUS = 3082
AND rb.C_TANEVID = @pTanevId
AND rb.TOROLT = 'F'
) AS ZarasiGond
,(SELECT COUNT(1)
FROM T_ALKALMAZOTT adat
INNER JOIN #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
WHERE NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES fb WHERE adat.ID = fb.C_FELHASZNALOID AND fb.TOROLT = 'F')
AND adat.C_ALTANEVID = @pTanevId
AND adat.TOROLT = 'F'
) AS NincsBelepesAlkalmazott
,(SELECT COUNT(1)
FROM T_TANULO adat
WHERE NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES fb WHERE adat.ID = fb.C_FELHASZNALOID AND fb.TOROLT = 'F' AND fb.C_GONDVISELOID IS NULL)
AND adat.C_ALTANEVID = @pTanevId
AND adat.TOROLT = 'F'
) AS NincsBelepesTanulo
,(SELECT COUNT(1)
FROM T_GONDVISELO adat
WHERE NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES fb WHERE adat.ID = fb.C_GONDVISELOID AND fb.TOROLT = 'F')
AND adat.C_TANEVID = @pTanevId
AND adat.TOROLT = 'F'
) AS NincsBelepesGondviselo
,(SELECT COUNT(1)
FROM T_ALKALMAZOTT_OSSZES adat
INNER JOIN #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_FELHASZNALOID = adat.ID AND fb.TOROLT = 'F'
WHERE adat.TOROLT = 'F'
AND (fb.C_UTOLSOBELEPES <= DATEADD(DAY,-28,GETDATE()) OR fb.C_UTOLSOBELEPES IS NULL)
) AS NemLepettBeHonapAlkalmazott
,(SELECT COUNT(1)
FROM T_ALKALMAZOTT_OSSZES adat
INNER JOIN #AKTIV_ALKALMAZOTT aa ON aa.ID = adat.ID
LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_FELHASZNALOID = adat.ID AND fb.TOROLT = 'F'
WHERE adat.TOROLT = 'F'
AND (fb.C_UTOLSOBELEPES <= DATEADD(DAY,-14,GETDATE()) OR fb.C_UTOLSOBELEPES IS NULL)
) AS NemLepettBeKetHetAlkalmazott
FROM T_TANEV_OSSZES tv
INNER JOIN T_INTEZMENY_OSSZES i ON i.ID = tv.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID = tv.C_INTEZMENYID AND ia.C_TANEVID = tv.ID AND ia.TOROLT = 'F'
WHERE tv.TOROLT = 'F' AND tv.ID = @pTanevId
END
GO

View file

@ -0,0 +1,58 @@
-- =============================================
-- Description: <Osztályok/csoportok és egyéb osztályok/csoportok>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetAllOsztalyCsoport]
GO
CREATE PROCEDURE [dbo].[sp_GetAllOsztalyCsoport]
@pFeladatKategoriaId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END AS NumberOrder
,CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END AS NumberAndTextOrder
,osztalyCsoport.ID AS ID
,osztalyCsoport.C_NEV AS Nev
,'1' AS Tipus
,NULL AS CsoportTipusa
,osztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
,0 AS OsztalyCsoportOrder
,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
FROM
T_OSZTALY osztaly
INNER JOIN T_OSZTALYCSOPORT osztalyCsoport
ON osztaly.ID = osztalyCsoport.ID AND (osztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely
ON osztalyCsoport.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
WHERE
osztalyCsoport.TOROLT = 'F'
UNION ALL
SELECT
CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END AS NumberOrder
,CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END AS NumberAndTextOrder
,osztalyCsoport.ID AS ID
,osztalyCsoport.C_NEV AS Nev
,'1' AS Tipus
,csoport.C_TIPUSA AS CsoportTipusa
,osztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
,1 AS OsztalyCsoportOrder
,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
FROM
T_CSOPORT csoport
INNER JOIN T_OSZTALYCSOPORT osztalyCsoport
ON csoport.ID = osztalyCsoport.ID AND (osztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely
ON osztalyCsoport.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
WHERE
osztalyCsoport.TOROLT = 'F'
ORDER BY
OsztalyCsoportOrder, NumberOrder ASC, NumberAndTextOrder ASC, osztalyCsoport.C_NEV ASC
END
GO

View file

@ -0,0 +1,112 @@
DROP PROCEDURE IF EXISTS sp_GetDokumentumHelyettesitesekByDateInterval
GO
CREATE PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval
@tanevId INT
,@intezmenyId INT
,@helyettesitesListaFormatumId INT = 0 --0 helyettesitett, 1 helyettesito
,@idoszakKezdete DATE
,@idoszakVege DATE
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #OrarendAdatok (
Datum datetime
,HetNapja int
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,Megtartott char(1)
,OsztalyNev nvarchar(255)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,HelyettesitesId int
,TanarID int
,TantargyId int
)
INSERT INTO #OrarendAdatok (
Datum
,HetNapja
,OraKezdete
,OraVege
,Oraszam
,Megtartott
,OsztalyNev
,TanarNev
,TeremNev
,OraTipus
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,TantargyId
)
EXEC
dbo.sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = NULL
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = NULL
,@pOszlopok = 'Datum,HetNapja,OraKezdete,OraVege,Oraszam,Megtartott,OsztalyNev,TanarNev,TeremNev,OraTipus,HelyettesitoTanarID,HelyettesitoTanarNev,HelyettesitesId,TanarID,TantargyId'
SELECT
hely.HelyettesitoTanarID AS HelyettesitoId
,hely.TanarID AS HelyettesitettId
,dbo.fnGetDokumentumDatumFormatum(hely.Datum) AS HetNapja
,HetNapja.C_NAME AS HetNapjaMegnevezes
,IIF(hely.Oraszam IS NOT NULL,CONVERT(NVARCHAR(5), hely.Oraszam) + '.',
CONCAT(CONVERT(NVARCHAR(5), hely.OraKezdete, 108), '-', CONVERT(NVARCHAR(5), hely.OraVege, 108))) AS Oraszam
,IIF(hely.OraTipus = 'TanitasiOra' AND hely.Megtartott = 'F', 'Elmaradt óra', hely.HelyettesitoTanarNev) AS HelyettesitoNeve
,hely.TanarNev AS HelyettesitettNeve
,hely.OsztalyNev AS OsztalyCsoportNev
,tantargy.C_NEV AS TantargyNev
,hely.TeremNev AS TeremNev
,HelyettesitesTipusa.C_NAME AS HelyettesitesTipusa
,helyettesito.C_OKTATASIAZONOSITO AS HelyettesitoOktatasiAzon
,helyettesitesett.C_OKTATASIAZONOSITO AS HelyettesitettOktatasiAzon
,Rendez = CASE ISNUMERIC(hely.Oraszam)
WHEN 1 THEN CAST(hely.Oraszam AS INT)
ELSE 999999999999999 END
INTO #adatok
FROM
#OrarendAdatok hely
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = hely.TantargyId AND tantargy.TOROLT = 'F'
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hi ON hi.ID = hely.HelyettesitesId and hi.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = hely.HelyettesitoTanarID AND helyettesito.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesitesett ON helyettesitesett.ID = hely.TanarID AND helyettesitesett.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HelyettesitesTipusa ON HelyettesitesTipusa.ID = hi.C_HELYETTESITESTIPUS AND HelyettesitesTipusa.C_TANEVID = @TanevId AND HelyettesitesTipusa.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HetNapja ON HetNapja.ID = hely.HetNapja AND HetNapja.C_TANEVID = @TanevId AND HetNapja.TOROLT = 'F'
WHERE (hely.OraTipus = 'TanitasiOra' AND (hely.HelyettesitoTanarID IS NOT NULL OR hely.Megtartott = 'F'))
OR (hely.OraTipus = 'OrarendiOra' AND hely.HelyettesitoTanarID IS NOT NULL)
ORDER BY hely.HetNapja, hely.Oraszam
SELECT DISTINCT HetNapja, HetNapjaMegnevezes FROM #adatok
IF @helyettesitesListaFormatumId = 0
BEGIN
SELECT DISTINCT HelyettesitettId PedagogusId, HelyettesitettNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitettNeve
SELECT * FROM #adatok
ORDER BY HetNapja, Rendez, Oraszam
END
ELSE
BEGIN
SELECT DISTINCT HelyettesitoId PedagogusId, HelyettesitoNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitoNeve
SELECT * FROM #adatok
ORDER BY HetNapja, Rendez, Oraszam
END
END
GO

View file

@ -0,0 +1,334 @@
DROP PROCEDURE IF EXISTS sp_GetDokumentumMulasztasok
GO
-- ===========================================================================
-- Description: Dokumentumokban használt mulasztás összesítő osztály alapján
-- ===========================================================================
CREATE PROCEDURE sp_GetDokumentumMulasztasok
@osztalyId int
,@tanevId int
,@elmeletiOraPercben int = 45
,@gyakorlatiOraPercben int = 45
,@ertekelesTipus int
,@iskolaErdekuSzamit bit
,@isMuveszetOktatasi bit = 0
,@negyedevreSzamoltMulasztasok bit = 1
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #Tanulo (
TanuloId int
,TanuloCsoportId int
,BelepesDatum date
,KilepesDatum date
,PRIMARY KEY (TanuloId, TanuloCsoportId, BelepesDatum)
)
INSERT INTO #Tanulo
SELECT
TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
DECLARE
@IdoszakUtolsoNap int
,@IdoszakElsoNap int
,@IdoszakKezdete date
,@IdoszakVege date
,@KeresztFeleves nvarchar(1)
,@kategoriaId int
,@intezmenyId int
SET @intezmenyId = (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
SELECT
@KeresztFeleves = C_KERESZTFELEVES
,@kategoriaId = C_FELADATKATEGORIAID
FROM T_OSZTALYCSOPORT_OSSZES
WHERE ID = @osztalyId
SET @IdoszakUtolsoNap =
CASE @KeresztFeleves
WHEN 'F' THEN
CASE @ertekelesTipus
WHEN 1519 THEN 1400 --Félévi jegy/értékelés -> Első félév vége
WHEN 1520 THEN 1395 --Év végi jegy/értékelés -> Utolsó tanítási nap
WHEN 1522 THEN 1403 --I. . jegy/értékelés -> I. negyedév vége
WHEN 1524 THEN 1400 --II. . jegy/értékelés -> Első félév vége
WHEN 1523 THEN 1404 --III. . jegy/értékelés -> III. negyedév vége
WHEN 1525 THEN 1395 --IV. . jegy/értékelés -> Utolsó tanítási nap
END
WHEN 'T' THEN
CASE @ertekelesTipus
WHEN 1519 THEN 1395 --Félévi jegy/értékelés -> Utolsó tanítási nap
WHEN 1520 THEN 1400 --Év végi jegy/értékelés -> Első félév vége
WHEN 1522 THEN 1404 --I. . jegy/értékelés -> III. negyedév vége
WHEN 1524 THEN 1395 --II. . jegy/értékelés -> Utolsó tanítási nap
WHEN 1523 THEN 1403 --III. . jegy/értékelés -> I. negyedév vége
WHEN 1525 THEN 1400 --IV. . jegy/értékelés -> Első félév vége
END
END
SET @IdoszakElsoNap =
CASE @KeresztFeleves
WHEN 'F' THEN
CASE @ertekelesTipus
WHEN 1519 THEN 1394 --Félévi jegy/értékelés -> Első tanítási nap
WHEN 1520 THEN 1394 --Év végi jegy/értékelés -> Első tanítási nap
WHEN 1522 THEN 1394 --I. . jegy/értékelés -> Első tanítási nap
WHEN 1524 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1403,1394) --II. . jegy/értékelés -> I. negyedév vége
WHEN 1523 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1400,1394) --III. . jegy/értékelés -> Első félév vége
WHEN 1525 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1404,1394) --IV. . jegy/értékelés -> III. negyedév vége
END
WHEN 'T' THEN
CASE @ertekelesTipus
WHEN 1519 THEN 1400 --Félévi jegy/értékelés -> Első félév vége
WHEN 1520 THEN 1394 --Év végi jegy/értékelés -> Első tanítási nap
WHEN 1522 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1400,1394) --I. . jegy/értékelés -> Első félév vége
WHEN 1524 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1404,1394) --II. . jegy/értékelés -> III. negyedév vége
WHEN 1523 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1394,1394) --III. . jegy/értékelés -> Első tanítási nap
WHEN 1525 THEN IIF(@negyedevreSzamoltMulasztasok = 1, 1403,1394) --IV. . jegy/értékelés -> I. negyedév vége
END
END
CREATE TABLE #SzurtCsoportTipus (
CsoportTipusId int PRIMARY KEY
)
IF @isMuveszetOktatasi = 0 BEGIN
INSERT INTO #SzurtCsoportTipus
SELECT ID
FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)
END
ELSE BEGIN
IF @kategoriaId = 7555 -- AMI-s csoportot kérünk le
BEGIN
INSERT INTO #SzurtCsoportTipus (CsoportTipusId)
SELECT ID
FROM T_CSOPORTTIPUS_OSSZES
WHERE C_ALTANEVID = @tanevId
AND TOROLT = 'F'
AND C_ISMUVESZETI = 'T'
END
ELSE
BEGIN
INSERT INTO #SzurtCsoportTipus (CsoportTipusId)
SELECT C_TIPUSA
FROM T_CSOPORT_OSSZES
WHERE TOROLT = 'F'
AND C_ALTANEVID = @tanevId
AND ID = @osztalyId
END
END
SET @IdoszakKezdete = (SELECT TOP 1 DATEADD(day, IIF((@KeresztFeleves = 'F' AND @ertekelesTipus IN (1519,1520,1522)) OR (@KeresztFeleves = 'T' AND @ertekelesTipus IN (1520,1522,1523)), 0, 1), C_DATUM) FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = @IdoszakElsoNap AND C_TANEVID = @tanevId AND TOROLT='F')
SET @IdoszakVege = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = @IdoszakUtolsoNap AND C_TANEVID = @tanevId AND TOROLT='F')
--IF @IdoszakVege IS NULL BEGIN
--SET @IdoszakVege = (SELECT IIF(GETDATE() > C_UTOLSONAP, C_UTOLSONAP, GETDATE()) FROM T_TANEV WHERE ID = @tanevId)
--END
SELECT
t.TANULOID tanuloid
,t.TanuloCsoportId tanulocsoportid
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0)
+ ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLTHIANYZAS, 0),0)
AS Igazolt
,ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0)
+ ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLATLANHIANYZAS, 0),0)
AS Igazolatlan
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLTHIANYZAS, 0),0)
AS ElmeletIgazolt
,ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLATLANHIANYZAS, 0),0)
AS ElmeletIgazolatlan
,ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
AS GyakorlatiIgazolt
,ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0)
AS GyakorlatiIgazolatlan
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0)
+ ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLTHIANYZAS, 0),0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLATLANHIANYZAS, 0),0)
AS ElmeletOsszes
,ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0)
AS GyakorlatOsszes
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0)
+ ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0)
+ ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLTHIANYZAS, 0),0)
+ IIF(t.BelepesDatum <= @IdoszakVege , ISNULL(ta.C_HOZOTTIGAZOLATLANHIANYZAS, 0),0)
AS Osszes
FROM #Tanulo t
LEFT JOIN (
SELECT
tanuloId
,tanulocsoportid
,[hianyzasIgazoltTanoraiElmeleti]
,[hianyzasIgazoltTanoraiGyakorlati]
,[hianyzasIgazolatlanTanoraiElmeleti]
,[hianyzasIgazolatlanTanoraiGyakorlati]
FROM (
SELECT
x.tanuloId, x.tanulocsoportid
,'Hianyzas' +
CASE isIgazolt WHEN 'T' THEN 'Igazolt' WHEN 'F' THEN 'Igazolatlan' END +
CASE isTanorai WHEN 'T' THEN 'Tanorai' WHEN 'F' THEN 'TanoranKivuli' END +
CASE isGyakorlati WHEN 'T' THEN 'Gyakorlati' WHEN 'F' THEN 'Elmeleti' END
AS piv
,cnt
FROM (
SELECT
mu.C_ORATANULOIID AS tanuloId
,tanulok.TanuloCsoportId
,mu.C_TIPUS mulasztasTipus
,mu.C_IGAZOLT isIgazolt
,IIF((@isMuveszetOktatasi = 0 AND cs.ID IS NULL), 'T', IIF((@isMuveszetOktatasi = 1 AND (csmuv.ID IS NOT NULL OR tcs.C_OSZTALYCSOPORTID = @osztalyid)),'T','F')) AS isTanorai
,IIF(t.C_GYAKORLATI='T', 'T', 'F') as isGyakorlati
,COUNT(1) AS cnt
FROM T_TANULOMULASZTAS_OSSZES mu
INNER JOIN #Tanulo tanulok ON tanulok.TanuloId = mu.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID
INNER JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyID, @tanevId, 0, DEFAULT)) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID
LEFT JOIN (
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_CSOPORTTIPUS_OSSZES cst On cst.ID = cs.C_TIPUSA AND cst.C_ALTANEVID = cs.C_ALTANEVID AND cst.C_ISTANORAICELU = 'F'
WHERE cs.C_ALTANEVID = @tanevId
) cs ON tn.C_OSZTALYCSOPORTID = cs.ID
LEFT JOIN (
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN #SzurtCsoportTipus cst On cst.CsoportTipusId = cs.C_TIPUSA
WHERE cs.C_ALTANEVID = @tanevId
) csmuv ON tn.C_OSZTALYCSOPORTID = csmuv.ID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.Torolt = 'F'
WHERE tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
AND mu.C_TANEVID = @tanevId
AND mu.Torolt ='F'
AND tn.Torolt ='F'
AND mu.C_IGAZOLT IS NOT NULL
AND tn.C_TANEVID = @tanevId
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tn.C_DATUM)
AND tanulok.BelepesDatum <= tn.C_DATUM
AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum >= tn.C_DATUM)
AND mu.C_TIPUS = 1500
AND (
(@isMuveszetOktatasi = 0)
OR
(@isMuveszetOktatasi = 1 AND (csmuv.ID IS NOT NULL OR tcs.C_OSZTALYCSOPORTID = @osztalyid))
)
GROUP BY mu.C_ORATANULOIID, tanulok.TanuloCsoportId, mu.C_TIPUS, mu.C_IGAZOLT, IIF((@isMuveszetOktatasi = 0 AND cs.ID IS NULL), 'T', IIF((@isMuveszetOktatasi = 1 AND (csmuv.ID IS NOT NULL OR tcs.C_OSZTALYCSOPORTID = @osztalyid)),'T','F')), t.C_GYAKORLATI
) x
) p
PIVOT (
MAX(cnt)
FOR piv IN (
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati]
)
) AS pvt
) mu on mu.tanuloId = t.tanuloId and mu.TanuloCsoportId = t.TanuloCsoportId
LEFT JOIN (
SELECT
tanuloId
,tanulocsoportid
,SUM(kesesIgazolandoTanoraiPluszOra) AS kesesIgazolandoTanoraiPluszOra
,SUM(kesesIgazoltTanoraiPluszOra) AS kesesIgazoltTanoraiPluszOra
,SUM(kesesIgazolatlanTanoraiPluszOra) AS kesesIgazolatlanTanoraiPluszOra
,SUM(kesesIgazoltElmeletiOraban) AS kesesIgazoltElmeletiOraban
,SUM(kesesIgazolatlanElmeletiOraban) AS kesesIgazolatlanElmeletiOraban
,SUM(kesesIgazoltGyakorlatiOraban) AS kesesIgazoltGyakorlatiOraban
,SUM(kesesIgazolatlanGyakorlatiOraban) AS kesesIgazolatlanGyakorlatiOraban
FROM (
SELECT
x.tanuloId
,x.tanulocsoportid
,'Keses' +
CASE
WHEN isIgazolt IS NULL THEN 'Igazolando'
WHEN isIgazolt = 'T' THEN 'Igazolt'
WHEN isIgazolt = 'F' THEN 'Igazolatlan'
END + 'TanoraiPluszOra' AS piv
,kesesOraban
,kesesIgazoltElmeletiOraban
,kesesIgazolatlanElmeletiOraban
,kesesIgazoltGyakorlatiOraban
,kesesIgazolatlanGyakorlatiOraban
FROM (
SELECT
xx.tanuloId
,xx.tanulocsoportid
,xx.isIgazolt
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
,SUM(CASE WHEN isGyakorlati = 'F' AND isIgazolt='T' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazoltElmeletiOraban
,SUM(CASE WHEN isGyakorlati = 'F' AND isIgazolt='F' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazolatlanElmeletiOraban
,SUM(CASE WHEN isGyakorlati = 'T' AND isIgazolt='T' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazoltGyakorlatiOraban
,SUM(CASE WHEN isGyakorlati = 'T' AND isIgazolt='F' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazolatlanGyakorlatiOraban
FROM (
SELECT
mu.C_ORATANULOIID AS tanuloId
,tanulok.tanulocsoportid
,mu.C_IGAZOLT isIgazolt
,t.C_GYAKORLATI AS isGyakorlati
,SUM(mu.C_KESESPERCBEN) AS keses
FROM T_TANULOMULASZTAS_OSSZES mu
INNER JOIN #Tanulo tanulok ON tanulok.TanuloId = mu.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID
INNER JOIN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyID, @tanevId, 0, DEFAULT)) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
LEFT JOIN (
SELECT cs.ID, cs.C_TIPUSA
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_CSOPORTTIPUS_OSSZES cst On cst.ID = cs.C_TIPUSA AND cst.C_ALTANEVID = cs.C_ALTANEVID AND cst.C_ISTANORAICELU = 'F'
) cs ON tn.C_OSZTALYCSOPORTID = cs.ID
LEFT JOIN (
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN #SzurtCsoportTipus cst On cst.CsoportTipusId = cs.C_TIPUSA
) csmuv ON tn.C_OSZTALYCSOPORTID = csmuv.ID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID and tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.Torolt = 'F'
WHERE mu.C_TANEVID = @tanevId
AND (
(@isMuveszetOktatasi = 0 AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT CsoportTipusId FROM #SzurtCsoportTipus)))
OR
(@isMuveszetOktatasi = 1 AND (csmuv.ID IS NOT NULL OR tcs.C_OSZTALYCSOPORTID = @osztalyid))
)
AND mu.C_TIPUS = 1499
AND mu.TOROLT = 'F'
AND tn.Torolt ='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tn.C_DATUM)
AND tanulok.BelepesDatum <= tn.C_DATUM
AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum >= tn.C_DATUM)
AND tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
GROUP BY mu.C_ORATANULOIID, tanulok.TanuloCsoportId, mu.C_IGAZOLT, t.C_GYAKORLATI
) xx
GROUP BY tanuloId, TanuloCsoportId, xx.isIgazolt
) x
) p
PIVOT (
MAX(kesesOraban)
FOR piv IN (
kesesIgazolandoTanoraiPluszOra, kesesIgazoltTanoraiPluszOra, kesesIgazolatlanTanoraiPluszOra
)
) AS pvt
GROUP BY tanuloId, TanuloCsoportId
) kp ON t.tanuloId = kp.tanuloId AND kp.TanuloCsoportId = t.TanuloCsoportId
LEFT join T_TANULOTANUGYIADATOK ta on t.TanuloCsoportId = ta.C_TANULOCSOPORTID
END
GO

View file

@ -0,0 +1,380 @@
DROP PROCEDURE IF EXISTS sp_GetDokumentumMulasztasokIdoszakonkent
GO
CREATE PROCEDURE sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId int
,@osztalyCsoportId int
,@iskolaErdekuSzamit int
,@isReszletesMulasztasok int
,@elmeletiOraPercben int = 45
,@gyakorlatiOraPercben int = 45
,@igazolasTipusTypeId int = 47
AS
BEGIN
SET NOCOUNT ON;
DECLARE @MulasztasElmeletGyakorlat nvarchar(max)
SELECT @MulasztasElmeletGyakorlat = ISNULL(@MulasztasElmeletGyakorlat + ', ', '') + '[' + ElmeletGyakorlat + ']'
FROM (
SELECT CAST(Honap AS VARCHAR(3)) + Tipus ElmeletGyakorlat
FROM (VALUES (9), (10), (11), (12), (1), (2), (3), (4), (5), (6), (7), (8)) HonapTmp(Honap)
CROSS JOIN (VALUES ('E'), ('G')) TantargyTipus(Tipus)
)temp
SELECT 'T' IgazoltE, ID TanuloId, TanuloCsoportId, Tipus INTO #Mulasztasok FROM #studentsWithTanuloCsoport
CROSS JOIN (SELECT DISTINCT Id FROM T_DICTIONARYITEMBASE_OSSZES WHERE C_TANEVID = @tanevId AND C_DICTIONARYTYPEID = @IgazolasTipusTypeId AND (@iskolaErdekuSzamit = 1 OR Id <> 1533) ) Tipus (Tipus)
--hiányzás
DECLARE @FelevVege date = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID = @tanevId AND TOROLT = 'F')
CREATE TABLE #MulasztasokTemp ( TanuloId int,TanuloCsoportId int,Tipus nvarchar(max),[9E] int,[9G] int,[10E] int,[10G] int,[11E] int,[11G] int,[12E] int,[12G] int,
[1E] int,[1G] int,[2E] int,[2G] int,[3E] int,[3G] int,[4E] int,[4G] int,[5E] int,[5G] int,[6E] int,[6G] int,FelevE int,FelevG int ,OsszesenE int,OsszesenG int,Rendez int)
CREATE TABLE #MulasztasVegleges ( TanuloId int,TanuloCsoportId int,Tipus nvarchar(max),[9E] int,[9G] int,[10E] int,[10G] int,[11E] int,[11G] int,[12E] int,[12G] int,
[1E] int,[1G] int,[2E] int,[2G] int,[3E] int,[3G] int,[4E] int,[4G] int,[5E] int,[5G] int,[6E] int,[6G] int,FelevE int,FelevG int ,OsszesenE int,OsszesenG int,Rendez int)
--igazolt mulasztás (start) tempbe mert beleszámoljuk az összegezettbe
INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'igazolt'
,ni.[9E], ni.[9G]
,ni.[10E],ni.[10G]
,ni.[11E],ni.[11G]
,ni.[12E],ni.[12G]
,ni.[1E],ni.[1G]
,ni.[2E],ni.[2G]
,ni.[3E],ni.[3G]
,ni.[4E],ni.[4G]
,ni.[5E],ni.[5G]
,ni.[6E],ni.[6G]
,FelevE
,FelevG
,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E]
,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G]
,2 Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, TanuloCsoportId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'T' AND Tipus = 1500 )ni ON ni.TanuloId=s.Id AND ni.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'T' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'T' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId
--Igazolt mulasztás (end)
--Igazolatlan mulasztás (start) tempbe mert beleszámoljuk az összegezettbe
INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'igazolatlan'
,ni.[9E], ni.[9G]
,ni.[10E],ni.[10G]
,ni.[11E],ni.[11G]
,ni.[12E],ni.[12G]
,ni.[1E],ni.[1G]
,ni.[2E],ni.[2G]
,ni.[3E],ni.[3G]
,ni.[4E],ni.[4G]
,ni.[5E],ni.[5G]
,ni.[6E],ni.[6G]
,FelevE
,FelevG
,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE
,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG
,2 Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, TanuloCsoportId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.Id AND ni.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId
--Igazolatlan mulasztás (end)
--Különbözo igazolás típusok (start)
IF @isReszletesMulasztasok = 1
BEGIN
INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
m.TanuloId
,m.TanuloCsoportId
,'-' + IgazolasTipus.C_NAME
,ni.[9E], ni.[9G]
,ni.[10E],ni.[10G]
,ni.[11E],ni.[11G]
,ni.[12E],ni.[12G]
,ni.[1E],ni.[1G]
,ni.[2E],ni.[2G]
,ni.[3E],ni.[3G]
,ni.[4E],ni.[4G]
,ni.[5E],ni.[5G]
,ni.[6E],ni.[6G]
,FelevE
,FelevG
,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE
,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG
,IgazolasTipus.Id
FROM #Mulasztasok m
LEFT JOIN (SELECT * FROM (SELECT TanuloId, TanuloCsoportId, ElmeletGyakorlat, Id, IgazolasTipus, IgazoltE FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv
)ni ON ni.TanuloId = m.TanuloId AND ni.IgazolasTipus = m.Tipus AND m.TanuloCsoportId = ni.TanuloCsoportId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES IgazolasTipus ON IgazolasTipus.id = m.Tipus AND IgazolasTipus.TOROLT = 'F' AND IgazolasTipus.C_TANEVID = @tanevId
LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId Tanulo, TanuloCsoportId, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 AND isGyakorlat = 'F' GROUP BY IgazoltE, TanuloId, TanuloCsoportId, IgazolasTipus
)felevE ON felevE.tanulo = m.TanuloId AND felevE.IgazolasTipus = m.Tipus AND felevE.TanuloCsoportId = m.TanuloCsoportId
LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId Tanulo, TanuloCsoportId, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 AND isGyakorlat = 'T' GROUP BY IgazoltE, TanuloId, TanuloCsoportId, IgazolasTipus
)felevG ON felevG.tanulo = m.TanuloId AND felevG.IgazolasTipus = m.Tipus AND felevG.TanuloCsoportId = m.TanuloCsoportId
END
--Különbözo igazolás típusok (end)
--Összesített késés (p) (start)
INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'késés (p)'
,ni.[9E], ni.[9G]
,ni.[10E],ni.[10G]
,ni.[11E],ni.[11G]
,ni.[12E],ni.[12G]
,ni.[1E],ni.[1G]
,ni.[2E],ni.[2G]
,ni.[3E],ni.[3G]
,ni.[4E],ni.[4G]
,ni.[5E],ni.[5G]
,ni.[6E],ni.[6G]
,FelevE
,FelevG
,ISNULL([9E],0)+ISNULL([10E],0)+ISNULL([11E],0)+ISNULL([12E],0)+ISNULL([1E],0)+ISNULL([2E],0)+ISNULL([3E],0)+ISNULL([4E],0)+ISNULL([5E],0)+ISNULL([6E],0) OsszesenE
,ISNULL([9G],0)+ISNULL([10G],0)+ISNULL([11G],0)+ISNULL([12G],0)+ISNULL([1G],0)+ISNULL([2G],0)+ISNULL([3G],0)+ISNULL([4G],0)+ISNULL([5G],0)+ISNULL([6G],0) OsszesenG
,50000 Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1499) a PIVOT (SUM(KesesPercben) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv)ni on ni.TanuloId=s.Id AND ni.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE on felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG on felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId
--Összesített késés (p) (end)
--Igazolt késés (p) (start)
INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'* igazolt (p)'
,ni.[9E], ni.[9G]
,ni.[10E],ni.[10G]
,ni.[11E],ni.[11G]
,ni.[12E],ni.[12G]
,ni.[1E],ni.[1G]
,ni.[2E],ni.[2G]
,ni.[3E],ni.[3G]
,ni.[4E],ni.[4G]
,ni.[5E],ni.[5G]
,ni.[6E],ni.[6G]
,FelevE
,FelevG
,ISNULL([9E],0)+ISNULL([10E],0)+ISNULL([11E],0)+ISNULL([12E],0)+ISNULL([1E],0)+ISNULL([2E],0)+ISNULL([3E],0)+ISNULL([4E],0)+ISNULL([5E],0)+ISNULL([6E],0) AS OsszesenE
,ISNULL([9G],0)+ISNULL([10G],0)+ISNULL([11G],0)+ISNULL([12G],0)+ISNULL([1G],0)+ISNULL([2G],0)+ISNULL([3G],0)+ISNULL([4G],0)+ISNULL([5G],0)+ISNULL([6G],0) AS OsszesenG
,50001 AS Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, TanuloCsoportId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'T' AND Tipus = 1499)ni on ni.TanuloId=s.Id AND ni.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId ) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId
--Igazolt késés (p) (end)
--Igazolatlan késés (p) (start)
INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'* igazolatlan (p)'
,ni.[9E], ni.[9G]
,ni.[10E],ni.[10G]
,ni.[11E],ni.[11G]
,ni.[12E],ni.[12G]
,ni.[1E],ni.[1G]
,ni.[2E],ni.[2G]
,ni.[3E],ni.[3G]
,ni.[4E],ni.[4G]
,ni.[5E],ni.[5G]
,ni.[6E],ni.[6G]
,FelevE
,FelevG
,ISNULL([9E],0)+ISNULL([10E],0)+ISNULL([11E],0)+ISNULL([12E],0)+ISNULL([1E],0)+ISNULL([2E],0)+ISNULL([3E],0)+ISNULL([4E],0)+ISNULL([5E],0)+ISNULL([6E],0) AS OsszesenE
,ISNULL([9G],0)+ISNULL([10G],0)+ISNULL([11G],0)+ISNULL([12G],0)+ISNULL([1G],0)+ISNULL([2G],0)+ISNULL([3G],0)+ISNULL([4G],0)+ISNULL([5G],0)+ISNULL([6G],0) AS OsszesenG
,50002 Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, TanuloCsoportId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'F' AND Tipus = 1499)ni on ni.TanuloId=s.Id AND ni.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId
LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId
--Igazolatlan késés (p) (end)
--Mindkét fajta késés (ó) (start) tempbe mert beleszámoljuk az összegezettbe
INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
TanuloId
,TanuloCsoportId
,REPLACE(Tipus,'(p)','(ó)')
,CAST(ISNULL([9E], 0) / @elmeletiOraPercben AS int)
,CAST(ISNULL([9G], 0) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([10E], 0) + (ISNULL([9E], 0) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([10G], 0) + (ISNULL([9G], 0) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([11E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([11G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([12E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([12G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([1E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([1G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([2E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([2G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([3E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([3G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([4E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0) + ISNULL([3E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([4G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0) + ISNULL([3G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([5E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0) + ISNULL([3E], 0) + ISNULL([4E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([5G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0) + ISNULL([3G], 0) + ISNULL([4G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int)
,CAST((ISNULL([6E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0) + ISNULL([3E], 0) + ISNULL([4E], 0)) % @elmeletiOraPercben) + ISNULL([5E], 0)) / @elmeletiOraPercben AS int)
,CAST((ISNULL([6G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0) + ISNULL([3G], 0) + ISNULL([4G], 0)) % @gyakorlatiOraPercben) + ISNULL([5G], 0)) / @gyakorlatiOraPercben AS int)
,CAST(ISNULL(FelevE,0)/@elmeletiOraPercben AS int)
,CAST(ISNULL(FelevG,0)/@gyakorlatiOraPercben AS int)
,CAST(ISNULL(OsszesenE,0)/@elmeletiOraPercben AS int)
,CAST(ISNULL(OsszesenG,0)/@gyakorlatiOraPercben AS int)
,Rendez+3
FROM #MulasztasVegleges
WHERE Tipus LIKE '%*%(p)%'
--Mindkét fajta késés (ó) (end)
--Igazolt hozott (start) tempbe mert beleszámoljuk az összegezettbe
INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'hozott igazolt mulasztás'
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,IIF(@FelevVege > CAST(replace(s.BelepesDatum,'.','') AS DATE), ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0)
,0
,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0)
,0
,50005 Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = s.TanuloCsoportId
--Igazolt hozott (end)
--Igazolatlan hozott (start) tempbe mert beleszámoljuk az összegezettbe
INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
s.id
,s.TanuloCsoportId
,'hozott igazolatlan mulasztás'
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,0,0
,IIF(@FelevVege > CAST(replace(s.BelepesDatum,'.','') AS DATE), ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0)
,0
,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0)
,0
,50006 Rendez
FROM #studentsWithTanuloCsoport s
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = s.TanuloCsoportId
--Igazolatlan hozott (end)
-- beszurni a veglegestablaba a temp osszegezve
--Összesített mulasztás (start)
INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT
mb.TanuloId
,mb.TanuloCsoportId
,CAST('mulasztás' AS NVARCHAR(MAX)) AS Tipus
,SUM(ISNULL(mb.[9E],0))
,SUM(ISNULL(mb.[9G],0))
,SUM(ISNULL(mb.[10E],0))
,SUM(ISNULL(mb.[10G],0))
,SUM(ISNULL(mb.[11E],0))
,SUM(ISNULL(mb.[11G],0))
,SUM(ISNULL(mb.[12E],0))
,SUM(ISNULL(mb.[12G],0))
,SUM(ISNULL(mb.[1E],0))
,SUM(ISNULL(mb.[1G],0))
,SUM(ISNULL(mb.[2E],0))
,SUM(ISNULL(mb.[2G],0))
,SUM(ISNULL(mb.[3E],0))
,SUM(ISNULL(mb.[3G],0))
,SUM(ISNULL(mb.[4E],0))
,SUM(ISNULL(mb.[4G],0))
,SUM(ISNULL(mb.[5E],0))
,SUM(ISNULL(mb.[5G],0))
,SUM(ISNULL(mb.[6E],0))
,SUM(ISNULL(mb.[6G],0))
,SUM(ISNULL(mb.FelevE,0))
,SUM(ISNULL(mb.FelevG,0))
,SUM(ISNULL(mb.OsszesenE,0))
,SUM(ISNULL(mb.OsszesenG,0))
,1 AS Rendez
FROM #MulasztasokTemp mb
GROUP BY mb.TanuloId,mb.TanuloCsoportId
--Összesített mulasztás (end)
-- beszurni a veglegestablaba a temp-bol
INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez)
SELECT TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G],
[2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez
FROM #MulasztasokTemp
SELECT
Tanuloid
,TanuloCsoportId
,Tipus
,ISNULL([9E], 0) AS [9E], ISNULL([9G], 0) AS [9G]
,ISNULL([10E], 0) AS [10E], ISNULL([10G], 0) AS [10G]
,ISNULL([11E], 0) AS [11E], ISNULL([11G], 0) AS [11G]
,ISNULL([12E], 0) AS [12E], ISNULL([12G], 0) AS [12G]
,ISNULL([1E], 0) AS [1E], ISNULL([1G], 0) AS [1G]
,ISNULL([2E], 0) AS [2E], ISNULL([2G], 0) AS [2G]
,ISNULL([3E], 0) AS [3E], ISNULL([3G], 0) AS [3G]
,ISNULL([4E], 0) AS [4E], ISNULL([4G], 0) AS [4G]
,ISNULL([5E], 0) AS [5E], ISNULL([5G], 0) AS [5G]
,ISNULL([6E], 0) AS [6E], ISNULL([6G], 0) AS [6G]
,ISNULL(FelevE, 0) AS FelevE
,ISNULL(FelevG, 0) AS FelevG
,ISNULL(OsszesenE, 0) AS OsszesenE
,ISNULL(OsszesenG, 0) AS OsszesenG
,ISNULL([9E], 0) + ISNULL([9G], 0) [9Ossz]
,ISNULL([10E], 0) + ISNULL([10G], 0) AS [10Ossz]
,ISNULL([11E], 0) + ISNULL([11G], 0) AS [11Ossz]
,ISNULL([12E], 0) + ISNULL([12G], 0) AS [12Ossz]
,ISNULL([1E], 0) + ISNULL([1G], 0) AS [1Ossz]
,ISNULL([2E], 0) + ISNULL([2G], 0) AS [2Ossz]
,ISNULL([3E], 0) + ISNULL([3G], 0) AS [3Ossz]
,ISNULL([4E], 0) + ISNULL([4G], 0) AS [4Ossz]
,ISNULL([5E], 0) + ISNULL([5G], 0) AS [5Ossz]
,ISNULL([6E], 0) + ISNULL([6G], 0) AS [6Ossz]
,ISNULL(FelevE, 0) + ISNULL(FelevG, 0) AS FelevOssz
,ISNULL(OsszesenE, 0) + ISNULL(OsszesenG, 0) AS OsszesenOssz
FROM #MulasztasVegleges
ORDER BY Rendez
END
GO

View file

@ -0,0 +1,90 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetDokumentumTanitasiNapokSorszama
GO
CREATE PROCEDURE dbo.sp_GetDokumentumTanitasiNapokSorszama
@tanevId INT,
@osztalyId INT
AS
BEGIN
SET NOCOUNT ON;
/* Tanítás nélküli hétköznapok */
DECLARE @TanitasNelkuliNapokTanevRendjeTable TABLE (Datum DATE)
INSERT INTO @TanitasNelkuliNapokTanevRendjeTable
SELECT
TanevRendje.C_DATUM
FROM T_TANEVRENDJE_OSSZES TanevRendje
INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F'
INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId
WHERE
TanevRendje.C_TANEVID = @tanevId
AND TanevRendje.TOROLT = 'F'
AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
AND Naptipus.C_ISSORSZAMOZANDO = 'F'
AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA BETWEEN 1408 AND 1412)
UNION
SELECT
TanevRendje.C_DATUM
FROM T_TANEVRENDJE_OSSZES TanevRendje
INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE OsztalyCsoportTanevRendje ON OsztalyCsoportTanevRendje.C_TANEVRENDJEID = TanevRendje.ID
INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId
WHERE
TanevRendje.C_TANEVID = @tanevId
AND TanevRendje.TOROLT = 'F'
AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
AND Naptipus.C_ISSORSZAMOZANDO = 'F'
AND OsztalyCsoportTanevRendje.C_OSZTALYCSOPORTID = @osztalyId
AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA BETWEEN 1408 AND 1412)
/* Hétvégi tanítási napok */
DECLARE @HetvegiTanitasiNapokTanevRendjeTable TABLE (Datum DATE)
INSERT INTO @HetvegiTanitasiNapokTanevRendjeTable
SELECT
TanevRendje.C_DATUM
FROM T_TANEVRENDJE_OSSZES TanevRendje
INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F'
INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId
WHERE
TanevRendje.c_tanevid = @tanevId
AND TanevRendje.TOROLT = 'F'
AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
AND Naptipus.C_ISSORSZAMOZANDO = 'T'
AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA IN (1413, 1414))
UNION
SELECT
TanevRendje.C_DATUM
FROM T_TANEVRENDJE_OSSZES TanevRendje
INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE OsztalyCsoportTanevRendje ON OsztalyCsoportTanevRendje.C_TANEVRENDJEID = TanevRendje.ID
INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId
WHERE
TanevRendje.C_TANEVID = @tanevId
AND TanevRendje.TOROLT = 'F'
AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
AND Naptipus.C_ISSORSZAMOZANDO = 'T'
AND OsztalyCsoportTanevRendje.C_OSZTALYCSOPORTID = @osztalyId
AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA IN (1413, 1414))
/* Result */
SELECT
C_NAPDATUMA
FROM T_NAPTARINAP_OSSZES NaptariNap
WHERE
NaptariNap.TOROLT = 'F'
AND C_TANEVID = @tanevId
AND C_NAPDATUMA NOT IN (SELECT Datum FROM @TanitasNelkuliNapokTanevRendjeTable)
AND C_ALAPHETNAPJA BETWEEN 1408 AND 1412
UNION
SELECT
Datum
FROM @HetvegiTanitasiNapokTanevRendjeTable
END
GO

View file

@ -0,0 +1,36 @@
DROP PROCEDURE IF EXISTS sp_GetDokumentumTanuloNaploSorszam
GO
CREATE PROCEDURE sp_GetDokumentumTanuloNaploSorszam
@osztalyId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @students TABLE (ID INT, NaploSorszam INT, Rendez INT)
INSERT INTO @students
SELECT DISTINCT
C_TANULOID
, tanugy.C_NAPLOSORSZAM
, IIF(MONTH(MIN(C_BELEPESDATUM)) BETWEEN 9 AND 10, 1, 2)
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULO_OSSZES t on t.id=tcs.C_TANULOID
INNER JOIN T_TANULOTANUGYIADATOK tanugy ON tanugy.C_TANULOCSOPORTID = tcs.ID AND tanugy.TOROLT = 'F'
WHERE C_OSZTALYCSOPORTID = @osztalyId
AND tcs.TOROLT = 'F'
GROUP BY C_TANULOID, tanugy.C_NAPLOSORSZAM
DECLARE @max INT = (SELECT MAX(NaploSorszam) FROM @students)
SELECT
s.ID Tanulo
, ISNULL(NaploSorszam, ISNULL(@max, 0) + ROW_NUMBER() OVER (partition by NaploSorszam ORDER BY Rendez, C_NYOMTATASINEV)) Sorszam
FROM @students s
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID=s.ID
GROUP BY s.Id, NaploSorszam, C_NYOMTATASINEV, Rendez
ORDER BY Sorszam
END
GO

View file

@ -0,0 +1,257 @@
DROP PROCEDURE IF EXISTS sp_GetDokumentumTanuloOrarend
GO
CREATE PROCEDURE sp_GetDokumentumTanuloOrarend
@tanevId INT,
@tanuloId INT,
@aktivTanevId INT,
@isEgyebFoglalkozasok BIT,
@orarendErvenyessegiDatum DATE,
@feladatKategoriaId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
,@ElsoNap DATE = (SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
,@VizsgaltNap DATE
,@tanuloNev NVARCHAR(MAX) = (SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE ID = @tanuloId)
IF (@tanevId = @aktivTanevId AND @orarendErvenyessegiDatum <= @UtolsoNap)
BEGIN
IF (@orarendErvenyessegiDatum <= @ElsoNap)
BEGIN
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
END
END
ELSE
BEGIN
SET @VizsgaltNap = @UtolsoNap
END
SELECT
C_ORASZAM OraSzam
,CONVERT(VARCHAR(5), C_KEZDETE, 108) Kezdete
,CONVERT(VARCHAR(5), C_VEGE, 108) Vege
INTO #CsengetesiRendAdatok
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
WHERE
CsengetesiRendOra.C_TANEVID = @tanevId
AND CsengetesiRendOra.TOROLT = 'F'
AND CsengetesiRend.TOROLT = 'F'
AND CsengetesiRend.C_AKTIV = 'T'
DECLARE @MinCsengetesiRendOraKezdet NVARCHAR(10) = (SELECT MIN(Kezdete) FROM #CsengetesiRendAdatok)
DECLARE @MinCsengetesiRendOraszam INT = (SELECT MIN(OraSzam) FROM #CsengetesiRendAdatok)
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,CsengetesiRendOra.C_ORASZAM OraSzam
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAKEZDETE, 108) Kezdete
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAVEGE, 108) Vege
,ISNULL(Tantargy.C_ROVIDNEV, Tantargy.C_NEV) TantargyNev
,Pedagogus.C_NYOMTATASINEV PedagogusNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyCsoportNev
INTO #OrarendiOrak
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON
TanuloCsoport.C_TANULOID = @tanuloId
AND TanuloCsoport.C_OSZTALYCSOPORTID = OrarendiOra.C_OSZTALYCSOPORTID
AND TanuloCsoport.TOROLT = 'F'
AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND ISNULL(C_KILEPESDATUM, @UtolsoNap)
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.C_TANARID
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.C_TEREMID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
LEFT JOIN T_CSOPORT_OSSZES Csoport ON Csoport.Id = OrarendiOra.C_OSZTALYCSOPORTID
WHERE
OrarendiOra.Torolt = 'F'
AND @VizsgaltNap BETWEEN OrarendiOra.C_ORAERVENYESSEGKEZDETE AND OrarendiOra.C_ORAERVENYESSEGVEGE
AND (@isEgyebFoglalkozasok = 1 OR (Csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) OR Csoport.C_TIPUSA IS NULL))
AND tantargy.C_ISOSZTALYORARENDBENEMLATSZIK = 'F'
SELECT
OraSzam
,HetirendId
,HetnapjaId
,OsztalyCsoportNev
,PedagogusNev
,TantargyNev
,TeremNev
,Kezdete
,Vege
INTO #OrarendTEMP
FROM
(
SELECT
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
,OrarendiOrak.HetirendId HetirendId
,OrarendiOrak.HetnapjaId HetnapjaId
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
,OrarendiOrak.PedagogusNev PedagogusNev
,OrarendiOrak.TantargyNev TantargyNev
,OrarendiOrak.TeremNev TeremNev
,OrarendiOrak.Kezdete Kezdete
,OrarendiOrak.Vege Vege
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.Kezdete >= CsengetesiRendAdatok.Kezdete
WHERE
OrarendiOrak.OraSzam IS NULL
GROUP BY
OrarendiOrak.HetirendId
,OrarendiOrak.HetnapjaId
,OrarendiOrak.OsztalyCsoportNev
,OrarendiOrak.PedagogusNev
,OrarendiOrak.TantargyNev
,OrarendiOrak.TeremNev
,OrarendiOrak.Kezdete
,OrarendiOrak.Vege
UNION
SELECT
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
,OrarendiOrak.HetirendId HetirendId
,OrarendiOrak.HetnapjaId HetnapjaId
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
,OrarendiOrak.PedagogusNev PedagogusNev
,OrarendiOrak.TantargyNev TantargyNev
,OrarendiOrak.TeremNev TeremNev
,OrarendiOrak.Kezdete Kezdete
,OrarendiOrak.Vege Vege
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.OraSzam = CsengetesiRendAdatok.OraSzam
WHERE
OrarendiOrak.OraSzam IS NOT NULL
GROUP BY
OrarendiOrak.HetirendId
,OrarendiOrak.HetnapjaId
,OrarendiOrak.OsztalyCsoportNev
,OrarendiOrak.PedagogusNev
,OrarendiOrak.TantargyNev
,OrarendiOrak.TeremNev
,OrarendiOrak.Kezdete
,OrarendiOrak.Vege
)OrarendioraOraszammal
INSERT INTO #OrarendTEMP
SELECT
@MinCsengetesiRendOraszam
,OrarendiOrak.HetirendId HetirendId
,OrarendiOrak.HetnapjaId HetnapjaId
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
,OrarendiOrak.PedagogusNev PedagogusNev
,OrarendiOrak.TantargyNev TantargyNev
,OrarendiOrak.TeremNev TeremNev
,OrarendiOrak.Kezdete Kezdete
,OrarendiOrak.Vege Vege
FROM #orarendiorak OrarendiOrak
WHERE
Kezdete < @MinCsengetesiRendOraKezdet
SELECT
Orarend.OraSzam
,HetirendId
,HetnapjaId
,OsztalyCsoportNev
,PedagogusNev
,TantargyNev
,TeremNev
,IIF(Orarend.Kezdete != CsengetesiRendAdatok.Kezdete OR Orarend.Vege != CsengetesiRendAdatok.Vege, Orarend.Kezdete + ' - ' + Orarend.Vege, '') KezdesVegeIdopont
INTO #Orarend
FROM #OrarendTEMP Orarend
INNER JOIN #CsengetesiRendAdatok CsengetesiRendAdatok on CsengetesiRendAdatok.Oraszam = Orarend.OraSzam
DECLARE @Hetirendek TABLE (Id INT)
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
IF (@HetirendCount=1)
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID = @tanevId
END
ELSE
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND <> 1554
END
DECLARE @Orakezdetek TABLE (Ora INT)
INSERT INTO @orakezdetek
SELECT DISTINCT OraSzam from #CsengetesiRendAdatok
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap , OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT Ora FROM @Orakezdetek) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (TanuloId INT, Ora int, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT Id FROM @Hetirendek
DECLARE @HetirendId int
OPEN kur
FETCH NEXT FROM kur INTO @HetirendId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TenylegesOra
SELECT DISTINCT
@HetirendId
,veg.HetnapjaId
,veg.Oraszam
,STUFF((SELECT DISTINCT
CAST('<b>' + bveg.TantargyNev + '</b>' + CHAR(13) + CHAR(10)
+ IIF(LEN(KezdesVegeIdopont) > 0, ' (' + KezdesVegeIdopont +')' + CHAR(13) + CHAR(10), '')
+ bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10)
+ bveg.PedagogusNev + CHAR(13) + CHAR(10)
+ bveg.TeremNev + CHAR(13) + CHAR(10) AS VARCHAR(max))
FROM #Orarend bveg
WHERE bveg.HetnapjaId = veg.HetnapjaId
AND bveg.Oraszam = veg.Oraszam
AND (bveg.HetirendId = @HetirendId OR bveg.HetirendId = 1554)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
FROM #Orarend veg
FETCH NEXT FROM kur INTO @HetirendId
END
CLOSE kur
DEALLOCATE kur
/*Végleges órarend*/
INSERT INTO @Orarend
SELECT @tanuloId
, OsszesOra.Oraszam
, OsszesOra.Hetirend
, OsszesOra.Nap
, TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend = TenylegesOra.Hetirend AND OsszesOra.Nap = TenylegesOra.Nap AND OsszesOra.Oraszam = TenylegesOra.Oraszam
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
SELECT
pv.*
, dic.C_NAME HETIREND_DNAME
,@tanuloNev TanuloNev
FROM @Orarend
PIVOT (MAX(Foglalkozas) FOR Nap IN ([1408],[1409],[1410],[1411],[1412],[1413]))pv
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
ORDER BY Ora
END
DROP TABLE #CsengetesiRendAdatok
DROP TABLE #Orarend
DROP TABLE #OrarendiOrak
GO

View file

@ -0,0 +1,848 @@
DROP PROCEDURE IF EXISTS sp_GetESL_A03T01_1
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T01_1]
@tanevId int
,@feladatEllatasiHelyId int
,@isFelevi int = 0 /* 1 - előző tanév végi és féléves; 0 - félévtől év végi */
,@osztalyzatTipusTypeID int = 44
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #tmpRet(
Kategoria nvarchar(250)
,Evfolyam int
,Darabszam int
,Sorszam int
)
CREATE TABLE #tmpRetSum(
Kategoria nvarchar(250)
,Osszesen int
,OsszesLany int
)
CREATE TABLE #KetFeltetelTanulok (
Evfolyam int
,TanuloId int
,Neme int
,IsHianyzasMiatt int
,IsKiemeltMiatt int
,IsGyermekVedelemMiatt int
,IsAltalanosIskolaMiatt int
,INDEX IX_01 (TanuloId)
)
CREATE TABLE #ErintettTanulok (
Evfolyam int
,TanuloId int
,Neme int
,TanuloNev nvarchar(255)
,Oktatasiazonosito nvarchar(11)
,TanuloOsztalyNev nvarchar(255)
,IsKozepesMiatt int
,IsRontasMiatt int
,TanuloOsztalyId int
,INDEX IX_01 (TanuloId)
)
CREATE TABLE #TanuloErtekeles (
Id int
,Tanulo int
,Ertekeles int
,Tipus int
,INDEX IX_01 (Tanulo)
)
DECLARE
@FelevKezdete date
,@FelevVege date
,@ertekelesTipus int
,@Kategoria nvarchar(250)
,@OsszesLany int
SET @ertekelesTipus = IIF(@isFelevi = 1, 1519, 1520) /* féléves vagy tév végi jegy */
SET @FelevKezdete = (
SELECT C_DATUM + IIF(@isFelevi = 1, 0, 1)
FROM T_TANEVRENDJE tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1394, 1400)
AND tr.C_TANEVID = @tanevid AND tr.TOROLT='F')
SET @FelevVege = (
SELECT C_DATUM + 1
FROM T_TANEVRENDJE tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1400, 1395)
AND tr.C_TANEVID = @tanevid AND tr.TOROLT='F')
INSERT INTO #ErintettTanulok (
TanuloId
,Evfolyam
,Neme
,TanuloNev
,OktatasiAzonosito
,TanuloOsztalyNev
,TanuloOsztalyId
,IsKozepesMiatt
,IsRontasMiatt
)
SELECT * FROM fnGetLemorzsolodottTanulokByFelhely (@feladatEllatasiHelyId, @tanevId, @isFelevi, @osztalyzatTipusTypeID)
INSERT INTO #TanuloErtekeles
SELECT
te.ID
,C_TANULOID
,C_ERTEKELESOSZTALYZATID
,C_TIPUSID
FROM T_TANULOERTEKELES te
INNER JOIN #ErintettTanulok fht ON fht.TanuloId=te.C_TANULOID
INNER JOIN T_TANTARGY tgy ON tgy.ID = te.C_TANTARGYID AND (tgy.C_FOTARGYE = 'T' OR tgy.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
AND C_ESLTANTARGYKATEGORIAID IS NOT NULL AND tgy.TOROLT='F'
WHERE te.C_TIPUSID=@ertekelesTipus AND te.TOROLT='F' AND te.C_TANEVID = @tanevId
----------------------------------------------------------------------
-- PRINT '1'
----------------------------------------------------------------------
-- Szum
----------------------------------------------------------------------
SET @Kategoria = 'Osszesen'
SELECT @OsszesLany = COUNT(DISTINCT TanuloId)
FROM #ErintettTanulok fh
WHERE fh.Neme = 5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT TanuloId)
,1
FROM #ErintettTanulok
GROUP BY Evfolyam
INSERT INTO #tmpRetSum(
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '2'
----------------------------------------------------------------------
-- Szum lány
----------------------------------------------------------------------
SET @Kategoria = 'Lany'
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT TanuloId)
,2
FROM #ErintettTanulok
WHERE Neme = 5
GROUP BY Evfolyam
INSERT INTO #tmpRetSum(
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '3'
----------------------------------------------------------------------
-- Összes rontott
----------------------------------------------------------------------
SET @Kategoria = 'AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet'
SELECT @Osszeslany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
WHERE fht.Neme=5 AND IsKozepesMiatt = 1
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT TanuloId)
,3
FROM #ErintettTanulok
WHERE IsKozepesMiatt = 1
GROUP BY Evfolyam
INSERT INTO #tmpRetSum(
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '4'
----------------------------------------------------------------------
-- Legalább 1.1-et rontott
----------------------------------------------------------------------
SET @Kategoria = 'AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
WHERE fht.Neme=5 AND IsRontasMiatt = 1
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT TanuloId)
,4
FROM #ErintettTanulok
WHERE IsRontasMiatt = 1
GROUP BY Evfolyam
INSERT INTO #tmpRetSum(
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '5'
----------------------------------------------------------------------
-- egy, vagy több tantárgyból elégtelen osztályzat
----------------------------------------------------------------------
SET @Kategoria = 'AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #TanuloErtekeles te
INNER JOIN #ErintettTanulok fht ON fht.TanuloId=te.Tanulo AND fht.Neme = 5
WHERE te.Tipus = @ertekelesTipus AND te.Ertekeles = 1501
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,5
FROM #ErintettTanulok t
INNER JOIN #TanuloErtekeles te ON te.Tanulo = t.TanuloId
WHERE te.Tipus = @ertekelesTipus AND te.Ertekeles = 1501
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '6'
----------------------------------------------------------------------
-- félév, magatartás, 2
----------------------------------------------------------------------
SET @Kategoria = 'AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
INNER JOIN T_TANULOERTEKELES te ON te.C_TANULOID=fht.TanuloId AND fht.Neme = 5 AND te.C_ISMAGATARTASSZORGALOM = 'T'
AND (te.C_MAGATARTASERTEKID=1558 OR te.C_MAGATARTASOSZTALYZATID=1502) AND te.C_TIPUSID = @ertekelesTipus
AND te.TOROLT='F'
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,6
FROM #ErintettTanulok t
INNER JOIN T_TANULOERTEKELES te ON te.C_TANULOID=t.TanuloId AND te.C_ISMAGATARTASSZORGALOM = 'T'
AND (te.C_MAGATARTASERTEKID=1558 OR te.C_MAGATARTASOSZTALYZATID=1502) AND te.C_TIPUSID = @ertekelesTipus
AND te.TOROLT='F'
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '7'
----------------------------------------------------------------------
-- félév, szorgalom, 2
----------------------------------------------------------------------
SET @Kategoria = 'AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
INNER JOIN T_TANULOERTEKELES te ON te.C_TANULOID=fht.TanuloId AND fht.Neme = 5 AND te.C_ISMAGATARTASSZORGALOM = 'T'
AND (te.C_SZORGALOMERTEKID = 1562 OR te.C_SZORGALOMOSZTALYZATID=1502)
AND te.TOROLT='F' AND te.C_TIPUSID = @ertekelesTipus
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,7
FROM #ErintettTanulok t
INNER JOIN T_TANULOERTEKELES te ON te.C_TANULOID=t.TanuloId AND te.C_ISMAGATARTASSZORGALOM = 'T'
AND (te.C_SZORGALOMERTEKID = 1562 OR te.C_SZORGALOMOSZTALYZATID=1502)
AND te.TOROLT='F' AND te.C_TIPUSID = @ertekelesTipus
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '8'
----------------------------------------------------------------------
-- adott évben évismétlés
----------------------------------------------------------------------
SET @Kategoria = 'AzAdottTanitasiEvbenEvismetlesreKotelezett'
IF @isFelevi = 0
BEGIN
SET @OsszesLany = (
SELECT SUM(x.db) FROM(
SELECT COUNT(DISTINCT fht.TanuloId) db
FROM #ErintettTanulok fht
INNER JOIN #tanuloErtekeles te ON te.Tanulo=fht.TanuloId AND te.Ertekeles=1501
WHERE fht.Neme=5
GROUP BY fht.TanuloId
HAVING COUNT(*)>=4) x)
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT x.TanuloId)
,8
FROM(
SELECT
t.TanuloId
,t.Evfolyam
FROM #ErintettTanulok t
INNER JOIN #tanuloErtekeles te ON te.Tanulo=t.TanuloId AND te.Ertekeles=1501
GROUP BY t.TanuloId,t.Evfolyam
HAVING COUNT(*)>=4) x
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
END
----------------------------------------------------------------------
-- PRINT '9'
----------------------------------------------------------------------
-- Félévben 50 órát elérő igazolatlan hiányzás
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik'
SELECT @OsszesLany = COUNT(DISTINCT Tanulo) FROM (
SELECT
fht.Tanuloid AS Tanulo
FROM T_TANULOMULASZTAS tm
INNER JOIN #ErintettTanulok fht on fht.TanuloId=tm.C_ORATANULOIID AND fht.Neme=5
INNER JOIN T_TANITASIORA tao on tao.ID=tm.C_TANITASIORAKID AND tao.C_DATUM >= @FelevKezdete AND tao.C_DATUM < @FelevVege
AND tao.TOROLT='F'
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
AND cs.TOROLT='F'
WHERE tm.C_IGAZOLT='F' AND cs.ID IS NULL AND tm.TOROLT='F'
GROUP BY fht.TanuloId
HAVING COUNT(Tanuloid) > 50) a
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT x.TanuloId)
,9
FROM(
SELECT
fht.Tanuloid
,fht.Evfolyam
FROM T_TANULOMULASZTAS tm
INNER JOIN #ErintettTanulok fht ON fht.TanuloId=tm.C_ORATANULOIID
INNER JOIN T_TANITASIORA tao ON tao.ID=tm.C_TANITASIORAKID AND tao.C_DATUM >= @FelevKezdete AND tao.C_DATUM < @FelevVege
AND tao.TOROLT='F'
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID
AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
AND cs.TOROLT='F'
WHERE tm.C_IGAZOLT='F' AND cs.ID IS NULL AND tm.TOROLT='F'
GROUP BY fht.TanuloId, fht.Evfolyam
HAVING COUNT(TanuloId) > 50) x
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '10'
----------------------------------------------------------------------
-- Szülő kérésére magántanuló
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenSzuloiKeresreMagantanulovaValtTanulo'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId AND tcs.C_TANULOID=fht.TanuloId
AND tcs.TOROLT='F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcs.ID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
AND tta.TOROLT='F'
WHERE fht.Neme=5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT fht.TanuloId)
,10
FROM #ErintettTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId AND tcs.C_TANULOID=fht.TanuloId
AND tcs.TOROLT='F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcs.ID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
AND tta.TOROLT='F'
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '11'
----------------------------------------------------------------------
-- Menekült, menedékjoggal rendelkező
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenMenekultOltalmazottMenedekesTanulokSzama'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.ID AND fht.Neme=5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT fht.TanuloId)
,11
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.ID
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '12'
----------------------------------------------------------------------
-- Félévben veszélyeztetett tanulók száma
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenVeszelyezeztetteValtTanulokSzama'
SELECT @OsszesLany = COUNT(DISTINCT TanuloId)
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t on t.ID=fht.TanuloId AND t.C_VESZELYEZTETETT='T' AND fht.Neme=5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT fht.TanuloId)
,12
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t on t.ID=fht.TanuloId AND t.C_VESZELYEZTETETT='T'
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '13'
----------------------------------------------------------------------
-- ideiglenes hatállyal elhelyezett vagy nevelésbe vett tanulók
----------------------------------------------------------------------
SET @Kategoria = 'AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama'
SELECT @OsszesLany = COUNT(DISTINCT fht.TanuloId)
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.ID AND fht.Neme=5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT fht.TanuloId)
,13
FROM #ErintettTanulok fht
INNER JOIN T_TANULO t ON t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.ID
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '14'
----------------------------------------------------------------------
-- legalább 2 feltétel teljesül
----------------------------------------------------------------------
-- Alapadatok
INSERT INTO #KetFeltetelTanulok
SELECT DISTINCT
ftt.Evfolyam
,ftt.TanuloId
,ftt.Neme
,IIF((SELECT COUNT(1)
FROM T_TANULOMULASZTAS tm
INNER JOIN T_TANITASIORA tno ON tno.ID = tm.C_TANITASIORAKID
AND tno.C_DATUM >= @FelevKezdete
AND tno.C_DATUM < @FelevVege
AND tno.TOROLT='F'
LEFT JOIN T_CSOPORT cs ON cs.ID = tno.C_OSZTALYCSOPORTID AND cs.TOROLT='F'
WHERE (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
AND tm.TOROLT='F'
AND tm.C_IGAZOLT='T'
AND tm.C_TIPUS = 1500
AND tm.C_ORATANULOIID = ftt.TanuloId) > 100, 1, 0) AS IsHianyzasMiatt
,IIF((SELECT COUNT(1)
FROM T_TANULO t
WHERE t.ID = ftt.TanuloId
AND (t.C_SAJATOSNEVELESU='T' OR t.C_BTMPROBLEMAS='T' OR t.C_HATRANYOSHELYZETU IN (1122, 1123))) > 0, 1, 0) AS IsKiemeltMiatt
,IIF((SELECT COUNT(1)
FROM T_TANULO t
WHERE t.ID = ftt.TanuloId
AND t.C_RENDSZERESGYERMEKVEDELMIKEDV IS NOT NULL) > 0, 1, 0) AS IsGyermekVedelemMiatt
,IIF((SELECT COUNT(1)
FROM T_FELHASZNALO t
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=t.ID AND tcs.TOROLT='F'
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT='F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_ISESL16EVESUTANBELEPETT = 'T' AND tta.TOROLT='F'
INNER JOIN T_FELADATELLATASIHELY fh ON fh.ID=ocs.C_FELADATELLATASIHELYID AND fh.C_OKTATASINEVELESIFELADATTIPUS IN (1158,1178)
AND fh.ID = @feladatEllatasiHelyId AND fh.TOROLT='F'
WHERE t.ID = ftt.TanuloId) > 0, 1, 0) AS IsAltalanosIskolaMiatt
FROM #ErintettTanulok ftt
DELETE kt FROM #KetFeltetelTanulok kt WHERE (kt.IsHianyzasMiatt + kt.IsKiemeltMiatt + kt.IsGyermekVedelemMiatt + kt.IsAltalanosIskolaMiatt) < 2
--Alapadatok vége
SET @Kategoria = 'KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo'
SELECT @OsszesLany = COUNT(DISTINCT ft.TanuloId)
FROM #KetFeltetelTanulok ft
WHERE ft.Neme=5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,14
FROM #KetFeltetelTanulok t
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '15'
----------------------------------------------------------------------
-- kettő feltétel esetén ... félévben 100 órát elért igazolt hiányzás
----------------------------------------------------------------------
SET @Kategoria = 'EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama'
SELECT @OsszesLany = COUNT(DISTINCT kt.TanuloId)
FROM #KetFeltetelTanulok kt
WHERE kt.IsHianyzasMiatt = 1 AND kt.Neme = 5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,15
FROM #KetFeltetelTanulok t
WHERE t.IsHianyzasMiatt = 1
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '16'
----------------------------------------------------------------------
-- kettő feltétel ... kiemelet figyelmet igénylő --sni, btmn, hh, 3h
----------------------------------------------------------------------
SET @Kategoria = 'EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel'
SELECT @OsszesLany = COUNT(DISTINCT kt.TanuloId)
FROM #KetFeltetelTanulok kt
WHERE kt.IsKiemeltMiatt = 1 AND kt.Neme = 5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,16
FROM #KetFeltetelTanulok t
WHERE t.IsKiemeltMiatt = 1
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '17'
----------------------------------------------------------------------
-- kettő feltétel ... --rendszeres gyermekvédelmi támogatás
----------------------------------------------------------------------
SET @Kategoria = 'EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama'
SELECT @OsszesLany = COUNT(DISTINCT kt.TanuloId)
FROM #KetFeltetelTanulok kt
WHERE kt.IsGyermekVedelemMiatt = 1 AND kt.Neme = 5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(DISTINCT t.TanuloId)
,17
FROM #KetFeltetelTanulok t
WHERE t.IsGyermekVedelemMiatt = 1
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- PRINT '18'
----------------------------------------------------------------------
-- kettő feltétel ... alapfokú oktatásban 16
----------------------------------------------------------------------
SET @Kategoria = 'EbbolAlapfokuOktatasbanBetoltotteA16Eletevet'
SELECT @OsszesLany = COUNT(DISTINCT kt.TanuloId)
FROM #KetFeltetelTanulok kt
WHERE kt.IsAltalanosIskolaMiatt = 1 AND kt.Neme = 5
INSERT INTO #tmpRet(
Kategoria
,Evfolyam
,Darabszam
,Sorszam
) SELECT
@Kategoria
,Evfolyam
,COUNT(t.TanuloId)
,17
FROM #KetFeltetelTanulok t
WHERE t.IsAltalanosIskolaMiatt = 1
GROUP BY Evfolyam
INSERT INTO #tmpRetSum (
Kategoria
,Osszesen
,OsszesLany
) SELECT
@Kategoria
,SUM(Darabszam)
,@OsszesLany
FROM #tmpRet
WHERE Kategoria = @Kategoria
----------------------------------------------------------------------
-- SELECT
----------------------------------------------------------------------
SELECT
t.Kategoria
,t.Evfolyam
,ISNULL(t.Darabszam,0) as Darabszam
,s.Osszesen
,s.OsszesLany
FROM #tmpRet t
INNER JOIN #tmpRetSum s ON s.Kategoria = t.Kategoria
ORDER BY t.Sorszam
END
GO

View file

@ -0,0 +1,90 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetESL_A03T02_1]
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T02_1]
@tanevId int
,@feladatEllatasiHelyId int
,@isFelevi int = 0
,@ESLTantargykategoriaTypeId int = 136
,@osztalyzatTipusTypeID int = 44
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #TantargyiStat(
Darabszam int
,OsszesLany int
,EslTgyKatId int
,Evfolyam int
,Sorrend int
)
CREATE TABLE #ErintettTanulok (
Evfolyam int
,TanuloId int
,Neme int
,TanuloNev nvarchar(255)
,Oktatasiazonosito nvarchar(11)
,TanuloOsztalyNev nvarchar(255)
,IsKozepesMiatt int
,IsRontasMiatt int
,TanuloOsztalyId int
,INDEX IX_01 (TanuloId)
)
DECLARE @ertekelesTipus int = IIF(@isFelevi = 0,1520,1519)
--1. érintett tanulók leválogatása
INSERT INTO #ErintettTanulok (
TanuloId
,Evfolyam
,Neme
,TanuloNev
,OktatasiAzonosito
,TanuloOsztalyNev
,TanuloOsztalyId
,IsKozepesMiatt
,IsRontasMiatt
)
SELECT * FROM fnGetLemorzsolodottTanulokByFelhely (@feladatEllatasiHelyId, @tanevId, @isFelevi, @osztalyzatTipusTypeID)
INSERT INTO #TantargyiStat(
Darabszam
,OsszesLany
,EslTgyKatId
,Evfolyam
,Sorrend
)
SELECT
COUNT(te.C_TANULOID) as Osszes
,SUM(IIF(fht.Neme=5,1,0)) as OsszesLany
,eslTgyKat.ID
,fht.Evfolyam
,eslTgyKat.C_ORDER
FROM T_TANULOERTEKELES te
INNER JOIN T_TANTARGY tgy ON tgy.ID=te.C_TANTARGYID AND (tgy.C_FOTARGYE = 'T' OR tgy.C_ALTANTARGYKENTNYOMTATVANYBAN='T') AND tgy.TOROLT='F'
INNER JOIN #ErintettTanulok fht on fht.TANULOID=te.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE eslTgyKat ON eslTgyKat.ID = tgy.C_ESLTANTARGYKATEGORIAID AND eslTgyKat.C_DICTIONARYTYPEID = @ESLTantargykategoriaTypeId
AND eslTgykat.TOROLT='F' AND eslTgyKat.C_TANEVID = te.C_TANEVID
WHERE te.C_ERTEKELESOSZTALYZATID = 1501 AND te.C_TIPUSID = @ertekelesTipus AND te.C_TANEVID = @tanevId AND te.TOROLT='F'
GROUP BY eslTgyKat.ID,eslTgyKat.C_ORDER,fht.Evfolyam
SELECT
SUM(Darabszam) as Osszes
,SUM(OsszesLany) as OsszesLany
,EslTgyKatId
INTO #TantargyiStatSum
FROM #TantargyiStat
GROUP BY EslTgyKatId
SELECT
tgy.eslTgyKatId
,tgy.Evfolyam
,tgy.Darabszam
,s.Osszes
,s.OsszesLany
FROM #TantargyiStat tgy
INNER JOIN #TantargyiStatSum s ON s.eslTgyKatId = tgy.eslTgyKatId
ORDER BY tgy.Sorrend,tgy.Evfolyam
END
GO

View file

@ -0,0 +1,52 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetESL_A03T03_1]
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T03_1]
@tanevId int
,@intezmenyId int
,@feladatEllatasiHelyId int
,@isFelevi int = 0
,@osztalyzatTipusTypeID int = 44
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
declare @Dictionary table (Id int, Name nvarchar(max), Value int, Tipus nvarchar(max))
declare @Evfolyamok table (Id int, Evfolyam int)
declare @TanuloErtekeles table (Id int, Tanulo int, Ertekeles int, Tipus int)
declare @FeladatEllatasiHelyekIntezmenyhez table (FHId int, IntezmenyId int)
declare @FHhozTartozoTanulok table (Intezmeny int, FH int, Evfolyam int, TanuloId int, Neme int)
--Dátumok deklarásása
declare @kezdet int,
@veg int,
@felev int
select top 1 @kezdet= iif(getdate()<=C_DATUM,1394,1400), --első félév
@veg= iif(getdate()<=C_DATUM,1400,1395) --második félév
from t_tanevrendje tr where c_naptipusa=1400 and c_tanevId=@tanevId and c_intezmenyId=@intezmenyId and torolt='F'
DECLARE @FelevKezdete DATE = (select top 1 c_datum from t_tanevrendje tr where c_naptipusa=@kezdet and c_tanevid=@tanevid and c_intezmenyid=@intezmenyid and torolt='F')
DECLARE @FelevVege DATE = (select top 1 c_datum from t_tanevrendje tr where c_naptipusa=@veg and c_tanevid=@tanevid and c_intezmenyid=@intezmenyid and torolt='F')
INSERT INTO @FHhozTartozoTanulok (TanuloId, Evfolyam, Neme)
SELECT tanulok.TanuloId, tanulok.Evfolyam, tanulok.Neme FROM fnGetLemorzsolodottTanulokByFelhely(@feladatEllatasiHelyId, @tanevId, @isFelevi, @osztalyzatTipusTypeID) as tanulok
--adott évben évismétlés
declare @OsszesEvismetloTanulo int =(select count(fht.TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_EVISMETLO='T' and fht.TanuloId=t.id AND @isFelevi = 0)
declare @OsszesEvismetloTanuloLany int =(select count(fht.TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' and fht.TanuloId=t.id and fht.TanuloId=t.id and fht.Neme=5 AND @isFelevi = 0)
select 'AzAdottTanitasiEvbenEvismetlesreKotelezett' as Leiras, [1307] 'Evfolyam5', [1308] 'Evfolyam6', [1309] 'Evfolyam7', [1310] 'Evfolyam8', [1311] 'Evfolyam9', [1312] 'Evfolyam10', [1313] 'Evfolyam11', [1314] 'Evfolyam12', [6471] 'KH1', [6474] 'KH2', [6477] 'SzH1', [6478] 'SzH2', @OsszesEvismetloTanulo 'Osszesen', @OsszesEvismetloTanuloLany 'Lany'
from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' and fht.TanuloId=t.id and fht.TanuloId=t.id AND @isFelevi = 0
union
select null, null where (select top 1 fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' and fht.TanuloId=t.id and fht.TanuloId=t.id) is null AND @isFelevi = 0)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
END
GO

View file

@ -0,0 +1,25 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetEgyuttmukodesiMeglallapodas]
GO
CREATE PROCEDURE [dbo].[sp_GetEgyuttmukodesiMeglallapodas]
@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
/*INTEZMENYADATOK*/
SELECT DISTINCT
INTEZMENY.C_NEV Nev
,INTEZMENY.C_IGAZGATONEVE IgazgatoNev
,dbo.fnGetDokumentumIntezmenyCime (@pTanevId) IntezmenyCim
,INTEZMENY.C_TELEFONSZAM IntezmenyTelefonszam
,INTEZMENY.C_EMAILCIM IntezmenyEmail
,INTEZMENY.C_OMKOD OktAzon
FROM T_TANEV TANEV
INNER JOIN T_INTEZMENYADATOK_OSSZES INTEZMENY ON TANEV.ID = INTEZMENY.C_TANEVID
WHERE TANEV.ID = @pTanevId
END
GO

View file

@ -0,0 +1,115 @@
DROP PROCEDURE IF EXISTS sp_GetElfogadottTantargyfelosztasok
GO
CREATE PROCEDURE sp_GetElfogadottTantargyfelosztasok
@tanevId INT,
@intezmenyId INT,
@isElfogadott BIT,
@isKlebersberg BIT
AS
BEGIN
SET NOCOUNT ON;
--Pedagógusok
SELECT
foglalkozas.C_TANARID PedagogusId
,felhasznalo.C_NYOMTATASINEV PedagogusNev
,munkakor.C_NAME Munkakor
,kepesites.C_NAME Kepesites
,ISNULL(vegzettsegAdat.Vegzettseg, '') Vegzettseg
,dbo.fnGetDokumentumPedagogusOraszam(foglalkozas.C_TANARID, @isKlebersberg) KotelezoOraszam
,munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM MunkaidoKedvezmenyOraszam
,munkaidoKedvezmenyOka.C_NAME MunkaidoKedvezmenyOka
,SUM(foglalkozas.C_ORASZAM) HetiOraszam
,ISNULL(munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYORASZAM, 0) + SUM(foglalkozas.C_ORASZAM) LekotottOraszam
INTO #PedagogusTemp
FROM T_FOGLALKOZAS_OSSZES foglalkozas
INNER JOIN T_MUNKAUGYIADATOK_OSSZES munkaugyiAdatok ON munkaugyiAdatok.C_ALKALMAZOTTID = foglalkozas.C_TANARID
LEFT JOIN (
SELECT DISTINCT
kvegzettseg.C_TANARID TanarId
,STUFF((
SELECT DISTINCT ', ' + dic.C_NAME
FROM T_VEGZETTSEG_OSSZES bvegzettseg
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON bvegzettseg.C_VEGZETTSEGTIPUSID = dic.ID AND dic.C_TANEVID = @tanevId AND dic.TOROLT = 'F'
WHERE
bvegzettseg.C_TANARID = kvegzettseg.C_TANARID
AND bvegzettseg.TOROLT = 'F'
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') Vegzettseg
FROM T_VEGZETTSEG_OSSZES kvegzettseg
WHERE
kvegzettseg.TOROLT = 'F'
) AS vegzettsegAdat ON munkaugyiAdatok.C_ALKALMAZOTTID = vegzettsegAdat.TanarId
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkakor ON munkakor.ID = munkaugyiAdatok.C_MUNKAKORTIPUSA AND munkaugyiAdatok.C_TANEVID = munkakor.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kepesites ON kepesites.ID = munkaugyiAdatok.C_BESOROLASIFOKOZAT AND munkaugyiAdatok.C_TANEVID = kepesites.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkaidoKedvezmenyOka ON munkaidoKedvezmenyOka.ID = munkaugyiAdatok.C_MUNKAIDOKEDVEZMENYOKA AND munkaugyiAdatok.C_TANEVID = munkaidoKedvezmenyOka.C_TANEVID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @tanevId
AND foglalkozas.TOROLT = 'F'
AND munkaugyiAdatok.TOROLT = 'F'
AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%'
GROUP BY foglalkozas.C_TANARID, felhasznalo.C_NYOMTATASINEV, munkakor.C_NAME, kepesites.C_NAME, vegzettsegAdat.Vegzettseg, C_KOTELEZOORASZAM, C_MUNKAIDOKEDVEZMENYORASZAM, munkaidoKedvezmenyOka.C_NAME
ORDER BY felhasznalo.C_NYOMTATASINEV
--Osztályok / csoportok
SELECT
osztalyCsoport.C_NEV OsztalyCsoport
,SUM(C_ORASZAM) OsszesOraszam
INTO #OsztalyCsoportTemp
FROM T_FOGLALKOZAS_OSSZES foglalkozas
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @tanevId
AND foglalkozas.TOROLT = 'F'
AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%'
GROUP BY osztalyCsoport.C_NEV
ORDER BY osztalyCsoport.C_NEV
--Tantárgyfelosztás
SELECT
felhasznalo.C_NYOMTATASINEV PedagogusNeve
,osztalyCsoport.C_NEV OsztalyCsoport
,tantargy.C_NEV Tantargy
,foglalkozas.C_ORASZAM Oraszam
INTO #TantargyFelosztasTemp
FROM T_FOGLALKOZAS_OSSZES foglalkozas
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = foglalkozas.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON intezmenyAdatSzolgaltatas.C_TANEVID = foglalkozas.C_TANEVID AND intezmenyAdatSzolgaltatas.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @tanevId
AND foglalkozas.TOROLT = 'F'
AND felhasznalo.C_NYOMTATASINEV NOT LIKE '[[]HO%'
ORDER BY felhasznalo.C_NYOMTATASINEV
--Fejléc
SELECT
intezmenyAdatok.C_NEV IntezmenyNeve
,tanev.C_NEV Tanev
,intezmenyAdatok.C_ENGEDELYEZETTALLASHELYEK EngedelyezettAllashelyek
,ISNULL('Hatályos: <b>' + FORMAT(intezmenyAdatSzolgaltatas.C_ELFOGADOTTTTFDATUMA, 'yyyy.MM.dd.') +'</b> napjától','') ElfogadasDatuma
,(SELECT SUM(LekotottOraszam) FROM #PedagogusTemp) PedagogusSum
,(SELECT SUM(Osszesoraszam) FROM #OsztalyCsoportTemp) OsztalyCsoportSum
,(SELECT SUM(Oraszam) FROM #TantargyFelosztasTemp) TantargyFelosztasSum
FROM T_INTEZMENYADATOK_OSSZES intezmenyAdatok
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = intezmenyAdatok.C_TANEVID
INNER JOIN T_INTEZMENYADATSZOLGALTATAS_OSSZES intezmenyAdatSzolgaltatas ON
intezmenyAdatSzolgaltatas.C_INTEZMENYID = intezmenyAdatok.C_INTEZMENYID
AND intezmenyAdatSzolgaltatas.C_TANEVID = tanev.ID
WHERE
intezmenyAdatok.C_TANEVID = @tanevId
SELECT * FROM #PedagogusTemp ORDER BY PedagogusNev
SELECT * FROM #OsztalyCsoportTemp ORDER BY OsztalyCsoport
SELECT * FROM #TantargyFelosztasTemp ORDER BY PedagogusNeve
END
GO

View file

@ -0,0 +1,37 @@
-- Az előző óra adati tantárgy, osztálycsoport és tanár alapján
-- SZEKERES ANDRÁS (based on Telek Ákos fn_GetOraEvesSorszamLista)
-- 2017.05.08.
-- Modifed by: Zalán Máriusz
-- Date: 2018 10 03
-- Osztálycsoport - tantárgy összerendelés implementálása
-- 2019.01.27
-- Zalán Máriusz
DROP PROCEDURE IF EXISTS sp_GetElozoOraAdatai
GO
CREATE PROCEDURE sp_GetElozoOraAdatai
@tantargyId int
,@osztalycsoportId int
,@tanarId int
,@oraKezdeteDatum datetime
,@intezmenyId int
,@tanevId int
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP 1
tao.ID as Id
,tao.C_TEMA as Tema
,tao.C_DATUM as Datum
,fh.C_NYOMTATASINEV as HelyettesNev
,Lista.EvesSorszam
FROM fnGetEvesOraszamLista(@tantargyId, @osztalycsoportId, @tanarId, @oraKezdeteDatum, @intezmenyId, @tanevId) Lista
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = lista.ID
LEFT JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = tao.C_HELYETTESITOTANARID AND fh.TOROLT = 'F'
ORDER BY tao.C_ORAKEZDETE DESC, tao.C_ORAEVESSORSZAMA DESC
END
GO

View file

@ -0,0 +1,58 @@
-- =============================================
-- Author: Dőrr Tamás
-- Create date: 2017.02.24.
-- Description: Visszaadja, hogy megy diákok hiányoztak az aktuális tanítási óra előtti órájukról
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetElozoOranHianyzottTanulok
GO
CREATE PROCEDURE [sp_GetElozoOranHianyzottTanulok]
@OsztalyCsoportId int
,@Datum datetime
,@OraKezdete datetime
,@HianyzasTipus int
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #OsztalyTanuloi (TanuloId int)
INSERT INTO #OsztalyTanuloi (TanuloId)
SELECT C_TANULOID
FROM T_TANULOCSOPORT
WHERE C_OSZTALYCSOPORTID = @OsztalyCsoportId
AND C_BELEPESDATUM <= @Datum AND ISNULL(C_KILEPESDATUM, GETDATE()) > @Datum
AND TOROLT = 'F'
CREATE TABLE #Temp (
TanuloId int
,Tipus int
,Orakezdete datetime
)
INSERT INTO #Temp (TanuloId, Tipus, Orakezdete)
SELECT
ot.TanuloId as TanuloId
,tm.C_TIPUS as Tipus
,tn.C_ORAKEZDETE AS Orakezdete
FROM (
SELECT
tcs2.C_OSZTALYCSOPORTID AS ID
,tcs2.C_TANULOID
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = tcs.C_TANEVID AND tanev.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @OsztalyCsoportId
AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tanev.C_UTOLSOTANITASINAP)
AND tcs2.C_BELEPESDATUM <= GETDATE() AND (tcs2.C_KILEPESDATUM > GETDATE() OR tcs2.C_KILEPESDATUM IS NULL OR tcs2.C_KILEPESDATUM >= tanev.C_UTOLSOTANITASINAP)
AND tcs.TOROLT = 'F'
AND tcs2.TOROLT = 'F') ocs
INNER JOIN T_TANITASIORA tn ON tn.TOROLT = 'F' AND ocs.ID = tn.C_OSZTALYCSOPORTID AND tn.C_DATUM = @Datum AND tn.C_ORAKEZDETE < @OraKezdete
LEFT JOIN T_TANULOMULASZTAS tm ON tm.TOROLT = 'F' AND tm.C_TANITASIORAKID = tn.ID AND tm.C_TIPUS = @HianyzasTipus AND ocs.C_TANULOID = tm.C_ORATANULOIID
INNER JOIN #osztalytanuloi ot ON ot.TanuloId = ocs.C_TANULOID
SELECT sub.TanuloId
FROM #OsztalyTanuloi ot
OUTER APPLY (SELECT TOP(1) * FROM #Temp t WHERE ot.TanuloId = t.TanuloId ORDER BY Orakezdete DESC) sub
WHERE Tipus = @HianyzasTipus
END
GO

View file

@ -0,0 +1,175 @@
-- =============================================
-- Author: Telek Ákos
-- Create date: 2016.07.20.
-- Description: Entitás törléséhez lekérdezi az aktív kapcsolatait. Van-e olyan kapcsolódása, ahol vannak nem törölt rekordok. Visszaadja
-- Modifier: Zalán Máriusz
-- Date: 2020.03.06
-- Tanév paraméter kiegészítés
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetEntitasAktivKapcsolatai
GO
CREATE PROCEDURE sp_GetEntitasAktivKapcsolatai
@EntitasIDk AS XML /* a törlésre kijelölt entitás ID-k*/
,@EntitasNevek as XML /* a törlésre kijelölt entitások*/
,@tanevId int = null
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT OFF;
/*declare @cucc xml
set @cucc = '<EntitasNevek><Entitas>OrarendiOra</Entitas><Entitas>Tanar</Entitas></EntitasNevek>'*/
-- XML paraméter értelmezése
CREATE TABLE #tempEntitasNevek (
EntitasNev varchar(255)
)
CREATE TABLE #tempentitasIdk (
entitasId int
)
CREATE TABLE #tempConnections (
ID int
,Target_Table varchar(255)
,Target_Column varchar(255)
,Source_Table varchar(255)
,Source_Column varchar(255)
)
DECLARE @tanevColname nvarchar(128)
INSERT INTO #tempEntitasNevek
SELECT DISTINCT EntitasNev = 'T_'+Entitas.value('(.)[1]', 'varchar(50)')
FROM @EntitasNevek.nodes('EntitasNevek/Entitas') as EntitasNevek(Entitas)
INSERT INTO #tempentitasIdk
SELECT DISTINCT entitasId = entitasId.value('(.)[1]', 'int')
FROM @entitasIdk.nodes('Entitasok/EntitasId') as Entitasok(entitasId)
CREATE TABLE #result(
entitasId int
,targetTableName nvarchar(255)
,targetColumnName nvarchar(255)
,cnt INT
)
INSERT INTO #result (
entitasId
,cnt
) SELECT
entitasId
,0
FROM #tempentitasIdk
DECLARE
@sourceTable nvarchar(255)
,@sourceColumn nvarchar(255)
,@targetTable nvarchar(255)
,@targetColumn nvarchar(255)
,@tableName nvarchar(255)
CREATE TABLE #References (
PKTABLE_QUALIFIER nvarchar(255)
,PKTABLE_OWNER nvarchar(255)
,PKTABLE_NAME nvarchar(255)
,PKCOLUMN_NAME nvarchar(255)
,FKTABLE_QUALIFIER nvarchar(255)
,FKTABLE_OWNER nvarchar(255)
,FKTABLE_NAME nvarchar(255)
,FKCOLUMN_NAME nvarchar(255)
,KEY_SEQ int
,UPDATE_RULE int
,DELETE_RULE int
,FK_NAME nvarchar(255)
,PK_NAME nvarchar(255)
,DEFERRABILITY int
);
DECLARE table_cur CURSOR LOCAL FOR
SELECT EntitasNev FROM #tempEntitasNevek
OPEN table_cur
FETCH NEXT FROM table_cur
INTO @tableName
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO #References
EXEC sp_fkeys @tableName, 'dbo'
FETCH NEXT FROM table_cur
INTO @tableName
END
CLOSE table_cur
DEALLOCATE table_cur
/*A köv tanév miatt kell*/
UPDATE r SET
PKTABLE_NAME = PKTABLE_NAME+'_OSSZES'
FROM #References r
WHERE EXISTS (select 1 from sys.views WHERE name COLLATE DATABASE_DEFAULT = r.PKTABLE_NAME+'_OSSZES')
UPDATE r SET
FKTABLE_NAME = FKTABLE_NAME+'_OSSZES'
FROM #References r
WHERE EXISTS (select 1 from sys.views WHERE name COLLATE DATABASE_DEFAULT = r.FKTABLE_NAME+'_OSSZES')
DECLARE ref_cur CURSOR LOCAL FOR
SELECT PKTABLE_NAME, PKCOLUMN_NAME, FKTABLE_NAME, FKCOLUMN_NAME
FROM #references
WHERE FKCOLUMN_NAME != 'ID' /*Azért szűrjük az ID mezőt, mert a leszármazott tábláknál van rá referencia*/
AND (FKTABLE_NAME NOT LIKE ('T[_]DKT[_]%') OR FKTABLE_NAME IN ('T_DKT_FELADAT_OSSZES', 'T_DKT_FELADATFILE_OSSZES', 'T_DKT_FILE_OSSZES') )
OPEN ref_cur
FETCH NEXT FROM ref_cur
INTO @sourceTable, @sourceColumn, @targetTable, @targetColumn
WHILE @@FETCH_STATUS = 0 BEGIN
DECLARE @sql nvarchar(1000), @FINALQUERY nvarchar(1000)
IF @tanevId IS NOT NULL BEGIN
SELECT
@tanevColname = c.name
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id ANd t.name = @targetTable
WHERE c.name in ('C_TANEVID','C_ALTANEVID')
END
SET @sql = N'
SELECT #tempentitasIdk.entitasId, '''+@targetTable+''','''+@targetColumn+''', COUNT(1) AS cnt
FROM '+@targetTable+'
INNER JOIN #tempentitasIdk ON #tempentitasIdk.entitasId = '+@targetTable+'.'+@targetColumn+'
WHERE 1=1 '
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = @targetTable AND COLUMN_NAME = 'TOROLT') BEGIN
SET @sql = @sql + N'
AND ' + @targetTable + '.TOROLT = ''F'''
END
IF @tanevColname IS NOT NULL BEGIN
SET @sql += ' AND '+@targetTable+'.'+@tanevColname+' = @tanevId'
END
SET @sql = @sql + N'
GROUP BY #tempentitasIdk.entitasId'
INSERT INTO #result
EXEC sp_executesql @sql,N'@tanevId int',@tanevId = @tanevId
FETCH NEXT FROM ref_cur
INTO @sourceTable, @sourceColumn, @targetTable, @targetColumn
END
CLOSE ref_cur
DEALLOCATE ref_cur
IF OBJECT_ID('tempdb..#tempentitasIdk') IS NOT NULL BEGIN
DROP TABLE #tempentitasIdk
END
SELECT entitasId, targetTableName, targetColumnName, SUM(cnt) SUMROWCOUNT
FROM #result
GROUP BY entitasId, targetTableName, targetColumnName
HAVING SUM(cnt) > 0
END
GO

View file

@ -0,0 +1,54 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetErettsegiEredmenyekReszletekData]
GO
-- =============================================
-- Description: <Előszedjük a tanuló érettségi eredményeit részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetErettsegiEredmenyekReszletekData]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
--NOTE: Azért CAST-oljuk NVARCHAR(10)-re, mert kellenek ideiglenes ID-k c# oldalon, amik stringesek!
CAST(ErettsegiEredmeny.ID AS NVARCHAR(10)) ID
,ErettsegiEredmeny.C_ERETTSEGITANTARGY ErettsegiTantargyId
,ErettsegiEredmeny.C_ERETTSEGISZINT ErettsegiSzintId
,ErettsegiEredmeny.C_ERETTSEGITIPUS ErettsegiTipusId
,ErettsegiEredmeny.C_IRASBELIPONTSZAM IrasbeliPontszam
,ErettsegiEredmeny.C_SZOBELIPONTSZAM SzobeliPontszam
,ErettsegiEredmeny.C_GYAKORLATPONTSZAM GyakorlatiPontszam
,ErettsegiEredmeny.C_MEGJEGYZES Megjegyzes
--NOTE: Azért CAST-oljuk NVARCHAR(3)-re, mert ha nincs értéke, akkor "-"-et írunk c# oldalon, ami stringes!
,CAST(ErettsegiEredmeny.C_OSSZPONTSZAM AS NVARCHAR(3)) OsszPontszam
,ErettsegiTantargyAdatok.C_OSSZMAXPONTSZAM OsszMaxPontszam
FROM
T_ERETTSEGIEREDMENY_OSSZES ErettsegiEredmeny
LEFT JOIN
T_ERETTSEGITANTARGY_OSSZES ErettsegiTantargy ON
ErettsegiTantargy.ID = ErettsegiEredmeny.C_ERETTSEGITANTARGY
AND ErettsegiTantargy.C_ALINTEZMENYID = @pIntezmenyId
AND ErettsegiTantargy.C_ALTANEVID = @pTanevId
AND ErettsegiTantargy.TOROLT = 'F'
LEFT JOIN
T_ERETTSEGITANTARGYADATOK_OSSZES ErettsegiTantargyAdatok ON
ErettsegiTantargyAdatok.C_ERETTSEGITANTARGY = ErettsegiTantargy.ID
AND ErettsegiTantargyAdatok.C_ERETTSEGISZINT = ErettsegiEredmeny.C_ERETTSEGISZINT
AND ErettsegiTantargyAdatok.C_INTEZMENYID = @pIntezmenyId
AND ErettsegiTantargyAdatok.C_TANEVID = @pTanevId
AND ErettsegiTantargyAdatok.TOROLT = 'F'
WHERE
ErettsegiEredmeny.C_TANULOID = @pTanuloId
AND ErettsegiEredmeny.C_INTEZMENYID = @pIntezmenyId
AND ErettsegiEredmeny.C_TANEVID = @pTanevId
AND ErettsegiEredmeny.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,154 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetErettsegiKerdesek]
GO
CREATE PROCEDURE [dbo].[sp_GetErettsegiKerdesek]
@tanuloId int,
@kerdesSzam int,
@erettsegiTantargyId int,
@erettsegiSzintId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SorokSzama INT
DECLARE @TempErettsegi TABLE
(
Id int,
Cim nvarchar(1000),
ErettsegiSzintId int,
ErettsegiTantargyId int,
HelyesValasz nvarchar(1000),
Kategoria nvarchar(10),
Kep nvarchar(max),
Kerdes nvarchar(1000),
Szoveg nvarchar(2000),
Tema nvarchar(1000),
ValaszB nvarchar(1000),
ValaszC nvarchar(1000),
ValaszD nvarchar(1000),
ValaszE nvarchar(1000),
ValaszF nvarchar(1000),
ValaszSzoveges nvarchar(1000)
)
IF (@kerdesSzam = 0)
BEGIN
SET @kerdesSzam = 50000
END
-- Új kérdesek betöltése
INSERT @TempErettsegi (
Id, Cim, ErettsegiSzintId, ErettsegiTantargyId,
HelyesValasz, Kategoria, Kep, Kerdes, Szoveg, Tema,
ValaszB, ValaszC, ValaszD, ValaszE, ValaszF, ValaszSzoveges)
SELECT TOP (@kerdesSzam)
[ID] as Id
,[C_CIM] as Cim
,[C_ERETTSEGISZINTID] as ErettsegiSzintId
,[C_ERETTSEGITANTARGYID] as ErettsegiTantargyId
,[C_HELYESVALASZ] as HelyesValasz
,[C_KATEGORIA] as Kategoria
,[C_KEP] as Kep
,[C_KERDES] as Kerdes
,[C_SZOVEG] as Szoveg
,[C_TEMA] as Tema
,[C_VALASZB] as ValaszB
,[C_VALASZC] as ValaszC
,[C_VALASZD] as ValaszD
,[C_VALASZE] as ValaszE
,[C_VALASZF] as ValaszF
,[C_VALASZSZOVEGES] as ValaszSzoveges
FROM T_ERETTSEGIKERDES ek
WHERE ek.C_ERETTSEGISZINTID = @erettsegiSzintId AND
ek.C_ERETTSEGITANTARGYID = @erettsegiTantargyId AND
NOT EXISTS (SELECT 1 FROM T_ERETTSEGIVALASZ tv WHERE tv.C_TANULOID = @tanuloId AND tv.C_ERETTSEGIKERDESID = ek.ID)
ORDER BY NEWID()
SELECT @SorokSzama = COUNT(1) FROM @TempErettsegi
-- Utoljára hibás kérdések betöltése
IF (@SorokSzama < @kerdesSzam)
BEGIN
INSERT @TempErettsegi (
Id, Cim, ErettsegiSzintId, ErettsegiTantargyId,
HelyesValasz, Kategoria, Kep, Kerdes, Szoveg, Tema,
ValaszB, ValaszC, ValaszD, ValaszE, ValaszF, ValaszSzoveges)
SELECT TOP (@kerdesSzam - @SorokSzama)
[ID] as Id
,[C_CIM] as Cim
,[C_ERETTSEGISZINTID] as ErettsegiSzintId
,[C_ERETTSEGITANTARGYID] as ErettsegiTantargyId
,[C_HELYESVALASZ] as HelyesValasz
,[C_KATEGORIA] as Kategoria
,[C_KEP] as Kep
,[C_KERDES] as Kerdes
,[C_SZOVEG] as Szoveg
,[C_TEMA] as Tema
,[C_VALASZB] as ValaszB
,[C_VALASZC] as ValaszC
,[C_VALASZD] as ValaszD
,[C_VALASZE] as ValaszE
,[C_VALASZF] as ValaszF
,[C_VALASZSZOVEGES] as ValaszSzoveges
FROM T_ERETTSEGIKERDES ek
WHERE ek.C_ERETTSEGISZINTID = @erettsegiSzintId AND
ek.C_ERETTSEGITANTARGYID = @erettsegiTantargyId AND
NOT EXISTS (SELECT 1 FROM @TempErettsegi te WHERE te.Id = ek.ID) AND
'F' = (SELECT TOP 1 C_HELYES FROM T_ERETTSEGIVALASZ tv WHERE tv.C_TANULOID = @tanuloId AND tv.C_ERETTSEGIKERDESID = ek.ID ORDER BY C_DATUM DESC)
ORDER BY NEWID()
END
SELECT @SorokSzama = COUNT(1) FROM @TempErettsegi
-- Maradék elemek véletlenszerűen
IF (@SorokSzama < @kerdesSzam)
BEGIN
INSERT @TempErettsegi (
Id, Cim, ErettsegiSzintId, ErettsegiTantargyId,
HelyesValasz, Kategoria, Kep, Kerdes, Szoveg, Tema,
ValaszB, ValaszC, ValaszD, ValaszE, ValaszF, ValaszSzoveges)
SELECT TOP (@kerdesSzam - @SorokSzama)
[ID] as Id
,[C_CIM] as Cim
,[C_ERETTSEGISZINTID] as ErettsegiSzintId
,[C_ERETTSEGITANTARGYID] as ErettsegiTantargyId
,[C_HELYESVALASZ] as HelyesValasz
,[C_KATEGORIA] as Kategoria
,[C_KEP] as Kep
,[C_KERDES] as Kerdes
,[C_SZOVEG] as Szoveg
,[C_TEMA] as Tema
,[C_VALASZB] as ValaszB
,[C_VALASZC] as ValaszC
,[C_VALASZD] as ValaszD
,[C_VALASZE] as ValaszE
,[C_VALASZF] as ValaszF
,[C_VALASZSZOVEGES] as ValaszSzoveges
FROM T_ERETTSEGIKERDES ek
WHERE ek.C_ERETTSEGISZINTID = @erettsegiSzintId AND
ek.C_ERETTSEGITANTARGYID = @erettsegiTantargyId AND
NOT EXISTS (SELECT 1 FROM @TempErettsegi te WHERE te.Id = ek.ID)
ORDER BY NEWID()
END
SELECT TOP (@kerdesSzam)
Id as Id
,Cim as Cim
,ErettsegiSzintId as ErettsegiSzintId
,ErettsegiTantargyId as ErettsegiTantargyId
,HelyesValasz as HelyesValasz
,Kategoria as Kategoria
,Kep as Kep
,Kerdes as Kerdes
,Szoveg as Szoveg
,Tema as Tema
,ValaszB as ValaszB
,ValaszC as ValaszC
,ValaszD as ValaszD
,ValaszE as ValaszE
,ValaszF as ValaszF
,ValaszSzoveges as ValaszSzoveges
FROM @TempErettsegi
END
GO

View file

@ -0,0 +1,78 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetErtekelesFotargyiFoglalkozasData]
GO
-- =============================================
-- Description: <Felhasználóhoz köthetõ foglalkozások fõtárgy adatai az értékelések szûréséhez>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetErtekelesFotargyiFoglalkozasData]
@pTanarId INT
,@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
MAX(foglalkozas.ID) ID
,foglalkozas.C_OSZTALYCSOPORTID OsztalyCsoportId
,fotargy.ID TantargyId
,MAX(fotargy.C_NEV) TantargyNev
,MAX(osztalyCsoport.C_NEV + ' - ' + fotargy.C_NEV) Nev
,MAX(osztalyCsoport.C_EVFOLYAMTIPUSA) Evfolyam
,MAX(osztalyCsoport.C_NEV) OsztalyCsoportNev
,MAX(csoport.C_TIPUSA) CsoportTipusId
FROM
T_FOGLALKOZAS_OSSZES foglalkozas
LEFT JOIN
T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
AND osztalyCsoport.C_TANEVID = @pTanevId
AND osztalyCsoport.TOROLT = 'F'
LEFT JOIN
T_CSOPORT_OSSZES csoport ON
csoport.ID = foglalkozas.C_OSZTALYCSOPORTID
AND csoport.C_ALTANEVID = @pTanevId
AND csoport.TOROLT = 'F'
LEFT JOIN
T_TANTARGY_OSSZES tantargy ON
tantargy.ID = foglalkozas.C_TANTARGYID
AND tantargy.C_TANEVID = @pTanevId
AND tantargy.TOROLT = 'F'
LEFT JOIN
T_FELHASZNALO_OSSZES felhasznalo ON
felhasznalo.ID = foglalkozas.C_TANARID
AND felhasznalo.C_TANEVID = @pTanevId
AND felhasznalo.TOROLT = 'F'
LEFT JOIN
T_TANTARGY_OSSZES fotargy ON
fotargy.C_TANEVID = @pTanevId
AND fotargy.C_FOTARGYE = 'T'
AND fotargy.TOROLT = 'F'
AND fotargy.ID IN (
SELECT
C_FOTARGYID
FROM
T_TANTARGY_OSSZES
WHERE
ID = foglalkozas.C_TANTARGYID
AND C_TANEVID = @pTanevId
AND TOROLT = 'F'
)
WHERE
fotargy.ID IS NOT NULL
AND foglalkozas.C_TANARID = @pTanarId
AND foglalkozas.C_TANEVID = @pTanevId
AND foglalkozas.TOROLT = 'F'
GROUP BY
foglalkozas.C_OSZTALYCSOPORTID
,fotargy.ID
ORDER BY
Evfolyam ASC
,OsztalyCsoportNev ASC
,TantargyNev ASC
END
GO

View file

@ -0,0 +1,23 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetErtesitendoNebuloList]
GO
CREATE PROCEDURE [dbo].[sp_GetErtesitendoNebuloList]
@pFelvetelStatuszaTipusFelveve INT
,@pFelvetelStatuszaTipusNemFelveve INT
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM
T_NEBULO
WHERE
TOROLT = 'F'
AND (C_FELVETELSTATUSZA = @pFelvetelStatuszaTipusFelveve OR C_FELVETELSTATUSZA = @pFelvetelStatuszaTipusNemFelveve)
AND (C_ERTESITESDATUMA IS NULL OR C_ERTESITESDATUMA < LASTCHANGED)
END
GO

View file

@ -0,0 +1,78 @@
-- ===================================================================================================
-- Description: <Felhasználóhoz tartozó faliújságbejegyzések és tanévrendje események lekérdezése>
-- ===================================================================================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFaliujsagBejegyzesek]
GO
CREATE PROCEDURE [dbo].[sp_GetFaliujsagBejegyzesek]
@pUserId int
,@pDate datetime
,@pEsemenyTipusFaliujsagBejegyzes int
,@pFeladatKategoriaId int
AS
BEGIN
SET NOCOUNT ON;
SELECT
y.ID AS ID
,y.Erv_kezd AS Erv_kezd
,y.Erv_vege AS Erv_vege
,y.Cim AS Cim
,y.Szoveg AS Szoveg
,y.SzovegWeb AS SzovegWeb
,fh.C_NYOMTATASINEV AS Bejegyzo
,fh.C_PROFILKEP AS ProfilKep
,IIF(ma.C_VEZETOIORASZAMOK = 6571, ma.C_MUNKAKORTIPUSA, ISNULL(ma.C_VEZETOIORASZAMOK, 6331)) AS Munkakor
,y.C_MINDENKINEK
FROM (
SELECT
tes.ID AS ID
,tes.C_KEZDETE AS Erv_kezd
,tes.C_VEGE AS Erv_vege
,tes.C_TARGY AS Cim
,tes.C_TARTALOM AS Szoveg
,tes.C_TARTALOMWEB AS SzovegWeb
,tes.C_FELJEGYZOID
,tes.C_MINDENKINEK
FROM T_TANULOESEMENY tes
INNER JOIN T_OSZTALYCSOPORT_TANULOESEMENY ocstes ON ocstes.C_TANULOESEMENYID = tes.ID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = ocstes.C_OSZTALYCSOPORTID
AND (ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID
AND tcs.C_TANULOID = @pUserId
AND tcs.C_BELEPESDATUM <= @pDate
AND (tcs.C_KILEPESDATUM >= @pDate OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
LEFT JOIN T_TANULO_TANULOESEMENY ttes ON tes.ID = ttes.C_TANULOESEMENYID
WHERE tes.C_KEZDETE <= @pDate
AND (tes.C_VEGE IS NULL OR tes.C_VEGE >= @pDate)
AND tes.TOROLT = 'F'
AND (tes.C_FALIUJSAGMEGJELENES = 'T' OR tes.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes)
AND (ttes.C_TANULOID IS NULL OR ttes.C_TANULOID = @pUserId)
UNION
SELECT
tes.ID AS ID
,tes.C_KEZDETE AS Erv_kezd
,tes.C_VEGE AS Erv_vege
,tes.C_TARGY AS Cim
,tes.C_TARTALOM AS Szoveg
,tes.C_TARTALOMWEB AS SzovegWeb
,tes.C_FELJEGYZOID
,tes.C_MINDENKINEK
FROM T_TANULOESEMENY tes
INNER JOIN T_TANULO_TANULOESEMENY ttes ON tes.ID = ttes.C_TANULOESEMENYID
WHERE tes.C_MINDENKINEK = 'T'
AND tes.C_KEZDETE <= @pDate
AND (tes.C_VEGE IS NULL OR tes.C_VEGE >= @pDate)
AND tes.TOROLT = 'F'
AND (tes.C_FALIUJSAGMEGJELENES = 'T' OR tes.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzes)
AND ttes.C_TANULOID = @pUserId
) y
INNER JOIN T_FELHASZNALO fh ON y.C_FELJEGYZOID = fh.ID
AND fh.TOROLT = 'F'
LEFT JOIN T_MUNKAUGYIADATOK ma ON ma.C_ALKALMAZOTTID = fh.ID
AND ma.TOROLT = 'F'
ORDER BY y.Erv_kezd DESC, y.ID DESC
END
GO

View file

@ -0,0 +1,26 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFelhasznaloErintettOsztalyai]
GO
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloErintettOsztalyai]
@felhasznaloId INT
,@feladatellatasihelyId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
ocs.ID AS ID
,ocs.C_NEV AS Nev
,'1' AS Tipus
,cs.C_TIPUSA AS CsoportTipusa
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
FROM T_OSZTALYCSOPORT ocs
LEFT JOIN T_OSZTALY o ON o.ID=ocs.ID AND (o.C_OSZTALYFONOKID=@felhasznaloId OR o.C_OFOHELYETTESID = @felhasznaloId)
LEFT JOIN T_CSOPORT cs ON cs.ID=ocs.ID AND cs.C_CSOPORTVEZETOID=@felhasznaloId
INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely ON ocs.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
WHERE ocs.TOROLT = 'F' AND (@feladatellatasihelyId IS NULL OR ocs.C_FELADATELLATASIHELYID=@feladatellatasihelyId)
AND NOT (o.ID IS NULL AND cs.ID IS NULL)
ORDER BY cs.C_TIPUSA, ocs.C_EVFOLYAMTIPUSA
END
GO

View file

@ -0,0 +1,44 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFelhasznaloErintettTargyai]
GO
-- =============================================
-- Author: <Hoffmann Zsolt>
-- Create date: <2016. 03. 03.>
-- Description: <Felhasználóhoz kötheto tantárgyak és egyéb tantárgyak>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloErintettTargyai]
@felhasznaloId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
WITH q (ID,Nev,Tipus) AS
(SELECT
T_TANTARGY.ID,
T_TANTARGY.C_NEV Nev,
'1' Tipus
FROM
T_TANTARGY
INNER JOIN T_FOGLALKOZAS ON T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID
WHERE
T_TANTARGY.TOROLT = 'F' AND
T_TANTARGY.C_FOTARGYID IS NULL AND
(T_FOGLALKOZAS.C_TANARID = @felhasznaloId OR @felhasznaloId IS NULL)
)
SELECT ID,Nev,tipus FROM q
UNION
SELECT DISTINCT
T_TANTARGY.ID,
T_TANTARGY.C_NEV Nev,
'3' Tipus
FROM T_TANTARGY
INNER JOIN T_FOGLALKOZAS ON T_FOGLALKOZAS.C_TANTARGYID = T_TANTARGY.ID AND T_FOGLALKOZAS.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT ON T_OSZTALYCSOPORT.ID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID AND T_OSZTALYCSOPORT.TOROLT = 'F'
INNER JOIN T_OSZTALY ON T_OSZTALY.ID = T_OSZTALYCSOPORT.ID AND T_OSZTALY.TOROLT = 'F'
WHERE
T_TANTARGY.TOROLT = 'F'
AND (T_OSZTALY.C_OSZTALYFONOKID = @felhasznaloId OR T_OSZTALY.C_OFOHELYETTESID = @felhasznaloId)
AND T_TANTARGY.ID not in (SELECT ID FROM q)
END
GO

View file

@ -0,0 +1,59 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFelhasznaloFoglalkozasokErtekelesekhez]
GO
-- =============================================
-- Description: <Felhasználóhoz köthetõ foglalkozások az értékelések szûréséhez>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloFoglalkozasokErtekelesekhez]
@pTanarId INT
,@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
foglalkozas.ID ID
,foglalkozas.C_OSZTALYCSOPORTID OsztalyCsoportId
,tantargy.ID TantargyId
,tantargy.C_Nev TantargyNev
,osztalyCsoport.C_NEV + ' - ' + tantargy.C_Nev Nev
,osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam
,osztalyCsoport.C_NEV OsztalyCsoportNev
,csoport.C_TIPUSA CsoportTipusId
FROM
T_FOGLALKOZAS_OSSZES foglalkozas
LEFT JOIN
T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
AND osztalyCsoport.C_TANEVID = @pTanevId
AND osztalyCsoport.TOROLT = 'F'
LEFT JOIN
T_CSOPORT_OSSZES csoport ON
csoport.ID = foglalkozas.C_OSZTALYCSOPORTID
AND csoport.C_ALTANEVID = @pTanevId
AND csoport.TOROLT = 'F'
LEFT JOIN
T_TANTARGY_OSSZES tantargy ON
tantargy.ID = foglalkozas.C_TANTARGYID
AND tantargy.C_TANEVID = @pTanevId
AND tantargy.TOROLT = 'F'
LEFT JOIN
T_FELHASZNALO_OSSZES felhasznalo ON
felhasznalo.ID = foglalkozas.C_TANARID
AND felhasznalo.C_TANEVID = @pTanevId
AND felhasznalo.TOROLT = 'F'
WHERE
foglalkozas.C_TANEVID = @pTanevId
AND foglalkozas.C_TANARID = @pTanarId
AND foglalkozas.TOROLT = 'F'
ORDER BY
Evfolyam ASC
,OsztalyCsoportNev ASC
,TantargyNev ASC
END
GO

View file

@ -0,0 +1,122 @@
-- =============================================
-- Author: Sólyom Péter
-- Create date: 2016.04.05.
-- Description: Lekérdezi a felhasználóhoz tartozó jogokat (osztályfőnök, csoportvezető, stb.)
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetFelhasznaloJogok
GO
CREATE PROCEDURE sp_GetFelhasznaloJogok
@FELHASZNALOID INT,
@SZEREPKORTIPUS INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TEMPJOGOK TABLE (JOG nvarchar(100))
DECLARE @szerepkorjog nvarchar(100)
-- SZEREPKÖR JOGOK
SELECT @szerepkorjog =
CASE @SZEREPKORTIPUS
WHEN 1758 THEN N'Adminisztrator'
WHEN 1760 THEN N'Naplo'
WHEN 1761 THEN N'Ellenorzo'
WHEN 7371 THEN N'PenzugyiAdmin'
WHEN 7372 THEN N'Penztaros'
WHEN 7373 THEN N'Alairo'
WHEN 7374 THEN N'eUgyintezo'
WHEN 7703 THEN N'EtkezesiAdmin'
WHEN 7704 THEN N'EtkezesiEllenorzo'
WHEN 7705 THEN N'TeremberletJelenletEllenorzo'
WHEN 7698 THEN N'GazdasagiUgyintezo'
WHEN 7702 THEN N'FokuszMonitoring'
WHEN 7781 THEN N'Alkalmazott'
WHEN 7789 THEN N'IskolaEgeszsegugyiKoordinator'
WHEN 7790 THEN N'Vedono'
WHEN 7791 THEN N'Iskolaorvos'
WHEN 7792 THEN N'IskolaEgeszsegugyiAsszisztens'
WHEN 7793 THEN N'IskolaEgeszsegugyiLekerdezo'
WHEN 8753 THEN N'BelepokartyaAdmin'
WHEN 8755 THEN N'LELTAR_CONCERNED'
WHEN 8824 THEN N'Konyvtaros'
WHEN 8828 THEN N'FELTAR_EsetKezelo'
WHEN 8829 THEN N'FELTAR_EszkozMenedzser'
WHEN 8961 THEN N'KerdoivKitolto_KerdoivKezelo'
WHEN 9001 THEN N'Dualis_Admin'
WHEN 9061 THEN N'FELTAR_SzerzodesMenedzser'
WHEN 9062 THEN N'FELTAR_EsetJovahagyo'
WHEN 9063 THEN N'FELTAR_EsetKozremukodo'
WHEN 9064 THEN N'FELTAR_Munkavegzo'
END
INSERT INTO @TEMPJOGOK SELECT @szerepkorjog
-- RENDSZERGAZDA VAGY SZUPERADMIN
INSERT INTO @TEMPJOGOK
SELECT DISTINCT C_JOG JOG
FROM T_JOGOSULTSAG
JOIN T_JOGOSULTSAG_FELHASZNALO FELHASZNALOJOG ON FELHASZNALOJOG.C_JOGOSULTSAGID = T_JOGOSULTSAG.ID
WHERE T_JOGOSULTSAG.TOROLT = 'F'
AND FELHASZNALOJOG.C_FELHASZNALOID = @FELHASZNALOID
AND T_JOGOSULTSAG.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
UNION
-- OSZTÁLYFŐNÖK
SELECT DISTINCT 'Osztalyfonok'
FROM T_OSZTALY OSZT
LEFT JOIN T_MUNKAUGYIADATOK MUNKAUGY ON MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
WHERE (OSZT.C_OSZTALYFONOKID = @FELHASZNALOID OR OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F')
OR (MUNKAUGY.TOROLT='F' AND
MUNKAUGY.C_VEZETOIORASZAMOK BETWEEN 6572 AND 6574) -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
OR EXISTS (SELECT 1
FROM T_SZEREPKOR
INNER JOIN T_FELHASZNALO_SZEREPKOR FELHASZNALOSZEREPKOR ON FELHASZNALOSZEREPKOR.C_SZEREPKORID = T_SZEREPKOR.ID
WHERE T_SZEREPKOR.TOROLT = 'F'
AND FELHASZNALOSZEREPKOR.C_FELHASZNALOID = @FELHASZNALOID
AND T_SZEREPKOR.C_SZEREPKORTIPUS = 1758)
-- ÉVFOLYAMFELELŐS
UNION
SELECT TOP 1 'Evfolyamfelelos'
FROM T_OSZTALY OSZT
WHERE OSZT.C_OFOHELYETTESID = @FELHASZNALOID AND OSZT.TOROLT ='F'
-- CSOPORTVEZETŐ
UNION
SELECT TOP 1 'CsoportVezeto'
FROM T_CSOPORT CSOP
WHERE CSOP.C_CSOPORTVEZETOID = @FELHASZNALOID AND CSOP.TOROLT = 'F'
-- SZUPEROSZTÁLYFŐNÖK (IGAZGATÓ, ÉVFOLYAMFELELŐS)
UNION
SELECT TOP 1 'SzuperOsztalyfonok'
FROM T_MUNKAUGYIADATOK MUNKAUGY
WHERE (MUNKAUGY.C_ALKALMAZOTTID = @FELHASZNALOID
AND MUNKAUGY.TOROLT='F'
AND MUNKAUGY.C_VEZETOIORASZAMOK BETWEEN 6572 AND 6574) -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
OR EXISTS (SELECT 1
FROM T_SZEREPKOR
INNER JOIN T_FELHASZNALO_SZEREPKOR FELHASZNALOSZEREPKOR ON FELHASZNALOSZEREPKOR.C_SZEREPKORID = T_SZEREPKOR.ID
WHERE T_SZEREPKOR.TOROLT = 'F'
AND FELHASZNALOSZEREPKOR.C_FELHASZNALOID = @FELHASZNALOID
AND T_SZEREPKOR.C_SZEREPKORTIPUS = 1758)
UNION -- TANÁR
SELECT TOP 1 'Tanar'
FROM T_FOGLALKOZAS FOGL
WHERE FOGL.C_TANARID = @FELHASZNALOID AND FOGL.TOROLT = 'F'
UNION
SELECT TOP 1 'Tanar'
FROM T_HELYETTESITESIIDOSZAK HEID
WHERE HEID.C_HELYETTESTANAROKID = @FELHASZNALOID AND HEID.TOROLT = 'F'
UNION
SELECT TOP 1 'Tanar'
FROM T_TANITASIORA TNO
WHERE (TNO.C_HELYETTESITOTANARID = @FELHASZNALOID OR TNO.C_TANARID = @FELHASZNALOID) AND TNO.TOROLT = 'F'
UNION
SELECT TOP 1 'Tanulo'
FROM T_TANULO tt
WHERE ID= @FELHASZNALOID AND tt.TOROLT = 'F'
SELECT t.JOG
FROM @TEMPJOGOK T
JOIN T_JOGOSULTSAG JOGOS ON JOGOS.C_JOG = T.JOG
WHERE JOGOS.C_SZEREPKORTIPUS = @SZEREPKORTIPUS
END
GO

View file

@ -0,0 +1,53 @@
-- =============================================
-- Description: <Felhasználóhoz köthető osztályok foglalkozások alapján az értékelések szűréséhez>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]
GO
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]
@felhasznaloId INT
,@osztaly VARCHAR(32)
,@csoport VARCHAR(32)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT DISTINCT
CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END AS NumberOrder
,CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END AS NumberAndTextOrder
,osztalyCsoport.ID AS ID
,osztalyCsoport.C_NEV AS Nev
,CASE WHEN Osztaly IS NOT NULL THEN @osztaly ELSE @csoport END AS Tipus
,osztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
,csoport.C_TIPUSA AS CsoportTipusId
FROM
T_FOGLALKOZAS foglalkozas
LEFT JOIN T_OSZTALYCSOPORT osztalyCsoport
ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
LEFT JOIN
T_CSOPORT csoport ON
csoport.ID = foglalkozas.C_OSZTALYCSOPORTID
AND csoport.TOROLT = 'F'
LEFT JOIN T_TANTARGY tantargy
ON tantargy.ID = foglalkozas.C_TANTARGYID
LEFT JOIN T_FELHASZNALO felhasznalo
ON felhasznalo.ID = foglalkozas.C_TANARID
LEFT JOIN (SELECT ID, 'T' AS Osztaly FROM T_OSZTALY_OSSZES) AS o
ON o.ID = osztalyCsoport.ID
LEFT JOIN (SELECT ID, C_TIPUSA FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F') AS cs
ON cs.ID = osztalyCsoport.ID
INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely
ON osztalyCsoport.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
WHERE
foglalkozas.TOROLT = 'F' AND
foglalkozas.C_TANARID = @felhasznaloId
ORDER BY
NumberOrder ASC, NumberAndTextOrder ASC, osztalyCsoport.C_NEV ASC
END
GO

View file

@ -0,0 +1,64 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesBeirasokData]
GO
-- =============================================
-- Description: <Előszedjük az osztály csoport tanulóinak feljegyzéseit a faliújság bejegyzések oldalhoz>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesBeirasokData]
@pTanevId INT
,@pIntezmenyId INT
,@pOsztalyCsoportId INT
,@pStartDate DATE
,@pTanarId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
TanuloEsemeny.ID AS ID
,TanuloEsemeny.C_ESEMENYDATUMA AS EsemenyDatuma
,TanuloEsemeny.C_TARGY AS Targy
,TanuloEsemeny.C_TARTALOM AS Tartalom
,TanuloEsemeny.C_TIPUS AS Tipus
,Tanulo.ID AS TanuloId
,Tanulo.C_NYOMTATASINEV AS TanuloNev
,IIF(Tanulo.C_NEVSORREND = 'T',
Tanulo.C_UTONEV + ' ' + Tanulo.C_VEZETEKNEV,
Tanulo.C_VEZETEKNEV + ' ' + Tanulo.C_UTONEV) AS TanuloNevElotagNelkul
,Tanulo.C_ANYJANEVE AS AnyjaNeve
,Tanulo.C_SZULETESIDATUM AS SzuletesiIdo
,Tanar.C_NYOMTATASINEV AS FeljegyzoNeve
,OsztalyCsoport.C_NEV AS OsztalyNev
,CASE
WHEN TanuloEsemeny.C_FELJEGYZOID = @pTanarId
THEN 'T'
ELSE 'F'
END AS Modosithato
,mua.C_SZERVEZETID AS FeljegyzoSzervezetId
FROM T_FELHASZNALO_OSSZES Tanulo
LEFT JOIN T_TANULO_TANULOESEMENY TanuloTanuloEsemeny ON TanuloTanuloEsemeny.C_TANULOID = Tanulo.ID
LEFT JOIN T_TANULOESEMENY_OSSZES TanuloEsemeny ON TanuloEsemeny.ID = TanuloTanuloEsemeny.C_TANULOESEMENYID
AND CAST(TanuloEsemeny.C_ESEMENYDATUMA AS DATE) >= @pStartDate
AND CAST(TanuloEsemeny.C_ESEMENYDATUMA AS DATE) <= CAST(GETDATE() AS DATE)
AND TanuloEsemeny.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.TOROLT = 'F'
LEFT JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = TANULO.ID
AND TanuloCsoport.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND OsztalyCsoport.TOROLT = 'F'
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = Tanar.ID
AND mua.TOROLT = 'F'
WHERE Tanulo.TOROLT = 'F'
AND OsztalyCsoport.ID = @pOsztalyCsoportId
AND Tanulo.C_TANEVID = @pTanevId
AND Tanulo.C_INTEZMENYID = @pIntezmenyId
ORDER BY
TanuloNevElotagNelkul
END
GO

View file

@ -0,0 +1,58 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesBeirasokReszletek]
GO
-- =============================================
-- Description: <Előszedjük a tanuló feljegyzéseit a beirások oldalhoz részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesBeirasokReszletek]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pToroltElemek CHAR = 'F'
,@pTanarId INT
,@pEsemenyTipusElektronikusUzenetId INT
,@pEsemenyTipusFaliujsagBejegyzesId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
TanuloEsemeny.ID AS ID
,TanuloEsemeny.C_ESEMENYDATUMA AS EsemenyDatuma
,TanuloEsemeny.C_TIPUS AS Tipus
,TanuloEsemeny.C_TARGY AS Targy
,TanuloEsemeny.C_TARTALOM AS Tartalom
,TanuloEsemeny.TOROLT AS Torolt
,Tanulo.ID AS TanuloId
,Tanulo.C_NYOMTATASINEV AS TanuloNev
,Tanar.C_NYOMTATASINEV AS FeljegyzoNeve
,CASE
WHEN TanuloEsemeny.C_FELJEGYZOID = @pTanarId
THEN 'T'
ELSE 'F'
END AS Modosithato
,mua.C_SZERVEZETID AS FeljegyzoSzervezetId
FROM T_TANULOESEMENY_OSSZES TanuloEsemeny
LEFT JOIN T_TANULO_TANULOESEMENY TanuloTanuloEsemeny ON TanuloTanuloEsemeny.C_TANULOESEMENYID = TanuloEsemeny.ID
LEFT JOIN T_FELHASZNALO_OSSZES Tanulo ON Tanulo.ID = TanuloTanuloEsemeny.C_TANULOID
AND Tanulo.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.C_INTEZMENYID = @pIntezmenyId
AND Tanar.C_TANEVID = @pTanevId
AND Tanar.TOROLT = 'F'
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = Tanar.ID
AND mua.TOROLT = 'F'
WHERE Tanulo.ID = @pTanuloId
AND TanuloEsemeny.C_INTEZMENYID = @pIntezmenyId
AND TanuloEsemeny.C_TANEVID = @pTanevId
AND TanuloEsemeny.C_TIPUS <> @pEsemenyTipusElektronikusUzenetId
AND TanuloEsemeny.C_TIPUS <> @pEsemenyTipusFaliujsagBejegyzesId
--Ha a törölt flag True, a törölt elemeket is visszaadjuk
AND TanuloEsemeny.TOROLT = IIF(@pToroltElemek = 'T',TanuloEsemeny.TOROLT, 'F')
END
GO

View file

@ -0,0 +1,45 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesElektronikusUzenetekListaNezetData]
GO
-- =============================================
-- Description: <Előszedjük az osztály csoport tanulóinak feljegyzéseit az elektronikus üzenetek oldal lista nézet tab-jához>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesElektronikusUzenetekListaNezetData]
@pIntezmenyId INT
,@pTanevId INT
,@pOsztalyCsoportId INT
,@pTanarId INT
,@pEsemenyTipusElektronikusUzenetId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
TanuloEsemeny.ID AS ID
,TanuloEsemeny.C_ESEMENYDATUMA AS EsemenyDatuma
,TanuloEsemeny.C_TARGY AS Targy
,TanuloEsemeny.C_TARTALOM AS Tartalom
,TanuloEsemeny.C_FALIUJSAGMEGJELENES AS IsFaliujsagMegjelenes
,Tanar.C_NYOMTATASINEV AS FeljegyzoNeve
,mua.C_SZERVEZETID AS FeljegyzoSzervezetId
FROM T_TANULOESEMENY_OSSZES TanuloEsemeny
LEFT JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.TOROLT = 'F'
LEFt JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = Tanar.ID
AND mua.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_TANULOESEMENY OsztalyCsoportTanuloEsemeny ON OsztalyCsoportTanuloEsemeny.C_TANULOESEMENYID = TanuloEsemeny.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = OsztalyCsoportTanuloEsemeny.C_OSZTALYCSOPORTID
AND OsztalyCsoport.TOROLT = 'F'
WHERE TanuloEsemeny.C_TIPUS = @pEsemenyTipusElektronikusUzenetId
AND TanuloEsemeny.C_INTEZMENYID = @pIntezmenyId
AND TanuloEsemeny.C_TANEVID = @pTanevId
AND TanuloEsemeny.C_FELJEGYZOID = @pTanarId
AND TanuloEsemeny.TOROLT = 'F'
AND OsztalyCsoport.ID = @pOsztalyCsoportId
END
GO

View file

@ -0,0 +1,41 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesElektronikusUzenetekModifyPopupData]
GO
-- =============================================
-- Description: <Előszedjük az osztály csoport tanulóit elektronikus üzenetek oldal modosító popup-jához>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesElektronikusUzenetekModifyPopupData]
@pOsztalyCsoportId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
Tanulo.ID ID
,Tanulo.ID TanuloId
,Tanulo.C_NYOMTATASINEV TanuloNev
,Tanulo.C_ANYJANEVE AnyjaNeve
,Tanulo.C_SZULETESIDATUM SzuletesiIdo
,OsztalyCsoport.C_NEV OsztalyNev
FROM
T_FELHASZNALO Tanulo
LEFT JOIN
T_TANULOCSOPORT TanuloCsoport ON
TanuloCsoport.C_TANULOID = Tanulo.ID
AND TanuloCsoport.TOROLT = 'F'
LEFT JOIN
T_OSZTALYCSOPORT OsztalyCsoport ON
OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND OsztalyCsoport.TOROLT = 'F'
WHERE
Tanulo.TOROLT = 'F'
AND OsztalyCsoport.ID = @pOsztalyCsoportId
ORDER BY
Tanulo.C_NYOMTATASINEV
END
GO

View file

@ -0,0 +1,70 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetData]
GO
-- =============================================
-- Description: <Előszedjük az osztály csoport tanulóinak feljegyzéseit az elektronikus üzenetek oldal napló nézet tab-jához>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetData]
@pTanevId INT
,@pIntezmenyId INT
,@pOsztalyCsoportId INT
,@pStartDate DATE
,@pTanarId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
TanuloEsemeny.ID AS ID
,TanuloEsemeny.C_ESEMENYDATUMA AS EsemenyDatuma
,TanuloEsemeny.C_TARGY AS Targy
,TanuloEsemeny.C_TARTALOM AS Tartalom
,TanuloEsemeny.C_TIPUS AS Tipus
,Tanulo.ID AS TanuloId
,Tanulo.C_NYOMTATASINEV AS TanuloNev
,IIF(Tanulo.C_NEVSORREND = 'T',
Tanulo.C_UTONEV + ' ' + Tanulo.C_VEZETEKNEV,
Tanulo.C_VEZETEKNEV + ' ' + Tanulo.C_UTONEV) AS TanuloNevElotagNelkul
,Tanulo.C_ANYJANEVE AS AnyjaNeve
,Tanulo.C_SZULETESIDATUM As SzuletesiIdo
,Tanar.C_NYOMTATASINEV AS FeljegyzoNeve
,IIF(Tanar.C_NEVSORREND = 'T',
Tanar.C_UTONEV + ' ' + Tanar.C_VEZETEKNEV,
Tanar.C_VEZETEKNEV + ' ' + Tanar.C_UTONEV) FeljegyzoNeveElotagNelkul
,OsztalyCsoport.C_NEV AS OsztalyNev
,CASE
WHEN TanuloEsemeny.C_FELJEGYZOID = @pTanarId
THEN 'T'
ELSE 'F'
END AS Modosithato
,mua.C_SZERVEZETID AS FeljegyzoSzervezetId
FROM T_FELHASZNALO_OSSZES Tanulo
INNER JOIN T_TANULO_OSSZES t ON t.ID = Tanulo.ID
AND t.C_ALTANEVID = Tanulo.C_TANEVID
AND t.C_ALINTEZMENYID = Tanulo.C_INTEZMENYID
AND t.TOROLT = 'F'
LEFT JOIN T_TANULO_TANULOESEMENY TanuloTanuloEsemeny ON TanuloTanuloEsemeny.C_TANULOID = Tanulo.ID
LEFT JOIN T_TANULOESEMENY_OSSZES TanuloEsemeny ON TanuloEsemeny.ID = TanuloTanuloEsemeny.C_TANULOESEMENYID
AND CAST(TanuloEsemeny.C_ESEMENYDATUMA AS DATE) >= @pStartDate
AND CAST(TanuloEsemeny.C_ESEMENYDATUMA AS DATE) <= CAST(GETDATE() AS DATE)
AND TanuloEsemeny.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.TOROLT = 'F'
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = Tanar.ID
AND mua.TOROLT = 'F'
LEFT JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulo.ID
AND TanuloCsoport.C_KILEPESDATUM IS NULL
AND TanuloCsoport.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND OsztalyCsoport.TOROLT = 'F'
WHERE Tanulo.TOROLT = 'F'
AND OsztalyCsoport.ID = @pOsztalyCsoportId
AND Tanulo.C_TANEVID = @pTanevId
AND Tanulo.C_INTEZMENYID = @pIntezmenyId
ORDER BY TanuloNevElotagNelkul
END
GO

View file

@ -0,0 +1,55 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetReszletek]
GO
-- =============================================
-- Description: <Előszedjük a tanuló feljegyzéseit az elektronikus üzenetek oldal napló nézet tab-jához részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesElektronikusUzenetekNaploNezetReszletek]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pToroltElemek CHAR = 'F'
,@pTanarId INT
,@pEsemenyTipusElektronikusUzenetId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
TanuloEsemeny.ID AS ID
,TanuloEsemeny.C_ESEMENYDATUMA AS EsemenyDatuma
,TanuloEsemeny.C_TIPUS AS Tipus
,TanuloEsemeny.C_TARGY AS Targy
,TanuloEsemeny.C_TARTALOM AS Tartalom
,TanuloEsemeny.TOROLT AS Torolt
,Tanulo.ID AS TanuloId
,Tanulo.C_NYOMTATASINEV AS TanuloNev
,Tanar.C_NYOMTATASINEV AS FeljegyzoNeve
,CASE
WHEN TanuloEsemeny.C_FELJEGYZOID = @pTanarId
THEN 'T'
ELSE 'F'
END AS Modosithato
,mua.C_SZERVEZETID AS FeljegyzoSzervezetId
FROM T_TANULOESEMENY_OSSZES TanuloEsemeny
LEFT JOIN T_TANULO_TANULOESEMENY TanuloTanuloEsemeny ON TanuloTanuloEsemeny.C_TANULOESEMENYID = TanuloEsemeny.ID
LEFT JOIN T_FELHASZNALO_OSSZES Tanulo ON Tanulo.ID = TanuloTanuloEsemeny.C_TANULOID
AND Tanulo.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.C_INTEZMENYID = @pIntezmenyId
AND Tanar.C_TANEVID = @pTanevId
AND Tanar.TOROLT = 'F'
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = Tanar.ID
AND mua.TOROLT = 'F'
WHERE Tanulo.ID = @pTanuloId
AND TanuloEsemeny.C_INTEZMENYID = @pIntezmenyId
AND TanuloEsemeny.C_TANEVID = @pTanevId
AND TanuloEsemeny.C_TIPUS = @pEsemenyTipusElektronikusUzenetId
--Ha a törölt flag True, a törölt elemeket is visszaadjuk
AND TanuloEsemeny.TOROLT = IIF(@pToroltElemek = 'T',TanuloEsemeny.TOROLT, 'F')
END
GO

View file

@ -0,0 +1,52 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesFaliujsagBejegyzesekData]
GO
-- =============================================
-- Description: <Előszedjük a faliújság-bejegyzés feljegyzéseket>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesFaliujsagBejegyzesekData]
@pTanarId INT
,@pEsemenyTipusFaliujsagBejegyzesId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
TanuloEsemeny.ID ID
,TanuloEsemeny.C_Kezdete Kezdete
,TanuloEsemeny.C_Vege Vege
,TanuloEsemeny.C_TARGY Targy
,TanuloEsemeny.C_TARTALOM Tartalom
,TanuloEsemeny.C_FALIUJSAGMEGJELENES IsFaliujsagMegjelenes
,Tanar.C_NYOMTATASINEV FeljegyzoNeve
,IIF(TanuloEsemeny.C_MINDENKINEK = 'T',
'Egész intézmény',
STUFF(
(SELECT DISTINCT
', ' + OsztalyCsoportInner.C_NEV
FROM
T_OSZTALYCSOPORT OsztalyCsoportInner
LEFT JOIN
T_OSZTALYCSOPORT_TANULOESEMENY OsztalyCsoportTanuloEsemeny ON
OsztalyCsoportTanuloEsemeny.C_TANULOESEMENYID = TanuloEsemeny.ID
WHERE OsztalyCsoportInner.ID = OsztalyCsoportTanuloEsemeny.C_OSZTALYCSOPORTID
FOR XML PATH (''))
, 1, 2, '')
) Cimzettek
FROM
T_TANULOESEMENY TanuloEsemeny
LEFT JOIN
T_FELHASZNALO Tanar ON
Tanar.ID = TanuloEsemeny.C_FELJEGYZOID
AND Tanar.TOROLT = 'F'
WHERE
TanuloEsemeny.C_TIPUS = @pEsemenyTipusFaliujsagBejegyzesId
AND TanuloEsemeny.C_FELJEGYZOID = @pTanarId
AND TanuloEsemeny.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,21 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFeljegyzesFaliujsagBejegyzesekPopupData]
GO
-- =============================================
-- Description: <Előszedjük az osztálycsoportokat a faliújság bejegyzések popup-jához>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetFeljegyzesFaliujsagBejegyzesekPopupData]
AS
BEGIN
SELECT
T_OSZTALYCSOPORT.ID AS ID
,T_OSZTALYCSOPORT.C_NEV AS OsztalyCsoportNeve
FROM
T_OSZTALYCSOPORT
END
GO

View file

@ -0,0 +1,102 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFogadooraInfo]
GO
CREATE PROCEDURE [dbo].[sp_GetFogadooraInfo]
@alkalmazottId INT,
@tanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
--fejléc
SELECT
i.C_NEV as intezmeny
,m.C_NEV as mukodesihely
,d.C_NAME as oktatasiNevelesiFeladatTipus
,ISNULL(i.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy. MMMM dd.', 'hu-hu') AS kelt
FROM T_INTEZMENYADATOK_OSSZES i
INNER JOIN T_MUKODESIHELY_OSSZES m ON i.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS AND d.C_TANEVID = @tanevId
WHERE
i.C_TANEVID = @tanevId
--#tanulok
SELECT DISTINCT
tn.ID tanuloID
,tn.C_NYOMTATASINEV TanuloNeve
,tn.C_SZULETESIDATUM szulDat
INTO #Tanulok_tmp
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON f.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
WHERE
f.C_TANARID = @alkalmazottId
AND f.C_TANEVID=@TANEVID
AND f.TOROLT='F'
ORDER BY TanuloNeve
SELECT tanuloNeve
INTO #duplikatNevek
FROM #Tanulok_tmp
GROUP BY tanuloNeve
HAVING COUNT(tanuloNeve) > 1
SELECT tanuloID,
TanuloNeve + IIF(TanuloNeve IN (SELECT tanuloNeve FROM #duplikatNevek), ' - ('
+ (FORMAT(szulDat, 'yyyy.MM.dd') + ', '
+ dbo.fnGetDokumentumTanuloAktualisOsztaly (tanuloID) +')' ), '') TanuloNeve /*TODO:Tobb Osztaly*//*OM-1652*/
FROM #Tanulok_tmp
ORDER BY tanuloNeve
--tanuloinfo
SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
dt.C_NAME as ertekelesTipusa, dm.C_NAME as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
fh.C_NYOMTATASINEV as tanarNev, do.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
t.id as tantargyID, t.C_NEV as tantargyNev
FROM T_TANULOERTEKELES_OSSZES e
INNER JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON e.ID = oe.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA AND dt.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON (dm.ID = oe.C_ERTEKELESMODJA AND DM.C_INTEZMENYID = OE.C_ALINTEZMENYID AND DM.C_TANEVID = OE.C_ALTANEVID)
INNER JOIN T_DICTIONARYITEMBASE_OSSZES do ON (do.ID = e.C_OSZTALYZAT AND Do.C_INTEZMENYID = E.C_INTEZMENYID AND Do.C_TANEVID = E.C_TANEVID)
WHERE
f.C_TANARID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND e.C_TANEVID=@tanevId
AND e.TOROLT='F'
UNION ALL
SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
dt.C_NAME as ertekelesTipusa, null as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
fh.C_NYOMTATASINEV as tanarNev, dm.C_NAME + ', ' + ds.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
t.id as tantargyID, t.C_NEV as tantargyNev
FROM T_TANULOERTEKELES_OSSZES e
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES oe ON e.ID = oe.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA AND dt.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON dm.ID = oe.C_MAGATARTAS AND dm.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ds ON ds.ID = oe.C_SZORGALOM AND ds.C_TANEVID = @tanevId
WHERE
f.C_TANARID = @alkalmazottId
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
AND e.C_TANEVID=@TANEVID
AND e.TOROLT='F'
END
GO

View file

@ -0,0 +1,65 @@
-- =============================================
-- Description: Foglalkozások egész évben megtartandó óráinak száma.
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]
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
GO

View file

@ -0,0 +1,32 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFotargyakhozTartozoAltargyak]
GO
CREATE PROCEDURE [dbo].[sp_GetFotargyakhozTartozoAltargyak]
@pFotargyIdList nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @command nvarchar(max)
SET @command = '
SELECT
fotargy.C_NEV fotargyNev
,altargy.C_NEV altargyNev
FROM
T_TANTARGY_OSSZES fotargy
INNER JOIN
T_TANTARGY_OSSZES altargy ON altargy.C_FOTARGYID = fotargy.ID
WHERE
fotargy.ID IN ('+ @pFotargyIdList + ')
AND fotargy.C_FOTARGYE = ''T''
AND altargy.C_FOTARGYE = ''F''
AND altargy.TOROLT = ''F''';
EXEC sp_executesql @command
END
GO

View file

@ -0,0 +1,260 @@
-- =============================================
-- Author: Dőrr Tamás
-- Create date: 2017.12.14.
-- Description: -
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetHazifeladatOrarend]
GO
CREATE PROCEDURE [dbo].[sp_GetHazifeladatOrarend]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #HaziFeladatok (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
,HaziFeladatSzoveg nvarchar(max)
)
INSERT INTO #HaziFeladatok (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,HaziFeladatSzoveg
) SELECT h.ID Id
,null ORARENDIID
,h.C_FELADASDATUMA Datum
,'F' Bontott
,null Hetirend --minden héten?
,null HetNapja
,NULL HetSorszam
,h.C_FELADASDATUMA ErvenyessegKezdete
,h.C_HATARIDO ErvenyessegVege
,h.C_FELADASDATUMA OraKezdete
,h.C_FELADASDATUMA OraVege
,h.C_ORASZAM Oraszam
,ISNULL(t.C_ROVIDNEV, t.C_NEV) TargyNev
,COALESCE(t.C_ROVIDNEV, t.C_NEV) TargyNevForMobile
,NULL TargykategoriaID
,NULL Megtartott
,NULL CsengetesiRendOraID
,NULL CsengetesiRendID
,NULL MaxNapiOraszam
,ocs.C_NEV OsztalyNev
,NULL TanevRendOsztalyCsoportId
,NULL MegjelenesOka
,f.C_NYOMTATASINEV TanarNev
,NULL TeremNev
,'HaziFeladat' OraTipus
,NULL Hianyzas
,NULL Keses
,NULL Ures
,NULL HelyettesitoTanarID
,NULL HelyettesitoTanarNev
,NULL HelyettesitesId
,f.ID TanarID
,NULL AdminAltalKiirt
,NULL GroupId
,NULL Tema
,h.C_TANTARGYID TantargyId
,h.C_OSZTALYCSOPORTID OsztCsopId
,h.C_FELADATSZOVEGE HaziFeladatSzoveg
FROM T_HAZIFELADATOK h
INNER JOIN T_TANTARGY t ON t.id = h.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.id = h.C_OSZTALYCSOPORTID
INNER JOIN T_FELHASZNALO f ON f.id = h.C_ROGZITOID
WHERE f.id = @TanarId
CREATE TABLE #OrarendiOrakTanorak (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
,OsztalyBontasId int
,IsEgyediNap char(1)
,TeremTobbOratLehetTartani char(1)
,KozpontiOraGroupId uniqueidentifier NULL
,KozpontilagToroltOraGroupId uniqueidentifier NULL
)
INSERT INTO #orarendiOrakTanorak (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,OsztalyBontasId
,IsEgyediNap
,TeremTobbOratLehetTartani
,KozpontiOraGroupId
,KozpontilagToroltOraGroupId
)
EXEC dbo.sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = @TanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = 0 --utolsó paraméter: egyelőre csak órarendi (csengetési rendhez kötött) órák
INSERT INTO #HaziFeladatok
SELECT * ,NULL HaziFeladatSzoveg
FROM #orarendiOrakTanorak oot
WHERE NOT EXISTS (
SELECT 1
FROM #HaziFeladatok h
WHERE h.TanarID = oot.TanarID
AND h.TantargyId = oot.TantargyId
AND h.OsztCsopId = oot.OsztCsopId
AND h.Oraszam = oot.Oraszam)
SELECT * FROM #HaziFeladatok
END
GO

View file

@ -0,0 +1,31 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetHelyettesitesIdoszakLetrehozoSzerepkor]
GO
-- =============================================
-- Author: Dőrr Tamás
-- Create date: 2016.09.07.
-- Description:
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetHelyettesitesIdoszakLetrehozoSzerepkor]
@IntezmenyId int
,@TanevId int
,@HelyettesitesId int
AS
BEGIN
SET NOCOUNT ON;
declare @helyettesitesCreatorId int;
set @helyettesitesCreatorId = (
select
ISNULL(hi.CREATOR, 0)
from T_HELYETTESITESIIDOSZAK hi
where
hi.ID = @HelyettesitesId
and hi.C_INTEZMENYID = @IntezmenyId
and hi.C_TANEVID = @TanevId
)
exec [sp_GetUserRoles] @FELHASZNALOID = @helyettesitesCreatorId
END
GO

View file

@ -0,0 +1,275 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetHelyettesitesiNaplo
GO
-- ===================================================================
-- Author: Tóth Imre Attila
-- Create date: 2016. 08. 01.
-- Description: Lekérdezések a helyettesítési naplóhoz
-- ===================================================================
CREATE PROCEDURE [dbo].[sp_GetHelyettesitesiNaplo]
@tanarID int,
@tanevID int,
@intezmenyid int,
@bontas int = 0, -- 0 = havi, 1 = heti
@startDayOfWeek int = 1 -- 1 = Hétfő, 7 = Vasárnap
AS
BEGIN
SET NOCOUNT ON;
SET DATEFIRST @startDayOfWeek
-- ===================================
-- FEJLÉC
-- ===================================
DECLARE @table TABLE (
EvHonap nvarchar(7),
Helyettesito nvarchar(100)
,HelyettesitoId int
,FeladatEllatasiHelyId INT
)
INSERT INTO @table
SELECT DISTINCT
CASE
WHEN @bontas = 0 THEN FORMAT(C_DATUM, 'yyyy.MM')
WHEN @bontas = 1 THEN CAST(C_HETSORSZAMA AS nvarchar)
END AS EvHonap,
felhHelyettes.C_NYOMTATASINEV AS Helyettesito
,felhHelyettes.ID AS HelyettesitoId
,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
FROM T_TANITASIORA_OSSZES tOra
LEFT JOIN T_FELHASZNALO_OSSZES felhHelyettes on felhHelyettes.ID = tOra.C_HELYETTESITOTANARID
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = tOra.C_HELYETTESITOTANARID
WHERE tOra.C_HELYETTESITOTANARID = @tanarID
AND tOra.C_TANEVID = @tanevID
AND tOra.Torolt='F'
SELECT * FROM @table
SELECT DISTINCT
CASE
WHEN @bontas = 0 THEN FORMAT(C_NAPDATUMA, 'yyyy.MM')
WHEN @bontas = 1 THEN CAST(C_HETSORSZAMA AS nvarchar)
END AS EvHonap,
C_ALAPHETNAPJA AS Nap
,@tanarID AS HelyettesitoId
,C_NAPDATUMA
FROM T_NAPTARINAP_OSSZES AS nn
INNER JOIN @table AS eh ON CASE
WHEN @bontas = 0 THEN FORMAT(nn.C_NAPDATUMA, 'yyyy.MM')
WHEN @bontas = 1 THEN CAST(C_HETSORSZAMA AS nvarchar)
END = eh.EvHonap
WHERE nn.C_TANEVID = @tanevID AND nn.C_INTEZMENYID = @intezmenyid AND nn.TOROLT = 'F'
ORDER BY C_NAPDATUMA
-- ===================================
-- HELYETTESÍTÉSEK (SOROK)
-- ===================================
SELECT DISTINCT
C_DATUM
,CAST(IIF(tOra.C_PARHUZAMOSORA = 'T', NULL, ROW_NUMBER() OVER(PARTITION BY tOra.C_PARHUZAMOSORA ORDER BY C_DATUM)) as nvarchar(5)) + '.' AS Sorsz
,IIF(tOra.C_ORASZAM IS NOT NULL,CONVERT(NVARCHAR(5), tOra.C_ORASZAM) + '.',
CONCAT(CONVERT(NVARCHAR(5), tOra.C_ORAKEZDETE, 108), '-', CONVERT(NVARCHAR(5), tOra.C_ORAVEGE, 108))) AS Oraszam
,DicItemBase.C_NAME AS HelyettesitesTipusa
,FORMAT(C_DATUM, 'yyyy.MM.dd.') AS Datum
,CASE
WHEN @bontas = 0 THEN FORMAT(C_DATUM, 'yyyy.MM')
WHEN @bontas = 1 THEN CAST(C_HETSORSZAMA AS nvarchar)
END AS EvHonap
,felhOraTul.C_NYOMTATASINEV AS Helyettesitett
,osztcsop.C_NEV AS OsztalyCsoport
,tant.C_NEV AS Tantargy
,tOra.C_TEMA AS Tema
,tOra.C_ORAEVESSORSZAMA AS EvesSorszam
,helyettesito.ID AS HelyettesitoId
,helyettesito.C_OKTATASIAZONOSITO AS HelyettesitoOktatasiAzon
,tOra.C_HELYETTESITESOKA AS HelyettesitesOka
FROM T_TANITASIORA_OSSZES tOra
LEFT JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = tOra.C_ORARENDIORAID
LEFT JOIN T_FELHASZNALO_OSSZES felhOraTul ON felhOraTul.ID = tOra.C_TANARID
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = tOra.C_HELYETTESITOTANARID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES DicItemBase ON DicItemBase.ID = tOra.C_HELYETTESITESTIPUSA AND DicItemBase.C_TANEVID = tOra.C_TANEVID AND DicItemBase.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztcsop ON osztcsop.ID = tOra.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tant ON tant.ID = tOra.C_TANTARGYID
WHERE helyettesito.ID = @tanarID
AND tOra.C_TANEVID = @tanevID
AND tOra.Torolt = 'F'
AND tOra.C_HELYETTESITESTIPUSA IN (1496, 1495, 1494, 7367)
-- ===================================
-- HELYETTESÍTÉSEK NAPIBONTÁSBAN
-- ===================================
CREATE TABLE #Helyettesitesek (
EvHonap nvarchar(15)
,OsztalyCsoport nvarchar(550),
[1] nvarchar(5) , [2] nvarchar(5), [3] nvarchar(5), [4] nvarchar(5), [5] nvarchar(5), [6] nvarchar(5), [7] nvarchar(5), [8] nvarchar(5), [9] nvarchar(5), [10] nvarchar(5),
[11] nvarchar(5), [12] nvarchar(5), [13] nvarchar(5), [14] nvarchar(5), [15] nvarchar(5), [16] nvarchar(5), [17] nvarchar(5), [18] nvarchar(5), [19] nvarchar(5), [20] nvarchar(5),
[21] nvarchar(5), [22] nvarchar(5), [23] nvarchar(5), [24] nvarchar(5), [25] nvarchar(5), [26] nvarchar(5), [27] nvarchar(5), [28] nvarchar(5), [29] nvarchar(5), [30] nvarchar(5), [31] nvarchar(5)
,Ossz int, HelyettesitoId int)
CREATE TABLE #HelyettesitesekParhuzamosOra (
EvHonap nvarchar(15)
,OsztalyCsoport nvarchar(550),
[1] nvarchar(5) , [2] nvarchar(5), [3] nvarchar(5), [4] nvarchar(5), [5] nvarchar(5), [6] nvarchar(5), [7] nvarchar(5), [8] nvarchar(5), [9] nvarchar(5), [10] nvarchar(5),
[11] nvarchar(5), [12] nvarchar(5), [13] nvarchar(5), [14] nvarchar(5), [15] nvarchar(5), [16] nvarchar(5), [17] nvarchar(5), [18] nvarchar(5), [19] nvarchar(5), [20] nvarchar(5),
[21] nvarchar(5), [22] nvarchar(5), [23] nvarchar(5), [24] nvarchar(5), [25] nvarchar(5), [26] nvarchar(5), [27] nvarchar(5), [28] nvarchar(5), [29] nvarchar(5), [30] nvarchar(5), [31] nvarchar(5)
,HelyettesitoId int)
INSERT INTO #Helyettesitesek
SELECT
EvHonap
,OsztalyCsoport = TantargyN + ' - ' + OsztCsopN,
ISNULL([1], 0) AS [1], ISNULL([2], 0) AS [2], ISNULL([3], 0) AS [3], ISNULL([4], 0) AS [4], ISNULL([5], 0) AS [5], ISNULL([6], 0) AS [6], ISNULL([7], 0) AS [7], ISNULL([8], 0) AS [8], ISNULL([9], 0) AS [9], ISNULL([10], 0) AS [10],
ISNULL([11], 0) AS [11], ISNULL([12], 0) AS [12], ISNULL([13], 0) AS [13], ISNULL([14], 0) AS [14], ISNULL([15], 0) AS [15], ISNULL([16], 0) AS [16], ISNULL([17], 0) AS [17], ISNULL([18], 0) AS [18], ISNULL([19], 0) AS [19], ISNULL([20], 0) AS [20],
ISNULL([21], 0) AS [21], ISNULL([22], 0) AS [22], ISNULL([23], 0) AS [23], ISNULL([24], 0) AS [24], ISNULL([25], 0) AS [25], ISNULL([26], 0) AS [26], ISNULL([27], 0) AS [27], ISNULL([28], 0) AS [28], ISNULL([29], 0) AS [29], ISNULL([30], 0) AS [30],
ISNULL([31], 0) AS [31],
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) + ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) + ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) + ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) +
ISNULL([31], 0) AS Ossz
,HelyettesitoId
FROM (
SELECT
SUM(IIF(tOra.c_helyettesitestipusa IN(1496, 1495, 1494, 7367) AND tOra.C_PARHUZAMOSORA = 'F', 1 , 0)) as Tant,
osztCsop.C_NEV AS osztcsopN,
tant.C_NEV AS TantargyN,
CASE
WHEN @bontas = 0 THEN DATEPART(DAY, C_DATUM)
WHEN @bontas = 1 THEN DATEPART(dw, C_DATUM)
END AS Nap,
CASE
WHEN @bontas = 0 THEN FORMAT(C_DATUM, 'yyyy.MM')
WHEN @bontas = 1 THEN CAST(nn.C_HETSORSZAMA AS nvarchar)
END AS EvHonap
,tOra.C_HELYETTESITOTANARID AS HelyettesitoId
FROM T_TANITASIORA_OSSZES tOra
INNER JOIN T_TANTARGY_OSSZES tant on tant.ID = tOra.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztCsop on osztCsop.ID = tOra.C_OSZTALYCSOPORTID
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tOra.C_DATUM AND nn.C_TANEVID = @tanevID AND nn.C_INTEZMENYID = @intezmenyid AND nn.TOROLT = 'F'
WHERE
tOra.C_HELYETTESITOTANARID = @tanarID
AND tOra.C_TANEVID = @tanevID
AND TOra.TOROLT='F'
GROUP BY
osztCsop.C_NEV, tant.C_NEV, C_DATUM, nn.C_HETSORSZAMA, tOra.c_helyettesitestipusa
, tOra.C_HELYETTESITOTANARID, C_PARHUZAMOSORA
) T
PIVOT (
MAX(Tant)
FOR Nap IN (
[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31]
)
) Helyettesitesek
INSERT INTO #HelyettesitesekParhuzamosOra
SELECT
EvHonap
,OsztalyCsoport = TantargyN + ' - ' + OsztCsopN,
ISNULL([1], 0) AS [1], ISNULL([2], 0) AS [2], ISNULL([3], 0) AS [3], ISNULL([4], 0) AS [4], ISNULL([5], 0) AS [5], ISNULL([6], 0) AS [6], ISNULL([7], 0) AS [7], ISNULL([8], 0) AS [8], ISNULL([9], 0) AS [9], ISNULL([10], 0) AS [10],
ISNULL([11], 0) AS [11], ISNULL([12], 0) AS [12], ISNULL([13], 0) AS [13], ISNULL([14], 0) AS [14], ISNULL([15], 0) AS [15], ISNULL([16], 0) AS [16], ISNULL([17], 0) AS [17], ISNULL([18], 0) AS [18], ISNULL([19], 0) AS [19], ISNULL([20], 0) AS [20],
ISNULL([21], 0) AS [21], ISNULL([22], 0) AS [22], ISNULL([23], 0) AS [23], ISNULL([24], 0) AS [24], ISNULL([25], 0) AS [25], ISNULL([26], 0) AS [26], ISNULL([27], 0) AS [27], ISNULL([28], 0) AS [28], ISNULL([29], 0) AS [29], ISNULL([30], 0) AS [30],
ISNULL([31], 0) AS [31]
,HelyettesitoId
FROM (
SELECT
SUM(IIF(tOra.c_helyettesitestipusa IN(1496, 1495, 1494, 7367) AND tOra.C_PARHUZAMOSORA = 'T', 1 , 0)) as Tant,
osztCsop.C_NEV AS osztcsopN,
tant.C_NEV AS TantargyN,
CASE
WHEN @bontas = 0 THEN DATEPART(DAY, C_DATUM)
WHEN @bontas = 1 THEN DATEPART(dw, C_DATUM)
END AS Nap,
CASE
WHEN @bontas = 0 THEN FORMAT(C_DATUM, 'yyyy.MM')
WHEN @bontas = 1 THEN CAST(nn.C_HETSORSZAMA AS nvarchar)
END AS EvHonap
,tOra.C_HELYETTESITOTANARID AS HelyettesitoId
FROM T_TANITASIORA_OSSZES tOra
INNER JOIN T_TANTARGY_OSSZES tant on tant.ID = tOra.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztCsop on osztCsop.ID = tOra.C_OSZTALYCSOPORTID
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tOra.C_DATUM AND nn.C_TANEVID = @tanevID AND nn.C_INTEZMENYID = @intezmenyid AND nn.TOROLT = 'F'
WHERE
tOra.C_HELYETTESITOTANARID = @tanarID
AND tOra.C_TANEVID = @tanevID
AND TOra.TOROLT='F'
GROUP BY
osztCsop.C_NEV, tant.C_NEV, C_DATUM, nn.C_HETSORSZAMA, tOra.c_helyettesitestipusa
, tOra.C_HELYETTESITOTANARID, C_PARHUZAMOSORA
) T
PIVOT (
max(Tant)
FOR Nap IN (
[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31]
)
) Helyettesitesek
CREATE TABLE #Ossz (
EvHonap nvarchar(15)
,Összesen nvarchar(20),
[1] int , [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int, [13] int, [14] int, [15] int, [16] int, [17] int, [18] int, [19] int, [20] int,
[21] int, [22] int, [23] int, [24] int, [25] int, [26] int, [27] int, [28] int, [29] int, [30] int, [31] int
,Ossz int, HelyettesitoId int)
INSERT INTO #Ossz
SELECT EvHonap, 'Összesen',
SUM(CAST([1] as int)), SUM(CAST([2] as int)), SUM(CAST([3] as int)), SUM(CAST([4] as int)), SUM(CAST([5] as int)), SUM(CAST([6] as int)), SUM(CAST([7] as int)), SUM(CAST([8] as int)), SUM(CAST([9] as int)), SUM(CAST([10] as int)),
SUM(CAST([11] as int)), SUM(CAST([12] as int)), SUM(CAST([13] as int)), SUM(CAST([14] as int)), SUM(CAST([15] as int)), SUM(CAST([16] as int)), SUM(CAST([17] as int)), SUM(CAST([18] as int)), SUM(CAST([19] as int)), SUM(CAST([20] as int)),
SUM(CAST([21] as int)), SUM(CAST([22] as int)), SUM(CAST([23] as int)), SUM(CAST([24] as int)), SUM(CAST([25] as int)), SUM(CAST([26] as int)), SUM(CAST([27] as int)), SUM(CAST([28] as int)), SUM(CAST([29] as int)), SUM(CAST([30] as int)), SUM(CAST([31] as int))
,(SUM(CAST([1] as int)) + SUM(CAST([2] as int)) + SUM(CAST([3] as int)) + SUM(CAST([4] as int)) + SUM(CAST([5] as int)) + SUM(CAST([6] as int)) + SUM(CAST([7] as int)) + SUM(CAST([8] as int)) + SUM(CAST([9] as int)) + SUM(CAST([10] as int)) +
SUM(CAST([11] as int)) + SUM(CAST([12] as int)) + SUM(CAST([13] as int)) + SUM(CAST([14] as int)) + SUM(CAST([15] as int)) + SUM(CAST([16] as int)) + SUM(CAST([17] as int)) + SUM(CAST([18] as int)) + SUM(CAST([19] as int)) + SUM(CAST([20] as int)) +
SUM(CAST([21] as int)) + SUM(CAST([22] as int)) + SUM(CAST([23] as int)) + SUM(CAST([24] as int)) + SUM(CAST([25] as int)) + SUM(CAST([26] as int)) + SUM(CAST([27] as int)) + SUM(CAST([28] as int)) + SUM(CAST([29] as int)) + SUM(CAST([30] as int)) + SUM(CAST([31] as int))) AS [Ossz]
,HelyettesitoId
FROM #Helyettesitesek
GROUP BY EvHonap, HelyettesitoId
UPDATE h1 SET
[1] += CASE WHEN h2.[1] > 0 THEN ' ('+ h2.[1] + ')' ELSE '' END
,[2] += CASE WHEN h2.[2] > 0 THEN ' ('+ h2.[2] + ')' ELSE '' END
,[3] += CASE WHEN h2.[3] > 0 THEN ' ('+ h2.[3] + ')' ELSE '' END
,[4] += CASE WHEN h2.[4] > 0 THEN ' ('+ h2.[4] + ')' ELSE '' END
,[5] += CASE WHEN h2.[5] > 0 THEN ' ('+ h2.[5] + ')' ELSE '' END
,[6] += CASE WHEN h2.[6] > 0 THEN ' ('+ h2.[6] + ')' ELSE '' END
,[7] += CASE WHEN h2.[7] > 0 THEN ' ('+ h2.[7] + ')' ELSE '' END
,[8] += CASE WHEN h2.[8] > 0 THEN ' ('+ h2.[8] + ')' ELSE '' END
,[9] += CASE WHEN h2.[9] > 0 THEN ' ('+ h2.[9] + ')' ELSE '' END
,[10] += CASE WHEN h2.[10] > 0 THEN ' ('+ h2.[10] + ')' ELSE '' END
,[11] += CASE WHEN h2.[11] > 0 THEN ' ('+ h2.[11] + ')' ELSE '' END
,[12] += CASE WHEN h2.[12] > 0 THEN ' ('+ h2.[12] + ')' ELSE '' END
,[13] += CASE WHEN h2.[13] > 0 THEN ' ('+ h2.[13] + ')' ELSE '' END
,[14] += CASE WHEN h2.[14] > 0 THEN ' ('+ h2.[14] + ')' ELSE '' END
,[15] += CASE WHEN h2.[15] > 0 THEN ' ('+ h2.[15] + ')' ELSE '' END
,[16] += CASE WHEN h2.[16] > 0 THEN ' ('+ h2.[16] + ')' ELSE '' END
,[17] += CASE WHEN h2.[17] > 0 THEN ' ('+ h2.[17] + ')' ELSE '' END
,[18] += CASE WHEN h2.[18] > 0 THEN ' ('+ h2.[18] + ')' ELSE '' END
,[19] += CASE WHEN h2.[19] > 0 THEN ' ('+ h2.[19] + ')' ELSE '' END
,[20] += CASE WHEN h2.[20] > 0 THEN ' ('+ h2.[20] + ')' ELSE '' END
,[21] += CASE WHEN h2.[21] > 0 THEN ' ('+ h2.[21] + ')' ELSE '' END
,[22] += CASE WHEN h2.[22] > 0 THEN ' ('+ h2.[22] + ')' ELSE '' END
,[23] += CASE WHEN h2.[23] > 0 THEN ' ('+ h2.[23] + ')' ELSE '' END
,[24] += CASE WHEN h2.[24] > 0 THEN ' ('+ h2.[24] + ')' ELSE '' END
,[25] += CASE WHEN h2.[25] > 0 THEN ' ('+ h2.[25] + ')' ELSE '' END
,[26] += CASE WHEN h2.[26] > 0 THEN ' ('+ h2.[26] + ')' ELSE '' END
,[27] += CASE WHEN h2.[27] > 0 THEN ' ('+ h2.[27] + ')' ELSE '' END
,[28] += CASE WHEN h2.[28] > 0 THEN ' ('+ h2.[28] + ')' ELSE '' END
,[29] += CASE WHEN h2.[29] > 0 THEN ' ('+ h2.[29] + ')' ELSE '' END
,[30] += CASE WHEN h2.[30] > 0 THEN ' ('+ h2.[30] + ')' ELSE '' END
,[31] += CASE WHEN h2.[31] > 0 THEN ' ('+ h2.[31] + ')' ELSE '' END
FROM #Helyettesitesek h1
INNER JOIN #HelyettesitesekParhuzamosOra h2 on
h1.EvHonap = h2.EvHonap
AND h1.HelyettesitoId = h2.HelyettesitoId
AND h1.OsztalyCsoport = h2.OsztalyCsoport
--Helyettesítések párhuzamosan helyettesített órákkal
SELECT * FROM #Helyettesitesek
--Havi/Heti összesen helyettesített órák száma
SELECT * FROM #Ossz
DROP TABLE #Helyettesitesek
DROP TABLE #HelyettesitesekParhuzamosOra
DROP TABLE #Ossz
END
GO

View file

@ -0,0 +1,24 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetHelyettesitoTanarTanorahoz]
GO
-- =============================================
-- Author: <Zsiga Attila>
-- Create date: <2016.03.09.>
-- Description: <Tanorahoz tartozo helyettesito tanar>
-- =============================================
Create PROCEDURE [dbo].[sp_GetHelyettesitoTanarTanorahoz]
@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,51 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetHianyzoOrabeirasok]
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]
@pIdoszakVege DateTime
AS
BEGIN
SET NOCOUNT ON;
-- :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,42 @@
-- =============================================
-- Description: Tanulók gondviselõinek belépési adatai
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetHozzatartozok]
GO
CREATE PROCEDURE [dbo].[sp_GetHozzatartozok]
@osztalyId int = null,
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
declare @Hozzaferesek table (Osztaly nvarchar(max), OsztalyId int, Intezmeny nvarchar(max), TanuloNev nvarchar(max), Gondviselo nvarchar(max), Azonosito nvarchar(max), Jelszo nvarchar(max), Link nvarchar(max))
insert into @Hozzaferesek
select distinct Osztaly.Osztaly, Osztaly.Osztalyid, ia.c_nev Intezmeny, f.c_nyomtatasinev TanuloNev, g.c_nev Gondviselo, fb.c_bejelentkezesinev Azonosito, fb.c_jelszo Jelszo, 'https://'+lower(i.c_azonosito)+'.e-kreta.hu' as Link from t_gondviselo g
inner join t_tanulo t on t.id=g.c_tanuloid and t.c_alintezmenyid=@intezmenyid and t.c_altanevid=@tanevid
inner join t_felhasznalo f on f.id=t.id and f.torolt='F'
inner join t_felhasznalobelepes fb on fb.c_gondviseloid=g.id and fb.torolt='F' and fb.C_KOTELEZOVALTOZTATNI = 'T'
left join (select tcs.c_tanuloid TanuloId, ocs.c_nev as Osztaly, o.Id OsztalyId from t_tanulocsoport tcs
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid and o.torolt='F' and o.c_alintezmenyid=@intezmenyid and o.c_altanevid=@tanevid
inner join t_osztalycsoport ocs on ocs.id=o.id and ocs.c_intezmenyid=@intezmenyid and ocs.c_tanevid=@tanevid
AND ocs.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
where tcs.torolt='F' and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevId) Osztaly on Osztaly.Tanuloid=t.id
inner join t_intezmenyadatok ia on ia.c_intezmenyid=t.c_alintezmenyid and ia.c_tanevid=@tanevId and ia.torolt='F'
inner join t_intezmeny i on i.id=ia.c_intezmenyid and i.torolt='F'
where g.torolt='F'
order by TanuloNev
if @osztalyId is null
begin
select Osztaly, Intezmeny, TanuloNev, Gondviselo, Azonosito, Jelszo, Link from @Hozzaferesek
end
else
begin
select Osztaly, Intezmeny, TanuloNev, Gondviselo, Azonosito, Jelszo, Link from @Hozzaferesek where Osztalyid=@osztalyid
end
End
go

View file

@ -0,0 +1,97 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetIktSzandeknyilatkozatAdatok]
GO
-- =============================================
-- Description: <Elõszedjük az IKT szándéknyilatkozat adatokat>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetIktSzandeknyilatkozatAdatok]
@pIntezmenyId INT
,@pTanevId INT
,@pBesorolasiFokozatTipusEnumNa INT
,@pCimTipusEnumAllandoLakcim INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
felhasznalo.C_NYOMTATASINEV PedagogusNev
,cim.C_IRANYITOSZAM + ', ' + cim.C_VAROS + ', ' + cim.C_KOZTERULET + ' ' +
cim.C_KOZTERULETJELLEGENEV + ' ' + ISNULL(cim.C_HAZSZAM, '') +
IIF (felhasznalo.C_IGAZOLVANYSZAM IS NOT NULL, ', ' + felhasznalo.C_IGAZOLVANYSZAM, '') PedagogusAdatok
,REPLACE(REPLACE(felhasznalo.C_NYOMTATASINEV, '[', ''), ']', '') +
IIF (felhasznalo.C_IGAZOLVANYSZAM IS NOT NULL, ' - ' + felhasznalo.C_IGAZOLVANYSZAM, '') Qr
FROM
T_FELHASZNALO_OSSZES felhasznalo
INNER JOIN
T_MUNKAUGYIADATOK_OSSZES munkaugyiAdatok ON
munkaugyiAdatok.C_ALKALMAZOTTID = felhasznalo.ID
AND munkaugyiAdatok.C_INTEZMENYID = @pIntezmenyId
AND munkaugyiAdatok.C_TANEVID = @pTanevId
AND munkaugyiAdatok.TOROLT = 'F'
INNER JOIN
T_ALKALMAZOTT_OSSZES alkalmazott ON
alkalmazott.ID = felhasznalo.ID
AND alkalmazott.C_ALINTEZMENYID = @pIntezmenyId
AND alkalmazott.C_ALTANEVID = @pTanevId
AND alkalmazott.TOROLT = 'F'
CROSS APPLY
(SELECT TOP 1 *
FROM
T_CIM_OSSZES cim
WHERE
cim.C_FELHASZNALOID = felhasznalo.ID
AND cim.TOROLT = 'F'
AND cim.C_CIMTIPUSA = @pCimTipusEnumAllandoLakcim
) cim
WHERE
felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND felhasznalo.C_TANEVID = @pTanevId
AND felhasznalo.TOROLT = 'F'
AND munkaugyiAdatok.C_BESOROLASIFOKOZAT NOT IN (@pBesorolasiFokozatTipusEnumNa)
AND alkalmazott.C_ELFOGADOTTSZANDEKNYILATKOZAT = 'T'
SELECT
intezmenyAdatok.C_VAROS Szekhely
,intezmenyAdatok.C_NEV Nev
,intezmenyAdatok.C_OMKOD OmKod
,intezmenyAdatok.C_IGAZGATONEVE Vezeto
,IIF (felhasznalo.ID IS NOT NULL,
cim.C_IRANYITOSZAM + ', ' + cim.C_VAROS + ', ' + cim.C_KOZTERULET + ' ' +
cim.C_KOZTERULETJELLEGENEV + ' ' + ISNULL(cim.C_HAZSZAM, '') +
IIF (felhasznalo.C_IGAZOLVANYSZAM IS NOT NULL, ', ' + felhasznalo.C_IGAZOLVANYSZAM, ''),
+ '-') VezetoAdatok
FROM
T_INTEZMENYADATOK_OSSZES intezmenyAdatok
OUTER APPLY
(SELECT TOP 1 *
FROM
T_FELHASZNALO_OSSZES felhasznalo
WHERE
felhasznalo.C_NYOMTATASINEV LIKE '%' + intezmenyAdatok.C_IGAZGATONEVE + '%'
AND felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND felhasznalo.C_TANEVID = @pTanevId
AND felhasznalo.TOROLT = 'F'
) felhasznalo
OUTER APPLY
(SELECT TOP 1 *
FROM
T_CIM_OSSZES cim
WHERE
cim.C_FELHASZNALOID = felhasznalo.ID
AND cim.C_INTEZMENYID = @pIntezmenyId
AND cim.C_TANEVID = @pTanevId
AND cim.TOROLT = 'F'
ORDER BY
cim.C_ALAPERTELMEZETT DESC
,cim.LASTCHANGED DESC
) cim
WHERE
intezmenyAdatok.C_INTEZMENYID = @pIntezmenyId
AND intezmenyAdatok.C_TANEVID = @pTanevId
AND intezmenyAdatok.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,38 @@
-- =============================================
-- Description: <Előszedjük az informatikai adatszolgáltatáshoz szükséges adatokat>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetInformatikaiAdatszolgaltatasGrid]
GO
CREATE PROCEDURE [dbo].[sp_GetInformatikaiAdatszolgaltatasGrid]
@pIntezmenyId INT,
@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
MukodesiHely.ID ID,
MukodesiHely.C_NEV MukodesiHelyNeve,
MukodesiHelyAdatszolgaltatas.C_INTSZOLGALTATO InternetszolgaltatoNeve,
MukodesiHelyAdatszolgaltatas.C_INTLETOLTESSAV InternetLetoltesiSavszelessege,
MukodesiHelyAdatszolgaltatas.C_INTFELTOLTESSAV InternetFeltoltesiSavszelessege,
MukodesiHelyAdatszolgaltatas.C_INTHAVIDIJ InternetszolgaltatasHaviNettoDija,
MukodesiHelyAdatszolgaltatas.C_INFORMATIKAOKTATAS InformatikaOktatasVanNincs
FROM
T_MUKODESIHELY_OSSZES MukodesiHely
LEFT JOIN
T_MUKODESIHELYADATSZOLGALTATAS MukodesiHelyAdatszolgaltatas ON
MukodesiHelyAdatszolgaltatas.C_MUKODESIHELYID = MukodesiHely.ID
AND MukodesiHelyAdatszolgaltatas.C_INTEZMENYID = @pIntezmenyId
AND MukodesiHelyAdatszolgaltatas.C_TANEVID = @pTanevId
AND MukodesiHelyAdatszolgaltatas.TOROLT = 'F'
WHERE
MukodesiHely.C_INTEZMENYID = @pIntezmenyId AND
MukodesiHely.C_TANEVID = @pTanevId AND
MukodesiHely.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,57 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiJelentkezesLap]
GO
CREATE PROCEDURE [dbo].[sp_GetKozossegiJelentkezesLap]
@pIntezmenyId INT
,@pTanevId INT
,@pOsztalyId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
/* TANULO */
SELECT
dbo.fnGetDokumentumDatumFormatum(f.C_SZULETESIDATUM) AS SzulIdo
,f.C_NYOMTATASINEV AS TanuloNeve
,f.C_SZULETESINEV AS SzuletesiNev
,ocs.C_NEV AS Osztaly
,t.ID AS TanuloId
,f.C_OKTATASIAZONOSITO AS OktAzon
INTO #Tanulok
FROM T_TANULO_OSSZES AS t
INNER JOIN T_FELHASZNALO_OSSZES AS f ON f.ID = t.ID AND f.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES AS tcs ON tcs.C_TANULOID = t.ID AND tcs.TOROLT = 'F' AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS d ON d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID
WHERE ocs.ID = @pOsztalyId
AND t.C_ALINTEZMENYID = @pIntezmenyId
AND t.C_ALTANEVID = @pTanevId
SELECT * FROM #Tanulok
/* INTEZMENYADATOK */
SELECT DISTINCT
ia.C_NEV AS IntezmenyNev
,ia.C_IGAZGATONEVE AS IgazgatoNev
,dbo.fnGetDokumentumIntezmenyCime (@pTanevId) AS IntezmenyCim
,ia.C_TELEFONSZAM AS IntezmenyTelefonszam
,ia.C_EMAILCIM AS IntezmenyEmail
,ia.C_OMKOD AS OktAzon
,tv.C_NEV AS Tanev
FROM T_TANEV_OSSZES AS tv
INNER JOIN T_INTEZMENYADATOK_OSSZES AS ia ON tv.ID = ia.C_TANEVID
WHERE tv.ID = @pTanevId
/* GONDVISELO */
SELECT g.C_NEV AS GondviseloNeve
,g.C_TANULOID AS TanuloId
FROM T_GONDVISELO_OSSZES AS g
INNER JOIN #Tanulok AS Tanulok ON Tanulok.TanuloId = g.C_TANULOID
WHERE g.C_ISTORVENYESKEPVISELO = 'T'
AND (g.C_ISCSOKKENTETTGONDVISELO IS NULL OR g.C_ISCSOKKENTETTGONDVISELO = 'F')
AND g.C_TANEVID = @pTanevId
END
GO

View file

@ -0,0 +1,41 @@
-- =============================================
-- Description: <Előszedjük a tanuló összes közösségi szolgálat óraszámát>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiSzolgalatOsszesOraszam]
GO
CREATE PROCEDURE [dbo].[sp_GetKozossegiSzolgalatOsszesOraszam]
@pIntezmenyId AS INT
,@pTanuloId AS INT
AS
BEGIN
SET NOCOUNT ON;
SELECT IIF(SUM(KozossegiSzolgalat.C_ORASZAM) IS NULL, 0, SUM(KozossegiSzolgalat.C_ORASZAM))
FROM
T_FELHASZNALO_OSSZES Tanulo
LEFT JOIN (
SELECT DISTINCT
Tanulo.C_OKTATASIAZONOSITO OktatasiAzonosito
FROM
T_FELHASZNALO_OSSZES Tanulo
WHERE
Tanulo.TOROLT = 'F'
AND Tanulo.ID = @pTanuloId
) CurrentTanulo ON
CurrentTanulo.OktatasiAzonosito IS NOT NULL
LEFT JOIN
T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat ON
KozossegiSzolgalat.C_TANULOID = Tanulo.ID
AND KozossegiSzolgalat.C_INTEZMENYID = @pIntezmenyId
AND KozossegiSzolgalat.TOROLT = 'F'
WHERE
Tanulo.C_OKTATASIAZONOSITO = CurrentTanulo.OktatasiAzonosito
AND Tanulo.C_INTEZMENYID = @pIntezmenyId
AND Tanulo.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,129 @@
DROP PROCEDURE IF EXISTS sp_GetKozossegiSzolgalatokReszletek
GO
CREATE PROCEDURE sp_GetKozossegiSzolgalatokReszletek
@pIntezmenyId int
,@pTanevId int
,@pTanuloId int = NULL
,@pTanarId int = NULL
,@pToroltElemek char = 'F'
,@pIntervallumKezdete datetime = NULL
,@pIntervallumVege datetime = NULL
,@pTeljesitesHelye nvarchar(100) = NULL
,@pOraszam int = NULL
,@pTanuloNev nvarchar(100) = NULL
,@pOsztalyNev nvarchar(100) = NULL
,@pKozossegiSzolgalatTipusa int = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@sql nvarchar(max)
,@selectSql nvarchar(max)
,@whereSql nvarchar(max)
,@orderSql nvarchar(max)
SET @selectSql = N'
SELECT
KozossegiSzolgalat.ID AS ID
,KozossegiSzolgalat.C_INTERVALLUMKEZDETE AS IntervallumKezdete
,KozossegiSzolgalat.C_INTERVALLUMVEGE AS IntervallumVege
,KozossegiSzolgalat.C_ROGZITESDATUM AS RogzitesDatuma
,KozossegiSzolgalat.C_TELJESITESIHELYE AS TeljesitesiHelye
,KozossegiSzolgalat.C_ORASZAM AS Oraszam
,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA AS KozossegiSzolgalatTipusa
,KozossegiSzolgalat.C_MEGJEGYZES AS Megjegyzes
,KozossegiSzolgalat.TOROLT AS Torolt
,ISNULL(@pTanuloId, ISNULL(AktTanuloOktazon.ID, AktTanuloIdp.ID)) AS TanuloId
,Tanulo.C_NYOMTATASINEV AS TanuloNev
,dbo.fnGetTanuloAktualisOsztaly(ISNULL(@pTanuloId, ISNULL(AktTanuloOktazon.ID, AktTanuloIdp.ID))) AS OsztalyNev
,KozossegiSzolgalat.C_UGYIRATSZAM AS Ugyiratszam
,CASE WHEN KozossegiSzolgalat.C_FELJEGYZOID = @pTanarId AND @pToroltElemek = ''T'' THEN ''T'' ELSE ''F'' END AS Modosithato
FROM T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat
INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON KozossegiSzolgalat.C_TANULOID = Tanulo.ID
AND Tanulo.TOROLT = IIF(@pToroltElemek = ''T'', Tanulo.TOROLT, ''F'')
LEFT JOIN T_FELHASZNALO_OSSZES AktTanuloOktazon ON AktTanuloOktazon.C_OKTATASIAZONOSITO = Tanulo.C_OKTATASIAZONOSITO
AND AktTanuloOktazon.TOROLT = IIF(@pToroltElemek = ''T'', AktTanuloOktazon.TOROLT, ''F'') AND AktTanuloOktazon.C_TANEVID = @pTanevId
LEFT JOIN T_FELHASZNALO_OSSZES AktTanuloIdp ON AktTanuloIdp.C_IDPEGYEDIAZONOSITO = Tanulo.C_IDPEGYEDIAZONOSITO
AND AktTanuloIdp.TOROLT = IIF(@pToroltElemek = ''T'', AktTanuloIdp.TOROLT, ''F'') AND AktTanuloIdp.C_TANEVID = @pTanevId'
SET @whereSql = N'
WHERE KozossegiSzolgalat.TOROLT = IIF(@pToroltElemek = ''T'', KozossegiSzolgalat.TOROLT, ''F'')'
IF @pTanuloId IS NOT NULL BEGIN
SET @whereSql += N'
AND ISNULL(AktTanuloOktazon.ID, AktTanuloIdp.ID) = @pTanuloId'
END
IF @pIntervallumKezdete IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_INTERVALLUMKEZDETE >= @pIntervallumKezdete'
END
IF @pIntervallumVege IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_INTERVALLUMVEGE <= @pIntervallumVege'
END
IF @pTeljesitesHelye IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_TELJESITESIHELYE = @pTeljesitesHelye'
END
IF @pOraszam IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_ORASZAM = @pOraszam'
END
IF @pKozossegiSzolgalatTipusa IS NOT NULL BEGIN
SET @whereSql += N'
AND KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA = @pKozossegiSzolgalatTipusa'
END
IF @pTanuloNev IS NOT NULL BEGIN
SET @whereSql += N'
AND Tanulo.C_NYOMTATASINEV LIKE N''%'' + @pTanuloNev + N''%'''
END
IF @pOsztalyNev IS NOT NULL BEGIN
SET @whereSql += N'
AND dbo.fnGetTanuloAktualisOsztaly(KozossegiSzolgalat.C_TANULOID) = @pOsztalyNev'
END
SET @orderSql = N'
ORDER BY KozossegiSzolgalat.C_INTERVALLUMKEZDETE DESC'
SET @sql = @selectSql + @whereSql + @orderSql
EXEC sp_executesql @sql, N'
@pIntezmenyId int
,@pTanevId int
,@pTanuloId int = NULL
,@pTanarId int = NULL
,@pToroltElemek char
,@pIntervallumKezdete datetime = NULL
,@pIntervallumVege datetime = NULL
,@pTeljesitesHelye nvarchar(100) = NULL
,@pOraszam int = NULL
,@pTanuloNev nvarchar(100) = NULL
,@pOsztalyNev nvarchar(100) = NULL
,@pKozossegiSzolgalatTipusa int = NULL'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pTanuloId = @pTanuloId
,@pTanarId = @pTanarId
,@pToroltElemek = @pToroltElemek
,@pIntervallumKezdete = @pIntervallumKezdete
,@pIntervallumVege = @pIntervallumVege
,@pTeljesitesHelye = @pTeljesitesHelye
,@pOraszam = @pOraszam
,@pTanuloNev = @pTanuloNev
,@pOsztalyNev = @pOsztalyNev
,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa
END
GO

View file

@ -0,0 +1,182 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetMulasztasokNaploNezetData
GO
CREATE PROCEDURE dbo.sp_GetMulasztasokNaploNezetData
@pTanevId int
,@pIntezmenyId int
,@pOsztalyCsoportId int
,@pDatum date
,@pCsoportTipusTanoraiCeluId int
,@pIsCsoportVez int = 0
,@pSzervezetTipusId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #TempTable(
TanitasiOraId INT NOT NULL,
OsztalyCsoportId INT NOT NULL,
OsztalyCsoportNev NVARCHAR(255) NOT NULL,
OsztalyNev NVARCHAR(255) NOT NULL,
IsOsztalyOraja BIT NOT NULL,
IsTanoraiCelu BIT NOT NULL,
IsTanoraiCelunakJelolt BIT NOT NULL,
TantargyId INT NOT NULL,
TantargyNev NVARCHAR(255) NOT NULL,
TanarId INT NOT NULL,
TanarNev NVARCHAR(255) NOT NULL,
OraSorszam INT NULL,
OraKezdete DATETIME NULL
);
DECLARE @sql nvarchar(max) = ''
SET @sql += N'
SELECT
tn.ID AS TanitasiOraId
,ocs.ID AS OsztalyCsoportId
,ocs.C_NEV AS OsztalyCsoportNev
,o.C_NEV AS OsztalyNev
,IIF(ocs.ID = @pOsztalyCsoportId, 1, 0) AS IsOsztalyOraja
,IIF(cst.ID = @pCsoportTipusTanoraiCeluId, 1, 0) AS IsTanoraiCelu
,IIF(cst.C_ISTANORAICELU = ''T'', 1, 0) AS IsTanoraiCelunakJelolt
,tt.ID AS TantargyId
,tt.C_NEV AS TantargyNev
,fa.ID AS TanarId
,fa.C_NYOMTATASINEV AS TanarNev
,IIF(tn.C_CSENGETESIRENDORAID IS NOT NULL, tn.C_ORASZAM, NULL) AS OraSorszam
,IIF(tn.C_CSENGETESIRENDORAID IS NULL, tn.C_ORAKEZDETE, NULL) AS OraKezdete
FROM T_TANITASIORA_OSSZES tn
' + IIF(@pIsCsoportVez = 0, N' INNER JOIN dbo.fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyCsoportId, @pDatum, @pDatum) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID ', '')
SET @sql += N'
INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = tn.C_TANTARGYID AND tt.TOROLT = ''F'' AND tt.C_TANEVID = @pTanevId AND tt.C_INTEZMENYID = @pIntezmenyId
INNER JOIN T_FELHASZNALO_OSSZES fa ON fa.ID = tn.C_ORATULAJDONOSID AND fa.TOROLT = ''F'' AND fa.C_TANEVID = @pTanevId AND fa.C_INTEZMENYID = @pIntezmenyId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F'' AND ocs.C_TANEVID = @pTanevId AND ocs.C_INTEZMENYID = @pIntezmenyId
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = tn.C_OSZTALYCSOPORTID AND cs.TOROLT = ''F'' AND cs.C_ALTANEVID = @pTanevId AND cs.C_ALINTEZMENYID = @pIntezmenyId
LEFT JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = cs.C_TIPUSA AND cst.TOROLT = ''F'' AND cst.C_ALTANEVID = @pTanevId AND cst.C_ALINTEZMENYID = @pIntezmenyId
INNER JOIN T_OSZTALYCSOPORT_OSSZES o ON o.ID = @pOsztalyCsoportId AND o.TOROLT = ''F'' AND ocs.C_TANEVID = @pTanevId AND ocs.C_INTEZMENYID = @pIntezmenyId
INNER JOIN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyCsoportId, @pDatum, @pDatum)) f on f.ID = tn.C_OSZTALYCSOPORTID
WHERE tn.C_DATUM = @pDatum
AND tn.C_MEGTARTOTT = ''T''
AND tn.TOROLT = ''F''
AND tn.C_TANEVID = @pTanevId
AND tn.C_INTEZMENYID = @pIntezmenyId
' + IIF(@pIsCsoportVez = 1, N' AND tn.C_OSZTALYCSOPORTID = @pOsztalyCsoportId ','')
INSERT INTO #TempTable
EXEC sp_executesql @sql, N'
@pTanevId INT
,@pIntezmenyId INT
,@pOsztalyCsoportId INT
,@pDatum DATE
,@pCsoportTipusTanoraiCeluId INT
,@pIsCsoportVez INT'
,@pTanevId = @pTanevId
,@pIntezmenyId = @pIntezmenyId
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pDatum = @pDatum
,@pCsoportTipusTanoraiCeluId = @pCsoportTipusTanoraiCeluId
,@pIsCsoportVez = @pIsCsoportVez
SET @sql = N''
SET @sql += N'
SELECT
tcs.C_TANULOID AS TanuloId
,ft.C_NYOMTATASINEV AS TanuloNev
,ft.C_ANYJANEVE AS AnyjaNeve
,ft.C_SZULETESIDATUM AS SzuletesiIdo
,tbl.OsztalyCsoportId
,tbl.OsztalyCsoportNev
,tbl.OsztalyNev
,tbl.IsOsztalyOraja
,tbl.IsTanoraiCelu
,tbl.IsTanoraiCelunakJelolt
,tbl.TantargyId
,tbl.TantargyNev
,tbl.TanarId
,tbl.TanarNev
,tbl.OraSorszam
,tbl.OraKezdete
,tbl.TanitasiOraId
,tm.ID AS MulasztasId
,tm.C_TIPUS AS MulasztasTipus
,tm.C_IGAZOLT AS IsIgazolt
,tm.C_IGAZOLASTIPUSA AS IgazolasTipus
,tm.C_MEGJEGYZES AS Megjegyzes
,tm.C_KESESPERCBEN AS KesesPercben
FROM (
SELECT
C_TANULOID
,C_OSZTALYCSOPORTID
FROM T_TANULOCSOPORT_OSSZES tcs ' +
IIF(@pSzervezetTipusId IS NULL, 'INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID
AND tta.TOROLT = ''F''
AND tta.C_TANEVID = @pTanevId
AND tta.C_INTEZMENYID = @pIntezmenyId
AND tta.C_JOGVISZONYATSZUNETELTETO = ''F''','')+'
WHERE C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND C_BELEPESDATUM <= @pDatum
AND (C_KILEPESDATUM > @pDatum OR C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = ''F''
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND C_TANULOID IN (
SELECT
C_TANULOID
FROM T_TANULOCSOPORT_OSSZES tcs2
WHERE tcs2.C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #TempTable)
AND tcs2.C_TANEVID = @pTanevId
AND tcs2.C_INTEZMENYID = @pIntezmenyId
AND tcs2.TOROLT = ''F''
AND tcs2.C_BELEPESDATUM <= @pDatum
AND (tcs2.C_KILEPESDATUM > @pDatum OR tcs2.C_KILEPESDATUM IS NULL)
)
) tcs
CROSS JOIN #TempTable tbl
INNER JOIN T_FELHASZNALO_OSSZES ft ON tcs.C_TANULOID = ft.ID
AND ft.TOROLT = ''F''
AND ft.C_TANEVID = @pTanevId
AND ft.C_INTEZMENYID = @pIntezmenyId
LEFT JOIN T_TANULOMULASZTAS_OSSZES tm ON tcs.C_TANULOID = tm.C_ORATANULOIID
AND tm.C_TANITASIORAKID = tbl.TanitasiOraId
AND tm.TOROLT = ''F''
AND tm.C_TANEVID = @pTanevId
AND tm.C_INTEZMENYID = @pIntezmenyId
LEFT JOIN T_TANULOMENTESSEG_OSSZES mentesseg ON mentesseg.C_TANULOID = tcs.C_TANULOID
AND mentesseg.C_TANTARGYID = tbl.TantargyId
AND mentesseg.C_ORAMENTESITES = ''T''
AND mentesseg.TOROLT = ''F''
AND mentesseg.C_TANEVID = @pTanevId
AND mentesseg.C_INTEZMENYID = @pIntezmenyId
WHERE
tcs.C_TANULOID IN (
SELECT
C_TANULOID
FROM T_TANULOCSOPORT_OSSZES tcs2
WHERE tbl.OsztalyCsoportId = tcs2.C_OSZTALYCSOPORTID
AND tcs2.C_TANEVID = @pTanevId
AND tcs2.C_INTEZMENYID = @pIntezmenyId
AND tcs2.TOROLT = ''F''
AND tcs2.C_BELEPESDATUM <= @pDatum
AND (tcs2.C_KILEPESDATUM > @pDatum OR tcs2.C_KILEPESDATUM IS NULL)
)
AND (tm.C_TIPUS <> 1817 OR tm.C_TIPUS IS NULL)
AND (mentesseg.ID IS NULL OR (mentesseg.C_KEZDETE > @pDatum OR mentesseg.C_VEGE < @pDatum))
ORDER BY ft.C_NYOMTATASINEV '
EXEC sp_executesql @sql, N'
@pTanevId INT
,@pIntezmenyId INT
,@pOsztalyCsoportId INT
,@pDatum DATE
,@pCsoportTipusTanoraiCeluId INT
,@pIsCsoportVez INT'
,@pTanevId = @pTanevId
,@pIntezmenyId = @pIntezmenyId
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pDatum = @pDatum
,@pCsoportTipusTanoraiCeluId = @pCsoportTipusTanoraiCeluId
,@pIsCsoportVez = @pIsCsoportVez
END
GO

View file

@ -0,0 +1,58 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNapkozisCsoportTanuloinakHaviMulasztasiOsszesitoje]
GO
CREATE PROCEDURE [dbo].[sp_GetNapkozisCsoportTanuloinakHaviMulasztasiOsszesitoje]
@tanevID int
,@intezmenyId int
,@honapAdatszotarTypeId int = 55
,@alapkepzesId int = 7553
AS
BEGIN
SET NOCOUNT ON;
declare @honapok table(honap int, honapnev nvarchar(max));
insert into @honapok
select distinct d.c_value as Honap, d.c_name as Honap from t_dictionaryitembase d where d.C_DICTIONARYTYPEID = @honapAdatszotarTypeId order by d.c_value
declare @napkoziscsoportok table(csoport int, csoportNev nvarchar(max));
insert into @napkoziscsoportok
select distinct tcs.c_osztalycsoportid as Csoport, ocs.c_nev from t_csoport cs
inner join t_osztalycsoport ocs on ocs.id=cs.id AND ocs.C_FELADATKATEGORIAID = @alapkepzesId
inner join t_tanulocsoport tcs on tcs.c_osztalycsoportid=ocs.id
where cs.c_tipusa=1035 and cs.c_altanevid=@tanevid and cs.c_alintezmenyid=@intezmenyid and cs.torolt='F'
--
DECLARE kurzorHonap CURSOR FOR
select Honap from @honapok
DECLARE @Honap int
DECLARE kurzorCsoport CURSOR FOR
select csoport from @napkoziscsoportok
DECLARE @Csoport int
OPEN kurzorHonap
FETCH NEXT FROM kurzorHonap INTO @Honap
WHILE @@FETCH_STATUS = 0 BEGIN
OPEN kurzorCsoport
FETCH NEXT FROM kurzorCsoport INTO @Csoport
WHILE @@FETCH_STATUS = 0 BEGIN
create table #tabla(COLUMN108 nvarchar(max), [1] int,[2] int,[3] int,[4] int,[5] int,[6] int,[7] int,[8] int,[9] int,[10] int,[11] int,[12] int,[13] int,[14] int,[15] int,[16] int,[17] int,[18] int,[19] int,[20] int,[21] int,[22] int,[23] int,[24] int,[25] int,[26] int,[27] int,[28] int,[29] int,[30] int,[31] int, COLUMN2672 int, COLUMN1910 int, COLUMN5197 int, COLUMN1786 int, COLUMN1787 int, COLUMN1788 int, COLUMN1789 int, COLUMN1911 int)
insert into #tabla
EXEC [dbo].[sp_GetNapkozisCsoportTanuloinakHaviMulasztasiOsszesitoje_1] @tanevID, @intezmenyId, @Csoport, @honap
SELECT * from #tabla
drop table #tabla
FETCH NEXT FROM kurzorCsoport INTO @Csoport
END
FETCH NEXT FROM kurzorHonap INTO @Honap
CLOSE kurzorCsoport
END
CLOSE kurzorHonap
DEALLOCATE kurzorCsoport
DEALLOCATE kurzorHonap
--
select honapnev from @honapok
select csoportnev from @napkoziscsoportok
END
GO

View file

@ -0,0 +1,67 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNapkozisCsoportTanuloinakHaviMulasztasiOsszesitoje_1]
GO
CREATE PROCEDURE [dbo].[sp_GetNapkozisCsoportTanuloinakHaviMulasztasiOsszesitoje_1]
@tanevID int,
@intezmenyId int,
@csoportid int,
@honap int
AS
BEGIN
SET NOCOUNT ON;
--Napközis csoportok tan
create table #tanulo (Id int, Osztaly int)
insert into #tanulo
select tcs.c_tanuloid Tanulo, tcs.c_osztalycsoportid as Csoport from t_csoport cs
inner join t_osztalycsoport ocs on ocs.id=cs.id
inner join t_tanulocsoport tcs on tcs.c_osztalycsoportid=ocs.id
where cs.c_tipusa=1035 and cs.c_altanevid=@tanevid and cs.c_alintezmenyid=@intezmenyid and cs.torolt='F' and tcs.c_osztalycsoportid=@csoportid
--Igazolások és típusai
create table #igazolas (Tanulo int, IgazoltE nvarchar(1), IgazolasTipus int)
insert into #igazolas
select tm.c_oratanuloiid as Tanulo, tm.c_igazolt as IgazoltE, tm.c_igazolastipusa as IgazolasTipus from t_tanulomulasztas tm
inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid and tao.torolt='F' and tao.c_tanevid=@tanevid and tao.c_intezmenyid=@intezmenyid and (CAST(MONTH(tao.c_datum) AS VARCHAR))=@honap
inner join t_csoport cs on cs.id=tao.c_osztalycsoportid and cs.c_tipusa=1035
where tm.torolt='F' and tm.c_intezmenyid=@intezmenyid and tm.c_tanevid=@tanevid
--Mulasztások
create table #mulasztas (Nap int, Tanulo int, Osztaly int)
insert into #mulasztas
select CAST(DAY(tao.c_datum) as int) as Nap, tm.c_oratanuloiid as Tanulo, tao.c_osztalycsoportid as Osztaly from t_tanulomulasztas tm
inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid and tao.torolt='F' and tao.c_tanevid=@tanevid and tao.c_intezmenyid=@intezmenyid and (CAST(MONTH(tao.c_datum) AS VARCHAR))=@honap
inner join t_csoport cs on cs.id=tao.c_osztalycsoportid and cs.c_tipusa=1035
where tm.torolt='F' and tm.c_intezmenyid=@intezmenyid and tm.c_tanevid=@tanevid
select f.c_nyomtatasinev as COLUMN379,
iif(m.[1]=0, null, m.[1]) as [1], iif(m.[2]=0, null, m.[2]) as [2], iif(m.[3]=0, null, m.[3]) as [3], iif(m.[4]=0, null, m.[4]) as [4], iif(m.[5]=0, null, m.[5]) as [5],
iif(m.[6]=0, null, m.[6]) as [6], iif(m.[7]=0, null, m.[7]) as [7], iif(m.[8]=0, null, m.[8]) as [8], iif(m.[9]=0, null, m.[9]) as [9], iif(m.[10]=0, null, m.[10]) as [10],
iif(m.[11]=0, null, m.[11]) as [11], iif(m.[12]=0, null, m.[12]) as [12], iif(m.[13]=0, null, m.[13]) as [13], iif(m.[14]=0, null, m.[14]) as [14], iif(m.[15]=0, null, m.[15]) as [15],
iif(m.[16]=0, null, m.[16]) as [16], iif(m.[17]=0, null, m.[17]) as [17], iif(m.[18]=0, null, m.[18]) as [18], iif(m.[19]=0, null, m.[19]) as [19], iif(m.[20]=0, null, m.[20]) as [20],
iif(m.[21]=0, null, m.[21]) as [21], iif(m.[22]=0, null, m.[22]) as [22], iif(m.[23]=0, null, m.[23]) as [23], iif(m.[24]=0, null, m.[24]) as [24], iif(m.[25]=0, null, m.[25]) as [25],
iif(m.[26]=0, null, m.[26]) as [26], iif(m.[27]=0, null, m.[27]) as [27], iif(m.[28]=0, null, m.[28]) as [28], iif(m.[29]=0, null, m.[29]) as [29], iif(m.[30]=0, null, m.[30]) as [30],
iif(m.[31]=0, null, m.[31]) as [31]
, Osszes.Osszes as COLUMN2672, Igazolt.Igazolt as COLUMN2568, Egyeb.Egyeb as COLUMN5197, Orvosi.Orvosi as COLUMN1786, Szuloi.Szuloi as COLUMN1787, Hivatalos.Hivatalos as COLUMN1788, IskolaErdeku.IskolaErdeku as COLUMN1789, Igazolatlan.Igazolatlan as COLUMN1911
from #tanulo t
left join (select * from #mulasztas m pivot (count(Osztaly) for Nap in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31]))pv)m on m.Tanulo=t.id
left join (select Tanulo, count(Tanulo) as Osszes from #igazolas group by Tanulo) Osszes on Osszes.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as Igazolt from #igazolas i where i.IgazoltE='T' group by Tanulo) Igazolt on Igazolt.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as Igazolatlan from #igazolas i where i.IgazoltE='F' group by Tanulo) Igazolatlan on Igazolatlan.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as Egyeb from #igazolas i where i.IgazolasTipus=1529 group by Tanulo) Egyeb on Egyeb.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as Orvosi from #igazolas i where i.IgazolasTipus=1530 group by Tanulo) Orvosi on Orvosi.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as Szuloi from #igazolas i where i.IgazolasTipus=1531 group by Tanulo) Szuloi on Szuloi.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as Hivatalos from #igazolas i where i.IgazolasTipus=1532 group by Tanulo) Hivatalos on Hivatalos.Tanulo=t.Id
left join (select Tanulo, count(Tanulo) as IskolaErdeku from #igazolas i where i.IgazolasTipus=1533 group by Tanulo) IskolaErdeku on IskolaErdeku.Tanulo=t.Id
inner join t_felhasznalo f on f.id=t.Id
order by f.c_nyomtatasinev
drop table #mulasztas
drop table #tanulo
drop table #igazolas
END
GO

View file

@ -0,0 +1,42 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNatKerdoivDataSetByAlkalmazott]
GO
-- =============================================
-- Description: <Előszedjük az NAT kérdőív adatokat az alkalmazott alapján>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetNatKerdoivDataSetByAlkalmazott]
@pIntezmenyId INT
,@pTanevId INT
,@pAlkalmazottId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
ID ID
,C_KERDES01 Kerdes01
,C_KERDES02 Kerdes02
,C_KERDES03 Kerdes03
,C_KERDES04 Kerdes04
,C_KERDES05 Kerdes05
,C_KERDES06 Kerdes06
,C_KERDES07 Kerdes07
,C_KERDES08 Kerdes08
,C_KERDES09 Kerdes09
,C_KERDES10 Kerdes10
,C_KERDES11 Kerdes11
,C_KERDES12 Kerdes12
FROM
T_NATKERDOIV_OSSZES
WHERE
C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
AND TOROLT = 'F'
AND C_ALKALMAZOTTID = @pAlkalmazottId
END
GO

View file

@ -0,0 +1,111 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNebuloErtesito]
GO
CREATE PROCEDURE [dbo].[sp_GetNebuloErtesito]
@intezmenyId INT
,@tanevId INT
,@nebulo INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
nebulo.ID NebuloId
,ISNULL(C_ELOTAG + ' ', '') + C_SZULETESICSALADINEVE + ' ' + C_SZULETESIUTONEVE NebuloSzuletesiNeve
,ISNULL(C_ELOTAG + ' ', '') + C_TANULOCSALADINEVE + ' ' + C_TANULOUTONEVE NebuloNeve
,ISNULL(intezmenyAdatok.C_NEV, '') IntezmenyNeve
,ISNULL(tagozat.C_NAME, '') Tagozat
,ISNULL(C_EDESANYJASZULETESICSALADINEV, '') + ' ' + ISNULL(C_EDESANYJASZULETESIUTONEVE, '') AnyjaSzuletesiNeve
,ISNULL(neme.C_NAME, '') TanuloNeme
,ISNULL(C_SZULETESIHELY, '') SzulHely
,FORMAT(C_SZULETESIIDO, 'yyyy.MM.dd.') SzulIdo
,ISNULL(anyanyelv.C_NAME, '') AnyaNyelv
,ISNULL(allampolgarsag1.C_NAME, '') AllamPolgarsag1
,ISNULL(allampolgarsag2.C_NAME, '') AllamPolgarsag2
,CONVERT(NVARCHAR(MAX), nebulo.C_IRANYITOSZAM) + ', ' +
C_HELYSEGNEV +
ISNULL(', ' + nebulo.C_KOZTERULETNEV, '') + ' ' +
nebulo.C_KOZTERULETJELLEGENEV +
ISNULL(' ' + nebulo.C_HAZSZAM + ', ', '') +
ISNULL(nebulo.C_EMELET + ' emelet', '') + ' ' +
ISNULL(nebulo.C_AJTO + ' ajtó', '') NebuloAllandoCim
,CONVERT(NVARCHAR(MAX), nebulo.C_THIRANYITOSZAM) +
ISNULL(', ' + C_THHELYSEGNEV, '') +
ISNULL(', ' + nebulo.C_THKOZTERULETNEV, '') + ' ' +
nebulo.C_KOZTERULETJELLEGENEV +
ISNULL(' ' + nebulo.C_THHAZSZAM + ', ', '') +
ISNULL(nebulo.C_THEMELET + ' emelet', '') +
ISNULL(' ' + nebulo.C_THAJTO + ' ajtó', '') NebuloCimTh
,ISNULL(C_OKTATASIAZONOSITOSZAMA, '') OktAzon
,ISNULL(C_ETIKAHITERKOLCSTAN, '') EtikaHitErkolcsTan
,C_TKNEVE TorvGondNeve1
,tk1Foka.C_NAME TorvRokFoka1
,C_TKTELEFON TorvGondTel1
,C_TKEMAILCIM TorvGondEmail1
,CONVERT(NVARCHAR(MAX), nebulo.C_TKIRANYITOSZAM) +
ISNULL(', ' + C_TKHELYSEGNEV, '') +
ISNULL(', ' + nebulo.C_TKKOZTERULETNEV, '') + ' ' +
ISNULL(nebulo.C_TKKOZTERULETJELLEGENEV, '') +
ISNULL(nebulo.C_TKHAZSZAM + ', ', '') +
ISNULL(nebulo.C_TKEMELET + ' emelet', '') +
ISNULL(' ' + nebulo.C_TKAJTO + ' ajtó', '') TorvGond1Cim
,C_TKNEVE2 TorvGondNeve2
,tk2Foka.C_NAME TorvRokFoka2
,C_TKTELEFON2 TorvGondTel2
,C_TKEMAILCIM2 TorvGondEmail2
,CONVERT(NVARCHAR(MAX), nebulo.C_TKIRANYITOSZAM2) +
ISNULL(', ' + C_TKHELYSEGNEV2, '') +
ISNULL(', ' + nebulo.C_TKKOZTERULETNEV2, '') + ' ' +
ISNULL(nebulo.C_TKKOZTERULETJELLEGENEV2, '') +
ISNULL(', ' + nebulo.C_TKHAZSZAM2 + ', ', '') +
ISNULL(nebulo.C_TKEMELET2 + ' emelet', '') +
ISNULL(' ' + nebulo.C_TKAJTO2 + ' ajtó', '') TorvGond2Cim
,intezmenyAdatok.C_IGAZGATONEVE IntezmenyVezetoNeve
,intezmenyAdatok.C_NEV IntezmenyNeve
,CONVERT(NVARCHAR(MAX),intezmenyAdatok.C_IRANYITOSZAM) +
ISNULL(', ' + intezmenyAdatok.C_VAROS, '') +
ISNULL(', ' + intezmenyAdatok.C_KOZTERULETNEV, '') + ' ' +
ISNULL(intezmenyAdatok.C_KOZTERULETJELLEGENEV, '') +
ISNULL(intezmenyAdatok.C_HAZSZAM + ', ', '') +
ISNULL(intezmenyAdatok.C_EMELET + ' emelet', '') +
ISNULL(intezmenyAdatok.C_AJTO + ' ajtó', '') IntezmenyCim
,intezmenyAdatok.C_EMAILCIM IntezmenyEmail
,intezmenyAdatok.C_TELEFONSZAM IntezmenyTelefon
,intezmenyAdatok.C_DOKUMENTUMFEJLEC Fejlec
,intezmenyAdatok.C_DOKUMENTUMLABLEC Lablec
FROM T_NEBULO_OSSZES nebulo
LEFT JOIN
T_INTEZMENYADATOK_OSSZES intezmenyAdatok ON
intezmenyAdatok.C_INTEZMENYID = nebulo.C_INTEZMENYID AND nebulo.C_TANEVID = intezmenyAdatok.C_TANEVID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES tagozat ON
tagozat.ID = nebulo.C_TAGOZAT AND tagozat.C_TANEVID = nebulo.C_TANEVID AND tagozat.C_INTEZMENYID = nebulo.C_INTEZMENYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES neme ON
neme.ID = nebulo.C_NEME AND neme.C_TANEVID = nebulo.C_TANEVID AND neme.C_INTEZMENYID = nebulo.C_INTEZMENYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES anyanyelv ON
anyanyelv.ID = nebulo.C_ANYANYELVE AND anyanyelv.C_TANEVID = nebulo.C_TANEVID AND anyanyelv.C_INTEZMENYID = nebulo.C_INTEZMENYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES allampolgarsag1 ON
allampolgarsag1.ID = nebulo.C_ALLAMPOLGARSAGA AND allampolgarsag1.C_TANEVID = nebulo.C_TANEVID AND allampolgarsag1.C_INTEZMENYID = nebulo.C_INTEZMENYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES allampolgarsag2 ON
allampolgarsag2.ID = nebulo.C_ALLAMPOLGARSAGA2 AND allampolgarsag2.C_TANEVID = nebulo.C_TANEVID AND allampolgarsag2.C_INTEZMENYID = nebulo.C_INTEZMENYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES tk1Foka ON
tk1Foka.ID = nebulo.C_TKROKONSAGIFOKA AND tk1Foka.C_TANEVID = nebulo.C_TANEVID AND tk1Foka.C_INTEZMENYID = nebulo.C_INTEZMENYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES tk2Foka ON
tk2Foka.ID = nebulo.C_TKROKONSAGIFOKA2 AND tk2Foka.C_TANEVID = nebulo.C_TANEVID AND tk2Foka.C_INTEZMENYID = nebulo.C_INTEZMENYID
WHERE
nebulo.TOROLT = 'F'
AND nebulo.C_TANEVID = @tanevId
AND nebulo.C_INTEZMENYID = @intezmenyId
AND nebulo.ID = @nebulo --5401 FELVETT, 5402 NEM FELVÉVE
END
GO

View file

@ -0,0 +1,26 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNebuloErtesitoStatusz]
GO
CREATE PROCEDURE [dbo].[sp_GetNebuloErtesitoStatusz]
@intezmenyId INT
,@tanevId INT
,@statusz INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
ID NebuloId
FROM
T_NEBULO_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = @tanevId
AND C_INTEZMENYID = @intezmenyId
AND C_FELVETELSTATUSZA = @statusz
END
GO

View file

@ -0,0 +1,19 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNebuloList]
GO
CREATE PROCEDURE [dbo].[sp_GetNebuloList]
@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM
T_NEBULO_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = @pTanevId
END
GO

View file

@ -0,0 +1,25 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNebuloListByIdList]
GO
CREATE PROCEDURE [dbo].[sp_GetNebuloListByIdList]
@pNebuloIdList AS XML
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tempNebuloIdList TABLE (nebuloId INT)
INSERT INTO @tempNebuloIdList
SELECT DISTINCT nebuloId = nebuloId.value('(.)[1]', 'INT')
FROM @pNebuloIdList.nodes('nebuloIdList/nebuloId') as nebuloIdList(nebuloId)
SELECT *
FROM
T_NEBULO
WHERE
TOROLT = 'F'
AND ID IN (SELECT nebuloId FROM @tempNebuloIdList)
END
GO

View file

@ -0,0 +1,57 @@
DROP PROCEDURE IF EXISTS [sp_GetNemKotottMunkaIdoDateByInsert]
GO
CREATE PROCEDURE [sp_GetNemKotottMunkaIdoDateByInsert]
@IntezmenyId int
,@TanevId int
,@IdoszakKezdete datetime
,@IdoszakVege datetime
,@KivalaszottDatum datetime
,@HetirendId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tmp TABLE (Hetirend INT NOT NULL, HetNapja INT NOT NULL, HetSorszama INT NOT NULL);
INSERT @tmp
SELECT nn.C_HETIREND, nn.C_HETNAPJA, nn.C_HETSORSZAMA
FROM T_NAPTARINAP_OSSZES nn
WHERE
nn.C_INTEZMENYID = @intezmenyId AND nn.C_TANEVID = @tanevId AND nn.C_NAPDATUMA = @KivalaszottDatum
IF(@hetirendId = 1554)
BEGIN
SELECT
C_NAPDATUMA Datum
FROM T_NAPTARINAP_OSSZES nn
WHERE
nn.C_NAPDATUMA BETWEEN @IdoszakKezdete AND @IdoszakVege AND TOROLT = 'F'
AND C_ORARENDINAP = 'T' AND C_HETNAPJA = (SELECT HetNapja FROM @tmp)
AND C_INTEZMENYID = @intezmenyId AND C_TANEVID = @tanevId
EXCEPT
SELECT
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES TANEVRENDJE
WHERE
(TOROLT = 'F' AND (C_NAPTIPUSA IN (1386,1389,1391,1392,1396,1397,1398,1399,1401) OR C_ORARENDINAP = 'F') AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
END
ELSE
BEGIN
SELECT
C_NAPDATUMA as Datum
FROM
T_NAPTARINAP_OSSZES nn
WHERE
nn.C_NAPDATUMA BETWEEN @IdoszakKezdete AND @IdoszakVege AND TOROLT = 'F'
AND C_ORARENDINAP = 'T' AND C_HETNAPJA = (SELECT HetNapja FROM @tmp)
AND C_INTEZMENYID = @intezmenyId AND C_TANEVID = @tanevId AND C_HETIREND = @hetirendId
EXCEPT
SELECT
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES TANEVRENDJE
WHERE
(TOROLT = 'F' AND (C_NAPTIPUSA IN (1386,1389,1391,1392,1396,1397,1398,1399,1401) OR C_ORARENDINAP = 'F') AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
END
END
GO

View file

@ -0,0 +1,22 @@
DROP PROCEDURE IF EXISTS [sp_GetNemKotottMunkaIdoIdByDelete]
GO
CREATE PROCEDURE [sp_GetNemKotottMunkaIdoIdByDelete]
@IntezmenyId int
,@TanevId int
,@IdoszakKezdete datetime
,@IdoszakVege datetime
,@GroupId nvarchar(36)
AS
BEGIN
SET NOCOUNT ON;
SELECT
nkm.ID
FROM T_NEMKOTOTTMUNKAIDO_OSSZES nkm
WHERE
C_GROUPID = @GroupId AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID = @TanevId AND TOROLT = 'F'
AND nkm.C_KEZDETE BETWEEN @IdoszakKezdete AND @IdoszakVege
END
GO

View file

@ -0,0 +1,75 @@
-- ==========================================================================================
-- Nem kötött munkaidő részletező nyomtatványhoz tárolt eljárás -- Rudlof Kristóf
-- ==========================================================================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNemKotottMunkaidoReszletezo]
GO
CREATE PROCEDURE [dbo].[sp_GetNemKotottMunkaidoReszletezo]
@tanevId int
,@intezmenyId int
,@tanarId int
,@honapId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Honap int = (
SELECT
dictionaryItemBase.C_VALUE
FROM T_DICTIONARYITEMBASE_OSSZES dictionaryItemBase
WHERE dictionaryItemBase.ID = @honapId
AND dictionaryItemBase.C_TANEVID = @tanevId
AND dictionaryItemBase.C_INTEZMENYID = @intezmenyId
)
IF @honapId = -1 BEGIN
SELECT
FORMAT(nkm.C_KEZDETE, 'yyyy.MM.dd.') AS Datum
,FORMAT(nkm.C_KEZDETE, 'HH:mm') AS Kezdete
,FORMAT(nkm.C_VEGE, 'HH:mm') AS Vege
,f.C_NYOMTATASINEV AS Tanar
,IIF(nkm.C_ISTANARALTALTOROLT = 'T', 'Törölt', d.C_NAME) AS Tevekenyseg
,ISNULL(nkm.C_NAPLOZOTTMEGJEGYZES, nkm.C_MEGJEGYZES) AS Megjegyzes
,nn.C_HETSORSZAMA AS Het
FROM T_FELHASZNALO_OSSZES f
LEFT JOIN T_NEMKOTOTTMUNKAIDO_OSSZES nkm ON f.ID=nkm.C_TANARID AND nkm.TOROLT='F' AND nkm.C_TANEVID=@tanevId AND nkm.C_MEGTARTOTT='T'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID=nkm.C_TEVEKENYSEGTIPUSA AND d.C_TANEVID=nkm.C_TANEVID AND d.C_INTEZMENYID=nkm.C_INTEZMENYID
LEFT JOIN T_NAPTARINAP_OSSZES nn ON CONVERT(DATE,nn.C_NAPDATUMA)=CONVERT(DATE,nkm.C_KEZDETE) AND nn.C_INTEZMENYID=@intezmenyId AND nn.C_TANEVID=@tanevId AND nn.TOROLT='F'
WHERE f.ID = @tanarId
END
ELSE BEGIN
SELECT
FORMAT(nkm.C_KEZDETE, 'yyyy.MM.dd.') AS Datum
,FORMAT(nkm.C_KEZDETE, 'HH:mm') AS Kezdete
,FORMAT(nkm.C_VEGE, 'HH:mm') AS Vege
,f.C_NYOMTATASINEV AS Tanar
,IIF(nkm.C_ISTANARALTALTOROLT = 'T', 'Törölt', d.C_NAME) AS Tevekenyseg
,ISNULL(nkm.C_NAPLOZOTTMEGJEGYZES, nkm.C_MEGJEGYZES) AS Megjegyzes
,nn.C_HETSORSZAMA AS Het
,@Honap AS Honap
FROM T_FELHASZNALO_OSSZES f
LEFT JOIN T_NEMKOTOTTMUNKAIDO_OSSZES nkm ON f.ID=nkm.C_TANARID AND nkm.TOROLT='F' AND nkm.C_TANEVID=@tanevId AND nkm.C_MEGTARTOTT='T' AND DATEPART(MONTH,nkm.C_KEZDETE) = @Honap
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID=nkm.C_TEVEKENYSEGTIPUSA AND d.C_TANEVID=nkm.C_TANEVID AND d.C_INTEZMENYID=nkm.C_INTEZMENYID
LEFT JOIN T_NAPTARINAP_OSSZES nn ON CONVERT(DATE,nn.C_NAPDATUMA)=CONVERT(DATE,nkm.C_KEZDETE) AND nn.C_INTEZMENYID=@intezmenyId AND nn.C_TANEVID=@tanevId AND nn.TOROLT='F'
WHERE f.ID = @tanarId
SELECT TOP(1)
FORMAT(naptariNap.C_NAPDATUMA, 'yyyy') AS Ev
,FORMAT(naptariNap.C_NAPDATUMA, 'MM') AS Honap
FROM T_NAPTARINAP_OSSZES naptariNap
WHERE DATEPART(MONTH, naptariNap.C_NAPDATUMA) = @Honap
AND naptariNap.C_TANEVID = @TanevId
AND naptariNap.TOROLT = 'F'
END
-- Iktatási adatok
SELECT
f.ID AS PedagogusId
,f.C_OKTATASIAZONOSITO AS PedagogusOktAzon
,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
FROM T_FELHASZNALO_OSSZES f
INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = f.ID
WHERE f.ID = @tanarId
AND f.C_TANEVID = @tanevId AND f.C_INTEZMENYID = @intezmenyId
END
GO

View file

@ -0,0 +1,106 @@
DROP PROCEDURE IF EXISTS sp_GetOraEvesSorszama
GO
CREATE PROCEDURE sp_GetOraEvesSorszama
@tantargyId int,
@osztalyCsoportId int,
@datum datetime,
@oraTulajdonosId int,
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tanarSzamit bit,
@osztalybontasEgybe bit,
@osztalybontasCsoport bit
SET @tanarSzamit = dbo.fnGetRendszerbeallitasEnumBool(3075, @intezmenyId, @tanevId)
SET @osztalybontasEgybe = dbo.fnGetRendszerbeallitasEnumBool(3078, @intezmenyId, @tanevId)
SET @osztalybontasCsoport = 0
IF EXISTS (SELECT 1 FROM T_CSOPORT WHERE (ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL) OR C_OSZTALYBONTASID = @osztalyCsoportId) BEGIN
SET @osztalybontasCsoport = 1
END
IF @osztalybontasEgybe = 0 OR @osztalybontasCsoport = 0 BEGIN
IF @tanarSzamit = 1 BEGIN
SELECT COUNT(1) AS cnt
FROM T_TANITASIORA_OSSZES t
WHERE t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND t.C_TANARID = @oraTulajdonosId
AND t.C_ORAKEZDETE <= @datum
AND t.C_TANEVID = @tanevId
AND t.TOROLT = 'F'
END
ELSE BEGIN
SELECT COUNT(1) AS cnt
FROM T_TANITASIORA_OSSZES t
WHERE t.C_MEGTARTOTT = 'T'
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND t.C_ORAKEZDETE <= @datum
AND t.C_TANEVID = @tanevId
AND t.TOROLT = 'F'
END
END
ELSE BEGIN
IF @tanarSzamit = 1 BEGIN
SELECT COUNT(1) AS cnt
FROM T_TANITASIORA_OSSZES t
WHERE t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID IN (
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = (SELECT scs.C_OSZTALYBONTASID FROM T_CSOPORT scs WHERE scs.ID = @osztalyCsoportId)
UNION
SELECT cs.C_OSZTALYBONTASID
FROM T_CSOPORT cs
WHERE cs.ID = @osztalyCsoportId
UNION
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = @osztalyCsoportId
UNION
SELECT @osztalyCsoportId
)
AND t.C_TANARID = @oraTulajdonosId
AND t.C_ORAKEZDETE <= @datum
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_MEGTARTOTT = 'T'
AND t.C_TANEVID = @tanevId
AND t.TOROLT = 'F'
END
ELSE BEGIN
SELECT COUNT(1) AS cnt
FROM T_TANITASIORA_OSSZES t
WHERE t.C_TANTARGYID = @tantargyId
AND t.C_OSZTALYCSOPORTID IN (
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = (SELECT scs.C_OSZTALYBONTASID FROM T_CSOPORT scs WHERE scs.ID = @osztalyCsoportId)
UNION
SELECT cs.C_OSZTALYBONTASID
FROM T_CSOPORT cs
WHERE cs.ID = @osztalyCsoportId
UNION
SELECT cs.ID
FROM T_CSOPORT cs
WHERE cs.C_OSZTALYBONTASID = @osztalyCsoportId
UNION
SELECT @osztalyCsoportId
)
AND t.C_ORAKEZDETE <= @datum
AND t.C_SORSZAMOZANDO = 'T'
AND t.C_MEGTARTOTT = 'T'
AND t.C_TANEVID = @tanevId
AND t.TOROLT = 'F'
END
END
END
GO

View file

@ -0,0 +1,17 @@
DROP PROCEDURE IF EXISTS sp_GetOraEvesSorszamaLista
GO
CREATE PROCEDURE sp_GetOraEvesSorszamaLista
@tantargyId int,
@osztalyCsoportId int,
@datum datetime,
@tanarId int,
@intezmenyId int,
@tanevId int
AS
SET NOCOUNT ON;
SELECT Id AS TanitasiOraId, EvesSorszam AS OraEvesSorszam
FROM fnGetEvesOraszamLista(@tantargyId, @osztalyCsoportId, @tanarId, @datum, @intezmenyId, @tanevId)
GO

View file

@ -0,0 +1,55 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetOraMentessegList
GO
CREATE PROCEDURE [dbo].[sp_GetOraMentessegList]
@osztalyCsoportId int,
@start datetime,
@end datetime,
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@JogviszonyList NVARCHAR(MAX)
,@jogviszonyDb int
,@SzakmaiList NVARCHAR(MAX)
,@szakmaiDb int
CREATE TABLE #tmp (Nev nvarchar(250), SzakmaiGyak char(1), Jogviszony char(1))
INSERT INTO #tmp (Nev, SzakmaiGyak, Jogviszony)
SELECT
f.C_NYOMTATASINEV
,tta.C_SZAKMAIGYAKORLATON
,ISNULL(jogviszony.C_JOGVISZONYATSZUNETELTETO, tta.C_JOGVISZONYATSZUNETELTETO)
FROM T_TANULOCSOPORT tcs
INNER JOIN T_TANULO t ON t.ID = tcs.C_TANULOID
INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@osztalyCsoportId,@end) tta ON tta.TanuloId=t.ID
INNER JOIN T_FELHASZNALO f ON f.ID = t.ID
OUTER APPLY (
SELECT TOP (1)
IIF(jogviszony.C_KEZDETE <= @start AND DATEADD(day, 1, jogviszony.C_VEGE) > @end , 'T', 'F') C_JOGVISZONYATSZUNETELTETO
FROM T_JOGVISZONYSZUNETELTETES_OSSZES jogviszony
WHERE
jogviszony.C_TANULOTANUGYIADATOKID = tta.ID
AND jogviszony.C_TANULOID = tta.TanuloId
AND jogviszony.TOROLT = 'F'
AND jogviszony.C_INTEZMENYID = tcs.C_INTEZMENYID
AND jogviszony.C_TANEVID = tcs.C_TANEVID
ORDER BY C_JOGVISZONYATSZUNETELTETO DESC
) jogviszony
WHERE tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= GETDATE()) AND tcs.c_osztalycsoportid = @osztalyCsoportId
SELECT @SzakmaiList = ISNULL(@SzakmaiList + ', ', '') + Nev FROM #tmp WHERE SzakmaiGyak = 'T'
SELECT @szakmaiDb = COUNT(*) FROM #tmp WHERE SzakmaiGyak='T'
SELECT @JogviszonyList = COALESCE(@JogviszonyList + ', ', '') + Nev FROM #tmp WHERE Jogviszony = 'T'
SELECT @jogviszonyDb = COUNT(*) FROM #tmp WHERE Jogviszony='T'
SELECT
@szakmaiDb as SzakmaiGyakDb
,@SzakmaiList as SzakmaiGyakNevSor
,@jogviszonyDb as JogviszonyDb
,@JogviszonyList as JogviszonyNevSor
END
GO

View file

@ -0,0 +1,315 @@

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS dbo.sp_GetOrarend
GO
CREATE PROCEDURE dbo.sp_GetOrarend
@pIntezmenyId int
,@pTanevId int
,@pIdoszakKezdete date
,@pIdoszakVege date
,@pTanarId int = NULL
,@pIsHelyettesitesNelkul bit = 0
,@pOsztalyCsoportId int = NULL
,@pTanuloId int = NULL
,@pTantargyId int = NULL
,@pTeremId int = NULL
,@pCsakOrarendiOrak bit
,@pIsNapirend bit = 0
,@pFeladatKategoriaId int = NULL
,@pOrakezdete time = NULL
,@pOravege time = NULL
,@pHetnapja int = NULL
,@pIsKozpontilagToroltOrak int = 0
,@pOszlopok nvarchar(4000) = '*' -- sql injection rulez
AS
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(MAX) = '';
--SET @pOrakezdete = CONVERT(datetime, CONVERT(TIME, @pOrakezdete));
--SET @pOravege = CONVERT(datetime, CONVERT(TIME, @pOravege));
-- DROP TABLE IF EXISTS #KapcsolodoCsoportok
SET @SQL += '
CREATE TABLE #KapcsolodoCsoportok(
ID int NOT NULL,
Kezdete date NOT NULL,
Vege date NOT NULL,
IsOsztaly bit,
PRIMARY KEY CLUSTERED(ID, Kezdete, Vege)
);
';
-- Összes osztályhoz vagy csoporthoz kapcsolódó további osztályok vagy csoportok megkeresése
IF @pOsztalyCsoportId IS NOT NULL
SET @SQL += '
INSERT INTO #KapcsolodoCsoportok(ID, Kezdete, Vege, IsOsztaly)
SELECT DISTINCT ID, Kezdete, Vege, 1 as IsOsztaly
FROM dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange(@pOsztalyCsoportId, @pIdoszakKezdete, @pIdoszakVege, @pIntezmenyId, @pTanevId) t;
';
-- Összes a tanulóhoz kapcsolódó további osztályok vagy csoportok megkeresése (amelyek még nincsenek meg)
IF @pTanuloId IS NOT NULL
SET @SQL += '
INSERT INTO #KapcsolodoCsoportok(ID, Kezdete, Vege, IsOsztaly)
SELECT DISTINCT tcs.C_OSZTALYCSOPORTID AS ID, tcs.C_BELEPESDATUM AS Kezdete, ISNULL(tcs.C_KILEPESDATUM, t.C_UTOLSONAP) AS Vege, 0 As IsOsztaly
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANEV_OSSZES t on t.ID = tcs.C_TANEVID
WHERE t.TOROLT = ''F''
AND tcs.C_INTEZMENYID = @pIntezmenyId
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_TANULOID = @pTanuloId
AND tcs.TOROLT = ''F''
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
AND NOT EXISTS(SELECT * FROM #KapcsolodoCsoportok k WHERE k.ID = tcs.C_OSZTALYCSOPORTID);
';
-- Fő lekérdezés
SET @SQL += '
SELECT ' + @pOszlopok + '
FROM (
SELECT
ISNULL(tn.Id, oo.Id) AS Id
,ISNULL(tn.ORARENDIID, oo.ORARENDIID) AS ORARENDIID
,ISNULL(tn.Datum, oo.Datum) AS Datum
,ISNULL(tn.Bontott, oo.Bontott) AS Bontott
,ISNULL(tn.Hetirend, oo.Hetirend) AS Hetirend
,ISNULL(tn.HetNapja, oo.HetNapja) AS HetNapja
,ISNULL(tn.HetSorszam, oo.HetSorszam) AS HetSorszam
,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegKezdete) AS ErvenyessegKezdete
,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegVege) AS ErvenyessegVege
,ISNULL(tn.OraKezdet, oo.OraKezdet) AS OraKezdete
,ISNULL(tn.OraVeg, oo.OraVeg) AS OraVege
,ISNULL(tn.Oraszam, oo.Oraszam) AS Oraszam
,ISNULL(tantargy.C_ROVIDNEV, tantargy.C_NEV) AS TargyNev -- [3]: itt kellene javítani ISNULL helyett COALESCE
,COALESCE(tantargy.C_ROVIDNEV, tantargy.C_NEV) AS TargyNevForMobile
,tantargy.C_TARGYKATEGORIA AS TargykategoriaID
,ISNULL(tn.Megtartott, oo.Megtartott) AS Megtartott
,ISNULL(tn.CsengetesiRendOraID, oo.CsengetesiRendOraID) AS CsengetesiRendOraID
,ISNULL(tn.CsengetesiRendID, oo.CsengetesiRendID) AS CsengetesiRendID
,CAST(ISNULL(oo.MaxOraszam, 48) AS INT) AS MaxNapiOraszam
,osztaly.C_NEV AS OsztalyNev
,ISNULL(tn.TanevRendOsztalyCsoportId, oo.TanevRendOsztalyCsoportId) AS TanevRendOsztalyCsoportId
,ISNULL(tn.MegjelenesOka, oo.MegjelenesOka) AS MegjelenesOka
,tanar.C_NYOMTATASINEV AS TanarNev
,tanar.C_IDPEGYEDIAZONOSITO AS TanarIdpUniqueId
,terem.C_NEV AS TeremNev
,ISNULL(tn.TeremId, oo.TeremId) AS TeremId
,ISNULL(tn.OraTipus, oo.OraTipus) AS OraTipus
,ISNULL(tn.Hianyzas, oo.Hianyzas) AS Hianyzas
,ISNULL(tn.Keses, oo.Keses) AS Keses
,ISNULL(tn.Ures, oo.Ures) AS Ures
,ISNULL(tn.HelyettesitoTanarID, oo.HelyettesitoTanarID) AS HelyettesitoTanarID
,helyettes.C_NYOMTATASINEV AS HelyettesitoTanarNev
,helyettes.C_IDPEGYEDIAZONOSITO AS HelyettesitoTanarIdpUniqueId
,oo.HelyettesitesId AS HelyettesitesId
,ISNULL(tn.TanarID, oo.TanarID) AS TanarID
,ISNULL(tn.AdminAltalKiirt, oo.AdminAltalKiirt) AS AdminAltalKiirt
,ISNULL(tn.GroupId, oo.GroupId) AS GroupId
,tn.Tema AS Tema
,tn.EvesOraSorszam AS EvesOraSorszam
,ISNULL(tn.TantargyId, oo.TantargyId) AS TantargyId
,ISNULL(tn.OsztCsopId, oo.OsztCsopId) AS OsztCsopId
,csoport.C_OSZTALYBONTASID AS OsztalyBontasId
,ISNULL(tn.IsEgyediNap, oo.IsEgyediNap) as IsEgyediNap
,terem.C_TOBBORATLEHETTARTANI AS TeremTobbOratLehetTartani
,oo.KozpontiOraGroupId
,oo.KozpontilagToroltOraGroupId
,ISNULL(oo.CREATED, tn.CREATED) CREATED
,ISNULL(oo.LASTCHANGED, tn.LASTCHANGED) LASTCHANGED
FROM (
-- Órarendi órák + helyettesítések
SELECT
orr.C_ORARENDIORAID AS Id
,orr.C_ORARENDIORAID AS ORARENDIID
,orr.C_DATUM AS Datum
,orr.C_BONTOTT AS Bontott
,orr.C_HETIREND AS Hetirend
,orr.C_HETNAPJA AS HetNapja
,orr.C_HETSORSZAMA AS HetSorszam
,orr.C_ORAERVENYESSEGKEZDETE AS ErvenyessegKezdete
,orr.C_ORAERVENYESSEGVEGE AS ErvenyessegVege
,CAST(orr.C_DATUM AS DATETIME) + CAST(orr.C_ORAKEZDETE AS DATETIME) AS OraKezdet
,CAST(orr.C_DATUM AS DATETIME) + CAST(orr.C_ORAVEGE AS DATETIME) AS OraVeg
,orr.C_ORAKEZDETE AS OraKezdete
,orr.C_ORAVEGE AS OraVege
,orr.C_ORASZAM AS Oraszam
,orr.C_MAXORASZAM AS MaxOraszam
,''F'' AS Megtartott
,csro.ID AS CsengetesiRendOraID
,csro.C_CSENGETESIRENDID AS CsengetesiRendID
,orr.C_OSZTALYCSOPORTID AS TanevRendOsztalyCsoportId
,'''' AS MegjelenesOka
,orr.C_TEREMID AS TeremId
,''OrarendiOra'' AS OraTipus
,''F'' AS Hianyzas
,''F'' AS Keses
,''F'' AS Ures
,orr.C_HELYETTESTANAROKID AS HelyettesitoTanarID
,orr.C_HELYETTESITESID AS HelyettesitesId
,orr.C_TANARID AS TanarID
,NULL AS AdminAltalKiirt
,orr.C_ORARENDIORAGROUPID AS GroupId
,NULL AS Tema
,orr.C_TANTARGYID AS TantargyId
,orr.C_OSZTALYCSOPORTID AS OsztCsopId
,orr.C_EGYEDINAP as IsEgyediNap
,orr.C_KOZPONTIORAGROUPID as KozpontiOraGroupId
,orr.C_KOZPONTILAGTOROLTORAGROUPID as KozpontilagToroltOraGroupId
,orr.CREATED
,orr.LASTCHANGED
FROM T_ORARENDTELJES_OSSZES orr
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_CSENGETESIRENDID = orr.C_CSENGETESIRENDID AND csro.C_ORASZAM = orr.C_ORASZAM AND csro.TOROLT = ''F''
LEFT JOIN #KapcsolodoCsoportok kocs ON orr.C_OSZTALYCSOPORTID = kocs.Id AND orr.C_DATUM >= kocs.Kezdete AND orr.C_DATUM < kocs.Vege
WHERE 0 = 0
AND orr.C_INTEZMENYID = @pIntezmenyId
AND orr.C_TANEVID = @pTanevId
AND orr.C_DATUM >= @pIdoszakKezdete
AND orr.C_DATUM < @pIdoszakVege
AND ((@pIsNapirend = 1 OR @pIsNapirend IS NULL) OR csro.ID IS NOT NULL)
AND ((@pIsNapirend = 0 OR @pIsNapirend IS NULL) OR orr.C_CSENGETESIRENDID IS NULL)
AND ((@pIsNapirend = 0 OR @pIsNapirend = 1) OR ((orr.C_CSENGETESIRENDID IS NOT NULL AND csro.C_CSENGETESIRENDID IS NOT NULL) OR (orr.C_CSENGETESIRENDID IS NULL AND csro.C_CSENGETESIRENDID IS NULL)))
AND (@pTantargyId IS NULL OR orr.C_TANTARGYID = @pTantargyId)
AND ((@pOravege IS NULL OR @pOrakezdete IS NULL) OR (orr.C_ORAVEGE > @pOrakezdete AND orr.C_ORAKEZDETE < @pOravege))
AND (@pHetnapja IS NULL OR orr.C_HETNAPJA = @pHetnapja)
AND (@pTeremId IS NULL OR orr.C_TEREMID = @pTeremId)
AND (@pOsztalyCsoportId IS NULL OR kocs.Id IS NOT NULL)
AND (@pTanuloId IS NULL OR kocs.Id IS NOT NULL)
AND (@pFeladatKategoriaId IS NULL OR orr.C_FELADATKATEGORIAID = @pFeladatKategoriaId)
AND ((@pOsztalyCsoportId IS NULL AND @pTanuloId IS NULL) OR orr.C_ISOSZTALYORARENDBENEMLATSZIK = ''F'')
AND (
((@pTanarId IS NULL AND @pIsHelyettesitesNelkul = 1) AND (orr.C_TANARID IS NOT NULL OR orr.C_HELYETTESTANAROKID IS NULL))
OR
((@pTanarId IS NULL AND @pIsHelyettesitesNelkul = 0) AND (orr.C_TANARID IS NOT NULL OR orr.C_HELYETTESTANAROKID IS NOT NULL))
OR
((@pTanarId IS NOT NULL AND @pIsHelyettesitesNelkul = 1) AND orr.C_TANARID = @pTanarId)
OR
((@pTanarId IS NOT NULL AND @pIsHelyettesitesNelkul = 0) AND (orr.C_TANARID = @pTanarId OR orr.C_HELYETTESTANAROKID = @pTanarId))
)
) oo
FULL JOIN (
-- Tanítási órák + helyettesítések
SELECT
tao.ID AS Id
,NULL AS ORARENDIID
,CAST(tao.C_DATUM AS DATE) AS Datum
,tao.C_BONTOTT AS Bontott
,1554 AS Hetirend
,tao.C_HETNAPJA AS HetNapja
,tao.C_HETSORSZAMA AS HetSorszam
,tao.C_ORAKEZDETE AS OraKezdet
,tao.C_ORAVEGE AS OraVeg
,CAST(tao.C_ORAKEZDETE AS TIME) AS OraKezdete
,CAST(tao.C_ORAVEGE AS TIME) AS OraVege
,tao.C_ORASZAM AS Oraszam
,tao.C_MEGTARTOTT AS Megtartott
,tao.C_CSENGETESIRENDORAID AS CsengetesiRendOraID
,tao.C_CSENGETESIRENDID AS CsengetesiRendID
,tao.C_OSZTALYCSOPORTID AS TanevRendOsztalyCsoportId
,'''' AS MegjelenesOka
,tao.C_TEREMID as TeremId
,''TanitasiOra'' AS OraTipus
,IIF(mh.ID IS NULL, ''F'', ''T'') AS Hianyzas
,IIF(mk.ID IS NULL, ''F'', ''T'') AS Keses
,IIF(mu.ID IS NULL, ''F'', ''T'') AS Ures
,tao.C_HELYETTESITOTANARID AS HelyettesitoTanarID
,tao.C_TANARID AS TanarID
,tao.C_ADMINALTALKIIRT AS AdminAltalKiirt
,tao.C_ORARENDIORAGROUPID AS GroupId
,tao.C_TEMA AS Tema
,tao.C_TANTARGYID AS TantargyId
,tao.C_OSZTALYCSOPORTID AS OsztCsopId
,tao.C_EGYEDINAP as IsEgyediNap
,tao.C_ORAEVESSORSZAMA AS EvesOraSorszam
,tao.CREATED
,tao.LASTCHANGED
FROM T_TANITASIORA_OSSZES tao
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F'' AND ocs.C_INTEZMENYID = @pIntezmenyId AND ocs.C_TANEVID = @pTanevId
INNER JOIN T_TANTARGY_OSSZES tt ON tao.C_TANTARGYID = tt.ID AND tt.C_INTEZMENYID = @pIntezmenyId AND tt.C_TANEVID = @pTanevId
LEFT JOIN #KapcsolodoCsoportok kocs ON tao.C_OSZTALYCSOPORTID = kocs.Id AND tao.C_DATUM >= kocs.Kezdete AND tao.C_DATUM < kocs.Vege
LEFT JOIN T_TANULOMULASZTAS_OSSZES mh ON mh.C_TANITASIORAKID = tao.ID AND mh.C_ORATANULOIID = @pTanuloId AND mh.C_TIPUS = 1500 AND mh.TOROLT = ''F''
LEFT JOIN T_TANULOMULASZTAS_OSSZES mk ON mk.C_TANITASIORAKID = tao.ID AND mk.C_ORATANULOIID = @pTanuloId AND mk.C_TIPUS = 1499 AND mk.TOROLT = ''F''
LEFT JOIN T_TANULOMULASZTAS_OSSZES mu ON mu.C_TANITASIORAKID = tao.ID AND mu.C_ORATANULOIID = @pTanuloId AND mu.C_TIPUS = 1817 AND mu.TOROLT = ''F''
WHERE 0 = 0
AND (@pCsakOrarendiOrak = 0)
AND tao.TOROLT = ''F''
AND tao.C_INTEZMENYID = @pIntezmenyId
AND tao.C_TANEVID = @pTanevId
AND tao.C_DATUM >= @pIdoszakKezdete
AND tao.C_DATUM < @pIdoszakVege
AND (@pOsztalyCsoportId IS NULL OR kocs.Id IS NOT NULL)
AND (@pTanuloId IS NULL OR kocs.Id IS NOT NULL)
AND ((@pIsNapirend = 0 OR @pIsNapirend IS NULL) OR tao.C_CSENGETESIRENDID IS NULL)
AND ((@pIsNapirend = 1 OR @pIsNapirend IS NULL) OR tao.C_CSENGETESIRENDID IS NOT NULL)
AND ((@pTanarId IS NULL OR @pIsHelyettesitesNelkul = 1) OR (tao.C_TANARID = @pTanarId OR tao.C_HELYETTESITOTANARID = @pTanarId))
AND ((@pTanarId IS NULL OR @pIsHelyettesitesNelkul = 0) OR (tao.C_TANARID = @pTanarId))
AND (@pTantargyId IS NULL OR tao.C_TANTARGYID = @pTantargyId)
AND ((@pOravege IS NULL OR @pOrakezdete IS NULL) OR (CAST(tao.C_ORAVEGE AS TIME) > @pOrakezdete AND CAST(tao.C_ORAKEZDETE AS TIME) < @pOravege))
AND (@pHetnapja IS NULL OR tao.C_HETNAPJA = @pHetnapja)
AND (@pTeremId IS NULL OR tao.C_TEREMID = @pTeremId)
AND (@pFeladatKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId)
AND (@pTanuloId IS NULL OR ((mu.C_TIPUS <> 1817 OR mu.C_TIPUS IS NULL) OR (tt.C_ISOSZTALYORARENDBENEMLATSZIK = ''F'')))
) tn ON 0 = 0
AND tn.Datum = oo.Datum
AND tn.HetNapja = oo.HetNapja
AND ((@pIsNapirend IS NULL OR @pIsNapirend = 0) OR (tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege))
AND ((@pIsNapirend IS NULL OR @pIsNapirend = 1) OR (tn.Oraszam = oo.Oraszam))
AND (@pIsNapirend IS NOT NULL OR ((tn.CsengetesiRendID IS NULL AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege) OR (tn.CsengetesiRendID IS NOT NULL AND tn.Oraszam = oo.Oraszam)))
AND tn.TanevRendOsztalyCsoportId = oo.TanevRendOsztalyCsoportId
AND tn.TantargyId = oo.TantargyId
AND tn.TanarID = oo.TanarID
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = ISNULL(tn.TantargyId, oo.TantargyId) AND (@pOsztalyCsoportId IS NULL OR tantargy.C_ISOSZTALYORARENDBENEMLATSZIK = ''F'') AND tantargy.C_INTEZMENYID = @pIntezmenyId AND tantargy.C_TANEVID = @pTanevId
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = ISNULL(tn.TanarID, oo.TanarID) AND tanar.C_INTEZMENYID = @pIntezmenyId AND tanar.C_TANEVID = @pTanevId
LEFT JOIN T_TEREM_OSSZES terem ON terem.ID = ISNULL(tn.TeremId, oo.TeremId) AND terem.C_INTEZMENYID = @pIntezmenyId AND terem.C_TANEVID = @pTanevId
LEFT JOIN T_CSOPORT_OSSZES csoport ON csoport.ID = ISNULL(tn.OsztCsopId, oo.OsztCsopId) AND csoport.C_ALINTEZMENYID = @pIntezmenyId AND csoport.C_ALTANEVID = @pTanevId
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON helyettes.ID = ISNULL(tn.HelyettesitoTanarID, oo.HelyettesitoTanarID) AND helyettes.C_INTEZMENYID = @pIntezmenyId AND helyettes.C_TANEVID = @pTanevId
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztaly ON osztaly.ID = ISNULL(tn.OsztCsopId, oo.OsztCsopId) AND (@pFeladatKategoriaId IS NULL OR osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId) AND osztaly.C_INTEZMENYID = @pIntezmenyId AND osztaly.C_TANEVID = @pTanevId
) main
OPTION (OPTIMIZE FOR UNKNOWN)
';
EXEC sp_executesql
@stmt = @SQL
,@params = N'
@pIntezmenyId int
,@pTanevId int
,@pIdoszakKezdete date
,@pIdoszakVege date
,@pTanarId int
,@pIsHelyettesitesNelkul bit
,@pOsztalyCsoportId int
,@pTanuloId int
,@pTantargyId int
,@pTeremId int
,@pCsakOrarendiOrak bit
,@pIsNapirend bit
,@pFeladatKategoriaId int
,@pOrakezdete time
,@pOravege time
,@pHetnapja int
,@pIsKozpontilagToroltOrak int'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pIdoszakKezdete = @pIdoszakKezdete
,@pIdoszakVege = @pIdoszakVege
,@pTanarId = @pTanarId
,@pIsHelyettesitesNelkul = @pIsHelyettesitesNelkul
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTanuloId = @pTanuloId
,@pTantargyId = @pTantargyId
,@pTeremId = @pTeremId
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
,@pIsNapirend = @pIsNapirend
,@pFeladatKategoriaId = @pFeladatKategoriaId
,@pOrakezdete = @pOrakezdete
,@pOravege = @pOravege
,@pHetnapja = @pHetnapja
,@pIsKozpontilagToroltOrak = @pIsKozpontilagToroltOrak
GO

View file

@ -0,0 +1,205 @@
DROP PROCEDURE IF EXISTS sp_GetOrarendKereszttabla_Osztaly
GO
CREATE PROCEDURE sp_GetOrarendKereszttabla_Osztaly
@tanevId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
ELSE
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
INSERT INTO #KapcsolodoCsoportok
SELECT DISTINCT
o.ID Osztaly
,k.ID KapcsolodoCsoport
FROM T_OSZTALY_OSSZES o
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
WHERE
TOROLT = 'F'
AND C_ALTANEVID = @tanevId
DECLARE @OsztalyhozKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, TanarId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
INSERT INTO @OsztalyhozKapcsolodoOsszesOrarendiora
SELECT
k.OsztalyId
,k.OsztalyCsoportId
,o.ID
,C_TANTARGYID
,C_TANARID
,C_TEREMID
,C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
FROM #KapcsolodoCsoportok k
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
WHERE
TOROLT = 'F'
DECLARE @temp TABLE (OsztalyId INT, OsztalyCsoportNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX), HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.OsztalyId OsztalyId
,ocs.C_NEV OsztalyCsoportNev
,osztalyNev.C_NEV OsztalyNev
,OrarendiOra.HetirendId HetirendId
,hetirend.C_NAME HetirendNev
,OrarendiOra.HetnapjaId HetnapjaId
,OrarendiOra.Oraszam Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Pedagogus.C_NYOMTATASINEV PedagogusNev
,Terem.C_NEV TeremNev
FROM @OsztalyhozKapcsolodoOsszesOrarendiora OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.TanarId
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.TeremId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.OsztalyCsoportId
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyNev ON osztalyNev.ID = OrarendiOra.OsztalyId
WHERE
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
DECLARE @Hetirendek TABLE (Id INT)
INSERT INTO @Hetirendek
SELECT DISTINCT HetirendId FROM @temp
DECLARE @OsszesOra TABLE (OsztalyId INT, Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT Osztaly, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT DISTINCT OsztalyId FROM #KapcsolodoCsoportok) Osztaly(Osztaly)
CROSS JOIN (SELECT DISTINCT Oraszam FROM @temp) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (OsztalyId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO @TenylegesOra
SELECT
OsztalyId
,HetnapjaId
,Oraszam
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' ('+IIF(bveg.OsztalyCsoportNev <> bveg.OsztalyNev, bveg.OsztalyCsoportNev +', ', '') +bveg.PedagogusNev+', '+bveg.TeremNev+', ' +HetirendNev+')' AS VARCHAR(max))
FROM @temp bveg
WHERE
bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
AND bveg.OsztalyId = veg.OsztalyId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
FROM @temp veg
/*Végleges órarend*/
CREATE TABLE #Orarend (OsztalyId INT, OsztalyNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO #Orarend
SELECT
OsszesOra.OsztalyId
,ocs.C_NEV
,OsszesOra.Oraszam
,OsszesOra.Nap
,TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.OsztalyId = OsszesOra.OsztalyId
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OsszesOra.OsztalyId
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
--------------------------------------------------------------------------------------------------------------
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
INSERT INTO #Napok
SELECT DISTINCT
*
, CASE
WHEN nap = 'hetfo' THEN 1
WHEN nap = 'kedd' THEN 2
WHEN nap = 'szerda' THEN 3
WHEN nap = 'csutortok' THEN 4
WHEN nap = 'pentek' THEN 5
END
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
CROSS JOIN (SELECT DISTINCT Oraszam FROM @temp) OraSzam (OraSzam)
DECLARE @Oraszamok NVARCHAR(MAX),
@OraszamokAlias NVARCHAR(MAX)
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
FROM (SELECT DISTINCT Oraszam FROM @temp ) o
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
SELECT DISTINCT
ocs.C_NEV OsztalyNev,
' + @OraszamokAlias + '
FROM #KapcsolodoCsoportok k
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1408
) hetfo ON hetfo.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1409
) kedd ON kedd.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1410
) szerda ON szerda.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1411
) csutortok ON csutortok.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1412
) pentek ON pentek.OsztalyId = k.OsztalyId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = k.OsztalyId
ORDER BY C_NEV
'
EXEC sp_executesql @sql
DROP TABLE #Napok
DROP TABLE #Orarend
DROP TABLE #KapcsolodoCsoportok
END
GO

View file

@ -0,0 +1,201 @@
DROP PROCEDURE IF EXISTS sp_GetOrarendKereszttabla_Pedagogus
GO
CREATE PROCEDURE sp_GetOrarendKereszttabla_Pedagogus
@tanevId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
ELSE
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
INSERT INTO #KapcsolodoCsoportok
SELECT DISTINCT
o.ID Osztaly
,k.ID KapcsolodoCsoport
FROM T_OSZTALY_OSSZES o
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
WHERE
o.TOROLT = 'F'
AND o.C_ALTANEVID = @tanevId
DECLARE @PedagogushozKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, PedagogusId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
INSERT INTO @PedagogushozKapcsolodoOsszesOrarendiora
SELECT
k.OsztalyId
,K.OsztalyCsoportId
,o.ID
,C_TANTARGYID
,C_TANARID
,C_TEREMID
,C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
FROM #KapcsolodoCsoportok k
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
WHERE
TOROLT = 'F'
CREATE TABLE #temp (PedagogusId INT, HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX))
INSERT INTO #temp
SELECT
OrarendiOra.PedagogusId PedagogusId
,OrarendiOra.HetirendId HetirendId
,hetirend.C_NAME HetirendNev
,OrarendiOra.HetnapjaId HetnapjaId
,OrarendiOra.Oraszam Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyNev
FROM @PedagogushozKapcsolodoOsszesOrarendiora OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.TeremId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = OrarendiOrA.OsztalyCsoportId
WHERE
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
DECLARE @Hetirendek TABLE (Id INT)
INSERT INTO @Hetirendek
SELECT DISTINCT HetirendId FROM #temp
DECLARE @OsszesOra TABLE (PedagogusId INT, Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT PedagogusId, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT DISTINCT PedagogusId FROM #temp) Pedagogus(PedagogusId)
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (PedagogusId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO @TenylegesOra
SELECT
PedagogusId
,HetnapjaId
,Oraszam
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' (' +bveg.OsztalyNev+', ' + bveg.TeremNev +', ' +HetirendNev+')' AS VARCHAR(max))
FROM #temp bveg
WHERE
bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
AND bveg.PedagogusId = veg.PedagogusId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
FROM #temp veg
/*Végleges órarend*/
CREATE TABLE #Orarend (PedagogusId INT, PedagogusNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO #Orarend
SELECT
OsszesOra.PedagogusId
,ped.C_NYOMTATASINEV
,OsszesOra.Oraszam
,OsszesOra.Nap
,TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.PedagogusId = OsszesOra.PedagogusId
LEFT JOIN T_FELHASZNALO_OSSZES ped ON ped.ID = OsszesOra.PedagogusId
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
--------------------------------------------------------------------------------------------------------------
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
INSERT INTO #Napok
SELECT DISTINCT
*
, CASE
WHEN nap = 'hetfo' THEN 1
WHEN nap = 'kedd' THEN 2
WHEN nap = 'szerda' THEN 3
WHEN nap = 'csutortok' THEN 4
WHEN nap = 'pentek' THEN 5
END
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
DECLARE @Oraszamok NVARCHAR(MAX),
@OraszamokAlias NVARCHAR(MAX)
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
FROM (SELECT DISTINCT Oraszam FROM #temp ) o
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
SELECT DISTINCT
f.C_NYOMTATASINEV PedagogusNev,
' + @OraszamokAlias + '
FROM (SELECT DISTINCT PedagogusId FROM #temp) k
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1408
) hetfo ON hetfo.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1409
) kedd ON kedd.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1410
) szerda ON szerda.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1411
) csutortok ON csutortok.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1412
) pentek ON pentek.PedagogusId = k.PedagogusId
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = k.PedagogusId
ORDER BY C_NYOMTATASINEV
'
EXEC sp_executesql @sql
DROP TABLE #Napok
DROP TABLE #Orarend
DROP TABLE #KapcsolodoCsoportok
END
GO

View file

@ -0,0 +1,260 @@
DROP PROCEDURE IF EXISTS sp_GetOrarendOsztalyonkent
GO
CREATE PROCEDURE sp_GetOrarendOsztalyonkent
@intezmenyId INT,
@tanevId INT,
@osztalyId INT,
@aktivTanevId INT,
@isEgyebFoglalkozasok BIT,
@orarendErvenyessegiDatum DATE,
@isOsztalyTanuloOrarendbenNemLatszik BIT = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
,@ElsoNap DATE = (SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
,@VizsgaltNap DATE
,@isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
,@VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F')
,@osztalyNev NVARCHAR(MAX) = (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
SET @UtolsoNap = (SELECT IIF(@isVegzos = 'T', @VegzosUtolsoNap, @UtolsoNap))
IF (@tanevId = @aktivTanevId AND @orarendErvenyessegiDatum <= @UtolsoNap)
BEGIN
IF (@orarendErvenyessegiDatum <= @ElsoNap)
BEGIN
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
END
END
ELSE
BEGIN
SET @VizsgaltNap = @UtolsoNap
END
SELECT
C_ORASZAM OraSzam
,CONVERT(VARCHAR(5), C_KEZDETE, 108) Kezdete
,CONVERT(VARCHAR(5), C_VEGE, 108) Vege
INTO #CsengetesiRendAdatok
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
WHERE
CsengetesiRendOra.C_TANEVID = @tanevId
AND CsengetesiRendOra.TOROLT = 'F'
AND CsengetesiRend.TOROLT = 'F'
AND CsengetesiRend.C_AKTIV = 'T'
DECLARE @MinCsengetesiRendOraKezdet NVARCHAR(10) = (SELECT MIN(Kezdete) FROM #CsengetesiRendAdatok)
DECLARE @MinCsengetesiRendOraszam INT = (SELECT MIN(OraSzam) FROM #CsengetesiRendAdatok)
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,CsengetesiRendOra.C_ORASZAM OraSzam
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAKEZDETE, 108) Kezdete
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAVEGE, 108) Vege
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Pedagogus.C_NYOMTATASINEV PedagogusNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyCsoportNev
INTO #OrarendiOrak
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN fnGetKapcsolodoOsztalycsoportokByDate(@osztalyId, @VizsgaltNap, @VizsgaltNap) Kapcsolodo ON Kapcsolodo.Id = OrarendiOra.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.C_TANARID
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.C_TEREMID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
LEFT JOIN T_CSOPORT_OSSZES Csoport ON Csoport.Id = Kapcsolodo.Id
WHERE
OrarendiOra.Torolt = 'F'
AND @VizsgaltNap BETWEEN OrarendiOra.C_ORAERVENYESSEGKEZDETE AND OrarendiOra.C_ORAERVENYESSEGVEGE
AND (@isEgyebFoglalkozasok = 1 OR (Csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) OR Csoport.C_TIPUSA IS NULL))
AND (@isOsztalyTanuloOrarendbenNemLatszik <> 1 OR @isOsztalyTanuloOrarendbenNemLatszik IS NULL OR Tantargy.C_ISOSZTALYORARENDBENEMLATSZIK = 'F')
SELECT
OraSzam
,HetirendId
,HetnapjaId
,OsztalyCsoportNev
,PedagogusNev
,TantargyNev
,TeremNev
,Kezdete
,Vege
INTO #OrarendTEMP
FROM
(
SELECT
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
,OrarendiOrak.HetirendId HetirendId
,OrarendiOrak.HetnapjaId HetnapjaId
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
,OrarendiOrak.PedagogusNev PedagogusNev
,OrarendiOrak.TantargyNev TantargyNev
,OrarendiOrak.TeremNev TeremNev
,OrarendiOrak.Kezdete Kezdete
,OrarendiOrak.Vege Vege
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.Kezdete >= CsengetesiRendAdatok.Kezdete
WHERE
OrarendiOrak.OraSzam IS NULL
GROUP BY
OrarendiOrak.HetirendId
,OrarendiOrak.HetnapjaId
,OrarendiOrak.OsztalyCsoportNev
,OrarendiOrak.PedagogusNev
,OrarendiOrak.TantargyNev
,OrarendiOrak.TeremNev
,OrarendiOrak.Kezdete
,OrarendiOrak.Vege
UNION
SELECT
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
,OrarendiOrak.HetirendId HetirendId
,OrarendiOrak.HetnapjaId HetnapjaId
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
,OrarendiOrak.PedagogusNev PedagogusNev
,OrarendiOrak.TantargyNev TantargyNev
,OrarendiOrak.TeremNev TeremNev
,OrarendiOrak.Kezdete Kezdete
,OrarendiOrak.Vege Vege
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.OraSzam = CsengetesiRendAdatok.OraSzam
WHERE
OrarendiOrak.OraSzam IS NOT NULL
GROUP BY
OrarendiOrak.HetirendId
,OrarendiOrak.HetnapjaId
,OrarendiOrak.OsztalyCsoportNev
,OrarendiOrak.PedagogusNev
,OrarendiOrak.TantargyNev
,OrarendiOrak.TeremNev
,OrarendiOrak.Kezdete
,OrarendiOrak.Vege
)OrarendioraOraszammal
INSERT INTO #OrarendTEMP
SELECT
@MinCsengetesiRendOraszam
,OrarendiOrak.HetirendId HetirendId
,OrarendiOrak.HetnapjaId HetnapjaId
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
,OrarendiOrak.PedagogusNev PedagogusNev
,OrarendiOrak.TantargyNev TantargyNev
,OrarendiOrak.TeremNev TeremNev
,OrarendiOrak.Kezdete Kezdete
,OrarendiOrak.Vege Vege
FROM #orarendiorak OrarendiOrak
WHERE
Kezdete < @MinCsengetesiRendOraKezdet
SELECT
Orarend.OraSzam
,HetirendId
,HetnapjaId
,OsztalyCsoportNev
,PedagogusNev
,TantargyNev
,TeremNev
,IIF(Orarend.Kezdete != CsengetesiRendAdatok.Kezdete OR Orarend.Vege != CsengetesiRendAdatok.Vege, Orarend.Kezdete + ' - ' + Orarend.Vege, '') KezdesVegeIdopont
INTO #Orarend
FROM #OrarendTEMP Orarend
INNER JOIN #CsengetesiRendAdatok CsengetesiRendAdatok on CsengetesiRendAdatok.Oraszam = Orarend.OraSzam
DECLARE @Hetirendek TABLE (Id INT)
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
IF (@HetirendCount=1)
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID = @tanevId
END
ELSE
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND <> 1554
END
DECLARE @Orakezdetek TABLE (Ora INT)
INSERT INTO @orakezdetek
SELECT DISTINCT OraSzam from #CsengetesiRendAdatok
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap , OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT Ora FROM @Orakezdetek) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413),(1414)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (osztalyId INT, Ora int, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT Id FROM @Hetirendek
DECLARE @HetirendId int
OPEN kur
FETCH NEXT FROM kur INTO @HetirendId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TenylegesOra
SELECT DISTINCT
@HetirendId
,veg.HetnapjaId
,veg.Oraszam
,STUFF((SELECT DISTINCT
CAST('<b>' + bveg.TantargyNev + '</b>' + CHAR(13) + CHAR(10)
+ IIF(LEN(KezdesVegeIdopont) > 0, ' (' + KezdesVegeIdopont +')' + CHAR(13) + CHAR(10), '')
+ IIF(bveg.OsztalyCsoportNev <> @osztalyNev, bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10), '')
+ bveg.PedagogusNev + CHAR(13) + CHAR(10)
+ bveg.TeremNev + CHAR(13) + CHAR(10) AS VARCHAR(max))
FROM #Orarend bveg
WHERE bveg.HetnapjaId = veg.HetnapjaId
AND bveg.Oraszam = veg.Oraszam
AND (bveg.HetirendId = @HetirendId OR bveg.HetirendId = 1554)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
FROM #Orarend veg
FETCH NEXT FROM kur INTO @HetirendId
END
CLOSE kur
DEALLOCATE kur
/*Végleges órarend*/
INSERT INTO @Orarend
SELECT @osztalyId
, OsszesOra.Oraszam
, OsszesOra.Hetirend
, OsszesOra.Nap
, TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend = TenylegesOra.Hetirend AND OsszesOra.Nap = TenylegesOra.Nap AND OsszesOra.Oraszam = TenylegesOra.Oraszam
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
SELECT
pv.*
, dic.C_NAME HETIREND_DNAME
,@osztalyNev OsztalyNev
FROM @Orarend
PIVOT (MAX(Foglalkozas) FOR Nap IN ([1408],[1409],[1410],[1411],[1412],[1413],[1414]))pv
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
ORDER BY Ora
END
DROP TABLE #CsengetesiRendAdatok
DROP TABLE #Orarend
DROP TABLE #OrarendiOrak
GO

View file

@ -0,0 +1,57 @@
-- =============================================
-- Author: Zsiga Attila
-- Create date: 2016.10.21.
-- Description: Az input órarendi órákhoz tartozó tanárokat adja vissza.
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetOrarendiOrakhozTartozoTanarok
GO
CREATE PROCEDURE sp_GetOrarendiOrakhozTartozoTanarok
@pXml XML,
@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON
SELECT
sor.value('.', 'int') AS OrarendiOraId
INTO
#TEMPORARENDIORAID
FROM
@pXml.nodes('/OrarendiOrak/IdLista/Id') as sorok(sor)
--TEMP TABLES
SELECT * INTO #TEMPFELHASZNALO FROM T_FELHASZNALO
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPORARENDIORA FROM T_ORARENDIORA
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPORARENDIORAK
FROM #TEMPORARENDIORAID
LEFT JOIN #TEMPORARENDIORA ON #TEMPORARENDIORA.ID = #TEMPORARENDIORAID.OrarendiOraId
---------------
SELECT
*
INTO
#TEMPERINTETTTANAROK
FROM
#TEMPFELHASZNALO
WHERE
ID IN (SELECT C_TANARID FROM #TEMPORARENDIORAK)
---------------
SELECT DISTINCT
ID TanarId,
C_NYOMTATASINEV Nev
FROM
#TEMPERINTETTTANAROK
DROP TABLE #TEMPORARENDIORAID
DROP TABLE #TEMPFELHASZNALO
DROP TABLE #TEMPORARENDIORA
DROP TABLE #TEMPORARENDIORAK
DROP TABLE #TEMPERINTETTTANAROK
END
GO

View file

@ -0,0 +1,58 @@
-- =============================================
-- Author: Zsiga Attila
-- Create date: 2016.10.21.
-- Description: Az input órarendi órákhoz tartozó tanulókat adja vissza.
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetOrarendiorakhozTartozoTanulok
GO
CREATE PROCEDURE sp_GetOrarendiorakhozTartozoTanulok
@pXml xml,
@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON
DECLARE @T_ORARENDIORAID TABLE (id int);
DECLARE @T_TANULOID TABLE (TanuloId INT, OsztalyCsoportId INT, OsztalyCsoportNev VARCHAR(MAX));
INSERT INTO @T_ORARENDIORAID
SELECT
sor.value('.', 'int') AS id
FROM @pXml.nodes('/OrarendiOrak/IdLista/Id') as sorok(sor)
--TEMP TABLES
SELECT * INTO #TEMPORARENDIORA FROM T_ORARENDIORA
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPTANULO FROM T_TANULO
WHERE TOROLT = 'F' AND C_ALTANEVID = @pTanevId
---------------
SELECT * INTO #TEMPOSZTALYCSOPORT FROM T_OSZTALYCSOPORT
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPTANULOCSOPORT FROM T_TANULOCSOPORT
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
INSERT INTO @T_TANULOID(TanuloId, OsztalyCsoportId, OsztalyCsoportNev)
SELECT
#TEMPTANULOCSOPORT.C_TANULOID TanuloId,
#TEMPOSZTALYCSOPORT.ID OsztalyCsoportId,
#TEMPOSZTALYCSOPORT.C_NEV OsztalyCsoportNev
FROM
#TEMPORARENDIORA
LEFT JOIN #TEMPOSZTALYCSOPORT ON #TEMPOSZTALYCSOPORT.ID = #TEMPORARENDIORA.C_OSZTALYCSOPORTID
INNER JOIN #TEMPTANULOCSOPORT ON #TEMPTANULOCSOPORT.C_OSZTALYCSOPORTID = #TEMPOSZTALYCSOPORT.ID
WHERE
#TEMPORARENDIORA.ID IN (SELECT Id FROM @T_ORARENDIORAID)
---------------
SELECT DISTINCT TanuloId FROM @T_TANULOID;
DROP TABLE #TEMPORARENDIORA
DROP TABLE #TEMPTANULO
DROP TABLE #TEMPOSZTALYCSOPORT
DROP TABLE #TEMPTANULOCSOPORT
END
GO

View file

@ -0,0 +1,55 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetOsszesNemBejegyzettOra]
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;
--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
GO

View file

@ -0,0 +1,29 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetOsztalyCsoportokForFeljegyzesek]
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyCsoportokForFeljegyzesek]
@felhasznaloId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @tmp TABLE (ID int)
INSERT INTO @tmp (ID)
exec sp_GetTanarKapcsolodoOsztalyai @felhasznaloId
DECLARE @tipus int = 1;
IF (SELECT C_MUNKAKORTIPUSA FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @felhasznaloId) IN (1762, 1763, 3027, 3028) SET @tipus = 3;
SELECT
ocs.ID AS ID,
ocs.C_NEV AS Nev,
CAST(@tipus AS nvarchar(1)) AS Tipus,
ocs.C_EVFOLYAMTIPUSA AS Evfolyam,
CASE WHEN ocs.C_EVFOLYAMTIPUSA IS NULL THEN 0 ELSE dic.C_ORDER END AS C_ORDER
FROM @tmp t
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = t.ID and ocs.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE dic ON dic.ID = ocs.C_EVFOLYAMTIPUSA and dic.TOROLT = 'F'
ORDER BY
Tipus DESC, C_ORDER ASC, Nev ASC
END
GO

View file

@ -0,0 +1,83 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje]
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje]
@pTanevId int
,@pIntezmenyId int
,@pOsztalyId int
,@pElmeletgyakorlat bit = 0
,@pMulasztandoOrakszamaTeljesNaposMulasztashoz int = 3
,@pHonapAdatszotarTypeId int = 55
AS
BEGIN
SET NOCOUNT ON;
DECLARE @honapok TABLE(honap INT, honapnev NVARCHAR(max));
INSERT INTO @honapok
SELECT DISTINCT (3 + d.c_value) % 12 + 1 AS c_value, d.c_name as Honap
FROM T_DICTIONARYITEMBASE_OSSZES d
WHERE d.C_DICTIONARYTYPEID = @pHonapAdatszotarTypeId
ORDER BY c_value;
SELECT honapnev FROM @honapok;
DECLARE honap_cursor CURSOR FOR
SELECT DISTINCT (3 + d.c_value) % 12 + 1 AS honap_sorrend, d.c_value AS honap
FROM T_DICTIONARYITEMBASE_OSSZES d
WHERE d.C_DICTIONARYTYPEID = @pHonapAdatszotarTypeId
ORDER BY honap_sorrend;
DECLARE @honap_sorrend INT, @honap INT;
OPEN honap_cursor
FETCH NEXT FROM honap_cursor
INTO @honap_sorrend, @honap;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC [sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra] @pTanevId, @pIntezmenyId, @pOsztalyId, @honap, @pElmeletgyakorlat, @pMulasztandoOrakszamaTeljesNaposMulasztashoz
FETCH NEXT FROM honap_cursor
INTO @honap_sorrend, @honap
END
CLOSE honap_cursor
DEALLOCATE honap_cursor
SELECT
ocs.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,o.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat
,o.C_SZAKMATIPUSID AS UjSzktSzakma
,o.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany
,o.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet
,o.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites
,o.C_SZAKIRANYNKTTIPUSID AS NktSzakirany
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
WHERE ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.C_INTEZMENYID = @pIntezmenyId
AND ocs.TOROLT = 'F'
END
SELECT
tanuloID AS TanuloId
,tanuloNeve AS TanuloNeve
,oktAzon AS OktAzon
FROM fnGetDokumentumTanuloiAlapadatok(@pOsztalyId, @pTanevId, 'T')
GO

View file

@ -0,0 +1,387 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]
@pTanevId INT,
@pIntezmenyId INT,
@pOsztalyId INT,
@pHonap INT,
@pElmeletgyakorlat BIT = 0,
@pMulasztandoOrakszamaTeljesNaposMulasztashoz INT = 3
AS
BEGIN
SET NOCOUNT ON;
DECLARE @idoszakEleje DATE = (SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId);
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
DECLARE @pAtsoroltTanuloAdatok INT = 1;
DECLARE @pMulasztasTipusIdKeses INT = 1499;
DECLARE @pMulasztasTipusIdHianyzas INT = 1500;
--Osztály tanulói
CREATE TABLE #tanulo (Id INT)
INSERT INTO #tanulo
SELECT DISTINCT tcs.c_tanuloid AS Id
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tcs.c_tanuloid
WHERE tcs.torolt='F' AND f.torolt='F' AND tcs.c_tanevid=@pTanevId AND tcs.c_intezmenyid=@pIntezmenyId AND tcs.c_osztalycsoportid=@pOsztalyId;
--Igazolástípusok
CREATE TABLE #igazolastipus (Id INT, Nev NVARCHAR(MAX), Sorrend INT);
INSERT INTO #igazolastipus
SELECT T_IGAZOLASTIPUS_OSSZES.ID AS Id, C_NAME AS Nev, C_ORDER AS Sorrrend
FROM T_IGAZOLASTIPUS_OSSZES
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ON T_IGAZOLASTIPUS_OSSZES.ID = T_DICTIONARYITEMBASE_OSSZES.ID
WHERE T_DICTIONARYITEMBASE_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = @pTanevId AND T_IGAZOLASTIPUS_OSSZES.C_ALINTEZMENYID = @pIntezmenyId AND T_IGAZOLASTIPUS_OSSZES.C_ALTANEVID = @pTanevId
AND T_IGAZOLASTIPUS_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F'
ORDER BY C_ORDER, C_NAME;
--Igazolások és típusai
CREATE TABLE #igazolas (Tanulo INT, IgazoltE NVARCHAR(1), IgazolasTipus INT, Gyakorlati CHAR(1), HianyzasErtek FLOAT, KesettPerc FLOAT)
INSERT INTO #igazolas
SELECT TanuloId AS Tanulo, Igazolt AS IgazoltE, IgazolasTipusa AS IgazolasTipus, IIF(@pElmeletgyakorlat=0, 'F', Gyakorlati) AS Gyakorlati,
SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS HianyzasErtek, KesesPercben AS KesettPerc
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, GETDATE(), DEFAULT) AS MULASZTASOK
WHERE (CAST(MONTH(Datum) AS VARCHAR)) = @pHonap AND Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
GROUP BY IIF(@pElmeletgyakorlat=0, 'F', Gyakorlati), TanuloId, Igazolt, IgazolasTipusa, KesesPercben;
--Mulasztások
CREATE TABLE #mulasztas (Nap NVARCHAR(5), Tanulo INT, Osztaly INT, HianyzasErtek FLOAT)
INSERT INTO #mulasztas
SELECT CAST(CAST(DAY(Datum) AS INT) AS NVARCHAR) + (IIF(@pElmeletgyakorlat=0, '', IIF(Gyakorlati = 'T', '_GY', '_E'))) AS Nap, TanuloId AS Tanulo, OsztalyCsoportId AS Osztaly,
SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses, CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS HianyzasErtek
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, GETDATE(), DEFAULT) AS MULASZTASOK
WHERE (CAST(MONTH(Datum) AS VARCHAR)) = @pHonap AND Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
GROUP BY CAST(DAY(Datum) AS INT), Gyakorlati, TanuloId, OsztalyCsoportId;
--Teljes napos mulasztások száma
CREATE TABLE #teljesnaposmul (Tanulo INT, HianyzasErtek INT)
INSERT INTO #teljesnaposmul
SELECT Tanulo, SUM(TeljesNapiMul) AS HianyzasErtek
FROM (
SELECT Tanulo, Nap, IIF(SUM(HianyzasErtek) >= @pMulasztandoOrakszamaTeljesNaposMulasztashoz, 1, 0) AS TeljesNapiMul
FROM #mulasztas
GROUP BY Tanulo, Nap
) AS TeljesNapiMulasztasok
GROUP BY Tanulo
DECLARE @query AS NVARCHAR(MAX);
IF @pElmeletgyakorlat=0
BEGIN
DECLARE @colsHeader AS NVARCHAR(MAX);
DECLARE @cols AS NVARCHAR(MAX);
DECLARE @colsSum AS NVARCHAR(MAX);
SELECT @colsHeader = ISNULL(@colsHeader + ', ', '') + QUOTENAME(Id) + ' AS ' + QUOTENAME(Nev),
@cols = ISNULL(@cols + ', ', '') + QUOTENAME(Id),
@colsSum = ISNULL(@colsSum + ', ', '') + 'SUM( [' + CAST(Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(Id)
FROM #igazolastipus AS Igazolastipus
ORDER BY Sorrend, Nev;
PRINT @cols;
PRINT @colsSum;
PRINT @colsHeader;
SET @query =
'SELECT
f.c_nyomtatasinev AS COLUMN108,
f.C_OKTATASIAZONOSITO AS COLUMN109,
IIF(m.[1]=0, NULL, FLOOR(m.[1])) AS [1],
IIF(m.[2]=0, NULL, FLOOR(m.[2])) AS [2],
IIF(m.[3]=0, NULL, FLOOR(m.[3])) AS [3],
IIF(m.[4]=0, NULL, FLOOR(m.[4])) AS [4],
IIF(m.[5]=0, NULL, FLOOR(m.[5])) AS [5],
IIF(m.[6]=0, NULL, FLOOR(m.[6])) AS [6],
IIF(m.[7]=0, NULL, FLOOR(m.[7])) AS [7],
IIF(m.[8]=0, NULL, FLOOR(m.[8])) AS [8],
IIF(m.[9]=0, NULL, FLOOR(m.[9])) AS [9],
IIF(m.[10]=0, NULL, FLOOR(m.[10])) AS [10],
IIF(m.[11]=0, NULL, FLOOR(m.[11])) AS [11],
IIF(m.[12]=0, NULL, FLOOR(m.[12])) AS [12],
IIF(m.[13]=0, NULL, FLOOR(m.[13])) AS [13],
IIF(m.[14]=0, NULL, FLOOR(m.[14])) AS [14],
IIF(m.[15]=0, NULL, FLOOR(m.[15])) AS [15],
IIF(m.[16]=0, NULL, FLOOR(m.[16])) AS [16],
IIF(m.[17]=0, NULL, FLOOR(m.[17])) AS [17],
IIF(m.[18]=0, NULL, FLOOR(m.[18])) AS [18],
IIF(m.[19]=0, NULL, FLOOR(m.[19])) AS [19],
IIF(m.[20]=0, NULL, FLOOR(m.[20])) AS [20],
IIF(m.[21]=0, NULL, FLOOR(m.[21])) AS [21],
IIF(m.[22]=0, NULL, FLOOR(m.[22])) AS [22],
IIF(m.[23]=0, NULL, FLOOR(m.[23])) AS [23],
IIF(m.[24]=0, NULL, FLOOR(m.[24])) AS [24],
IIF(m.[25]=0, NULL, FLOOR(m.[25])) AS [25],
IIF(m.[26]=0, NULL, FLOOR(m.[26])) AS [26],
IIF(m.[27]=0, NULL, FLOOR(m.[27])) AS [27],
IIF(m.[28]=0, NULL, FLOOR(m.[28])) AS [28],
IIF(m.[29]=0, NULL, FLOOR(m.[29])) AS [29],
IIF(m.[30]=0, NULL, FLOOR(m.[30])) AS [30],
IIF(m.[31]=0, NULL, FLOOR(m.[31])) AS [31],
FLOOR(OSSZES.MULASZTASOKSZAMA) AS COLUMN2672,
FLOOR(IGAZOLT.IGAZOLTSZAMA) AS COLUMN2568, ' + @colsHeader + ',
FLOOR(IGAZOLATLAN.IGAZOLATLANSZAMA) AS COLUMN1911,
TELJESNAPOSMULASZTAS.HianyzasErtek AS COLUMNTELJESNAPOSMULASZTASOK,
IGAZOLTKESES.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN,
IGAZOLATLANKESES.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN
FROM #tanulo AS tanulok
LEFT JOIN (
SELECT Tanulo, ' + @colsSum + '
FROM #igazolas AS igazolasok
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols + ')) AS PIVOTTABLE
GROUP BY Tanulo
) AS IGAZOLASTIPUSOKSZERINT ON IGAZOLASTIPUSOKSZERINT.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo, HianyzasErtek
FROM #teljesnaposmul AS teljesnaposmul
) AS TELJESNAPOSMULASZTAS ON TELJESNAPOSMULASZTAS.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo,
SUM([1]) AS [1],
SUM([2]) AS [2],
SUM([3]) AS [3],
SUM([4]) AS [4],
SUM([5]) AS [5],
SUM([6]) AS [6],
SUM([7]) AS [7],
SUM([8]) AS [8],
SUM([9]) AS [9],
SUM([10]) AS [10],
SUM([11]) AS [11],
SUM([12]) AS [12],
SUM([13]) AS [13],
SUM([14]) AS [14],
SUM([15]) AS [15],
SUM([16]) AS [16],
SUM([17]) AS [17],
SUM([18]) AS [18],
SUM([19]) AS [19],
SUM([20]) AS [20],
SUM([21]) AS [21],
SUM([22]) AS [22],
SUM([23]) AS [23],
SUM([24]) AS [24],
SUM([25]) AS [25],
SUM([26]) AS [26],
SUM([27]) AS [27],
SUM([28]) AS [28],
SUM([29]) AS [29],
SUM([30]) AS [30],
SUM([31]) AS [31]
FROM #mulasztas AS mulasztas
PIVOT (SUM(mulasztas.HianyzasErtek) for Nap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])) pv
GROUP BY Tanulo
) m ON m.Tanulo = tanulok.id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas GROUP BY Tanulo) AS OSSZES ON OSSZES.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE i.IgazoltE=''T'' GROUP BY Tanulo) AS IGAZOLT ON IGAZOLT.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE i.IgazoltE=''F'' GROUP BY Tanulo) AS IGAZOLATLAN ON IGAZOLATLAN.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE i.IgazoltE=''T'' GROUP BY Tanulo) AS IGAZOLTKESES ON IGAZOLTKESES.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS IGAZOLATLANKESES ON IGAZOLATLANKESES.Tanulo = tanulok.Id
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.Id
--GROUP BY f.c_nyomtatasinev, tanulok.Id, f.id
ORDER BY f.c_nyomtatasinev';
exec sp_executesql @query;
END
ELSE
BEGIN
DECLARE @colsHeader_E AS NVARCHAR(MAX);
DECLARE @colsHeader_GY AS NVARCHAR(MAX);
DECLARE @cols_E AS NVARCHAR(MAX);
DECLARE @cols_GY AS NVARCHAR(MAX);
DECLARE @colsSum_E AS NVARCHAR(MAX);
DECLARE @colsSum_GY AS NVARCHAR(MAX);
SELECT @colsHeader_E = ISNULL(@colsHeader_E + ', ', '') + QUOTENAME(Id) + ' AS ' + QUOTENAME(Nev + ' (elméleti)'),
@colsHeader_GY = ISNULL(@colsHeader_GY + ', ', '') + QUOTENAME(-Id) + ' AS ' + QUOTENAME(Nev + ' (gyakorlati)'),
@cols_E = ISNULL(@cols_E + ', ', '') + QUOTENAME(Id),
@cols_GY = ISNULL(@cols_GY + ', ', '') + QUOTENAME(-Id),
@colsSum_E = ISNULL(@colsSum_E + ', ', '') + 'SUM( [' + CAST(Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(Id),
@colsSum_GY = ISNULL(@colsSum_GY + ', ', '') + 'SUM( [' + CAST(-Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(-Id)
FROM #igazolastipus AS Igazolastipus
ORDER BY Sorrend, Nev;
SET @query =
'SELECT f.c_nyomtatasinev AS COLUMN108,
f.C_OKTATASIAZONOSITO AS COLUMN109,
IIF(m.[1_E]=0, NULL, FLOOR(m.[1_E])) AS [1 E],
IIF(m.[1_GY]=0, NULL, FLOOR(m.[1_GY])) AS [1 GY],
IIF(m.[2_E]=0, NULL, FLOOR(m.[2_E])) AS [2 E],
IIF(m.[2_GY]=0, NULL, FLOOR(m.[2_GY])) AS [2 GY],
IIF(m.[3_E]=0, NULL, FLOOR(m.[3_E])) AS [3 E],
IIF(m.[3_GY]=0, NULL, FLOOR(m.[3_GY])) AS [3 GY],
IIF(m.[4_E]=0, NULL, FLOOR(m.[4_E])) AS [4 E],
IIF(m.[4_GY]=0, NULL, FLOOR(m.[4_GY])) AS [4 GY],
IIF(m.[5_E]=0, NULL, FLOOR(m.[5_E])) AS [5 E],
IIF(m.[5_GY]=0, NULL, FLOOR(m.[5_GY])) AS [5 GY],
IIF(m.[6_E]=0, NULL, FLOOR(m.[6_E])) AS [6 E],
IIF(m.[6_GY]=0, NULL, FLOOR(m.[6_GY])) AS [6 GY],
IIF(m.[7_E]=0, NULL, FLOOR(m.[7_E])) AS [7 E],
IIF(m.[7_GY]=0, NULL, FLOOR(m.[7_GY])) AS [7 GY],
IIF(m.[8_E]=0, NULL, FLOOR(m.[8_E])) AS [8 E],
IIF(m.[8_GY]=0, NULL, FLOOR(m.[8_GY])) AS [8 GY],
IIF(m.[9_E]=0, NULL, FLOOR(m.[9_E])) AS [9 E],
IIF(m.[9_GY]=0, NULL, FLOOR(m.[9_GY])) AS [9 GY],
IIF(m.[10_E]=0, NULL, FLOOR(m.[10_E])) AS [10 E],
IIF(m.[10_GY]=0, NULL, FLOOR(m.[10_GY])) AS [10 GY],
IIF(m.[11_E]=0, NULL, FLOOR(m.[11_E])) AS [11 E],
IIF(m.[11_GY]=0, NULL, FLOOR(m.[11_GY])) AS [11 GY],
IIF(m.[12_E]=0, NULL, FLOOR(m.[12_E])) AS [12 E],
IIF(m.[12_GY]=0, NULL, FLOOR(m.[12_GY])) AS [12 GY],
IIF(m.[13_E]=0, NULL, FLOOR(m.[13_E])) AS [13 E],
IIF(m.[13_GY]=0, NULL, FLOOR(m.[13_GY])) AS [13 GY],
IIF(m.[14_E]=0, NULL, FLOOR(m.[14_E])) AS [14 E],
IIF(m.[14_GY]=0, NULL, FLOOR(m.[14_GY])) AS [14 GY],
IIF(m.[15_E]=0, NULL, FLOOR(m.[15_E])) AS [15 E],
IIF(m.[15_GY]=0, NULL, FLOOR(m.[15_GY])) AS [15 GY],
IIF(m.[16_E]=0, NULL, FLOOR(m.[16_E])) AS [16 E],
IIF(m.[16_GY]=0, NULL, FLOOR(m.[16_GY])) AS [16 GY],
IIF(m.[17_E]=0, NULL, FLOOR(m.[17_E])) AS [17 E],
IIF(m.[17_GY]=0, NULL, FLOOR(m.[17_GY])) AS [17 GY],
IIF(m.[18_E]=0, NULL, FLOOR(m.[18_E])) AS [18 E],
IIF(m.[18_GY]=0, NULL, FLOOR(m.[18_GY])) AS [18 GY],
IIF(m.[19_E]=0, NULL, FLOOR(m.[19_E])) AS [19 E],
IIF(m.[19_GY]=0, NULL, FLOOR(m.[19_GY])) AS [19 GY],
IIF(m.[20_E]=0, NULL, FLOOR(m.[20_E])) AS [20 E],
IIF(m.[20_GY]=0, NULL, FLOOR(m.[20_GY])) AS [20 GY],
IIF(m.[21_E]=0, NULL, FLOOR(m.[21_E])) AS [21 E],
IIF(m.[21_GY]=0, NULL, FLOOR(m.[21_GY])) AS [21 GY],
IIF(m.[22_E]=0, NULL, FLOOR(m.[22_E])) AS [22 E],
IIF(m.[22_GY]=0, NULL, FLOOR(m.[22_GY])) AS [22 GY],
IIF(m.[23_E]=0, NULL, FLOOR(m.[23_E])) AS [23 E],
IIF(m.[23_GY]=0, NULL, FLOOR(m.[23_GY])) AS [23 GY],
IIF(m.[24_E]=0, NULL, FLOOR(m.[24_E])) AS [24 E],
IIF(m.[24_GY]=0, NULL, FLOOR(m.[24_GY])) AS [24 GY],
IIF(m.[25_E]=0, NULL, FLOOR(m.[25_E])) AS [25 E],
IIF(m.[25_GY]=0, NULL, FLOOR(m.[25_GY])) AS [25 GY],
IIF(m.[26_E]=0, NULL, FLOOR(m.[26_E])) AS [26 E],
IIF(m.[26_GY]=0, NULL, FLOOR(m.[26_GY])) AS [26 GY],
IIF(m.[27_E]=0, NULL, FLOOR(m.[27_E])) AS [27 E],
IIF(m.[27_GY]=0, NULL, FLOOR(m.[27_GY])) AS [27 GY],
IIF(m.[28_E]=0, NULL, FLOOR(m.[28_E])) AS [28 E],
IIF(m.[28_GY]=0, NULL, FLOOR(m.[28_GY])) AS [28 GY],
IIF(m.[29_E]=0, NULL, FLOOR(m.[29_E])) AS [29 E],
IIF(m.[29_GY]=0, NULL, FLOOR(m.[29_GY])) AS [29 GY],
IIF(m.[30_E]=0, NULL, FLOOR(m.[30_E])) AS [30 E],
IIF(m.[30_GY]=0, NULL, FLOOR(m.[30_GY])) AS [30 GY],
IIF(m.[31_E]=0, NULL, FLOOR(m.[31_E])) AS [31 E],
FLOOR(osszes_e.MULASZTASOKSZAMA) AS COLUMN2672_E,
FLOOR(igazolt_e.IGAZOLTSZAMA) AS COLUMN2568_E,
' + @colsHeader_E + ',
FLOOR(igazolatlan_e.IGAZOLATLANSZAMA) AS COLUMN1911_E,
FLOOR(osszes_gy.MULASZTASOKSZAMA) AS COLUMN2672_GY,
FLOOR(igazolt_gy.IGAZOLTSZAMA) AS COLUMN2568_GY,
' + @colsHeader_GY + ',
FLOOR(igazolatlan_gy.IGAZOLATLANSZAMA) AS COLUMN1911_GY,
TELJESNAPOSMULASZTAS.HianyzasErtek AS COLUMNTELJESNAPOSMULASZTASOK,
igazoltkeses_e.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN_E,
igazoltkeses_gy.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN_GY,
igazolatlankeses_e.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN_E,
igazolatlankeses_gy.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN_GY
FROM #tanulo AS tanulok
LEFT JOIN (
SELECT Tanulo, ' + @colsSum_E + '
FROM (
SELECT *
FROM #igazolas AS igazolasok
WHERE Gyakorlati = ''F'' OR Gyakorlati IS NULL
) AS igazolasok
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols_E + ')) AS PIVOTTABLE_E
GROUP BY Tanulo
) AS IGAZOLASTIPUSOKSZERINT_E ON IGAZOLASTIPUSOKSZERINT_E.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo, ' + @colsSum_Gy + '
FROM (
SELECT Tanulo, IgazoltE, -IgazolasTipus AS IgazolasTipus, Gyakorlati, HianyzasErtek
FROM #igazolas AS igazolasok
WHERE Gyakorlati = ''T''
) AS igazolasok
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols_GY + ')) AS PIVOTTABLE_GY
GROUP BY Tanulo
) AS IGAZOLASTIPUSOKSZERINT_GY ON IGAZOLASTIPUSOKSZERINT_GY.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo, HianyzasErtek
FROM #teljesnaposmul AS teljesnaposmul
) AS TELJESNAPOSMULASZTAS ON TELJESNAPOSMULASZTAS.Tanulo = tanulok.Id
LEFT JOIN (
SELECT
Tanulo,
SUM([1_E]) AS [1_E],
SUM([2_E]) AS [2_E],
SUM([3_E]) AS [3_E],
SUM([4_E]) AS [4_E],
SUM([5_E]) AS [5_E],
SUM([6_E]) AS [6_E],
SUM([7_E]) AS [7_E],
SUM([8_E]) AS [8_E],
SUM([9_E]) AS [9_E],
SUM([10_E]) AS [10_E],
SUM([11_E]) AS [11_E],
SUM([12_E]) AS [12_E],
SUM([13_E]) AS [13_E],
SUM([14_E]) AS [14_E],
SUM([15_E]) AS [15_E],
SUM([16_E]) AS [16_E],
SUM([17_E]) AS [17_E],
SUM([18_E]) AS [18_E],
SUM([19_E]) AS [19_E],
SUM([20_E]) AS [20_E],
SUM([21_E]) AS [21_E],
SUM([22_E]) AS [22_E],
SUM([23_E]) AS [23_E],
SUM([24_E]) AS [24_E],
SUM([25_E]) AS [25_E],
SUM([26_E]) AS [26_E],
SUM([27_E]) AS [27_E],
SUM([28_E]) AS [28_E],
SUM([29_E]) AS [29_E],
SUM([30_E]) AS [30_E],
SUM([31_E]) AS [31_E],
SUM([1_GY]) AS [1_GY],
SUM([2_GY]) AS [2_GY],
SUM([3_GY]) AS [3_GY],
SUM([4_GY]) AS [4_GY],
SUM([5_GY]) AS [5_GY],
SUM([6_GY]) AS [6_GY],
SUM([7_GY]) AS [7_GY],
SUM([8_GY]) AS [8_GY],
SUM([9_GY]) AS [9_GY],
SUM([10_GY]) AS [10_GY],
SUM([11_GY]) AS [11_GY],
SUM([12_GY]) AS [12_GY],
SUM([13_GY]) AS [13_GY],
SUM([14_GY]) AS [14_GY],
SUM([15_GY]) AS [15_GY],
SUM([16_GY]) AS [16_GY],
SUM([17_GY]) AS [17_GY],
SUM([18_GY]) AS [18_GY],
SUM([19_GY]) AS [19_GY],
SUM([20_GY]) AS [20_GY],
SUM([21_GY]) AS [21_GY],
SUM([22_GY]) AS [22_GY],
SUM([23_GY]) AS [23_GY],
SUM([24_GY]) AS [24_GY], SUM([25_GY]) AS [25_GY], SUM([26_GY]) AS [26_GY], SUM([27_GY]) AS [27_GY], SUM([28_GY]) AS [28_GY], SUM([29_GY]) AS [29_GY],SUM([30_GY]) AS [30_GY], SUM([31_GY]) AS [31_GY]
FROM #mulasztas AS m
PIVOT (SUM(HianyzasErtek) for Nap in
(
[1_E],[2_E],[3_E],[4_E],[5_E],[6_E],[7_E],[8_E],[9_E],[10_E],[11_E],[12_E],[13_E],[14_E],[15_E],[16_E],[17_E],[18_E],[19_E],[20_E],[21_E],[22_E],[23_E],[24_E],[25_E],[26_E],[27_E],[28_E],[29_E],[30_E],[31_E],
[1_GY],[2_GY],[3_GY],[4_GY],[5_GY],[6_GY],[7_GY],[8_GY],[9_GY],[10_GY],[11_GY],[12_GY],[13_GY],[14_GY],[15_GY],[16_GY],[17_GY],[18_GY],[19_GY],[20_GY],[21_GY],[22_GY],[23_GY],[24_GY],[25_GY],[26_GY],[27_GY],[28_GY],[29_GY],[30_GY],[31_GY]
)
) pv
GROUP BY Tanulo
) m ON m.Tanulo = tanulok.id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) GROUP BY Tanulo) AS Osszes_E ON Osszes_E.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''T'' GROUP BY Tanulo) AS Igazolt_E ON Igazolt_E.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''F'' GROUP BY Tanulo) AS Igazolatlan_E ON Igazolatlan_E.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas WHERE Gyakorlati = ''T'' GROUP BY Tanulo) AS Osszes_Gy ON Osszes_Gy.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''T'' GROUP BY Tanulo) AS Igazolt_Gy ON Igazolt_Gy.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''F'' GROUP BY Tanulo) AS Igazolatlan_Gy ON Igazolatlan_Gy.Tanulo = tanulok.Id'
SET @query +=
' LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''T'' GROUP BY Tanulo) AS igazoltkeses_e ON igazoltkeses_e.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''T'' GROUP BY Tanulo) AS igazoltkeses_gy ON igazoltkeses_gy.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS igazolatlankeses_e ON igazolatlankeses_e.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE Gyakorlati = ''T'' AND (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS igazolatlankeses_gy ON igazolatlankeses_gy.Tanulo = tanulok.Id
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.Id
ORDER BY f.c_nyomtatasinev';
exec sp_executesql @query;
END
DROP TABLE #mulasztas
DROP TABLE #tanulo
DROP TABLE #igazolas
DROP TABLE #igazolastipus
DROP TABLE #teljesnaposmul
END
GO

View file

@ -0,0 +1,67 @@
DROP PROCEDURE IF EXISTS sp_GetOsztalyokEvesOraszama
GO
CREATE PROCEDURE sp_GetOsztalyokEvesOraszama
@tanevID int,
@tanitasiHetekSzamaVegzos int = 32,
@tanitasiHetekSzamaNemVegzos int = 36,
@isAltantargyBeszamitasa bit,
@oktNevelesiKategoriaId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @osztalyok TABLE (
OsztalyId INT
,OsztalyNev NVARCHAR(255)
)
DECLARE kurzor CURSOR FOR
SELECT
o.ID AS OsztalyId
,ocs.C_NEV AS OsztalyNev
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = @tanevID
WHERE
ocs.C_TANEVID = @tanevId
AND (ocs.C_FELADATKATEGORIAID = @oktNevelesiKategoriaId OR @oktNevelesiKategoriaId IS NULL)
AND ocs.TOROLT = 'F'
DECLARE @OsztalyId int, @OsztalyNev nvarchar(255)
OPEN kurzor
FETCH NEXT FROM kurzor INTO @OsztalyId, @OsztalyNev
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
tanulo.C_NYOMTATASINEV AS TanuloNev
,tanulo.C_OKTATASIAZONOSITO AS OktAzon
,tantargy.C_NEV AS TantargyNev
,oraszamok.Oraszam AS EvesOraszam
,@OsztalyNev AS OsztalyNev
,@OsztalyId AS OsztalyId
,tantargy.C_SORSZAM as RENDEZ0
,CASE WHEN tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, tantargy.C_NEV) as RENDEZ2
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID) as RENDEZ3
,tantargy.C_FOTARGYID as RENDEZ4
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV) as RENDEZ5
FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevID, @OsztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa) oraszamok
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = oraszamok.TanuloId AND tanulo.C_TANEVID = @tanevID AND tanulo.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = oraszamok.TantargyID AND tantargy.C_TANEVID = @tanevID AND tantargy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tantargy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevID
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tantargy.C_FOTARGYID = FotargyTable.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
ORDER BY TanuloNev, RENDEZ0, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, TantargyNev;
FETCH NEXT FROM kurzor INTO @OsztalyId, @OsztalyNev
END
CLOSE kurzor
DEALLOCATE kurzor
END
GO

View file

@ -0,0 +1,38 @@
DROP PROCEDURE IF EXISTS sp_GetOsztalyokHaviHianyzasiOsszesitoje
GO
CREATE PROCEDURE sp_GetOsztalyokHaviHianyzasiOsszesitoje
@tanevID int
,@intezmenyId int
,@honapAdatszotarTypeId int = 55
AS
BEGIN
SET NOCOUNT ON;
declare @honapok table(honap int, honapnev nvarchar(max));
insert into @honapok
select distinct d.c_value, d.c_name as Honap from t_dictionaryitembase d where d.C_DICTIONARYTYPEID = @honapAdatszotarTypeId order by d.c_value
select honapnev from @honapok
DECLARE kur CURSOR FOR
select distinct d.c_value as Honap from t_dictionaryitembase d where d.C_DICTIONARYTYPEID = @honapAdatszotarTypeId
DECLARE @Honap int
OPEN kur
FETCH NEXT FROM kur INTO @Honap
WHILE @@FETCH_STATUS = 0 BEGIN
create table #tabla(COLUMN379 nvarchar(max), [1] int,[2] int,[3] int,[4] int,[5] int,[6] int,[7] int,[8] int,[9] int,[10] int,[11] int,[12] int,[13] int,[14] int,[15] int,[16] int,[17] int,[18] int,[19] int,[20] int,[21] int,[22] int,[23] int,[24] int,[25] int,[26] int,[27] int,[28] int,[29] int,[30] int,[31] int, COLUMN2672 int, COLUMN1910 int, COLUMN5197 int, COLUMN1786 int, COLUMN1787 int, COLUMN1788 int, COLUMN1789 int, COLUMN1911 int)
insert into #tabla
EXEC uspGetOsztalyokHaviHianyzasiOsszesitoje_honapra @tanevID, @intezmenyId, @honap
SELECT * from #tabla
drop table #tabla
FETCH NEXT FROM kur INTO @honap
END
CLOSE kur
DEALLOCATE kur
END
GO

View file

@ -0,0 +1,38 @@
-- =============================================
-- Description: <Előszedjük a pedagógusok IKT kompetenciáit>
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetPedagogusIKTAdatszolgaltatasForGrid
GO
CREATE PROCEDURE sp_GetPedagogusIKTAdatszolgaltatasForGrid
@pIntezmenyId INT,
@pTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
Alkalmazott.ID AS ID,
Felhasznalo.C_NYOMTATASINEV AS TanarNev,
Felhasznalo.C_ANYJANEVE AS AnyjaNeve,
Felhasznalo.C_SZULETESIDATUM AS SzuletesiIdo,
PedagogusIKTAdatszolgatlatas.C_IKTKOMPETENCIASZINTJE AS IKTKompetenciaSzint,
PedagogusIKTAdatszolgatlatas.C_IKTESZKOZHASZNALATMODJA AS IKTEszkozhasznalatModja,
PedagogusIKTAdatszolgatlatas.C_ELSODLEGESIKTESZKOZE AS ElsodlegesIKTEszkoz
FROM
T_ALKALMAZOTT_OSSZES AS Alkalmazott
LEFT JOIN
T_FELHASZNALO_OSSZES AS Felhasznalo ON
Felhasznalo.ID = Alkalmazott.ID AND Felhasznalo.TOROLT = 'F'
AND Felhasznalo.C_INTEZMENYID = Alkalmazott.C_ALINTEZMENYID AND Felhasznalo.C_TANEVID = Alkalmazott.C_ALTANEVID
LEFT JOIN
T_PEDAGOGUSIKTADATSZOLGALTATAS_OSSZES AS PedagogusIKTAdatszolgatlatas ON
PedagogusIKTAdatszolgatlatas.C_ALKALMAZOTTID = Alkalmazott.ID AND PedagogusIKTAdatszolgatlatas.TOROLT = 'F'
AND PedagogusIKTAdatszolgatlatas.C_INTEZMENYID = Alkalmazott.C_ALINTEZMENYID AND PedagogusIKTAdatszolgatlatas.C_TANEVID = Alkalmazott.C_ALTANEVID
WHERE
Alkalmazott.C_ALINTEZMENYID = @pIntezmenyId AND
Alkalmazott.C_ALTANEVID = @pTanevId AND
Alkalmazott.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,41 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetShowNatKerdoivPopup]
GO
-- =============================================
-- Description: <Előszedjük a NAT kérdőív adatokat az alkalmazott alapján>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetShowNatKerdoivPopup]
@pIntezmenyId INT
,@pTanevId INT
,@pAlkalmazottId INT
,@pBesorolasiFokozatTipusNa INT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (
SELECT 1
FROM
T_ALKALMAZOTT Alkalmazott
INNER JOIN
T_NATKERDOIV_OSSZES NatKerdoiv ON
NatKerdoiv.C_ALKALMAZOTTID = Alkalmazott.ID
AND NatKerdoiv.C_INTEZMENYID = @pIntezmenyId
AND NatKerdoiv.C_TANEVID = @pTanevId
AND NatKerdoiv.TOROLT = 'F'
AND NatKerdoiv.C_ISLATTA = 'T'
WHERE
Alkalmazott.ID = @pAlkalmazottId
AND Alkalmazott.C_ALINTEZMENYID = @pIntezmenyId
AND Alkalmazott.C_ALTANEVID = @pTanevId
AND Alkalmazott.TOROLT = 'F'
)
SELECT 0
ELSE
SELECT 1
END
GO

View file

@ -0,0 +1,102 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetStatPedagogusTanuloinakTantargyiMulasztasaiMegtartott]
GO
CREATE PROCEDURE [dbo].[sp_GetStatPedagogusTanuloinakTantargyiMulasztasaiMegtartott]
@tanarId INT,
@tanevId INT,
@iskolaErekeduTavolletId INT
AS
BEGIN
SET NOCOUNT ON;
--Tanár
DECLARE @osztalyCsoportTantargy TABLE (osztalyCsoport INT, Tantargy INT)
INSERT INTO @osztalyCsoportTantargy
SELECT DISTINCT
C_OSZTALYCSOPORTID
,C_TANTARGYID
FROM T_ORARENDIORA_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
WHERE
T_ORARENDIORA_OSSZES.C_TANARID=@tanarId
AND T_ORARENDIORA_OSSZES.TOROLT = 'F'
--Tanulók
CREATE TABLE #students (TanuloId INT)
INSERT INTO #students
SELECT DISTINCT
C_TANULOID
FROM T_TANULOCSOPORT_OSSZES
WHERE C_OSZTALYCSOPORTID IN (SELECT osztalyCsoport FROM @osztalyCsoportTantargy)
AND TOROLT = 'F'
--Taulók mulasztásai
CREATE TABLE #mulasztas (Ossz INT, Tanulo INT, Tantargy INT, OsztalyCsoport INT)
INSERT INTO #mulasztas
SELECT
COUNT(tm.ID)
, tm.C_ORATANULOIID
, t.ID
, tao.C_OSZTALYCSOPORTID
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao on tao.ID = tm.C_TANITASIORAKID
INNER JOIN T_TANTARGY_OSSZES t on t.ID = tao.C_TANTARGYID
INNER JOIN #students s on s.TanuloID = tm.C_ORATANULOIID
INNER JOIN @osztalyCsoportTantargy ocst on ocst.osztalyCsoport=tao.C_OSZTALYCSOPORTID and ocst.Tantargy=tao.C_TANTARGYID
WHERE
tm.Torolt = 'F'
AND tm.C_TIPUS = 1500
AND ((tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
AND tm.C_IGAZOLASTIPUSA <> @iskolaErekeduTavolletId
GROUP BY tm.C_ORATANULOIID, t.ID, tao.C_OSZTALYCSOPORTID
--Naplózott óra tanulónként
CREATE TABLE #naplozott (Tanulo INT, Tantargy INT, OsztalyCsoport INT, Ossz INT)
INSERT INTO #naplozott
SELECT
m.Tanulo
, m.Tantargy
, m.OsztalyCsoport
, COUNT(DISTINCT tao.ID)
FROM #mulasztas m
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.C_OSZTALYCSOPORTID=m.OsztalyCsoport AND tao.C_TANTARGYID=m.Tantargy AND tao.C_MEGTARTOTT='T'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID=m.Tanulo AND tcs.C_OSZTALYCSOPORTID=m.OsztalyCsoport
AND ((tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
INNER JOIN @osztalyCsoportTantargy ocst on ocst.osztalyCsoport=tao.C_OSZTALYCSOPORTID and ocst.Tantargy=tao.C_TANTARGYID
WHERE
tao.TOROLT='F'
AND tao.C_DATUM >= tcs.C_BELEPESDATUM
GROUP BY m.Tanulo, m.Tantargy, m.OsztalyCsoport
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX),
@colsIn AS NVARCHAR(MAX)
SELECT @cols= ISNULL(@cols + ',','') + QUOTENAME(Tantargy) FROM (SELECT DISTINCT m.Tantargy Tantargy FROM #mulasztas m) Tantargy
SELECT @colsIn= ISNULL(@colsIn + ',','') +'CONVERT(NVARCHAR(MAX),'+QUOTENAME(Tantargy) + ')+''%'' as ' + QUOTENAME(nev) FROM (SELECT DISTINCT m.Tantargy AS Tantargy, t.c_nev nev FROM #mulasztas m
INNER JOIN T_TANTARGY_OSSZES t ON t.id=m.Tantargy) TantargyCols
set @query='
SELECT
fel.C_NYOMTATASINEV Tanulo
, '+@colsIn+'
FROM (SELECT
mulasztas.Tanulo
, ROUND(CONVERT(FLOAT, mulasztas.Ossz)/CONVERT(FLOAT, naplozott.Ossz)*100, 0) Osszes
, mulasztas.Tantargy
FROM #students s
INNER JOIN #mulasztas mulasztas on mulasztas.Tanulo=s.TanuloId
INNER JOIN #naplozott naplozott on naplozott.Tantargy=mulasztas.Tantargy and naplozott.OsztalyCsoport=mulasztas.OsztalyCsoport and naplozott.Tanulo=mulasztas.Tanulo
)a
PIVOT (MAX(Osszes) FOR Tantargy IN ('+@cols+'))pv
INNER JOIN T_FELHASZNALO_OSSZES fel on fel.ID=Tanulo
ORDER BY fel.C_NYOMTATASINEV
'
EXEC sp_executesql @query
DROP TABLE #students
DROP TABLE #mulasztas
DROP TABLE #naplozott
END
GO

View file

@ -0,0 +1,146 @@
-- ================================
-- CREATED: 2017-02-17
-- CREATOR: Telek Ákos
-- ================================
--
-- A négy paraméter az alábbi:
-- • Tanár ID-ja
-- • Kellenek-e osztályok (ez szinte mindig igaz érték, azt állítja, hogy a lekérdezés a kapcsolódó osztályokat is include-olja)
-- • Kellenek-e csoportok (ez azt állítja, hogy a lekérdezés a kapcsolódó csoportokat is include-olja)
-- • Kellenek-e azok, amelyekben "csak" tanít, azaz nem ofő, vagy ilyesmi, hanem csak tanítja (ez pl osztályfőnöki funkcióknál, mulasztások kezelése hasonló esetekben hamis, azaz 0, de például feljegyzéseknél igaz).
-- Ahol át kell vezetni (zárójelben a három változó paraméter státusza):
-- • Tanári feladatok / Feljegyzések (1,1,1), Faliújság (1,1,1) illetve Tanított tanulók (1,1,1)
-- • Osztályfőnöki feladatok / Igazolások (1,1,0), Mulasztások kezelése (1,1,0), Naplóellenőrzés (1,0,0), Osztály tanulói (1,0,0)
-- • Dokumentumoknál, ha tanár nyitja meg, akkor szintén
--
-- Használata:
--
-- DECLARE @kapcsolodoOsztalyok TABLE (ID int)
-- INSERT INTO @kapcsolodoOsztalyok (ID)
-- EXEC sp_GetTanarKapcsolodoOsztalyai (150621, 1, 1, 1)
--
-- SELECT *
-- FROM T_TABLE t
-- INNER JOIN @kapcsolodoOsztalyok k ON t.C_OSZTALYCSOPORTID = k.ID
--
/*TODO:Tobb Osztaly*//*OM-1668*/
DROP PROCEDURE IF EXISTS dbo.sp_GetTanarKapcsolodoOsztalyai
GO
CREATE PROCEDURE dbo.sp_GetTanarKapcsolodoOsztalyai
@tanarId int
,@osztalyKell bit = 1
,@csoportKell bit = 1
,@tartottOraKell bit = 1
,@feladatKategoriaId int = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
IF 1758 IN (SELECT C_SZEREPKORTIPUS FROM T_FELHASZNALO_SZEREPKOR INNER JOIN T_SZEREPKOR ON T_SZEREPKOR.ID = T_FELHASZNALO_SZEREPKOR.C_SZEREPKORID WHERE T_FELHASZNALO_SZEREPKOR.C_FELHASZNALOID = @tanarId) BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT o.ID
FROM T_OSZTALY o
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = o.ID AND (@feladatKategoriaId IS NULL OR OsztalyCsoport.C_FELADATKATEGORIAID = @feladatKategoriaId)
WHERE o.C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND o.TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT cs.ID
FROM T_CSOPORT cs
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = cs.ID AND (@feladatKategoriaId IS NULL OR OsztalyCsoport.C_FELADATKATEGORIAID = @feladatKategoriaId)
WHERE cs.C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND cs.TOROLT = ''F'''
END
END
ELSE BEGIN
IF (SELECT C_MUNKAKORTIPUSA FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @tanarId) IN (1762, 1763, 3027, 3028) BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT o.ID
FROM T_OSZTALY o
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = o.ID AND (@feladatKategoriaId IS NULL OR OsztalyCsoport.C_FELADATKATEGORIAID = @feladatKategoriaId)
WHERE o.C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND o.TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT cs.ID
FROM T_CSOPORT cs
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = cs.ID AND (@feladatKategoriaId IS NULL OR OsztalyCsoport.C_FELADATKATEGORIAID = @feladatKategoriaId)
WHERE cs.C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND cs.TOROLT = ''F'''
END
END
ELSE BEGIN
IF (SELECT C_VEZETOIORASZAMOK FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID = @tanarId) IN (6572, 6573, 6574) -- 6572 - Intézményvezető, 6573 - Tagintézmény-vezető, 6574 - Intézményegység-vezető
BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT o.ID
FROM T_OSZTALY o
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = o.ID AND (@feladatKategoriaId IS NULL OR OsztalyCsoport.C_FELADATKATEGORIAID = @feladatKategoriaId)
WHERE o.C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND o.TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT cs.ID
FROM T_CSOPORT cs
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = cs.ID AND (@feladatKategoriaId IS NULL OR OsztalyCsoport.C_FELADATKATEGORIAID = @feladatKategoriaId)
WHERE cs.C_ALTANEVID = (SELECT ID FROM T_TANEV WHERE C_AKTIV = ''T'')
AND cs.TOROLT = ''F'''
END
END
ELSE BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = N'
SELECT ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
WHERE (o.C_OSZTALYFONOKID = @tanarId OR o.C_OFOHELYETTESID = @tanarId)
AND (@feladatKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @feladatKategoriaId)
AND ocs.TOROLT = ''F'''
END
IF @csoportKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + N'UNION' + CHAR(13) + CHAR(10), N'') + N'
SELECT ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_CSOPORT cs ON cs.ID = ocs.ID
WHERE cs.C_CSOPORTVEZETOID = @tanarId
AND (@feladatKategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID = @feladatKategoriaId)
AND ocs.TOROLT = ''F'''
END
IF @tartottOraKell = 1 BEGIN
IF @osztalyKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
SELECT f.C_OSZTALYCSOPORTID
FROM T_FOGLALKOZAS f
INNER JOIN T_OSZTALY o ON o.id = f.C_OSZTALYCSOPORTID
WHERE f.C_TANARID = @tanarId
AND f.TOROLT = ''F''
AND o.TOROLT = ''F'''
END
IF @osztalyKell = 1 BEGIN
SET @sql = ISNULL(@sql + CHAR(13) + CHAR(10) + 'UNION' + CHAR(13) + CHAR(10), '') + '
SELECT f.C_OSZTALYCSOPORTID
FROM T_FOGLALKOZAS f
INNER JOIN T_CSOPORT cs ON cs.id = f.C_OSZTALYCSOPORTID
WHERE f.C_TANARID = @tanarId
AND f.TOROLT = ''F''
AND cs.TOROLT = ''F'''
END
END
END
END
END
EXEC sp_executesql @sql, N'@tanarId int, @feladatKategoriaId int', @tanarId, @feladatKategoriaId
END
GO

View file

@ -0,0 +1,73 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanarOrarendLefedettseg]
GO
CREATE PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AktivtanevId INT = (SELECT Id FROM T_TANEV_OSSZES tanev WHERE C_AKTIV='T' AND C_INTEZMENYID = @intezmenyId AND TOROLT = 'F')
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@ElsoNap DATE = (select C_KEZDONAP from T_TANEV_OSSZES WHERE ID = @tanevid)
,@IdoszakKezdete DATE
,@IdoszakVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @IdoszakKezdete = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
SET @IdoszakVege = (SELECT TOP 1 C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 3 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @IdoszakKezdete =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @IdoszakVege = DATEADD(DAY, 13, @IdoszakKezdete)
END
END
ELSE
BEGIN
SET @IdoszakVege =(SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @IdoszakKezdete = DATEADD(DAY, -13, @IdoszakVege)
END
--Órarendi lefedettség
CREATE TABLE #csoportok (CsoportId INT, Pedagogus NVARCHAR(MAX), CsoportTipus NVARCHAR(MAX), Oraszam float, Hetirend NVARCHAR(MAX))
INSERT INTO #csoportok
SELECT DISTINCT
cs.ID
,f.C_NYOMTATASINEV
,d.C_NAME
,fog.C_ORASZAM
,Hetirend.C_NAME
FROM T_FOGLALKOZAS_OSSZES fog
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = fog.C_OSZTALYCSOPORTID AND cs.TOROLT='F' AND cs.C_ALTANEVID=@tanevId
LEFT JOIN T_OSZTALY_OSSZES o ON o.Id = fog.C_OSZTALYCSOPORTID AND o.TOROLT='F' AND o.C_ALTANEVID=@tanevId
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_FOGLALKOZASID = fog.ID
AND C_ORAERVENYESSEGKEZDETE <= @IdoszakVege
AND C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND oo.C_TANEVID=@tanevid
AND oo.torolt='F'
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID=fog.C_TANARID AND f.C_INTEZMENYID=@intezmenyId AND f.C_TANEVID=@tanevid AND f.TOROLT='F'
LEFT JOIN (SELECT DISTINCT d.ID, d.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES d)d ON d.ID=cs.C_TIPUSA
INNER JOIN (SELECT DISTINCT d.ID, d.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES d) Hetirend ON Hetirend.ID=oo.C_HETIREND
SELECT Pedagogus COLUMN456, ISNULL(CsoportTipus, 'Osztály') COLUMN262, SUM(Oraszam) COLUMN3670 FROM #csoportok cs GROUP BY Pedagogus, CsoportTipus ORDER BY Pedagogus, ISNULL(CsoportTipus, 'Osztály')
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SELECT DISTINCT @cols= ISNULL(@cols + ',','') + QUOTENAME(Hetirend) FROM #csoportok
SET @query='SELECT DISTINCT Pedagogus COLUMN456, ISNULL(CsoportTipus, ''Osztály'') COLUMN262, '+@cols+' FROM #csoportok cs PIVOT (SUM(Oraszam) FOR Hetirend IN ('+@cols+')) pv ORDER BY Pedagogus, ISNULL(CsoportTipus, ''Osztály'')'
EXEC sp_executesql @query;
DROP TABLE #csoportok
END
GO

View file

@ -0,0 +1,102 @@
-- =============================================
-- Author: Zsiga Attila
-- Create date: 2016.04.22.
-- Description: Tanévrendi események szerinti csengetési rendek
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanevRendjeCsengetesiRend]
GO
CREATE PROCEDURE [dbo].[sp_GetTanevRendjeCsengetesiRend]
@pKezdoDatum DATETIME,
@pVegDatum DATETIME,
@pOsztalyCsoportID INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
Datum,
CsengetesiRendID,
LastChangedMax
INTO
#tmpMindenOsztalyraVonatkozo
FROM
(
SELECT
TANEVRENDJE.C_DATUM Datum,
MAX(LASTCHANGED) LastChangedMax
FROM
(SELECT * FROM T_TANEVRENDJE WHERE T_TANEVRENDJE.TOROLT = 'F' AND T_TANEVRENDJE.C_DATUM BETWEEN @pKezdoDatum AND @pVegDatum AND T_TANEVRENDJE.C_OSSZESCSOPORTRAVONATKOZIK = 'T') TANEVRENDJE
GROUP BY
TANEVRENDJE.C_DATUM
) MindenOsztalyra
LEFT JOIN (SELECT C_CSENGETESIRENDID CsengetesiRendID, C_DATUM, LASTCHANGED FROM T_TANEVRENDJE WHERE T_TANEVRENDJE.TOROLT = 'F' AND T_TANEVRENDJE.C_DATUM BETWEEN @pKezdoDatum AND @pVegDatum AND T_TANEVRENDJE.C_OSSZESCSOPORTRAVONATKOZIK = 'T') TANEVRENDJE ON TANEVRENDJE.C_DATUM = MindenOsztalyra.Datum AND TANEVRENDJE.LASTCHANGED = MindenOsztalyra.LastChangedMax
CREATE TABLE #tmpAdottOsztalyraVonatkozo
(
Datum DATETIME,
CsengetesiRendID INT,
LastChangedMax DATETIME
)
IF @pOsztalyCsoportID IS NULL
BEGIN
INSERT INTO #tmpAdottOsztalyraVonatkozo
SELECT
NULL Datum,
NULL CsengetesiRendID,
NULL LastChangedMax
FROM
(SELECT NULL Datum, NULL CsengetesiRendID FROM T_TANEVRENDJE WHERE 1=2) AdottOsztalyra
END
ELSE
BEGIN
INSERT INTO #tmpAdottOsztalyraVonatkozo
SELECT
Datum,
CsengetesiRendID,
LastChangedMax
FROM
(
SELECT
TANEVRENDJE.C_DATUM Datum,
MAX(LASTCHANGED) LastChangedMax
FROM
(SELECT * FROM T_TANEVRENDJE WHERE T_TANEVRENDJE.TOROLT = 'F' AND T_TANEVRENDJE.C_DATUM BETWEEN @pKezdoDatum AND @pVegDatum AND T_TANEVRENDJE.C_OSSZESCSOPORTRAVONATKOZIK = 'F') TANEVRENDJE
INNER JOIN
(SELECT * FROM T_OSZTALYCSOPORT_TANEVRENDJE WHERE C_OSZTALYCSOPORTID = @pOsztalyCsoportID) OSZTALYCSOPORT_TANEVRENDJE ON OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = TANEVRENDJE.ID
GROUP BY
TANEVRENDJE.C_DATUM
) AdottOsztalyra
LEFT JOIN (SELECT C_CSENGETESIRENDID CsengetesiRendID, C_DATUM, LASTCHANGED FROM T_TANEVRENDJE WHERE T_TANEVRENDJE.TOROLT = 'F' AND T_TANEVRENDJE.C_DATUM BETWEEN @pKezdoDatum AND @pVegDatum AND T_TANEVRENDJE.C_OSSZESCSOPORTRAVONATKOZIK = 'F') TANEVRENDJE ON TANEVRENDJE.C_DATUM = AdottOsztalyra.Datum AND TANEVRENDJE.LASTCHANGED = AdottOsztalyra.LastChangedMax
END
SELECT
CASE
WHEN
AdottOsztalyraVonatkozo.CsengetesiRendID IS NOT NULL
THEN
AdottOsztalyraVonatkozo.Datum
ELSE
MindenOsztalyraVonatkozo.Datum
END Datum,
CASE
WHEN
AdottOsztalyraVonatkozo.CsengetesiRendID IS NOT NULL
THEN
AdottOsztalyraVonatkozo.CsengetesiRendID
ELSE
MindenOsztalyraVonatkozo.CsengetesiRendID
END CsengetesiRendID
FROM
#tmpMindenOsztalyraVonatkozo AS MindenOsztalyraVonatkozo
FULL OUTER JOIN
#tmpAdottOsztalyraVonatkozo
AS AdottOsztalyraVonatkozo ON
AdottOsztalyraVonatkozo.Datum = MindenOsztalyraVonatkozo.Datum
DROP TABLE #tmpMindenOsztalyraVonatkozo
DROP TABLE #tmpAdottOsztalyraVonatkozo
END
GO

View file

@ -0,0 +1,61 @@
-- =============================================
-- Author: Kelemen Attila
-- Create date: 2016.04.05.
-- Description: Tanév rendjében tárolt negyedévekhez tartozó dátumok
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanevrendNegyedevek]
GO
CREATE PROCEDURE [dbo].[sp_GetTanevrendNegyedevek]
@elsonap int,
@I_negyedev_vege int,
@felevvege int,
@III_negyedev_vege int,
@utolsonap int
AS
BEGIN
SET NOCOUNT ON;
SELECT
'Elso_Nap' Tipus ,
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES
INNER JOIN T_TANEV_OSSZES ON T_TANEVRENDJE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F' AND T_TANEVRENDJE_OSSZES.TOROLT='F' AND C_NAPTIPUSA = @elsonap
UNION ALL
SELECT
'I_Negyedev_Vege' Tipus ,
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES
INNER JOIN T_TANEV_OSSZES ON T_TANEVRENDJE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F' AND T_TANEVRENDJE_OSSZES.TOROLT='F' AND C_NAPTIPUSA = @I_negyedev_vege
UNION ALL
SELECT
'Felev_Vege' Tipus ,
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES
INNER JOIN T_TANEV_OSSZES ON T_TANEVRENDJE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F' AND T_TANEVRENDJE_OSSZES.TOROLT='F' AND C_NAPTIPUSA = @felevvege
UNION ALL
SELECT
'III_Negyedev_Vege' Tipus ,
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES
INNER JOIN T_TANEV_OSSZES ON T_TANEVRENDJE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F' AND T_TANEVRENDJE_OSSZES.TOROLT='F' AND C_NAPTIPUSA = @III_negyedev_vege
UNION ALL
SELECT
'Utolso_Nap' Tipus ,
C_DATUM Datum
FROM T_TANEVRENDJE_OSSZES
INNER JOIN T_TANEV_OSSZES ON T_TANEVRENDJE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F' AND T_TANEVRENDJE_OSSZES.TOROLT='F' AND C_NAPTIPUSA = @utolsonap
END
GO

View file

@ -0,0 +1,116 @@
-- =============================================
-- Author: Zsiga Attila
-- Create date: 2016.10.21.
-- Description: Tanév rendje esemény alapján melyik órarendi órák érintettek.
-- =============================================
DROP PROCEDURE IF EXISTS sp_GetTanevrendjeErintettOrarendiOrai
GO
CREATE PROCEDURE sp_GetTanevrendjeErintettOrarendiOrai
@pTanevId INT,
@pNapTipusa INT,
@pKezdete DATETIME,
@pVege DATETIME
AS
BEGIN
SET NOCOUNT ON;
--TEMP TABLES
SELECT * INTO #TEMPNAPTARINAP FROM T_NAPTARINAP
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPFELHASZNALO FROM T_FELHASZNALO
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPORARENDIORA FROM T_ORARENDIORA
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPTANEVRENDJE FROM T_TANEVRENDJE
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPOSZTALYCSOPORT_TANEVRENDJE FROM T_OSZTALYCSOPORT_TANEVRENDJE
LEFT JOIN #TEMPTANEVRENDJE ON #TEMPTANEVRENDJE.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT * INTO #TEMPOSZTALYCSOPORT FROM T_OSZTALYCSOPORT
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
---------------
SELECT
*
INTO
#TEMPTANEVRENDJEGLOBAL
FROM
#TEMPTANEVRENDJE
WHERE
C_OSSZESCSOPORTRAVONATKOZIK = 'T'
AND C_DATUM >= @pKezdete
AND C_DATUM <= @pVege
AND C_NAPTIPUSA = @pNapTipusa
---------------
SELECT
#TEMPTANEVRENDJE.*,
#TEMPOSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
INTO
#TEMPTANEVRENDJEOSZTALYOKRA
FROM
#TEMPOSZTALYCSOPORT_TANEVRENDJE
LEFT JOIN #TEMPOSZTALYCSOPORT ON #TEMPOSZTALYCSOPORT.ID = #TEMPOSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
LEFT JOIN #TEMPTANEVRENDJE ON #TEMPTANEVRENDJE.ID = #TEMPOSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE
#TEMPTANEVRENDJE.C_NAPTIPUSA = @pNapTipusa
AND #TEMPTANEVRENDJE.C_DATUM >= @pKezdete
AND #TEMPTANEVRENDJE.C_DATUM <= @pVege
---------------
SELECT
ID
INTO
#TEMPERINTETTOSZTALYOK
FROM
#TEMPOSZTALYCSOPORT
WHERE
(
(#TEMPOSZTALYCSOPORT.ID IN (SELECT #TEMPTANEVRENDJEOSZTALYOKRA.C_OSZTALYCSOPORTID FROM #TEMPTANEVRENDJEOSZTALYOKRA)) OR ((SELECT COUNT (*) FROM #TEMPTANEVRENDJEGLOBAL) > 0)
)
---------------
SELECT
*
INTO
#TEMPERINTETTNAPTARINAPOK
FROM
#TEMPNAPTARINAP
WHERE
C_NAPDATUMA >= @pKezdete
AND C_NAPDATUMA <= @pVege
---------------
SELECT
*
INTO
#TEMPERINTETTORARENDIORAK
FROM
#TEMPORARENDIORA
WHERE
C_ORAERVENYESSEGKEZDETE <= @pKezdete
AND C_ORAERVENYESSEGVEGE >= @pVege
AND ((C_HETIREND = 1554) OR (1154 IN (SELECT C_HETIREND FROM #TEMPERINTETTNAPTARINAPOK)) OR (C_HETIREND IN (SELECT C_HETIREND FROM #TEMPERINTETTNAPTARINAPOK)))
AND C_HETNAPJA IN (SELECT C_HETNAPJA FROM #TEMPERINTETTNAPTARINAPOK)
AND C_OSZTALYCSOPORTID IN (SELECT ID FROM #TEMPERINTETTOSZTALYOK)
---------------
SELECT
ID AS OrarendiOraId
FROM
#TEMPERINTETTORARENDIORAK
DROP TABLE #TEMPNAPTARINAP
DROP TABLE #TEMPFELHASZNALO
DROP TABLE #TEMPORARENDIORA
DROP TABLE #TEMPTANEVRENDJE
DROP TABLE #TEMPOSZTALYCSOPORT_TANEVRENDJE
DROP TABLE #TEMPOSZTALYCSOPORT
DROP TABLE #TEMPTANEVRENDJEGLOBAL
DROP TABLE #TEMPTANEVRENDJEOSZTALYOKRA
DROP TABLE #TEMPERINTETTOSZTALYOK
DROP TABLE #TEMPERINTETTNAPTARINAPOK
DROP TABLE #TEMPERINTETTORARENDIORAK
END
GO

View file

@ -0,0 +1,38 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTantargyakElmaradtOraszama]
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016.01.06.>
-- Description: <Tantárgyak elmaradt órái adott tanévben, osztályonként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTantargyakElmaradtOraszama]
@tanevID int
AS
BEGIN
SET NOCOUNT ON;
select T_TANTARGY_OSSZES.C_NEV Tantargy,
T_OSZTALYCSOPORT_OSSZES.C_NEV OsztalyNev,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
INNER JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='F'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
GROUP BY T_TANTARGY_OSSZES.C_NEV, T_OSZTALYCSOPORT_OSSZES.C_NEV
END
GO

View file

@ -0,0 +1,40 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTantargyakMegtartottOraszama]
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016.01.06.>
-- Description: <Tantárgyak megtartott órái adott tanévben, osztályonként>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTantargyakMegtartottOraszama]
@intezmenyId int,
@tanevID int
AS
BEGIN
SET NOCOUNT ON;
select T_TANTARGY_OSSZES.C_NEV Tantargy,
T_OSZTALYCSOPORT_OSSZES.C_NEV OsztalyNev,
COUNT(T_TANITASIORA_OSSZES.ID) MegtartottOrak
FROM T_TANTARGY_OSSZES
INNER JOIN T_TANITASIORA_OSSZES on T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID
INNER JOIN T_FOGLALKOZAS_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
WHERE
T_TANTARGY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.TOROLT='F'
AND T_FOGLALKOZAS_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT='T'
AND T_TANTARGY_OSSZES.C_TANEVID = @tanevID
AND T_TANTARGY_OSSZES.C_INTEZMENYID = @intezmenyId
GROUP BY T_TANTARGY_OSSZES.C_NEV, T_OSZTALYCSOPORT_OSSZES.C_NEV
END
GO

Some files were not shown because too many files have changed in this diff Show more