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,460 @@
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,
@kiiratkozottTanulokMegjelenitese BIT = 1
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
WHERE @kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum > @IdoszakVege)
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