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


CREATE FUNCTION [dbo].[CF_Banelco_CB_TX](@pId_Trans INT, @pImporte DECIMAL(12,2)) 
RETURNS CHAR(56)
AS
BEGIN

DECLARE @Retorno				CHAR(56)
DECLARE @aCuit					CHAR(11)
DECLARE @aId_Cliente			CHAR(10)	/*Identificación del cliente en la empresa.  Se refiere a la identificación que deberá ingresar el cliente para poder pagar, que le sirve a la empresa para saber quien le está pagando. Son los números que componen el “concepto utilizado como ID del cliente” que la empresa completó en el formulario de adhesión.*/
DECLARE @aId_Trans				CHAR(15)	/*Identificación de la factura. Se refiere a la identificación particular de la factura que está pagando el cliente. No tiene que ser obligatoriamente el “Nro. de Factura”, sino que puede ser cualquier número que utilice la empresa para individualizar el pago (puede que para un mismo Nro. Referencia, haya varios Id. Factura, si un cliente tiene varias facturas a pagar).*/
DECLARE @aImporte				CHAR(12)	/*Importe de la factura para el 1er vencimiento. Formato: 10 enteros, 2 decimales, sin separadores*/
DECLARE @aFecha					CHAR(8)		/*Fecha del 1er vencimiento de la factura Formato: AAAAMMDD*/
DECLARE @aId_Cliente_Externo	CHAR(10)
DECLARE @TipoIdentPrim			INT	
DECLARE @Id_Cliente				INT

/*Seteo Variables Locales*/
SELECT	@Id_Cliente = Id_Cliente
		
FROM Cbtes 
WHERE
Id_Trans = @pId_Trans

SET @TipoIdentPrim = dbo.CF_xParam('Banelco_IdentPrim')

SET @aId_Cliente_Externo = ISNULL((SELECT ISNULL(Id_cliente_Externo,'') from Clientes WHERE Id_Cliente = @Id_Cliente),0)

/*Se arma el Codigo de Barra*/

SET @aCuit			= '99999999999'

IF (@TipoIdentPrim = 0)		/*Utiliza Id_Cliente como Nro de referencia de Cliente*/
BEGIN
	SET @aId_Cliente	= (SELECT RIGHT('0000000000' + CAST(Id_Cliente AS VARCHAR), 10) FROM Cbtes WHERE Id_Trans = @pId_Trans)
END
ELSE IF (@TipoIdentPrim = 1) /*Utiliza Id_Cliente_Externo como Nro de referencia de Cliente*/
BEGIN
	SET @aId_Cliente	= (RIGHT('0000000000' + CAST(@aId_Cliente_Externo AS VARCHAR), 10))
END


SET @aId_Trans		= (SELECT RIGHT('000000000000000' + CAST(@pId_Trans AS VARCHAR), 15))

SET @aImporte		= (SELECT RIGHT('000000000000' + CAST(CAST(@pImporte * 100 AS INT) AS VARCHAR), 12))

SET @aFecha			= (	SELECT
						CAST(DATEPART(YY,Fecha_Venc) as CHAR(4)) + 
						RIGHT( '00' + CAST(DATEPART(mm,Fecha_Venc) AS VARCHAR),2) + 
						RIGHT( '00' + CAST(DATEPART(dd,Fecha_Venc) AS VARCHAR),2) 
						FROM Cbtes 
						WHERE 
						Id_Trans = @pId_Trans)

SET @Retorno =	@aCuit			+ 
				@aId_Cliente	+ 
				@aId_Trans		+ 
				@aImporte		+ 
				@aFecha 

RETURN ISNULL(@Retorno, '                                                        ')
END
