formatos-febraban 0.3.60 → 0.3.61

Sign up to get free protection for your applications and to get access to all the features.
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