br_boleto 2.1.0 → 2.2.0
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 +4 -4
- data/.travis.yml +1 -0
- data/Gemfile.lock +1 -1
- data/README.markdown +157 -8
- data/br_boleto.gemspec +1 -1
- data/lib/br_boleto.rb +12 -1
- data/lib/br_boleto/association/have_conta.rb +31 -27
- data/lib/br_boleto/boleto/banco_brasil.rb +130 -0
- data/lib/br_boleto/boleto/santander.rb +77 -0
- data/lib/br_boleto/conta/banco_brasil.rb +156 -0
- data/lib/br_boleto/conta/itau.rb +8 -3
- data/lib/br_boleto/conta/santander.rb +208 -0
- data/lib/br_boleto/remessa/cnab240/banco_brasil.rb +132 -0
- data/lib/br_boleto/remessa/cnab240/bradesco.rb +1 -3
- data/lib/br_boleto/remessa/cnab240/itau.rb +0 -6
- data/lib/br_boleto/remessa/cnab240/santander.rb +266 -0
- data/lib/br_boleto/remessa/cnab400/banco_brasil.rb +264 -0
- data/lib/br_boleto/remessa/cnab400/bradesco.rb +1 -1
- data/lib/br_boleto/remessa/cnab400/santander.rb +215 -0
- data/lib/br_boleto/retorno/cnab240/banco_brasil.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/base.rb +3 -2
- data/lib/br_boleto/retorno/cnab240/caixa.rb +3 -2
- data/lib/br_boleto/retorno/cnab240/itau.rb +1 -2
- data/lib/br_boleto/retorno/cnab240/santander.rb +38 -0
- data/lib/br_boleto/retorno/cnab240/sicoob.rb +3 -2
- data/lib/br_boleto/retorno/cnab400/banco_brasil.rb +46 -0
- data/lib/br_boleto/retorno/cnab400/bradesco.rb +4 -3
- data/lib/br_boleto/retorno/cnab400/itau.rb +2 -2
- data/lib/br_boleto/retorno/cnab400/santander.rb +44 -0
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +3 -2
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +20 -6
- data/lib/br_boleto/retorno/pagamento.rb +28 -7
- data/lib/br_boleto/version.rb +1 -1
- data/test/br_boleto/boleto/banco_brasil_test.rb +183 -0
- data/test/br_boleto/boleto/santander_test.rb +122 -0
- data/test/br_boleto/conta/banco_brasil_test.rb +209 -0
- data/test/br_boleto/conta/santantader_test.rb +222 -0
- data/test/br_boleto/remessa/cnab240/banco_brasil_test.rb +187 -0
- data/test/br_boleto/remessa/cnab240/itau_test.rb +4 -0
- data/test/br_boleto/remessa/cnab240/santander_test.rb +144 -0
- data/test/br_boleto/remessa/cnab400/banco_brasil_test.rb +285 -0
- data/test/br_boleto/remessa/cnab400/bradesco_test.rb +7 -0
- data/test/br_boleto/remessa/cnab400/santander_test.rb +174 -0
- data/test/br_boleto/retorno/cnab240/banco_brasil_test.rb +271 -0
- data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/bradesco_test.rb +15 -15
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +10 -10
- data/test/br_boleto/retorno/cnab240/cecred_test.rb +55 -138
- data/test/br_boleto/retorno/cnab240/itau_test.rb +15 -15
- data/test/br_boleto/retorno/cnab240/santander_test.rb +282 -0
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +25 -15
- data/test/br_boleto/retorno/cnab240/sicredi_test.rb +15 -15
- data/test/br_boleto/retorno/cnab240/unicred_test.rb +15 -15
- data/test/br_boleto/retorno/cnab400/banco_brasil_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/bradesco_test.rb +24 -12
- data/test/br_boleto/retorno/cnab400/itau_test.rb +6 -4
- data/test/br_boleto/retorno/cnab400/santander_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +20 -10
- data/test/br_boleto/retorno/cnab400/sicredi_test.rb +97 -1
- data/test/br_boleto/retorno/cnab400/unicred.rb +18 -18
- data/test/br_boleto/retorno/pagamento_test.rb +2 -2
- data/test/factories/boleto/boleto_banco_brasil.rb +18 -0
- data/test/factories/boleto/boleto_santander.rb +18 -0
- data/test/factories/conta/banco_brasil.rb +16 -0
- data/test/factories/conta/santander.rb +15 -0
- data/test/factories/remessa/cnab240/banco_brasil.rb +9 -0
- data/test/factories/remessa/cnab240/santander.rb +9 -0
- data/test/factories/remessa/cnab400/banco_brasil.rb +8 -0
- data/test/factories/remessa/cnab400/santander.rb +8 -0
- data/test/fixtures/retorno/cnab240/banco_brasil.ret +74 -0
- data/test/fixtures/retorno/cnab240/cecred.ret +10 -0
- data/test/fixtures/retorno/cnab240/santander.ret +16 -0
- data/test/fixtures/retorno/cnab400/sicredi.ret +4 -0
- metadata +64 -7
|
@@ -40,7 +40,7 @@ module BrBoleto
|
|
|
40
40
|
# Informações Opcionais no Bradesco.
|
|
41
41
|
# Somente deverão ser preenchidos, caso o cliente Beneficiário esteja previamente
|
|
42
42
|
# cadastrado para operar com a modalidade de cobrança com débito automático
|
|
43
|
-
def detalhe_posicao_002_003
|
|
43
|
+
def detalhe_posicao_002_003(pagamento)
|
|
44
44
|
''.adjust_size_to(2)
|
|
45
45
|
end
|
|
46
46
|
def detalhe_posicao_004_017
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
module BrBoleto
|
|
3
|
+
module Remessa
|
|
4
|
+
module Cnab400
|
|
5
|
+
class Santander < BrBoleto::Remessa::Cnab400::Base
|
|
6
|
+
def conta_class
|
|
7
|
+
BrBoleto::Conta::Santander
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
########## VALIDAÇÕES ESPECÍFICAS DESTE OBJETO PARA A CONTA ############
|
|
11
|
+
def valid_codigo_transmissao_required; true end # <= Código de Transmissão é obrigatória
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
############################## HEADER ######################################
|
|
15
|
+
|
|
16
|
+
# Código da remessa
|
|
17
|
+
# Tipo: Numérico
|
|
18
|
+
# Tamanho: 001
|
|
19
|
+
def header_posicao_002_a_002
|
|
20
|
+
'1'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Complemento do registro
|
|
24
|
+
# POSIÇÂO TAM. Descrição
|
|
25
|
+
#--------------------------------
|
|
26
|
+
# 101 a 116 016 Zeros
|
|
27
|
+
# 117 a 391 274 Brancos
|
|
28
|
+
# 392 a 394 003 Zeros
|
|
29
|
+
#
|
|
30
|
+
# Tamanho: 294
|
|
31
|
+
def complemento_registro
|
|
32
|
+
complemento = ''
|
|
33
|
+
complemento << ''.adjust_size_to(16, '0', :right)
|
|
34
|
+
complemento << ''.adjust_size_to(275)
|
|
35
|
+
complemento << ''.adjust_size_to(3, '0', :right)
|
|
36
|
+
complemento
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
############################# DETALHE #################################
|
|
40
|
+
|
|
41
|
+
# Informações da conta <- Específico para cada banco
|
|
42
|
+
# Posição: 018 até 037 (Detalhe) = Código de Transmissão
|
|
43
|
+
# Posição: 027 até 046 (Header) = Código de Transmissão
|
|
44
|
+
# Tamanho: 020
|
|
45
|
+
def informacoes_da_conta(local)
|
|
46
|
+
"#{conta.codigo_transmissao}".adjust_size_to(20, '0', :right)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Nosso numero do pagamento e outras informações
|
|
50
|
+
# Posição: 063 até 108
|
|
51
|
+
# POSIÇÂO TAM. Descrição
|
|
52
|
+
# -----------------------------------------------------
|
|
53
|
+
# 063 a 070 008 Nosso Número
|
|
54
|
+
# 071 a 076 006 Data do segundo desconto
|
|
55
|
+
# 077 a 077 001 Branco
|
|
56
|
+
# 078 a 078 001 Informação de multa
|
|
57
|
+
# 079 a 082 004 Percentual multa por atraso %
|
|
58
|
+
# 083 a 084 002 Unidade de valor moeda corrente (00)
|
|
59
|
+
# 085 a 097 013 Valor do título em outra unidade
|
|
60
|
+
# 098 a 101 004 Brancos
|
|
61
|
+
# 102 a 107 006 Data para cobrança de multa
|
|
62
|
+
# 108 a 108 001 Cod. Carteira
|
|
63
|
+
#
|
|
64
|
+
# Tamanho: 46
|
|
65
|
+
def detalhe_posicao_063_076(pagamento, sequencial)
|
|
66
|
+
detalhe_posicao_063_108(pagamento)
|
|
67
|
+
end
|
|
68
|
+
def detalhe_posicao_077_108(pagamento, sequencial)
|
|
69
|
+
''
|
|
70
|
+
end
|
|
71
|
+
def detalhe_posicao_063_108(pagamento)
|
|
72
|
+
info = ''
|
|
73
|
+
info << "#{nosso_numero_formatado(pagamento)}".adjust_size_to(8, '0', :right)
|
|
74
|
+
info << ''.adjust_size_to(6, '0', :right)
|
|
75
|
+
info << ''.adjust_size_to(1)
|
|
76
|
+
info << "#{conta.get_codigo_multa(pagamento.codigo_multa)}".adjust_size_to(1, '0', :right)
|
|
77
|
+
info << "#{pagamento.valor_multa_formatado(4)}".adjust_size_to(4, '0', :right)
|
|
78
|
+
info << '00'
|
|
79
|
+
info << ''.adjust_size_to(13, '0', :right)
|
|
80
|
+
info << ''.adjust_size_to(4)
|
|
81
|
+
info << "#{pagamento.data_multa_formatado}".adjust_size_to(6, '0', :right)
|
|
82
|
+
info << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(1, '1')
|
|
83
|
+
info
|
|
84
|
+
end
|
|
85
|
+
def nosso_numero_formatado(pagamento)
|
|
86
|
+
nosso_numero = "#{pagamento.nosso_numero}".adjust_size_to(13, '0', :right)
|
|
87
|
+
#nosso_numero.reverse.adjust_size_to(8, '0', :right).reverse
|
|
88
|
+
nosso_numero[5..12]
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# Informações referente ao pagamento
|
|
93
|
+
# Posição 121 até 160
|
|
94
|
+
# POSIÇÂO TAM. Descrição
|
|
95
|
+
# 121 a 126 006 Data do Vencimento do Título
|
|
96
|
+
# 127 a 139 013 Valor do Título
|
|
97
|
+
# 140 a 142 003 Banco Encarregado da Cobrança
|
|
98
|
+
# 143 a 147 005 Agência Depositária (preencher com zeros)
|
|
99
|
+
# 148 a 149 002 Espécie de Título
|
|
100
|
+
# 150 a 150 001 Identificação (Sempre 'N')
|
|
101
|
+
# 151 a 156 006 Data da emissão do Título
|
|
102
|
+
# 157 a 158 002 1a instrução
|
|
103
|
+
# 159 a 160 002 2a instrução
|
|
104
|
+
# Tamanho: 40
|
|
105
|
+
def informacoes_do_pagamento(pagamento, sequencial)
|
|
106
|
+
dados = ''
|
|
107
|
+
dados << pagamento.data_vencimento_formatado('%d%m%y')
|
|
108
|
+
dados << pagamento.valor_documento_formatado(13)
|
|
109
|
+
dados << "#{conta.codigo_banco}".adjust_size_to(3,'0', :right)
|
|
110
|
+
dados << ''.adjust_size_to(5,'0', :right)
|
|
111
|
+
dados << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(2, '0', :right)
|
|
112
|
+
dados << 'N'
|
|
113
|
+
dados << pagamento.data_emissao_formatado('%d%m%y')
|
|
114
|
+
|
|
115
|
+
# 1a / 2a Instrução, conforme documentação (pag. 20, Nota 11):
|
|
116
|
+
dados << ''.adjust_size_to(2,'0', :right) # 1a Instrução
|
|
117
|
+
dados << ''.adjust_size_to(2,'0', :right) # 2a Instrução
|
|
118
|
+
dados
|
|
119
|
+
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# Informações referente aos juros e multas do pagamento
|
|
123
|
+
# Posição: 161 a 218
|
|
124
|
+
# POSIÇÂO TAM. Descrição
|
|
125
|
+
# 161 a 173 013 Valor a ser cobrado por Dia de Atraso
|
|
126
|
+
# 174 a 179 006 Data Limite P/Concessão de Desconto
|
|
127
|
+
# 180 a 192 013 Valor do Desconto
|
|
128
|
+
# 193 a 205 013 Valor do IOF
|
|
129
|
+
# 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado
|
|
130
|
+
# Tamanho: 58
|
|
131
|
+
def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
|
|
132
|
+
detalhe = ''
|
|
133
|
+
detalhe << "#{pagamento.valor_mora_formatado}".adjust_size_to(13,'0', :right )
|
|
134
|
+
detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right )
|
|
135
|
+
detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right )
|
|
136
|
+
detalhe << "#{pagamento.valor_iof_formatado}".adjust_size_to(13,'0', :right )
|
|
137
|
+
detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right )
|
|
138
|
+
detalhe
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Informações referente aos dados do sacado/pagador
|
|
142
|
+
# Posição: 219 a 394
|
|
143
|
+
# POSIÇÂO TAM. Descrição
|
|
144
|
+
# 219 a 220 002 Identificação do Tipo de Inscrição do Pagador
|
|
145
|
+
# 221 a 234 014 No Inscrição do Pagador
|
|
146
|
+
# 235 a 274 040 Nome do Pagador
|
|
147
|
+
# 275 a 314 040 Endereço Pagador
|
|
148
|
+
# 315 a 326 012 Bairro Pagador
|
|
149
|
+
# 327 a 331 005 CEP
|
|
150
|
+
# 332 a 334 003 Sufixo do CEP
|
|
151
|
+
# 335 a 349 015 Cidade Pagador
|
|
152
|
+
# 350 a 351 002 UF Pagador
|
|
153
|
+
# 352 a 381 030 Nome Sacador/Avalista
|
|
154
|
+
# 382 a 382 001 Complemento Registro (Brancos)
|
|
155
|
+
|
|
156
|
+
# 383 a 383 001 Identificador do Complemento (I)
|
|
157
|
+
# 384 a 385 002 Complemento
|
|
158
|
+
# 386 a 391 006 Brancos
|
|
159
|
+
# 392 a 393 002 Quantidade de dias
|
|
160
|
+
# 394 a 394 001 Complemento Registro (Branco)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# Tamanho: 176
|
|
164
|
+
def informacoes_do_sacado(pagamento, sequencial)
|
|
165
|
+
info = ''
|
|
166
|
+
# Tipo de Inscrição do Pagador: "01" = CPF , "02" = CNPJ , "03" = PIS/PASEP , "98" = Não tem , "99" = Outros
|
|
167
|
+
info << "#{pagamento.pagador.tipo_cpf_cnpj}".adjust_size_to(2, '0', :right)
|
|
168
|
+
info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right)
|
|
169
|
+
info << "#{pagamento.pagador.nome}".adjust_size_to(40)
|
|
170
|
+
info << "#{pagamento.pagador.endereco}".adjust_size_to(40)
|
|
171
|
+
info << "#{pagamento.pagador.bairro}".adjust_size_to(12)
|
|
172
|
+
info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP
|
|
173
|
+
info << "#{pagamento.pagador.cidade}".adjust_size_to(15)
|
|
174
|
+
info << "#{pagamento.pagador.uf}".adjust_size_to(2)
|
|
175
|
+
info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(30) # Sacador/Avalista (Nome)
|
|
176
|
+
info << ''.adjust_size_to(1) # Complemento Registro (Brancos)
|
|
177
|
+
info << 'I' # Identificador do Complemento (I)
|
|
178
|
+
|
|
179
|
+
info << complemento_remessa
|
|
180
|
+
info << ''.adjust_size_to(6) # Brancos
|
|
181
|
+
info << '00' # Quantidade de dias
|
|
182
|
+
info << ''.adjust_size_to(1) # Complemento Registro (Brancos)
|
|
183
|
+
info
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# Ultimo digito da conta corrente + digito da conta corrente
|
|
187
|
+
def complemento_remessa
|
|
188
|
+
"#{conta.conta_corrente[-1]}#{conta.conta_corrente_dv}"
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
############################# TRAILER #################################
|
|
192
|
+
#
|
|
193
|
+
# Posição: 002 a 394
|
|
194
|
+
# POSIÇÂO TAM. Descrição
|
|
195
|
+
# 002 a 007 006 Quantidade total de linhas no arquivo
|
|
196
|
+
# 008 a 020 013 Valor total dos títulos
|
|
197
|
+
# 021 a 394 374 Zeros
|
|
198
|
+
#
|
|
199
|
+
# Tamanho: 393
|
|
200
|
+
def trailer_arquivo_posicao_002_a_394(sequencial)
|
|
201
|
+
trailer = ''
|
|
202
|
+
trailer << "#{sequencial}".adjust_size_to(6, '0', :right)
|
|
203
|
+
trailer << "#{valor_documento(13)}".adjust_size_to(13, '0', :right)
|
|
204
|
+
trailer << ''.adjust_size_to(374, '0')
|
|
205
|
+
trailer
|
|
206
|
+
end
|
|
207
|
+
def valor_documento(tamanho)
|
|
208
|
+
valor_doc = pagamentos.map(&:valor_documento).sum
|
|
209
|
+
BrBoleto::Helper::Number.new(valor_doc).formata_valor_monetario(tamanho)
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
end
|
|
@@ -54,10 +54,11 @@ module BrBoleto
|
|
|
54
54
|
codigo_movimento_retorno: 16..17,
|
|
55
55
|
agencia_com_dv: 18..23,
|
|
56
56
|
agencia_sem_dv: 18..22,
|
|
57
|
-
|
|
57
|
+
numero_conta_sem_dv: 24..35,
|
|
58
58
|
numero_conta_dv: 36,
|
|
59
59
|
dv_conta_e_agencia: 37..37,
|
|
60
|
-
|
|
60
|
+
nosso_numero_sem_dv: 38..56,
|
|
61
|
+
nosso_numero_dv: 57,
|
|
61
62
|
carteira: 58..58,
|
|
62
63
|
numero_documento: 59..73,
|
|
63
64
|
data_vencimento: 74..81,
|
|
@@ -15,11 +15,12 @@ module BrBoleto
|
|
|
15
15
|
def segmento_t_fields #:doc:
|
|
16
16
|
super.merge({
|
|
17
17
|
# ATRIBUTO POSIÇÃO DA LINHA
|
|
18
|
+
numero_conta_sem_dv: 24..29, # Código do cedente
|
|
18
19
|
numero_conta_dv: '',
|
|
19
|
-
numero_conta: 24..29, # Código do cedente
|
|
20
20
|
dv_conta_e_agencia: 250, # Defino como 250 para setar nil ao atributo
|
|
21
21
|
modalidade: 40..41,
|
|
22
|
-
|
|
22
|
+
nosso_numero_sem_dv: 40..56,
|
|
23
|
+
nosso_numero_dv: 57,
|
|
23
24
|
numero_documento: 59..69,
|
|
24
25
|
})
|
|
25
26
|
end
|
|
@@ -4,14 +4,13 @@ module BrBoleto
|
|
|
4
4
|
module Cnab240
|
|
5
5
|
class Itau < BrBoleto::Retorno::Cnab240::Base
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
def segmento_t_fields #:doc:
|
|
9
8
|
super.merge({
|
|
10
9
|
# ATRIBUTO POSIÇÃO DA LINHA
|
|
11
10
|
#agencia_com_dv: 19..23, # ITAU não utiliza o DV da agencia
|
|
12
11
|
agencia_sem_dv: 19..22,
|
|
12
|
+
numero_conta_sem_dv: 31..35,
|
|
13
13
|
numero_conta_dv: 37,
|
|
14
|
-
numero_conta: 31..35,
|
|
15
14
|
dv_conta_e_agencia: 36,
|
|
16
15
|
carteira: 38..40,
|
|
17
16
|
numero_documento: 41..48,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
module BrBoleto
|
|
3
|
+
module Retorno
|
|
4
|
+
module Cnab240
|
|
5
|
+
class Santander < BrBoleto::Retorno::Cnab240::Base
|
|
6
|
+
|
|
7
|
+
def segmento_t_fields #:doc:
|
|
8
|
+
super.merge({
|
|
9
|
+
# ATRIBUTO POSIÇÃO DA LINHA
|
|
10
|
+
agencia_com_dv: 18..22,
|
|
11
|
+
agencia_sem_dv: 18..21,
|
|
12
|
+
numero_conta_sem_dv: 23..31,
|
|
13
|
+
numero_conta_dv: 32,
|
|
14
|
+
nosso_numero_sem_dv: 41..52,
|
|
15
|
+
nosso_numero_dv: 53,
|
|
16
|
+
carteira: 54..54,
|
|
17
|
+
tipo_cobranca: 54..54,
|
|
18
|
+
numero_documento: 55..69,
|
|
19
|
+
data_vencimento: 70..77,
|
|
20
|
+
valor_titulo: 78..92,
|
|
21
|
+
banco_recebedor: 93..95,
|
|
22
|
+
agencia_recebedora_com_dv: 96..100,
|
|
23
|
+
identificacao_titulo_empresa: 101..125,
|
|
24
|
+
codigo_moeda: 126..127,
|
|
25
|
+
sacado_tipo_documento: 128..128,
|
|
26
|
+
sacado_documento: 129..143,
|
|
27
|
+
sacado_nome: 144..183,
|
|
28
|
+
valor_tarifa: 194..208,
|
|
29
|
+
motivo_ocorrencia: 209..218
|
|
30
|
+
|
|
31
|
+
# conta_cobranca: 184..193
|
|
32
|
+
# numero_contrato: 189..198,
|
|
33
|
+
})
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -25,9 +25,10 @@ module BrBoleto
|
|
|
25
25
|
def segmento_t_fields #:doc:
|
|
26
26
|
super.merge({
|
|
27
27
|
# ATRIBUTO POSIÇÃO DA LINHA
|
|
28
|
-
|
|
28
|
+
nosso_numero_sem_dv: 38..46,
|
|
29
|
+
nosso_numero_dv: 47,
|
|
29
30
|
modalidade: 50..51,
|
|
30
|
-
numero_documento: 59..
|
|
31
|
+
numero_documento: 59..73,
|
|
31
32
|
})
|
|
32
33
|
end
|
|
33
34
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
module BrBoleto
|
|
3
|
+
module Retorno
|
|
4
|
+
module Cnab400
|
|
5
|
+
class BancoBrasil < BrBoleto::Retorno::Cnab400::Base
|
|
6
|
+
private
|
|
7
|
+
def detalhe_fields #:doc:
|
|
8
|
+
{ # ATRIBUTO POSIÇÃO DA LINHA
|
|
9
|
+
|
|
10
|
+
agencia_sem_dv: 18..21,
|
|
11
|
+
agencia_com_dv: 18..22,
|
|
12
|
+
numero_conta_sem_dv: 23..30,
|
|
13
|
+
numero_conta_dv: 31,
|
|
14
|
+
#convenio: 32..38,
|
|
15
|
+
#numero_controle: 39..63,
|
|
16
|
+
nosso_numero_sem_dv: 64..79,
|
|
17
|
+
nosso_numero_dv: 80,
|
|
18
|
+
tipo_cobranca: 81..81,
|
|
19
|
+
variacao_carteira: 92..94,
|
|
20
|
+
carteira: 107..108,
|
|
21
|
+
data_ocorrencia: 111..116,
|
|
22
|
+
data_ocorrencia_sacado: 111..116,
|
|
23
|
+
numero_documento: 117..126,
|
|
24
|
+
data_vencimento: 147..152,
|
|
25
|
+
valor_titulo: 153..165,
|
|
26
|
+
banco_recebedor: 166..168,
|
|
27
|
+
agencia_recebedora_com_dv: 169..173,
|
|
28
|
+
especie_titulo: 174..175,
|
|
29
|
+
data_credito: 176..181,
|
|
30
|
+
valor_tarifa: 182..188,
|
|
31
|
+
valor_outras_despesas: 189..201,
|
|
32
|
+
valor_iof: 215..227,
|
|
33
|
+
valor_abatimento: 228..240,
|
|
34
|
+
valor_desconto: 241..253,
|
|
35
|
+
valor_pago: 254..266,
|
|
36
|
+
valor_ocorrencia_sacado: 254..266,
|
|
37
|
+
valor_liquido: 254..266,
|
|
38
|
+
valor_juros_multa: 267..279,
|
|
39
|
+
valor_outros_creditos: 280..292,
|
|
40
|
+
# sacado_documento: xxx..xxx,
|
|
41
|
+
}
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -10,10 +10,11 @@ module BrBoleto
|
|
|
10
10
|
sacado_documento: 4..17,
|
|
11
11
|
carteira: 23..24,
|
|
12
12
|
agencia_sem_dv: 25..29,
|
|
13
|
-
# agencia_com_dv:
|
|
14
|
-
|
|
13
|
+
# agencia_com_dv: 25..29,
|
|
14
|
+
numero_conta_sem_dv: 30..35,
|
|
15
15
|
numero_conta_dv: 36,
|
|
16
|
-
|
|
16
|
+
nosso_numero_sem_dv: 71..81,
|
|
17
|
+
nosso_numero_dv: 82,
|
|
17
18
|
data_ocorrencia: 111..116,
|
|
18
19
|
data_ocorrencia_sacado: 111..116,
|
|
19
20
|
numero_documento: 117..126,
|
|
@@ -9,11 +9,11 @@ module BrBoleto
|
|
|
9
9
|
|
|
10
10
|
sacado_documento: 4..17,
|
|
11
11
|
agencia_sem_dv: 18..21,
|
|
12
|
-
|
|
12
|
+
numero_conta_sem_dv: 24..28,
|
|
13
13
|
numero_conta_dv: 29,
|
|
14
14
|
numero_documento: 53..70,
|
|
15
15
|
carteira: 83..85,
|
|
16
|
-
|
|
16
|
+
nosso_numero_sem_dv: 86..93,
|
|
17
17
|
nosso_numero_dv: 94,
|
|
18
18
|
cod_carteira: 108,
|
|
19
19
|
codigo_ocorrencia_banco_correspondente: 109..110,
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
module BrBoleto
|
|
3
|
+
module Retorno
|
|
4
|
+
module Cnab400
|
|
5
|
+
class Santander < BrBoleto::Retorno::Cnab400::Base
|
|
6
|
+
private
|
|
7
|
+
def detalhe_fields #:doc:
|
|
8
|
+
{ # ATRIBUTO POSIÇÃO DA LINHA
|
|
9
|
+
|
|
10
|
+
sacado_documento: 4..17,
|
|
11
|
+
agencia_sem_dv: 18..21,
|
|
12
|
+
numero_conta_sem_dv: 22..29,
|
|
13
|
+
# numero_conta_sem_dv: 30..37, # Conta Cobrança
|
|
14
|
+
nosso_numero_sem_dv: 63..69,
|
|
15
|
+
nosso_numero_dv: 70,
|
|
16
|
+
cod_carteira: 108,
|
|
17
|
+
codigo_ocorrencia_banco_correspondente: 109..110,
|
|
18
|
+
data_ocorrencia: 111..116,
|
|
19
|
+
data_ocorrencia_sacado: 111..116,
|
|
20
|
+
numero_documento: 117..126,
|
|
21
|
+
# nosso_numero_sem_dv: 127..134, # O nosso_numero esta presente em 2 posições diferentes na documentação
|
|
22
|
+
data_vencimento: 147..152,
|
|
23
|
+
valor_titulo: 153..165,
|
|
24
|
+
banco_recebedor: 166..168,
|
|
25
|
+
agencia_recebedora_com_dv: 169..173,
|
|
26
|
+
especie_titulo: 174..175,
|
|
27
|
+
valor_tarifa: 176..188,
|
|
28
|
+
valor_outras_despesas: 189..201,
|
|
29
|
+
valor_iof: 215..227,
|
|
30
|
+
valor_abatimento: 228..240,
|
|
31
|
+
valor_desconto: 241..253,
|
|
32
|
+
valor_pago: 254..266,
|
|
33
|
+
valor_ocorrencia_sacado: 254..266,
|
|
34
|
+
valor_liquido: 254..266,
|
|
35
|
+
valor_juros_multa: 267..279,
|
|
36
|
+
valor_outros_creditos: 280..292,
|
|
37
|
+
data_credito: 296..301,
|
|
38
|
+
sacado_nome: 302..337,
|
|
39
|
+
}
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|