﻿-- =============================================
-- Description:  <Tanulo besorolás import>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[uspTanuloBesorolasImport]
GO

CREATE PROCEDURE [dbo].[uspTanuloBesorolasImport]
   @pIntezmenyId          INT
  ,@pTanevId            INT
  ,@pUserId            INT
  ,@pImportJson          NVARCHAR(MAX)
  ,@pBesorolasDatum        DATETIME
AS
BEGIN

  SET NOCOUNT ON;  

  DECLARE
     @tableNameList      NVARCHAR(2000)  = 'T_TANULOCSOPORT_OSSZES'
    ,@actualJson      NVARCHAR(MAX)  = ''

    ,@lastChangedDateTime  DATETIME    = GETDATE()
    
  --NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
  EXECUTE [dbo].[uspDynamicImportJsonSplit] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
  
  --TanuloTanugyiAdatok beszúrása
  SET @actualJson = ' { "ImportJson":{ "T_TANULOTANUGYIADATOK_OSSZES":' +
    (SELECT
       TanuloTanugyiAdatok.          ID          
      ,TanuloTanugyiAdatok.          C_BEIRASINAPLOSORSZAM
      ,TanuloTanugyiAdatok.          C_BEJARO
      ,TanuloTanugyiAdatok.          C_DIAKSPORTKOROS
      ,TanuloTanugyiAdatok.          C_EGYEBORSZAGOSDONTO
      ,TanuloTanugyiAdatok.          C_EGYUTTMUKODESES
      ,TanuloTanugyiAdatok.          C_ELOZOINTEZMENY
      ,TanuloTanugyiAdatok.          C_EVISMETLO
      ,TanuloTanugyiAdatok.          C_ISKOLAIKERETEKKOZOTT
      ,TanuloTanugyiAdatok.          C_JOGVISZONYATSZUNETELTETO
      ,TanuloTanugyiAdatok.          C_JOGVISZONYVARHATOBEFEJEZESE
      ,TanuloTanugyiAdatok.          C_MAGANTANULO
      ,TanuloTanugyiAdatok.          C_MAGANTANULOSAGANAKOKAID
      ,TanuloTanugyiAdatok.          C_MAGANTANULOSAGKEZDETE
      ,TanuloTanugyiAdatok.          C_NYILVANTARTASKEZDETE
      ,TanuloTanugyiAdatok.          C_OSZTV
      ,TanuloTanugyiAdatok.          C_POLGARISZERZODESES
      ,TanuloTanugyiAdatok.          C_SZAKMAIGYAKORLATON
      ,TanuloTanugyiAdatok.          C_SZETVAGAZAT
      ,TanuloTanugyiAdatok.          C_SZINTVIZSGA
      ,TanuloTanugyiAdatok.          C_SZKTV
      ,TanuloTanugyiAdatok.          C_TANDIJATFIZETO
      ,TanuloTanugyiAdatok.          C_TANKOTELEZETT
      ,TanuloTanugyiAdatok.          C_TANKOTELEZETTSEGVEGE
      ,TanuloTanugyiAdatok.          C_TANULOEVFOLYAMTIPUSID
      ,TanuloTanugyiAdatok.          C_TANULOSZERZODESES
      ,TanuloTanugyiAdatok.          C_TECHNIKUSIEVFOLYAM
      ,TanuloTanugyiAdatok.          C_TERITESIDIJATFIZETO
      ,TanuloTanugyiAdatok.          C_VENDEG
      ,TanuloTanugyiAdatok.          C_NAPLOSORSZAM
      ,TanuloTanugyiAdatok.          C_TORZSLAPSZAM
      ,TanuloTanugyiAdatok.          C_TANTERVID
      ,TanuloTanugyiAdatok.          C_FELVETELTANEVEID
      ,TanuloTanugyiAdatok.          C_HOZOTTIGAZOLATLANHIANYZAS
      ,TanuloTanugyiAdatok.          C_HOZOTTIGAZOLATLANKESESPERCBE
      ,TanuloTanugyiAdatok.          C_HOZOTTIGAZOLTHIANYZAS
      ,TanuloTanugyiAdatok.          C_HOZOTTIGAZOLTKESESPERCBEN
      ,TanuloTanugyiAdatok.          C_ISESL16EVESUTANBELEPETT
      ,TanuloTanugyiAdatok.          C_BIZONYITVANYSZAMA
      ,TanuloTanugyiAdatok.TanuloCsoportId  C_TANULOCSOPORTID

      ,TanuloTanugyiAdatok.          C_INTEZMENYID
      ,TanuloTanugyiAdatok.          C_TANEVID
      ,TanuloTanugyiAdatok.          TOROLT
      ,TanuloTanugyiAdatok.          SERIAL
      ,TanuloTanugyiAdatok.          LASTCHANGED
      ,TanuloTanugyiAdatok.          CREATED
      ,TanuloTanugyiAdatok.          MODIFIER
      ,TanuloTanugyiAdatok.          CREATOR
      ,TanuloTanugyiAdatok.          ELOZOTANEVIREKORDID
      ,TanuloTanugyiAdatok.          Operation
    FROM 
      (SELECT   
         TanuloTanugyiAdatokJsonData.*
        ,TanuloCsoport.ID      TanuloCsoportId
      FROM OPENJSON(@pImportJson,  N'lax $.ImportJson.T_TANULOTANUGYIADATOK_OSSZES')
        WITH (
           ID                INT        '$.ID'
          ,C_BEIRASINAPLOSORSZAM      NVARCHAR(50)  '$.C_BEIRASINAPLOSORSZAM'
          ,C_BEJARO            CHAR(1)      '$.C_BEJARO'
          ,C_DIAKSPORTKOROS        CHAR(1)      '$.C_DIAKSPORTKOROS'
          ,C_EGYEBORSZAGOSDONTO      CHAR(1)      '$.C_EGYEBORSZAGOSDONTO'
          ,C_EGYUTTMUKODESES        CHAR(1)      '$.C_EGYUTTMUKODESES'
          ,C_ELOZOINTEZMENY        NVARCHAR(255)  '$.C_ELOZOINTEZMENY'
          ,C_EVISMETLO          CHAR(1)      '$.C_EVISMETLO'
          ,C_ISKOLAIKERETEKKOZOTT      CHAR(1)      '$.C_ISKOLAIKERETEKKOZOTT'
          ,C_JOGVISZONYATSZUNETELTETO    CHAR(1)      '$.C_JOGVISZONYATSZUNETELTETO'
          ,C_JOGVISZONYVARHATOBEFEJEZESE  DATETIME    '$.C_JOGVISZONYVARHATOBEFEJEZESE'
          ,C_MAGANTANULO          CHAR(1)      '$.C_MAGANTANULO'
          ,C_MAGANTANULOSAGANAKOKAID    INT        '$.C_MAGANTANULOSAGANAKOKAID'
          ,C_MAGANTANULOSAGKEZDETE    DATETIME    '$.C_MAGANTANULOSAGKEZDETE'
          ,C_NYILVANTARTASKEZDETE      DATETIME    '$.C_NYILVANTARTASKEZDETE'
          ,C_OSZTV            CHAR(1)      '$.C_OSZTV'
          ,C_POLGARISZERZODESES      CHAR(1)      '$.C_POLGARISZERZODESES'
          ,C_SZAKMAIGYAKORLATON      CHAR(1)      '$.C_SZAKMAIGYAKORLATON'
          ,C_SZETVAGAZAT          CHAR(1)      '$.C_SZETVAGAZAT'
          ,C_SZINTVIZSGA          NUMERIC(10, 2)  '$.C_SZINTVIZSGA'
          ,C_SZKTV            CHAR(1)      '$.C_SZKTV'
          ,C_TANDIJATFIZETO        CHAR(1)      '$.C_TANDIJATFIZETO'
          ,C_TANKOTELEZETT        CHAR(1)      '$.C_TANKOTELEZETT'
          ,C_TANKOTELEZETTSEGVEGE      DATETIME    '$.C_TANKOTELEZETTSEGVEGE'
          ,C_TANULOEVFOLYAMTIPUSID    INT        '$.C_TANULOEVFOLYAMTIPUSID'
          ,C_TANULOSZERZODESES      CHAR(1)      '$.C_TANULOSZERZODESES'
          ,C_TECHNIKUSIEVFOLYAM      CHAR(1)      '$.C_TECHNIKUSIEVFOLYAM'
          ,C_TERITESIDIJATFIZETO      CHAR(1)      '$.C_TERITESIDIJATFIZETO'
          ,C_VENDEG            CHAR(1)      '$.C_VENDEG'
          ,C_NAPLOSORSZAM          INT        '$.C_NAPLOSORSZAM'
          ,C_TORZSLAPSZAM          NVARCHAR(500)  '$.C_TORZSLAPSZAM'
          ,C_TANTERVID          INT        '$.C_TANTERVID'
          ,C_FELVETELTANEVEID        INT        '$.C_FELVETELTANEVEID'
          ,C_HOZOTTIGAZOLATLANHIANYZAS  INT        '$.C_HOZOTTIGAZOLATLANHIANYZAS'
          ,C_HOZOTTIGAZOLATLANKESESPERCBE  INT        '$.C_HOZOTTIGAZOLATLANKESESPERCBE'
          ,C_HOZOTTIGAZOLTHIANYZAS    INT        '$.C_HOZOTTIGAZOLTHIANYZAS'
          ,C_HOZOTTIGAZOLTKESESPERCBEN  INT        '$.C_HOZOTTIGAZOLTKESESPERCBEN'
          ,C_ISESL16EVESUTANBELEPETT    CHAR(1)      '$.C_ISESL16EVESUTANBELEPETT'
          ,C_BIZONYITVANYSZAMA      NVARCHAR(50)  '$.C_BIZONYITVANYSZAMA'

          ,C_INTEZMENYID          INT        '$.C_INTEZMENYID'
          ,C_TANEVID            INT        '$.C_TANEVID'
          ,TOROLT              CHAR(1)      '$.TOROLT'
          ,SERIAL              INT        '$.SERIAL'
          ,LASTCHANGED          DATETIME    '$.LASTCHANGED'
          ,CREATED            DATETIME    '$.CREATED'
          ,MODIFIER            INT        '$.MODIFIER'
          ,CREATOR            INT        '$.CREATOR'
          ,ELOZOTANEVIREKORDID      INT        '$.ELOZOTANEVIREKORDID'

          ,Operation            INT        '$.Operation'

          ,OsztalyCsoportId        INT        '$.OsztalyCsoportId'
          ,TanuloId            INT        '$.TanuloId'
        ) TanuloTanugyiAdatokJsonData               
      INNER JOIN
        T_TANULOCSOPORT_OSSZES TanuloCsoport ON
            TanuloCsoport.C_OSZTALYCSOPORTID  = TanuloTanugyiAdatokJsonData.OsztalyCsoportId
          AND TanuloCsoport.C_TANULOID      = TanuloTanugyiAdatokJsonData.TanuloId
          AND TanuloCsoport.C_BELEPESDATUM    = @pBesorolasDatum
          AND TanuloCsoport.C_INTEZMENYID      = @pIntezmenyId
          AND TanuloCsoport.C_TANEVID        = @pTanevId
          AND TanuloCsoport.TOROLT        = 'F'
            INNER JOIN
                T_TANULO_OSSZES Tanulo ON        
            Tanulo.ID              = TanuloCsoport.C_TANULOID
          AND Tanulo.C_ALINTEZMENYID        = @pIntezmenyId
          AND  Tanulo.C_ALTANEVID          = @pTanevId
          AND Tanulo.TOROLT            = 'F'
            INNER JOIN
                T_FELHASZNALO_OSSZES Felhasznalo ON        
            Felhasznalo.ID            = TanuloCsoport.C_TANULOID
          AND Felhasznalo.C_INTEZMENYID      = @pIntezmenyId
          AND  Felhasznalo.C_TANEVID        = @pTanevId
          AND Felhasznalo.TOROLT          = 'F'
            INNER JOIN
                T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON        
            OsztalyCsoport.ID          = TanuloCsoport.C_OSZTALYCSOPORTID
          AND OsztalyCsoport.C_INTEZMENYID    = @pIntezmenyId
          AND  OsztalyCsoport.C_TANEVID      = @pTanevId
          AND OsztalyCsoport.TOROLT        = 'F'
      ) AS TanuloTanugyiAdatok
    FOR JSON PATH,INCLUDE_NULL_VALUES)

  SET @actualJson = @actualJson + ' } }'
  
  EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0

END

GO

