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,124 @@
-- =============================================
-- Description: <Elõszedjük a tanuló alap adatait>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloiAlapadatok]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloiAlapadatok]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanuloiAlapadatok]
@pTanuloId INT
,@pTanevId INT
,@pIntezmenyId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
--Tanuló aktuális osztályának ID-je
DECLARE @osztalyId INT
SELECT TOP 1
@osztalyId = OsztalyCsoport.ID
FROM
T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN
T_OSZTALY_OSSZES Osztaly ON
TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
INNER JOIN
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
OsztalyCsoport.ID = Osztaly.ID
WHERE
C_TANULOID = @pTanuloId
AND TanuloCsoport.TOROLT = 'F'
ORDER BY
C_KILEPESDATUM
--NOTE: 0. tábla - Alapadatok
SELECT
Felhasznalo.C_OKTATASIAZONOSITO OktatasiAzonosito
,Felhasznalo.C_ANYJANEVE AnyjaNeve
,TanuloCsoport.C_TORZSLAPSZAM Torzslapszam
,TanuloCsoport.C_NAPLOSORSZAM Naplosorszam
FROM
T_TANULO_OSSZES Tanulo
INNER JOIN
T_FELHASZNALO_OSSZES Felhasznalo ON
Felhasznalo.ID = Tanulo.ID
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
INNER JOIN
T_TANULOCSOPORT_OSSZES TanuloCsoport ON
TanuloCsoport.C_TANULOID = Tanulo.ID
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND TanuloCsoport.C_INTEZMENYID = @pIntezmenyId
AND TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.TOROLT = 'F'
WHERE
Tanulo.ID = @pTanuloId
AND Tanulo.TOROLT = 'F'
--NOTE: 1. tábla - Címek
SELECT
Cim.C_IRANYITOSZAM + ', ' + --
Cim.C_VAROS + ', ' + --
Cim.C_KOZTERULET + ' ' + --
KozteruletJelleg.C_NAME + ' ' + --
ISNULL(Cim.C_HAZSZAM, '') CimText
,CimTipus.C_NAME CimTipus
,Cim.C_CIMTIPUSA CimTipusId
FROM
T_CIM_OSSZES Cim
INNER JOIN
T_DICTIONARYITEMBASE_OSSZES KozteruletJelleg ON
KozteruletJelleg.ID = Cim.C_KOZTERULETJELLEGE
AND KozteruletJelleg.C_INTEZMENYID = @pIntezmenyId
AND KozteruletJelleg.C_TANEVID = @pTanevId
AND KozteruletJelleg.TOROLT = 'F'
INNER JOIN
T_DICTIONARYITEMBASE_OSSZES CimTipus ON
CimTipus.ID = Cim.C_CIMTIPUSA
AND CimTipus.C_INTEZMENYID = @pIntezmenyId
AND CimTipus.C_TANEVID = @pTanevId
AND CimTipus.TOROLT = 'F'
WHERE
Cim.C_FELHASZNALOID = @pTanuloId
AND Cim.C_GONDVISELOID IS NULL
AND Cim.C_INTEZMENYID = @pIntezmenyId
AND Cim.C_TANEVID = @pTanevId
AND Cim.TOROLT = 'F'
--NOTE: 2. tábla - Email címek
SELECT
Email.C_EMAILCIM EmailCim
FROM
T_EMAIL_OSSZES Email
WHERE
Email.C_FELHASZNALOID = @pTanuloId
AND Email.C_INTEZMENYID = @pIntezmenyId
AND Email.C_TANEVID = @pTanevId
AND Email.TOROLT = 'F'
--NOTE: 3. tábla - Telefonszámok
SELECT
Telefon.C_TELEFONSZAM Telefonszam
FROM
T_TELEFON_OSSZES Telefon
WHERE
Telefon.C_FELHASZNALOID = @pTanuloId
AND Telefon.C_INTEZMENYID = @pIntezmenyId
AND Telefon.C_TANEVID = @pTanevId
AND Telefon.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,57 @@
-- =============================================
-- Description: <Előszedjük a tanuló egyéb adatait>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloiEgyebAdatok]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloiEgyebAdatok]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanuloiEgyebAdatok]
@pTanuloId INT
,@pTanevId INT
,@pIntezmenyId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
Tanulo.C_TANKOTELEZETT IsTankotelezett
,Tanulo.C_TANKOTELEZETTSEGVEGE TankotelezettsegVege
,Tanulo.C_MAGANTANULO IsMagantanulo
,Tanulo.C_MAGANTANULOSAGANAKOKA MagantanulosagOka
,Tanulo.C_JOGVISZONYATSZUNETELTETO JogviszonyatSzunetelteto
,Felhasznalo.C_TAJSZAM TajSzam
,Allampolgarsag.C_NAME Allampolgarsag
FROM
T_TANULO_OSSZES Tanulo
INNER JOIN
T_FELHASZNALO_OSSZES Felhasznalo ON
Felhasznalo.ID = Tanulo.ID
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
INNER JOIN
T_DICTIONARYITEMBASE_OSSZES Allampolgarsag ON
Allampolgarsag.ID = Felhasznalo.C_ALLAMPOLGARSAGA
AND Allampolgarsag.C_INTEZMENYID = @pIntezmenyId
AND Allampolgarsag.C_TANEVID = @pTanevId
AND Allampolgarsag.TOROLT = 'F'
WHERE
Tanulo.ID = @pTanuloId
AND Tanulo.C_ALINTEZMENYID = @pIntezmenyId
AND Tanulo.C_ALTANEVID = @pTanevId
AND Tanulo.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,98 @@
-- =============================================
-- Description: <Előszedjük a tanuló gondviselő adatait>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloiGondviseloAdatok]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloiGondviseloAdatok]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanuloiGondviseloAdatok]
@pTanuloId INT
,@pTanevId INT
,@pIntezmenyId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
--NOTE: 0. tábla - Gondviselo adatok
SELECT
Gondviselo.ID GondviseloId
,Gondviselo.C_NEV GondviseloNeve
,Felhasznalo.C_UTOLSOBELEPES UtolsoBelepes
,Email.C_EMAILCIM EmailCim
,Telefon.C_TELEFONSZAM Telefonszam
FROM
T_GONDVISELO_OSSZES Gondviselo
LEFT JOIN
T_FELHASZNALOBELEPES_OSSZES Felhasznalo ON
Felhasznalo.C_GONDVISELOID = Gondviselo.ID
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
LEFT JOIN
T_EMAIL_OSSZES Email ON
Email.C_GONDVISELOID = Gondviselo.ID
AND Email.C_INTEZMENYID = @pIntezmenyId
AND Email.C_TANEVID = @pTanevId
AND Email.TOROLT = 'F'
LEFT JOIN
T_TELEFON_OSSZES Telefon ON
Telefon.C_GONDVISELOID = Gondviselo.ID
AND Telefon.C_INTEZMENYID = @pIntezmenyId
AND Telefon.C_TANEVID = @pTanevId
AND Telefon.TOROLT = 'F'
WHERE
Gondviselo.C_TANULOID = @pTanuloId
AND Gondviselo.C_INTEZMENYID = @pIntezmenyId
AND Gondviselo.C_TANEVID = @pTanevId
AND Gondviselo.TOROLT = 'F'
--NOTE: 1. tábla - Gondviselo címek
SELECT
Gondviselo.ID GondviseloId
,Cim.C_IRANYITOSZAM + ', ' + --
Cim.C_VAROS + ', ' + --
Cim.C_KOZTERULET + ' ' + --
KozteruletJelleg.C_NAME + ' ' + --
ISNULL(Cim.C_HAZSZAM, '') CimText
,CimTipus.C_NAME CimTipus
,Cim.C_CIMTIPUSA CimTipusId
FROM
T_GONDVISELO_OSSZES Gondviselo
LEFT JOIN
T_CIM_OSSZES Cim ON
Cim.C_GONDVISELOID = Gondviselo.ID
AND Cim.C_INTEZMENYID = @pIntezmenyId
AND Cim.C_TANEVID = @pTanevId
AND Cim.TOROLT = 'F'
INNER JOIN
T_DICTIONARYITEMBASE_OSSZES KozteruletJelleg ON
KozteruletJelleg.ID = Cim.C_KOZTERULETJELLEGE
AND KozteruletJelleg.C_INTEZMENYID = @pIntezmenyId
AND KozteruletJelleg.C_TANEVID = @pTanevId
AND KozteruletJelleg.TOROLT = 'F'
INNER JOIN
T_DICTIONARYITEMBASE_OSSZES CimTipus ON
CimTipus.ID = Cim.C_CIMTIPUSA
AND CimTipus.C_INTEZMENYID = @pIntezmenyId
AND CimTipus.C_TANEVID = @pTanevId
AND CimTipus.TOROLT = 'F'
WHERE
Gondviselo.C_TANULOID = @pTanuloId
AND Gondviselo.C_INTEZMENYID = @pIntezmenyId
AND Gondviselo.C_TANEVID = @pTanevId
AND Gondviselo.TOROLT = 'F'
END
GO

View file

@ -0,0 +1,215 @@
IF OBJECT_ID('[dbo].[sp_GetTanulokMulasztasaiKesesei]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_GetTanulokMulasztasaiKesesei]
END
GO
-- ==========================================================================================
-- Description: <Az osztoly/csoport tanulóinak vagy egy adott tanulónak a mulasztásai>
-- ==========================================================================================
CREATE PROCEDURE [dbo].[sp_GetTanulokMulasztasaiKesesei]
@pIntezmenyId INT
,@pTanevId INT
,@pOsztalyCsoportId INT = NULL
,@pTanuloId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@elmeletiOraPercben INT = 45
,@gyakorlatiOraPercben INT = 60
,@osztalyCsoportNev NVARCHAR(200)
SELECT
@osztalyCsoportNev = C_NEV
FROM
T_OSZTALYCSOPORT
WHERE
ID = @pOsztalyCsoportId
AND T_OSZTALYCSOPORT.TOROLT = 'F'
DECLARE @Tanulok TABLE (Id INT PRIMARY KEY)
IF @pTanuloId IS NOT NULL
BEGIN
INSERT INTO @Tanulok (Id) VALUES (@pTanuloId)
END
ELSE BEGIN
INSERT INTO
@Tanulok (Id)
SELECT
C_TANULOID
FROM
T_TANULOCSOPORT_OSSZES tcs
WHERE
tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND tcs.C_BELEPESDATUM <= GETDATE()
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
END
SELECT
fh.ID TanuloId
,fh.C_NYOMTATASINEV TanuloNev
,fh.C_SZULETESIDATUM SzuletesiIdo
,fh.C_ANYJANEVE AnyjaNeve
,@osztalyCsoportNev OsztCsopNev
,ISNULL(m.[hianyzasIgazolandoTanorai], 0) TanoraiHianyzasIgazolando
,ISNULL(m.[hianyzasIgazolandoTanoranKivuli], 0) TanoranKivuliHianyzasIgazolando
,ISNULL(m.[hianyzasIgazoltTanorai], 0) TanoraiHianyzasIgazolt
,ISNULL(m.[hianyzasIgazoltTanoranKivuli], 0) TanoranKivuliHianyzasIgazolt
,ISNULL(m.[hianyzasIgazolatlanTanorai], 0) TanoraiHianyzasIgazolatlan
,ISNULL(m.[hianyzasIgazolatlanTanoranKivuli], 0) TanoranKivuliHianyzasIgazolatlan
,ISNULL(m.[kesesIgazolandoTanorai], 0) TanoraiKesesDarabszamIgazolando
,ISNULL(m.[kesesIgazoltTanorai], 0) TanoraiKesesDarabszamIgazolt
,ISNULL(m.[kesesIgazolatlanTanorai], 0) TanoraiKesesDarabszamIgazolatlan
,ISNULL(k.[kesesIgazolandoTanoraiPerc], 0) TanoraiKesesIgazolandoPerc
,ISNULL(k.[kesesIgazoltTanoraiPerc], 0) TanoraiKesesIgazoltPerc
,ISNULL(k.[kesesIgazolatlanTanoraiPerc], 0) TanoraiKesesIgazolatlanPerc
,ISNULL(kp.[kesesIgazolandoTanoraiPluszOra], 0) SzamitottKesesIgazolando
,ISNULL(kp.[kesesIgazoltTanoraiPluszOra], 0) SzamitottKesesIgazolt
,ISNULL(kp.[kesesIgazolatlanTanoraiPluszOra], 0) SzamitottKesesIgazolatlan
FROM (
SELECT
ID
,C_NYOMTATASINEV
,C_SZULETESIDATUM
,C_ANYJANEVE
FROM
T_FELHASZNALO_OSSZES fh
WHERE
EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = fh.ID)
) fh
LEFT JOIN (
SELECT
tanuloId
,[hianyzasIgazolandoTanorai]
,[hianyzasIgazolandoTanoranKivuli]
,[hianyzasIgazoltTanorai]
,[hianyzasIgazoltTanoranKivuli]
,[hianyzasIgazolatlanTanorai]
,[hianyzasIgazolatlanTanoranKivuli]
,[kesesIgazolandoTanorai]
,[kesesIgazoltTanorai]
,[kesesIgazolatlanTanorai]
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 AS piv
,cnt
FROM (
SELECT
m.C_ORATANULOIID AS tanuloId
,m.C_TIPUS mulasztasTipus
,m.C_IGAZOLT isIgazolt
,IIF(cs.ID IS NULL OR cs.C_TIPUSA = 1034, 'T', 'F') AS isTanorai
,COUNT(1) AS cnt
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
WHERE
m.C_INTEZMENYID = @pIntezmenyId
AND m.C_TANEVID = @pTanevId
AND m.Torolt ='F'
AND EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = m.C_ORATANULOIID)
GROUP BY m.C_ORATANULOIID, m.C_TIPUS, m.C_IGAZOLT, IIF(cs.ID IS NULL OR cs.C_TIPUSA = 1034, 'T', 'F')
) x
) p
PIVOT (
MAX(cnt)
FOR piv IN ([hianyzasIgazolandoTanorai], [hianyzasIgazolandoTanoranKivuli], [hianyzasIgazoltTanorai], [hianyzasIgazoltTanoranKivuli], [hianyzasIgazolatlanTanorai], [hianyzasIgazolatlanTanoranKivuli], [kesesIgazolandoTanorai], [kesesIgazoltTanorai], [kesesIgazolatlanTanorai])
) AS pvt
) m ON fh.ID = m.tanuloId
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 T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
WHERE m.C_INTEZMENYID = @pIntezmenyId
AND m.C_TANEVID = @pTanevId
AND m.Torolt ='F'
AND EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = m.C_ORATANULOIID)
AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
AND m.C_TIPUS = 1499
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
,[kesesIgazolandoTanoraiPluszOra]
,[kesesIgazoltTanoraiPluszOra]
,[kesesIgazolatlanTanoraiPluszOra]
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
FROM (
SELECT
xx.tanuloId
,xx.isIgazolt
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
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 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
WHERE
m.C_INTEZMENYID = @pIntezmenyId
AND m.C_TANEVID = @pTanevId
AND EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = m.C_ORATANULOIID)
AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
AND m.C_TIPUS = 1499
AND m.TOROLT = 'F'
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
) kp ON m.tanuloId = kp.tanuloId
END
GO