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

CREATE PROCEDURE [dbo].[CPJ_Localidades_Ocupadas]		@pJson VARCHAR(8000)
AS 
SET NOCOUNT ON 

--CREADO: 18/3/2022   Fede y Gaby


/*Variables recibidas por parametro a traves del JSON*/
DECLARE @pFlagUsarTrans			TINYINT
DECLARE @pModoDebug				TINYINT
DECLARE @pId_Cliente			INT
DECLARE @pId_Lista_Precio		INT
DECLARE @pId_Sector				INT

SET @pFlagUsarTrans		= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'FlagUsarTrans')), 0)
SET @pModoDebug			= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'ModoDebug')), 0)
SET @pId_Cliente		= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Cliente')), 0)
SET @pId_Lista_Precio	= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Lista_Precio')), 0)
SET @pId_Sector			= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Sector')), 0)
/*FIN Variables recibidas por parametro a traves del JSON*/

/*====================================================================================================================================================*/

--IF(@pId_Lista_Precio = 0)  RAISERROR ('Id_Lista_Precio can not be zero.', 16,  1 ) 

/*====================================================================================================================================================*/

/*Variables Locales*/
DECLARE @SqlStr						NVARCHAR(MAX)
DECLARE @Id_Cliente_Ref				INT
DECLARE @Id_Evento_Grupo			INT
DECLARE @Evento_Desde				DATE
DECLARE @Evento_Hasta				DATE
DECLARE @Flag_Localidades			TINYINT
DECLARE @Fecha_Evento				DATETIME
DECLARE @Id_Evento_Grupo_Reservas	INT
DECLARE @Evento_Fecha_Reserva_Limite DATETIME
DECLARE @Tipo_Cbte_VW_Pedido		VARCHAR(4)
DECLARE @Tipo_Cbte_VW_Factura		VARCHAR(4)
DECLARE @cant_min_reserva			INT
/*FIN Variables Locales*/

BEGIN TRY
	IF @pFlagUsarTrans <> 0 
	BEGIN
		BEGIN TRAN
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Ingreso a Stored Procedure: CPJ_Localidades_Ocupadas'
		PRINT 'Parametros: '+ @pJson  
	END

	/*====================================================================================================================================================*/

	IF(@pId_Cliente > 0)
	BEGIN
		SELECT 		
		@Id_Cliente_Ref = ISNULL(Id_Cliente_Ref, 0)
		FROM Clientes 
		WHERE
		Id_Cliente = @pId_Cliente

		IF(@Id_Cliente_Ref = 0)
		BEGIN
			SET @Id_Cliente_Ref = @pId_Cliente
		END
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@pId_Cliente: ' + CONVERT(VARCHAR(10), @pId_Cliente) + '. @Id_Cliente_Ref: '+ CONVERT(VARCHAR(10), @Id_Cliente_Ref)  
	END

	/*====================================================================================================================================================*/

	IF OBJECT_ID('tempdb..#Rta_CPJ_Localidades_Ocupadas') IS NOT NULL
	BEGIN
		DROP TABLE #Rta_CPJ_Localidades_Ocupadas
	END

	CREATE TABLE #Rta_CPJ_Localidades_Ocupadas	(Id_Trans				INT
												, Id_Cliente			INT
												, Id_Lista				INT
												, Razon_Social			VARCHAR(100)
												, Fecha_QA				DATETIME
												, Fecha_Venc			DATETIME
												, Fecha_Desde			DATETIME
												, Fecha_Hasta			DATETIME
												, Descripcion			VARCHAR(100)
												, Id_Producto			VARCHAR(14)
												, Descripcion_Resumida	VARCHAR(100)
												, Estado				VARCHAR(10)
												, Serie					VARCHAR(100)
												, Item					INT
												, Flag_QA				CHAR(1)
												, Fecha_Cbte			DATETIME
												, Cbte_Descrip			VARCHAR(50)
												, Id_Estado_Cbte		SMALLINT
												, Cantidad				INT
												, Lote					VARCHAR(20))

	/*====================================================================================================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@pId_Lista_Precio: '+ CONVERT(VARCHAR(10), @pId_Lista_Precio)  
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Actualiza Evento_Cant_Dias_Limite y Evento_Fecha_Reserva_Limite en caso de ser Abonos y no tenerlo configurado.'
	END

	IF(@pId_Lista_Precio > 0)
	BEGIN
		UPDATE Prod_Listas_Precios 
		SET 
		Evento_Cant_Dias_Limite = CONVERT(INT, dbo.CF_xParam('Loca_Fecha_Lim_Dias'))
		WHERE 
		Id_Lista_Precio = @pId_Lista_Precio  
		AND ISNULL(Evento_Cant_Dias_Limite, 0) = 0 
		AND Flag_Localidades = 1

		UPDATE Prod_Listas_Precios 
		SET 
		Evento_Fecha_Reserva_Limite = CONVERT(DATETIME,dbo.CF_xParam('Loca_Fecha_Lim'))
		WHERE 
		Id_Lista_Precio = @pId_Lista_Precio 
		AND Evento_Fecha_Reserva_Limite IS NULL
		AND Flag_Localidades = 1

		SELECT	
		@Id_Evento_Grupo = ISNULL(Id_Evento_Grupo, 0), 
		@Evento_Desde = Evento_Desde , 
		@Evento_Hasta = Evento_Hasta , 
		@Flag_Localidades = Flag_Localidades,
		@Fecha_Evento = Fecha_Evento,
		@Evento_Fecha_Reserva_Limite = Evento_Fecha_Reserva_Limite		
		FROM Prod_Listas_Precios 
		WHERE 
		Id_Lista_Precio = @pId_Lista_Precio	

	   SELECT	
	   @Id_Evento_Grupo_Reservas = Id_Evento_Grupo_Reservas
	   FROM Eventos_Grupos 
	   WHERE 
	   Id_Evento_Grupo = @Id_Evento_Grupo 
	   AND @Id_Evento_Grupo > 0 

		/* Si es partido, tomo la fecha del partido*/
		IF @Flag_Localidades = 2
		BEGIN
			  SET @Evento_Desde = @Fecha_Evento 
			  SET @Evento_Hasta = @Fecha_Evento  
		END

		IF(@pModoDebug = 1)
		BEGIN
			PRINT '@Id_Evento_Grupo: '+ CONVERT(VARCHAR(10), @Id_Evento_Grupo)  
			PRINT '@Evento_Desde: '+ CONVERT(VARCHAR(10), @Evento_Desde, 112)  
			PRINT '@Evento_Hasta: '+ CONVERT(VARCHAR(10), @Evento_Hasta, 112)  
			PRINT '@Flag_Localidades: '+ CONVERT(VARCHAR(10), @Flag_Localidades)  
			PRINT '@Fecha_Evento: '+ CONVERT(VARCHAR(20), @Fecha_Evento, 112)  
			PRINT '@Evento_Fecha_Reserva_Limite: '+ CONVERT(VARCHAR(10), @Evento_Fecha_Reserva_Limite, 112)  
			PRINT '@Id_Evento_Grupo_Reservas: '+ CONVERT(VARCHAR(10), @Id_Evento_Grupo_Reservas)  
		END
	END
	ELSE
	BEGIN
		SET @Evento_Desde = GETDATE() 
		SET @Evento_Hasta = GETDATE()
		SET @Evento_Fecha_Reserva_Limite = CONVERT(DATETIME, dbo.CF_xParam('Loca_Fecha_Lim'))
	END

	/*=======================================================================VENTAS y REMITOS de ABONOS =============================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'VENTAS y REMITOS de ABONOS'
	END

	SET @SqlStr =	''

	SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
	SET @SqlStr +=	' SELECT'
	SET @SqlStr +=	' DISTINCT'
	SET @SqlStr +=	' CB.Id_Trans,'
	SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
	SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
	SET @SqlStr +=	' CI.Fecha_QA,'
	SET @SqlStr +=	' CI.Fecha_Venc,'
	SET @SqlStr +=	' PLP.Fecha_Desde,'
	SET @SqlStr +=	' PLP.Fecha_Hasta,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
	SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
	SET @SqlStr +=	'''A'' AS Estado,'
					/*
						A	-> Abono Comprado      
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Reservado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
	SET @SqlStr +=	' CI.Serie,'
	SET @SqlStr +=	' CI.Item,'
	SET @SqlStr +=	' CI.Flag_QA,'
	SET @SqlStr +=	' CB.Fecha,'
	SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
	SET @SqlStr +=	' CB.Id_Estado_Cbte,'
	SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
	SET @SqlStr +=	' CB.Lote'
	SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
	SET @SqlStr +=	' WHERE'
	SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
	SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
	SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
	SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
	SET @SqlStr +=	' AND (CT.Compromete_Factura = 1 OR Compromete_Remitos = 1) ' 
	SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (2,4) '
	SET @SqlStr +=	' AND PLP.Flag_Localidades = 1'
	SET @SqlStr +=	' AND PR.Tipo = ''L'''
	SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'
	SET @SqlStr +=  ' AND CI.Fecha_QA < ''' + CONVERT(VARCHAR(10), DATEADD(DAY, 1, @Evento_Hasta), 112) +'''
					  AND CI.Fecha_Venc >=  ''' + CONVERT(VARCHAR(10), @Evento_Desde, 112) +''''

	IF(@pId_Cliente <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
	END

	IF(@pId_Lista_Precio > 0)
	BEGIN
		IF(@Id_Evento_Grupo <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (	SELECT PLG.Id_Lista_Precio 
																							FROM Prod_Listas_Precios PLG
																							WHERE 
																							PLG.Id_Evento_Grupo = ' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + '
																							AND PLG.Flag_Localidades = 1)'
		END
		ELSE
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio = '+ CONVERT(VARCHAR(10),@pId_Lista_Precio)
		END
	END

	
	IF(@pId_Sector <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@SqlStr: ' + @SqlStr
	END

	EXECUTE sp_executesql @SqlStr

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END

	/*=======================================================================VENTAS y REMITOS de Fechas(Partidos) CON PRECIO  =============================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'VENTAS y REMITOS DE FECHAS (PARTIDOS) CON PRECIO'
	END

	SET @Tipo_Cbte_VW_Factura	= LTRIM(RTRIM(dbo.CF_xParam('Tipo_Cbte_VW_Factura')))

	SET @SqlStr =	''

	SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
	SET @SqlStr +=	' SELECT'
	SET @SqlStr +=	' DISTINCT'
	SET @SqlStr +=	' CB.Id_Trans,'
	SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
	SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
	SET @SqlStr +=	' CI.Fecha_QA,'
	SET @SqlStr +=	' CI.Fecha_Venc,'
	SET @SqlStr +=	' PLP.Fecha_Desde,'
	SET @SqlStr +=	' PLP.Fecha_Hasta,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
	SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
	SET @SqlStr +=	'''TV'' AS Estado,'
					/*
						A	-> Abono Comprado    
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
	SET @SqlStr +=	' CI.Serie,'
	SET @SqlStr +=	' CI.Item,'
	SET @SqlStr +=	' CI.Flag_QA,'
	SET @SqlStr +=	' CB.Fecha,'
	SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
	SET @SqlStr +=	' CB.Id_Estado_Cbte,'
	SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
	SET @SqlStr +=	' CB.Lote'
	SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
	SET @SqlStr +=	' WHERE'
	SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
	SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
	SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
	SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
	SET @SqlStr +=	' AND (CT.Compromete_Factura = 1 OR Compromete_Remitos = 1) ' 
	SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (2,4) '
	SET @SqlStr +=	' AND PLP.Flag_Localidades = 2'
	SET @SqlStr +=	' AND PLP.Fecha_Evento >= GETDATE() + 1 '
	SET @SqlStr +=	' AND PR.Tipo = ''L'''
	SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'

	IF @Flag_Localidades = 2
	BEGIN
		SET @SqlStr +=	' AND CONVERT(VARCHAR(8),PLP.Fecha_Evento,112) = '''+ CONVERT(VARCHAR(8),@Fecha_Evento,112) +''''
    END

	IF(@pId_Cliente <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
	END

	IF(@pId_Lista_Precio > 0)
	BEGIN
		IF(@Id_Evento_Grupo <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (SELECT PLG.Id_Lista_Precio 
																						   FROM Prod_Listas_Precios PLG
																						   WHERE 
																						   PLG.Id_Evento_Grupo = ' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + '
																						   AND PLG.Flag_Localidades = 2)'
		END
		ELSE
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio = '+ CONVERT(VARCHAR(10),@pId_Lista_Precio)
		END 
	END
	
	IF(@pId_Sector <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@SqlStr: ' + @SqlStr
	END

	EXECUTE sp_executesql @SqlStr

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END

	/*=======================================================================VENTAS y REMITOS de Fechas(Partidos) SIN PRECIO (CANJES)===========================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'VENTAS y REMITOS DE FECHAS (PARTIDOS) SIN PRECIO (CANJES)'
	END

	SET @Tipo_Cbte_VW_Pedido	= LTRIM(RTRIM(dbo.CF_xParam('Tipo_Cbte_VW_Pedido')))

	SET @SqlStr =	''

	SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
	SET @SqlStr +=	' SELECT'
	SET @SqlStr +=	' DISTINCT'
	SET @SqlStr +=	' CB.Id_Trans,'
	SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
	SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
	SET @SqlStr +=	' CI.Fecha_QA,'
	SET @SqlStr +=	' CI.Fecha_Venc,'
	SET @SqlStr +=	' PLP.Fecha_Desde,'
	SET @SqlStr +=	' PLP.Fecha_Hasta,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
	SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
	SET @SqlStr +=	'''TC'' AS Estado,'
					/*
						A	-> Abono Comprado    
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
	SET @SqlStr +=	' CI.Serie,'
	SET @SqlStr +=	' CI.Item,'
	SET @SqlStr +=	' CI.Flag_QA,'
	SET @SqlStr +=	' CB.Fecha,'
	SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
	SET @SqlStr +=	' CB.Id_Estado_Cbte,'
	SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
	SET @SqlStr +=	' CB.Lote'
	SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
	SET @SqlStr +=	' WHERE'
	SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
	SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
	SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
	SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
	SET @SqlStr +=	' AND CT.Compromete_Pedido = 1 ' 
	SET @SqlStr +=	' AND CT.Id_Tipo_Cbte = ''' + @Tipo_Cbte_VW_Pedido + ''''
	SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (2,4) '
	SET @SqlStr +=	' AND PLP.Flag_Localidades = 2'
	SET @SqlStr +=	' AND PLP.Fecha_Evento >= GETDATE() + 1 '
	SET @SqlStr +=	' AND PR.Tipo = ''L'''
	SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'

	IF @Flag_Localidades = 2
	BEGIN
		SET @SqlStr +=	' AND CONVERT(VARCHAR(8),PLP.Fecha_Evento,112) = '''+ CONVERT(VARCHAR(8),@Fecha_Evento,112) +''''
    END

	IF(@pId_Cliente <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
	END

	IF(@pId_Lista_Precio > 0)
	BEGIN
		IF(@Id_Evento_Grupo <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (SELECT PLG.Id_Lista_Precio 
																						   FROM Prod_Listas_Precios PLG
																						   WHERE 
																						   PLG.Id_Evento_Grupo = ' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + '
																						   AND PLG.Flag_Localidades = 2)'
		END
		ELSE
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio = '+ CONVERT(VARCHAR(10),@pId_Lista_Precio)
		END 
	END

	
	IF(@pId_Sector <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@SqlStr: ' + @SqlStr
	END

	EXECUTE sp_executesql @SqlStr

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END

/*======================================================================= TICKETS IMPRESOS para fechas o partidos (no abonos) NO FIJOS UBICABLE=============================================================================*/


	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'TICKETS IMPRESOS PARA FECHAS(PARTIDOS, NO abonos) NO FIJOS/NO UBICABLES'
	END

	SET @SqlStr =	''

	SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
	SET @SqlStr +=	' SELECT'
	SET @SqlStr +=	' DISTINCT'
	SET @SqlStr +=	' CB.Id_Trans,'
	SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
	SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
	SET @SqlStr +=	' CI.Fecha_QA,'
	SET @SqlStr +=	' CI.Fecha_Venc,'
	SET @SqlStr +=	' PLP.Fecha_Desde,'
	SET @SqlStr +=	' PLP.Fecha_Hasta,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
	SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
	SET @SqlStr +=	'''TI'' AS Estado,'
					/*
						A	-> Abono Comprado    
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
	SET @SqlStr +=	' CI.Serie,'
	SET @SqlStr +=	' CI.Item,'
	SET @SqlStr +=	' CI.Flag_QA,'
	SET @SqlStr +=	' CB.Fecha,'
	SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
	SET @SqlStr +=	' CB.Id_Estado_Cbte,'
	SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
	SET @SqlStr +=	' CB.Lote'
	SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
	SET @SqlStr +=	' WHERE'
	SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
	SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
	SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
	SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
	SET @SqlStr +=	' AND CT.Compromete_Pedido = 1 ' 
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = '''+  dbo.CF_xParam('Loca_Cbte_Loca_Ent') +''''
	SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (1,2,4) '
	SET @SqlStr +=	' AND PLP.Flag_Localidades = 2'
	SET @SqlStr +=	' AND PLP.Fecha_Evento >= GETDATE() + 1 '
	SET @SqlStr +=	' AND PR.Tipo = ''L'''
	SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'

	IF @Flag_Localidades = 2
	BEGIN
		SET @SqlStr +=	' AND CONVERT(VARCHAR(8),PLP.Fecha_Evento,112) = '''+ CONVERT(VARCHAR(8),@Fecha_Evento,112) +''''
	END

	IF(@pId_Cliente <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
	END

	IF(@pId_Lista_Precio > 0)
	BEGIN
		IF(@Id_Evento_Grupo <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (SELECT PLG.Id_Lista_Precio 
																							FROM Prod_Listas_Precios PLG
																							WHERE
																							PLG.Id_Evento_Grupo = ' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + '
																							AND PLG.Flag_Localidades = 2)'
		END
		ELSE
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio = '+ CONVERT(VARCHAR(10),@pId_Lista_Precio)
		END 
	END
	
	IF(@pId_Sector <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@SqlStr: ' + @SqlStr
	END

	EXECUTE sp_executesql @SqlStr

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END

/*======================================================================= PROTOCOLOS IMPRESOS para fechas o partidos (no abonos) NO FIJOS UBICABLE=============================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'PROTOCOLOS IMPRESOS PARA FECHAS(PARTIDOS, NO abonos) NO FIJOS/NO UBICABLES'
	END

	SET @SqlStr =	''

	SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
	SET @SqlStr +=	' SELECT'
	SET @SqlStr +=	' DISTINCT'
	SET @SqlStr +=	' CB.Id_Trans,'
	SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
	SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
	SET @SqlStr +=	' CI.Fecha_QA,'
	SET @SqlStr +=	' CI.Fecha_Venc,'
	SET @SqlStr +=	' PLP.Fecha_Desde,'
	SET @SqlStr +=	' PLP.Fecha_Hasta,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
	SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
	SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
	SET @SqlStr +=	'''PI'' AS Estado,'
					/*
						A	-> Abono Comprado    
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
	SET @SqlStr +=	' CI.Serie,'
	SET @SqlStr +=	' CI.Item,'
	SET @SqlStr +=	' CI.Flag_QA,'
	SET @SqlStr +=	' CB.Fecha,'
	SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
	SET @SqlStr +=	' CB.Id_Estado_Cbte,'
	SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
	SET @SqlStr +=	' CB.Lote'
	SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
	SET @SqlStr +=	' WHERE'
	SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
	SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
	SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
	SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
	SET @SqlStr +=	' AND CT.Compromete_Pedido = 1 ' 
	SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = '''+  dbo.CF_xParam('Id_Cbte_Ent_Prot') +'''' 
	SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (1,2,4) '
	SET @SqlStr +=	' AND PLP.Flag_Localidades = 2'
	SET @SqlStr +=	' AND PLP.Fecha_Evento >= GETDATE() + 1 '
	SET @SqlStr +=	' AND PR.Tipo = ''L'''
	SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'

	IF @Flag_Localidades = 2
	BEGIN
		SET @SqlStr +=	' AND CONVERT(VARCHAR(8),PLP.Fecha_Evento,112) = '''+ CONVERT(VARCHAR(8),@Fecha_Evento,112) +''''
    END

	IF(@pId_Cliente <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
	END

	IF(@pId_Lista_Precio > 0)
	BEGIN
		IF(@Id_Evento_Grupo <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (SELECT PLG.Id_Lista_Precio 
																						   FROM Prod_Listas_Precios PLG
																						   WHERE 
																						   PLG.Id_Evento_Grupo = ' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + '
																						   AND PLG.Flag_Localidades = 2)'
		END
		ELSE
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio = '+ CONVERT(VARCHAR(10),@pId_Lista_Precio)
		END 
	END
	
	IF(@pId_Sector <> 0)
	BEGIN
		SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT '@SqlStr: ' + @SqlStr
	END

	EXECUTE sp_executesql @SqlStr

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END

	/*========================================================================PROTOCOLOS FIJOS============================================================================*/

	IF(@pId_Cliente = 0)
	BEGIN	
		IF(@pModoDebug = 1)
		BEGIN
			PRINT 'PROTOCOLOS FIJOS'
		END

		SET @SqlStr =	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
		SET @SqlStr +=	' SELECT'
		SET @SqlStr +=	' 0 AS Id_Trans,'
		SET @SqlStr +=	' 0 AS Id_Cliente,'
		SET @SqlStr +=	' 0 AS Id_Lista,'
		SET @SqlStr +=	' '''' AS Razon_Social,'
		SET @SqlStr +=	' '''' AS Fecha_QA,'
		SET @SqlStr +=	' '''' AS Fecha_Venc,'
		SET @SqlStr +=	' '''' AS Fecha_Desde,'
		SET @SqlStr +=	' '''' AS Fecha_Hasta,'
		SET @SqlStr +=	' '''' AS Descripcion,'
		SET @SqlStr +=	' I.Id_Producto AS Id_Producto,'
		SET @SqlStr +=	' '''' AS Descripcion_Resumida,'
		SET @SqlStr +=	' ''PF'' AS Estado,'
					/*
						A	-> Abono Comprado     
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
		SET @SqlStr +=	' '''' AS Serie,'
		SET @SqlStr +=	' 0 AS Item,'
		SET @SqlStr +=	' '''' AS Flag_QA,'
		SET @SqlStr +=	' '''' AS Fecha_Cbte,'
		SET @SqlStr +=	' '''' AS Cbte_Descrip,'
		SET @SqlStr +=	' 0 AS Id_Estado_Cbte,'
		SET @SqlStr +=	' 0 AS Cantidad,'
		SET @SqlStr +=	' '''' AS Lote'
		SET @SqlStr +=	' FROM Tab_Ent_Protocolares_Items I, Tab_Ent_Protocolares E, Productos PR'
		SET @SqlStr +=	' WHERE'
		SET @SqlStr +=	' I.Id_Ent_Protocolo = E.Id_Ent_Protocolo'
		SET @SqlStr +=	' AND I.Id_Producto = PR.Id_Producto'
		SET @SqlStr +=	' AND I.Activo = 1'
		SET @SqlStr +=	' AND E.Activo = 1'

		IF(@pId_Sector <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
		END

		IF(@pModoDebug = 1)
		BEGIN
			PRINT '@SqlStr: ' + @SqlStr
		END

		EXECUTE sp_executesql @SqlStr

		IF(@pModoDebug = 1)
		BEGIN
			PRINT ''
		END
	END

/*======================================================================= RESERVAS VENCIDAS=============================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'RESERVAS VENCIDAS'
		PRINT '@Evento_Fecha_Reserva_Limite : ' + CONVERT(VARCHAR(10), @Evento_Fecha_Reserva_Limite, 112)
	END

	IF CONVERT(DATE,@Evento_Fecha_Reserva_Limite) >= CONVERT(DATE,GETDATE()) 
	BEGIN
		SET @SqlStr =	''

		SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
		SET @SqlStr +=	' SELECT'
		SET @SqlStr +=	' DISTINCT'
		SET @SqlStr +=	' CB.Id_Trans,'
		SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
		SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
		SET @SqlStr +=	' CI.Fecha_QA,'
		SET @SqlStr +=	' CI.Fecha_Venc,'
		SET @SqlStr +=	' PLP.Fecha_Desde,'
		SET @SqlStr +=	' PLP.Fecha_Hasta,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
		SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
		SET @SqlStr +=	' ''AR'' AS Estado,'
					/*
						A	-> Abono Comprado       
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
		SET @SqlStr +=	' CI.Serie,'
		SET @SqlStr +=	' CI.Item,'
		SET @SqlStr +=	' CI.Flag_QA,'
		SET @SqlStr +=	' CB.Fecha,'
		SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
		SET @SqlStr +=	' CB.Id_Estado_Cbte,'
		SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
		SET @SqlStr +=	' CB.Lote'
		SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
		SET @SqlStr +=	' WHERE'
		SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
		SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
		SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
		SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
		SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
		SET @SqlStr +=	' AND (CT.Compromete_Factura = 1 OR Compromete_Remitos = 1) ' 
		SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (2,4) '
		SET @SqlStr +=	' AND PLP.Flag_Localidades = 1'
		SET @SqlStr +=	' AND PR.Tipo = ''L'''
		SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'
		SET @SqlStr +=	' AND DATEADD(DAY, PLP.Evento_Cant_Dias_Limite, CONVERT(DATE, CI.Fecha_Venc)) >= CONVERT(DATE, GETDATE())
										AND CONVERT(DATE, CI.Fecha_Venc) <= CONVERT(DATE, GETDATE()) '
						  
		IF(@pId_Cliente <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
		END

		IF(@pId_Lista_Precio > 0)
		BEGIN
			IF(@Id_Evento_Grupo <> 0)
			BEGIN
				SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (SELECT PLG.Id_Lista_Precio 
																							FROM Prod_Listas_Precios PLG
																							WHERE 
																							PLG.Id_Evento_Grupo IN (' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + ','+ CONVERT(VARCHAR(10), @Id_Evento_Grupo_Reservas) + ')
																							AND PLG.Flag_Localidades = 1)'
			END
		END
	
		IF(@pId_Sector <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
		END

		IF(@pModoDebug = 1)
		BEGIN
			PRINT '@SqlStr: ' + @SqlStr
		END

		EXECUTE sp_executesql @SqlStr
	END 

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END
/*======================================================================= RESERVAS ANTICIPADAS=============================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'RESERVAS ANTICIPADAS'
	END

	IF CONVERT(DATE,@Evento_Fecha_Reserva_Limite) >= CONVERT(DATE,GETDATE()) 
	BEGIN

		SET @SqlStr =	''

		SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
		SET @SqlStr +=	' SELECT'
		SET @SqlStr +=	' DISTINCT'
		SET @SqlStr +=	' CB.Id_Trans,'
		SET @SqlStr +=	' ISNULL(CI.Id_Cliente, 0) AS Id_Cliente,'
		SET @SqlStr +=	' ISNULL(CB.Id_Lista, 0) AS Id_Lista,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CL.Razon_Social, '''')))) AS Razon_Social,'
		SET @SqlStr +=	' CI.Fecha_QA,'
		SET @SqlStr +=	' CI.Fecha_Venc,'
		SET @SqlStr +=	' PLP.Fecha_Desde,'
		SET @SqlStr +=	' PLP.Fecha_Hasta,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(PLP.Descripcion, '''')))) AS Descripcion,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(CI.Id_Producto, '''')))) AS Id_Producto,'
		SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(PR.Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
		SET @SqlStr +=	' ''ARA'' AS Estado,'
					/*
						A	-> Abono Comprado    
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
		SET @SqlStr +=	' CI.Serie,'
		SET @SqlStr +=	' CI.Item,'
		SET @SqlStr +=	' CI.Flag_QA,'
		SET @SqlStr +=	' CB.Fecha,'
		SET @SqlStr +=	' dbo.CF_Cbte_Descrip(CB.Id_Trans) AS Cbte_Descrip,'
		SET @SqlStr +=	' CB.Id_Estado_Cbte,'
		SET @SqlStr +=	' CONVERT(INT, CI.Cantidad) AS Cantidad,'
		SET @SqlStr +=	' CB.Lote'
		SET @SqlStr +=	' FROM Cbtes CB, Cbtes_Items CI, Productos PR, Clientes CL, Prod_Listas_Precios PLP, Cbtes_Tipos CT'
		SET @SqlStr +=	' WHERE'
		SET @SqlStr +=	' CB.Id_Trans = CI.Id_Trans'
		SET @SqlStr +=	' AND CI.Id_Producto = PR.Id_Producto'
		SET @SqlStr +=	' AND CI.Id_Cliente = CL.Id_Cliente'
		SET @SqlStr +=	' AND CB.Id_Lista = PLP.Id_Lista_Precio'
		SET @SqlStr +=	' AND CB.Id_Tipo_Cbte = CT.Id_Tipo_Cbte'
		SET @SqlStr +=	' AND (CT.Compromete_Factura = 1 OR Compromete_Remitos = 1) ' 
		SET @SqlStr +=	' AND CB.Id_Estado_Cbte IN (2,4) '
		SET @SqlStr +=	' AND PLP.Flag_Localidades = 1'
		SET @SqlStr +=	' AND PR.Tipo = ''L'''
		SET @SqlStr +=	' AND CI.Flag_QA IN (''A'',''B'')'
		SET @SqlStr +=	' AND DATEADD(DAY, (-1) * PLP.Evento_Cant_Dias_Renov_Prev, CONVERT(DATE, CI.Fecha_Venc)) <= CONVERT(DATE, GETDATE())
										AND CONVERT(DATE, CI.Fecha_Venc) >= CONVERT(DATE, GETDATE())  '
						  
		IF(@pId_Cliente <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND (CL.Id_Cliente = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) +  ' OR ISNULL(CL.Id_Cliente_Ref, 0) = ' + CONVERT(VARCHAR(10), @Id_Cliente_Ref) + ')'
		END

		IF(@pId_Lista_Precio > 0)
		BEGIN
			IF(@Id_Evento_Grupo <> 0)
			BEGIN
				SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PLP.Id_Lista_Precio IN (SELECT PLG.Id_Lista_Precio 
																							FROM Prod_Listas_Precios PLG
																							WHERE PLG.Id_Evento_Grupo IN (' + CONVERT(VARCHAR(10), @Id_Evento_Grupo) + ','+ CONVERT(VARCHAR(10), @Id_Evento_Grupo_Reservas) + ')
																							AND PLG.Flag_Localidades = 1)'
			END
		END
	
		IF(@pId_Sector <> 0)
		BEGIN
			SET @SqlStr = RTRIM(LTRIM(@SqlStr)) + CHAR(13) +' AND PR.Id_Sector = ' + CONVERT(VARCHAR(20),@pId_Sector) 
		END

		IF(@pModoDebug = 1)
		BEGIN
			PRINT '@SqlStr: ' + @SqlStr
		END

		EXECUTE sp_executesql @SqlStr
	END 

	IF(@pModoDebug = 1)
	BEGIN
		PRINT ''
	END

	/*=======================================================================EN PROCESO DE VENTA=============================================================================*/
	
	IF(@pId_Cliente = 0)
	BEGIN
		IF(@pModoDebug = 1)
		BEGIN
			PRINT 'EN PROCESO DE VENTA'
		END

		SET @cant_min_reserva = CONVERT(INT, dbo.CF_xParam('cant_min_reserva'))

		SET @SqlStr +=	'INSERT INTO #Rta_CPJ_Localidades_Ocupadas '
		SET @SqlStr +=	' SELECT'
		SET @SqlStr +=	' 0 AS Id_Trans,'
		SET @SqlStr +=	' 0 AS Id_Cliente,'
		SET @SqlStr +=	' 0 AS Id_Lista,'
		SET @SqlStr +=	' '''' AS Razon_Social,'
		SET @SqlStr +=	' '''' AS Fecha_QA,'
		SET @SqlStr +=	' '''' AS Fecha_Venc,'
		SET @SqlStr +=	' '''' AS Fecha_Desde,'
		SET @SqlStr +=	' '''' AS Fecha_Hasta,'
		SET @SqlStr +=	' '''' AS Descripcion,'
		SET @SqlStr +=	' UPPER(LTRIM(RTRIM(ISNULL(Id_Producto, '''')))) AS Id_Producto,'
		SET @SqlStr +=	' UPPER(RTRIM(LTRIM(ISNULL(Descripcion_Resumida, '''')))) AS Descripcion_Resumida,'
		SET @SqlStr +=	'''PV'' AS Estado,'
					/*
						A	-> Abono Comprado     
						ARA -> Abono Reserva Anticipada    
						AR	-> Abono Resevado     
						TV	-> Ticket Vendido
						TC	-> Ticket Canjeado
						TI	-> Ticket Impreso
						PI	-> Protocolos Impresos
						PU	-> Protocolo Fijo
						PV	-> En Proceso de Venta
					*/
		SET @SqlStr +=	' '''' AS Serie,'
		SET @SqlStr +=	' 0 AS Item,'
		SET @SqlStr +=	' '''' AS Flag_QA,'
		SET @SqlStr +=	' '''' AS Fecha_Cbte,'
		SET @SqlStr +=	' '''' AS Cbte_Descrip,'
		SET @SqlStr +=	' 0 AS Id_Estado_Cbte,'
		SET @SqlStr +=	' 0 AS Cantidad,'
		SET @SqlStr +=	' '''' AS Lote'
		SET @SqlStr +=	' FROM Productos'
		SET @SqlStr +=	' WHERE'
		SET @SqlStr +=	' Fecha_Reserva >= DATEADD(MINUTE, (-1) * ' + CONVERT(VARCHAR(10), @cant_min_reserva) +', GETDATE())'

		IF(@pModoDebug = 1)
		BEGIN
			PRINT '@SqlStr: ' + @SqlStr
		END

		EXECUTE sp_executesql @SqlStr

		IF(@pModoDebug = 1)
		BEGIN
			PRINT ''
		END
	END

	/*====================================================================================================================================================*/

	SELECT * FROM #Rta_CPJ_Localidades_Ocupadas

	/*====================================================================================================================================================*/

	IF OBJECT_ID('tempdb..#Rta_CPJ_Localidades_Ocupadas') IS NOT NULL
	BEGIN
		DROP TABLE #Rta_CPJ_Localidades_Ocupadas
	END

	/*====================================================================================================================================================*/

	IF @pFlagUsarTrans <> 0 COMMIT
	
	/*====================================================================================================================================================*/

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Fin Stored Procedure: [CPJ_Localidades_Ocupadas]'
	END
	
END TRY  


BEGIN CATCH  
    EXECUTE usp_GetErrorInfo

	IF @pFlagUsarTrans <> 0  ROLLBACK

	RETURN 9999
END CATCH

RETURN 0 


-- EXEC [CPJ_Localidades_Ocupadas] '{"ModoDebug":"1","Id_Cliente":"0","Id_Lista_Precio":"2028","Id_Sector":"6"'
/*

EXEC [CPJ_Localidades_Ocupadas] '{"FlagUsarTrans":"0", "ModoDebug":"0", "Id_Sector":"6", "Id_Cliente":"0", "Id_Lista_Precio":"0", "Flag_Interface":"G" }'


*/
