IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CF_AppEve_ParticipanteConAcomp]') 
                   and type = 'FN')
BEGIN
    DROP FUNCTION [dbo].[CF_AppEve_ParticipanteConAcomp] 
END
GO

CREATE FUNCTION [dbo].[CF_AppEve_ParticipanteConAcomp](@pId_Trans INT /*De la inscripcion*/, @pId_Cliente INT /*Del Participante*/)
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @DatosAcomp				VARCHAR(100)
/*Formato de retorno: (Flag_Id_Cliente_Acomp);Apellido;Nombre;Empresa;*/
DECLARE @Flag_Id_Cliente_Acomp	INT
/*
 * 0: No tiene acompañante
 * 1: Tiene acompañante pero NO definido
 * >1: El Id_Cliente del acompañante definido.
*/
DECLARE @Apellido				VARCHAR(100)
DECLARE @Nombre					VARCHAR(100)
DECLARE @Empresa				VARCHAR(100)
DECLARE @Id_Cliente_Ref			INT

SET @Apellido		= ''
SET @Nombre			= ''
SET @Id_Cliente_Ref = 0
SET @Empresa		= ''


SET @Flag_Id_Cliente_Acomp = ISNULL((SELECT MAX(1)
									FROM Cbtes_Items
									WHERE
									Id_Trans = @pId_Trans
									AND Id_Producto = 'ACOMP'
									AND ISNULL(Id_Cliente, 0) <> @pId_Cliente
									)
									,	0)
IF(@Flag_Id_Cliente_Acomp = 1)
BEGIN
SET @Flag_Id_Cliente_Acomp =	(SELECT ISNULL(Id_Cliente, 0)
								FROM Cbtes_Items
								WHERE
								Id_Trans = @pId_Trans
								AND Id_Producto = 'ACOMP'
								AND ISNULL(Id_Cliente, 0) <> @pId_Cliente
								)
IF(@Flag_Id_Cliente_Acomp = 0)
BEGIN
	SET @Flag_Id_Cliente_Acomp = 1
END
									
END

IF(@Flag_Id_Cliente_Acomp > 1)
BEGIN
	SELECT
	@Apellido	= LTRIM(RTRIM(ISNULL(Apellido, ''))),
	@Nombre		= LTRIM(RTRIM(ISNULL(Nombre, ''))),
	@Id_Cliente_Ref = ISNULL(Id_Cliente_Ref, 0)
	FROM Clientes
	WHERE
	Id_Cliente = @Flag_Id_Cliente_Acomp
	
	IF(@Id_Cliente_Ref <> 0)
	BEGIN
		SET @Empresa = (SELECT LTRIM(RTRIM(ISNULL(Razon_Social, ''))) FROM Clientes WHERE Id_Cliente = @Id_Cliente_Ref)
	END
END


SET @DatosAcomp = CONVERT(VARCHAR(10), @Flag_Id_Cliente_Acomp) + ';' + @Apellido + ';' + @Nombre + ';' + @Empresa + ';'

RETURN ISNULL(@DatosAcomp, '')
END
