kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170505154512_KRETA_786/sp_HozzaferesGeneralas.sql
2024-03-13 00:33:46 +01:00

116 lines
3.2 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_HozzaferesGeneralas]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_HozzaferesGeneralas]
END
GO
CREATE PROCEDURE [dbo].[sp_HozzaferesGeneralas]
@xml xml,
@tanevID int,
@intezmenyID int,
@userId int
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @tbl TABLE (
C_ID int,
C_USERNAME nvarchar(50),
C_PASSWORD nvarchar(50),
C_GONDVISELOID int,
C_NEMGENERALHATO char(1),
C_SO nvarchar(50))
INSERT INTO @tbl
SELECT
sor.value('number((Id)[1])', 'int') AS C_ID,
sor.value('(UserName)[1]', 'nvarchar(50)') AS C_USERNAME,
sor.value('(Password)[1]', 'nvarchar(50)') AS C_PASSWORD,
sor.value('number((GondviseloId)[1])', 'int') AS C_GONDVISELOID,
sor.value('(NemGeneralhato)[1]', 'char(1)') AS C_NEMGENERALHATO,
sor.value('(Salt)[1]', 'nvarchar(50)') AS C_SO
FROM @xml.nodes('/BelepesiAdatok/BelepesiAdatokLista/BelepesiAdat') as sorok(sor)
BEGIN TRANSACTION
UPDATE belepes
SET
belepes.TOROLT = 'T'
,belepes.SERIAL = belepes.SERIAL+1
,belepes.LASTCHANGED = GETDATE()
,belepes.MODIFIER = @userId
FROM T_FELHASZNALOBELEPES belepes
WHERE belepes.C_FElHASZNALOID IN (SELECT C_ID FROM @tbl WHERE C_GONDVISELOID =-1)
AND C_INTEZMENYID = @intezmenyID
AND C_TANEVID= @tanevID
AND C_GONDVISELOID IS NULL
AND TOROLT = 'F'
UPDATE belepes
SET
belepes.TOROLT = 'T'
,belepes.SERIAL = belepes.SERIAL+1
,belepes.LASTCHANGED = GETDATE()
,belepes.MODIFIER = @userId
FROM T_FELHASZNALOBELEPES belepes
WHERE belepes.C_GONDVISELOID IN (SELECT C_GONDVISELOID FROM @tbl WHERE C_GONDVISELOID <> -1)
AND C_INTEZMENYID = @intezmenyID
AND C_TANEVID= @tanevID
AND C_GONDVISELOID IS NOT NULL
AND TOROLT = 'F'
INSERT INTO [T_FELHASZNALOBELEPES]
([C_KOTELEZOVALTOZTATNI]
,[C_MEGHIUSULTBELEPESEK]
,[C_UTOLSOBELEPES]
,[C_JELSZO]
,[C_JELSZOVALTOZTATASIDEJE]
,[C_SO]
,[C_BEJELENTKEZESINEV]
,[C_NEPTUNNAPLOJELSZO]
,[C_FELHASZNALOID]
,[C_GONDVISELOID]
,[C_INTEZMENYID]
,[C_TANEVID]
,[TOROLT]
,[SERIAL]
,[LASTCHANGED]
,[CREATED]
,[MODIFIER]
,[CREATOR])
SELECT
'T' AS C_KOTELEZOVALTOZTATNI
,NULL AS C_MEGHIUSULTBELEPESEK
,NULL AS C_UTOLSOBELEPES
,t.C_PASSWORD AS C_JELSZO
,NULL AS C_JELSZOVALTOZTATASIDEJE
,t.C_SO AS C_SO
,t.C_USERNAME C_BEJELENTKEZESINEV
,NULL AS C_NEPTUNNAPLOJELSZO
,t.C_ID AS C_FELHASZNALOID
,IIF(t.C_GONDVISELOID=-1, NULL, (t.C_GONDVISELOID)) AS C_GONDVISELOID
,@intezmenyID AS C_INTEZMENYID
,@tanevID AS C_TANEVID
,'F' AS TOROLT
,0 AS SERIAL
,NULL LASTCHANGED
,GETDATE() AS CREATED
,NULL AS MODIFIER
,@userId AS CREATOR
FROM @tbl t
WHERE t.C_NEMGENERALHATO = 'F'
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END