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,233 @@

IF OBJECT_ID('sp_GetDokumentumMulasztasok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetDokumentumMulasztasok
END
GO
-- ===========================================================================
-- Description: Dokumentumokban használt mulasztás összesítő osztály alapján
-- ===========================================================================
CREATE PROCEDURE [dbo].[sp_GetDokumentumMulasztasok]
@osztalyId INT
,@tanevId INT
,@elmeletGyakorlat BIT = 0
,@kesesTipus INT = 1499
,@elmeletiOraPercben INT = 45
,@gyakorlatiOraPercben INT = 60
,@ertekelesTipus INT
,@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Tanulok table (
tanuloId int PRIMARY KEY
);
INSERT INTO @Tanulok
SELECT TanuloId
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
DECLARE @Idoszak INT
DECLARE @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 1523 THEN 1404 --III. negyedévi
END
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
,m.Igazolt
,m.Igazolatlan
,m.ElmeletIgazolt
,m.ElmeletIgazolatlan
,m.GyakorlatiIgazolt
,m.GyakorlatiIgazolatlan
,m.ElmeletOsszes
,m.GyakorlatOsszes
,m.Osszes
FROM @Tanulok t
LEFT JOIN (
SELECT DISTINCT
m.tanuloId
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) Igazolt
,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Igazolatlan
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) ElmeletIgazolt
,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletIgazolatlan
,ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) GyakorlatiIgazolt
,ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatiIgazolatlan
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0)
+ ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletOsszes
,ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatOsszes
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Osszes
FROM (
SELECT
tanuloId,
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati],
[kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
[kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
FROM (
SELECT
x.tanuloId
,CASE mulasztasTipus WHEN 1500 THEN 'Hianyzas' WHEN 1499 THEN 'Keses' END +
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = '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
m.C_ORATANULOIID AS tanuloId
,m.C_TIPUS mulasztasTipus
,m.C_IGAZOLT isIgazolt
,IIF(cs.ID IS NULL, 'T', 'F') AS isTanorai
,IIF(t.C_GYAKORLATI='T', 'T', 'F') as isGyakorlati
,COUNT(1) AS cnt
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
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 <= @IdoszakVege
AND m.C_TANEVID = @tanevId
AND m.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 m.C_TIPUS IN (1500 ,1499)
GROUP BY m.C_ORATANULOIID, m.C_TIPUS, m.C_IGAZOLT, IIF(cs.ID IS NULL, 'T', 'F'), t.C_GYAKORLATI
) x
) p
PIVOT (
MAX(cnt)
FOR piv IN (
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati],
[kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
[kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
)
) AS pvt
) m
LEFT JOIN (
SELECT
tanuloId
,[kesesIgazolandoTanoraiPerc]
,[kesesIgazoltTanoraiPerc]
,[kesesIgazolatlanTanoraiPerc]
FROM (
SELECT
x.tanuloId
,'Keses' +
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
'TanoraiPerc' AS piv
,kesesPercben
FROM (
SELECT
m.C_ORATANULOIID AS tanuloId
,m.C_IGAZOLT isIgazolt
,SUM(m.C_KESESPERCBEN) AS kesesPercben
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.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 <= @IdoszakVege
AND m.C_TANEVID = @tanevId
AND m.Torolt ='F'
AND tn.Torolt ='F'
AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
AND m.C_TIPUS = 1499
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)
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT
) x
) p
PIVOT (
MAX(kesesPercben)
FOR piv IN
([kesesIgazolandoTanoraiPerc], [kesesIgazoltTanoraiPerc], [kesesIgazolatlanTanoraiPerc])
) AS pvt
) k ON k.tanuloId = m.tanuloId
LEFT JOIN (
SELECT
tanuloId
,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
,'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.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
m.C_ORATANULOIID AS tanuloId
,m.C_IGAZOLT isIgazolt
,t.C_GYAKORLATI AS isGyakorlati
,SUM(m.C_KESESPERCBEN) AS keses
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.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 m.C_TANEVID = @tanevId
AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
AND m.C_TIPUS = 1499
AND m.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)
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT, t.C_GYAKORLATI
) xx
GROUP BY tanuloId, xx.isIgazolt
) x
) p
PIVOT (
MAX(kesesOraban)
FOR piv IN (
kesesIgazolandoTanoraiPluszOra, kesesIgazoltTanoraiPluszOra, kesesIgazolatlanTanoraiPluszOra
)
) AS pvt
GROUP BY tanuloId
) kp ON m.tanuloId = kp.tanuloId
) m on m.tanuloId=t.tanuloId
END
GO

View file

@ -0,0 +1,271 @@
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]
@osztalyId INT,
@tanevId INT,
@ertekelesTipus INT,
@elmeletGyakorlat BIT = 0,
@kesesTipus INT = 1499,
@elmeletiOraPercben INT = 45,
@gyakorlatiOraPercben INT = 60,
@iskolaErdekuSzamit BIT,
@isKozossegiSzolgalat BIT,
@pTanuloIdXML XML = null
AS
BEGIN
SET NOCOUNT ON;
-- Fejléc
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime,
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,
(SELECT OFO.C_NYOMTATASINEV FROM T_OSZTALY_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES OFO
ON OFO.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID
WHERE T_OSZTALY_OSSZES.ID=@osztalyId
AND T_OSZTALY_OSSZES.TOROLT = 'F') OSZTALYFONOK,
(SELECT to2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES to2 WHERE ID = @osztalyId AND TOROLT = 'F') OSZTALYNEV,
GETDATE() Datum
FROM T_INTEZMENYADATOK_OSSZES
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 = @TanevId
-- TANULÓK
DECLARE @Tanulok TABLE (TANULOID INT, TANULONEV NVARCHAR(MAX), OKTATASIAZONOSITO NVARCHAR(MAX), TORZSLAPSZAM NVARCHAR(MAX), SZULHELY NVARCHAR(MAX), SZULIDO NVARCHAR(MAX), ANYJANEVE NVARCHAR(MAX))
DECLARE @ValasztottTanulok TABLE(Id int PRIMARY KEY)
IF @pTanuloIdXML IS NOT NULL BEGIN
INSERT INTO @ValasztottTanulok(Id)
SELECT Data FROM fnConvertXmlIntListToTable(@pTanuloIdXML, 'a', 'b')
INSERT INTO @Tanulok
SELECT
tanulok.TanuloId
,felhasznalo.C_NYOMTATASINEV
,felhasznalo.C_OKTATASIAZONOSITO
,felhasznalo.C_NYILVANTARTASISZAM
,felhasznalo.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)
,felhasznalo.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo on felhasznalo.Id=tanulok.TanuloId
INNER JOIN @ValasztottTanulok vt ON vt.Id = tanulok.TanuloId
SELECT * FROM @Tanulok ORDER BY TANULONEV
END
ELSE BEGIN
INSERT INTO @Tanulok
SELECT
tanulok.TanuloId
,felhasznalo.C_NYOMTATASINEV
,felhasznalo.C_OKTATASIAZONOSITO
,felhasznalo.C_NYILVANTARTASISZAM
,felhasznalo.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)
,felhasznalo.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo on felhasznalo.Id=tanulok.TanuloId
SELECT * FROM @Tanulok ORDER BY TANULONEV
END
-- ÉRTÉKELÉSEK
DECLARE @Ertekelesek TABLE (
TanuloId INT
,Targy NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,ErtekelesJegyzettel NVARCHAR(MAX)
,Oraszam INT
,RENDEZ INT
)
INSERT INTO @Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@ertekelesTipus = @ertekelesTipus
SELECT
TanuloTable.TanuloId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesJegyzettel
,Oraszam
,RENDEZ
,'' TanarNev
FROM
@Ertekelesek ertekeles
INNER JOIN @Tanulok TanuloTable ON TanuloTable.TanuloId = ertekeles.TanuloId
-- MULASZTÁSOK
DECLARE @Mulasztasok TABLE (
TanuloId 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 = @osztalyId,
@tanevId = @tanevId,
@elmeletGyakorlat = @elmeletGyakorlat,
@kesesTipus = @kesesTipus,
@elmeletiOraPercben = @elmeletiOraPercben,
@gyakorlatiOraPercben = @gyakorlatiOraPercben,
@ertekelesTipus = @ertekelesTipus,
@iskolaErdekuSzamit = @iskolaErdekuSzamit
SELECT
TanuloTable.TanuloId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM @Mulasztasok mulasztasok
INNER JOIN @Tanulok TanuloTable ON mulasztasok.TanuloId = TanuloTable.TanuloId
-- TANTÁRGYI MENTESSÉGEK
SELECT
TanuloTable.TanuloId TANULOID
,mentesseg.tantargyNev TARGYNEV
,'(' + ISNULL(IIF(mentesseg = '', '', LEFT(mentesseg, LEN(mentesseg)- 1)),' ') + ') ' + mentesseg.mentessegOka MENTESSEGOKA
FROM @Tanulok TanuloTable
INNER JOIN (SELECT DISTINCT
mentesseg.C_TANULOID tanuloId
, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev
, mentesseg.C_MENTESSEGOKA + ' ' + ISNULL('(' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ', '') + ISNULL(FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')', IIF(C_KEZDETE IS NULL, '', ')' )) mentessegOka
, IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
FROM T_TANULOMENTESSEG_OSSZES mentesseg
INNER JOIN T_TANTARGY_OSSZES t on t.ID=mentesseg.C_TANTARGYID
INNER JOIN @Tanulok Tanulok ON Tanulok.TanuloId = mentesseg.C_TANULOID
INNER JOIN @Tanulok vt ON Tanulok.TanuloId = vt.TanuloId
WHERE
mentesseg.TOROLT='F'
AND mentesseg.C_TANEVID=@tanevId
) mentesseg ON TanuloTable.TanuloId = mentesseg.TANULOID
DECLARE @EsemenyTipus INT
SET @EsemenyTipus = (SELECT
CASE
WHEN @ertekelesTipus = 1519 THEN 1547 --félévi
WHEN @ertekelesTipus = 1520 THEN 1548 --év végi
WHEN @ertekelesTipus = 1522 THEN 1549 --I. negyedévi
WHEN @ertekelesTipus = 1523 then 1551 --III. negyedévi
END
)
--Bejegyzések
DECLARE @FelevVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')
SELECT
TanuloTable.TanuloId
,'A félév során ' + CAST(SUM(Oraszam) AS NVARCHAR(MAX)) + ' óra közösségi szolgálatot teljesített.' Bejegyzes
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@tanevId, @osztalyId) bejegyzes
INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
WHERE
@isKozossegiSzolgalat = 1
AND Datum <= @FelevVege
GROUP BY TanuloTable.TanuloId
UNION
SELECT
bejegyzes.TanuloId TanuloId
,Tartalom Bejegyzes
FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bejegyzes
INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
WHERE
Tipusa IN (1546, @EsemenyTipus)
UNION
-- Határozatok
SELECT DISTINCT
C_TANULOID TanuloId
,tcs.C_ZARADEK Bejegyzes
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE
tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok)
AND TOROLT = 'F'
AND C_ZARADEK IS NOT NULL
AND LEN(C_ZARADEK) > 0
AND C_TANEVID = @tanevId
AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F')
AND @ertekelesTipus = 1520
UNION
SELECT DISTINCT
C_TANULOID TanuloId
,tcs.C_VEGZARADEK Bejegyzes
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE
tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok)
AND TOROLT = 'F'
AND C_VEGZARADEK IS NOT NULL
AND LEN(C_VEGZARADEK) > 0
AND C_TANEVID = @tanevId
AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F')
AND @ertekelesTipus = 1520
--TANULÓ elérhetőségei
SELECT DISTINCT
tanulo.TanuloId tanuloID
,Gondviselo.C_NEV + IIF(Gondviselo.C_ISTORVENYESKEPVISELO = 'T', ' (törvényes)', '') GondviseloNeve
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM CimText
,cimTipus.C_NAME CimTipusa
FROM T_GONDVISELO_OSSZES Gondviselo
INNER JOIN @Tanulok TanuloTable ON Gondviselo.C_TANULOID = TanuloTable.TanuloId
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'F') tanulo ON tanulo.TanuloId = Gondviselo.C_TANULOID
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 = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID
WHERE
cim.TOROLT = 'F'
AND cim.C_TANEVID = @tanevId
AND Gondviselo.TOROLT = 'F'
AND cim.C_GONDVISELOID IS NULL
--AND Gondviselo.C_ISTORVENYESKEPVISELO = 'T'
END
GO

View file

@ -0,0 +1,307 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTorzslap]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTorzslap]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTorzslap]
@osztalyId INT,
@tanevId INT,
@ertekelesTipus INT,
@kesesTipus INT,
@elmeletiOraPercben INT = 45,
@gyakorlatiOraPercben INT = 60,
@iskolaErdekuSzamit BIT,
@isNemet BIT
AS
BEGIN
SET NOCOUNT ON;
--Osztályhoz tartozó tanulók
DECLARE @NaploSorszam TABLE (
TanuloId INT
,Sorszam INT
)
INSERT INTO @NaploSorszam
EXEC sp_GetDokumentumTanuloNaploSorszam
@osztalyId = @osztalyId
DECLARE @Tanulok TABLE (TanuloId int, KilepesDatum DATE, NaploSorszam INT)
INSERT INTO @Tanulok
SELECT
t.TanuloId
,KilepesDatum
,n.Sorszam
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') t
INNER JOIN @NaploSorszam n ON n.TanuloId = t.TanuloId
--Intézmény, tanév
SELECT DISTINCT
ocs.C_NEV OsztalyNev
,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
,o.C_OSZTALYFONOKID PartnerID
,IIF(@isNemet = 0, ofo.C_NYOMTATASINEV, ofo.C_UTONEV + ' ' + ofo.C_VEZETEKNEV) Osztalyfonok
,i.C_IGAZGATONEVE IntezmenyVezeto
,i.C_NEV IntezmenyNeve
,i.C_VAROS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
,i.C_OMKOD IntezmenyOMKod
,IIF(@isNemet = 0, dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOMEGNYITASA), FORMAT(o.C_OSZTALYNAPLOMEGNYITASA, 'dd. MM. yyyy')) NaploMegnyitasanakDatuma
,IIF(@isNemet = 0, dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOZARASA), FORMAT(o.C_OSZTALYNAPLOZARASA, 'dd. MM. yyyy')) NaploZarasanakDatuma
,tanev.C_NEV TANEV
,(SELECT COUNT(TanuloId) FROM @Tanulok) TanuloSzam
,(SELECT MIN(NaploSorszam) FROM @Tanulok) MinNaploSorszam
,(SELECT MAX(NaploSorszam) FROM @Tanulok) MaxNaploSorszam
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID and o.torolt='F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = @tanevId
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = i.C_TANEVID and tanev.TOROLT = 'F'
WHERE ocs.ID = @osztalyId
--Osztály, évfolyam
SELECT
T_OSZTALYCSOPORT_OSSZES.C_NEV,
EvfolyamTipusa.C_NAME C_EVFOLYAMTIPUSA_DNAME
FROM T_OSZTALYCSOPORT_OSSZES
INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA
WHERE
T_OSZTALYCSOPORT_OSSZES.ID = @osztalyId
AND EvfolyamTipusa.c_tanevid = @tanevId
--Tanuló adatok
SELECT DISTINCT
felhasznalo.ID TanuloId,
felhasznalo.Azonosito,
IIF(@isNemet = 0, felhasznalo.Nev, felhasznalo.Elotag + ' ' + felhasznalo.VezetekNev) Nev,
IIF(@isNemet = 0, dbo.fnGetDokumentumDatumFormatum(felhasznalo.SzuletesiDatum), FORMAT(felhasznalo.SzuletesiDatum, 'dd. MM. yyyy')) SzuletesiDatum,
felhasznalo.SzuletesiHely,
IIF(@isNemet = 0, allampolgarsag.C_NAME, dbo.fnGetDokumentumNemet(felhasznalo.Allampolgarsag)) Allampolgarsag,
felhasznalo.Anyjaneve,
IIF(@isNemet = 0, szorszag.C_NAME, dbo.fnGetDokumentumNemet(felhasznalo.SzuletesiOrszag)) SzuletesiOrszag,
felhasznalo.TorzslapSzam,
gondviselo.Gondviselok GondviseloNeve,
naploSorszam.Sorszam NaploSorszam,
dbo.fnGetDokumentumDatumFormatum(felhasznalo.KilepesDatum) KilepesDatum,
felhasznalo.Nev Nev2,
Tanulo.C_SAJATOSNEVELESU SajatosNevelesu
INTO #TanuloAdatok
FROM
(
SELECT
T_FELHASZNALO_OSSZES.ID AS ID,
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO Azonosito,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV Nev,
T_FELHASZNALO_OSSZES.C_VEZETEKNEV VezetekNev,
T_FELHASZNALO_OSSZES.C_UTONEV Elotag,
T_FELHASZNALO_OSSZES.C_SZULETESIDATUM SzuletesiDatum,
T_FELHASZNALO_OSSZES.C_SZULETESIHELY SzuletesiHely,
T_FELHASZNALO_OSSZES.C_SZULETESIORSZAG SzuletesiOrszag,
T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA Allampolgarsag,
IIF(@isNemet = 0, T_FELHASZNALO_OSSZES.C_ANYJANEVE, LTRIM(SUBSTRING(C_ANYJANEVE, C_ANYJANEVEELVALASZTO + 1 , LEN(C_ANYJANEVE)-C_ANYJANEVEELVALASZTO)) + ' ' + LTRIM(SUBSTRING(C_ANYJANEVE, 0, C_ANYJANEVEELVALASZTO + 1))) Anyjaneve,
T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM TorzslapSzam,
TANCSOPORT.KilepesDatum
FROM T_FELHASZNALO_OSSZES
INNER JOIN @Tanulok TANCSOPORT
ON TANCSOPORT.TanuloId = T_FELHASZNALO_OSSZES.ID
WHERE
T_FELHASZNALO_OSSZES.C_TANEVID = @tanevId
) felhasznalo
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = felhasznalo.Id
INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.Allampolgarsag
INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.SzuletesiOrszag
LEFT JOIN
(
SELECT DISTINCT
g.C_TANULOID TanuloId
,STUFF((SELECT C_NEV + IIF(@isNemet = 0, ' (' + d.C_NAME +')', '') + CHAR(13) + CHAR(10)
FROM T_GONDVISELO_OSSZES bg
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.ID = bg.C_ROKONSAGFOKA AND d.C_TANEVID = bg.C_TANEVID
WHERE
bg.C_TANULOID=g.C_TANULOID
AND bg.TOROLT = 'F'
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Gondviselok
FROM T_GONDVISELO_OSSZES g
) gondviselo on felhasznalo.ID = gondviselo.TanuloId
LEFT JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId = felhasznalo.ID
ORDER BY felhasznalo.Nev
SELECT * FROM #TanuloAdatok ORDER BY NaploSorszam
--Határozat
SELECT DISTINCT
C_TANULOID TanuloId
,tcs.C_ZARADEK Bejegyzes
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE
tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok)
AND TOROLT = 'F'
AND C_ZARADEK IS NOT NULL
AND LEN(C_ZARADEK) > 0
AND C_TANEVID = @tanevId
AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F')
UNION
SELECT DISTINCT
C_TANULOID TanuloId
,tcs.C_VEGZARADEK Bejegyzes
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE
tcs.C_TANULOID IN (SELECT TanuloId from @Tanulok)
AND TOROLT = 'F'
AND C_VEGZARADEK IS NOT NULL
AND LEN(C_VEGZARADEK) > 0
AND C_TANEVID = @tanevId
AND C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES WHERE TOROLT = 'F')
--Egyéb bejegyzések
SELECT
Tanuloid
,Bejegyzes
,Tipus_DNAME
FROM
(
SELECT
bejegyzes.TanuloId TanuloId
,Tartalom Bejegyzes
,C_NAME Tipus_DNAME
,dbo.fnGetDokumentumDatumFormatum(bejegyzes.Datum) Datum
FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bejegyzes
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND C_TANEVID = @tanevId AND d.TOROLT = 'F'
WHERE
Tipusa IN (1539, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 5477, 5478, 5478, 5479, 5481, 5480)
UNION
SELECT
s.TanuloId tanuloId
, mentesseg.mentessegOka
, ISNULL(IIF(mentesseg = '', '', LEFT(mentesseg, LEN(mentesseg)- 1)),' ') + ' (' + mentesseg.tantargyNev +')'
, dbo.fnGetDokumentumDatumFormatum(C_KEZDETE)
FROM @Tanulok s
INNER JOIN (SELECT DISTINCT
mentesseg.C_TANULOID tanuloId
, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev
, mentesseg.C_MENTESSEGOKA + ' ' + ISNULL('(' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')', '' ) mentessegOka
, IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
, mentesseg.C_KEZDETE
FROM T_TANULOMENTESSEG_OSSZES mentesseg
INNER JOIN T_TANTARGY_OSSZES t on t.ID = mentesseg.C_TANTARGYID
INNER JOIN @Tanulok s ON s.TanuloId = mentesseg.C_TANULOID
WHERE
mentesseg.TOROLT='F'
AND mentesseg.C_TANEVID = @tanevId
) mentesseg ON s.TanuloId=mentesseg.TANULOID
)a
ORDER BY Datum
-- MULASZTÁSOK
DECLARE @Mulasztasok TABLE (
TanuloId 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 = @osztalyId,
@tanevId = @tanevId,
@elmeletGyakorlat = 0,
@kesesTipus = @kesesTipus,
@elmeletiOraPercben = @elmeletiOraPercben,
@gyakorlatiOraPercben = @gyakorlatiOraPercben,
@ertekelesTipus = @ertekelesTipus,
@iskolaErdekuSzamit = @iskolaErdekuSzamit
SELECT
TanuloTable.TanuloId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM @Mulasztasok mulasztasok
INNER JOIN @Tanulok TanuloTable ON mulasztasok.TanuloId = TanuloTable.TanuloId
-- ÉRTÉKELÉSEK
DECLARE @Ertekelesek TABLE (
TanuloId INT
,Targy NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,ErtekelesJegyzettel NVARCHAR(MAX)
,Oraszam INT
,RENDEZ INT
)
INSERT INTO @Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@ertekelesTipus =@ertekelesTipus,
@isNemet = @isNemet
SELECT
TanuloId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesJegyzettel
,Oraszam
,RENDEZ
FROM
@Ertekelesek
--Tanuló lista
SELECT
Nev
,NaploSorszam
,TorzslapSzam
,KilepesDatum
FROM #TanuloAdatok
/*WHERE
KilepesDatum IS NULL OR KilepesDatum >= ISNULL((SELECT C_OSZTALYNAPLOZARASA FROM T_OSZTALY_OSSZES WHERE ID = @osztalyId), GETDATE())*/
ORDER BY NaploSorszam
--Közösségi szolgálat
SELECT
TanuloId
,dbo.fnGetDokumentumDatumFormatum(Datum) Datum
,ISNULL(' - ' + Megjegyzes, '') Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId)
ORDER BY Datum
SELECT
TanuloId
FROM #TanuloAdatok
WHERE
SajatosNevelesu = 'T'
DROP TABLE #TanuloAdatok
END
GO