formatos-febraban 0.3.58 → 0.3.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 102fad611316eb0e8a9a9e71f780b1c1c910fa2e
4
- data.tar.gz: a747312e4cf23a15fdd0f0bc582d06f8df1cdbed
3
+ metadata.gz: 7a56a4b00054bcf6de88c2eea7758307827b059e
4
+ data.tar.gz: c179969d586349c1880c02a1fdff47a5ca91d0a4
5
5
  SHA512:
6
- metadata.gz: 5735c0df15a0fc7a18d7adc048157602b971cc35f058a3c22fc5eaa8b65a26f9ec2f7ad4b0c75257588269ca937195cef1e97a1613a8439ab98ea02865c3cd42
7
- data.tar.gz: 3b480685690c5500d9eb05293b853f54b3df5b67c439ff3bcae92f7ee90c3def7b2f239c8eca03d79d6a17cd470dcafff04b7f6bba5b15e704be7654e9cb5286
6
+ metadata.gz: d188b9a26f8526a11c677b654e851a728a20a019816dd08e83e73ccbd9bcb457ff6d0bba183965717e111197fbb4983c79f13dc7bab5b83b50062d992b7e0d6a
7
+ data.tar.gz: 1ef19a2664794199276f634d990f8b4dd21c372ae745f41a568b6d8bc0e07b41e60c217f2d9f7428044ff6e00b4db93548fa4be216b81f3852aa78d9d6b4bd0e
@@ -2,8 +2,6 @@ class Cielo
2
2
  require 'date'
3
3
 
4
4
  SECTION_TYPES = {header: '00', client: "01", trailler: '99'}
5
-
6
-
7
5
  VERSAO = "01"
8
6
 
9
7
  # Carrega todas as dependências de Layout
@@ -118,6 +118,21 @@ class CieloDetalhe < FormatSection
118
118
  self.get_section_value(22)
119
119
  end
120
120
 
121
+ def success?
122
+ self.get_codigo_retorno == '00'
123
+ end
124
+
125
+ def soft_bounce?
126
+ codes = ["04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "20", "21",
127
+ "22", "23", "54", "77", "81", "88", "95", "99"]
128
+
129
+ !self.success? && codes.include?(self.get_codigo_retorno)
130
+ end
131
+
132
+ def hard_bounce?
133
+ !self.success? && !self.soft_bounce?
134
+ end
135
+
121
136
  def get_mensagem_retorno
122
137
  case self.get_status_venda
123
138
  when "00"
@@ -155,11 +170,9 @@ class CieloDetalhe < FormatSection
155
170
  when "16"
156
171
  "Transação original não localizada (para cancelamento)"
157
172
  when "17"
158
- "Nº de itens informados no RO não compatível com os CV’s"
173
+ "Nº de itens informados no RO não compatível com os CV’s"
159
174
  when "18"
160
175
  "Número de referência inválido"
161
- when "54"
162
- "Não é permitido cancelamento parcial de um plano parcelado que está sendo contestado pelo portador."
163
176
  when "20"
164
177
  "Cancelamento para parcelado de transação já cancelada"
165
178
  when "21"
@@ -170,6 +183,8 @@ class CieloDetalhe < FormatSection
170
183
  "Número do RO original inválido (registro I2)"
171
184
  when "42"
172
185
  "Cartão cancelado"
186
+ when "54"
187
+ "Não é permitido cancelamento parcial de um plano parcelado que está sendo contestado pelo portador."
173
188
  when "56"
174
189
  "Tipo de plano de cartão inválido"
175
190
  when "59"
@@ -7,34 +7,34 @@ module VAldeias
7
7
 
8
8
  def initialize
9
9
  @section = Section.new({
10
- 0 => Position.new(1, 1, false, "1", true), # Código do Registro
11
- 1 => Position.new(2, 5, false), # Agencia de Débito
12
- 2 => Position.new(3, 3, true, "0"), # Zeros
13
- 3 => Position.new(4, 7, false), # Conta Corrente
14
- 4 => Position.new(5, 1, false), # Digito da CC
15
- 5 => Position.new(6, 2, false), # Carteira
16
- 6 => Position.new(7, 3, true, "0"), # Zeros
17
- 7 => Position.new(8, 12, false), # Nosso numero
18
- 8 => Position.new(9, 4, true, "0"), # Zeros
19
- 9 => Position.new(10, 11, true), # Numero Documento
20
- 10 => Position.new(11, 4, true, "0"), # Zeros
21
- 11 => Position.new(12, 6, true), # Data do documento
22
- 12 => Position.new(13, 4, true, "0"), # Zeros
23
- 13 => Position.new(14, 6, true), # Data de vencimento
24
- 14 => Position.new(15, 40, false), # Nome do sacado
25
- 15 => Position.new(16, 60, false), # Endereço
26
- 16 => Position.new(17, 10, false), # Numero
27
- 17 => Position.new(18, 10, false), # Complemento
28
- 18 => Position.new(19, 30, false), # Bairro
29
- 19 => Position.new(20, 30, false), # Cidade
30
- 20 => Position.new(21, 2, false), # Estado
31
- 21 => Position.new(22, 8, false), # Cep
32
- 22 => Position.new(23, 15, false), # Valor do titulo
33
- 23 => Position.new(24, 44, false), # Código de barras
34
- 24 => Position.new(25, 4, true, "0"), # Zeros
35
- 25 => Position.new(26, 56, false), # Linha digitavel
36
- 26 => Position.new(27, 14, false), # Brancos
37
- 27 => Position.new(44, 6, true) # Numero sequencial
10
+ 0 => Position.new(1, 1, false, "1", true), # Código do Registro
11
+ 1 => Position.new(2, 5, false), # Agencia de Débito
12
+ 2 => Position.new(3, 3, true, "0"), # Zeros
13
+ 3 => Position.new(4, 7, false), # Conta Corrente
14
+ 4 => Position.new(5, 1, false), # Digito da CC
15
+ 5 => Position.new(6, 2, false), # Carteira
16
+ 6 => Position.new(7, 3, true, "0"), # Zeros
17
+ 7 => Position.new(8, 12, false), # Nosso numero
18
+ 8 => Position.new(9, 4, true, "0"), # Zeros
19
+ 9 => Position.new(10, 11, true), # Numero Documento
20
+ 10 => Position.new(11, 4, true, "0"), # Zeros
21
+ 11 => Position.new(12, 6, true), # Data do documento
22
+ 12 => Position.new(13, 4, true, "0"), # Zeros
23
+ 13 => Position.new(14, 6, true), # Data de vencimento
24
+ 14 => Position.new(15, 40, false), # Nome do sacado
25
+ 15 => Position.new(16, 60, false), # Endereço
26
+ 16 => Position.new(17, 10, false), # Numero
27
+ 17 => Position.new(18, 10, false), # Complemento
28
+ 18 => Position.new(19, 30, false), # Bairro
29
+ 19 => Position.new(20, 30, false), # Cidade
30
+ 20 => Position.new(21, 2, false), # Estado
31
+ 21 => Position.new(22, 8, false), # Cep
32
+ 22 => Position.new(23, 15, false), # Valor do titulo
33
+ 23 => Position.new(24, 44, false), # Código de barras
34
+ 24 => Position.new(25, 4, true, "0"), # Zeros
35
+ 25 => Position.new(26, 56, false), # Linha digitavel
36
+ 26 => Position.new(27, 14, false), # Brancos
37
+ 27 => Position.new(44, 6, true) # Numero sequencial
38
38
  })
39
39
  end
40
40
 
@@ -56,7 +56,7 @@ module VAldeias
56
56
  set_estado params[:estado]
57
57
  set_cep params[:cep]
58
58
  set_valor_titulo params[:valor]
59
- set_codigo_barras params[:codigo_barras]
59
+ set_codigo_barras params[:codigo_barras]
60
60
  set_linha_digitavel params[:linha_digitavel]
61
61
  set_branco
62
62
  set_sequencial params[:sequencial]
@@ -70,49 +70,49 @@ module VAldeias
70
70
 
71
71
  def initialize
72
72
  @section = Section.new({
73
- 0 => Position.new(1, 1, false, "1", true), # Código do Registro
74
- 1 => Position.new(2, 2, true), # Tipo de inscrição da empresa (01:CPF, 02: CNPJ)
75
- 2 => Position.new(3, 14, false), # Numero da inscricao da empresa
76
- 3 => Position.new(4, 3, false), # Reservado - Zeros
77
- 4 => Position.new(5, 17, true), # Identificação da empresa (zero, carteira, agencia e CC )
78
- 5 => Position.new(6, 25, false), # Numero controle do participante
79
- 6 => Position.new(7, 8, false), # Reservado - Zeros
80
- 7 => Position.new(8, 12, true), # Identificação do titulo no banco
81
- 8 => Position.new(9, 10, false), # Reservado - Zeros
82
- 9 => Position.new(10, 12, false), # Reservado - Zeros
83
- 10 => Position.new(11, 1, false), # Indicador Rateio
84
- 11 => Position.new(12, 2, false), # Reservado - Zeros
85
- 12 => Position.new(13, 1, false), # Carteira
86
- 13 => Position.new(14, 2, false), # Id da Ocorrencia
87
- 14 => Position.new(15, 6, false), # Data da Ocorrencia
88
- 15 => Position.new(16, 10, false), # Numero Documento
89
- 16 => Position.new(17, 20, false), # Id do titulo no banco
90
- 17 => Position.new(18, 6, false), # Data vencimento do titulo (DDMMAA)
91
- 18 => Position.new(19, 13, false), # Valor do titulo
92
- 19 => Position.new(20, 3, false), # Banco cobrador
93
- 20 => Position.new(21, 5, false), # Agencia Cobradora
94
- 21 => Position.new(22, 2, false), # Especie de titulo - branco
95
- 22 => Position.new(23, 13, false), # Valor despesa das ocorrencias
96
- 23 => Position.new(24, 13, false), # Outras despesas
97
- 24 => Position.new(25, 13, false), # Juros operação em atraso
98
- 25 => Position.new(26, 13, false), # IOF devido
99
- 26 => Position.new(27, 13, false), # Valor abatimento
100
- 27 => Position.new(28, 13, false), # Valor desconto concedido
101
- 28 => Position.new(29, 13, false), # Valor pago
102
- 29 => Position.new(30, 13, false), # Juros de mora
103
- 30 => Position.new(31, 13, false), # Outros creditos
104
- 31 => Position.new(32, 2, false), # Reservado - branco
105
- 32 => Position.new(33, 1, false), # Motivo do codigo de ocorrencia
106
- 33 => Position.new(34, 6, false), # Data do credito
107
- 34 => Position.new(35, 3, false), # Origem pagamento
108
- 35 => Position.new(36, 10, false), # Reservado - brancos
109
- 36 => Position.new(37, 4, false), # Codigo do banco - quando cheque
110
- 37 => Position.new(38, 10, false), # Motivo das rejeicoes
111
- 38 => Position.new(39, 40, false), # Reservado - brancos
112
- 39 => Position.new(40, 2, false), # numero do cartorio
113
- 40 => Position.new(41, 10, false), # numero do protocolo
114
- 41 => Position.new(42, 14, false), # Reservado - brancos
115
- 42 => Position.new(43, 6, false) # Numero sequencial
73
+ 0 => Position.new(1, 1, false, "1", true), # Código do Registro
74
+ 1 => Position.new(2, 2, true), # Tipo de inscrição da empresa (01:CPF, 02: CNPJ)
75
+ 2 => Position.new(3, 14, false), # Numero da inscricao da empresa
76
+ 3 => Position.new(4, 3, false), # Reservado - Zeros
77
+ 4 => Position.new(5, 17, true), # Identificação da empresa (zero, carteira, agencia e CC )
78
+ 5 => Position.new(6, 25, false), # Numero controle do participante
79
+ 6 => Position.new(7, 8, false), # Reservado - Zeros
80
+ 7 => Position.new(8, 12, true), # Identificação do titulo no banco
81
+ 8 => Position.new(9, 10, false), # Reservado - Zeros
82
+ 9 => Position.new(10, 12, false), # Reservado - Zeros
83
+ 10 => Position.new(11, 1, false), # Indicador Rateio
84
+ 11 => Position.new(12, 2, false), # Reservado - Zeros
85
+ 12 => Position.new(13, 1, false), # Carteira
86
+ 13 => Position.new(14, 2, false), # Id da Ocorrencia
87
+ 14 => Position.new(15, 6, false), # Data da Ocorrencia
88
+ 15 => Position.new(16, 10, false), # Numero Documento
89
+ 16 => Position.new(17, 20, false), # Id do titulo no banco
90
+ 17 => Position.new(18, 6, false), # Data vencimento do titulo (DDMMAA)
91
+ 18 => Position.new(19, 13, false), # Valor do titulo
92
+ 19 => Position.new(20, 3, false), # Banco cobrador
93
+ 20 => Position.new(21, 5, false), # Agencia Cobradora
94
+ 21 => Position.new(22, 2, false), # Especie de titulo - branco
95
+ 22 => Position.new(23, 13, false), # Valor despesa das ocorrencias
96
+ 23 => Position.new(24, 13, false), # Outras despesas
97
+ 24 => Position.new(25, 13, false), # Juros operação em atraso
98
+ 25 => Position.new(26, 13, false), # IOF devido
99
+ 26 => Position.new(27, 13, false), # Valor abatimento
100
+ 27 => Position.new(28, 13, false), # Valor desconto concedido
101
+ 28 => Position.new(29, 13, false), # Valor pago
102
+ 29 => Position.new(30, 13, false), # Juros de mora
103
+ 30 => Position.new(31, 13, false), # Outros creditos
104
+ 31 => Position.new(32, 2, false), # Reservado - branco
105
+ 32 => Position.new(33, 1, false), # Motivo do codigo de ocorrencia
106
+ 33 => Position.new(34, 6, false), # Data do credito
107
+ 34 => Position.new(35, 3, false), # Origem pagamento
108
+ 35 => Position.new(36, 10, false), # Reservado - brancos
109
+ 36 => Position.new(37, 4, false), # Codigo do banco - quando cheque
110
+ 37 => Position.new(38, 10, false), # Motivo das rejeicoes
111
+ 38 => Position.new(39, 40, false), # Reservado - brancos
112
+ 39 => Position.new(40, 2, false), # numero do cartorio
113
+ 40 => Position.new(41, 10, false), # numero do protocolo
114
+ 41 => Position.new(42, 14, false), # Reservado - brancos
115
+ 42 => Position.new(43, 6, false) # Numero sequencial
116
116
  })
117
117
  end
118
118
 
@@ -1,5 +1,5 @@
1
1
  module Formatos
2
2
  module Febraban
3
- VERSION = '0.3.58'
3
+ VERSION = '0.3.59'
4
4
  end
5
5
  end
@@ -182,6 +182,19 @@ class Febraban150F < FormatSection
182
182
  end
183
183
  end
184
184
 
185
+ def success?
186
+ self.get_codigo_retorno == 0
187
+ end
188
+
189
+ def soft_bounce?
190
+ codes = [1, 5, 18, 31]
191
+ !self.success? && codes.include?(self.get_codigo_retorno)
192
+ end
193
+
194
+ def hard_bounce?
195
+ !self.success? && !self.soft_bounce?
196
+ end
197
+
185
198
  def get_mensagem_retorno
186
199
  case self.get_codigo_retorno
187
200
  when 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formatos-febraban
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.58
4
+ version: 0.3.59
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Ricardo Almeida
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-26 00:00:00.000000000 Z
11
+ date: 2015-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler