kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_GetEvvegiErtesito.sql
2024-03-13 00:33:46 +01:00

256 lines
13 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetEvvegiErtesito]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetEvvegiErtesito]
END
GO
-- =============================================
-- Author: Hoffmann Zsolt
-- Create date: 2015.12.22.
-- Description: Évvégi értesítő nyomtatvány.
-- =============================================
CREATE PROCEDURE [sp_GetEvvegiErtesito]
@tanevId int,
@osztalyId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
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_TELEFONSZAM TELEFON,
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
T_INTEZMENYADATOK_OSSZES.C_OMKOD OMkod,
T_TANEV_OSSZES.C_NEV TANEV,
(SELECT C_OSZTALYFONOKID FROM T_OSZTALY_OSSZES WHERE ID=@osztalyId) PartnerID,
(SELECT OFO.C_NYOMTATASINEV FROM T_OSZTALY_OSSZES JOIN T_FELHASZNALO_OSSZES OFO ON OFO.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID WHERE T_OSZTALY_OSSZES.ID=@osztalyId) OSZTALYFONOK,
(SELECT T_OSZTALYCSOPORT_OSSZES.C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE T_OSZTALYCSOPORT_OSSZES.ID=@osztalyId) OSZTALYNEV
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_TANEV_OSSZES
ON T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.TOROLT = 'F'
WHERE T_TANEV_OSSZES.ID = @tanevId
---------- TANULÓK
SELECT T_FELHASZNALO_OSSZES.ID TANULOID,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV,
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO
FROM T_FELHASZNALO_OSSZES
JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F' and
T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE() and
(C_KILEPESDATUM is null or C_KILEPESDATUM >= GETDATE())) TANCSOPORT
ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE TOROLT='F' and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId and
T_FELHASZNALO_OSSZES.C_TANEVID = @tanevId
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
---- ÉRTÉKELÉSEK
SELECT ERTEKELES.C_TANULOID TANULOID,
'MAGATARTAS' TARGYNEV,
OSZTALYZAT.MAGATARTAS FELEVIERTEKELES,
ERTEKELES.C_ERTEKELESSZOVEG FELJEGYZES
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
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 = ERTEKELES.C_TANULOID
LEFT JOIN (SELECT ID, C_MAGATARTAS MAGATARTAS FROM T_OSZTALYFONOKIERTEKELES_OSSZES) OSZTALYZAT
ON OSZTALYZAT.ID = ERTEKELES.ID
WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId AND
ERTEKELES.TOROLT = 'F' and
ERTEKELES.C_TANEVID = @tanevId and
ERTEKELES.C_ERTEKELESTIPUSA = 1520 AND
OSZTALYZAT.MAGATARTAS IS NOT NULL -- ÉVVÉGI
UNION ALL
SELECT ERTEKELES.C_TANULOID TANULOID,
'SZORGALOM' TARGYNEV,
OSZTALYZAT.SZORGALOM FELEVIERTEKELES,
ERTEKELES.C_ERTEKELESSZOVEG FELJEGYZES
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
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 = ERTEKELES.C_TANULOID
LEFT JOIN (SELECT ID, C_SZORGALOM SZORGALOM FROM T_OSZTALYFONOKIERTEKELES_OSSZES ) OSZTALYZAT
ON OSZTALYZAT.ID = ERTEKELES.ID
WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId AND
ERTEKELES.TOROLT = 'F' and
ERTEKELES.C_TANEVID = @tanevId and
ERTEKELES.C_ERTEKELESTIPUSA = 1520 AND
OSZTALYZAT.SZORGALOM IS NOT NULL -- ÉVVÉGI
UNION ALL
SELECT ERTEKELES.C_TANULOID TANULOID,
TARGY.TARGYNEV TARGYNEV,
ERTEKELES.C_OSZTALYZAT FELEVIERTEKELES,
ERTEKELES.C_ERTEKELESSZOVEG FELJEGYZES
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
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 = ERTEKELES.C_TANULOID
JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT FROM T_TANTARGY_OSSZES) TARGY
ON TARGY.ID = ERTEKELES.C_TANTARGYID
WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId AND
ERTEKELES.TOROLT = 'F' and
ERTEKELES.C_TANEVID = @tanevId and
TARGY.KAT != 1248 and--Osztályfőnöki nem jelenítődik meg
ERTEKELES.C_ERTEKELESTIPUSA = 1520 -- ÉVVÉGI
ORDER BY TANULOID,
TARGYNEV
----ÉVVÉGI ÉRTÉKELÉS ÖSSZEGZÉS
SELECT ERTEKELES.C_TANULOID TANULOID,
TARGY.TARGYNEV,
isnull((select count(*) from T_TANITASIORA_OSSZES
inner join T_FOGLALKOZAS_OSSZES
on T_FOGLALKOZAS_OSSZES.ID = T_TANITASIORA_OSSZES.C_FOGLALKOZASID
where T_TANITASIORA_OSSZES.TOROLT = 'F'
and T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = @osztalyId
and T_FOGLALKOZAS_OSSZES.C_TANTARGYID = ERTEKELES.ID
and T_FOGLALKOZAS_OSSZES.C_FOGLALKOZASTIPUSA = 1339 --Tanórai foglalkozás
and exists (select 1 from T_FOGLALKOZASOK_TANAROK_OSSZES where C_TANAROKID = ERTEKELES.C_ERTEKELOID)),0) ORASZAM,
ERTEKELES.C_OSZTALYZAT EVVEGIERTEKELES,
ERTEKELES.C_ERTEKELESSZOVEG FELJEGYZES
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
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 = ERTEKELES.C_TANULOID
JOIN ( SELECT ID,C_NEV TARGYNEV FROM T_TANTARGY_OSSZES) TARGY
ON TARGY.ID = ERTEKELES.C_TANTARGYID
WHERE TANCSOPORT.C_OSZTALYCSOPORTID =@osztalyId and
ERTEKELES.TOROLT = 'F' and
ERTEKELES.C_TANEVID = @tanevId and
ERTEKELES.C_ERTEKELESTIPUSA = 1520 -- ÉVVÉGI
ORDER BY TANULOID,
TARGY.TARGYNEV
---- MULASZTÁSOK
SELECT * FROM (SELECT MULASZT.C_ORATANULOIID TANULOID,
'IGAZOLT' TIPUS, COUNT(1) ORASZAM
FROM T_TANULOMULASZTAS_OSSZES MULASZT
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 = MULASZT.C_ORATANULOIID
WHERE MULASZT.TOROLT ='F' AND
MULASZT.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND
MULASZT.C_IGAZOLT = 'T' AND
MULASZT.C_TIPUS != 1498
GROUP BY MULASZT.C_ORATANULOIID
UNION
SELECT MULASZT.C_ORATANULOIID TANULOID,
'IGAZOLATLAN' TIPUS,
COUNT(1) ORASZAM
FROM T_TANULOMULASZTAS_OSSZES MULASZT
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 = MULASZT.C_ORATANULOIID
WHERE MULASZT.TOROLT ='F' AND
MULASZT.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND
MULASZT.C_IGAZOLT = 'F' AND
MULASZT.C_TIPUS != 1498
GROUP BY MULASZT.C_ORATANULOIID
) ORAK
ORDER BY ORAK.TANULOID,
ORAK.TIPUS DESC
------ MULASZTÁSOK ÖSSZEGZÉS
SELECT distinct TANULO.ID TANULOID,
isnull((SELECT COUNT(1) ORASZAM FROM T_TANULOMULASZTAS_OSSZES MULASZT
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 = MULASZT.C_ORATANULOIID
WHERE MULASZT.TOROLT ='F' AND
MULASZT.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND
MULASZT.C_IGAZOLT = 'T' and
MULASZT.C_ORATANULOIID = MU.C_ORATANULOIID AND
MULASZT.C_TIPUS != 1498
GROUP BY MULASZT.C_ORATANULOIID
),0) IGAZOLT,
isnull((SELECT COUNT(1) ORASZAM FROM T_TANULOMULASZTAS_OSSZES MULASZT
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 = MULASZT.C_ORATANULOIID
WHERE MULASZT.TOROLT ='F' AND
MULASZT.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND
MULASZT.C_IGAZOLT = 'F' and
MULASZT.C_ORATANULOIID = MU.C_ORATANULOIID AND
MULASZT.C_TIPUS != 1498
GROUP BY MULASZT.C_ORATANULOIID
),0) IGAZOLATLAN,
isnull((SELECT COUNT(1) ORASZAM FROM T_TANULOMULASZTAS_OSSZES MULASZT
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 = MULASZT.C_ORATANULOIID
WHERE MULASZT.TOROLT ='F' AND
MULASZT.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId and
MULASZT.C_ORATANULOIID = MU.C_ORATANULOIID AND
MULASZT.C_TIPUS != 1498
GROUP BY MULASZT.C_ORATANULOIID
),0) SZUMMA
from T_TANULO_OSSZES TANULO
left join T_TANULOMULASZTAS_OSSZES MU
on MU.C_ORATANULOIID = TANULO.ID
left 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 = TANULO.ID
where TANULO.TOROLT = 'F' AND
TANULO.C_ALTANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
ORDER BY TANULO.ID
-- TANTÁRGYI MENTESSÉGEK
SELECT MENTESSEG.C_TANULOID TANULOID,
TARGY.TARGYNEV, MENTESSEG.C_MENTESSEGOKA MENTESSEGOKA
FROM T_TANULOMENTESSEG_OSSZES MENTESSEG
JOIN (SELECT ID, C_NEV TARGYNEV FROM T_TANTARGY_OSSZES WHERE TOROLT='F' ) TARGY
ON TARGY.ID = MENTESSEG.C_TANTARGYID
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
MENTESSEG.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
ORDER BY MENTESSEG.C_TANULOID,
TARGY.TARGYNEV
---------- BEJEGYZÉSEK
SELECT T_TANULOESEMENY_OSSZES.C_TANULOID TANULOID,
C_TARTALOM BEJEGYZES, C_TIPUS TIPUS
FROM T_TANULOESEMENY_OSSZES
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
T_TANULOESEMENY_OSSZES.C_TANEVID = @tanevId and
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId AND
T_TANULOESEMENY_OSSZES.C_TIPUS = 1548 AND
T_TANULOESEMENY_OSSZES.C_TIPUS != 1534
ORDER BY T_TANULOESEMENY_OSSZES.C_TANULOID
END
GO