formatos-febraban 0.3.60 → 0.3.61

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: 074dff54a3a05b5471a4b492b10ede367a9a3f8b
4
- data.tar.gz: d1c425a3b723559e1bf99d2d84143d518d5345a7
3
+ metadata.gz: a8db431ffa882f153bff76c09f2525e6e6acd117
4
+ data.tar.gz: 6a9091ef6303ad767cc5cd969bbb320c4f9ec053
5
5
  SHA512:
6
- metadata.gz: 0204641ca3c432c52aea428749adc84b26d9ced32d1c05ebe52651de099fb811adb5c46ed3baac092ef6468efa4186ecb38a39016299b7735348c0d5845afa5e
7
- data.tar.gz: 4595aebaafd618fa6a95a1f6202c6866b84c7cb3123b12f40722b2dd8c158258459ebf0ea3fdd3c07ff60109730c8ad34dd5a93176a024572d3ec76894a20cba
6
+ metadata.gz: 9d4e64ef5d1fe2798d48f77e55de252690824a5a33010bad719a9e6fb5106990fafaaf3a71fe5eb46069a4ce853e344b0516f490aed417ee23c97a4a88484bf7
7
+ data.tar.gz: f6e9a478cceffb319b06cc899a81f2fb99b0dfc9b0cd61a488c7f0e6c0d928a8ee80e4324dc4160f85c7dbb6e56f731fe345639d6a02810868a88bc8a6a02578
@@ -96,25 +96,25 @@ module V08
96
96
 
97
97
  def initialize
98
98
  @section = Section.new({
99
- 0 => Position.new(1, 1, false, "1", true), # Código do Registro
99
+ 0 => Position.new(1, 1, false, "1", true), # Código do Registro
100
100
  1 => Position.new(2, 2, true), # Tipo de inscrição da empresa (01:CPF, 02: CNPJ)
101
- 2 => Position.new(3, 14, false), # Numero da inscricao da empresa
101
+ 2 => Position.new(3, 14, true), # Numero da inscricao da empresa
102
102
  3 => Position.new(4, 3, false), # Reservado - Zeros
103
- 4 => Position.new(5, 17, true), # Identificação da empresa (zero, carteira, agencia e CC )
103
+ 4 => Position.new(5, 17, false), # Identificação da empresa (zero, carteira, agencia e CC )
104
104
  5 => Position.new(6, 25, false), # Numero controle do participante
105
- 6 => Position.new(7, 8, false), # Reservado - Zeros
106
- 7 => Position.new(8, 12, true), # Identificação do titulo no banco
105
+ 6 => Position.new(7, 8, true), # Reservado - Zeros
106
+ 7 => Position.new(8, 12, false), # Identificação do titulo no banco
107
107
  8 => Position.new(9, 10, false), # Reservado - Zeros
108
108
  9 => Position.new(10, 12, false), # Reservado - Zeros
109
109
  10 => Position.new(11, 1, false), # Indicador Rateio
110
110
  11 => Position.new(12, 2, false), # Reservado - Zeros
111
- 12 => Position.new(13, 1, false), # Carteira
112
- 13 => Position.new(14, 2, false), # Id da Ocorrencia
111
+ 12 => Position.new(13, 1, true), # Carteira
112
+ 13 => Position.new(14, 2, true), # Id da Ocorrencia
113
113
  14 => Position.new(15, 6, false), # Data da Ocorrencia
114
114
  15 => Position.new(16, 10, false), # Numero Documento
115
115
  16 => Position.new(17, 20, false), # Id do titulo no banco
116
116
  17 => Position.new(18, 6, false), # Data vencimento do titulo (DDMMAA)
117
- 18 => Position.new(19, 13, false), # Valor do titulo
117
+ 18 => Position.new(19, 13, true), # Valor do titulo
118
118
  19 => Position.new(20, 3, false), # Banco cobrador
119
119
  20 => Position.new(21, 5, false), # Agencia Cobradora
120
120
  21 => Position.new(22, 2, false), # Especie de titulo - branco
@@ -138,7 +138,7 @@ module V08
138
138
  39 => Position.new(40, 2, false), # numero do cartorio
139
139
  40 => Position.new(41, 10, false), # numero do protocolo
140
140
  41 => Position.new(42, 14, false), # Reservado - brancos
141
- 42 => Position.new(43, 6, false) # Numero sequencial
141
+ 42 => Position.new(43, 6, true) # Numero sequencial
142
142
  })
143
143
  end
144
144
 
@@ -1,4 +1,6 @@
1
+ require_relative '../parser_code_message'
1
2
  module V08DetalheCommons
3
+ include ParserCodeMessage
2
4
 
3
5
 
4
6
  #-------------------------------------------------------------------
@@ -24,6 +26,10 @@ module V08DetalheCommons
24
26
  self.get_section_value(22)
25
27
  end
26
28
 
29
+ def get_valor
30
+ self.get_section_value(28).to_i
31
+ end
32
+
27
33
  def get_nome_sacado
28
34
  self.get_section_value(38)
29
35
  end
@@ -56,10 +62,26 @@ module V08DetalheCommons
56
62
  self.get_section_value(15)
57
63
  end
58
64
 
65
+ def get_data_credito
66
+ self.get_section_value(33)
67
+ end
68
+
69
+ def get_motivo_rejeicao
70
+ self.get_section_value(37)
71
+ end
72
+
59
73
  def get_sequencial_retorno
60
74
  self.get_section_value(42)
61
75
  end
62
76
 
77
+ def get_mensagem_retorno
78
+ get_mensagem_ocorrencia get_ocorrencia
79
+ end
80
+
81
+ def get_mensagem_erro
82
+ get_motivo_ocorrencia get_ocorrencia, get_motivo_rejeicao
83
+ end
84
+
63
85
 
64
86
  #-------------------------------------------------------------------
65
87
  #-------------------------------------------------------------------
@@ -60,6 +60,10 @@ module V08HeaderCommons
60
60
  self.get_section_value(12)
61
61
  end
62
62
 
63
+ def get_data_credito
64
+ self.get_section_value(13)
65
+ end
66
+
63
67
  def get_sequencial
64
68
  self.get_section_value(14)
65
69
  end
@@ -30,13 +30,13 @@ module V08
30
30
 
31
31
  def initialize
32
32
  @section = Section.new({
33
- 0 => Position.new(1, 1, false, "9", true), # Código do Registro
33
+ 0 => Position.new(1, 1, false, "9", true), # Código do Registro
34
34
  1 => Position.new(2, 1, true, "2"), # Código Arquivo (1-Remessa, 2-Retorno)
35
35
  2 => Position.new(3, 2, true, "01"), # Id tipo de registro
36
36
  3 => Position.new(4, 3, true), # Codigo do banco
37
37
  4 => Position.new(5, 10, false), # Reservado - branco
38
- 5 => Position.new(6, 8, false), # Qtde de titulo na cobranca
39
- 6 => Position.new(7, 14, false), # Valor total em cobranca
38
+ 5 => Position.new(6, 8, true), # Qtde de titulo na cobranca
39
+ 6 => Position.new(7, 14, true), # Valor total em cobranca
40
40
  7 => Position.new(8, 8, false), # Numero aviso bancario
41
41
  8 => Position.new(9, 10, false), # Reservado - branco
42
42
  9 => Position.new(10, 5, false), # Qtde de registros - confirmacao
@@ -58,7 +58,7 @@ module V08
58
58
  25 => Position.new(26, 15, false), # Valor total rateios
59
59
  26 => Position.new(27, 8, false), # Qtde total rateios
60
60
  27 => Position.new(28, 9, false), # Reservado - branco
61
- 28 => Position.new(29, 6, false) # Numero sequencial do registro
61
+ 28 => Position.new(29, 6, true) # Numero sequencial do registro
62
62
  })
63
63
  end
64
64
 
@@ -7,34 +7,35 @@ 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, true), # Agencia de Débito
12
+ 2 => Position.new(3, 1, false, "3", true), # Numero fixo aldeias
13
+ 3 => Position.new(4, 3, true, "0"), # Zeros
14
+ 4 => Position.new(5, 7, true), # Conta Corrente
15
+ 5 => Position.new(6, 1, false), # Digito da CC
16
+ 6 => Position.new(7, 2, false), # Carteira
17
+ 7 => Position.new(8, 3, true, "0"), # Zeros
18
+ 8 => Position.new(9, 12, false), # Nosso numero
19
+ 9 => Position.new(10, 4, true, "0"), # Zeros
20
+ 10 => Position.new(11, 11, true), # Numero Documento
21
+ 11 => Position.new(12, 4, true, "0"), # Zeros
22
+ 12 => Position.new(13, 6, true), # Data do documento
23
+ 13 => Position.new(14, 4, true, "0"), # Zeros
24
+ 14 => Position.new(15, 6, true), # Data de vencimento
25
+ 15 => Position.new(16, 40, false), # Nome do sacado
26
+ 16 => Position.new(17, 60, false), # Endereço
27
+ 17 => Position.new(18, 10, false), # Numero
28
+ 18 => Position.new(19, 10, false), # Complemento
29
+ 19 => Position.new(20, 30, false), # Bairro
30
+ 20 => Position.new(21, 30, false), # Cidade
31
+ 21 => Position.new(22, 2, false), # Estado
32
+ 22 => Position.new(23, 8, false), # Cep
33
+ 23 => Position.new(24, 15, true), # Valor do titulo
34
+ 24 => Position.new(25, 44, false), # Código de barras
35
+ 25 => Position.new(26, 4, true, "0"), # Zeros
36
+ 26 => Position.new(27, 56, false), # Linha digitavel
37
+ 27 => Position.new(28, 14, false), # Brancos
38
+ 28 => Position.new(29, 6, true) # Numero sequencial
38
39
  })
39
40
  end
40
41
 
@@ -70,50 +71,50 @@ module VAldeias
70
71
 
71
72
  def initialize
72
73
  @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
116
- })
74
+ 0 => Position.new(1, 1, false, "1", true), # Código do Registro
75
+ 1 => Position.new(2, 2, true), # Tipo de inscrição da empresa (01:CPF, 02: CNPJ)
76
+ 2 => Position.new(3, 14, true), # Numero da inscricao da empresa
77
+ 3 => Position.new(4, 3, false), # Reservado - Zeros
78
+ 4 => Position.new(5, 17, false), # Identificação da empresa (zero, carteira, agencia e CC )
79
+ 5 => Position.new(6, 25, false), # Numero controle do participante
80
+ 6 => Position.new(7, 8, true), # Reservado - Zeros
81
+ 7 => Position.new(8, 12, false), # Identificação do titulo no banco
82
+ 8 => Position.new(9, 10, false), # Reservado - Zeros
83
+ 9 => Position.new(10, 12, false), # Reservado - Zeros
84
+ 10 => Position.new(11, 1, false), # Indicador Rateio
85
+ 11 => Position.new(12, 2, false), # Reservado - Zeros
86
+ 12 => Position.new(13, 1, true), # Carteira
87
+ 13 => Position.new(14, 2, true), # Id da Ocorrencia
88
+ 14 => Position.new(15, 6, false), # Data da Ocorrencia
89
+ 15 => Position.new(16, 10, false), # Numero Documento
90
+ 16 => Position.new(17, 20, false), # Id do titulo no banco
91
+ 17 => Position.new(18, 6, false), # Data vencimento do titulo (DDMMAA)
92
+ 18 => Position.new(19, 13, true), # Valor do titulo
93
+ 19 => Position.new(20, 3, false), # Banco cobrador
94
+ 20 => Position.new(21, 5, false), # Agencia Cobradora
95
+ 21 => Position.new(22, 2, false), # Especie de titulo - branco
96
+ 22 => Position.new(23, 13, false), # Valor despesa das ocorrencias
97
+ 23 => Position.new(24, 13, false), # Outras despesas
98
+ 24 => Position.new(25, 13, false), # Juros operação em atraso
99
+ 25 => Position.new(26, 13, false), # IOF devido
100
+ 26 => Position.new(27, 13, false), # Valor abatimento
101
+ 27 => Position.new(28, 13, false), # Valor desconto concedido
102
+ 28 => Position.new(29, 13, false), # Valor pago
103
+ 29 => Position.new(30, 13, false), # Juros de mora
104
+ 30 => Position.new(31, 13, false), # Outros creditos
105
+ 31 => Position.new(32, 2, false), # Reservado - branco
106
+ 32 => Position.new(33, 1, false), # Motivo do codigo de ocorrencia
107
+ 33 => Position.new(34, 6, false), # Data do credito
108
+ 34 => Position.new(35, 3, false), # Origem pagamento
109
+ 35 => Position.new(36, 10, false), # Reservado - brancos
110
+ 36 => Position.new(37, 4, false), # Codigo do banco - quando cheque
111
+ 37 => Position.new(38, 10, false), # Motivo das rejeicoes
112
+ 38 => Position.new(39, 40, false), # Reservado - brancos
113
+ 39 => Position.new(40, 2, false), # numero do cartorio
114
+ 40 => Position.new(41, 10, false), # numero do protocolo
115
+ 41 => Position.new(42, 14, false), # Reservado - brancos
116
+ 42 => Position.new(43, 6, true) # Numero sequencial
117
+ })
117
118
  end
118
119
 
119
120
  def processa_section file
@@ -17,27 +17,27 @@ module VAldeiasDetalheCommons
17
17
  end
18
18
 
19
19
  def get_nosso_numero
20
- self.get_section_value(7)
20
+ self.get_section_value(8)
21
21
  end
22
22
 
23
23
  def get_numero_documento
24
- self.get_section_value(9)
24
+ self.get_section_value(10)
25
25
  end
26
26
 
27
27
  def get_vencimento_titulo
28
- self.get_section_value(13)
28
+ self.get_section_value(14)
29
29
  end
30
30
 
31
31
  def get_nome_sacado
32
- self.get_section_value(14)
32
+ self.get_section_value(15)
33
33
  end
34
34
 
35
35
  def get_endereco
36
- self.get_section_value(15)
36
+ self.get_section_value(16)
37
37
  end
38
38
 
39
39
  def get_sequencial
40
- self.get_section_value(27)
40
+ self.get_section_value(28)
41
41
  end
42
42
 
43
43
 
@@ -49,7 +49,7 @@ module VAldeiasDetalheCommons
49
49
  end
50
50
 
51
51
  def set_zeros_1 valor = "0"
52
- self.set_section_value(2, valor)
52
+ self.set_section_value(3, valor)
53
53
  end
54
54
 
55
55
  def set_numero_inscricao valor = ""
@@ -57,35 +57,35 @@ module VAldeiasDetalheCommons
57
57
  end
58
58
 
59
59
  def set_conta_corrente valor = ""
60
- self.set_section_value(3, valor)
60
+ self.set_section_value(4, valor)
61
61
  end
62
62
 
63
63
  def set_dv_conta_corrente valor = ""
64
- self.set_section_value(4, valor)
64
+ self.set_section_value(5, valor)
65
65
  end
66
66
 
67
67
  def set_carteira valor = ""
68
- self.set_section_value(5, valor)
68
+ self.set_section_value(6, valor)
69
69
  end
70
70
 
71
71
  def set_zeros_2 valor = "0"
72
- self.set_section_value(6, valor)
72
+ self.set_section_value(7, valor)
73
73
  end
74
74
 
75
75
  def set_nosso_numero valor
76
- self.set_section_value(7, valor)
76
+ self.set_section_value(8, valor)
77
77
  end
78
78
 
79
79
  def set_zeros_3 valor = "0"
80
- self.set_section_value(8, valor)
80
+ self.set_section_value(9, valor)
81
81
  end
82
82
 
83
83
  def set_numero_documento valor = ""
84
- self.set_section_value(9, valor)
84
+ self.set_section_value(10, valor)
85
85
  end
86
86
 
87
87
  def set_zeros_4 valor = "0"
88
- self.set_section_value(10, valor)
88
+ self.set_section_value(11, valor)
89
89
  end
90
90
 
91
91
  def set_data_emissao_titulo valor = ""
@@ -94,7 +94,7 @@ module VAldeiasDetalheCommons
94
94
  real_data = valor.strftime("%d%m%y")
95
95
 
96
96
  if real_data.length == 6
97
- self.set_section_value(11, real_data)
97
+ self.set_section_value(12, real_data)
98
98
  else
99
99
  raise "tamanho de data incorreto"
100
100
  end
@@ -106,7 +106,7 @@ module VAldeiasDetalheCommons
106
106
  end
107
107
 
108
108
  def set_zeros_5 valor = "0"
109
- self.set_section_value(12, valor)
109
+ self.set_section_value(13, valor)
110
110
  end
111
111
 
112
112
  def set_vencimento_titulo valor
@@ -115,7 +115,7 @@ module VAldeiasDetalheCommons
115
115
  real_data = valor.strftime("%d%m%y")
116
116
 
117
117
  if real_data.length == 6
118
- self.set_section_value(13, real_data)
118
+ self.set_section_value(14, real_data)
119
119
  else
120
120
  raise "tamanho de data incorreto"
121
121
  end
@@ -127,58 +127,58 @@ module VAldeiasDetalheCommons
127
127
  end
128
128
 
129
129
  def set_nome_sacado valor = ""
130
- self.set_section_value(14, valor)
130
+ self.set_section_value(15, valor)
131
131
  end
132
132
 
133
133
  def set_endereco valor = ""
134
- self.set_section_value(15, valor)
134
+ self.set_section_value(16, valor)
135
135
  end
136
136
 
137
137
  def set_numero valor = ""
138
- self.set_section_value(16, valor)
138
+ self.set_section_value(17, valor)
139
139
  end
140
140
 
141
141
  def set_complemento valor = ""
142
- self.set_section_value(17, valor)
142
+ self.set_section_value(18, valor)
143
143
  end
144
144
 
145
145
  def set_bairro valor = ""
146
- self.set_section_value(18, valor)
146
+ self.set_section_value(19, valor)
147
147
  end
148
148
 
149
149
  def set_cidade valor = ""
150
- self.set_section_value(19, valor)
150
+ self.set_section_value(20, valor)
151
151
  end
152
152
 
153
153
  def set_estado valor = ""
154
- self.set_section_value(20, valor)
154
+ self.set_section_value(21, valor)
155
155
  end
156
156
 
157
157
  def set_cep valor = ""
158
- self.set_section_value(21, valor)
158
+ self.set_section_value(22, valor)
159
159
  end
160
160
 
161
161
  def set_valor_titulo valor = ""
162
- self.set_section_value(22, valor)
162
+ self.set_section_value(23, valor)
163
163
  end
164
164
 
165
165
  def set_codigo_barras valor = ""
166
- self.set_section_value(23, valor)
166
+ self.set_section_value(24, valor)
167
167
  end
168
168
 
169
169
  def set_zeros_6 valor = "0"
170
- self.set_section_value(24, valor)
170
+ self.set_section_value(25, valor)
171
171
  end
172
172
 
173
173
  def set_linha_digitavel valor = ""
174
- self.set_section_value(25, valor)
174
+ self.set_section_value(26, valor)
175
175
  end
176
176
 
177
177
  def set_branco valor = " "
178
- self.set_section_value(26, valor)
178
+ self.set_section_value(27, valor)
179
179
  end
180
180
 
181
181
  def set_sequencial valor = ""
182
- self.set_section_value(27, valor)
182
+ self.set_section_value(28, valor)
183
183
  end
184
184
  end
@@ -0,0 +1,518 @@
1
+ module ParserCodeMessage
2
+
3
+ def get_mensagem_ocorrencia code
4
+ case code
5
+ when "02"
6
+ "Entrada Confirmada"
7
+ when "03"
8
+ "Entrada Rejeitada"
9
+ when "06"
10
+ "Liquidação normal (sem motivo)"
11
+ when "09"
12
+ "Baixado Automat. via Arquivo"
13
+ when "10"
14
+ "Baixado conforme instruções da Agência"
15
+ when "11"
16
+ "Em Ser - Arquivo de Títulos pendentes (sem motivo)"
17
+ when "12"
18
+ "Abatimento Concedido (sem motivo)"
19
+ when "13"
20
+ "Abatimento Cancelado (sem motivo)"
21
+ when "14"
22
+ "Vencimento Alterado (sem motivo)"
23
+ when "15"
24
+ "Liquidação em Cartório (sem motivo)"
25
+ when "16"
26
+ "Título Pago em Cheque – Vinculado"
27
+ when "17"
28
+ "Liquidação após baixa ou Título não registrado (sem motivo)"
29
+ when "18"
30
+ "Acerto de Depositária (sem motivo)"
31
+ when "19"
32
+ "Confirmação Receb. Inst. de Protesto"
33
+ when "20"
34
+ "Confirmação Recebimento Instrução Sustação de Protesto (sem motivo)"
35
+ when "21"
36
+ "Acerto do Controle do Participante (sem motivo)"
37
+ when "22"
38
+ "Título Com Pagamento Cancelado"
39
+ when "23"
40
+ "Entrada do Título em Cartório (sem motivo)"
41
+ when "24"
42
+ "Entrada rejeitada por CEP Irregular"
43
+ when "25"
44
+ "Confirmação Receb.Inst.de Protesto Falimentar"
45
+ when "27"
46
+ "Baixa Rejeitada"
47
+ when "28"
48
+ "Débito de tarifas/custas"
49
+ when "29"
50
+ "Ocorrências do Pagador"
51
+ when "30"
52
+ "Alteração de Outros Dados Rejeitados"
53
+ when "32"
54
+ "Instrução Rejeitada"
55
+ when "33"
56
+ "Confirmação Pedido Alteração Outros Dados (sem motivo)"
57
+ when "34"
58
+ "Retirado de Cartório e Manutenção Carteira (sem motivo)"
59
+ when "35"
60
+ "Desagendamento do débito automático"
61
+ when "40"
62
+ "Estorno de pagamento"
63
+ when "55"
64
+ "Sustado judicial"
65
+ when "68"
66
+ "Acerto dos dados do rateio de Crédito"
67
+ when "69"
68
+ "Cancelamento dos dados do rateio"
69
+ end
70
+ end
71
+
72
+ def get_motivo_ocorrencia codigo_ocorrencia, codigo_mensagem
73
+ case codigo_ocorrencia
74
+ when "02"
75
+ parse_entrada_confirmada codigo_mensagem
76
+ when "03"
77
+ parse_entrada_rejeitada codigo_mensagem
78
+ when "06"
79
+ parse_liquidacao codigo_mensagem
80
+ when "09"
81
+ parse_baixa_automatica codigo_mensagem
82
+ when "10"
83
+ parse_baixa_banco codigo_mensagem
84
+ when "15"
85
+ parse_liquidacao_cartorio codigo_mensagem
86
+ when "17"
87
+ parse_liquidacao_baixa codigo_mensagem
88
+ when "24"
89
+ "CEP inválido"
90
+ when "27"
91
+ parse_baixa_rejeitada codigo_mensagem
92
+ when "30"
93
+ parse_dados_rejeitados codigo_mensagem
94
+ when "32"
95
+ parse_instrucao_rejeitada codigo_mensagem
96
+ else
97
+ "#{codigo_ocorrencia} não possui mensagem correspondente"
98
+ end
99
+ end
100
+
101
+ def parse_entrada_cofirmada code
102
+ case code
103
+ when "00"
104
+ "Ocorrência aceita"
105
+ when "01"
106
+ "Código do Banco inválido"
107
+ when "04"
108
+ "Código do movimento não permitido para a carteira"
109
+ when "15"
110
+ "Características da cobrança incompatíveis"
111
+ when "17"
112
+ "Data de vencimento anterior a data de emissão"
113
+ when "21"
114
+ "Espécie do Título inválido"
115
+ when "24"
116
+ "Data da emissão inválida"
117
+ when "27"
118
+ "Valor/taxa de juros mora inválido"
119
+ when "38"
120
+ "Prazo para protesto inválido"
121
+ when "39"
122
+ "Pedido para protesto não permitido para título"
123
+ when "43"
124
+ "Prazo para baixa e devolução inválido"
125
+ when "45"
126
+ "Nome do Pagador inválido"
127
+ when "46"
128
+ "Tipo/num. de inscrição do Pagador inválidos"
129
+ when "47"
130
+ "Endereço do Pagador não informado"
131
+ when "48"
132
+ "CEP Inválido"
133
+ when "50"
134
+ "CEP referente a Banco correspondente"
135
+ when "53"
136
+ "No de inscrição do Pagador/avalista inválidos (CPF/CNPJ)"
137
+ when "54"
138
+ "Pagadorr/avalista não informado"
139
+ when "67"
140
+ "Débito automático agendado"
141
+ when "68"
142
+ "Débito não agendado - erro nos dados de remessa"
143
+ when "69"
144
+ "Débito não agendado - Pagador não consta no cadastro de autorizante"
145
+ when "70"
146
+ "Débito não agendado - Beneficiário não autorizado pelo Pagador"
147
+ when "71"
148
+ "Débito não agendado - Beneficiário não participa da modalidade de déb.automático"
149
+ when "72"
150
+ "Débito não agendado - Código de moeda diferente de R$"
151
+ when "73"
152
+ "Débito não agendado - Data de vencimento inválida/vencida"
153
+ when "75"
154
+ "Débito não agendado - Tipo do número de inscrição do pagador debitado inválido"
155
+ when "76"
156
+ "Pagador Eletrônico DDA ()- Esse motivo somente será disponibilizado no arquivo retorno
157
+ para as empresas cadastradas nessa condição."
158
+ when "86"
159
+ "Seu número do documento inválido"
160
+ when "89"
161
+ "Email Pagador não enviado – título com débito automático"
162
+ when "90"
163
+ "Email pagador não enviado – título de cobrança sem registro"
164
+ else
165
+ "#{code} não possui mensagem correspondente"
166
+ end
167
+ end
168
+
169
+ def parse_entrada_cofirmada code
170
+ case code
171
+ when "02"
172
+ "Código do registro detalhe inválido"
173
+ when "03"
174
+ "Código da ocorrência inválida"
175
+ when "04"
176
+ "Código de ocorrência não permitida para a carteira"
177
+ when "05"
178
+ "Código de ocorrência não numérico"
179
+ when "07"
180
+ "Agência/conta/Digito - |Inválido"
181
+ when "08"
182
+ "Nosso número inválido"
183
+ when "09"
184
+ "Nosso número duplicado"
185
+ when "10"
186
+ "Carteira inválida"
187
+ when "13"
188
+ "Identificação da emissão do bloqueto inválida"
189
+ when "16"
190
+ "Data de vencimento inválida"
191
+ when "18"
192
+ "Vencimento fora do prazo de operação"
193
+ when "20"
194
+ "Valor do Título inválido"
195
+ when "21"
196
+ "Espécie do Título inválida"
197
+ when "22"
198
+ "Espécie não permitida para a carteira"
199
+ when "24"
200
+ "Data de emissão inválida"
201
+ when "28"
202
+ "Código do desconto inválido"
203
+ when "38"
204
+ "Prazo para protesto inválido"
205
+ when "44"
206
+ "Agência Beneficiário não prevista"
207
+ when "45"
208
+ "Nome do pagador não informado"
209
+ when "46"
210
+ "Tipo número de inscrição do pagador inválidos"
211
+ when "47"
212
+ "Endereço do pagador não informado"
213
+ when "48"
214
+ "CEP Inválido"
215
+ when "50"
216
+ "CEP irregular - Banco Correspondente"
217
+ when "63"
218
+ "Entrada para Título já cadastrado"
219
+ when "65"
220
+ "Limite excedido"
221
+ when "66"
222
+ "Número autorização inexistente"
223
+ when "68"
224
+ "Débito não agendado - erro nos dados de remessa"
225
+ when "69"
226
+ "Débito não agendado - Pagador não consta no cadastro de autorizante"
227
+ when "70"
228
+ "Débito não agendado - Beneficiário não autorizado pelo Pagador"
229
+ when "71"
230
+ "Débito não agendado - Beneficiário não participa do débito Automático"
231
+ when "72"
232
+ "Débito não agendado - Código de moeda diferente de R$"
233
+ when "73"
234
+ "Débito não agendado - Data de vencimento inválida"
235
+ when "74"
236
+ "Débito não agendado - Conforme seu pedido, Título não registrado"
237
+ when "75"
238
+ "Débito não agendado – Tipo de número de inscrição do debitado inválido"
239
+ else
240
+ "#{code} não possui mensagem correspondente"
241
+ end
242
+ end
243
+
244
+ def parse_liquidacao code
245
+ case code
246
+ when "00"
247
+ "Título pago com dinheiro"
248
+ when "15"
249
+ "Título pago com cheque"
250
+ when "42"
251
+ "Rateio não efetuado"
252
+ else
253
+ "#{code} não possui mensagem correspondente"
254
+ end
255
+ end
256
+
257
+ def parse_baixa_automatica code
258
+ case code
259
+ when "00"
260
+ "Ocorrência Aceita"
261
+ when "10"
262
+ "Baixa Comandada pelo cliente"
263
+ else
264
+ "#{code} não possui mensagem correspondente"
265
+ end
266
+ end
267
+
268
+ def parse_baixa_banco code
269
+ case code
270
+ when "00"
271
+ "Baixado Conforme Instruções da Agência"
272
+ when "14"
273
+ "Título Protestado"
274
+ when "15"
275
+ "Título excluído"
276
+ when "16"
277
+ "Título Baixado pelo Banco por decurso Prazo"
278
+ when "17"
279
+ "Titulo Baixado Transferido Carteira"
280
+ when "20"
281
+ "Titulo Baixado e Transferido para Desconto"
282
+ else
283
+ "#{code} não possui mensagem correspondente"
284
+ end
285
+ end
286
+
287
+ def parse_liquidacao_cartorio code
288
+ case code
289
+ when "00"
290
+ "Título pago com dinheiro"
291
+ when "15"
292
+ "Título pago com cheque"
293
+ else
294
+ "#{code} não possui mensagem correspondente"
295
+ end
296
+ end
297
+
298
+ def parse_liquidacao_baixa code
299
+ case code
300
+ when "00"
301
+ "Título pago com dinheiro"
302
+ when "15"
303
+ "Título pago com cheque"
304
+ else
305
+ "#{code} não possui mensagem correspondente"
306
+ end
307
+ end
308
+
309
+ def parse_baixa_rejeitada code
310
+ case code
311
+ when "04"
312
+ "Código de ocorrência não permitido para a carteira"
313
+ when "07"
314
+ "Agência/Conta/dígito inválidos"
315
+ when "08"
316
+ "Nosso número inválido"
317
+ when "10"
318
+ "Carteira inválida"
319
+ when "15"
320
+ "Carteira/Agência/Conta/nosso número inválidos"
321
+ when "40"
322
+ "Título com ordem de protesto emitido"
323
+ when "42"
324
+ "Código para baixa/devolução via Tele Bradesco inválido"
325
+ when "60"
326
+ "Movimento para Título não cadastrado"
327
+ when "77"
328
+ "Transferência para desconto não permitido para a carteira"
329
+ when "85"
330
+ "Título com pagamento vinculado"
331
+ else
332
+ "#{code} não possui mensagem correspondente"
333
+ end
334
+ end
335
+
336
+ def parse_baixa_rejeitada code
337
+ case code
338
+ when "04"
339
+ "Código de ocorrência não permitido para a carteira"
340
+ when "07"
341
+ "Agência/Conta/dígito inválidos"
342
+ when "08"
343
+ "Nosso número inválido"
344
+ when "10"
345
+ "Carteira inválida"
346
+ when "15"
347
+ "Carteira/Agência/Conta/nosso número inválidos"
348
+ when "40"
349
+ "Título com ordem de protesto emitido"
350
+ when "42"
351
+ "Código para baixa/devolução via Tele Bradesco inválido"
352
+ when "60"
353
+ "Movimento para Título não cadastrado"
354
+ when "77"
355
+ "Transferência para desconto não permitido para a carteira"
356
+ when "85"
357
+ "Título com pagamento vinculado"
358
+ else
359
+ "#{code} não possui mensagem correspondente"
360
+ end
361
+ end
362
+
363
+ def parse_dados_rejeitados code
364
+ case code
365
+ when "01"
366
+ "Código do Banco inválido"
367
+ when "04"
368
+ "Código de ocorrência não permitido para a carteira"
369
+ when "05"
370
+ "Código da ocorrência não numérico"
371
+ when "08"
372
+ "Nosso número inválido"
373
+ when "15"
374
+ "Característica da cobrança incompatível"
375
+ when "16"
376
+ "Data de vencimento inválido"
377
+ when "17"
378
+ "Data de vencimento anterior a data de emissão"
379
+ when "18"
380
+ "Vencimento fora do prazo de operação"
381
+ when "24"
382
+ "Data de emissão Inválida"
383
+ when "26"
384
+ "Código de juros de mora inválido"
385
+ when "27"
386
+ "Valor/taxa de juros de mora inválido"
387
+ when "28"
388
+ "Código de desconto inválido"
389
+ when "29"
390
+ "Valor do desconto maior/igual ao valor do Título"
391
+ when "30"
392
+ "Desconto a conceder não confere"
393
+ when "31"
394
+ "Concessão de desconto já existente ( Desconto anterior )"
395
+ when "32"
396
+ "Valor do IOF inválido"
397
+ when "33"
398
+ "Valor do abatimento inválido"
399
+ when "34"
400
+ "Valor do abatimento maior/igual ao valor do Título"
401
+ when "38"
402
+ "Prazo para protesto inválido"
403
+ when "39"
404
+ "Pedido de protesto não permitido para o Título"
405
+ when "40"
406
+ "Título com ordem de protesto emitido"
407
+ when "42"
408
+ "Código para baixa/devolução inválido"
409
+ when "46"
410
+ "Tipo/número de inscrição do pagador inválidos"
411
+ when "48"
412
+ "Cep Inválido"
413
+ when "53"
414
+ "Tipo/Número de inscrição do pagador/avalista inválidos"
415
+ when "54"
416
+ "Pagadorr/avalista não informado"
417
+ when "57"
418
+ "Código da multa inválido"
419
+ when "58"
420
+ "Data da multa inválida"
421
+ when "60"
422
+ "Movimento para Título não cadastrado"
423
+ when "79"
424
+ "Data de Juros de mora Inválida"
425
+ when "80"
426
+ "Data do desconto inválida"
427
+ when "85"
428
+ "Título com Pagamento Vinculado."
429
+ when "88"
430
+ "E-mail Pagador não lido no prazo 5 dias"
431
+ when "91"
432
+ "E-mail pagador não recebido"
433
+ else
434
+ "#{code} não possui mensagem correspondente"
435
+ end
436
+ end
437
+
438
+ def parse_instrucao_rejeitada code
439
+ case code
440
+ when "01"
441
+ "Código do Banco inválido"
442
+ when "02"
443
+ "Código do registro detalhe inválido"
444
+ when "04"
445
+ "Código de ocorrência não permitido para a carteira"
446
+ when "05"
447
+ "Código de ocorrência não numérico"
448
+ when "07"
449
+ "Agência/Conta/dígito inválidos"
450
+ when "08"
451
+ "Nosso número inválido"
452
+ when "10"
453
+ "Carteira inválida"
454
+ when "15"
455
+ "Características da cobrança incompatíveis"
456
+ when "16"
457
+ "Data de vencimento inválida"
458
+ when "17"
459
+ "Data de vencimento anterior a data de emissão"
460
+ when "18"
461
+ "Vencimento fora do prazo de operação"
462
+ when "20"
463
+ "Valor do título inválido"
464
+ when "21"
465
+ "Espécie do Título inválida"
466
+ when "22"
467
+ "Espécie não permitida para a carteira"
468
+ when "24"
469
+ "Data de emissão inválida"
470
+ when "28"
471
+ "Código de desconto via Telebradesco inválido"
472
+ when "29"
473
+ "Valor do desconto maior/igual ao valor do Título"
474
+ when "30"
475
+ "Desconto a conceder não confere"
476
+ when "31"
477
+ "Concessão de desconto - Já existe desconto anterior"
478
+ when "33"
479
+ "Valor do abatimento inválido"
480
+ when "34"
481
+ "Valor do abatimento maior/igual ao valor do Título"
482
+ when "36"
483
+ "Concessão abatimento - Já existe abatimento anterior"
484
+ when "38"
485
+ "Prazo para protesto inválido"
486
+ when "39"
487
+ "Pedido de protesto não permitido para o Título"
488
+ when "40"
489
+ "Título com ordem de protesto emitido"
490
+ when "41"
491
+ "Pedido cancelamento/sustação para Título sem instrução de protesto"
492
+ when "42"
493
+ "Código para baixa/devolução inválido"
494
+ when "45"
495
+ "Nome do Pagador não informado"
496
+ when "46"
497
+ "Tipo/número de inscrição do Pagador inválidos"
498
+ when "47"
499
+ "Endereço do Pagador não informado"
500
+ when "48"
501
+ "CEP Inválido"
502
+ when "50"
503
+ "CEP referente a um Banco correspondente"
504
+ when "53"
505
+ "Tipo de inscrição do pagador avalista inválidos"
506
+ when "60"
507
+ "Movimento para Título não cadastrado"
508
+ when "85"
509
+ "Título com pagamento vinculado"
510
+ when "86"
511
+ "Seu número inválido"
512
+ when "94"
513
+ "Título Penhorado – Instrução Não Liberada pela Agência"
514
+ else
515
+ "#{code} não possui mensagem correspondente"
516
+ end
517
+ end
518
+ end
@@ -23,7 +23,7 @@ class Cnab400
23
23
  # Construtor
24
24
  def initialize(params = {})
25
25
  @sections = []
26
- @versao = params[:versao]
26
+ @versao = params[:versao] || "V08"
27
27
  @operacao = params[:operacao]
28
28
 
29
29
  if params[:file] && params[:file].size > 0
@@ -1,5 +1,5 @@
1
1
  module Formatos
2
2
  module Febraban
3
- VERSION = '0.3.60'
3
+ VERSION = '0.3.61'
4
4
  end
5
5
  end
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.60
4
+ version: 0.3.61
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-07-07 00:00:00.000000000 Z
11
+ date: 2015-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -90,6 +90,7 @@ files:
90
90
  - lib/formatos/cnab400/arquivo/VAldeias/header_commons.rb
91
91
  - lib/formatos/cnab400/arquivo/VAldeias/trailler.rb
92
92
  - lib/formatos/cnab400/arquivo/VAldeias/trailler_commons.rb
93
+ - lib/formatos/cnab400/arquivo/parser_code_message.rb
93
94
  - lib/formatos/cnab400/cnab_400.rb
94
95
  - lib/formatos/febraban.rb
95
96
  - lib/formatos/febraban/version.rb
@@ -128,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
129
  version: '0'
129
130
  requirements: []
130
131
  rubyforge_project:
131
- rubygems_version: 2.4.7
132
+ rubygems_version: 2.4.8
132
133
  signing_key:
133
134
  specification_version: 4
134
135
  summary: Formatos bancários EDI FEBRABAN