﻿-- ===============================================================
-- Author: Szekeres András
-- Create date:  2018.04.24.
-- Description:  
--    Egy tanuló adatainak frissítése a következõ tanévre
--    Ha a tanuló nem törölt egyik évben sem
-- ===============================================================

IF OBJECT_ID('sp_FollowUpTanulo') IS NOT NULL BEGIN
  DROP PROCEDURE sp_FollowUpTanulo
END;
GO

CREATE PROCEDURE sp_FollowUpTanulo
  @intezmenyId int,
  @aktTanevId int,
  @kovTanevId int,
  @tanuloId int
AS
BEGIN

  DECLARE @kovTanuloId int;

  
  SELECT @kovTanuloId = kov.ID
  FROM T_FELHASZNALO_OSSZES akt
    INNER JOIN T_FELHASZNALO_OSSZES kov ON akt.C_OKTATASIAZONOSITO = kov.C_OKTATASIAZONOSITO 
  WHERE akt.ID = @tanuloId
    AND akt.C_INTEZMENYID = @intezmenyId
    AND akt.C_TANEVID = @aktTanevId
    AND kov.C_TANEVID = @kovTanevId 
    AND kov.C_INTEZMENYID = @intezmenyId

  IF @kovTanuloId IS NULL OR (SELECT TOROLT FROM T_FELHASZNALO_OSSZES WHERE ID = @tanuloId) = 'T' OR (SELECT TOROLT FROM T_FELHASZNALO_OSSZES WHERE ID = @kovTanuloId) = 'T' BEGIN
    RETURN
  END 

 
  UPDATE kov SET
    kov.C_ALLAMIGONDOZOTT = akt.C_ALLAMIGONDOZOTT
    ,kov.C_BANKSZAMLASZAM = akt.C_BANKSZAMLASZAM
    ,kov.C_BEILLESZKEDESINEHEZSEG = akt.C_BEILLESZKEDESINEHEZSEG
    ,kov.C_BEIRASINAPLOSORSZAM = akt.C_BEIRASINAPLOSORSZAM
    ,kov.C_BEJARO = akt.C_BEJARO
    ,kov.C_DIAKIGAZOLVANYKELTE = akt.C_DIAKIGAZOLVANYKELTE
    ,kov.C_DIAKIGAZOLVANYSZAM = akt.C_DIAKIGAZOLVANYSZAM
    ,kov.C_ELOZOINTEZMENY = akt.C_ELOZOINTEZMENY
    ,kov.C_EVISMETLO = akt.C_EVISMETLO
    ,kov.C_INGYENESTANKONVYELLATASA = akt.C_INGYENESTANKONVYELLATASA
    ,kov.C_JOGVISZONYATSZUNETELTETO = akt.C_JOGVISZONYATSZUNETELTETO
    ,kov.C_MAGANTANULO = akt.C_MAGANTANULO
    ,kov.C_MAGANTANULOSAGANAKOKA = akt.C_MAGANTANULOSAGANAKOKA
    ,kov.C_MAGANTANULOSAGKEZDETE = akt.C_MAGANTANULOSAGKEZDETE
    ,kov.C_POLGARISZERZODESES = akt.C_POLGARISZERZODESES
    ,kov.C_SZAKMAIGYAKORLATON = akt.C_SZAKMAIGYAKORLATON
    ,kov.C_SZOCIALISTAMOGATAS = akt.C_SZOCIALISTAMOGATAS
    ,kov.C_TANDIJATFIZETO = akt.C_TANDIJATFIZETO
    ,kov.C_TANKOTELEZETT = akt.C_TANKOTELEZETT
    ,kov.C_TANKOTELEZETTSEGVEGE = akt.C_TANKOTELEZETTSEGVEGE
    ,kov.C_TANULOSZERZODESES = akt.C_TANULOSZERZODESES
    ,kov.C_TERITESIDIJATFIZETO = akt.C_TERITESIDIJATFIZETO
    ,kov.C_TESTNEVELESTIPUSA = akt.C_TESTNEVELESTIPUSA
    ,kov.C_VENDEG = akt.C_VENDEG
    ,kov.C_BTMPROBLEMAS = akt.C_BTMPROBLEMAS
    ,kov.C_DIAKSPORTKOROS = akt.C_DIAKSPORTKOROS
    ,kov.C_EGYHAZKOZOSSEGE = akt.C_EGYHAZKOZOSSEGE
    ,kov.C_ETKEZESIKEDVEZMENY = akt.C_ETKEZESIKEDVEZMENY
    ,kov.C_HALMOZOTTANFOGYATEKOS = akt.C_HALMOZOTTANFOGYATEKOS
    ,kov.C_HATRANYOSHELYZETU = akt.C_HATRANYOSHELYZETU
    ,kov.C_KOLLEGIUMIELLATASOS = akt.C_KOLLEGIUMIELLATASOS
    ,kov.C_RENDSZERESGYERMEKVEDELMIKEDV = akt.C_RENDSZERESGYERMEKVEDELMIKEDV
    ,kov.C_SAJATOSNEVELESU = akt.C_SAJATOSNEVELESU
    ,kov.C_SPORTAG = akt.C_SPORTAG
    ,kov.C_SPORTEDZONEVE = akt.C_SPORTEDZONEVE
    ,kov.C_SPORTKLUB = akt.C_SPORTKLUB
    ,kov.C_SZAKKEPESITESSZAMA = akt.C_SZAKKEPESITESSZAMA
    ,kov.C_TANULOIJOGVISZONYOSELTARTOTT = akt.C_TANULOIJOGVISZONYOSELTARTOTT
    ,kov.C_TARTOSGYOGYKEZELESSZAMA = akt.C_TARTOSGYOGYKEZELESSZAMA
    ,kov.C_TOBBGYERMEKIGAZOLASSZAMA = akt.C_TOBBGYERMEKIGAZOLASSZAMA
    ,kov.C_VALLASA = akt.C_VALLASA
    ,kov.C_VESZELYEZTETETT = akt.C_VESZELYEZTETETT
    ,kov.C_JOGVISZONYVARHATOBEFEJEZESE = akt.C_JOGVISZONYVARHATOBEFEJEZESE
    ,kov.C_BEILLESZKEDESIPROBLEMAVALKUZ = akt.C_BEILLESZKEDESIPROBLEMAVALKUZ
    ,kov.C_BESZEDFOGYATEKOSOKMANYSZAM = akt.C_BESZEDFOGYATEKOSOKMANYSZAM
    ,kov.C_BNOKOD = akt.C_BNOKOD
    ,kov.C_BTMHATAROZATOKMANYSZAM = akt.C_BTMHATAROZATOKMANYSZAM
    ,kov.C_BTMHATAROZATTARTALMA = akt.C_BTMHATAROZATTARTALMA
    ,kov.C_BTMKIALLITOINTEZMENY = akt.C_BTMKIALLITOINTEZMENY
    ,kov.C_BTMKONTROLLIDOPONT = akt.C_BTMKONTROLLIDOPONT
    ,kov.C_BTMLETSZAMSULY = akt.C_BTMLETSZAMSULY
    ,kov.C_BTMOKMANYERVENYESSEGKEZDETE = akt.C_BTMOKMANYERVENYESSEGKEZDETE
    ,kov.C_BTMOKMANYERVENYESSEGVEGE = akt.C_BTMOKMANYERVENYESSEGVEGE
    ,kov.C_DISZGRAFIAOKMANYSZAM = akt.C_DISZGRAFIAOKMANYSZAM
    ,kov.C_DISZKALKULIAOKMANYSZAM = akt.C_DISZKALKULIAOKMANYSZAM
    ,kov.C_DISZLEXIAOKMANYSZAM = akt.C_DISZLEXIAOKMANYSZAM
    ,kov.C_ERTELMIFOGYATEKOS = akt.C_ERTELMIFOGYATEKOS
    ,kov.C_ERTELMIFOGYATEKOSOKMANYSZAM = akt.C_ERTELMIFOGYATEKOSOKMANYSZAM
    ,kov.C_FEJLESZTESREKIJELOLT = akt.C_FEJLESZTESREKIJELOLT
    ,kov.C_FEJLESZTOFOGLALKOZAS = akt.C_FEJLESZTOFOGLALKOZAS
    ,kov.C_FEJLESZTOFOGLALKOZASORASZAM = akt.C_FEJLESZTOFOGLALKOZASORASZAM
    ,kov.C_HALLASSERULT = akt.C_HALLASSERULT
    ,kov.C_HALLASSERULTOKMANYSZAM = akt.C_HALLASSERULTOKMANYSZAM
    ,kov.C_LATASSERULT = akt.C_LATASSERULT
    ,kov.C_LATASSERULTOKMANYSZAM = akt.C_LATASSERULTOKMANYSZAM
    ,kov.C_MAGATARTASIPROBLEMAVALKUZD = akt.C_MAGATARTASIPROBLEMAVALKUZD
    ,kov.C_MEGISMERONEMORGANIKUSOKMANYS = akt.C_MEGISMERONEMORGANIKUSOKMANYS
    ,kov.C_MEGISMEROORGANIKUSOKMANYSZAM = akt.C_MEGISMEROORGANIKUSOKMANYSZAM
    ,kov.C_MOZGASSERULTOKMANYSZAM = akt.C_MOZGASSERULTOKMANYSZAM
    ,kov.C_SNIKIALLITOINTEZMENY = akt.C_SNIKIALLITOINTEZMENY
    ,kov.C_SNIKONTROLLIDOPONT = akt.C_SNIKONTROLLIDOPONT
    ,kov.C_SNILETSZAMSULY = akt.C_SNILETSZAMSULY
    ,kov.C_SNIMEGHATAROZAS = akt.C_SNIMEGHATAROZAS
    ,kov.C_SNIOKMANYERVENYESSEGKEZDETE = akt.C_SNIOKMANYERVENYESSEGKEZDETE
    ,kov.C_SNIOKMANYERVENYESSEGVEGE = akt.C_SNIOKMANYERVENYESSEGVEGE
    ,kov.C_TANULASIPROBLEMADISZGRAFIA = akt.C_TANULASIPROBLEMADISZGRAFIA
    ,kov.C_TANULASIPROBLEMAVALKUZD = akt.C_TANULASIPROBLEMAVALKUZD
    ,kov.C_TANULASIPROBLEMAVALKUZDDISZK = akt.C_TANULASIPROBLEMAVALKUZDDISZK
    ,kov.C_TANULASIPROBLEMAVALKUZDDISZL = akt.C_TANULASIPROBLEMAVALKUZDDISZL
    ,kov.C_VISELKEDESNEMORGANIKUSOKMANY = akt.C_VISELKEDESNEMORGANIKUSOKMANY
    ,kov.C_VISELKEDESORGANIKUSOKMANYSZA = akt.C_VISELKEDESORGANIKUSOKMANYSZA
    ,kov.C_ELSOINTEZMENYOMKOD = akt.C_ELSOINTEZMENYOMKOD
    ,kov.C_EVISMETLOTANTARGYAK = akt.C_EVISMETLOTANTARGYAK
    ,kov.C_KOZEPFOKUOKTATASBATIZENHATOD = akt.C_KOZEPFOKUOKTATASBATIZENHATOD
    ,kov.C_MENEDEKJOGGALRENDELKEZO = akt.C_MENEDEKJOGGALRENDELKEZO
    ,kov.C_EGYEBDONTO = akt.C_EGYEBDONTO
    ,kov.C_MEGALLAPODASOS = akt.C_MEGALLAPODASOS
    ,kov.C_OSZTV = akt.C_OSZTV
    ,kov.C_SZETVAGAZAT = akt.C_SZETVAGAZAT
    ,kov.C_SZINTVIZSGA = akt.C_SZINTVIZSGA
    ,kov.C_SZKTV = akt.C_SZKTV
    ,kov.C_TECHNIKUSIEVFOLYAM = akt.C_TECHNIKUSIEVFOLYAM
    ,kov.C_EGYUTTMUKODESES = akt.C_EGYUTTMUKODESES
    ,kov.C_ISKOLAIKERETEKKOZOTT = akt.C_ISKOLAIKERETEKKOZOTT
    ,kov.C_TANTERVID = (SELECT TOP(1) tt.ID FROM T_TANTERV_OSSZES tt WHERE tt.ELOZOTANEVIREKORDID = akt.C_TANTERVID AND tt.TOROLT = 'F')
    ,kov.C_FELVETELTANEVEID = akt.C_FELVETELTANEVEID
    ,kov.SERIAL = kov.SERIAL + 1
    ,kov.LASTCHANGED = GETDATE()
  FROM T_TANULO_OSSZES kov
    INNER JOIN T_TANULO_OSSZES akt ON kov.ID = @kovTanuloId AND akt.ID = @tanuloId

  UPDATE kov SET
     kov.C_NEME = akt.C_NEME
    ,kov.C_SZULETESIDATUM = akt.C_SZULETESIDATUM
    ,kov.C_SZULETESINEV = akt.C_SZULETESINEV
    ,kov.C_ANYJANEVE = akt.C_ANYJANEVE
    ,kov.C_SZULETESIHELY = akt.C_SZULETESIHELY
    ,kov.C_TAJSZAM = akt.C_TAJSZAM
    ,kov.C_ALLAMPOLGARSAGA = akt.C_ALLAMPOLGARSAGA
    ,kov.C_LEIRAS = akt.C_LEIRAS
    ,kov.C_KERESESINEV = akt.C_KERESESINEV
    ,kov.C_SZULETESIORSZAG = akt.C_SZULETESIORSZAG
    ,kov.C_SZULETESINEVSORREND = akt.C_SZULETESINEVSORREND
    ,kov.C_ANYJANEVESORREND = akt.C_ANYJANEVESORREND
    ,kov.C_ALAPERTELMEZETTLCID = akt.C_ALAPERTELMEZETTLCID
    ,kov.C_LATASSERULTWEBHASZNALATA = akt.C_LATASSERULTWEBHASZNALATA
    ,kov.C_SMSSZAM = akt.C_SMSSZAM
    ,kov.C_SMSSZINKRONIZALT = akt.C_SMSSZINKRONIZALT
    ,kov.C_KELLADSZINKRONIZALAS = akt.C_KELLADSZINKRONIZALAS
    ,kov.C_SZULETESINEVELVALASZTO = akt.C_SZULETESINEVELVALASZTO
    ,kov.C_ANYJANEVEELVALASZTO = akt.C_ANYJANEVEELVALASZTO
    ,kov.C_DMSTARTTIME = akt.C_DMSTARTTIME
    ,kov.C_NYOMTATASINEV = akt.C_NYOMTATASINEV
    ,kov.C_UTONEV = akt.C_UTONEV
    ,kov.C_VEZETEKNEV = akt.C_VEZETEKNEV
    ,kov.C_ADOSZAM = akt.C_ADOSZAM
    ,kov.C_ELOTAG = akt.C_ELOTAG
    ,kov.C_ANYANYELVE = akt.C_ANYANYELVE
    ,kov.C_IGAZOLVANYSZAM = akt.C_IGAZOLVANYSZAM
    ,kov.C_IGAZOLVANYTIPUSA = akt.C_IGAZOLVANYTIPUSA
    ,kov.C_NEVSORREND = akt.C_NEVSORREND
    ,kov.C_NYILVANTARTASKEZDETE = akt.C_NYILVANTARTASKEZDETE
    ,kov.C_OKTATASIAZONOSITO = akt.C_OKTATASIAZONOSITO
    ,kov.C_OMKOD = akt.C_OMKOD
    ,kov.C_ALAIRAS = akt.C_ALAIRAS
    ,kov.C_PROFILKEP = akt.C_PROFILKEP
    ,kov.C_KRETAKOD = akt.C_KRETAKOD
    ,kov.C_KIRAZONOSITO = akt.C_KIRAZONOSITO
    ,kov.C_ALLAMPOLGARSAGA2 = akt.C_ALLAMPOLGARSAGA2
    ,kov.C_FENNTARTOAZONOSITO = akt.C_FENNTARTOAZONOSITO
    ,kov.SERIAL = akt.SERIAL + 1
    ,kov.LASTCHANGED = GETDATE()
  FROM T_FELHASZNALO_OSSZES kov
    INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_OKTATASIAZONOSITO = kov.C_OKTATASIAZONOSITO 
  WHERE kov.ID = @kovTanuloId
    AND akt.ID = @tanuloId

  
  UPDATE kov SET
     kov.C_KOTELEZOVALTOZTATNI = akt.C_KOTELEZOVALTOZTATNI
    ,kov.C_MEGHIUSULTBELEPESEK = akt.C_MEGHIUSULTBELEPESEK
    ,kov.C_UTOLSOBELEPES = akt.C_UTOLSOBELEPES
    ,kov.C_JELSZO = akt.C_JELSZO
    ,kov.C_JELSZOVALTOZTATASIDEJE = akt.C_JELSZOVALTOZTATASIDEJE
    ,kov.C_SO = akt.C_SO
    ,kov.C_BEJELENTKEZESINEV = akt.C_BEJELENTKEZESINEV
    ,kov.C_NEPTUNNAPLOJELSZO = akt.C_NEPTUNNAPLOJELSZO
    ,kov.C_GUID = akt.C_GUID
    ,kov.C_GONDVISELOID = akt.C_GONDVISELOID
    ,kov.SERIAL = akt.SERIAL + 1
    ,kov.LASTCHANGED = GETDATE()
  FROM T_FELHASZNALOBELEPES_OSSZES kov
    INNER JOIN T_FELHASZNALOBELEPES_OSSZES akt ON akt.C_FELHASZNALOID = @tanuloId AND akt.C_GONDVISELOID IS NULL AND akt.TOROLT = 'F' AND akt.C_TANEVID = @aktTanevId AND akt.C_INTEZMENYID = @intezmenyId
  WHERE kov.C_FELHASZNALOID = @kovTanuloId
    AND kov.C_GONDVISELOID IS NULL
    AND kov.C_TANEVID = @kovTanevId
    AND kov.TOROLT = 'F'
        
  IF @@ROWCOUNT = 0 BEGIN  -- Ha nem volt update, akkor insert
    INSERT INTO T_FELHASZNALOBELEPES_OSSZES (
       C_KOTELEZOVALTOZTATNI
      ,C_MEGHIUSULTBELEPESEK
      ,C_UTOLSOBELEPES
      ,C_JELSZO
      ,C_JELSZOVALTOZTATASIDEJE
      ,C_SO
      ,C_BEJELENTKEZESINEV
      ,C_NEPTUNNAPLOJELSZO
      ,C_GUID
      ,C_FELHASZNALOID
      ,C_GONDVISELOID
      ,C_INTEZMENYID
      ,C_TANEVID
      ,TOROLT
      ,SERIAL
      ,LASTCHANGED
      ,CREATED
      ,MODIFIER
      ,CREATOR
      ,NNID
      ,ELOZOTANEVIREKORDID
    ) SELECT
       C_KOTELEZOVALTOZTATNI
      ,C_MEGHIUSULTBELEPESEK
      ,C_UTOLSOBELEPES
      ,C_JELSZO
      ,C_JELSZOVALTOZTATASIDEJE
      ,C_SO
      ,C_BEJELENTKEZESINEV
      ,C_NEPTUNNAPLOJELSZO
      ,C_GUID
      ,@kovTanuloId
      ,C_GONDVISELOID
      ,C_INTEZMENYID
      ,@kovTanevId
      ,TOROLT
      ,0
      ,GETDATE()
      ,GETDATE()
      ,MODIFIER
      ,MODIFIER
      ,NULL
      ,ID
    FROM T_FELHASZNALOBELEPES_OSSZES akt
    WHERE akt.C_FELHASZNALOID = @tanuloId
      AND akt.C_GONDVISELOID IS NULL
      AND akt.TOROLT = 'F'
      AND akt.C_TANEVID = @aktTanevId
      AND akt.C_INTEZMENYID = @intezmenyId;
  END  

  EXEC sp_FollowUpTanuloCim @intezmenyId, @aktTanevId, @kovTanevId, @tanuloId;
  EXEC sp_FollowUpTanuloEmail @intezmenyId, @aktTanevId, @kovTanevId, @tanuloId;
  EXEC sp_FollowUpTanuloFelmentes @intezmenyId, @aktTanevId, @kovTanevId, @tanuloId;
  EXEC sp_FollowUpTanuloTelefon @intezmenyId, @aktTanevId, @kovTanevId, @tanuloId;

END
GO
