IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CP_xVentanas_Items]') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE [dbo].[CP_xVentanas_Items]
END
GO

CREATE PROCEDURE [dbo].[CP_xVentanas_Items] @pId_Ventana VARCHAR(50), @pId_Usuario SMALLINT
AS

DECLARE @Mensaje			VARCHAR(100)
DECLARE @Existe				INT
		
CREATE TABLE #Ventana_Item (
      Id_Ventana VARCHAR(50), 	
	  Nombre VARCHAR(200), 	 	
	  Tipo SMALLINT, 	
	  Valor VARCHAR(5000) ,		
	  Ocultar TINYINT,	
	  Requerido TINYINT, 
	  Deshabilitado TINYINT, 
	  Texto VARCHAR(500) ,		
	  Flag_Agregar TINYINT, 	
	  Flag_Cambiar TINYINT,
	  Flag_Borrar TINYINT, 	
	  Flag_Ver TINYINT, 	
	  Flag_Todas TINYINT
		)

INSERT INTO  #Ventana_Item
SELECT Id_Ventana,Nombre, Tipo, Valor, Ocultar, Requerido, ISNULL(Deshabilitado,0),Texto, ISNULL(Flag_Agregar,0), 
		ISNULL(Flag_Cambiar,0), ISNULL(Flag_Borrar,0), ISNULL(Flag_Ver,0),  ISNULL(Flag_Todas,0)
		FROM xVentanas_Items
		WHERE Id_Ventana= @pId_Ventana
		AND Flag_Modif=1


DECLARE 	  @Nombre VARCHAR(200), 
			  @Tipo SMALLINT, 		
			  @Valor VARCHAR(5000) ,		
			  @Ocultar TINYINT,	
			  @Requerido TINYINT, 
			  @Deshabilitado TINYINT, 
			  @Texto VARCHAR(500) ,		
			  @Flag_Agregar TINYINT, 	
			  @Flag_Cambiar TINYINT,
			  @Flag_Borrar TINYINT, 	
			  @Flag_Ver TINYINT, 	
			  @Flag_Todas TINYINT

DECLARE curxVentanas CURSOR FOR
SELECT Nombre,Tipo, Valor, Ocultar, Requerido, Deshabilitado,Texto, Flag_Agregar, 
		Flag_Cambiar, Flag_Borrar, Flag_Ver,  Flag_Todas
		FROM xVentanas_Items_Users
		WHERE Id_Ventana=@pId_Ventana
		AND Flag_Modif=1
		AND Id_Usuario=@pId_Usuario

OPEN curxVentanas
FETCH NEXT FROM curxVentanas INTO @Nombre, @Tipo ,@Valor, @Ocultar, @Requerido, @Deshabilitado, @Texto, @Flag_Agregar, 
									@Flag_Cambiar, @Flag_Borrar, @Flag_Ver,  @Flag_Todas
WHILE @@FETCH_STATUS = 0
BEGIN

SET @Existe= ISNULL((SELECT 1 FROM #Ventana_Item WHERE Nombre=@Nombre AND Id_Ventana=@pId_Ventana),0)

IF (@Existe=1)
BEGIN
	UPDATE #Ventana_Item SET  Valor=@Valor, Tipo=@Tipo, Ocultar=@Ocultar, Requerido=@Requerido, Deshabilitado=@Deshabilitado, 
	Texto=@Texto, Flag_Agregar=@Flag_Agregar, 	Flag_Cambiar=@Flag_Cambiar , Flag_Borrar=@Flag_Borrar , Flag_Ver=@Flag_Ver, 
	Flag_Todas=@Flag_Todas	WHERE Nombre=@Nombre

END

IF (@Existe=0)
BEGIN

	INSERT INTO #Ventana_Item
	SELECT @pId_Ventana, @Nombre,@Tipo,@Valor, @Ocultar,  @Requerido, @Deshabilitado, 
	 @Texto, @Flag_Agregar,  @Flag_Cambiar , @Flag_Borrar ,  @Flag_Ver,  @Flag_Todas

END



FETCH NEXT FROM curxVentanas INTO @Nombre,@Tipo ,@Valor, @Ocultar, @Requerido, @Deshabilitado, @Texto, @Flag_Agregar, 
									@Flag_Cambiar, @Flag_Borrar, @Flag_Ver,  @Flag_Todas
END
CLOSE curxVentanas
DEALLOCATE curxVentanas


SELECT * FROM #Ventana_Item

DELETE FROM #Ventana_Item