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

CREATE PROCEDURE dbo.CP_Banco_Roela_RX @Linea CHAR(166)
AS 

/*
LOG VERSIONES:
12/05/2022 09:33Hs (F)	Creado
12/05/2022 11:00Hs (F)	1) Corrección para compatibilidad con BOC. 
				2) Si el 5 digito del codigo de Barra no es un 1 no es un codigo de barra informado por nosotros y no lo procesamos

*/

DECLARE @aFchPago				VARCHAR(8)
DECLARE @aFchAcreditacion			VARCHAR(8)
DECLARE @aFch1Vto				VARCHAR(8)
DECLARE @aImportePagado			VARCHAR(11)
DECLARE @aIdentificador_Usuario		VARCHAR(8)
DECLARE @aIdentificador_Concepto		VARCHAR(1)
DECLARE @aCodigoBarras			VARCHAR(59)
DECLARE @aIdentificador_Comprobante	VARCHAR(20)
DECLARE @aCanal_Cobro			VARCHAR(3)
DECLARE @aCod_Rechazo			VARCHAR(3)
DECLARE @aDescrip_Rechazo			VARCHAR(20)
DECLARE @aFiller				VARCHAR(17)

DECLARE @Fecha_Pago				DATETIME
DECLARE @Fecha_Acreditacion			DATETIME
DECLARE @Fecha_1Vto				DATETIME
DECLARE @Importe_Pagado			DECIMAL(12,2)
DECLARE @Id_Trans				INT
DECLARE @Cod_Rechazo				VARCHAR(3)
DECLARE @Descrip_Rechazo			VARCHAR(20)
DECLARE @Canal_Cobro				VARCHAR(3)
DECLARE @Canal_Cobro_Descrip		VARCHAR(100)
DECLARE @Id_Tar_Lote				INT

DECLARE @Informado_Fecha_1Vto		DATETIME
DECLARE @Informado_Fecha_2Vto		DATETIME
DECLARE @Informado_Fecha_3Vto		DATETIME
DECLARE @Informado_Importe_1Vto		DECIMAL(12,2)
DECLARE @Informado_Importe_2Vto		DECIMAL(12,2)
DECLARE @Informado_Importe_3Vto		DECIMAL(12,2)
DECLARE @Id_Concepto_Cod_Barra		VARCHAR(1)

SET @aFchPago				= SUBSTRING(@Linea, 1, 8)
SET @aFchAcreditacion		= SUBSTRING(@Linea, 9, 8)
SET @aFch1Vto				= SUBSTRING(@Linea, 17, 8)
SET @aImportePagado			= SUBSTRING(@Linea, 25, 11)
SET @aIdentificador_Usuario		= SUBSTRING(@Linea, 36, 8)
SET @aIdentificador_Concepto	= SUBSTRING(@Linea, 44, 1)
SET @aCodigoBarras			= SUBSTRING(@Linea, 45, 59)
SET @aIdentificador_Comprobante	= SUBSTRING(@Linea, 104, 20)
SET @aCanal_Cobro			= SUBSTRING(@Linea, 124, 3)
SET @aCod_Rechazo			= SUBSTRING(@Linea, 127, 3)
SET @aDescrip_Rechazo		= SUBSTRING(@Linea, 130, 20)
SET @aFiller				= SUBSTRING(@Linea, 150, 17)

SET @Fecha_Pago			= CONVERT(DATETIME, @aFchPago)
SET @Fecha_Acreditacion		= CONVERT(DATETIME, @aFchAcreditacion)
SET @Fecha_1Vto			= CONVERT(DATETIME, @aFch1Vto)
SET @Importe_Pagado			= CONVERT(DECIMAL(12,2), (CONVERT(DECIMAL, @aImportePagado) / 100))
SET @Cod_Rechazo			= CONVERT(VARCHAR(3), @aCod_Rechazo)
SET @Descrip_Rechazo			= CONVERT(VARCHAR(20), @aDescrip_Rechazo)
SET @Canal_Cobro			= CONVERT(VARCHAR(3), @aCanal_Cobro)
SET @Id_Concepto_Cod_Barra		= SUBSTRING(@aCodigoBarras, 5, 1)


SET @Canal_Cobro_Descrip =	CASE
					WHEN @aCanal_Cobro = 'RP' 	THEN 'Rapipago'
					WHEN @aCanal_Cobro = 'PF' 	THEN 'Pago Facil'
					WHEN @aCanal_Cobro = 'PP' 	THEN 'Provincia Pagos'
					WHEN @aCanal_Cobro = 'LK' 	THEN 'Link Pagos'
					WHEN @aCanal_Cobro = 'PC' 	THEN 'Pago Mis Cuentas'
					WHEN @aCanal_Cobro = 'DD+' 	THEN 'Cobranza de Debito Directo'
					WHEN @aCanal_Cobro = 'DD-' 	THEN 'Reversion de Debito Directo'
					WHEN @aCanal_Cobro = 'DDR' 	THEN 'Rechazo de Debito Directo'
					WHEN @aCanal_Cobro = 'MC' 	THEN 'Mastercard'
					WHEN @aCanal_Cobro = 'MCR' 	THEN 'Rechazo de Mastercard'
					WHEN @aCanal_Cobro = 'ASJ' 	THEN 'Plus Pagos'
					WHEN @aCanal_Cobro = 'BM' 	THEN 'Banco Municipal'
					WHEN @aCanal_Cobro = 'BR' 	THEN 'Bancor'
					WHEN @aCanal_Cobro = 'RSF' 	THEN 'Rapipago Sin Factura'
					WHEN @aCanal_Cobro = 'PSF' 	THEN 'Provincia Pagos Sin Factura'
					WHEN @aCanal_Cobro = 'VS' 	THEN 'Visa'
					WHEN @aCanal_Cobro = 'VSR' 	THEN 'Rechazo de Visa'
					WHEN @aCanal_Cobro = 'FSF' 	THEN 'Pago Facil Sin Factura'
					WHEN @aCanal_Cobro = 'BOC' 	THEN 'Boton Otros Creditos'
					WHEN @aCanal_Cobro = 'BOD' 	THEN 'Boton Otros Debito'
					WHEN @aCanal_Cobro = 'ASF' 	THEN 'Plus Pagos Sin Factura'
					WHEN @aCanal_Cobro = 'RO' 	THEN 'Banco Roela Caja'
					WHEN @aCanal_Cobro = 'BPD' 	THEN 'Boton Pago Debito'
					WHEN @aCanal_Cobro = 'BPC' 	THEN 'Boton Pago Credito'
					WHEN @aCanal_Cobro = 'BPR' 	THEN 'Rechazo de Boton de Pago'
					WHEN @aCanal_Cobro = 'CE' 	THEN 'Cobro Express'
					WHEN @aCanal_Cobro = 'CEF' 	THEN 'Cobro Express Sin Factura'
					WHEN @aCanal_Cobro = 'PCO' 	THEN 'Pago Mis Cuentas en linea'
					WHEN @aCanal_Cobro = 'LKO' 	THEN 'Link Pagos en linea'
					WHEN @aCanal_Cobro = 'PCV' 	THEN 'PC alta en linea vencida'
					WHEN @aCanal_Cobro = 'LKV' 	THEN 'LK alta en linea vencida'
					WHEN @aCanal_Cobro = 'TI' 	THEN 'Transferencia SNP, Link, Interbanking'
					WHEN @aCanal_Cobro = 'TII' 	THEN 'Transferencia SNP, Link, Interbanking Inmobiliarias'
					ELSE 'Otro Canal no identificado'
				END

SET @Id_Trans		= 0

SET @Id_Trans		=	CASE
					WHEN @aCanal_Cobro = 'RP' AND @Id_Concepto_Cod_Barra = '1' THEN CONVERT(INT, @aIdentificador_Usuario)	/*Si el 5 digito del codigo de Barra no es un 1 no es un codigo de barra informado por nosotros y no lo procesamos*/
					WHEN @aCanal_Cobro = 'PF' AND @Id_Concepto_Cod_Barra = '1' THEN CONVERT(INT, @aIdentificador_Usuario)	/*Si el 5 digito del codigo de Barra no es un 1 no es un codigo de barra informado por nosotros y no lo procesamos*/
					WHEN @aCanal_Cobro = 'PP' 	THEN 'Provincia Pagos'
					WHEN @aCanal_Cobro = 'LK' 	THEN CONVERT(INT, SUBSTRING(@aIdentificador_Comprobante, 1, 15))
					WHEN @aCanal_Cobro = 'PC' 	THEN CONVERT(INT, SUBSTRING(@aIdentificador_Comprobante, 1, 15))
					WHEN @aCanal_Cobro = 'DD+' 	THEN 'Cobranza de Debito Directo'
					WHEN @aCanal_Cobro = 'DD-' 	THEN 'Reversion de Debito Directo'
					WHEN @aCanal_Cobro = 'DDR' 	THEN 'Rechazo de Debito Directo'
					WHEN @aCanal_Cobro = 'MC' 	THEN 'Mastercard'
					WHEN @aCanal_Cobro = 'MCR' 	THEN 'Rechazo de Mastercard'
					WHEN @aCanal_Cobro = 'ASJ' 	THEN 'Plus Pagos'
					WHEN @aCanal_Cobro = 'BM' 	THEN 'Banco Municipal'
					WHEN @aCanal_Cobro = 'BR' 	THEN 'Bancor'
					WHEN @aCanal_Cobro = 'RSF' 	THEN 'Rapipago Sin Factura'
					WHEN @aCanal_Cobro = 'PSF' 	THEN 'Provincia Pagos Sin Factura'
					WHEN @aCanal_Cobro = 'VS' 	THEN 'Visa'
					WHEN @aCanal_Cobro = 'VSR' 	THEN 'Rechazo de Visa'
					WHEN @aCanal_Cobro = 'FSF' 	THEN 'Pago Facil Sin Factura'
					WHEN @aCanal_Cobro = 'BOC' 	THEN 0 /* 'Boton Otros Creditos', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
					WHEN @aCanal_Cobro = 'BOD' 	THEN 0 /* 'Boton Otros Debito', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
					WHEN @aCanal_Cobro = 'ASF' 	THEN 'Plus Pagos Sin Factura'
					WHEN @aCanal_Cobro = 'RO' 	THEN 'Banco Roela Caja'
					WHEN @aCanal_Cobro = 'BPD' 	THEN 0 /* 'Boton Pago Debito', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
					WHEN @aCanal_Cobro = 'BPC' 	THEN 0	/* 'Boton Pago Credito', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
					WHEN @aCanal_Cobro = 'BPR' 	THEN 0 /* 'Rechazo de Boton de Pago', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
					WHEN @aCanal_Cobro = 'CE' 	THEN 'Cobro Express'
					WHEN @aCanal_Cobro = 'CEF' 	THEN 'Cobro Express Sin Factura'
					WHEN @aCanal_Cobro = 'PCO' 	THEN 'Pago Mis Cuentas en linea'
					WHEN @aCanal_Cobro = 'LKO' 	THEN 'Link Pagos en linea'
					WHEN @aCanal_Cobro = 'PCV' 	THEN 'PC alta en linea vencida'
					WHEN @aCanal_Cobro = 'LKV' 	THEN 'LK alta en linea vencida'
					WHEN @aCanal_Cobro = 'TI' 	THEN 'Transferencia SNP, Link, Interbanking'
					WHEN @aCanal_Cobro = 'TII' 	THEN 'Transferencia SNP, Link, Interbanking Inmobiliarias'
					ELSE 0
				END

SET @Id_Tar_Lote		= 0

IF(@Id_Trans > 0)
BEGIN
	SET @Id_Tar_Lote	=	CASE
						WHEN @aCanal_Cobro = 'RP' 	THEN ISNULL((SELECT TOP 1 ISNULL(Id_Tar_Lote, 0) FROM Val_Tarjetas_Lotes_Items WHERE Id_Trans = @Id_Trans AND (Importe = @Importe_Pagado OR Importe_2Vto = @Importe_Pagado OR Importe_3Vto = @Importe_Pagado) ORDER BY Id_Tar_Lote DESC), 0) /*No viene detallado el Lote*/
						WHEN @aCanal_Cobro = 'PF' 	THEN ISNULL((SELECT TOP 1 ISNULL(Id_Tar_Lote, 0) FROM Val_Tarjetas_Lotes_Items WHERE Id_Trans = @Id_Trans AND (Importe = @Importe_Pagado OR Importe_2Vto = @Importe_Pagado OR Importe_3Vto = @Importe_Pagado) ORDER BY Id_Tar_Lote DESC), 0) /*No viene detallado el Lote*/
						WHEN @aCanal_Cobro = 'PP' 	THEN 'Provincia Pagos'
						WHEN @aCanal_Cobro = 'LK' 	THEN CONVERT(INT, SUBSTRING(@aIdentificador_Comprobante, 16, 5))
						WHEN @aCanal_Cobro = 'PC' 	THEN CONVERT(INT, SUBSTRING(@aIdentificador_Comprobante, 16, 5))
						WHEN @aCanal_Cobro = 'DD+' 	THEN 'Cobranza de Debito Directo'
						WHEN @aCanal_Cobro = 'DD-' 	THEN 'Reversion de Debito Directo'
						WHEN @aCanal_Cobro = 'DDR' 	THEN 'Rechazo de Debito Directo'
						WHEN @aCanal_Cobro = 'MC' 	THEN 'Mastercard'
						WHEN @aCanal_Cobro = 'MCR' 	THEN 'Rechazo de Mastercard'
						WHEN @aCanal_Cobro = 'ASJ' 	THEN 'Plus Pagos'
						WHEN @aCanal_Cobro = 'BM' 	THEN 'Banco Municipal'
						WHEN @aCanal_Cobro = 'BR' 	THEN 'Bancor'
						WHEN @aCanal_Cobro = 'RSF' 	THEN 'Rapipago Sin Factura'
						WHEN @aCanal_Cobro = 'PSF' 	THEN 'Provincia Pagos Sin Factura'
						WHEN @aCanal_Cobro = 'VS' 	THEN 'Visa'
						WHEN @aCanal_Cobro = 'VSR' 	THEN 'Rechazo de Visa'
						WHEN @aCanal_Cobro = 'FSF' 	THEN 'Pago Facil Sin Factura'
						WHEN @aCanal_Cobro = 'BOC' 	THEN 0 /*'Boton Otros Creditos', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
						WHEN @aCanal_Cobro = 'BOD' 	THEN 0 /*'Boton Otros Debito', es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
						WHEN @aCanal_Cobro = 'ASF' 	THEN 'Plus Pagos Sin Factura'
						WHEN @aCanal_Cobro = 'RO' 	THEN 'Banco Roela Caja'
						WHEN @aCanal_Cobro = 'BPD' 	THEN 0 /* Boton Pago Debito, es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
						WHEN @aCanal_Cobro = 'BPC' 	THEN 0	/* Boton Pago Credito, es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
						WHEN @aCanal_Cobro = 'BPR' 	THEN 0 /* Rechazo de Boton de Pago, es algo pagado directamente por el kiosk por lo tanto ya se proceso*/
						WHEN @aCanal_Cobro = 'CE' 	THEN 'Cobro Express'
						WHEN @aCanal_Cobro = 'CEF' 	THEN 'Cobro Express Sin Factura'
						WHEN @aCanal_Cobro = 'PCO' 	THEN 'Pago Mis Cuentas en linea'
						WHEN @aCanal_Cobro = 'LKO' 	THEN 'Link Pagos en linea'
						WHEN @aCanal_Cobro = 'PCV' 	THEN 'PC alta en linea vencida'
						WHEN @aCanal_Cobro = 'LKV' 	THEN 'LK alta en linea vencida'
						WHEN @aCanal_Cobro = 'TI' 	THEN 'Transferencia SNP, Link, Interbanking'
						WHEN @aCanal_Cobro = 'TII' 	THEN 'Transferencia SNP, Link, Interbanking Inmobiliarias'
						ELSE 0
					END
END

IF (@Id_Tar_Lote <> 0 AND @Id_Trans <> 0)
BEGIN
	SELECT
	@Informado_Fecha_1Vto		= ISNULL(VTL.Fecha_1_Vto, '19000101'),
	@Informado_Fecha_2Vto		= ISNULL(VTL.Fecha_2_Vto, '19000101'),
	@Informado_Fecha_3Vto		= ISNULL(VTL.Fecha_3_Vto, '19000101'),
	@Informado_Importe_1Vto		= ISNULL(VTLI.Importe, 0),
	@Informado_Importe_2Vto		= ISNULL(VTLI.Importe_2Vto, 0),
	@Informado_Importe_3Vto		= ISNULL(VTLI.Importe_3Vto, 0)
	FROM Val_Tarjetas_Lotes VTL, Val_Tarjetas_Lotes_Items VTLI
	WHERE
	VTL.Id_Tar_Lote = VTLI.Id_Tar_Lote	
	AND VTL.Id_Tar_Lote = @Id_Tar_Lote
	AND VTLI.Id_Trans = @Id_Trans
END


SELECT 
@Id_Trans			AS Id_Trans,
@Id_Tar_Lote			AS Id_Tar_Lote,
@Importe_Pagado		AS Importe_Pagado,
@Fecha_Pago			AS Fecha_Pago,
@Fecha_Acreditacion		AS Fecha_Acreditacion,
@Fecha_1Vto			AS Fecha_1Vto,
@Cod_Rechazo			AS Cod_Rechazo,
@Descrip_Rechazo		AS Descrip_Rechazo,
@Canal_Cobro			AS Id_Canal_Cobro,
@Canal_Cobro_Descrip		AS Canal_Cobro,
@Informado_Fecha_1Vto	AS Informado_Fecha_1Vto,
@Informado_Fecha_2Vto	AS Informado_Fecha_2Vto,
@Informado_Fecha_3Vto	AS Informado_Fecha_3Vto,
@Informado_Importe_1Vto	AS Informado_Importe_1Vto,
@Informado_Importe_2Vto	AS Informado_Importe_2Vto,
@Informado_Importe_3Vto	AS Informado_Importe_3Vto,
@aCodigoBarras		AS Codigo_Barras
--,@aIdentificador_Usuario
--,@aIdentificador_Comprobante

--Pago Mis Cuentas (Envian Id_Trans + Id_Tar_Lote para identificarlo)
--EXEC dbo.CP_Banco_Roela_RX '202205092022051220220515000007373000006445000447000064450220515007373000700748360090076679251201410548000000000016235900035PC                                                                                                     '

--Rapipago (No envian el Id_Tar_Lote, lo enlaza con el lote mas reciente donde alguno de los importe enviados coincida)
--EXEC dbo.CP_Banco_Roela_RX '202205102022051320220515000001438000015886610447100158866220515001438000700145957090014955251201410549300000000000000000000RP                                                                                                     '

--Boton de Pago (Lo omite ya que es algo cobrado por el Kiosk)
--EXEC dbo.CP_Banco_Roela_RX '202205102022060119000101000001500000006264900447000062649000000001500000000000000000000000051201410540000000000000000001472BOC                       01AMEX                                                                       '
