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

CREATE PROCEDURE [dbo].[CP_CD_Controladores_Novedades_Agregar]	@pJson VARCHAR(8000)
AS

/*Variables recibidas por parámetro a traves del JSON*/
DECLARE @pId_Cliente				INT
DECLARE @pCredencial_Nro_Anterior	VARCHAR(30)

SET @pId_Cliente					= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Cliente')), 0)
SET @pCredencial_Nro_Anterior		= ISNULL(LTRIM(RTRIM(CONVERT(VARCHAR(30), dbo.CF_JSON_VALUE(@pJson,'Credencial_Nro_Anterior')))), '')
/*FIN Variables recibidas por parámetro a traves del JSON*/

/*Declaracion de Variables*/
DECLARE @Id_Novedad_Max	INT
DECLARE @Id_Controlador	INT
DECLARE @Razon_Social	VARCHAR(100)
DECLARE @Credencial_Nro	VARCHAR(30)
DECLARE @Cant_Huellas	TINYINT
/*FIN Declaracion de Variables*/

/*Si existen novedades pendientes Anteriores las completa para que esta sea la última*/
UPDATE CD_Controladores_Novedades
SET
Estado_Sincr	= 'C',
Id_Usuario		= -1
WHERE
Id_Cliente = @pId_Cliente
AND Estado_Sincr = 'P'
/*FIN Si existen novedades pendientes Anteriores las completa para que esta sea la última*/

SELECT
@Razon_Social	= LTRIM(RTRIM(ISNULL(Razon_Social, ''))),
@Credencial_Nro = LTRIM(RTRIM(ISNULL(Credencial_Nro, '')))
FROM Clientes
WHERE
Id_Cliente = @pId_Cliente

SET @Cant_Huellas = ISNULL((SELECT COUNT(*) FROM Clientes_HD WHERE Id_Cliente = @pId_Cliente),0)

IF(@Credencial_Nro <> '')
BEGIN
	SET @Id_Novedad_Max = ISNULL((SELECT MAX(ISNULL(Id_Novedad, 0)) + 1 FROM CD_Controladores_Novedades), 1)

	DECLARE curControladoresNovedades CURSOR FOR
	SELECT Id_Controlador FROM CD_Controladores
	WHERE
	ISNULL(Tipo_Cont, '') = 'L'
	AND ((SUBSTRING(ISNULL(Nro_Serie, ''), 5, 2) = 'AP') OR (SUBSTRING(ISNULL(Nro_Serie, ''), 5, 2) = 'HP') OR (SUBSTRING(ISNULL(Nro_Serie, ''), 5, 2) = 'SL'))



	OPEN curControladoresNovedades
	FETCH NEXT FROM curControladoresNovedades INTO @Id_Controlador
	WHILE @@FETCH_STATUS = 0
	BEGIN

		INSERT INTO CD_Controladores_Novedades 
		(Id_Controlador,			Id_Novedad,					Fecha_Creacion, 
		Estado_Sincr,				Id_Cliente,					Razon_Social, 
		Credencial_Nro,				Credencial_Nro_Anterior,	Flag_Tiene_Huella)
		VALUES
		(@Id_Controlador,			@Id_Novedad_Max,			GETDATE(), 
		'P',						@pId_Cliente,				@Razon_Social, 
		@Credencial_Nro,			@pCredencial_Nro_Anterior,	@Cant_Huellas)

		FETCH NEXT FROM curControladoresNovedades INTO @Id_Controlador
	END
	CLOSE curControladoresNovedades
	DEALLOCATE curControladoresNovedades
END
