ALTER PROCEDURE [dbo].[ins_gen_config]
	    @p_uid varchar(500),
		@p_eid varchar(50),
		@p_id_usuario_modifico int,
		@p_id_usuario_creo int,
		@p_config varchar(300),
		@p_config_codigo varchar(100),
		@p_modulo varchar(100),
		@p_valor varchar(1000),
		@p_descripcion varchar(300)
AS
BEGIN
	DECLARE @v_id int
		INSERT INTO [gen_config]
			([uid],
			[eid],
			[id_usuario_modifico],
			[id_usuario_creo],
			[fechaModificacion],
			[fechaCreacion],
			[config],
			[config_codigo],
			[modulo],
			[valor],
			[descripcion])
		VALUES(	@p_uid,
			@p_eid,
			@p_id_usuario_modifico,
			@p_id_usuario_creo,
			GETDATE(),
			GETDATE(),
			@p_config,
			@p_config_codigo,
			@p_modulo,
			@p_valor,
			@p_descripcion)
		SET @v_id = @@identity
UPDATE [gen_config] set [uid] = [uid] + '_' + convert(varchar(20),@v_id) where [id]=@v_id
SELECT @v_id as id
RETURN @v_id
END
GO
ALTER PROCEDURE [dbo].[upd_gen_config]
	@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_config varchar(300) = null,
		@p_config_codigo varchar(100) = null,
		@p_modulo varchar(100) = null,
		@p_valor varchar(1000) = null,
		@p_descripcion varchar(300) = null
AS
BEGIN
		UPDATE [gen_config]
		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(),
			[config] = isnull(@p_config,[config]),
			[config_codigo] = isnull(@p_config_codigo,[config_codigo]),
			[modulo] = isnull(@p_modulo,[modulo]),
			[valor] = isnull(@p_valor,[valor]),
			[descripcion] = isnull(@p_descripcion,[descripcion])
		WHERE (id = @p_id)
END


ALTER TABLE [gen_config] ALTER COLUMN [valor] varchar(1000)

GO

/****** Object:  View [dbo].[view_gen_config]    Script Date: 11/10/2017 4:14:13 p. m. ******/
DROP VIEW [dbo].[view_gen_config]
GO


CREATE  VIEW [dbo].[view_gen_config] AS
SELECT 	[gen_config].[id] AS [id],
		[gen_config].[uid] AS [uid],
		[gen_config].[eid] AS [eid],
		[gen_config].[id_usuario_modifico] AS [id_usuario_modifico],
		[gen_config].[id_usuario_creo] AS [id_usuario_creo],
		[gen_config].[fechaModificacion] AS [fechaModificacion],
		[gen_config].[fechaCreacion] AS [fechaCreacion],
		[gen_config].[active] AS [active],
		[gen_config].[config] AS [config],
		[gen_config].[config_codigo] AS [config_codigo],
		[gen_config].[modulo] AS [modulo],
		[gen_config].[valor] AS [valor],
		[gen_config].[descripcion] AS [descripcion],
		[empresaCodigo].[empresa] As [multiempresa]
FROM [gen_config]
	INNER JOIN [seg_usuario] AS [seg_usuario_modifico] ON [seg_usuario_modifico].id=[gen_config].[id_usuario_modifico]
	INNER JOIN [seg_usuario] AS [seg_usuario_creo] ON [seg_usuario_creo].id=[gen_config].[id_usuario_creo]
	INNER JOIN [gen_empresa] AS empresaCodigo ON [gen_config].eid = [empresaCodigo].[codigo] and empresaCodigo.active=1
WHERE [gen_config].active=1
GO

declare @licencia as varchar(100)
set @licencia =(SELECT uid FROM [seg_usuario] where id=1)

declare @eid as varchar(100)
set @eid =(SELECT eid FROM [seg_usuario] where id=1)

IF NOT EXISTS(SELECT * FROM gen_config WHERE config = 'expresionURL')
BEGIN
       exec [ins_gen_config]   @p_uid=  @licencia, @p_eid = @eid, @p_id_usuario_modifico = 1, @p_id_usuario_creo = 1,
 @p_config = 'expresionURL', @p_config_codigo = ' ', @p_modulo = 'general', @p_valor = '', @p_descripcion = 'Este campo especifica la regla para validación de direcciones URL'
END
