CREATE FUNCTION [dbo].[SF_BancoPayPerTIC_TX](@pId_Trans INT, @pImporte DECIMAL(12,2)) 
RETURNS VARCHAR(500)
AS
BEGIN

/*Variable de Retorno*/
DECLARE @Retorno			VARCHAR(500)
/*FIN Variable de Retorno*/

/*Variables del Archivo*/
DECLARE @aSeparador				CHAR(1)
DECLARE @aId_Trans				VARCHAR(10)		/*Identificador interno de transacción para la entidad recaudadora*/
DECLARE @aId_Cliente			VARCHAR(10)		/*Identificador unívoco del pagador*/
DECLARE @aRazon_Social			VARCHAR(100)	/*Nombre del pagador*/
DECLARE @aTelefono				VARCHAR(900)	/*Teléfono del pagador (SOLO numeros)*/
DECLARE @aEmail					VARCHAR(8000)	/*E-mail del pagador*/
DECLARE @aId_Producto			VARCHAR(14)		/*Identificador del concepto a cobrar*/
DECLARE @aDescripcion_Prod		VARCHAR(100)	/*Descripción del concepto a cobrar*/
DECLARE @aImp_Total				VARCHAR(10)		/*Monto a cobrar (Solo numeros con punto decimal)*/
DECLARE @aRecurrenciaCobro		VARCHAR(2)		/*Recurrencia del cobro. *Modalidad Debito Automatico: Valor '0': El cobro se repetirá cada mes, todos los meses. Valor !=0: El cobro se repetirá tantas veces como este valor indique.   *Modalidad e-Commerce: El valor indica la cantidad de cuotas a realizar.*/
DECLARE @aURLCambios			VARCHAR(255)	/*URL a la cual se enviaran las notificaciones con el cambio de estado de los pagos.*/
DECLARE @aFechaVencimiento		VARCHAR(19)		/*Fecha de vencimiento.  Es la fecha del día por defecto.  No es tomado en cuenta para pagos online (dd/mm/aaaa hh:mm:ss)*/
DECLARE @aUltFechaPago			VARCHAR(19)		/* Última fecha para aceptar el pago, durante este período se aplica el rate y el charge. Por defecto es el día 24 del mes en curso. No es tomado en cuenta para pagos online (dd/mm/aaaa hh:mm:ss)*/
DECLARE @aTNAACobrar			VARCHAR(3)		/*TNA tasa de interés anual a cobrar entre los vencimientos. Por defecto es 0. No es tomado en cuenta para pagos online*/
DECLARE @aImpFijoDiferimiento	VARCHAR(10)		/*Importe fijo a aplicar en el diferimiento*/
DECLARE @aImpMinAAplicarVenc	VARCHAR(10)		/*Importe MÍNIMO  a aplicar en el vencimiento*/
DECLARE @aTipoMedioPago			VARCHAR(5)		/*Tipo de medio de pago*/
DECLARE @aNroMedioPago			VARCHAR(22)		/*Número de medio de pago. CBU: 22 dígitos VISA: 16 dígitos MASTER: 16 dígitos AMEX: 15 dígitos No es tomado en cuenta para pagos online.*/
DECLARE @aNroPromo				VARCHAR(10)		/* Numero de promoción el cual se obtiene del servicio de promociones. Nota: Este campo solo es valido para transacciones online y depende de la entidad con la cual se procese*/
DECLARE @aPriDatoAdicCli		VARCHAR(100)	/*Primer dato adicional del cliente*/
DECLARE @aSegDatoAdicCli		VARCHAR(100)	/*Segundo dato adicional del cliente*/
DECLARE @SesionGenerada			VARCHAR(500)	/*Sesión generada por el servicio de autentificación. Este campo solo se requiere si en la configuración del comercio lo especifica.*/
DECLARE @PermControlIntegMsg	VARCHAR(500)	/*Permite controlar la integridad del mensaje enviado por el cliente.*/
/*FIN Variables del Archivo*/

/*Variables Intermedias*/
DECLARE @Id_Cliente				INT
DECLARE @Razon_Social			VARCHAR(100)
DECLARE @Telefono				VARCHAR(900)
DECLARE @Email					VARCHAR(8000)
DECLARE @Id_Producto			VARCHAR(14)
DECLARE @Descripcion_Prod		VARCHAR(100)
DECLARE @Fecha_QA				DATETIME
/*FIN Variables Intermedias*/

/*Calculos intermerdios*/

SELECT  @Id_Cliente		= ISNULL(Id_Cliente, 0)
FROM Cbtes
WHERE 
Id_Trans = @pId_Trans

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

SELECT  @Razon_Social		= ISNULL(LTRIM(RTRIM(Razon_Social)), LTRIM(RTRIM(Apellido)) + ' ' + LTRIM(RTRIM(Nombre))),
		@Telefono			= ISNULL(LTRIM(RTRIM(Telefono)), ''),
		@Email				= ISNULL(CONVERT(VARCHAR(8000), Email), '')
FROM Clientes
WHERE 
Id_Cliente = @Id_Cliente

SET @Telefono = REPLACE(@Telefono, '-', '')
SET @Telefono = REPLACE(@Telefono, '(', '')
SET @Telefono = REPLACE(@Telefono, ')', '')

IF(ISNUMERIC(@Telefono) = 0)
BEGIN
	SET @Telefono = ''
END

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

SELECT	TOP 1 
		@Id_Producto		= LTRIM(RTRIM(Id_Producto)),  
		@Descripcion_Prod	= LTRIM(RTRIM(Descripcion_producto)), 
		@Fecha_QA			= Fecha_QA
FROM Cbtes_Items 
WHERE 
Id_Trans = @pId_Trans 
ORDER BY Imp_Final DESC
/*FIN Calculos intermerdios*/

/*Grabacion de los campos de la fila*/
SET @aSeparador				= ','

SET @aId_Trans				= @pId_Trans
SET @aId_Cliente			= @Id_Cliente
SET @aRazon_Social			= @Razon_Social
SET @aTelefono				= @Telefono
SET @aEmail					= @Email
SET @aId_Producto			= @Id_Producto
SET @aDescripcion_Prod		= CAST(DATEPART(YY, @Fecha_QA) AS CHAR(4)) + '/' + RIGHT('00' + CAST(MONTH(@Fecha_QA) AS VARCHAR),2) + ' ' + @Descripcion_Prod
SET @aImp_Total				= CONVERT(VARCHAR(10), @pImporte)
/*Para futuras implementaciones*/
SET @aRecurrenciaCobro		= ''
SET @aURLCambios			= ''
SET @aFechaVencimiento		= ''
SET @aUltFechaPago			= ''
SET @aTNAACobrar			= ''
SET @aImpFijoDiferimiento	= ''
SET @aImpMinAAplicarVenc	= ''
SET @aTipoMedioPago			= ''
SET @aNroMedioPago			= ''
SET @aNroPromo				= ''
SET @aPriDatoAdicCli		= ''
SET @aSegDatoAdicCli		= ''
SET @SesionGenerada			= ''
SET @PermControlIntegMsg	= ''

/*FIN Grabacion de los campos de la fila*/

/*Grabacioón de la Fila Completa*/
SET @Retorno			=	@aId_Trans				+ @aSeparador +
							@aId_Cliente			+ @aSeparador +
							@aRazon_Social			+ @aSeparador +
							@aTelefono				+ @aSeparador +
							@aEmail					+ @aSeparador +
							@aId_Producto			+ @aSeparador +
							@aDescripcion_Prod		+ @aSeparador +
							@aImp_Total				/*+ @aSeparador +
							@aRecurrenciaCobro		+ @aSeparador +
							@aURLCambios			+ @aSeparador +
							@aFechaVencimiento		+ @aSeparador +
							@aUltFechaPago			+ @aSeparador +
							@aTNAACobrar			+ @aSeparador +
							@aImpFijoDiferimiento	+ @aSeparador +
							@aImpMinAAplicarVenc	+ @aSeparador +
							@aTipoMedioPago			+ @aSeparador +
							@aNroMedioPago			+ @aSeparador +
							@aNroPromo				+ @aSeparador +
							@aPriDatoAdicCli		+ @aSeparador +
							@aSegDatoAdicCli		+ @aSeparador +
							@SesionGenerada			+ @aSeparador +
							@PermControlIntegMsg*/
/*FIN Grabacioón de la Fila Completa*/

RETURN @retorno
END