﻿DROP PROCEDURE IF EXISTS uspBankszamlaIgenyles
GO

CREATE PROCEDURE uspBankszamlaIgenyles
   @EgyediAzonosito nvarchar(36)
  ,@BankszamlaSzam nvarchar(24)
  ,@BankszamlaTulajdonosTipusId int
AS BEGIN
  DROP TABLE IF EXISTS #TMPTable
  CREATE TABLE #TMPTable(
     EgyediAzonosito nvarchar(100) PRIMARY KEY
    ,BankszamlaSzam nvarchar(24)
    ,IsError bit
    ,ErrorText nvarchar(500)
    ,IntezmenyAzonosito nvarchar(100)
    ,BankszamlaTulajdonosNeve nvarchar(100))

  INSERT INTO #TMPTable(EgyediAzonosito,BankszamlaSzam) VALUES(@EgyediAzonosito,@BankszamlaSzam)
  
  -- AlreadyExists validacio
  UPDATE tmp SET 
     tmp.IntezmenyAzonosito = i.C_AZONOSITO
    ,tmp.BankszamlaTulajdonosNeve = felh.C_NYOMTATASINEV
    ,tmp.ErrorText = IIF(t.C_BANKSZAMLASZAM IS NOT NULL AND t.C_BANKSZAMLASZAM <> '','A tanuló már rendelkezik bankszámlaszámmal','')
    ,tmp.IsError = IIF(t.C_BANKSZAMLASZAM IS NOT NULL AND t.C_BANKSZAMLASZAM <> '',1,0)
  FROM #TMPTable tmp 
  INNER JOIN T_FELHASZNALO felh ON felh.C_EGYEDIAZONOSITO COLLATE HUNGARIAN_CI_AI = tmp.EgyediAzonosito  COLLATE HUNGARIAN_CI_AI AND felh.TOROLT = 'F'
  INNER JOIN T_TANULO t ON t.ID = felh.ID AND t.C_ALTANEVID = felh.C_TANEVID AND t.C_ALINTEZMENYID = felh.C_INTEZMENYID AND t.TOROLT = 'F'
  INNER JOIN T_TANEV tanev On tanev.ID = felh.C_TANEVID AND tanev.TOROLT='F' AND (tanev.C_AKTIV = 'T' OR tanev.C_KOVETKEZO = 'T') 
  INNER JOIN T_INTEZMENY i ON i.ID = felh.C_INTEZMENYID AND i.TOROLT = 'F'

  UPDATE tanulo 
  SET 
     tanulo.C_BANKSZAMLASZAM = tmp.BankszamlaSzam
    ,tanulo.C_BANKSZAMLATULAJDONOSTIPUSID = @BankszamlaTulajdonosTipusId
    ,tanulo.C_BANKSZAMLATULAJNEVE = tmp.BankszamlaTulajdonosNeve
    ,tanulo.SERIAL = tanulo.SERIAL + 1
    ,tanulo.LASTCHANGED = GETDATE()
    ,tanulo.MODIFIER = -5 --BankszamlaIgenylesJob
  FROM T_TANULO tanulo 
  INNER JOIN T_FELHASZNALO felh ON felh.Id = tanulo.ID AND felh.TOROLT = 'F'
  INNER JOIN T_TANEV tanev On tanev.ID = felh.C_TANEVID AND tanev.TOROLT='F' AND (tanev.C_AKTIV = 'T' OR tanev.C_KOVETKEZO = 'T') 
  INNER JOIN T_INTEZMENY i ON i.ID = felh.C_INTEZMENYID AND i.TOROLT = 'F'
  INNER JOIN #TMPTable tmp ON tmp.EgyediAzonosito COLLATE HUNGARIAN_CI_AI = felh.C_EGYEDIAZONOSITO COLLATE HUNGARIAN_CI_AI
  WHERE tanulo.TOROLT = 'F' AND tmp.IsError = 0

  SELECT * FROM #TMPTable

END
GO