SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'WMAN_PermisosDatosPlanilla_GetInfo') )
DROP PROCEDURE WMAN_PermisosDatosPlanilla_GetInfo
GO

CREATE PROCEDURE WMAN_PermisosDatosPlanilla_GetInfo
	@id  INT
AS
BEGIN

	create table #TEMPPERMISO
	(
		id_datos INT,
		activo INT not null default(0),
		descripcion VARCHAR(32),
		base_datos VARCHAR(30),
		desc_modulo VARCHAR(50)
	)
	
	INSERT INTO #TEMPPERMISO
	SELECT D.id_datos,0, D.descripcion, D.base_datos,  M.desc_modulo
	FROM  Datos D
	LEFT JOIN dbo.Modulo M ON  D.id_modulo = M.id_modulo
	order by descripcion
	
	UPDATE #TEMPPERMISO
	SET activo = 1
	Where  id_datos IN (select A.id_datos from Acceso_Tipo A INNER JOIN Datos D ON D.id_datos = A.id_datos WHERE A.id_tip_oper = @id)
	
	SELECT * FROM  #TEMPPERMISO

END
GO

---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'WMAN_PermisosDatosPlanilla_RepInfo') )
DROP PROCEDURE WMAN_PermisosDatosPlanilla_RepInfo
GO

CREATE PROCEDURE WMAN_PermisosDatosPlanilla_RepInfo
	@id int
AS
BEGIN
	
	create table #TEMPPERMISO
	(
		id_datos INT,
		activo INT not null default(0),
		descripcion VARCHAR(32),
		base_datos VARCHAR(30),
		desc_modulo VARCHAR(50)
	)
	
	INSERT INTO #TEMPPERMISO
	SELECT D.id_datos,0, D.descripcion, D.base_datos,  M.desc_modulo
	FROM  Datos D
	LEFT JOIN dbo.Modulo M ON  D.id_modulo = M.id_modulo
	order by descripcion
	
	UPDATE #TEMPPERMISO
	SET activo = 1
	Where  id_datos IN (select A.id_datos from Acceso_Tipo A INNER JOIN Datos D ON D.id_datos = A.id_datos WHERE A.id_tip_oper = @id)
	
	SELECT * FROM  #TEMPPERMISO
	WHERE activo = 1

END
GO

---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'WMAN_PermisosDatosPlanilla_PutInfo') )
DROP PROCEDURE WMAN_PermisosDatosPlanilla_PutInfo
GO

CREATE PROCEDURE WMAN_PermisosDatosPlanilla_PutInfo
	@id_datos INT,
	@id_oper INT,
	@eliminado INT
AS

BEGIN
	DECLARE @MensajeError VARCHAR(255) = ''

	IF @eliminado = 0
	BEGIN
			-- Crear select * from Acceso   SELECT * FROM syswinFOR
			
			SET IDENTITY_INSERT Acceso_Tipo ON
			
				declare @valor_llave INT
				SET @valor_llave= IDENT_CURRENT ('Acceso_Tipo');
				select @valor_llave
				
				UPDATE syswinFOR
				SET valor_llave = @valor_llave+1
				WHERE desc_tabla = 'Acceso_Tipo'
			
				INSERT INTO Acceso_Tipo
				(
					id_acceso_oper,id_datos, id_tip_oper
				)
				VALUES
				(
					@valor_llave+1,@id_datos,@id_oper
				)
				
				SET IDENTITY_INSERT Acceso_Tipo OFF

				SET @eliminado = @valor_llave
	END
	ELSE
		BEGIN
				DELETE FROM Acceso_Tipo WHERE id_datos = @id_datos and id_tip_oper = @id_oper
		END
	
	SELECT (@valor_llave+1) AS Id
	
	RETURN

	ERROR:
		RAISERROR (@MensajeError, 16, 1)

END
GO

--select * from Acceso where id_oper = 137   select * from Acceso   SELECT * FROM syswinFOR

--exec sp_executesql N'EXEC WMAN_Permisos_PutInfo @id_datos, @id_oper,@eliminado',
--N'@id_datos int,@id_oper int,@eliminado int',
--@id_datos=169,@id_oper=137,@eliminado=0

