﻿SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('[dbo].[sp_GetFogadooraInfo]') IS NOT NULL 
BEGIN
  DROP PROCEDURE [dbo].[sp_GetFogadooraInfo] 
END  
GO

CREATE PROCEDURE [dbo].[sp_GetFogadooraInfo] 
	@alkalmazottId	INT,
	@tanevId		INT

AS 
BEGIN
SET NOCOUNT ON;

DECLARE @DefaultFeladatKategoriaId int =  (SELECT tev.C_DEFAULTFELADATKATEGORIAID FROM T_TANEV_OSSZES tev WHERE tev.ID = @tanevId)

--fejléc
SELECT 
	i.C_NEV		as intezmeny
	,m.C_NEV	as mukodesihely
	,d.C_NAME	as oktatasiNevelesiFeladatTipus
	,ISNULL(i.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy. MMMM dd.', 'hu-hu') AS kelt
FROM T_INTEZMENYADATOK_OSSZES i
  INNER JOIN T_MUKODESIHELY_OSSZES m ON i.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F'
  INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevId
  INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS AND d.C_TANEVID = @tanevId
WHERE 
	i.C_TANEVID = @tanevId

  
  --#tanulok
  SELECT DISTINCT 
	tn.ID				               tanuloID
	,tn.C_NYOMTATASINEV        TanuloNeve
  ,tn.C_SZULETESIDATUM         szulDat
  INTO #Tanulok_tmp
  FROM T_FOGLALKOZAS_OSSZES f
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON f.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND tcs.TOROLT = 'F'
    INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
  WHERE 
	f.C_TANARID = @alkalmazottId 
  AND f.C_TANEVID=@TANEVID
	AND f.TOROLT='F'  
  ORDER BY TanuloNeve
  
  
  SELECT tanuloNeve 
  INTO #duplikatNevek
  FROM #Tanulok_tmp
  GROUP BY tanuloNeve
  HAVING COUNT(tanuloNeve) > 1
  
  SELECT tanuloID, 
  TanuloNeve + IIF(TanuloNeve IN (SELECT tanuloNeve FROM #duplikatNevek), ' - (' 
                            + (FORMAT(szulDat, 'yyyy.MM.dd') + ', ' 
                            + dbo.fnGetDokumentumTanuloAktualisOsztaly (tanuloID) +')' ), '') TanuloNeve /*TODO:Tobb Osztaly*//*OM-1652*/
  FROM #Tanulok_tmp
  ORDER BY tanuloNeve
  
  
  --tanuloinfo
  SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
    dt.C_NAME as ertekelesTipusa, dm.C_NAME as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
    fh.C_NYOMTATASINEV as tanarNev, do.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
    t.id as tantargyID, t.C_NEV as tantargyNev
  FROM T_TANULOERTEKELES_OSSZES e
    INNER JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON e.ID = oe.ID
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
    INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
    INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
    INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID AND tcs.TOROLT = 'F'
    INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA AND dt.C_TANEVID = @tanevId
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON (dm.ID = oe.C_ERTEKELESMODJA AND DM.C_INTEZMENYID = OE.C_ALINTEZMENYID AND DM.C_TANEVID = OE.C_ALTANEVID)
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES do ON (do.ID = e.C_OSZTALYZAT AND Do.C_INTEZMENYID = E.C_INTEZMENYID AND Do.C_TANEVID = E.C_TANEVID)
  WHERE 
	f.C_TANARID = @alkalmazottId 
    AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
	AND e.C_TANEVID=@tanevId 
	AND e.TOROLT='F'

  UNION ALL

  SELECT e.ID, tn.ID as tanuloID, tn.C_NYOMTATASINEV as tanuloNev, FORMAT(e.C_ERTEKELESDATUM, 'd', 'hu-hu') as ertekelesDatuma,
    dt.C_NAME as ertekelesTipusa, null as ertekelesModja, e.C_ERTEKELESSZOVEG as feljegyzes,
    fh.C_NYOMTATASINEV as tanarNev, dm.C_NAME + ', ' + ds.C_NAME as osztalyzat, ocs.ID as csoportID, ocs.C_NEV as csoportNev,
    t.id as tantargyID, t.C_NEV as tantargyNev    
  FROM T_TANULOERTEKELES_OSSZES e
    INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES oe ON e.ID = oe.ID
    INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = e.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
    INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = ocs.ID
    INNER JOIN T_TANTARGY_OSSZES t ON t.ID = f.C_TANTARGYID and e.C_TANTARGYID = t.ID
    INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.id = f.C_TANARID
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.C_TANULOID = e.C_TANULOID  AND tcs.TOROLT = 'F'
    INNER JOIN T_FELHASZNALO_OSSZES tn ON tn.ID = tcs.C_TANULOID
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES dt ON dt.ID = e.C_ERTEKELESTIPUSA AND dt.C_TANEVID = @tanevId
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES dm ON dm.ID = oe.C_MAGATARTAS AND dm.C_TANEVID = @tanevId
    INNER JOIN T_DICTIONARYITEMBASE_OSSZES ds ON ds.ID = oe.C_SZORGALOM AND ds.C_TANEVID = @tanevId
  WHERE 
	f.C_TANARID = @alkalmazottId
    AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
	AND e.C_TANEVID=@TANEVID 
	AND e.TOROLT='F'


END

GO