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


CREATE PROCEDURE [dbo].[CP_Contratos_Prod_PSH_Agregar] @pId_Contrato INT, @pId_Producto VARCHAR(14), @pString VARCHAR(8000)
AS

DECLARE @Cantidad_Productos							INT
DECLARE @Contador_Aux_Productos_Salas				INT
DECLARE @Cada_Producto								VARCHAR(8000)
DECLARE @Cada_Arr_Producto_Horario					VARCHAR(8000)
DECLARE @Cada_Arr_Sala_Horario						VARCHAR(8000)
DECLARE @Cantidad_Salas								INT
DECLARE @Contador_Aux_Salas							INT
DECLARE @Cada_Sala_Horario							VARCHAR(8000)
DECLARE @Cada_Sala									VARCHAR(8000)
DECLARE @Cada_Arr_Horario							VARCHAR(8000)
DECLARE @Cantidad_Horarios							INT
DECLARE @Contador_Aux_Productos_Salas_Horarios		INT
DECLARE @Cada_Horario								VARCHAR(8000)
DECLARE @Items			INT

--SET @pString = '1261_01:4649=3114|2245|3112|,;1002_01:4578=172|,;1261_01:4649=,;'

PRINT '@pString: ' + @pString

SET @Cantidad_Productos = DATALENGTH(@pString)  - DATALENGTH(REPLACE(@pString, ';', ''))

SET @Contador_Aux_Productos_Salas = 1
SET @Items=1

WHILE @Contador_Aux_Productos_Salas <= @Cantidad_Productos
BEGIN
	SET @Cada_Arr_Producto_Horario = dbo.SF_CortarCadena(@pString, ';', @Contador_Aux_Productos_Salas)

	SET @Cada_Producto = dbo.SF_CortarCadena(@Cada_Arr_Producto_Horario, ':', 1)

	SET @Cada_Arr_Sala_Horario = dbo.SF_CortarCadena(@Cada_Arr_Producto_Horario, ':', 2)

	PRINT ''
	PRINT '------------------------------------------------------------------------------------------------'
	PRINT ''
	PRINT 'Producto: ' + @Cada_Producto
	
	IF (@pId_Producto=@Cada_Producto)
	BEGIN
		PRINT ''
		PRINT '--Salas del Producto: '
		SET @Cantidad_Salas = DATALENGTH(@Cada_Arr_Sala_Horario)  - DATALENGTH(REPLACE(@Cada_Arr_Sala_Horario, ',', ''))

		SET @Contador_Aux_Salas = 1

		WHILE @Contador_Aux_Salas <= @Cantidad_Salas
		BEGIN
			SET @Cada_Sala_Horario = dbo.SF_CortarCadena(@Cada_Arr_Sala_Horario, ',', @Contador_Aux_Salas)

			SET @Cada_Sala = dbo.SF_CortarCadena(@Cada_Sala_Horario, '=', 1)

			SET @Cada_Arr_Horario = dbo.SF_CortarCadena(@Cada_Sala_Horario, '=', 2)
		
			PRINT '-------------------------------------------------'
			PRINT 'Sala: ' + @Cada_Sala

		
			INSERT INTO Contratos_Prod 
			(Id_Contrato,		Item,	Id_Producto,	Precio,	Precio_Formula,	Cant_Cuotas,	
			Observa_Fact,	Flag_Facturable,	Cantidad,	Cant_Includ, Flag_No_Bonificable,	Id_Prod_Familia_Sala)
			VALUES
			(@pId_Contrato,	@Items,		@Cada_Producto,	0,		'',				0,				
			'',					1,				1,			0,			0,						@Cada_Sala)

			SET @Items=@Items+1

			PRINT ''
			PRINT '----Horarios de la sala: '
			PRINT ''

			SET @Cantidad_Horarios = DATALENGTH(@Cada_Arr_Horario)  - DATALENGTH(REPLACE(@Cada_Arr_Horario, '|', ''))

			SET @Contador_Aux_Productos_Salas_Horarios = 1

			WHILE @Contador_Aux_Productos_Salas_Horarios <= @Cantidad_Horarios
			BEGIN
				SET @Cada_Horario = dbo.SF_CortarCadena(@Cada_Arr_Horario, '|', @Contador_Aux_Productos_Salas_Horarios)

				PRINT @Cada_Horario

					IF(@Cada_Horario<>'')
					BEGIN
						INSERT INTO Contratos_Prod_Horarios (Id_Contrato, Item, Id_Prod_Familia_Horario)
						VALUES (@pId_Contrato,1,@Cada_Horario)
					END

				SET @Contador_Aux_Productos_Salas_Horarios = @Contador_Aux_Productos_Salas_Horarios + 1
		
			END

			SET @Contador_Aux_Salas = @Contador_Aux_Salas + 1
		END
	END
	SET @Contador_Aux_Productos_Salas = @Contador_Aux_Productos_Salas + 1	
END
