326 lines
No EOL
11 KiB
Transact-SQL
326 lines
No EOL
11 KiB
Transact-SQL
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 [dbo].[sp_GetErtesitesAltEsMulAdatok]
|
|
@pOsztalyId INT,
|
|
@pTanevId INT,
|
|
@pTankoteles BIT,
|
|
@pIskolaErdekuSzamit BIT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
--Mulasztasok
|
|
DECLARE @Mulasztasok TABLE (
|
|
TanuloId INT
|
|
,Igazolt INT
|
|
,Igazolatlan INT
|
|
,ElmeletIgazolt INT
|
|
,ElmeletIgazolatlan INT
|
|
,GyakorlatIgazolt INT
|
|
,GyakorlatIgazolatlan INT
|
|
,Osszes INT
|
|
)
|
|
|
|
INSERT INTO @Mulasztasok
|
|
EXEC sp_GetDokumentumMulasztasok
|
|
@osztalyID = @pOsztalyId,
|
|
@tanevId = @pTanevId,
|
|
@elmeletGyakorlat = 0,
|
|
@kesesTipus = 1499,
|
|
@elmeletiOraPercben = 45,
|
|
@gyakorlatiOraPercben = 60,
|
|
@ertekelesTipus = 1520, --évvégi
|
|
@iskolaErdekuSzamit = @pIskolaErdekuSzamit
|
|
|
|
CREATE TABLE #students (ID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE)
|
|
INSERT INTO #students
|
|
SELECT
|
|
t.TanuloId
|
|
,BelepesDatum
|
|
,ISNULL(KilepesDatum, GETDATE())
|
|
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') t
|
|
|
|
DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT)
|
|
INSERT INTO @Gondviselok
|
|
SELECT
|
|
TanuloId
|
|
,gondviselo.Id
|
|
FROM T_GONDVISELO_OSSZES gondviselo
|
|
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo ON tanulo.TanuloId = gondviselo.C_TANULOID AND gondviselo.TOROLT = 'F'
|
|
|
|
DECLARE @CimTableTemp TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), CimTipus INT, GondviseloId INT)
|
|
INSERT INTO @CimTableTemp
|
|
SELECT
|
|
TanuloId
|
|
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
|
|
,C_CIMTIPUSA
|
|
,C_GONDVISELOID
|
|
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
|
|
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
|
|
WHERE
|
|
cim.TOROLT = 'F'
|
|
AND cim.C_TANEVID = @pTanevId
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
TanuloId
|
|
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
|
|
,C_CIMTIPUSA
|
|
,GondviseloId
|
|
FROM @Gondviselok gonviselo
|
|
INNER JOIN T_CIM_OSSZES cim ON cim.C_GONDVISELOID = GondviseloId
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
|
|
WHERE
|
|
cim.TOROLT = 'F'
|
|
AND cim.C_TANEVID = @pTanevId
|
|
|
|
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
|
|
INSERT INTO @TanuloCimTable
|
|
SELECT DISTINCT
|
|
FelhasznaloId
|
|
,STUFF((
|
|
SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
|
FROM @CimTableTemp btemp
|
|
WHERE
|
|
temp.FelhasznaloId = btemp.FelhasznaloId
|
|
AND temp.CimTipus = btemp.CimTipus
|
|
AND GondviseloId IS NULL
|
|
FOR XML PATH(''), TYPE)
|
|
.value('.','NVARCHAR(MAX)'),1,0,'')
|
|
,CimTipus
|
|
FROM @CimTableTemp temp
|
|
WHERE
|
|
GondviseloId IS NULL
|
|
|
|
DECLARE @GondViseloCimTable TABLE (FelhasznaloId INT, GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
|
|
INSERT INTO @GondViseloCimTable
|
|
SELECT DISTINCT
|
|
FelhasznaloId
|
|
,GondviseloId
|
|
,STUFF((
|
|
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
|
FROM @CimTableTemp btemp
|
|
WHERE
|
|
temp.GondviseloId = btemp.GondviseloId
|
|
AND temp.CimTipus = btemp.CimTipus
|
|
AND GondviseloId IS NOT NULL
|
|
FOR XML PATH(''), TYPE)
|
|
.value('.','NVARCHAR(MAX)'),1,0,'')
|
|
,CimTipus
|
|
FROM @CimTableTemp temp
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus
|
|
WHERE
|
|
GondviseloId IS NOT NULL
|
|
AND CimTipus = 907
|
|
|
|
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
|
|
,GondviseloAdatok.C_NEV GondviseloNev
|
|
,Cim GondviseloAllandoCim
|
|
,Telefon GondviseloTelefon
|
|
,RokonsagiFok.C_NAME GondviseloRokonsagiFoka
|
|
INTO #GondviseloAdatok
|
|
FROM @Gondviselok Gondviselok
|
|
INNER JOIN T_GONDVISELO_OSSZES GondviseloAdatok ON GondviseloAdatok.Id = Gondviselok.GondviseloId
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.Id = GondviseloAdatok.C_ROKONSAGFOKA 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 DISTINCT
|
|
TanuloAdatok.ID
|
|
,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
|
|
,OsztalyCsoport.C_NEV OSZTALYCSOPORT_NEV
|
|
,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV
|
|
,ISNULL(Mulasztas.Igazolt,0) IGAZOLT
|
|
,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN
|
|
,GondviseloAdatok.GondviseloNev
|
|
,GondviseloAdatok.GondviseloAllandoCim
|
|
,GondviseloAdatok.GondviseloTelefon
|
|
,GondviseloRokonsagiFoka
|
|
,TanuloAllandoCimTable.CIM TanuloAllandoCim
|
|
,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim
|
|
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
|
|
INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = TanuloCsoport.C_TANULOID AND TanuloAdatok.TOROLT = 'F'
|
|
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F'
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND OsztalyCsoport.TOROLT = 'F'
|
|
INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloCsoport.C_TANEVID
|
|
AND IntezmenyAdatok.TOROLT = 'F'
|
|
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = OsztalyCsoport.ID 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
|
|
LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = TanuloCsoport.C_TANULOID
|
|
LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = TanuloCsoport.C_TANULOID AND TanuloAllandoCimTable.Cimtipusa = 907
|
|
LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = TanuloCsoport.C_TANULOID AND TanuloTartozkodasiCimTable.Cimtipusa = 908
|
|
WHERE
|
|
TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyId
|
|
AND TanuloCsoport.C_TANULOID IN (SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F'))
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
AND Tanulo.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T')
|
|
AND TanuloCsoport.C_TANEVID = @pTanevId
|
|
ORDER BY TanuloAdatok.C_NYOMTATASINEV
|
|
|
|
|
|
--Mulasztások részletezése
|
|
SELECT
|
|
Mulasztasok.TanuloId
|
|
,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) Mulasztasok
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa AND MulasztasTipus.C_TANEVID = @pTanevId
|
|
WHERE
|
|
Igazolt = 'F'
|
|
|
|
DROP TABLE #GondviseloAdatok
|
|
|
|
END
|
|
|
|
GO |