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

CREATE PROCEDURE [dbo].[CP_SCA_DescargarNovedades] @pListado_Id_Controladores	VARCHAR(MAX)
AS 

DECLARE @posicion			INT
DECLARE @longitud			INT
DECLARE @Id_Controlador		SMALLINT

SET @posicion = 0
SET @longitud = 0

CREATE TABLE #rNovedades
(Id_Controlador				SMALLINT,
Id_Novedad					INT,
Id_Cliente					INT,
Credencial_Nro				VARCHAR(30),
Credencial_Nro_Anterior		VARCHAR(30),
Razon_Social				VARCHAR(100),
Flag_Tiene_Huella			TINYINT)

WHILE CHARINDEX(',', @pListado_Id_Controladores, @posicion + 1) > 0
BEGIN
    SET @longitud = CHARINDEX(',', @pListado_Id_Controladores, @posicion + 1) - @posicion
    SET @Id_Controlador = CONVERT(SMALLINT, SUBSTRING(@pListado_Id_Controladores, @posicion, @longitud))
            
    PRINT 'Controlador: ' + CONVERT(VARCHAR(10), @Id_Controlador)

	INSERT INTO #rNovedades
	SELECT 
	CLBN.Id_Controlador,
	CLBN.Id_Novedad,
	CLBN.Id_Cliente,
	LTRIM(RTRIM(CLBN.Credencial_Nro)),
	LTRIM(RTRIM(CLBN.Credencial_Nro_Anterior)),
	LTRIM(RTRIM(CLBN.Razon_Social)),
	CLBN.Flag_Tiene_Huella
	FROM CD_Controladores_Novedades CLBN
	WHERE
	CLBN.Estado_Sincr = 'P'
	AND ISNULL(CLBN.Credencial_Nro, '') <> ''
	AND CLBN.Id_Cliente > 1
	AND CLBN.Id_Controlador = @Id_Controlador
	
	UPDATE CD_Controladores_Novedades 
	SET 
	Estado_Sincr = 'C', 
	Fecha_Sincr_Procesada = GETDATE()
	WHERE
	Estado_Sincr = 'P'
	AND ISNULL(Credencial_Nro, '') <> ''
	AND Id_Cliente > 1
	AND Id_Controlador = @Id_Controlador

    SET @posicion = CHARINDEX(',', @pListado_Id_Controladores, @posicion + @longitud) +1
END


SELECT * FROM #rNovedades

DROP TABLE #rNovedades
