kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspBankszamlaIgenyles.sql
2024-03-13 00:33:46 +01:00

50 lines
No EOL
2.3 KiB
Transact-SQL

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