brcobranca 10.1.0 → 11.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -191
- data/README.md +20 -19
- data/Rakefile +0 -5
- data/lib/brcobranca/boleto/ailos.rb +3 -2
- data/lib/brcobranca/boleto/banco_brasil.rb +4 -4
- data/lib/brcobranca/boleto/base.rb +1 -1
- data/lib/brcobranca/boleto/citibank.rb +1 -1
- data/lib/brcobranca/boleto/sicredi.rb +1 -1
- data/lib/brcobranca/boleto/template/rghost.rb +16 -11
- data/lib/brcobranca/boleto/template/rghost2.rb +243 -235
- data/lib/brcobranca/boleto/template/rghost_bolepix.rb +2 -2
- data/lib/brcobranca/boleto/template/rghost_carne.rb +8 -8
- data/lib/brcobranca/formatacao.rb +12 -12
- data/lib/brcobranca/remessa/base.rb +1 -2
- data/lib/brcobranca/remessa/cnab240/ailos.rb +4 -2
- data/lib/brcobranca/remessa/cnab240/base.rb +1 -1
- data/lib/brcobranca/remessa/cnab240/santander.rb +224 -0
- data/lib/brcobranca/remessa/cnab240/sicoob.rb +1 -1
- data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +1 -1
- data/lib/brcobranca/remessa/cnab240/sicredi.rb +1 -1
- data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +1 -1
- data/lib/brcobranca/remessa/cnab400/banrisul.rb +1 -1
- data/lib/brcobranca/remessa/cnab400/santander.rb +1 -1
- data/lib/brcobranca/remessa/pagamento.rb +3 -5
- data/lib/brcobranca/retorno/cnab240/ailos.rb +2 -2
- data/lib/brcobranca/retorno/cnab240/base.rb +1 -1
- data/lib/brcobranca/retorno/cnab240/santander.rb +2 -2
- data/lib/brcobranca/retorno/cnab240/sicoob.rb +2 -2
- data/lib/brcobranca/retorno/cnab240/sicredi.rb +2 -2
- data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/banrisul.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/base.rb +2 -2
- data/lib/brcobranca/retorno/cnab400/bradesco.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/credisis.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/itau.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/santander.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/unicred.rb +1 -1
- data/lib/brcobranca/retorno/retorno_cnab240.rb +2 -2
- data/lib/brcobranca/retorno/retorno_cnab400.rb +1 -1
- data/lib/brcobranca/version.rb +1 -1
- data/lib/brcobranca.rb +2 -0
- metadata +11 -11
- data/HISTORY.md +0 -71
@@ -0,0 +1,224 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Brcobranca
|
4
|
+
module Remessa
|
5
|
+
module Cnab240
|
6
|
+
class Santander < Brcobranca::Remessa::Cnab240::Base
|
7
|
+
# Código de Transmissão
|
8
|
+
attr_accessor :codigo_transmissao
|
9
|
+
|
10
|
+
validates_presence_of :codigo_transmissao, message: 'não pode estar em branco.'
|
11
|
+
|
12
|
+
validates_length_of :codigo_transmissao, maximum: 15, message: 'deve ter no máximo 15 dígitos.'
|
13
|
+
validates_length_of :agencia, maximum: 4, message: 'deve ter 4 dígitos.'
|
14
|
+
validates_length_of :conta_corrente, maximum: 9, message: 'deve ter 9 dígitos.'
|
15
|
+
|
16
|
+
def initialize(campos = {})
|
17
|
+
campos = { emissao_boleto: ' ', distribuicao_boleto: ' ',
|
18
|
+
especie_titulo: '02', tipo_documento: '2' }.merge!(campos)
|
19
|
+
super(campos)
|
20
|
+
end
|
21
|
+
|
22
|
+
def codigo_transmissao=(valor)
|
23
|
+
@codigo_transmissao = valor.to_s.strip.rjust(15, '0') if valor
|
24
|
+
end
|
25
|
+
|
26
|
+
def digito_agencia
|
27
|
+
agencia.modulo11(mapeamento: { 10 => 'X', 11 => 'X' }).to_s
|
28
|
+
end
|
29
|
+
|
30
|
+
def digito_conta
|
31
|
+
conta_corrente.modulo11(mapeamento: { 10 => 'X', 11 => 'X' }).to_s
|
32
|
+
end
|
33
|
+
|
34
|
+
def complemento_header
|
35
|
+
''.rjust(29, ' ')
|
36
|
+
end
|
37
|
+
|
38
|
+
def complemento_trailer
|
39
|
+
''.rjust(217, ' ')
|
40
|
+
end
|
41
|
+
|
42
|
+
def complemento_p(pagamento)
|
43
|
+
complemento_p = ''
|
44
|
+
complemento_p += conta_corrente.rjust(9, '0')
|
45
|
+
complemento_p << digito_conta.to_s
|
46
|
+
complemento_p << conta_corrente.rjust(9, '0')
|
47
|
+
complemento_p << digito_conta.to_s
|
48
|
+
complemento_p << ' '
|
49
|
+
complemento_p << identificador_titulo(pagamento.nosso_numero)
|
50
|
+
complemento_p
|
51
|
+
end
|
52
|
+
|
53
|
+
def complemento_r
|
54
|
+
''.rjust(61, ' ')
|
55
|
+
end
|
56
|
+
|
57
|
+
def versao_layout_arquivo
|
58
|
+
'040'
|
59
|
+
end
|
60
|
+
|
61
|
+
def versao_layout_lote
|
62
|
+
'030'
|
63
|
+
end
|
64
|
+
|
65
|
+
def convenio_lote
|
66
|
+
identificacao_conta = ''
|
67
|
+
identificacao_conta += ''.rjust(20, ' ')
|
68
|
+
identificacao_conta << codigo_transmissao
|
69
|
+
identificacao_conta << ''.rjust(5, ' ')
|
70
|
+
identificacao_conta
|
71
|
+
end
|
72
|
+
|
73
|
+
def nome_banco
|
74
|
+
'BANCO SANTANDER'.ljust(30, ' ')
|
75
|
+
end
|
76
|
+
|
77
|
+
def cod_banco
|
78
|
+
'033'
|
79
|
+
end
|
80
|
+
|
81
|
+
def info_conta
|
82
|
+
''
|
83
|
+
end
|
84
|
+
|
85
|
+
def codigo_convenio
|
86
|
+
identificacao_conta = ''
|
87
|
+
identificacao_conta += codigo_transmissao
|
88
|
+
identificacao_conta << ''.rjust(25, ' ')
|
89
|
+
identificacao_conta
|
90
|
+
end
|
91
|
+
|
92
|
+
def identificador_titulo(nosso_numero)
|
93
|
+
nosso_numero_dv = nosso_numero.modulo11(
|
94
|
+
multiplicador: (2..9).to_a,
|
95
|
+
mapeamento: { 10 => 0, 11 => 0 }
|
96
|
+
) { |total| 11 - (total % 11) }
|
97
|
+
|
98
|
+
"#{nosso_numero}#{nosso_numero_dv}".rjust(13, '0')
|
99
|
+
end
|
100
|
+
|
101
|
+
def formata_documento_ou_numero(pagamento, tamanho = 25, caracter = ' ')
|
102
|
+
doc = pagamento.documento_ou_numero.to_s.gsub(/[^0-9A-Za-z ]/, '')
|
103
|
+
doc.ljust(tamanho, caracter)[0...tamanho]
|
104
|
+
end
|
105
|
+
|
106
|
+
def densidade_gravacao
|
107
|
+
''.rjust(5, ' ')
|
108
|
+
end
|
109
|
+
|
110
|
+
def uso_exclusivo_banco
|
111
|
+
''.rjust(20, ' ')
|
112
|
+
end
|
113
|
+
|
114
|
+
def uso_exclusivo_empresa
|
115
|
+
''.rjust(20, ' ')
|
116
|
+
end
|
117
|
+
|
118
|
+
def hora_geracao
|
119
|
+
''.rjust(6, ' ')
|
120
|
+
end
|
121
|
+
|
122
|
+
def dv_agencia_cobradora
|
123
|
+
''.rjust(1, ' ')
|
124
|
+
end
|
125
|
+
|
126
|
+
def monta_header_arquivo
|
127
|
+
header_arquivo = '' # CAMPO TAMANHO
|
128
|
+
header_arquivo += cod_banco # codigo do banco 3
|
129
|
+
header_arquivo << '0000' # lote do servico 4
|
130
|
+
header_arquivo << '0' # tipo de registro 1
|
131
|
+
header_arquivo << ''.rjust(8, ' ') # uso exclusivo FEBRABAN 9
|
132
|
+
header_arquivo << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo inscricao 1
|
133
|
+
header_arquivo << documento_cedente.to_s.rjust(15, '0') # numero de inscricao 15
|
134
|
+
header_arquivo << codigo_convenio # codigo do convenio no banco 20
|
135
|
+
header_arquivo << info_conta # informacoes da conta 20
|
136
|
+
header_arquivo << empresa_mae.format_size(30) # nome da empresa 30
|
137
|
+
header_arquivo << nome_banco.format_size(30) # nome do banco 30
|
138
|
+
header_arquivo << ''.rjust(10, ' ') # uso exclusivo FEBRABAN 10
|
139
|
+
header_arquivo << '1' # codigo remessa 1
|
140
|
+
header_arquivo << data_geracao # data geracao 8
|
141
|
+
header_arquivo << hora_geracao # hora geracao 6
|
142
|
+
header_arquivo << sequencial_remessa.to_s.rjust(6, '0') # numero seq. arquivo 6
|
143
|
+
header_arquivo << versao_layout_arquivo # num. versao arquivo 3
|
144
|
+
header_arquivo << densidade_gravacao # densidade gravacao 5
|
145
|
+
header_arquivo << uso_exclusivo_banco # uso exclusivo 20
|
146
|
+
header_arquivo << uso_exclusivo_empresa # uso exclusivo 20
|
147
|
+
header_arquivo << complemento_header # complemento do arquivo 29
|
148
|
+
header_arquivo
|
149
|
+
end
|
150
|
+
|
151
|
+
def monta_segmento_p(pagamento, nro_lote, sequencial)
|
152
|
+
segmento_p = ''
|
153
|
+
# # DESCRICAO TAMANHO
|
154
|
+
segmento_p += cod_banco # codigo banco 3
|
155
|
+
segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
156
|
+
segmento_p << '3' # tipo de registro 1
|
157
|
+
segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
158
|
+
segmento_p << 'P' # cod. segmento 1
|
159
|
+
segmento_p << ' ' # uso exclusivo 1
|
160
|
+
segmento_p << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
|
161
|
+
segmento_p << agencia.to_s.rjust(4, '0') # agencia 4
|
162
|
+
segmento_p << digito_agencia.to_s # dv agencia 1
|
163
|
+
segmento_p << complemento_p(pagamento) # informacoes da conta 34
|
164
|
+
segmento_p << codigo_carteira # codigo da carteira 1
|
165
|
+
segmento_p << forma_cadastramento # forma de cadastro do titulo 1
|
166
|
+
segmento_p << tipo_documento # tipo de documento 1
|
167
|
+
segmento_p << emissao_boleto # identificaco emissao 1
|
168
|
+
segmento_p << distribuicao_boleto # indentificacao entrega 1
|
169
|
+
segmento_p << formata_documento_ou_numero(pagamento, 15) # uso exclusivo 4
|
170
|
+
segmento_p << pagamento.data_vencimento.strftime('%d%m%Y') # data de venc. 8
|
171
|
+
segmento_p << pagamento.formata_valor(15) # valor documento 15
|
172
|
+
segmento_p << ''.rjust(5, '0') # agencia cobradora 5
|
173
|
+
segmento_p << dv_agencia_cobradora # dv agencia cobradora 1
|
174
|
+
segmento_p << especie_titulo # especie do titulo 2
|
175
|
+
segmento_p << aceite # aceite 1
|
176
|
+
segmento_p << pagamento.data_emissao.strftime('%d%m%Y') # data de emissao titulo 8
|
177
|
+
segmento_p << pagamento.tipo_mora # cod. do mora 1
|
178
|
+
segmento_p << data_mora(pagamento) # data mora 8
|
179
|
+
segmento_p << pagamento.formata_valor_mora(15) # valor mora 15
|
180
|
+
segmento_p << codigo_desconto(pagamento) # cod. do desconto 1
|
181
|
+
segmento_p << pagamento.formata_data_desconto('%d%m%Y') # data desconto 8
|
182
|
+
segmento_p << pagamento.formata_valor_desconto(15) # valor desconto 15
|
183
|
+
segmento_p << pagamento.formata_valor_iof(15) # valor IOF 15
|
184
|
+
segmento_p << pagamento.formata_valor_abatimento(15) # valor abatimento 15
|
185
|
+
segmento_p << formata_documento_ou_numero(pagamento) # identificacao titulo empresa 25
|
186
|
+
segmento_p << pagamento.codigo_protesto # cod. para protesto 1
|
187
|
+
segmento_p << pagamento.dias_protesto.to_s.rjust(2, '0') # dias para protesto 2
|
188
|
+
segmento_p << '3' # cod. para baixa 1
|
189
|
+
segmento_p << '0' # zero fixo 1
|
190
|
+
segmento_p << '00' # dias para baixa 2
|
191
|
+
segmento_p << '00' # cod. da moeda 2
|
192
|
+
segmento_p << ''.rjust(11, ' ') # uso exclusivo 11
|
193
|
+
segmento_p
|
194
|
+
end
|
195
|
+
|
196
|
+
def monta_segmento_q(pagamento, nro_lote, sequencial)
|
197
|
+
segmento_q = '' # CAMPO TAMANHO
|
198
|
+
segmento_q += cod_banco # codigo banco 3
|
199
|
+
segmento_q << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
200
|
+
segmento_q << '3' # tipo de registro 1
|
201
|
+
segmento_q << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
202
|
+
segmento_q << 'Q' # cod. segmento 1
|
203
|
+
segmento_q << ' ' # uso exclusivo 1
|
204
|
+
segmento_q << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
|
205
|
+
segmento_q << pagamento.identificacao_sacado(false) # tipo insc. sacado 1
|
206
|
+
segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0') # documento sacado 14
|
207
|
+
segmento_q << pagamento.nome_sacado.format_size(40) # nome cliente 40
|
208
|
+
segmento_q << pagamento.endereco_sacado.format_size(40) # endereco cliente 40
|
209
|
+
segmento_q << pagamento.bairro_sacado.format_size(15) # bairro 15
|
210
|
+
segmento_q << pagamento.cep_sacado[0..4] # cep 5
|
211
|
+
segmento_q << pagamento.cep_sacado[5..7] # sufixo cep 3
|
212
|
+
segmento_q << pagamento.cidade_sacado.format_size(15) # cidade 15
|
213
|
+
segmento_q << pagamento.uf_sacado # uf 2
|
214
|
+
segmento_q << pagamento.identificacao_avalista(false) # identificacao do sacador 1
|
215
|
+
segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0') # documento sacador 15
|
216
|
+
segmento_q << pagamento.nome_avalista.format_size(40) # nome avalista 40
|
217
|
+
segmento_q << ''.rjust(12, '0') # Reservado (uso Branco) 12
|
218
|
+
segmento_q << ''.rjust(19, ' ') # Reservado (uso Branco) 19
|
219
|
+
segmento_q
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
@@ -121,7 +121,7 @@ module Brcobranca
|
|
121
121
|
total_cobranca_caucionada = ''.rjust(23, '0')
|
122
122
|
total_cobranca_descontada = ''.rjust(23, '0')
|
123
123
|
|
124
|
-
"#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}"\
|
124
|
+
"#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}" \
|
125
125
|
"#{total_cobranca_descontada}".ljust(217, ' ')
|
126
126
|
end
|
127
127
|
|
@@ -104,7 +104,7 @@ module Brcobranca
|
|
104
104
|
total_cobranca_caucionada = ''.rjust(23, '0')
|
105
105
|
total_cobranca_descontada = ''.rjust(23, '0')
|
106
106
|
|
107
|
-
"#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}"\
|
107
|
+
"#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}" \
|
108
108
|
"#{total_cobranca_descontada}".ljust(217, ' ')
|
109
109
|
end
|
110
110
|
|
@@ -120,7 +120,7 @@ module Brcobranca
|
|
120
120
|
detalhe << tipo_cobranca.to_s.ljust(5, ' ') # tipo de cobranca 9[05] 102 a 106
|
121
121
|
detalhe << carteira # carteira 9[02] 107 a 108
|
122
122
|
detalhe << pagamento.identificacao_ocorrencia # comando / ocorrência 9[02] 109 a 110
|
123
|
-
detalhe << pagamento.
|
123
|
+
detalhe << pagamento.documento_ou_numero.to_s.rjust(10, '0') # numero atribuido pela empresa X[10] 111 a 120
|
124
124
|
detalhe << pagamento.data_vencimento.strftime('%d%m%y') # data de vencimento 9[06] 121 a 126
|
125
125
|
detalhe << pagamento.formata_valor # valor do titulo 9[13] 127 a 139
|
126
126
|
detalhe << cod_banco # numero do banco 9[03] 140 a 142
|
@@ -142,7 +142,7 @@ module Brcobranca
|
|
142
142
|
end
|
143
143
|
|
144
144
|
def formata_percentual_multa(pagamento)
|
145
|
-
raise ValorInvalido, 'Deve ser um Float' unless
|
145
|
+
raise ValorInvalido, 'Deve ser um Float' unless pagamento.percentual_multa.to_s.include?('.')
|
146
146
|
|
147
147
|
format('%.1f', pagamento.percentual_multa).delete('.').rjust(3, '0')
|
148
148
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'active_support/core_ext/object/blank'
|
4
|
-
|
5
3
|
module Brcobranca
|
6
4
|
module Remessa
|
7
5
|
class Pagamento
|
@@ -134,7 +132,7 @@ module Brcobranca
|
|
134
132
|
|
135
133
|
campos = padrao.merge!(campos)
|
136
134
|
campos.each do |campo, valor|
|
137
|
-
send "#{campo}=", valor
|
135
|
+
send :"#{campo}=", valor
|
138
136
|
end
|
139
137
|
|
140
138
|
yield self if block_given?
|
@@ -219,7 +217,7 @@ module Brcobranca
|
|
219
217
|
end
|
220
218
|
|
221
219
|
def documento_ou_numero
|
222
|
-
documento
|
220
|
+
documento || numero
|
223
221
|
end
|
224
222
|
|
225
223
|
def formata_documento_ou_numero(tamanho = 25, caracter = ' ')
|
@@ -313,7 +311,7 @@ module Brcobranca
|
|
313
311
|
def format_value(attribute, tamanho)
|
314
312
|
value = send(attribute)
|
315
313
|
|
316
|
-
raise ValorInvalido, "Pagamento##{attribute}: Deve ser um Float" unless
|
314
|
+
raise ValorInvalido, "Pagamento##{attribute}: Deve ser um Float" unless value.to_s.include?('.')
|
317
315
|
|
318
316
|
format('%.2f', value).delete('.').rjust(tamanho, '0')
|
319
317
|
end
|
@@ -23,11 +23,11 @@ module Brcobranca
|
|
23
23
|
cnab_lines.each do |line|
|
24
24
|
if line.tipo_registro == 'T'
|
25
25
|
Line::REGISTRO_T_FIELDS.each do |attr|
|
26
|
-
retorno.send("#{attr}=", line.send(attr))
|
26
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
27
27
|
end
|
28
28
|
else
|
29
29
|
Line::REGISTRO_U_FIELDS.each do |attr|
|
30
|
-
retorno.send("#{attr}=", line.send(attr))
|
30
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -21,11 +21,11 @@ module Brcobranca
|
|
21
21
|
cnab_lines.each do |line|
|
22
22
|
if line.tipo_registro == 'T'
|
23
23
|
Line::REGISTRO_T_FIELDS.each do |attr|
|
24
|
-
retorno.send("#{attr}=", line.send(attr))
|
24
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
25
25
|
end
|
26
26
|
else
|
27
27
|
Line::REGISTRO_U_FIELDS.each do |attr|
|
28
|
-
retorno.send("#{attr}=", line.send(attr))
|
28
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -23,11 +23,11 @@ module Brcobranca
|
|
23
23
|
cnab_lines.each do |line|
|
24
24
|
if line.tipo_registro == 'T'
|
25
25
|
Line::REGISTRO_T_FIELDS.each do |attr|
|
26
|
-
retorno.send("#{attr}=", line.send(attr))
|
26
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
27
27
|
end
|
28
28
|
else
|
29
29
|
Line::REGISTRO_U_FIELDS.each do |attr|
|
30
|
-
retorno.send("#{attr}=", line.send(attr))
|
30
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -23,11 +23,11 @@ module Brcobranca
|
|
23
23
|
cnab_lines.each do |line|
|
24
24
|
if line.tipo_registro == 'T'
|
25
25
|
Line::REGISTRO_T_FIELDS.each do |attr|
|
26
|
-
retorno.send("#{attr}=", line.send(attr))
|
26
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
27
27
|
end
|
28
28
|
else
|
29
29
|
Line::REGISTRO_U_FIELDS.each do |attr|
|
30
|
-
retorno.send("#{attr}=", line.send(attr))
|
30
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -14,7 +14,7 @@ module Brcobranca
|
|
14
14
|
def self.load_lines(file, options = {})
|
15
15
|
default_options = { except: [1] } # por padrao ignora a primeira linha que é header
|
16
16
|
options = default_options.merge!(options)
|
17
|
-
super
|
17
|
+
super(file, options)
|
18
18
|
end
|
19
19
|
|
20
20
|
fixed_width_layout do |parse|
|
@@ -9,7 +9,7 @@ module Brcobranca
|
|
9
9
|
def self.load_lines(file, options = {})
|
10
10
|
default_options = { except: [1] } # por padrao ignora a primeira linha que é header
|
11
11
|
options = default_options.merge!(options)
|
12
|
-
super
|
12
|
+
super(file, options)
|
13
13
|
end
|
14
14
|
|
15
15
|
fixed_width_layout do |parse|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
|
3
3
|
require 'parseline'
|
4
4
|
|
5
5
|
module Brcobranca
|
@@ -8,7 +8,7 @@ module Brcobranca
|
|
8
8
|
class Base < Brcobranca::Retorno::Base
|
9
9
|
# Load lines
|
10
10
|
def self.load_lines(file, options = {})
|
11
|
-
return nil
|
11
|
+
return nil unless file
|
12
12
|
|
13
13
|
codigo_banco = codigo_banco_do_arquivo(file)
|
14
14
|
|
@@ -12,7 +12,7 @@ module Brcobranca
|
|
12
12
|
def self.load_lines(file, options = {})
|
13
13
|
default_options = { except: [1] } # por padrao ignora a primeira linha que é header
|
14
14
|
options = default_options.merge!(options)
|
15
|
-
super
|
15
|
+
super(file, options)
|
16
16
|
end
|
17
17
|
|
18
18
|
# Fixed width layout for Bradesco
|
@@ -14,7 +14,7 @@ module Brcobranca
|
|
14
14
|
def self.load_lines(file, options = {})
|
15
15
|
default_options = { except: [1] } # por padrao ignora a primeira linha que é header
|
16
16
|
options = default_options.merge!(options)
|
17
|
-
super
|
17
|
+
super(file, options)
|
18
18
|
end
|
19
19
|
|
20
20
|
fixed_width_layout do |parse|
|
@@ -14,7 +14,7 @@ module Brcobranca
|
|
14
14
|
def self.load_lines(file, options = {})
|
15
15
|
default_options = { except: [1] } # por padrao ignora a primeira linha que é header
|
16
16
|
options = default_options.merge!(options)
|
17
|
-
super
|
17
|
+
super(file, options)
|
18
18
|
end
|
19
19
|
|
20
20
|
fixed_width_layout do |parse|
|
@@ -22,11 +22,11 @@ module Brcobranca
|
|
22
22
|
cnab_lines.each do |line|
|
23
23
|
if line.tipo_registro == 'T'
|
24
24
|
Line::REGISTRO_T_FIELDS.each do |attr|
|
25
|
-
retorno.send("#{attr}=", line.send(attr))
|
25
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
26
26
|
end
|
27
27
|
else
|
28
28
|
Line::REGISTRO_U_FIELDS.each do |attr|
|
29
|
-
retorno.send("#{attr}=", line.send(attr))
|
29
|
+
retorno.send(:"#{attr}=", line.send(attr))
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
data/lib/brcobranca/version.rb
CHANGED
data/lib/brcobranca.rb
CHANGED
@@ -8,6 +8,7 @@ require 'brcobranca/calculo_data'
|
|
8
8
|
require 'brcobranca/currency'
|
9
9
|
require 'brcobranca/validations'
|
10
10
|
require 'brcobranca/util/date'
|
11
|
+
require 'fast_blank'
|
11
12
|
|
12
13
|
module Brcobranca
|
13
14
|
# Exception lançada quando algum tipo de boleto soicitado ainda não tiver sido implementado.
|
@@ -180,6 +181,7 @@ module Brcobranca
|
|
180
181
|
autoload :BaseCorrespondente, 'brcobranca/remessa/cnab240/base_correspondente'
|
181
182
|
autoload :Caixa, 'brcobranca/remessa/cnab240/caixa'
|
182
183
|
autoload :BancoBrasil, 'brcobranca/remessa/cnab240/banco_brasil'
|
184
|
+
autoload :Santander, 'brcobranca/remessa/cnab240/santander'
|
183
185
|
autoload :Sicoob, 'brcobranca/remessa/cnab240/sicoob'
|
184
186
|
autoload :SicoobBancoBrasil, 'brcobranca/remessa/cnab240/sicoob_banco_brasil'
|
185
187
|
autoload :Sicredi, 'brcobranca/remessa/cnab240/sicredi'
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brcobranca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 11.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kivanio Barbosa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: fast_blank
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: parseline
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.9.8
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.9.8
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rghost_barcode
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +73,6 @@ extensions: []
|
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
75
|
- CHANGELOG.md
|
76
|
-
- HISTORY.md
|
77
76
|
- LICENSE
|
78
77
|
- README.md
|
79
78
|
- Rakefile
|
@@ -152,6 +151,7 @@ files:
|
|
152
151
|
- lib/brcobranca/remessa/cnab240/base.rb
|
153
152
|
- lib/brcobranca/remessa/cnab240/base_correspondente.rb
|
154
153
|
- lib/brcobranca/remessa/cnab240/caixa.rb
|
154
|
+
- lib/brcobranca/remessa/cnab240/santander.rb
|
155
155
|
- lib/brcobranca/remessa/cnab240/sicoob.rb
|
156
156
|
- lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb
|
157
157
|
- lib/brcobranca/remessa/cnab240/sicredi.rb
|
@@ -194,7 +194,7 @@ files:
|
|
194
194
|
- lib/brcobranca/util/errors.rb
|
195
195
|
- lib/brcobranca/validations.rb
|
196
196
|
- lib/brcobranca/version.rb
|
197
|
-
homepage:
|
197
|
+
homepage: https://github.com/kivanio/brcobranca
|
198
198
|
licenses: []
|
199
199
|
metadata:
|
200
200
|
rubygems_mfa_required: 'true'
|
@@ -206,7 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
206
206
|
requirements:
|
207
207
|
- - ">="
|
208
208
|
- !ruby/object:Gem::Version
|
209
|
-
version: 2.
|
209
|
+
version: 2.7.0
|
210
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
211
|
requirements:
|
212
212
|
- - ">="
|
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
214
|
version: '0'
|
215
215
|
requirements:
|
216
216
|
- GhostScript > 9.0, para gerar PDF e código de Barras
|
217
|
-
rubygems_version: 3.4
|
217
|
+
rubygems_version: 3.5.4
|
218
218
|
signing_key:
|
219
219
|
specification_version: 4
|
220
220
|
summary: Gem que permite trabalhar com boletos e CNABs para bancos brasileiros.
|