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,45 @@
--Migration
DROP INDEX IF EXISTS NCI_TanuloMulasztas_OraTanuloiId_TanitasiOrakId_Tipus_IntezmenyId_TanevId ON T_TANULOMULASZTAS
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'NCI_TanuloMulasztas_OraTanuloiId_TanitasiOrakId_Tipus_IntezmenyId_TanevId') BEGIN
CREATE NONCLUSTERED INDEX NCI_TanuloMulasztas_OraTanuloiId_TanitasiOrakId_Tipus_IntezmenyId_TanevId
ON T_TANULOMULASZTAS (
C_ORATANULOIID
,C_TANITASIORAKID
,C_TIPUS
,C_INTEZMENYID
,C_TANEVID
)
INCLUDE(
C_KESESPERCBEN
,C_IGAZOLASTIPUSA
,C_IGAZOLT
)
WHERE TOROLT = 'F'
WITH (FILLFACTOR = 80)
END
GO
DROP INDEX IF EXISTS NCI_TanuloMulasztas_TanitasiOrakId_IntezmenyId_TanevId_OraTanuloiId ON T_TANULOMULASZTAS
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'NCI_TanuloMulasztas_TanitasiOrakId_IntezmenyId_TanevId_OraTanuloiId') BEGIN
CREATE NONCLUSTERED INDEX NCI_TanuloMulasztas_TanitasiOrakId_IntezmenyId_TanevId_OraTanuloiId
ON T_TANULOMULASZTAS (
C_TANITASIORAKID
,C_INTEZMENYID
,C_TANEVID
,C_ORATANULOIID
)
INCLUDE(
C_KESESPERCBEN
,C_IGAZOLASTIPUSA
,C_TIPUS
,C_IGAZOLT
)
WHERE TOROLT = 'F'
WITH (FILLFACTOR = 80)
END
GO

View file

@ -0,0 +1,271 @@
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
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #Tanulo (
TanuloId int PRIMARY KEY
,TanuloCsoportId int
,BelepesDatum date
,KilepesDatum date
)
INSERT INTO #Tanulo
SELECT
TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
DECLARE
@Idoszak int
,@IdoszakElsoNap int
,@IdoszakKezdete date
,@IdoszakVege date
SET @Idoszak =
CASE @ertekelesTipus
WHEN 1519 THEN 1400 --félévi
WHEN 1520 THEN 1395 --év végi
WHEN 1522 THEN 1403 --I. negyedévi
WHEN 1524 THEN 1400 --II. negyedévi
WHEN 1523 THEN 1404 --III. negyedévi
END
SET @IdoszakElsoNap =
CASE @ertekelesTipus
WHEN 1519 THEN 1394 --félévi
WHEN 1520 THEN 1394 --év végi
WHEN 1522 THEN 1394 --I. negyedévi
WHEN 1524 THEN 1403 --II. negyedévi
WHEN 1523 THEN 1400 --III. negyedévi
END
CREATE TABLE #SzurtCsoportTipus (
CsoportTipusId int PRIMARY KEY
)
IF @isMuveszetOktatasi = 0 BEGIN
INSERT INTO #SzurtCsoportTipus
SELECT ID
FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)
END
ELSE BEGIN
INSERT INTO #SzurtCsoportTipus (CsoportTipusId) VALUES
(1067) -- Alapf. müv. okt. zeneművészeti csoport - egyéni főtanszak
,(1068) -- Alapf. müv. okt. zeneművészeti csoport - csoportos főtanszak
,(1069) -- Alapf. müv. okt. képző- és iparművészeti csoport
,(1070) -- Alapf. müv. okt. táncművészeti csoport
,(1071) -- Alapf. müv. okt. szín- és bábművészeti csoport
,(6756) -- Alapf. műv. okt. zeneművészeti csoport - csoportos kötelezően választható
,(6757) -- Alapf. műv. okt. zeneművészeti csoport - egyéni kötelezően választható
,(6758) -- Alapf. műv. okt. zeneművészeti csoport - csoportos kötelező
,(6759) -- Alapf. műv. okt. zeneművészeti csoport - egyéni kötelező
,(6760) -- Alapf. műv. okt. zeneművészeti csoport - csoportos választható
,(6761) -- Alapf. műv. okt. zeneművészeti csoport - egyéni választható
END
SET @IdoszakKezdete = (SELECT TOP 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 = @Idoszak AND C_TANEVID = @tanevId AND TOROLT='F')
SELECT
t.TANULOID tanuloid
,t.TanuloCsoportId tanulocsoportid
,mu.Igazolt
,mu.Igazolatlan
,mu.ElmeletIgazolt
,mu.ElmeletIgazolatlan
,mu.GyakorlatiIgazolt
,mu.GyakorlatiIgazolatlan
,mu.ElmeletOsszes
,mu.GyakorlatOsszes
,mu.Osszes
FROM #Tanulo t
LEFT JOIN (
SELECT DISTINCT
mu.tanuloId
,mu.tanulocsoportid
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) Igazolt
,ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Igazolatlan
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) ElmeletIgazolt
,ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletIgazolatlan
,ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) GyakorlatiIgazolt
,ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatiIgazolatlan
,ISNULL(mu.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(mu.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletOsszes
,ISNULL(mu.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) + ISNULL(mu.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) 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) Osszes
FROM (
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),'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 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'
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)
)
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),'T','F')), t.C_GYAKORLATI
) x
) p
PIVOT (
MAX(cnt)
FOR piv IN (
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati]
)
) AS pvt
) mu
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 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'
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)
)
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 mu.tanuloId = kp.tanuloId
) mu on mu.tanuloId = t.tanuloId and mu.TanuloCsoportId = t.TanuloCsoportId
END
GO

View file

@ -0,0 +1,346 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetErtesitesAltEsMulAdatok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetErtesitesAltEsMulAdatok
END
GO
CREATE PROCEDURE sp_GetErtesitesAltEsMulAdatok
@pOsztalyId INT,
@pTanevId INT,
@pTankoteles BIT,
@pIskolaErdekuSzamit BIT,
@pIsSzulonek BIT = 1
AS
BEGIN
SET NOCOUNT ON;
--Mulasztasok
DECLARE @Mulasztasok TABLE (
TanuloId INT
,TanuloCsoportId INT
,Igazolt INT
,Igazolatlan INT
,ElmeletIgazolt INT
,ElmeletIgazolatlan INT
,GyakorlatIgazolt INT
,GyakorlatIgazolatlan INT
,ElmeletOsszes INT
,GyakorlatOsszes INT
,Osszes INT
)
INSERT INTO @Mulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyID = @pOsztalyId,
@tanevId = @pTanevId,
@elmeletiOraPercben = 45,
@gyakorlatiOraPercben = 45,
@ertekelesTipus = 1520, --évvégi
@iskolaErdekuSzamit = @pIskolaErdekuSzamit
SELECT
TanuloId Id
,TanuloCsoportId
,BelepesDatum
,ISNULL(KilepesDatum, GETDATE()) KilepesDatum
INTO #students
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T')
DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT, RokonsagiFokId INT, GondviseloNev NVARCHAR(MAX))
INSERT INTO @Gondviselok
SELECT
TanuloId
,GondviseloId
,RokonsagifokId
,GondviseloNev
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T')
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
INSERT INTO @TanuloCimTable
SELECT DISTINCT
TanuloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) btemp
WHERE
temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,temp.CimTipusa
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) temp
DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
INSERT INTO @GondViseloCimTable
SELECT DISTINCT
GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,temp.CimTipusa
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) temp
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
UNION
SELECT
TanuloId
,C_EMAILCIM
,GondviseloId
FROM @Gondviselok
INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO @EmailCimTanuloTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @EmailCimTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
AND btemp.GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM @EmailCimTableTemp temp
WHERE
GondviseloId IS NULL
DECLARE @EmailCimGondviseloTable TABLE (FelhasznaloId INT, GondviseloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO @EmailCimGondviseloTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @EmailCimTableTemp btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND btemp.GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM @EmailCimTableTemp temp
WHERE
GondviseloId IS NOT NULL
DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @TelefonTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
UNION
SELECT
TanuloId
,C_TELEFONSZAM
,GondviseloId
FROM @Gondviselok gondviselo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX))
INSERT INTO @TanuloTelefonTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @TelefonTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM @TelefonTableTemp temp
WHERE
GondviseloId IS NULL
DECLARE @GondviseloTelefonTable TABLE (FelhasznaloID INT, GondviseloId INT, Telefon NVARCHAR(MAX))
INSERT INTO @GondviseloTelefonTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @TelefonTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
and temp.GondviseloId = btemp.GondviseloId
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM @TelefonTableTemp temp
WHERE
GondviseloId IS NOT NULL
SELECT
TanuloId
,Gondviselok.GondviseloId
,Gondviselok.GondviseloNev GondviseloNev
,Cim GondviseloAllandoCim
,Telefon GondviseloTelefon
,RokonsagiFok.C_NAME GondviseloRokonsagiFoka
INTO #GondviseloAdatok
FROM @Gondviselok Gondviselok
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.Id = Gondviselok.RokonsagiFokId AND RokonsagiFok.C_TANEVID = @pTanevId
LEFT JOIN @GondViseloCimTable GondviseloCim ON GondviseloCim.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondviseloTelefonTable GondviseloTelefon ON GondviseloTelefon.GondviseloId = Gondviselok.GondviseloId
ORDER BY TanuloId
--Tanulói adatok
SELECT
TanuloAdatok.ID
,OsztalyTanuloi.TanuloCsoportId
,TanuloAdatok.C_NYOMTATASINEV TANULONEV
,TanuloAdatok.C_ANYJANEVE ANYJANEVE
,TanuloAdatok.C_SZULETESIHELY SZULETESIHELY
,TanuloAdatok.C_SZULETESIDATUM SZULETESIDATUM
,TanuloAdatok.C_NYILVANTARTASISZAM TorzslapSzam
,IntezmenyAdatok.C_IGAZGATONEVE INT_IGAZGATO_NEV
,IntezmenyAdatok.C_NEV INT_NEV
,IntezmenyAdatok.C_OMKOD INT_OMKOD
,IntezmenyAdatok.C_VAROS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) INT_CIM
,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) OSZTALYCSOPORT_NEV
,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV
,ISNULL(Mulasztas.Igazolt,0) IGAZOLT
,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN
,TanuloAllandoCimTable.CIM TanuloAllandoCim
,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim
INTO #tanuloiAdatok
FROM #students OsztalyTanuloi
INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = OsztalyTanuloi.ID AND TanuloAdatok.TOROLT = 'F'
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloAdatok.C_TANEVID
AND IntezmenyAdatok.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK AS TanugyiAdatok ON TanugyiAdatok.C_TANULOCSOPORTID = OsztalyTanuloi.TanuloCsoportId
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId AND Osztaly.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Osztalyfonok ON Osztalyfonok.ID = Osztaly.C_OSZTALYFONOKID AND Osztalyfonok.TOROLT = 'F'
LEFT JOIN @Mulasztasok Mulasztas ON Mulasztas.TanuloId = TanuloAdatok.ID AND Mulasztas.TanuloCsoportId = OsztalyTanuloi.TanuloCsoportId
LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloAllandoCimTable.Cimtipusa = 907
LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloTartozkodasiCimTable.Cimtipusa = 909
WHERE
TanugyiAdatok.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T')
ORDER BY TanuloAdatok.C_NYOMTATASINEV
IF @pIsSzulonek = 1 BEGIN
SELECT DISTINCT
ta.*
,GondviseloAdatok.GondviseloNev
,GondviseloAdatok.GondviseloAllandoCim
,GondviseloAdatok.GondviseloTelefon
,GondviseloRokonsagiFoka
FROM #tanuloiAdatok AS ta
LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = ta.ID
ORDER BY TANULONEV
END
ELSE BEGIN
SELECT DISTINCT
ta.*
FROM #tanuloiAdatok AS ta
WHERE
ta.Igazolatlan > 0
ORDER BY TANULONEV
END
--Mulasztások részletezése
SELECT
Mulasztasok.TanuloId
,Mulasztasok.TanuloCsoportId
,Mulasztasok.OsztalyCsoportId
,Mulasztasok.OsztalyCsoportNev
,MulasztasTipus.C_NAME Tipusa
,Mulasztasok.Igazolt
,Mulasztasok.IgazolasTipusa
,Mulasztasok.KesesPercben
,Mulasztasok.Datum
,Mulasztasok.Oraszam
,Mulasztasok.TantargyId
,Mulasztasok.TantargyNev
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) Mulasztasok
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa AND MulasztasTipus.C_TANEVID = @pTanevId
WHERE
Igazolt = 'F'
--Gondviselo adatok
SELECT * from #GondviseloAdatok AS Gondviselok
LEFT JOIN @Mulasztasok Mulasztasok ON Mulasztasok.TanuloId = Gondviselok.TanuloId
WHERE (@pIsSzulonek = 0 AND Mulasztasok.Igazolatlan > 0)
OR (@pIsSzulonek = 1)
--Iktatási adatok
DECLARE @IktatasAdatok TABLE (OsztalyId INT, Evfolyam INT, FeladatEllatasiHelyId INT, KepzesiForma INT, OsztalyFonokId INT,
TantervId INT, SzakmaCsoport INT, Agazat INT, Szakkepesites INT, Reszszakkepesites INT,
OJCSJKeresztfeleves CHAR, OJTechnikaiOsztaly CHAR, OJNemzetisegi CHAR, OJKettannyelvu CHAR, OJNyelviElokeszito CHAR,
OJLogopediai CHAR, OJSportOsztaly CHAR, OJAranyJanosProgram CHAR, OJGyogypedagogiai CHAR)
INSERT INTO @IktatasAdatok
SELECT
@pOsztalyId,
ocs.C_EVFOLYAMTIPUSA,
ocs.C_FELADATELLATASIHELYID,
o.C_KEPZESIFORMA,
o.C_OSZTALYFONOKID,
o.C_TANTERVID,
o.C_SZAKMACSOPORT,
o.C_AGAZAT,
o.C_SZAKKEPESITES,
o.C_RESZSZAKKEPESITES,
ocs.C_KERESZTFELEVES,
o.C_TECHNIKAIOSZTALY,
o.C_NEMZETISEGI,
o.C_KETTANNYELVU,
o.C_NYELVIELOKESZITO,
o.C_LOGOPEDIAI,
o.C_SPORT,
o.C_AJPROGRAM,
o.C_GYOGYPEDAGOGIAI
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
WHERE ocs.ID = @pOsztalyId AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @pTanevId;
SELECT * from @IktatasAdatok;
DROP TABLE #GondviseloAdatok
DROP TABLE #tanuloiAdatok
DROP TABLE #students
END
GO

View file

@ -0,0 +1,458 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetErtesitoNyomtatvany]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany]
END
GO
-- =====================================================================
-- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...)
-- =====================================================================
CREATE PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany]
@pOsztalyId INT,
@pTanevId INT,
@pErtekelesTipus INT,
@pElmeletGyakorlat BIT = 0,
@pKesesTipus INT = 1499,
@pElmeletiOraPercben INT = 45,
@pGyakorlatiOraPercben INT = 45,
@pIskolaErdekuSzamit BIT,
@pIsKozossegiSzolgalat BIT,
@pTanuloId INT = NULL,
@pIsMuveszetOktatasi BIT = 0,
@pIsShowTanuloiAtlag BIT = 0,
@tanitasiHetekSzamaVegzos INT = 32,
@tanitasiHetekSzamaNemVegzos INT = 36,
@isAltantargyBeszamitasa BIT = 0,
@nyomtatvanyNyelvEnum INT = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @EsemenyTipus INT
SET @EsemenyTipus = (SELECT
CASE
WHEN @pErtekelesTipus = 1519 THEN 1547 --félévi
WHEN @pErtekelesTipus = 1520 THEN 1548 --év végi
WHEN @pErtekelesTipus = 1522 THEN 1549 --I. negyedévi
WHEN @pErtekelesTipus = 1524 THEN 1550 --II. negyedévi
WHEN @pErtekelesTipus = 1523 THEN 1551 --III. negyedévi
END
)
DECLARE @IdoszakVegeTanevRendje INT
SET @IdoszakVegeTanevRendje =
CASE @pErtekelesTipus
WHEN 1519 THEN 1400 --félévi
WHEN 1520 THEN 1395 --év végi
WHEN 1522 THEN 1403 --I. negyedévi
WHEN 1524 THEN 1400 --II. negyedévi
WHEN 1523 THEN 1404 --III. negyedévi
END
DECLARE @IdoszakVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = @IdoszakVegeTanevRendje AND C_TANEVID = @pTanevId AND TOROLT = 'F')
-- Fejléc
IF @pIsMuveszetOktatasi = 0 BEGIN
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
dbo.fnGetDokumentumIntezmenyCime(@pTanevId) IntezmenyCime,
T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE IntezmenyVezeto,
T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod,
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
T_TANEV_OSSZES.C_NEV TANEV,
T_INTEZMENYADATOK_OSSZES.C_VAROS VAROS,
ofo.C_NYOMTATASINEV OSZTALYFONOK,
ofo.ID OsztalyFonokId,
ocs.C_NEV OSZTALYNEV,
@pOsztalyId OsztalyId,
GETDATE() Datum
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,o.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,o.C_LOGOPEDIAI OJLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id = @pOsztalyId and ocs.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID and ocs.C_TANEVID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO ofo on ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_TANEV_OSSZES
ON T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.ID = @pTanevId
END
ELSE BEGIN
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
dbo.fnGetDokumentumIntezmenyCime(@pTanevId) IntezmenyCime,
T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE IntezmenyVezeto,
T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod,
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
T_TANEV_OSSZES.C_NEV TANEV,
T_INTEZMENYADATOK_OSSZES.C_VAROS VAROS,
ofo.C_NYOMTATASINEV CsoportVezeto,
ofo.ID CsoportVezetoId,
ocs.C_NEV OSZTALYNEV,
@pOsztalyId CsoportId,
GETDATE() Datum
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TIPUSA CsoportTipusa
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id = @pOsztalyId and ocs.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID and ocs.C_TANEVID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and ocs.TOROLT = 'F'
INNER JOIN T_CSOPORT_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO ofo on ofo.ID = o.C_CSOPORTVEZETOID
INNER JOIN T_TANEV_OSSZES
ON T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
WHERE T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.ID = @pTanevId
END
-- TANULÓK
DECLARE @Tanulok TABLE
(
TANULOID INT
,TanuloCsoportId INT
,BelepesDatum DATE
,KilepesDatum DATE
,TANULONEV NVARCHAR(MAX)
,OKTATASIAZONOSITO NVARCHAR(MAX)
,TORZSLAPSZAM NVARCHAR(MAX)
,SZULHELY NVARCHAR(MAX), SZULIDO NVARCHAR(MAX)
,ANYJANEVE NVARCHAR(MAX)
,Osztaly NVARCHAR(MAX)
,OsztalyId INT
,Osztalyfonok NVARCHAR(MAX)
)
IF @pTanuloId IS NOT NULL BEGIN
INSERT INTO @Tanulok
SELECT
tanulok.TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,IIF(@nyomtatvanyNyelvEnum = 0, felhasznalo.C_NYOMTATASINEV, felhasznalo.C_UTONEV + ' ' + felhasznalo.C_VEZETEKNEV)
,felhasznalo.C_OKTATASIAZONOSITO
,tanulok.Torzslapszam
,felhasznalo.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)
,felhasznalo.C_ANYJANEVE
,dbo.fnGetDokumentumTanuloAktualisOsztaly(tanulok.TanuloId) Osztaly
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(tanulok.TanuloId) OsztalyId
,CASE @pIsMuveszetOktatasi
WHEN 0 THEN dbo.fnGetDokumentumTanuloAktualisOsztalyfonok(tanulok.TanuloId)
WHEN 1 THEn dbo.fnGetDokumentumTanuloAktualisCsoportvezeto(tanulok.TanuloId, @pOsztalyId)
END AS Osztalyfonok
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo on felhasznalo.Id=tanulok.TanuloId
WHERE
tanulok.TanuloId = @pTanuloId
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
,Osztaly
,OsztalyId
,Osztalyfonok
FROM @Tanulok
ORDER BY TANULONEV
END
ELSE BEGIN
INSERT INTO @Tanulok
SELECT
tanulok.TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,IIF(@nyomtatvanyNyelvEnum = 0, felhasznalo.C_NYOMTATASINEV, felhasznalo.C_UTONEV + ' ' + felhasznalo.C_VEZETEKNEV)
,felhasznalo.C_OKTATASIAZONOSITO
,tanulok.Torzslapszam
,felhasznalo.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)
,felhasznalo.C_ANYJANEVE
,dbo.fnGetDokumentumTanuloAktualisOsztaly(tanulok.TanuloId) Osztaly
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(tanulok.TanuloId) OsztalyId
,CASE @pIsMuveszetOktatasi
WHEN 0 THEN dbo.fnGetDokumentumTanuloAktualisOsztalyfonok(tanulok.TanuloId)
WHEN 1 THEn dbo.fnGetDokumentumTanuloAktualisCsoportvezeto(tanulok.TanuloId, @pOsztalyId)
END AS Osztalyfonok
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo on felhasznalo.Id=tanulok.TanuloId
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
,Osztaly
,OsztalyId
,Osztalyfonok
FROM @Tanulok
ORDER BY TANULONEV
END
-- ÉRTÉKELÉSEK
DECLARE @Ertekelesek TABLE (
TanuloId INT
,TanuloCsoportId INT
,Targy NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,ErtekelesValue FLOAT
,ErtekelesJegyzettel NVARCHAR(MAX)
,Oraszam FLOAT
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(MAX)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(MAX)
)
INSERT INTO @Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @pOsztalyId,
@tanevId = @pTanevId,
@ertekelesTipus = @pErtekelesTipus,
@isMuveszetOktatasi = @pIsMuveszetOktatasi,
@tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos,
@tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos,
@isAltantargyBeszamitasa = @isAltantargyBeszamitasa,
@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum
SELECT
ertekeles.TanuloId
,ertekeles.TanuloCsoportId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,'' TanarNev
FROM @Ertekelesek ertekeles
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = ertekeles.TanuloId AND Tanulok.TanuloCsoportId = ertekeles.TanuloCsoportId
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
IF(@pIsShowTanuloiAtlag = 1) BEGIN
--Tanuló Átlaga
SELECT
atlag.TanuloId TanuloId
,atlag.TanuloCsoportId
,REPLACE(CONVERT(varchar(30), AVG(ErtekelesValue)), '.',',') ErtekelesAtlag
FROM @Ertekelesek atlag
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = atlag.TanuloId AND Tanulok.TanuloCsoportId = atlag.TanuloCsoportId
GROUP BY atlag.TanuloId, atlag.TanuloCsoportId
END
-- MULASZTÁSOK
DECLARE @Mulasztasok TABLE (
TanuloId INT
,TanuloCsoportId INT
,Igazolt INT
,Igazolatlan INT
,ElmeletIgazolt INT
,ElmeletIgazolatlan INT
,GyakorlatIgazolt INT
,GyakorlatIgazolatlan INT
,ElmeletOsszes INT
,GyakorlatOsszes INT
,Osszes INT
)
INSERT INTO @Mulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @pOsztalyId,
@tanevId = @pTanevId,
@elmeletiOraPercben = @pElmeletiOraPercben,
@gyakorlatiOraPercben = @pGyakorlatiOraPercben,
@ertekelesTipus = @pErtekelesTipus,
@iskolaErdekuSzamit = @pIskolaErdekuSzamit,
@isMuveszetOktatasi = @pIsMuveszetOktatasi
SELECT
mulasztasok.TanuloId
,mulasztasok.TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM @Mulasztasok mulasztasok
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = mulasztasok.TanuloId AND Tanulok.TanuloCsoportId = mulasztasok.TanuloCsoportId
-- TANTÁRGYI MENTESSÉGEK
SELECT
Mentessegek.TanuloId
,Mentessegek.TanuloCsoportId
,TantargyNev
,MentessegOka
FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId, DEFAULT) Mentessegek
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Mentessegek.TanuloId AND Tanulok.TanuloCsoportId = Mentessegek.TanuloCsoportId
--TANULÓ elérhetőségei
SELECT
GondviseloNev GondviseloNeve
,Gondviselo.TanuloId
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') Gondviselo
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Gondviselo.TanuloId
SELECT DISTINCT
TanuloTable.TanuloId tanuloID
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM CimText
,cimTipus.C_NAME CimTipusa
FROM @Tanulok TanuloTable
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloTable.TanuloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID AND cimTipus.C_TANEVID = @pTanevId
WHERE
cim.TOROLT = 'F'
AND cim.C_GONDVISELOID IS NULL
AND cim.C_ALAPERTELMEZETT = 'T'
AND cim.C_TANEVID = @pTanevId
--Tanuló összefüggő szakmai gyakorlat
SELECT
SzakmaiGyakorlat.TanuloId
,SzakmaiGyakorlat.TanuloCsoportId
,isTeljesitett
,Ertekeles
,Megjegyzes
,Datum
FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@pTanevId, @pOsztalyId) SzakmaiGyakorlat
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = SzakmaiGyakorlat.TanuloId AND Tanulok.TanuloCsoportId = SzakmaiGyakorlat.TanuloCsoportId
-- Osztály adatok az iktatáshoz
IF @pIsMuveszetOktatasi = 0 BEGIN
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,o.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,o.C_LOGOPEDIAI OJLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
END
ELSE BEGIN
SELECT
f.C_NYOMTATASINEV CsoportVezeto
,f.ID CsoportVezetoId
,ocs.C_NEV OSZTALYNEV
,@pOsztalyId CsoportId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,cs.C_TIPUSA CsoportTipusa
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
END
--Bejegyzések
SELECT
TanuloTable.TanuloId
,TanuloTable.TanuloCsoportId
,'A félév során ' + CAST(SUM(Oraszam) AS NVARCHAR(MAX)) + ' óra közösségi szolgálatot teljesített.' Bejegyzes
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@pTanevId, @pOsztalyId) bejegyzes
INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId AND bejegyzes.TanuloCsoportId = TanuloTable.TanuloCsoportId
WHERE
@pIsKozossegiSzolgalat = 1
AND (IntervallumVege <= @IdoszakVege OR @IdoszakVege BETWEEN IntervallumKezdete AND IntervallumVege)
GROUP BY TanuloTable.TanuloId, TanuloTable.TanuloCsoportId
UNION
SELECT
bejegyzes.TanuloId TanuloId
,TanuloCsoportId
,Tartalom Bejegyzes
FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId) bejegyzes
INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
WHERE
Tipusa IN (1546, @EsemenyTipus)
AND BelepesDatum <= Datum
AND (KilepesDatum IS NULL OR KilepesDatum >= Datum)
-- Zaradekok
SELECT
Hatarozatok.TanuloId
,Hatarozatok.TanuloCsoportId
,Bejegyzes VegZaradek
FROM fnGetDokumentumTanuloZaradekai(@pTanevId, @pOsztalyId) Hatarozatok
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Hatarozatok.TanuloId AND Tanulok.TanuloCsoportId = Hatarozatok.TanuloCsoportId
WHERE @pErtekelesTipus IN (1519, 1520)
END
GO

View file

@ -0,0 +1,462 @@
DROP PROCEDURE IF EXISTS sp_GetTorzslap
GO
CREATE PROCEDURE sp_GetTorzslap
@osztalyId int
,@tanevId int
,@ertekelesTipus int
,@kesesTipus int
,@elmeletiOraPercben int = 45
,@gyakorlatiOraPercben int = 45
,@iskolaErdekuSzamit bit
,@nyomtatvanyNyelvEnum int
,@isKozossegiSzolgalat bit
,@tanitasiHetekSzamaVegzos int
,@tanitasiHetekSzamaNemVegzos int
,@isAltantargyBeszamitasa bit
,@isMuveszetOktatasi bit = 0
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #Student (
TanuloId int
,NaploSorszam int
,TorzslapSzam nvarchar(500)
,TanuloCsoportId int
,BelepesDatum datetime
,KilepesDatum datetime
,Agazat nvarchar(250)
,Szakkepesites nvarchar(250)
,ReszSzakkepesites nvarchar(250)
,SzakmaCsoport nvarchar(250)
,RowNum int
,INDEX IX_01 CLUSTERED (TanuloId)
)
INSERT INTO #Student (
TanuloId
,NaploSorszam
,TorzslapSzam
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,Agazat
,Szakkepesites
,ReszSzakkepesites
,SzakmaCsoport
,RowNum
) SELECT
OsztalyTanuloi.TanuloId AS TanuloId
,OsztalyTanuloi.NaploSorszam AS NaploSorszam
,OsztalyTanuloi.TorzslapSzam AS TorzslapSzam
,OsztalyTanuloi.TanuloCsoportId AS TanuloCsoportId
,OsztalyTanuloi.BelepesDatum AS BelepesDatum
,OsztalyTanuloi.KilepesDatum AS KilepesDatum
,Agazat.C_NAME AS Agazat
,IIF(Szakkep.ID = 5527, '', Szakkep.C_NAME + '(szakképesítés)') AS Szakkepesites
,IIF(ReszSzakkep.ID = 6108, '', ReszSzakkep.C_NAME + '(részszakképesítés)') AS ReszSzakkepesites
,SzakmaCsop.C_NAME AS SzakmaCsoport
,ROW_NUMBER() OVER(ORDER BY LEN(TorzslapSzam), TorzslapSzam) AS RowNum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Agazat ON Agazat.ID = OsztalyTanuloi.AgazatId AND Agazat.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Szakkep ON Szakkep.ID = OsztalyTanuloi.SzakkepesitesId AND Szakkep.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ReszSzakkep ON ReszSzakkep.ID = OsztalyTanuloi.ReszSzakkepeitesId AND ReszSzakkep.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES SzakmaCsop ON SzakmaCsop.ID = OsztalyTanuloi.SzakmaCsoportId AND SzakmaCsop.C_TANEVID = @tanevId
DECLARE @minTorzslapszam nvarchar(500) = (
SELECT TOP (1) TorzslapSzam
FROM #Student
ORDER BY RowNum ASC
)
DECLARE @maxTorzslapszam nvarchar(500) = (
SELECT TOP (1) TorzslapSzam
FROM #Student
ORDER BY RowNum DESC
)
--Intézmény, tanév
IF @isMuveszetOktatasi = 0 BEGIN
SELECT DISTINCT
OsztalyCsoport.C_NEV AS OsztalyNev
,Osztaly.C_OSZTALYNAPLOLEIRASA AS OsztalyMegjegyzes
,Osztaly.C_OSZTALYFONOKID AS PartnerID
,IIF(@nyomtatvanyNyelvEnum = 0, ofo.C_NYOMTATASINEV, ofo.C_UTONEV + ' ' + ofo.C_VEZETEKNEV) AS Osztalyfonok
,i.C_IGAZGATONEVE AS IntezmenyVezeto
,i.C_NEV AS IntezmenyNeve
,i.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCime
,i.C_OMKOD AS IntezmenyOMKod
,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(Osztaly.C_OSZTALYNAPLOMEGNYITASA), FORMAT(Osztaly.C_OSZTALYNAPLOMEGNYITASA, 'dd. MM. yyyy')) AS NaploMegnyitasanakDatuma
,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(Osztaly.C_OSZTALYNAPLOZARASA), FORMAT(Osztaly.C_OSZTALYNAPLOZARASA, 'dd. MM. yyyy')) AS NaploZarasanakDatuma
,tanev.C_NEV AS Tanev
,(SELECT COUNT(TanuloId) FROM #Student) AS TanuloSzam /*TODO:Tobb Osztaly Nem kell, mert egy adott osztályt kérdez le, ami paraméterként jön át *//*OM-1609*/
,@minTorzslapszam AS MinNaploSorszam
,@maxTorzslapszam AS MaxNaploSorszam
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_OSZTALY_OSSZES Osztaly ON OsztalyCsoport.ID = Osztaly.ID AND Osztaly.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = Osztaly.C_OSZTALYFONOKID
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = OsztalyCsoport.C_INTEZMENYID AND i.C_TANEVID = @tanevId
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = i.C_TANEVID and tanev.TOROLT = 'F'
WHERE OsztalyCsoport.ID = @osztalyId
END
ELSE
BEGIN
SELECT DISTINCT
OsztalyCsoport.C_NEV AS OsztalyNev
,csoport.C_CSOPORTNAPLOLEIRAS AS OsztalyMegjegyzes
,csoport.C_CSOPORTVEZETOID AS PartnerID
,IIF(@nyomtatvanyNyelvEnum = 0, ofo.C_NYOMTATASINEV, ofo.C_UTONEV + ' ' + ofo.C_VEZETEKNEV) AS Osztalyfonok
,i.C_IGAZGATONEVE AS IntezmenyVezeto
,i.C_NEV AS IntezmenyNeve
,i.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCime
,i.C_OMKOD AS IntezmenyOMKod
,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(csoport.C_CSOPORTNAPLOMEGNYITASA), FORMAT(csoport.C_CSOPORTNAPLOMEGNYITASA, 'dd. MM. yyyy')) AS NaploMegnyitasanakDatuma
,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(csoport.C_CSOPORTNAPLOZARASA), FORMAT(csoport.C_CSOPORTNAPLOZARASA, 'dd. MM. yyyy')) AS NaploZarasanakDatuma
,tanev.C_NEV AS Tanev
,(SELECT COUNT(TanuloId) FROM #Student) AS TanuloSzam
,@minTorzslapszam AS MinNaploSorszam
,@maxTorzslapszam AS MaxNaploSorszam
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_CSOPORT_OSSZES csoport ON OsztalyCsoport.ID = csoport.ID AND csoport.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = csoport.C_CSOPORTVEZETOID
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = OsztalyCsoport.C_INTEZMENYID AND i.C_TANEVID = @tanevId
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = i.C_TANEVID and tanev.TOROLT = 'F'
WHERE OsztalyCsoport.ID = @osztalyId
END
--Osztály, évfolyam
SELECT
OsztalyCsoport.C_NEV
,EvfolyamTipusa.C_NAME_1 AS C_EVFOLYAMTIPUSA_DNAME
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = OsztalyCsoport.C_EVFOLYAMTIPUSA
WHERE OsztalyCsoport.ID = @osztalyId
AND EvfolyamTipusa.C_TANEVID = @tanevId
CREATE TABLE #TanuloAdatok (
TanuloId int
,Azonosito nvarchar(40)
,Nev nvarchar(120)
,SzuletesiDatum nvarchar(20)
,SzuletesiHely nvarchar(50)
,Allampolgarsag nvarchar(250)
,AnyjaNeve nvarchar(64)
,SzuletesiOrszag nvarchar(250)
,TorzslapSzam nvarchar(500)
,GondviseloNeve nvarchar(max)
,NaploSorszam int
,Nev2 nvarchar(255)
,SajatosNevelesu char(1)
,TanuloCsoportId int
,BelepesDatum datetime
,KilepesDatum datetime
,Agazat nvarchar(250)
,Szakkepesites nvarchar(250)
,ReszSzakkepesites nvarchar(250)
,SzakmaCsoport nvarchar(250)
)
--Tanuló adatok
INSERT INTO #TanuloAdatok (
TanuloId
,Azonosito
,Nev
,SzuletesiDatum
,SzuletesiHely
,Allampolgarsag
,AnyjaNeve
,SzuletesiOrszag
,TorzslapSzam
,GondviseloNeve
,NaploSorszam
,Nev2
,SajatosNevelesu
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,Agazat
,Szakkepesites
,ReszSzakkepesites
,SzakmaCsoport
) SELECT-- DISTINCT
felhasznalo.ID AS TanuloId
,felhasznalo.C_OKTATASIAZONOSITO AS Azonosito
,IIF(@nyomtatvanyNyelvEnum = 0, felhasznalo.C_NYOMTATASINEV, felhasznalo.C_UTONEV + ' ' + felhasznalo.C_VEZETEKNEV) AS Nev
,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM), FORMAT(felhasznalo.C_SZULETESIDATUM, 'dd. MM. yyyy')) AS SzuletesiDatum
,felhasznalo.C_SZULETESIHELY AS SzuletesiHely
,IIF(@nyomtatvanyNyelvEnum = 0, LOWER(allampolgarsag.C_NAME), dbo.fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, felhasznalo.C_ALLAMPOLGARSAGA)) AS Allampolgarsag
,IIF(@nyomtatvanyNyelvEnum = 0, C_ANYJANEVE, LTRIM(SUBSTRING(C_ANYJANEVE, C_ANYJANEVEELVALASZTO + 1 , LEN(C_ANYJANEVE) - C_ANYJANEVEELVALASZTO)) + ' ' + LTRIM(SUBSTRING(C_ANYJANEVE, 0, C_ANYJANEVEELVALASZTO + 1))) AS AnyjaNeve
,IIF(@nyomtatvanyNyelvEnum = 0, szorszag.C_NAME, dbo.fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, felhasznalo.C_SZULETESIORSZAG)) AS SzuletesiOrszag
,OsztalyTanuloi.TorzslapSzam AS TorzslapSzam
,gondviselo.Gondviselok AS GondviseloNeve
,OsztalyTanuloi.NaploSorszam AS NaploSorszam
,felhasznalo.C_NYOMTATASINEV AS Nev2
,Tanulo.C_SAJATOSNEVELESU AS SajatosNevelesu
,OsztalyTanuloi.TanuloCsoportId AS TanuloCsoportId
,OsztalyTanuloi.BelepesDatum AS BelepesDatum
,OsztalyTanuloi.KilepesDatum AS KilepesDatum
,OsztalyTanuloi.Agazat AS Agazat
,OsztalyTanuloi.Szakkepesites AS Szakkepesites
,OsztalyTanuloi.ReszSzakkepesites AS ReszSzakkepesites
,OsztalyTanuloi.SzakmaCsoport AS SzakmaCsoport
FROM T_FELHASZNALO_OSSZES felhasznalo
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = felhasznalo.Id
INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.C_ALLAMPOLGARSAGA AND allampolgarsag.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.C_SZULETESIORSZAG AND szorszag.C_TANEVID = @tanevId
LEFT JOIN (
SELECT
g.TanuloId TanuloId
,(SELECT GondviseloNev + IIF(@nyomtatvanyNyelvEnum = 0, N' (' + LOWER(d.C_NAME) + N')', N'') + NCHAR(10)
FROM fnGetDokumentumGondviselok (@osztalyId, @tanevId, 'F', 'T') bg
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.ID = bg.RokonsagifokId AND d.C_TANEVID = @tanevId
WHERE
bg.TanuloId = g.TanuloId
FOR XML PATH('')) Gondviselok
FROM fnGetDokumentumGondviselok (@osztalyId, @tanevId, 'F', 'T') g
) gondviselo on felhasznalo.ID = gondviselo.TanuloId
INNER JOIN #Student OsztalyTanuloi ON OsztalyTanuloi.TanuloId = felhasznalo.ID
ORDER BY Nev
SELECT
TanuloId
,Azonosito
,Nev
,SzuletesiDatum
,SzuletesiHely
,Allampolgarsag
,Anyjaneve
,SzuletesiOrszag
,TorzslapSzam
,GondviseloNeve
,NaploSorszam
,Nev2
,SajatosNevelesu
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,Szakkepesites
,ReszSzakkepesites
FROM #TanuloAdatok
ORDER BY LEN(TorzslapSzam), TorzslapSzam
--Határozat
SELECT
TanuloId
,TanuloCsoportId
,Bejegyzes
FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId)
--Egyéb bejegyzések
SELECT
bejegyzes.TanuloId AS TanuloId
,s.TanuloCsoportId AS TanuloCsoportId
,Tartalom AS Bejegyzes
,C_NAME AS Tipus_DNAME
,IIF(@nyomtatvanyNyelvEnum = 0, dbo.fnGetDokumentumDatumFormatum(bejegyzes.Datum), FORMAT(bejegyzes.Datum, 'dd. MM. yyyy')) AS Datum
FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bejegyzes
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND C_TANEVID = @tanevId AND d.TOROLT = 'F'
INNER JOIN #Student s ON s.TanuloId = bejegyzes.TanuloId
WHERE Tipusa IN (1545, 1548, 1553) --KRETA-6062
AND BelepesDatum <= Datum
AND (KilepesDatum IS NULL OR KilepesDatum > Datum)
ORDER BY Datum
-- MULASZTÁSOK
CREATE TABLE #Mulasztasok (
TanuloId int
,TanuloCsoportId int
,Igazolt int
,Igazolatlan int
,ElmeletIgazolt int
,ElmeletIgazolatlan int
,GyakorlatIgazolt int
,GyakorlatIgazolatlan int
,ElmeletOsszes int
,GyakorlatOsszes int
,Osszes int
)
INSERT INTO #Mulasztasok (
TanuloId
,TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
) EXEC sp_GetDokumentumMulasztasok
@osztalyId = @osztalyId
,@tanevId = @tanevId
,@elmeletiOraPercben = @elmeletiOraPercben
,@gyakorlatiOraPercben = @gyakorlatiOraPercben
,@ertekelesTipus = @ertekelesTipus
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
,@isMuveszetOktatasi = @isMuveszetOktatasi
SELECT
TanuloTable.TanuloId
,TanuloTable.TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM #Mulasztasok mulasztasok
INNER JOIN #Student TanuloTable ON mulasztasok.TanuloId = TanuloTable.TanuloId AND TanuloTable.TanuloCsoportId = mulasztasok.TanuloCsoportId
-- ÉRTÉKELÉSEK
CREATE TABLE #Ertekelesek (
TanuloId int
,TanuloCsoportId int
,Targy nvarchar(max)
,Jegyzet nvarchar(max)
,Ertekeles nvarchar(max)
,ErtekelesValue int
,ErtekelesJegyzettel nvarchar(max)
,Oraszam float
,RENDEZ1 int
,RENDEZ2 nvarchar(max)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(max)
)
INSERT INTO #Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@ertekelesTipus =@ertekelesTipus,
@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum,
@tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos,
@tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos,
@isAltantargyBeszamitasa = @isAltantargyBeszamitasa,
@isMuveszetOktatasi = @isMuveszetOktatasi
SELECT
TanuloId
,TanuloCsoportId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1 RENDEZ
FROM #Ertekelesek
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
--Tanuló lista
SELECT
Nev
,NaploSorszam
,TorzslapSzam
,dbo.fnGetDokumentumDatumFormatum (KilepesDatum) KilepesDatum
FROM #TanuloAdatok
ORDER BY Nev
--Közösségi szolgálat
SELECT DISTINCT
OsztalyTanuloi.TanuloId
,OsztalyTanuloi.TanuloCsoportId
,Datum AS Datum
,ISNULL(' - ' + Megjegyzes, '') AS Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
,KozossegiSzolgalatId
,IntervallumKezdete
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) KozossegiSzolgalat
INNER JOIN #Student OsztalyTanuloi ON OsztalyTanuloi.TanuloId = KozossegiSzolgalat.TanuloId
WHERE @isKozossegiSzolgalat = 1 /*TODO: javítani...*/
ORDER BY IntervallumKezdete
--SNI
SELECT
s.TanuloId AS TanuloId
,s.TanuloCsoportId AS TanuloCsoportId
,ISNULL(Tanulo.C_SNIKIALLITOINTEZMENY, '') AS SNIKiallitoIntezmeny
,dbo.fnGetDokumentumDatumFormatum(Tanulo.C_SNIOKMANYERVENYESSEGKEZDETE) AS SNIKezdete
,dbo.fnGetDokumentumDatumFormatum(Tanulo.C_SNIKONTROLLIDOPONT) AS SNIKontrolIdopont
,ISNULL(Tanulo.C_ERTELMIFOGYATEKOSOKMANYSZAM + '(Értelmi fogyatékos okmányszám) ', '')
+ISNULL(Tanulo.C_LATASSERULTOKMANYSZAM + '(Látássérült okmányszám) ', '')
+ISNULL(Tanulo.C_HALLASSERULTOKMANYSZAM + '(Hallássérült okmányszám) ', '')
+ISNULL(Tanulo.C_BESZEDFOGYATEKOSOKMANYSZAM + '(Beszédfogyatékos okmányszám) ', '')
+ISNULL(Tanulo.C_MOZGASSERULTOKMANYSZAM + '(Mozgáskorlátozott okmányszám) ', '')
+ISNULL(Tanulo.C_DISZGRAFIAOKMANYSZAM + '(Diszgráfia okmányszám) ', '')
+ISNULL(Tanulo.C_DISZKALKULIAOKMANYSZAM + '(Diszkalkulia okmányszám) ', '')
+ISNULL(Tanulo.C_DISZLEXIAOKMANYSZAM + '(Diszlexia okmányszám) ', '')
+ISNULL(TANULO.C_VISELKEDESORGANIKUSOKMANYSZA + '(Viselkedés fejlődésének rendellenessége okmányszám) ', '')
+ISNULL(TANULO.C_VISELKEDESNEMORGANIKUSOKMANY + '(Viselkedés fejlődésének rendellenessége okmányszám) ', '')
+ISNULL(TANULO.C_MEGISMEROORGANIKUSOKMANYSZAM + '(Megismerő funkciók rendellenessége okmányszám) ', '')
+ISNULL(TANULO.C_MEGISMERONEMORGANIKUSOKMANYS + '(Megismerő funkciók rendellenessége okmányszám) ', '') AS SNIOkmanyszamok
FROM #Student s
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = s.TanuloId
WHERE Tanulo.C_SAJATOSNEVELESU = 'T'
--BTM
SELECT
s.TanuloId AS TanuloId
,s.TanuloCsoportId AS TanuloCsoportId
,ISNULL(Tanulo.C_BTMKIALLITOINTEZMENY,'') AS BTMKiallitoIntezmeny
,dbo.fnGetDokumentumDatumFormatum(Tanulo.C_BTMOKMANYERVENYESSEGKEZDETE) AS BTMKezdete
,dbo.fnGetDokumentumDatumFormatum(Tanulo.C_BTMKONTROLLIDOPONT) AS BTMKontrolIdopont
,ISNULL(Tanulo.C_BTMHATAROZATOKMANYSZAM + '(BTM határozat okmányszáma) ', '')
+IIF(Tanulo.C_BEILLESZKEDESIPROBLEMAVALKUZ ='T', 'Beilleszkedési problémával küzd, ', '')
+IIF(Tanulo.C_MAGATARTASIPROBLEMAVALKUZD ='T', 'Magatartási problémával küzd, ', '')
+IIF(Tanulo.C_TANULASIPROBLEMAVALKUZD ='T', 'Tanulási problémával küzd - ', '')
+IIF(Tanulo.C_TANULASIPROBLEMADISZGRAFIA ='T', 'Diszgráfia, ', '')
+IIF(Tanulo.C_TANULASIPROBLEMAVALKUZDDISZK ='T', 'Diszkalkulia, ', '')
+IIF(Tanulo.C_TANULASIPROBLEMAVALKUZDDISZL ='T', 'Diszlexia ', '') AS BTMOkmanyszamok
FROM #Student s
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = s.TanuloId
WHERE Tanulo.C_BTMPROBLEMAS = 'T'
--Tanuló felmentései
SELECT
TanuloId
,TanuloCsoportId
,TantargyNevMentessegNelkul
,MentessegOka
,dbo.fnGetDokumentumDatumFormatum(Kezdete)
FROM fnGetDokumentumTanuloMentessegei(@tanevId, @osztalyId, @nyomtatvanyNyelvEnum)
--Tanuló kzösségi szolgálat feljegzései
SELECT
s.TanuloId AS TanuloId
,s.TanuloCsoportId AS TanuloCsoportId
,te.C_TARTALOM AS Bejegyzes
,d.C_NAME AS Tipus_DNAME
,dbo.fnGetDokumentumDatumFormatum(te.C_ROGZITESDATUMA) AS Datum
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN #Student s ON s.TanuloId = tte.C_TANULOID
INNER JOIN T_TANULOESEMENY_OSSZES te on te.ID = tte.C_TANULOESEMENYID AND te.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = te.C_TIPUS AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F'
WHERE te.TOROLT = 'F' AND te.C_TIPUS = 1546
SELECT
Tanulok.TanuloId TanuloId
,Tanulok.TanuloCsoportId TanuloCsoportId
,C_TELJESITETT isTeljesitett
,Osztalyzat.C_VALUE Ertekeles
,'[' + C_MEGJEGYZES + ']' Megjegyzes
,dbo.fnGetDokumentumDatumFormatum(OsszefuggoSzakGyak.C_TELJESITESDATUM) Datum
FROM #Student Tanulok
INNER JOIN T_OSSZEFUGGOSZAKGYAK_OSSZES OsszefuggoSzakGyak ON OsszefuggoSzakGyak.C_TANULOID = Tanulok.TanuloId AND OsszefuggoSzakGyak.TOROLT = 'F' AND OsszefuggoSzakGyak.C_TANEVID = @tanevid
LEFT JOIN T_TANULOERTEKELES_OSSZES Ertekeles ON Ertekeles.C_OSSZEFUGGOSZAKGYAKID = OsszefuggoSzakGyak.ID AND Ertekeles.TOROLT = 'F' AND Ertekeles.C_TANEVID = @tanevid
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Osztalyzat ON Osztalyzat.ID = Ertekeles.C_ERTEKELESOSZTALYZATID AND Osztalyzat.C_TANEVID = Ertekeles.C_TANEVID AND Osztalyzat.C_INTEZMENYID = Ertekeles.C_INTEZMENYID
WHERE Tanulok.BelepesDatum <= OsszefuggoSzakGyak.C_TELJESITESDATUM
AND (Tanulok.KilepesDatum >= OsszefuggoSzakGyak.C_TELJESITESDATUM OR Tanulok.KilepesDatum IS NULL)
END
GO