﻿DROP PROCEDURE IF EXISTS dbo.uspImportTanuloBesorolasOsztaly
GO

CREATE PROCEDURE dbo.uspImportTanuloBesorolasOsztaly
  @xml xml,
  @besorolasDatuma datetime,
  @intezmenyId int,
  @tanevId int,
  @userId int
AS
BEGIN
  DECLARE @TanuloBesorolas TABLE (
    TanuloId int,
    OsztalyId int,
    CsoportId int
  )

  INSERT INTO @TanuloBesorolas (Tanuloid, OsztalyId, CsoportId)
  SELECT 
    sor.value('(TanuloId)[1]', 'int') AS TanuloId,
    sor.value('(OsztalyId)[1]', 'int') AS OsztalyId,
    sor.value('(CsoportId)[1]', 'int') AS CsoportId
  FROM @xml.nodes('/TanuloBesorolasImport/TanuloBesorolasLista/TanuloBesorolas') as sorok(sor)

  DECLARE @exist TABLE (TanuloId int, OsztalyId int)
  
  INSERT INTO @exist (TanuloId, OsztalyId)
  SELECT TanuloId, OsztalyId 
  FROM @TanuloBesorolas b
    INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON b.TanuloId = tcs.C_TANULOID
    INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID	
  WHERE tcs.C_BELEPESDATUM <= @besorolasDatuma 
    AND (tcs.C_KILEPESDATUM > @besorolasDatuma OR tcs.C_KILEPESDATUM IS NULL)
    AND b.OsztalyId > 0
	AND (b.OsztalyId <> tcs.C_OSZTALYCSOPORTID)
    AND tcs.C_INTEZMENYID = @intezmenyId
	AND tcs.C_TANEVID = @tanevId AND  tcs.TOROLT = 'F'
	AND o.TOROLT ='F'

	  INSERT INTO T_TANULOCSOPORT_OSSZES (
     C_BEJEGYZESIDOPONTJA
    ,C_BELEPESDATUM
    ,C_KILEPESDATUM
    ,C_ZARADEK
    ,C_BEFOGADOINTEZMENY
    ,C_MEGJEGYZES
    ,C_VEGZARADEK
    ,C_INTEZMENYID
    ,C_TANEVID
    ,C_OSZTALYCSOPORTID
    ,C_TANULOID
    ,MODIFIER
    ,CREATOR
  ) SELECT 
     GETDATE() AS C_BEJEGYZESIDOPONTJA -- C_BEJEGYZESIDOPONTJA - datetime
    ,@besorolasDatuma AS C_BELEPESDATUM         -- C_BELEPESDATUM - datetime
    ,NULL AS C_KILEPESDATUM         -- C_KILEPESDATUM - datetime
    ,NULL AS C_ZARADEK              -- C_ZARADEK - nvarchar(MAX)
    ,NULL AS C_BEFOGADOINTEZMENY    -- C_BEFOGADOINTEZMENY - nvarchar(255)
    ,NULL AS C_MEGJEGYZES           -- C_MEGJEGYZES - nvarchar(255)
    ,NULL AS C_VEGZARADEK           -- C_VEGZARADEK - nvarchar(MAX)
    ,@intezmenyId   AS C_INTEZMENYID           -- C_INTEZMENYID - int
    ,@tanevId   AS C_TANEVID               -- C_TANEVID - int
    ,ISNULL(NULLIF(b.OsztalyId, 0), b.CsoportId)   AS C_OSZTALYCSOPORTID      -- C_OSZTALYCSOPORTID - int
    ,b.TanuloId   AS C_TANULOID              -- C_TANULOID - int
    ,NULL AS MODIFIER               -- MODIFIER - int
    ,@userId AS CREATOR                -- CREATOR - int
  FROM @TanuloBesorolas b
    WHERE NOT EXISTS (SELECT 1 FROM @exist e WHERE e.TanuloId = b.TanuloId AND e.OsztalyId = b.OsztalyId)



  INSERT INTO [T_TANULOTANUGYIADATOK]
           ([C_BEIRASINAPLOSORSZAM]
           ,[C_BEJARO]
           ,[C_DIAKSPORTKOROS]
           ,[C_EGYEBORSZAGOSDONTO]
           ,[C_EGYUTTMUKODESES]
           ,[C_ELOZOINTEZMENY]
           ,[C_EVISMETLO]
           ,[C_ISKOLAIKERETEKKOZOTT]
           ,[C_JOGVISZONYATSZUNETELTETO]
           ,[C_JOGVISZONYVARHATOBEFEJEZESE]
           ,[C_MAGANTANULO]
           ,[C_MAGANTANULOSAGANAKOKAID]
           ,[C_MAGANTANULOSAGKEZDETE]
           ,[C_NYILVANTARTASKEZDETE]
           ,[C_OSZTV]
           ,[C_POLGARISZERZODESES]
           ,[C_SZAKMAIGYAKORLATON]
           ,[C_SZETVAGAZAT]
           ,[C_SZINTVIZSGA]
           ,[C_SZKTV]
           ,[C_TANDIJATFIZETO]
           ,[C_TANKOTELEZETT]
           ,[C_TANKOTELEZETTSEGVEGE]
           ,[C_TANULOEVFOLYAMTIPUSID]
           ,[C_TANULOSZERZODESES]
           ,[C_TECHNIKUSIEVFOLYAM]
           ,[C_TERITESIDIJATFIZETO]
           ,[C_VENDEG]
           ,[C_NAPLOSORSZAM]
           ,[C_TORZSLAPSZAM]
           ,[C_TANTERVID]
           ,[C_FELVETELTANEVEID]
           ,[C_TANULOCSOPORTID]
           ,[C_INTEZMENYID]
           ,[C_TANEVID]
           ,[TOROLT]
           ,[SERIAL]
           ,[LASTCHANGED]
           ,[CREATED]
           ,[MODIFIER]
           ,[CREATOR]
           ,[ELOZOTANEVIREKORDID]
           ,[NNID])
	 SELECT         
		   tanulo.C_BEIRASINAPLOSORSZAM
           ,ISNULL(tanulo.C_BEJARO, 'F')							
           ,ISNULL(tanulo.C_DIAKSPORTKOROS, 'F')					
           ,ISNULL(tanulo.C_EGYEBDONTO, 'F')						
           ,tanulo.C_EGYUTTMUKODESES
           ,tanulo.C_ELOZOINTEZMENY
           ,ISNULL(tanulo.C_EVISMETLO, 'F')						
           ,ISNULL(tanulo.C_ISKOLAIKERETEKKOZOTT, 'F')			
           ,ISNULL(tanulo.C_JOGVISZONYATSZUNETELTETO, 'F')		
           ,tanulo.C_JOGVISZONYVARHATOBEFEJEZESE
           ,ISNULL(tanulo.C_MAGANTANULO, 'F')					
           ,tanulo.C_MAGANTANULOSAGANAKOKA						
           ,tanulo.C_MAGANTANULOSAGKEZDETE
           ,felhasznalo.C_NYILVANTARTASKEZDETE
           ,ISNULL(tanulo.C_OSZTV, 'F')							
           ,ISNULL(tanulo.C_POLGARISZERZODESES, 'F')				
           ,ISNULL(tanulo.C_SZAKMAIGYAKORLATON, 'F')				
           ,ISNULL(tanulo.C_SZETVAGAZAT, 'F')					
           ,tanulo.C_SZINTVIZSGA
           ,ISNULL(tanulo.C_SZKTV, 'F')							
           ,ISNULL(tanulo.C_TANDIJATFIZETO, 'F')					
           ,ISNULL(tanulo.C_TANKOTELEZETT, 'F')					
           ,tanulo.C_TANKOTELEZETTSEGVEGE
           ,tanulo.C_TANULOEVFOLYAMTIPUS
           ,ISNULL(tanulo.C_TANULOSZERZODESES, 'F')				
           ,ISNULL(tanulo.C_TECHNIKUSIEVFOLYAM, 'F')				
           ,ISNULL(tanulo.C_TERITESIDIJATFIZETO, 'F')			
           ,ISNULL(tanulo.C_VENDEG, 'F')
           ,tanulo.C_NAPLOSORSZAM
           ,tanulo.C_TORZSLAPSZAM
           ,tanulo.C_TANTERVID
           ,tanulo.C_FELVETELTANEVEID
           ,tcs.ID		
		   ,@intezmenyId											
           ,@tanevId												         										
           ,'F'												
           , 0													
           ,GETDATE()											
           ,GETDATE()											
           ,NULL													
           ,@userId AS CREATOR
           ,tanulo.ELOZOTANEVIREKORDID
           ,tanulo.NNID	
		   	   
		    FROM @TanuloBesorolas b			
			INNER JOIN T_TANULO_OSSZES tanulo ON tanulo.ID = b.TanuloId 
			INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON felhasznalo.ID = tanulo.ID AND felhasznalo.C_TANEVID = @tanevId  AND felhasznalo.C_INTEZMENYID = @intezmenyId
			INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON  tcs.C_OSZTALYCSOPORTID = b.OsztalyId AND C_TANULOID = b.TanuloId AND tcs.TOROLT='F'  AND tcs.C_INTEZMENYID = @intezmenyId AND tcs.C_TANEVID = @tanevId

			WHERE 				
			 NOT EXISTS (SELECT 1 FROM T_TANULOTANUGYIADATOK tanugyiAdatok WHERE tanugyiAdatok.C_TANULOCSOPORTID = tcs.ID				
			 AND tanugyiAdatok.TOROLT = 'F' AND tanugyiAdatok.C_INTEZMENYID = @intezmenyId AND tanugyiAdatok.C_TANEVID = @tanevId)


  SELECT e1.TanuloId, e1.OsztalyId FROM @exist e1


END
GO


