kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170425134431_KRETA_963/sp_GetErtesitoNyomtatvany.sql
2024-03-13 00:33:46 +01:00

173 lines
No EOL
5.9 KiB
Transact-SQL

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,
@isBizonyitvany int = 0
AS
BEGIN
SET NOCOUNT ON;
-- Fejléc
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_IRANYITOSZAM IntezmenyIranyitoszam,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
T_INTEZMENYADATOK_OSSZES.C_CIME 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,
(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))
INSERT INTO @Tanulok
SELECT T_FELHASZNALO_OSSZES.ID TANULOID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV,
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO,
T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM TorzslapSzam
FROM T_FELHASZNALO_OSSZES
INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE T_FELHASZNALO_OSSZES.TOROLT='F'
AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
AND T_FELHASZNALO_OSSZES.C_TANEVID = @TanevId
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
SELECT * FROM @Tanulok ORDER BY TANULONEV
-- ÉRTÉKELÉSEK
DECLARE @Ertekelesek TABLE (
TanuloId INT
,Targy NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,ErtekelesJegyzettel NVARCHAR(MAX)
,SzovegesErtekeles NVARCHAR(MAX)
,Oraszam INT
,RENDEZ INT
)
INSERT INTO @Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@ertekelesTipus = @ertekelesTipus
SELECT
TanuloId
, Targy
, Ertekeles
, Jegyzet
, ErtekelesJegyzettel
, SzovegesErtekeles
, Oraszam
, RENDEZ
FROM
@Ertekelesek
-- MULASZTÁSOK
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 = @osztalyId,
@tanevId = @tanevId,
@elmeletGyakorlat = @elmeletGyakorlat,
@kesesTipus = @kesesTipus,
@elmeletiOraPercben = @elmeletiOraPercben,
@gyakorlatiOraPercben = @gyakorlatiOraPercben,
@ertekelesTipus = @ertekelesTipus
SELECT
TanuloId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,Osszes
FROM @Mulasztasok
-- TANTÁRGYI MENTESSÉGEK
SELECT DISTINCT MENTESSEG.C_TANULOID TANULOID,
TARGY.TARGYNEV,
MENTESSEG.C_MENTESSEGOKA MENTESSEGOKA
FROM T_TANULOMENTESSEG_OSSZES MENTESSEG
INNER JOIN (SELECT ID, C_NEV TARGYNEV FROM T_TANTARGY_OSSZES WHERE TOROLT='F') TARGY
ON TARGY.ID = MENTESSEG.C_TANTARGYID
INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
ON TANCSOPORT.C_TANULOID = MENTESSEG.C_TANULOID
WHERE MENTESSEG.TOROLT = 'F'
AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
ORDER BY MENTESSEG.C_TANULOID, TARGY.TARGYNEV
-- BEJEGYZÉSEK
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
)
SELECT T_TANULOESEMENY_OSSZES.C_TANULOID TANULOID,
C_TARTALOM BEJEGYZES,
C_TIPUS TIPUS
FROM T_TANULOESEMENY_OSSZES
INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
ON TANCSOPORT.C_TANULOID = T_TANULOESEMENY_OSSZES.C_TANULOID
WHERE T_TANULOESEMENY_OSSZES.TOROLT='F'
AND TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
AND T_TANULOESEMENY_OSSZES.C_TIPUS = @EsemenyTipus
ORDER BY T_TANULOESEMENY_OSSZES.C_TANULOID
END
GO