﻿DROP PROCEDURE  IF EXISTS uspGetOsztalyTanulokGondviselok 
GO
  CREATE PROCEDURE uspGetOsztalyTanulokGondviselok
      @pFelhasznaloId INT
     ,@pIntezmenyId INT = null
     ,@pTanevId INT = null
     ,@pDatum DATE
     ,@pOsztalyId INT = null
     ,@pEllatottKoznevelesiFeladatId INT = null
     ,@pIsSzuperOsztalyfonok CHAR(1)
     ,@pIsEvfolyamfelelos CHAR(1)
  AS
  BEGIN
    SET NOCOUNT ON;

  SELECT 
     gondviselo.ID Id
    ,tcs.C_TANULOID AS TanuloId
    ,tanulo.C_NYOMTATASINEV TanuloNeve
    ,ocs.ID OsztalyCsoportId
    ,ocs.C_NEV TanuloOsztalya
    ,gondviselo.C_NEV GondviseloNeve
    ,fb.C_BEJELENTKEZESINEV GondviseloBejelentkezesiNev
    ,rokfok.C_NAME RokonsagiFoka
    ,email.C_EMAILCIM Email
    ,email.C_ALAPERTELMEZETT IsAlapertelmezettEmail
    ,telefon.C_TELEFONSZAM TelefonSzam
    ,telefon.C_ALAPERTELMEZETT IsAlapertelmezettTelefonSzam
    ,gondviselo.C_ISTORVENYESKEPVISELO IsTorvenyesKepviselo
    ,IIF(gondviselo.C_ISCSOKKENTETTGONDVISELO = 'T', 'F', 'T') IsBovitettJogosultsag
    ,fb.C_UTOLSOBELEPES UtolsoBelepes
    ,fb.C_UTOLSOBELEPESMOBIL UtolsoBelepesMobil
  FROM T_OSZTALY_OSSZES osztaly
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = osztaly.ID AND ocs.TOROLT = 'F'
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = osztaly.ID AND tcs.TOROLT = 'F' 
    INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = tcs.C_TANULOID AND tanulo.TOROLT = 'F'
    INNER JOIN T_GONDVISELO_OSSZES gondviselo ON gondviselo.C_TANULOID = tanulo.ID AND gondviselo.TOROLT = 'F'
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES rokfok ON rokfok.ID = gondviselo.C_ROKONSAGFOKA AND rokfok.C_TANEVID = gondviselo.C_TANEVID AND rokfok.TOROLT = 'F'
    LEFT JOIN T_FELHASZNALOBELEPES_OSSZES fb ON fb.C_GONDVISELOID = gondviselo.ID AND fb.TOROLT = 'F'
    OUTER APPLY (SELECT TOP 1 C_EMAILCIM, C_ALAPERTELMEZETT FROM T_EMAIL_OSSZES e WHERE e.C_GONDVISELOID = gondviselo.ID AND e.TOROLT = 'F' ORDER BY C_ALAPERTELMEZETT DESC, ID) email
    OUTER APPLY (SELECT TOP 1 C_TELEFONSZAM, C_ALAPERTELMEZETT FROM T_TELEFON_OSSZES t WHERE t.C_GONDVISELOID = gondviselo.ID AND t.TOROLT = 'F' ORDER BY C_ALAPERTELMEZETT DESC, ID) telefon
  WHERE 
    (osztaly.C_OSZTALYFONOKID = @pFelhasznaloId OR @pIsSzuperOsztalyfonok = 'T' OR @pIsEvfolyamfelelos ='T')
    AND (@pOsztalyId IS NULL OR osztaly.ID = @pOsztalyId)
    AND (@pEllatottKoznevelesiFeladatId IS NULL OR ocs.C_FELADATKATEGORIAID = @pEllatottKoznevelesiFeladatId)
    AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
    AND osztaly.C_ALTANEVID = @pTanevId
    AND osztaly.C_ALINTEZMENYID = @pIntezmenyId
    AND osztaly.TOROLT= 'F'
    
  END
GO