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,462 @@
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
,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,
@elmeletGyakorlat = @pElmeletGyakorlat,
@kesesTipus = @pKesesTipus,
@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
--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)
UNION
-- Határozatok
SELECT
Hatarozatok.TanuloId
,Hatarozatok.TanuloCsoportId
,Bejegyzes Zaradek
FROM fnGetDokumentumTanuloZaradekai(@pOsztalyId, @pTanevId) Hatarozatok
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = Hatarozatok.TanuloId AND Tanulok.TanuloCsoportId = Hatarozatok.TanuloCsoportId
WHERE
@pErtekelesTipus = 1520
--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
END
GO

View file

@ -0,0 +1,316 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('uspGetIktatottDokumentum') IS NOT NULL
BEGIN
DROP PROCEDURE uspGetIktatottDokumentum
END
GO
CREATE PROCEDURE dbo.uspGetIktatottDokumentum
@pTanevId INT,
@pIntezmenyId INT,
@pKategoriaId INT = NULL,
@pDokumentumTipus INT = NULL,
@pDokumentumNeve NVARCHAR(256) = NULL,
@pFeladatEllatasiHely INT = NULL,
@pIktatoSzam NVARCHAR(50) = NULL,
@pIktatasKezdete DATETIME = NULL,
@pIktatasVege DATETIME = NULL,
@pOsztalyId INT = NULL,
@pEvfolyamId INT = NULL,
@pKepzesTipusId INT = NULL,
@pOsztalyFonokId INT = NULL ,
@pTantervId INT = NULL,
@pOsztalyjellemzoId INT = NULL,
@pSzakcsoportId INT = NULL,
@pAgazatId INT = NULL,
@pSzakkepesitesId INT = NULL,
@pReszszakkepesitesId INT = NULL,
@pCsoportnevId INT = NULL,
@pCsoporttipusId INT = NULL,
@pCsoportjellemzoId INT = NULL,
@pTanuloNeve NVARCHAR(50) = NULL,
@pAlkalmazottId INT = NULL,
@pTanuloOktAzon NVARCHAR(20) = NULL,
@pAlkalmazottOktAzon NVARCHAR(20) = NULL,
@pGondviseloNeve NVARCHAR(50) = NULL,
@pIktatoSzemely NVARCHAR(50) = NULL,
@pDokumentumStatusz INT = NULL,
@pFoszamosDokumentumId INT = NULL,
@pOrderBy NVARCHAR(256) = NULL,
@pFirstRow INT = NULL,
@pLastRow INT = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @whereCondition NVARCHAR(MAX) = ''
DECLARE @sql NVARCHAR(MAX);
DECLARE @paramDefinition NVARCHAR(MAX)
SET @sql = N'SELECT * INTO #tmpIktDok
FROM (
SELECT * FROM fnGetIktatottDokumentumok(@tanevId,@intezmenyId)'
IF @pKategoriaId IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'Kategoria = @kategoriaId')
END
IF @pDokumentumTipus IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'DokumentumTipus = @dokumentumTipus')
END
IF @pDokumentumNeve IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'DokumentumNeve LIKE ''%'' + @dokumentumNeve + ''%''')
END
IF @pFeladatEllatasiHely IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'FeladatellatasihelyId = @feladatEllatasiHely')
END
IF @pIktatoSzam IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'Iktatoszam LIKE ''%'' + @iktatoSzam + ''%''')
END
IF @pIktatasKezdete IS NOT NULL AND @pIktatasVege IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'IktatasDatuma BETWEEN @iktatasKezdete AND @iktatasVege')
END
IF @pIktatoSzemely IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'IktatoSzemelye LIKE ''%'' + @iktatoSzemely + ''%''')
END
IF @pDokumentumStatusz IS NOT NULL BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', N' WHERE ', N' AND '), N'Statusz = @dokumentumStatusz')
END
SET @sql += CONCAT(@whereCondition, ') data;')
SET @whereCondition = ''
declare @nct int = 0
set @nct = case when @pOsztalyId IS NOT NULL then 1 else 0 END+
case when @pEvfolyamId IS NOT NULL then 1 else 0 END+
case when @pKepzesTipusId IS NOT NULL then 1 else 0 END+
case when @pOsztalyFonokId IS NOT NULL then 1 else 0 END+
case when @pTantervId IS NOT NULL then 1 else 0 END+
case when @pOsztalyjellemzoId IS NOT NULL then 1 else 0 END+
case when @pSzakcsoportId IS NOT NULL then 1 else 0 END+
case when @pAgazatId IS NOT NULL then 1 else 0 END+
case when @pSzakkepesitesId IS NOT NULL then 1 else 0 END+
case when @pReszszakkepesitesId IS NOT NULL then 1 else 0 END+
case when @pCsoportnevId IS NOT NULL then 1 else 0 END+
case when @pCsoporttipusId IS NOT NULL then 1 else 0 END+
case when @pCsoportjellemzoId IS NOT NULL then 1 else 0 END+
case when @pTanuloNeve IS NOT NULL then 1 else 0 END+
case when @pAlkalmazottId IS NOT NULL then 1 else 0 END+
case when @pTanuloOktAzon IS NOT NULL then 1 else 0 END+
case when @pAlkalmazottOktAzon IS NOT NULL then 1 else 0 END+
case when @pGondviseloNeve IS NOT NULL then 1 else 0 END
SET @sql += N'
SELECT * INTO #selIktDok FROM (
SELECT #tmpIktDok.* FROM #tmpIktDok'
IF @nct > 0 BEGIN
SET @sql += ' LEFT JOIN (
SELECT COUNT(datadarab.C_IKTATOTTDOKUMENTUMID) AS darab, datadarab.C_IKTATOTTDOKUMENTUMID FROM (
SELECT dksz.C_DOKUMENTUMKULCSSZOTIPUS, dksz.C_IKTATOTTDOKUMENTUMID FROM T_DOKUMENTUMKULCSSZOERTEK_OSSZES AS dksze
INNER JOIN T_DOKUMENTUMKULCSSZO_OSSZES AS dksz ON dksz.C_DOKUMENTUMKULCSSZOERTEKID = dksze.ID
WHERE dksz.C_IKTATOTTDOKUMENTUMID IN (SELECT ID FROM #tmpIktDok)
AND
('
IF (@pOsztalyId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7399 AND dksze.C_ERTEK = CAST(@osztalyId as nvarchar))')
END
IF (@pEvfolyamId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7400 AND dksze.C_ERTEK = CAST(@evfolyamId as nvarchar))')
END
IF (@pKepzesTipusId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7402 AND dksze.C_ERTEK = CAST(@kepzesTipusId as nvarchar))')
END
IF (@pOsztalyFonokId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7403 AND dksze.C_ERTEK = CAST(@osztalyFonokId as nvarchar))')
END
IF (@pTantervId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7404 AND dksze.C_ERTEK = CAST(@tantervId as nvarchar))')
END
IF (@pOsztalyjellemzoId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7405 AND dksze.C_ERTEK = CAST(@osztalyjellemzoId as nvarchar))')
END
IF (@pSzakcsoportId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7406 AND dksze.C_ERTEK = CAST(@szakcsoportId as nvarchar))')
END
IF (@pAgazatId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7407 AND dksze.C_ERTEK = CAST(@agazatId as nvarchar))')
END
IF (@pSzakkepesitesId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7408 AND dksze.C_ERTEK = CAST(@szakkepesitesId as nvarchar))')
END
IF (@pReszszakkepesitesId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7409 AND dksze.C_ERTEK = CAST(@reszszakkepesitesId as nvarchar))')
END
IF (@pCsoportnevId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7410 AND dksze.C_ERTEK = CAST(@csoportnevId as nvarchar))')
END
IF (@pCsoporttipusId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7411 AND dksze.C_ERTEK = CAST(@csoporttipusId as nvarchar))')
END
IF (@pCsoportjellemzoId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7413 AND dksze.C_ERTEK = CAST(@csoportjellemzoId as nvarchar))')
END
IF (@pTanuloNeve IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7414 AND dksze.C_ERTEK LIKE ''%'' + @tanuloNeve + ''%'')')
END
IF (@pAlkalmazottId IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7415 AND dksze.C_ERTEK = CAST(@alkalmazottId as nvarchar))')
END
IF (@pTanuloOktAzon IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7417 AND dksze.C_ERTEK LIKE ''%'' + @tanuloOktAzon + ''%'')')
END
IF (@pAlkalmazottOktAzon IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7418 AND dksze.C_ERTEK LIKE ''%'' + @alkalmazottOktAzon + ''%'')')
END
IF (@pGondviseloNeve IS NOT NULL)
BEGIN
SET @whereCondition += CONCAT(IIF(@whereCondition = '', '', N' OR '), N'(dksz.C_DOKUMENTUMKULCSSZOTIPUS = 7416 AND dksze.C_ERTEK LIKE ''%'' + @gondviseloNeve + ''%'')')
END
SET @sql += @whereCondition
SET @sql += N')
GROUP BY dksz.C_IKTATOTTDOKUMENTUMID, dksz.C_DOKUMENTUMKULCSSZOTIPUS
) datadarab
GROUP BY datadarab.C_IKTATOTTDOKUMENTUMID
) darabok ON #tmpIktDok.ID = darabok.C_IKTATOTTDOKUMENTUMID
WHERE darabok.darab = @cnt'
END
SET @sql += ') AS sel';
IF @pFoszamosDokumentumId IS NULL BEGIN
SET @sql += N'
SELECT a.* INTO #alszamos FROM #selIktDok AS a
INNER JOIN (
SELECT FoszamosDokumentumId, MAX(IktatasDatuma) AS datum
FROM #selIktDok
GROUP BY FoszamosDokumentumId
) b ON a.FoszamosDokumentumId = b.FoszamosDokumentumId AND a.IktatasDatuma = b.datum
WHERE a.FoszamosDokumentumId IS NOT NULL
SELECT a.* INTO #resultIktDok FROM #selIktDok AS a
WHERE a.FoszamosDokumentumId IS NULL AND a.ID NOT IN (SELECT FoszamosDokumentumId FROM #alszamos)
INSERT INTO #resultIktDok
SELECT * FROM #alszamos
DROP TABLE #alszamos;'
END
ELSE BEGIN
SET @sql += N'
SELECT * INTO #resultIktDok FROM #selIktDok
WHERE ID != @foszamosDokumentumId
AND FoszamosDokumentumId = (SELECT FoszamosDokumentumId FROM #selIktDok WHERE ID = @foszamosDokumentumId)
INSERT INTO #resultIktDok SELECT * FROM #selIktDok
WHERE ID = (SELECT FoszamosDokumentumId FROM #selIktDok WHERE ID = @foszamosDokumentumId)'
END
SET @sql += CONCAT(N'
SELECT COUNT(#resultIktDok.ID) FROM #resultIktDok;',
IIF(@pFirstRow IS NULL AND @pLastRow IS NULL,
CONCAT(N'
SELECT * FROM #resultIktDok', IIF(@pOrderBy IS NOT NULL, CONCAT(' ORDER BY ', @pOrderBy), '')
),
CONCAT(N'
SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY ', IIF(@pOrderBy IS NULL, '(SELECT 0)', @pOrderBy) ,') AS rnum, #resultIktDok.* FROM #resultIktDok
) qqq
WHERE qqq.rnum BETWEEN @firstRow AND @lastRow')), N'
DROP TABLE #resultIktDok;
DROP TABLE #tmpIktDok;
DROP TABLE #selIktDok;');
--PRINT @sql
SET @paramDefinition = N'@tanevId INT,
@intezmenyId INT,
@kategoriaId INT,
@dokumentumTipus INT,
@dokumentumNeve NVARCHAR(256),
@feladatEllatasiHely INT,
@iktatoSzam NVARCHAR(50),
@iktatasKezdete DATETIME,
@iktatasVege DATETIME,
@osztalyId INT,
@evfolyamId INT,
@kepzesTipusId INT,
@osztalyFonokId INT ,
@tantervId INT,
@osztalyjellemzoId INT,
@szakcsoportId INT,
@agazatId INT,
@szakkepesitesId INT,
@reszszakkepesitesId INT,
@csoportnevId INT,
@csoporttipusId INT,
@csoportjellemzoId INT,
@tanuloNeve NVARCHAR(50),
@alkalmazottId INT,
@tanuloOktAzon NVARCHAR(20),
@alkalmazottOktAzon NVARCHAR(20),
@gondviseloNeve NVARCHAR(50),
@iktatoSzemely NVARCHAR(50),
@dokumentumStatusz INT,
@foszamosDokumentumId INT,
@orderBy NVARCHAR(256),
@firstRow INT,
@lastRow INT,
@cnt INT'
EXEC sp_executesql @sql, @paramDefinition,
@tanevId = @pTanevId,
@intezmenyId = @pIntezmenyId,
@kategoriaId = @pKategoriaId,
@dokumentumTipus = @pDokumentumTipus,
@dokumentumNeve = @pDokumentumNeve,
@feladatEllatasiHely = @pFeladatEllatasiHely,
@iktatoSzam = @pIktatoSzam,
@iktatasKezdete = @pIktatasKezdete,
@iktatasVege = @pIktatasVege,
@osztalyId = @pOsztalyId,
@evfolyamId = @pEvfolyamId,
@kepzesTipusId = @pKepzesTipusId,
@osztalyFonokId = @pOsztalyFonokId,
@tantervId = @pTantervId,
@osztalyjellemzoId = @pOsztalyjellemzoId,
@szakcsoportId = @pSzakcsoportId,
@agazatId = @pAgazatId,
@szakkepesitesId = @pSzakkepesitesId,
@reszszakkepesitesId = @pReszszakkepesitesId,
@csoportnevId = @pCsoportnevId,
@csoporttipusId = @pCsoporttipusId,
@csoportjellemzoId = @pCsoportjellemzoId,
@tanuloNeve = @pTanuloNeve,
@alkalmazottId = @pAlkalmazottId,
@tanuloOktAzon = @pTanuloOktAzon,
@alkalmazottOktAzon = @pAlkalmazottOktAzon,
@gondviseloNeve = @pGondviseloNeve,
@iktatoSzemely = @pIktatoSzemely,
@dokumentumStatusz = @pDokumentumStatusz,
@foszamosDokumentumId = @pFoszamosDokumentumId,
@orderBy = @pOrderBy,
@firstRow = @pFirstRow,
@lastRow = @pLastRow,
@cnt = @nct
END
GO