117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			117 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
 |