IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[reg_gui_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[reg_gui_funcionalidad]
GO
CREATE PROCEDURE [reg_gui_funcionalidad]
	@p_id INT
AS
BEGIN
	SELECT 	[id] AS [id],
		[uid] AS [uid],
		[eid] AS [eid],
		[id_usuario_modifico] AS [id_usuario_modifico],
		[id_usuario_creo] AS [id_usuario_creo],
		[fechaModificacion] AS [fechaModificacion],
		[fechaCreacion] AS [fechaCreacion],
		[active] AS [active],
		[funcionalidad] AS [funcionalidad],
		[funcionalidad_codigo] AS [funcionalidad_codigo],
		[urlImagen] AS [urlImagen],
		[urlFormulario] AS [urlFormulario],
		[targetUrl] AS [targetUrl],
		[url] AS [url],
		[toolTip] AS [toolTip],
		[esMenu] AS [esMenu],
		[nombreControl] AS [nombreControl],
		[nombreComando] AS [nombreComando],
		[orden] AS [orden],
		[id_funcionalidad] AS [id_funcionalidad],
		[id_tipoFuncionalidad] AS [id_tipoFuncionalidad],
		[esMvc] AS [esMvc],
		[id_aplicacion] AS [id_aplicacion]
	FROM [gui_funcionalidad]
	WHERE	(id = @p_id)

END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[view_gui_funcionalidad]')) DROP VIEW [dbo].[view_gui_funcionalidad]
GO
CREATE  VIEW [view_gui_funcionalidad] AS
SELECT 	[gui_funcionalidad].[id] AS [id],
		[gui_funcionalidad].[uid] AS [uid],
		[gui_funcionalidad].[eid] AS [eid],
		[gui_funcionalidad].[id_usuario_modifico] AS [id_usuario_modifico],
		[gui_funcionalidad].[id_usuario_creo] AS [id_usuario_creo],
		[gui_funcionalidad].[fechaModificacion] AS [fechaModificacion],
		[gui_funcionalidad].[fechaCreacion] AS [fechaCreacion],
		[gui_funcionalidad].[active] AS [active],
		[gui_funcionalidad].[funcionalidad] AS [funcionalidad],
		[gui_funcionalidad].[funcionalidad_codigo] AS [funcionalidad_codigo],
		[gui_funcionalidad].[urlImagen] AS [urlImagen],
		[gui_funcionalidad].[urlFormulario] AS [urlFormulario],
		[gui_funcionalidad].[targetUrl] AS [targetUrl],
		[gui_funcionalidad].[url] AS [url],
		[gui_funcionalidad].[toolTip] AS [toolTip],
		[gui_funcionalidad].[esMenu] AS [esMenu],
		[gui_funcionalidad].[nombreControl] AS [nombreControl],
		[gui_funcionalidad].[nombreComando] AS [nombreComando],
		[gui_funcionalidad].[orden] AS [orden],
		[gui_funcionalidad].[id_funcionalidad] AS [id_funcionalidad],
[gui_funcionalidad_padre].[funcionalidad] as [gui_funcionalidad_padre_funcionalidad],
[gui_funcionalidad_padre].[funcionalidad_codigo] as [gui_funcionalidad_padre_funcionalidad_codigo],
[gui_funcionalidad_padre].[urlImagen] as [gui_funcionalidad_padre_urlImagen],
[gui_funcionalidad_padre].[urlFormulario] as [gui_funcionalidad_padre_urlFormulario],
[gui_funcionalidad_padre].[targetUrl] as [gui_funcionalidad_padre_targetUrl],
[gui_funcionalidad_padre].[url] as [gui_funcionalidad_padre_url],
[gui_funcionalidad_padre].[toolTip] as [gui_funcionalidad_padre_toolTip],
[gui_funcionalidad_padre].[esMenu] as [gui_funcionalidad_padre_esMenu],
[gui_funcionalidad_padre].[nombreControl] as [gui_funcionalidad_padre_nombreControl],
[gui_funcionalidad_padre].[nombreComando] as [gui_funcionalidad_padre_nombreComando],
[gui_funcionalidad_padre].[orden] as [gui_funcionalidad_padre_orden],
[gui_funcionalidad_padre].[id_funcionalidad] as [gui_funcionalidad_padre_id_funcionalidad],
[gui_funcionalidad_padre].[id_tipoFuncionalidad] as [gui_funcionalidad_padre_id_tipoFuncionalidad],
[gui_funcionalidad_padre].[esMvc] as [gui_funcionalidad_padre_esMvc],
[gui_funcionalidad_padre].[id_aplicacion] as [gui_funcionalidad_padre_id_aplicacion],
		[gui_funcionalidad].[id_tipoFuncionalidad] AS [id_tipoFuncionalidad],
[gui_tipoFuncionalidad].[tipoFuncionalidad] as [gui_tipoFuncionalidad_tipoFuncionalidad],
[gui_tipoFuncionalidad].[tipoFuncionalidad_codigo] as [gui_tipoFuncionalidad_tipoFuncionalidad_codigo],
		[gui_funcionalidad].[esMvc] AS [esMvc],
		[gui_funcionalidad].[id_aplicacion] AS [id_aplicacion],
[gui_aplicacion].[aplicacion] as [gui_aplicacion_aplicacion],
[gui_aplicacion].[aplicacion_codigo] as [gui_aplicacion_aplicacion_codigo],
		[empresaCodigo].[empresa] As [multiempresa]
FROM [gui_funcionalidad]
	INNER JOIN [seg_usuario] AS [seg_usuario_modifico] ON [seg_usuario_modifico].id=[gui_funcionalidad].[id_usuario_modifico]
	INNER JOIN [seg_usuario] AS [seg_usuario_creo] ON [seg_usuario_creo].id=[gui_funcionalidad].[id_usuario_creo]
	INNER JOIN [gui_funcionalidad] AS [gui_funcionalidad_padre] ON [gui_funcionalidad_padre].id=[gui_funcionalidad].[id_funcionalidad]
	INNER JOIN [gui_tipoFuncionalidad] ON [gui_tipoFuncionalidad].id=[gui_funcionalidad].[id_tipoFuncionalidad]
	INNER JOIN [gui_aplicacion] ON [gui_aplicacion].id=[gui_funcionalidad].[id_aplicacion]
	INNER JOIN [gen_empresa] AS empresaCodigo ON [gui_funcionalidad].eid = [empresaCodigo].[codigo] and empresaCodigo.active=1
WHERE [gui_funcionalidad].active=1
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXusuario_modifico]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXusuario_modifico]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXusuario_modifico]
	@p_id_usuario_modifico INT
AS
BEGIN
	SELECT * 
	FROM [view_gui_funcionalidad]
	WHERE ([id_usuario_modifico]= @p_id_usuario_modifico)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXusuario_creo]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXusuario_creo]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXusuario_creo]
	@p_id_usuario_creo INT
AS
BEGIN
	SELECT * 
	FROM [view_gui_funcionalidad]
	WHERE ([id_usuario_creo]= @p_id_usuario_creo)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXfuncionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXfuncionalidad]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXfuncionalidad]
	@p_id_funcionalidad INT
AS
BEGIN
	SELECT * 
	FROM [view_gui_funcionalidad]
	WHERE ([id_funcionalidad]= @p_id_funcionalidad)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXtipoFuncionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXtipoFuncionalidad]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXtipoFuncionalidad]
	@p_id_tipoFuncionalidad INT
AS
BEGIN
	SELECT * 
	FROM [view_gui_funcionalidad]
	WHERE ([id_tipoFuncionalidad]= @p_id_tipoFuncionalidad)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXaplicacion]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXaplicacion]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXaplicacion]
	@p_id_aplicacion INT
AS
BEGIN
	SELECT * 
	FROM [view_gui_funcionalidad]
	WHERE ([id_aplicacion]= @p_id_aplicacion)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidades]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidades]
GO
CREATE PROCEDURE [sel_gui_funcionalidades]
	
	@p_filtro as varchar (8000) = '1=1',
	@p_orden as varchar (8000) = 'id',
	@p_campos as varchar (8000) = '*' AS
BEGIN
exec ('SELECT '+ @p_campos +
' FROM [view_gui_funcionalidad]
WHERE (' + @p_filtro + ') ORDER BY ' + @p_orden)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[lis_gui_funcionalidades]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[lis_gui_funcionalidades]
GO
CREATE PROCEDURE [lis_gui_funcionalidades]
	AS
BEGIN
	SELECT id AS id,
[funcionalidad] AS [gui_funcionalidad]
	FROM [gui_funcionalidad]
	WHERE active = 1
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[upd_gui_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[upd_gui_funcionalidad]
GO
CREATE PROCEDURE [upd_gui_funcionalidad]
	@p_id int = null,
		@p_uid varchar(500) = null,
		@p_eid varchar(50) = null,
		@p_id_usuario_modifico int = null,
		@p_id_usuario_creo int = null,
		@p_fechaCreacion smalldatetime = null,
		@p_funcionalidad varchar(300) = null,
		@p_funcionalidad_codigo varchar(100) = null,
		@p_urlImagen varchar(300) = null,
		@p_urlFormulario varchar(300) = null,
		@p_targetUrl varchar(100) = null,
		@p_url varchar(8000) = null,
		@p_toolTip varchar(8000) = null,
		@p_esMenu bit = null,
		@p_nombreControl varchar(100) = null,
		@p_nombreComando varchar(100) = null,
		@p_orden int = null,
		@p_id_funcionalidad int = null,
		@p_id_tipoFuncionalidad int = null,
		@p_esMvc bit = null,
		@p_id_aplicacion int = null
AS
BEGIN
		UPDATE [gui_funcionalidad]
		SET	[uid] = isnull(@p_uid,[uid]),
			[eid] = isnull(@p_eid,[eid]),
			[id_usuario_modifico] = isnull(@p_id_usuario_modifico,[id_usuario_modifico]),
			[id_usuario_creo] = isnull(@p_id_usuario_creo,[id_usuario_creo]),
			[fechaModificacion] = GETDATE(),
			[funcionalidad] = isnull(@p_funcionalidad,[funcionalidad]),
			[funcionalidad_codigo] = isnull(@p_funcionalidad_codigo,[funcionalidad_codigo]),
			[urlImagen] = isnull(@p_urlImagen,[urlImagen]),
			[urlFormulario] = isnull(@p_urlFormulario,[urlFormulario]),
			[targetUrl] = isnull(@p_targetUrl,[targetUrl]),
			[url] = isnull(@p_url,[url]),
			[toolTip] = isnull(@p_toolTip,[toolTip]),
			[esMenu] = isnull(@p_esMenu,[esMenu]),
			[nombreControl] = isnull(@p_nombreControl,[nombreControl]),
			[nombreComando] = isnull(@p_nombreComando,[nombreComando]),
			[orden] = isnull(@p_orden,[orden]),
			[id_funcionalidad] = isnull(@p_id_funcionalidad,[id_funcionalidad]),
			[id_tipoFuncionalidad] = isnull(@p_id_tipoFuncionalidad,[id_tipoFuncionalidad]),
			[esMvc] = isnull(@p_esMvc,[esMvc]),
			[id_aplicacion] = isnull(@p_id_aplicacion,[id_aplicacion])
		WHERE (id = @p_id)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ins_gui_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[ins_gui_funcionalidad]
GO
CREATE PROCEDURE [ins_gui_funcionalidad]
	@p_uid varchar(500),
		@p_eid varchar(50),
		@p_id_usuario_modifico int,
		@p_id_usuario_creo int,
		@p_funcionalidad varchar(300),
		@p_funcionalidad_codigo varchar(100),
		@p_urlImagen varchar(300),
		@p_urlFormulario varchar(300),
		@p_targetUrl varchar(100),
		@p_url varchar(8000),
		@p_toolTip varchar(8000),
		@p_esMenu bit,
		@p_nombreControl varchar(100),
		@p_nombreComando varchar(100),
		@p_orden int,
		@p_id_funcionalidad int,
		@p_id_tipoFuncionalidad int,
		@p_esMvc bit,
		@p_id_aplicacion int
AS
BEGIN
	DECLARE @v_id int
		INSERT INTO [gui_funcionalidad]
			([uid],
			[eid],
			[id_usuario_modifico],
			[id_usuario_creo],
			[fechaModificacion],
			[fechaCreacion],
			[funcionalidad],
			[funcionalidad_codigo],
			[urlImagen],
			[urlFormulario],
			[targetUrl],
			[url],
			[toolTip],
			[esMenu],
			[nombreControl],
			[nombreComando],
			[orden],
			[id_funcionalidad],
			[id_tipoFuncionalidad],
			[esMvc],
			[id_aplicacion])
		VALUES(	@p_uid,
			@p_eid,
			@p_id_usuario_modifico,
			@p_id_usuario_creo,
			GETDATE(),
			GETDATE(),
			@p_funcionalidad,
			@p_funcionalidad_codigo,
			@p_urlImagen,
			@p_urlFormulario,
			@p_targetUrl,
			@p_url,
			@p_toolTip,
			@p_esMenu,
			@p_nombreControl,
			@p_nombreComando,
			@p_orden,
			@p_id_funcionalidad,
			@p_id_tipoFuncionalidad,
			@p_esMvc,
			@p_id_aplicacion)
		SET @v_id = scope_identity()
UPDATE [gui_funcionalidad] set [uid] = [uid] + '_' + convert(varchar(20),@v_id) where [id]=@v_id
SELECT @v_id as id
RETURN @v_id
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[act_gui_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[act_gui_funcionalidad]
GO
CREATE PROCEDURE [act_gui_funcionalidad]
	@p_active BIT,
	@p_id INT,
@p_id_usuario_modifico int = null
AS
BEGIN
	UPDATE [gui_funcionalidad]
	SET active=@p_active,
	[id_usuario_modifico] = isnull(@p_id_usuario_modifico,[id_usuario_modifico]),
	[fechaModificacion] = GETDATE()
	WHERE	(id = @p_id)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[reg_gui_funcionalidad_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[reg_gui_funcionalidad_m]
GO
CREATE PROCEDURE [reg_gui_funcionalidad_m]
	@p_id INT,
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT 	[id] AS [id],
		[uid] AS [uid],
		[eid] AS [eid],
		[id_usuario_modifico] AS [id_usuario_modifico],
		[id_usuario_creo] AS [id_usuario_creo],
		[fechaModificacion] AS [fechaModificacion],
		[fechaCreacion] AS [fechaCreacion],
		[active] AS [active],
		[funcionalidad] AS [funcionalidad],
		[funcionalidad_codigo] AS [funcionalidad_codigo],
		[urlImagen] AS [urlImagen],
		[urlFormulario] AS [urlFormulario],
		[targetUrl] AS [targetUrl],
		[url] AS [url],
		[toolTip] AS [toolTip],
		[esMenu] AS [esMenu],
		[nombreControl] AS [nombreControl],
		[nombreComando] AS [nombreComando],
		[orden] AS [orden],
		[id_funcionalidad] AS [id_funcionalidad],
		[id_tipoFuncionalidad] AS [id_tipoFuncionalidad],
		[esMvc] AS [esMvc],
		[id_aplicacion] AS [id_aplicacion]
	FROM [gui_funcionalidad]
	WHERE	(id = @p_id)
	AND	(eid LIKE @p_eid+'%')

END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXusuario_modifico_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXusuario_modifico_m]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXusuario_modifico_m]
	@p_id_usuario_modifico INT,
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT *
	FROM [view_gui_funcionalidad]
	WHERE ([id_usuario_modifico]= @p_id_usuario_modifico)
	AND	(eid LIKE @p_eid+'%')
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXusuario_creo_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXusuario_creo_m]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXusuario_creo_m]
	@p_id_usuario_creo INT,
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT *
	FROM [view_gui_funcionalidad]
	WHERE ([id_usuario_creo]= @p_id_usuario_creo)
	AND	(eid LIKE @p_eid+'%')
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXfuncionalidad_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXfuncionalidad_m]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXfuncionalidad_m]
	@p_id_funcionalidad INT,
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT *
	FROM [view_gui_funcionalidad]
	WHERE ([id_funcionalidad]= @p_id_funcionalidad)
	AND	(eid LIKE @p_eid+'%')
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXtipoFuncionalidad_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXtipoFuncionalidad_m]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXtipoFuncionalidad_m]
	@p_id_tipoFuncionalidad INT,
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT *
	FROM [view_gui_funcionalidad]
	WHERE ([id_tipoFuncionalidad]= @p_id_tipoFuncionalidad)
	AND	(eid LIKE @p_eid+'%')
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidadesXaplicacion_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidadesXaplicacion_m]
GO
CREATE PROCEDURE [sel_gui_funcionalidadesXaplicacion_m]
	@p_id_aplicacion INT,
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT *
	FROM [view_gui_funcionalidad]
	WHERE ([id_aplicacion]= @p_id_aplicacion)
	AND	(eid LIKE @p_eid+'%')
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_gui_funcionalidades_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_gui_funcionalidades_m]
GO
CREATE PROCEDURE [sel_gui_funcionalidades_m]
	@p_eid as varchar (50)='',
	@p_filtro as varchar (8000) = '1=1',
	@p_orden as varchar (8000) = 'id',
	@p_campos as varchar (8000) = '*' AS
BEGIN
exec ('SELECT '+ @p_campos +
' FROM [view_gui_funcionalidad]
WHERE  (eid like '''+@p_eid+'%'+''' ) AND (' + @p_filtro + ') ORDER BY ' + @p_orden)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[lis_gui_funcionalidades_m]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[lis_gui_funcionalidades_m]
GO
CREATE PROCEDURE [lis_gui_funcionalidades_m]
	@p_eid as varchar(50) = ''
AS
BEGIN
	SELECT id AS id,
[funcionalidad] AS [gui_funcionalidad]
	FROM [gui_funcionalidad]
	WHERE active = 1
	AND	(eid LIKE @p_eid+'%')
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[aud_gui_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[aud_gui_funcionalidad]
GO
CREATE PROCEDURE [aud_gui_funcionalidad]
	@p_filtro as varchar (8000) = '1=1'
AS
BEGIN
exec(	'SELECT [gui_funcionalidad].id as id_tabla,
	[gui_funcionalidad].id_usuario_modifico as id_usuario_modifico,
	[gui_funcionalidad].id_usuario_creo as id_usuario_creo,
	[gui_funcionalidad].fechaModificacion as fechaModificacion,
	[gui_funcionalidad].fechaCreacion as fechaCreacion,
	[gui_funcionalidad].active as active,
	[gui_funcionalidad].[funcionalidad] as campoPrincipal,
	[seg_usuario_creo].usuario as usuarioCreo,
	[seg_usuario_modifico].usuario as usuarioModifico

	FROM [gui_funcionalidad]
	INNER JOIN [seg_usuario] AS [seg_usuario_modifico] ON [seg_usuario_modifico].id=[gui_funcionalidad].[id_usuario_modifico]
	INNER JOIN [seg_usuario] AS [seg_usuario_creo] ON [seg_usuario_creo].id=[gui_funcionalidad].[id_usuario_creo]
	where ' + @p_filtro)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sel_seg_perfilesXfuncionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[sel_seg_perfilesXfuncionalidad]
GO
CREATE PROCEDURE [sel_seg_perfilesXfuncionalidad]
	@p_id_gui_funcionalidad INT
AS
BEGIN
	SELECT 	[seg_perfil_funcionalidad].[id] AS [I_id],
		[seg_perfil_funcionalidad].[uid] AS [I_uid],
		[seg_perfil_funcionalidad].[eid] AS [I_eid],
		[seg_perfil_funcionalidad].[fechaModificacion] AS [I_fechaModificacion],
		[seg_perfil_funcionalidad].[fechaCreacion] AS [I_fechaCreacion],
		[seg_perfil_funcionalidad].[active] AS [I_active],
		[seg_perfil_funcionalidad].[perfil_funcionalidad] AS [I_perfil_funcionalidad]
	FROM seg_perfil_funcionalidad INNER JOIN seg_perfil
	 ON [seg_perfil_funcionalidad].[id_perfil] = [seg_perfil].id
	WHERE	([seg_perfil_funcionalidad].[id_funcionalidad]= @p_id_gui_funcionalidad)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ins_seg_perfil_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[ins_seg_perfil_funcionalidad]
GO
CREATE PROCEDURE [ins_seg_perfil_funcionalidad]
	@p_uid varchar(500),
		@p_eid varchar(50),
		@p_id_usuario_modifico int,
		@p_id_usuario_creo int,
		@p_perfil_funcionalidad varchar(300),
		@p_id_perfil int,
		@p_id_funcionalidad int
AS
BEGIN
	DECLARE @v_id int
		INSERT INTO [seg_perfil_funcionalidad]
			([uid],
			[eid],
			[id_usuario_modifico],
			[id_usuario_creo],
			[fechaModificacion],
			[fechaCreacion],
			[perfil_funcionalidad],
			[id_perfil],
			[id_funcionalidad])
		VALUES(	@p_uid,
			@p_eid,
			@p_id_usuario_modifico,
			@p_id_usuario_creo,
			GETDATE(),
			GETDATE(),
			@p_perfil_funcionalidad,
			@p_id_perfil,
			@p_id_funcionalidad)
		SET @v_id = scope_identity()
UPDATE [seg_perfil_funcionalidad] set [uid] = [uid] + '_' + convert(varchar(20),@v_id) where [id]=@v_id
SELECT @v_id as id
RETURN @v_id
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[upd_seg_perfil_funcionalidad]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[upd_seg_perfil_funcionalidad]
GO
CREATE PROCEDURE [upd_seg_perfil_funcionalidad]
	@p_id int = null,
		@p_uid varchar(500) = null,
		@p_eid varchar(50) = null,
		@p_id_usuario_modifico int = null,
		@p_id_usuario_creo int = null,
		@p_fechaCreacion smalldatetime = null,
		@p_perfil_funcionalidad varchar(300) = null,
		@p_id_perfil int = null,
		@p_id_funcionalidad int = null
AS
BEGIN
		UPDATE [seg_perfil_funcionalidad]
		SET	[uid] = isnull(@p_uid,[uid]),
			[eid] = isnull(@p_eid,[eid]),
			[id_usuario_modifico] = isnull(@p_id_usuario_modifico,[id_usuario_modifico]),
			[id_usuario_creo] = isnull(@p_id_usuario_creo,[id_usuario_creo]),
			[fechaModificacion] = GETDATE(),
			[perfil_funcionalidad] = isnull(@p_perfil_funcionalidad,[perfil_funcionalidad]),
			[id_perfil] = isnull(@p_id_perfil,[id_perfil]),
			[id_funcionalidad] = isnull(@p_id_funcionalidad,[id_funcionalidad])
		WHERE (id = @p_id)
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON
GO
----------------------
print 'gui_funcionalidad'
-----------------------------------25/11/21 13:29:52