brcobranca 8.0.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/.travis.yml +5 -3
- data/CHANGELOG.md +9 -0
- data/Gemfile +2 -2
- data/README.md +24 -12
- data/brcobranca.gemspec +0 -2
- data/lib/brcobranca.rb +43 -26
- data/lib/brcobranca/arquivos/logos/bancobrasilia.eps +0 -0
- data/lib/brcobranca/arquivos/logos/bancobrasilia_carne.eps +0 -0
- data/lib/brcobranca/arquivos/logos/cecred.eps +427 -0
- data/lib/brcobranca/arquivos/logos/cecred_carne.eps +427 -0
- data/lib/brcobranca/arquivos/logos/credisis.eps +5402 -0
- data/lib/brcobranca/arquivos/logos/credisis_carne.eps +5410 -0
- data/lib/brcobranca/arquivos/templates/modelo_generico.eps +0 -0
- data/lib/brcobranca/boleto/banco_brasil.rb +21 -21
- data/lib/brcobranca/boleto/banco_brasilia.rb +96 -0
- data/lib/brcobranca/boleto/banco_nordeste.rb +4 -6
- data/lib/brcobranca/boleto/banestes.rb +7 -7
- data/lib/brcobranca/boleto/banrisul.rb +5 -5
- data/lib/brcobranca/boleto/base.rb +28 -22
- data/lib/brcobranca/boleto/bradesco.rb +6 -6
- data/lib/brcobranca/boleto/caixa.rb +11 -18
- data/lib/brcobranca/boleto/cecred.rb +86 -0
- data/lib/brcobranca/boleto/credisis.rb +124 -0
- data/lib/brcobranca/boleto/hsbc.rb +10 -27
- data/lib/brcobranca/boleto/itau.rb +9 -10
- data/lib/brcobranca/boleto/santander.rb +5 -6
- data/lib/brcobranca/boleto/sicoob.rb +5 -5
- data/lib/brcobranca/boleto/sicredi.rb +7 -7
- data/lib/brcobranca/boleto/template/rghost.rb +127 -80
- data/lib/brcobranca/boleto/template/rghost_carne.rb +9 -9
- data/lib/brcobranca/boleto/unicred.rb +126 -4
- data/lib/brcobranca/calculo_data.rb +3 -0
- data/lib/brcobranca/formatacao_string.rb +15 -5
- data/lib/brcobranca/remessa/base.rb +16 -9
- data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +14 -13
- data/lib/brcobranca/remessa/cnab240/base.rb +252 -119
- data/lib/brcobranca/remessa/cnab240/base_correspondente.rb +299 -0
- data/lib/brcobranca/remessa/cnab240/caixa.rb +61 -7
- data/lib/brcobranca/remessa/cnab240/cecred.rb +151 -0
- data/lib/brcobranca/remessa/cnab240/sicoob.rb +109 -123
- data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +94 -0
- data/lib/brcobranca/remessa/cnab240/sicredi.rb +177 -0
- data/lib/brcobranca/remessa/cnab240/unicred.rb +9 -0
- data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +14 -0
- data/lib/brcobranca/remessa/cnab400/banco_brasilia.rb +166 -0
- data/lib/brcobranca/remessa/cnab400/banco_nordeste.rb +4 -6
- data/lib/brcobranca/remessa/cnab400/banrisul.rb +155 -0
- data/lib/brcobranca/remessa/cnab400/base.rb +4 -4
- data/lib/brcobranca/remessa/cnab400/bradesco.rb +7 -8
- data/lib/brcobranca/remessa/cnab400/citibank.rb +3 -4
- data/lib/brcobranca/remessa/cnab400/credisis.rb +128 -0
- data/lib/brcobranca/remessa/cnab400/itau.rb +23 -6
- data/lib/brcobranca/remessa/cnab400/santander.rb +80 -65
- data/lib/brcobranca/remessa/cnab400/sicoob.rb +2 -2
- data/lib/brcobranca/remessa/cnab400/unicred.rb +143 -0
- data/lib/brcobranca/remessa/pagamento.rb +50 -14
- data/lib/brcobranca/retorno/base.rb +4 -4
- data/lib/brcobranca/retorno/cnab240/base.rb +11 -8
- data/lib/brcobranca/retorno/cnab240/caixa.rb +4 -0
- data/lib/brcobranca/retorno/cnab240/cecred.rb +102 -0
- data/lib/brcobranca/retorno/cnab240/santander.rb +35 -12
- data/lib/brcobranca/retorno/cnab240/sicoob.rb +8 -4
- data/lib/brcobranca/retorno/cnab240/sicredi.rb +79 -0
- data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +127 -0
- data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +89 -0
- data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +112 -0
- data/lib/brcobranca/retorno/cnab400/banrisul.rb +42 -0
- data/lib/brcobranca/retorno/cnab400/base.rb +18 -7
- data/lib/brcobranca/retorno/cnab400/bradesco.rb +9 -3
- data/lib/brcobranca/retorno/cnab400/credisis.rb +115 -0
- data/lib/brcobranca/retorno/cnab400/itau.rb +10 -4
- data/lib/brcobranca/retorno/cnab400/santander.rb +57 -0
- data/lib/brcobranca/retorno/cnab400/unicred.rb +118 -0
- data/lib/brcobranca/retorno/retorno_cnab240.rb +7 -3
- data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -77
- data/lib/brcobranca/util/date.rb +20 -0
- data/lib/brcobranca/util/errors.rb +76 -0
- data/lib/brcobranca/validations.rb +232 -0
- data/lib/brcobranca/version.rb +1 -1
- data/spec/arquivos/CNAB240CECRED.RET +10 -0
- data/spec/arquivos/CNAB240SANTANDER.RET +8 -26
- data/spec/arquivos/CNAB240SICREDI.CRT +8 -0
- data/spec/arquivos/CNAB400BANCOBRASILIA.RET +3 -0
- data/spec/arquivos/CNAB400BANCONORDESTE.RET +3 -0
- data/spec/arquivos/CNAB400BANRISUL.RET +3 -0
- data/spec/arquivos/CNAB400CREDISIS.RET +3 -0
- data/spec/arquivos/CNAB400SANTANDER.RET +54 -0
- data/spec/arquivos/CNAB400UNICRED.RET +3 -0
- data/spec/brcobranca/base_spec.rb +6 -4
- data/spec/brcobranca/boleto/banco_brasil_spec.rb +22 -22
- data/spec/brcobranca/boleto/banco_brasilia_spec.rb +134 -0
- data/spec/brcobranca/boleto/banco_nordeste_spec.rb +19 -19
- data/spec/brcobranca/boleto/banestes_spec.rb +19 -19
- data/spec/brcobranca/boleto/banrisul_spec.rb +14 -14
- data/spec/brcobranca/boleto/bradesco_spec.rb +13 -13
- data/spec/brcobranca/boleto/caixa_spec.rb +7 -7
- data/spec/brcobranca/boleto/cecred_spec.rb +147 -0
- data/spec/brcobranca/boleto/credisis_spec.rb +155 -0
- data/spec/brcobranca/boleto/hsbc_spec.rb +17 -37
- data/spec/brcobranca/boleto/itau_spec.rb +16 -16
- data/spec/brcobranca/boleto/santander_spec.rb +11 -11
- data/spec/brcobranca/boleto/sicoob_spec.rb +17 -17
- data/spec/brcobranca/boleto/sicredi_spec.rb +13 -13
- data/spec/brcobranca/boleto/unicred_spec.rb +10 -10
- data/spec/brcobranca/boletos_em_lote_spec.rb +1 -1
- data/spec/brcobranca/formatacao_string_spec.rb +1 -1
- data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +10 -18
- data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +39 -38
- data/spec/brcobranca/remessa/cnab240/cecred_spec.rb +164 -0
- data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +268 -0
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +58 -39
- data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +201 -0
- data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +193 -0
- data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +183 -0
- data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +4 -2
- data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +190 -0
- data/spec/brcobranca/remessa/cnab400/base_spec.rb +1 -1
- data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +16 -11
- data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +11 -11
- data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +188 -0
- data/spec/brcobranca/remessa/cnab400/itau_spec.rb +25 -12
- data/spec/brcobranca/remessa/cnab400/santander_spec.rb +35 -36
- data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +37 -0
- data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +185 -0
- data/spec/brcobranca/remessa/pagamento_spec.rb +45 -27
- data/spec/brcobranca/retorno/cnab240/base_spec.rb +7 -8
- data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +50 -0
- data/spec/brcobranca/retorno/cnab240/santander_spec.rb +35 -18
- data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +20 -19
- data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +31 -0
- data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +36 -0
- data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +39 -0
- data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +41 -0
- data/spec/brcobranca/retorno/cnab400/base_spec.rb +34 -13
- data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +4 -4
- data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +25 -0
- data/spec/brcobranca/retorno/cnab400/itau_spec.rb +4 -4
- data/spec/brcobranca/retorno/cnab400/santander_spec.rb +39 -0
- data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +42 -0
- data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +1 -1
- data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +1 -1
- data/spec/brcobranca/rghost_spec.rb +1 -1
- data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +1 -1
- data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +1 -1
- data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +5 -4
- data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +5 -4
- data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +1 -1
- data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +6 -5
- data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +1 -1
- data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +3 -0
- data/spec/fixtures/remessa/remessa-itau-cnab400.rem +3 -2
- data/spec/fixtures/remessa/remessa-santander-cnab400.rem +2 -2
- data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +4 -0
- data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +7 -0
- data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +3 -0
- data/spec/support/shared_examples/busca_logotipo.rb +0 -2
- data/spec/support/shared_examples/cnab240.rb +92 -28
- data/spec/support/shared_examples/cnab400.rb +60 -14
- data/spec/support/shared_examples/formatos_validos.rb +6 -6
- metadata +103 -31
@@ -1,7 +1,4 @@
|
|
1
1
|
#
|
2
|
-
require 'active_support/core_ext/string/filters'
|
3
|
-
require 'active_support/inflector/transliterate'
|
4
|
-
|
5
2
|
module Brcobranca
|
6
3
|
# Métodos auxiliares de formatação de strings
|
7
4
|
module FormatacaoString
|
@@ -12,11 +9,24 @@ module Brcobranca
|
|
12
9
|
#
|
13
10
|
def format_size(size)
|
14
11
|
if self.size > size
|
15
|
-
|
12
|
+
remove_accents.strip.gsub(/\s+/, ' ').gsub(/[^A-Za-z0-9[[:space:]]]/, '').truncate(size)
|
16
13
|
else
|
17
|
-
|
14
|
+
remove_accents.strip.gsub(/\s+/, ' ').gsub(/[^A-Za-z0-9[[:space:]]]/, '').ljust(size, ' ')
|
18
15
|
end
|
19
16
|
end
|
17
|
+
|
18
|
+
def truncate(truncate_at)
|
19
|
+
return dup unless length > truncate_at
|
20
|
+
"#{self[0, truncate_at]}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove_accents
|
24
|
+
self.tr(
|
25
|
+
"ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
|
26
|
+
"AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz"
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
20
30
|
end
|
21
31
|
end
|
22
32
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
2
|
require 'unidecoder'
|
4
3
|
|
5
4
|
module Brcobranca
|
@@ -21,9 +20,11 @@ module Brcobranca
|
|
21
20
|
attr_accessor :sequencial_remessa
|
22
21
|
# aceite (A = ACEITO/N = NAO ACEITO)
|
23
22
|
attr_accessor :aceite
|
23
|
+
# documento do cedente (CPF/CNPJ)
|
24
|
+
attr_accessor :documento_cedente
|
24
25
|
|
25
|
-
# Validações
|
26
|
-
include
|
26
|
+
# Validações
|
27
|
+
include Brcobranca::Validations
|
27
28
|
|
28
29
|
validates_presence_of :pagamentos, :empresa_mae, message: 'não pode estar em branco.'
|
29
30
|
|
@@ -57,13 +58,19 @@ module Brcobranca
|
|
57
58
|
yield self if block_given?
|
58
59
|
end
|
59
60
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
def quantidade_titulos_cobranca
|
62
|
+
pagamentos.length.to_s.rjust(6, "0")
|
63
|
+
end
|
64
|
+
|
65
|
+
def totaliza_valor_titulos
|
66
|
+
pagamentos.inject(0.0) { |sum, pagamento| sum += pagamento.valor.to_f }
|
66
67
|
end
|
68
|
+
|
69
|
+
def valor_titulos_carteira(tamanho = 17)
|
70
|
+
total = sprintf "%.2f", totaliza_valor_titulos
|
71
|
+
total.somente_numeros.rjust(tamanho, "0")
|
72
|
+
end
|
73
|
+
|
67
74
|
end
|
68
75
|
end
|
69
76
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
2
|
module Brcobranca
|
4
3
|
module Remessa
|
5
4
|
module Cnab240
|
@@ -21,9 +20,10 @@ module Brcobranca
|
|
21
20
|
|
22
21
|
def initialize(campos = {})
|
23
22
|
campos = { emissao_boleto: '0',
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
distribuicao_boleto: '0',
|
24
|
+
especie_titulo: '02',
|
25
|
+
codigo_baixa: '00',
|
26
|
+
codigo_carteira: '7',}.merge!(campos)
|
27
27
|
super(campos)
|
28
28
|
end
|
29
29
|
|
@@ -65,7 +65,7 @@ module Brcobranca
|
|
65
65
|
"#{convenio.rjust(9, '0')}0014#{carteira}#{variacao} "
|
66
66
|
end
|
67
67
|
|
68
|
-
|
68
|
+
alias_method :convenio_lote, :codigo_convenio
|
69
69
|
|
70
70
|
def info_conta
|
71
71
|
# CAMPO TAMANHO
|
@@ -156,7 +156,7 @@ module Brcobranca
|
|
156
156
|
# 30 – Recusa da Alegação do Sacado,
|
157
157
|
# 31 – Alteração de Outros Dados,
|
158
158
|
# 40 – Alteração de Modalidade.
|
159
|
-
segmento_p <<
|
159
|
+
segmento_p << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
|
160
160
|
segmento_p << agencia.to_s.rjust(5, '0') # agencia 5
|
161
161
|
segmento_p << digito_agencia.to_s # dv agencia 1
|
162
162
|
segmento_p << complemento_p(pagamento) # informacoes da conta 34
|
@@ -170,7 +170,7 @@ module Brcobranca
|
|
170
170
|
segmento_p << tipo_documento # tipo de documento 1
|
171
171
|
segmento_p << emissao_boleto # identificaco emissao 1
|
172
172
|
segmento_p << distribuicao_boleto # indentificacao entrega 1
|
173
|
-
segmento_p << pagamento
|
173
|
+
segmento_p << numero(pagamento) # uso exclusivo 15
|
174
174
|
segmento_p << pagamento.data_vencimento.strftime('%d%m%Y') # data de venc. 8
|
175
175
|
segmento_p << pagamento.formata_valor(15) # valor documento 15
|
176
176
|
segmento_p << ''.rjust(5, '0') # agencia cobradora 5
|
@@ -210,15 +210,16 @@ module Brcobranca
|
|
210
210
|
segmento_p << especie_titulo # especie do titulo 2
|
211
211
|
segmento_p << aceite # aceite 1
|
212
212
|
segmento_p << pagamento.data_emissao.strftime('%d%m%Y') # data de emissao titulo 8
|
213
|
-
segmento_p <<
|
214
|
-
segmento_p <<
|
215
|
-
segmento_p <<
|
213
|
+
segmento_p << pagamento.tipo_mora # cod. do juros 1
|
214
|
+
segmento_p << data_mora(pagamento) # data juros 8
|
215
|
+
segmento_p << pagamento.formata_valor_mora(15) # valor juros 15
|
216
216
|
segmento_p << pagamento.cod_desconto # cod. do desconto 1
|
217
217
|
segmento_p << pagamento.formata_data_desconto('%d%m%Y') # data desconto 8
|
218
218
|
segmento_p << pagamento.formata_valor_desconto(15) # valor desconto 15
|
219
219
|
segmento_p << pagamento.formata_valor_iof(15) # valor IOF 15
|
220
220
|
segmento_p << pagamento.formata_valor_abatimento(15) # valor abatimento 15
|
221
|
-
segmento_p <<
|
221
|
+
segmento_p << identificacao_titulo_empresa(pagamento) # identificacao documento empresa 25
|
222
|
+
|
222
223
|
# O Banco do Brasil trata somente os códigos
|
223
224
|
# '1' – Protestar dias corridos,
|
224
225
|
# '2' – Protestar dias úteis, e
|
@@ -226,12 +227,12 @@ module Brcobranca
|
|
226
227
|
# No caso de carteira 31 ou carteira 11/17 modalidade Vinculada,
|
227
228
|
# se não informado nenhum código,
|
228
229
|
# o sistema assume automaticamente Protesto em 3 dias úteis.
|
229
|
-
segmento_p <<
|
230
|
+
segmento_p << pagamento.codigo_protesto # cod. para protesto 1
|
230
231
|
# Preencher de acordo com o código informado na posição 221.
|
231
232
|
# Para código '1' – é possível, de 6 a 29 dias, 35o, 40o, dia corrido.
|
232
233
|
# Para código '2' – é possível, 3o, 4o ou 5o dia útil.
|
233
234
|
# Para código '3' preencher com Zeros.
|
234
|
-
segmento_p << '
|
235
|
+
segmento_p << pagamento.dias_protesto.to_s.rjust(2, '0') # dias para protesto 2
|
235
236
|
segmento_p << '0' # cod. para baixa 1 *'1' = Protestar Dias Corridos, '2' = Protestar Dias Úteis, '3' = Não Protestar
|
236
237
|
segmento_p << '000' # dias para baixa 2 *
|
237
238
|
segmento_p << '09' # cod. da moeda 2
|
@@ -1,11 +1,8 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
2
|
module Brcobranca
|
4
3
|
module Remessa
|
5
4
|
module Cnab240
|
6
5
|
class Base < Brcobranca::Remessa::Base
|
7
|
-
# documento do cedente (CPF/CNPJ)
|
8
|
-
attr_accessor :documento_cedente
|
9
6
|
# convenio do cedente
|
10
7
|
attr_accessor :convenio
|
11
8
|
# mensagem 1
|
@@ -32,6 +29,10 @@ module Brcobranca
|
|
32
29
|
attr_accessor :especie_titulo
|
33
30
|
# tipo de documento (verificar o padrao nas classes referentes aos bancos)
|
34
31
|
attr_accessor :tipo_documento
|
32
|
+
# codigo_baixa (verificar o padrao nas classes referentes aos bancos)
|
33
|
+
attr_accessor :codigo_baixa
|
34
|
+
# dias_baixa (verificar o padrao nas classes referentes aos bancos)
|
35
|
+
attr_accessor :dias_baixa
|
35
36
|
|
36
37
|
validates_presence_of :agencia, :conta_corrente, message: 'não pode estar em branco.'
|
37
38
|
validates_presence_of :documento_cedente, message: 'não pode estar em branco.'
|
@@ -41,9 +42,11 @@ module Brcobranca
|
|
41
42
|
validates_length_of :distribuicao_boleto, is: 1, message: 'deve ter 1 dígito.'
|
42
43
|
|
43
44
|
def initialize(campos = {})
|
44
|
-
campos = {
|
45
|
-
|
46
|
-
|
45
|
+
campos = {
|
46
|
+
codigo_carteira: '1',
|
47
|
+
forma_cadastramento: '1',
|
48
|
+
tipo_documento: ' '
|
49
|
+
}.merge!(campos)
|
47
50
|
super(campos)
|
48
51
|
end
|
49
52
|
|
@@ -68,27 +71,27 @@ module Brcobranca
|
|
68
71
|
# @return [String]
|
69
72
|
#
|
70
73
|
def monta_header_arquivo
|
71
|
-
header_arquivo = ''
|
72
|
-
header_arquivo << cod_banco
|
73
|
-
header_arquivo << '0000'
|
74
|
-
header_arquivo << '0'
|
75
|
-
header_arquivo << ''.rjust(9, ' ')
|
74
|
+
header_arquivo = '' # CAMPO TAMANHO
|
75
|
+
header_arquivo << cod_banco # codigo do banco 3
|
76
|
+
header_arquivo << '0000' # lote do servico 4
|
77
|
+
header_arquivo << '0' # tipo de registro 1
|
78
|
+
header_arquivo << ''.rjust(9, ' ') # uso exclusivo FEBRABAN 9
|
76
79
|
header_arquivo << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo inscricao 1
|
77
|
-
header_arquivo << documento_cedente.to_s.rjust(14, '0') # numero de inscricao
|
78
|
-
header_arquivo << codigo_convenio
|
79
|
-
header_arquivo << info_conta
|
80
|
-
header_arquivo << empresa_mae.format_size(30)
|
81
|
-
header_arquivo << nome_banco.format_size(30)
|
82
|
-
header_arquivo << ''.rjust(10, ' ')
|
83
|
-
header_arquivo << '1'
|
84
|
-
header_arquivo << data_geracao
|
85
|
-
header_arquivo << hora_geracao
|
86
|
-
header_arquivo << sequencial_remessa.to_s.rjust(6, '0') # numero seq. arquivo
|
87
|
-
header_arquivo << versao_layout_arquivo
|
88
|
-
header_arquivo <<
|
89
|
-
header_arquivo <<
|
90
|
-
header_arquivo <<
|
91
|
-
header_arquivo << complemento_header
|
80
|
+
header_arquivo << documento_cedente.to_s.rjust(14, '0') # numero de inscricao 14
|
81
|
+
header_arquivo << codigo_convenio # codigo do convenio no banco 20
|
82
|
+
header_arquivo << info_conta # informacoes da conta 20
|
83
|
+
header_arquivo << empresa_mae.format_size(30) # nome da empresa 30
|
84
|
+
header_arquivo << nome_banco.format_size(30) # nome do banco 30
|
85
|
+
header_arquivo << ''.rjust(10, ' ') # uso exclusivo FEBRABAN 10
|
86
|
+
header_arquivo << '1' # codigo remessa 1
|
87
|
+
header_arquivo << data_geracao # data geracao 8
|
88
|
+
header_arquivo << hora_geracao # hora geracao 6
|
89
|
+
header_arquivo << sequencial_remessa.to_s.rjust(6, '0') # numero seq. arquivo 6
|
90
|
+
header_arquivo << versao_layout_arquivo # num. versao arquivo 3
|
91
|
+
header_arquivo << densidade_gravacao # densidade gravacao 5
|
92
|
+
header_arquivo << uso_exclusivo_banco # uso exclusivo 20
|
93
|
+
header_arquivo << uso_exclusivo_empresa # uso exclusivo 20
|
94
|
+
header_arquivo << complemento_header # complemento do arquivo 29
|
92
95
|
header_arquivo
|
93
96
|
end
|
94
97
|
|
@@ -100,26 +103,26 @@ module Brcobranca
|
|
100
103
|
# @return [String]
|
101
104
|
#
|
102
105
|
def monta_header_lote(nro_lote)
|
103
|
-
header_lote = ''
|
104
|
-
header_lote << cod_banco
|
105
|
-
header_lote << nro_lote.to_s.rjust(4, '0')
|
106
|
-
header_lote << '1'
|
107
|
-
header_lote << 'R'
|
108
|
-
header_lote << '01'
|
109
|
-
header_lote <<
|
110
|
-
header_lote << versao_layout_lote
|
111
|
-
header_lote << ' '
|
106
|
+
header_lote = '' # CAMPO TAMANHO
|
107
|
+
header_lote << cod_banco # codigo banco 3
|
108
|
+
header_lote << nro_lote.to_s.rjust(4, '0') # lote servico 4
|
109
|
+
header_lote << '1' # tipo de registro 1
|
110
|
+
header_lote << 'R' # tipo de operacao 1
|
111
|
+
header_lote << '01' # tipo de servico 2
|
112
|
+
header_lote << exclusivo_servico # uso exclusivo 2
|
113
|
+
header_lote << versao_layout_lote # num.versao layout lote 3
|
114
|
+
header_lote << ' ' # uso exclusivo 1
|
112
115
|
header_lote << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo de inscricao 1
|
113
|
-
header_lote << documento_cedente.to_s.rjust(15, '0')
|
114
|
-
header_lote << convenio_lote
|
115
|
-
header_lote << info_conta
|
116
|
-
header_lote << empresa_mae.format_size(30)
|
117
|
-
header_lote << mensagem_1.to_s.format_size(40)
|
118
|
-
header_lote << mensagem_2.to_s.format_size(40)
|
119
|
-
header_lote << sequencial_remessa.to_s.rjust(8, '0')
|
120
|
-
header_lote << data_geracao
|
121
|
-
header_lote << ''.rjust(8, '0')
|
122
|
-
header_lote << ''.rjust(33, ' ')
|
116
|
+
header_lote << documento_cedente.to_s.rjust(15, '0') # inscricao cedente 15
|
117
|
+
header_lote << convenio_lote # codigo do convenio 20
|
118
|
+
header_lote << info_conta # informacoes conta 20
|
119
|
+
header_lote << empresa_mae.format_size(30) # nome empresa 30
|
120
|
+
header_lote << mensagem_1.to_s.format_size(40) # 1a mensagem 40
|
121
|
+
header_lote << mensagem_2.to_s.format_size(40) # 2a mensagem 40
|
122
|
+
header_lote << sequencial_remessa.to_s.rjust(8, '0') # numero remessa 8
|
123
|
+
header_lote << data_geracao # data gravacao 8
|
124
|
+
header_lote << ''.rjust(8, '0') # data do credito 8
|
125
|
+
header_lote << ''.rjust(33, ' ') # complemento 33
|
123
126
|
header_lote
|
124
127
|
end
|
125
128
|
|
@@ -135,47 +138,46 @@ module Brcobranca
|
|
135
138
|
# @return [String]
|
136
139
|
#
|
137
140
|
def monta_segmento_p(pagamento, nro_lote, sequencial)
|
138
|
-
# campos com * na frente nao foram implementados
|
139
141
|
# # DESCRICAO TAMANHO
|
140
|
-
segmento_p = cod_banco
|
141
|
-
segmento_p << nro_lote.to_s.rjust(4, '0')
|
142
|
-
segmento_p << '3'
|
143
|
-
segmento_p << sequencial.to_s.rjust(5, '0')
|
144
|
-
segmento_p << 'P'
|
145
|
-
segmento_p << ' '
|
146
|
-
segmento_p <<
|
147
|
-
segmento_p << agencia.to_s.rjust(5, '0')
|
148
|
-
segmento_p << digito_agencia.to_s
|
149
|
-
segmento_p << complemento_p(pagamento)
|
150
|
-
segmento_p << codigo_carteira
|
151
|
-
segmento_p << forma_cadastramento
|
152
|
-
segmento_p << tipo_documento
|
153
|
-
segmento_p << emissao_boleto
|
154
|
-
segmento_p << distribuicao_boleto
|
155
|
-
segmento_p << pagamento
|
156
|
-
segmento_p << pagamento.data_vencimento.strftime('%d%m%Y')
|
157
|
-
segmento_p << pagamento.formata_valor(15)
|
158
|
-
segmento_p << ''.rjust(5, '0')
|
159
|
-
segmento_p <<
|
160
|
-
segmento_p << especie_titulo
|
161
|
-
segmento_p << aceite
|
162
|
-
segmento_p << pagamento.data_emissao.strftime('%d%m%Y')
|
163
|
-
segmento_p <<
|
164
|
-
segmento_p <<
|
165
|
-
segmento_p <<
|
166
|
-
segmento_p << pagamento
|
167
|
-
segmento_p << pagamento.formata_data_desconto('%d%m%Y')
|
168
|
-
segmento_p << pagamento.formata_valor_desconto(15)
|
169
|
-
segmento_p << pagamento.formata_valor_iof(15)
|
170
|
-
segmento_p << pagamento.formata_valor_abatimento(15)
|
171
|
-
segmento_p <<
|
172
|
-
segmento_p <<
|
173
|
-
segmento_p << '
|
174
|
-
segmento_p <<
|
175
|
-
segmento_p <<
|
176
|
-
segmento_p << '09'
|
177
|
-
segmento_p << ''.rjust(10, '0')
|
178
|
-
segmento_p << ' '
|
142
|
+
segmento_p = cod_banco # codigo banco 3
|
143
|
+
segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
144
|
+
segmento_p << '3' # tipo de registro 1
|
145
|
+
segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
146
|
+
segmento_p << 'P' # cod. segmento 1
|
147
|
+
segmento_p << ' ' # uso exclusivo 1
|
148
|
+
segmento_p << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
|
149
|
+
segmento_p << agencia.to_s.rjust(5, '0') # agencia 5
|
150
|
+
segmento_p << digito_agencia.to_s # dv agencia 1
|
151
|
+
segmento_p << complemento_p(pagamento) # informacoes da conta 34
|
152
|
+
segmento_p << codigo_carteira # codigo da carteira 1
|
153
|
+
segmento_p << forma_cadastramento # forma de cadastro do titulo 1
|
154
|
+
segmento_p << tipo_documento # tipo de documento 1
|
155
|
+
segmento_p << emissao_boleto # identificaco emissao 1
|
156
|
+
segmento_p << distribuicao_boleto # indentificacao entrega 1
|
157
|
+
segmento_p << numero(pagamento) # uso exclusivo 4
|
158
|
+
segmento_p << pagamento.data_vencimento.strftime('%d%m%Y') # data de venc. 8
|
159
|
+
segmento_p << pagamento.formata_valor(15) # valor documento 15
|
160
|
+
segmento_p << ''.rjust(5, '0') # agencia cobradora 5
|
161
|
+
segmento_p << dv_agencia_cobradora # dv agencia cobradora 1
|
162
|
+
segmento_p << especie_titulo # especie do titulo 2
|
163
|
+
segmento_p << aceite # aceite 1
|
164
|
+
segmento_p << pagamento.data_emissao.strftime('%d%m%Y') # data de emissao titulo 8
|
165
|
+
segmento_p << pagamento.tipo_mora # cod. do mora 1
|
166
|
+
segmento_p << data_mora(pagamento) # data mora 8
|
167
|
+
segmento_p << pagamento.formata_valor_mora(15) # valor mora 15
|
168
|
+
segmento_p << codigo_desconto(pagamento) # cod. do desconto 1
|
169
|
+
segmento_p << pagamento.formata_data_desconto('%d%m%Y') # data desconto 8
|
170
|
+
segmento_p << pagamento.formata_valor_desconto(15) # valor desconto 15
|
171
|
+
segmento_p << pagamento.formata_valor_iof(15) # valor IOF 15
|
172
|
+
segmento_p << pagamento.formata_valor_abatimento(15) # valor abatimento 15
|
173
|
+
segmento_p << identificacao_titulo_empresa(pagamento) # identificacao titulo empresa 25
|
174
|
+
segmento_p << pagamento.codigo_protesto # cod. para protesto 1
|
175
|
+
segmento_p << pagamento.dias_protesto.to_s.rjust(2, '0') # dias para protesto 2
|
176
|
+
segmento_p << codigo_baixa(pagamento) # cod. para baixa 1
|
177
|
+
segmento_p << dias_baixa(pagamento) # dias para baixa 2
|
178
|
+
segmento_p << '09' # cod. da moeda 2
|
179
|
+
segmento_p << ''.rjust(10, '0') # uso exclusivo 10
|
180
|
+
segmento_p << ' ' # uso exclusivo 1
|
179
181
|
segmento_p
|
180
182
|
end
|
181
183
|
|
@@ -191,32 +193,68 @@ module Brcobranca
|
|
191
193
|
# @return [String]
|
192
194
|
#
|
193
195
|
def monta_segmento_q(pagamento, nro_lote, sequencial)
|
194
|
-
segmento_q = ''
|
195
|
-
segmento_q << cod_banco
|
196
|
-
segmento_q << nro_lote.to_s.rjust(4, '0')
|
197
|
-
segmento_q << '3'
|
198
|
-
segmento_q << sequencial.to_s.rjust(5, '0')
|
199
|
-
segmento_q << 'Q'
|
200
|
-
segmento_q << ' '
|
201
|
-
segmento_q <<
|
202
|
-
segmento_q << pagamento.identificacao_sacado(false)
|
203
|
-
segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0')
|
204
|
-
segmento_q << pagamento.nome_sacado.format_size(40)
|
205
|
-
segmento_q << pagamento.endereco_sacado.format_size(40)
|
206
|
-
segmento_q << pagamento.bairro_sacado.format_size(15)
|
207
|
-
segmento_q << pagamento.cep_sacado[0..4]
|
208
|
-
segmento_q << pagamento.cep_sacado[5..7]
|
209
|
-
segmento_q << pagamento.cidade_sacado.format_size(15)
|
210
|
-
segmento_q << pagamento.uf_sacado
|
211
|
-
segmento_q << pagamento.identificacao_avalista(false)
|
212
|
-
segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0')
|
213
|
-
segmento_q << pagamento.nome_avalista.format_size(40)
|
214
|
-
segmento_q << ''.rjust(3, '0')
|
215
|
-
segmento_q << ''.rjust(20, ' ')
|
216
|
-
segmento_q << ''.rjust(8, ' ')
|
196
|
+
segmento_q = '' # CAMPO TAMANHO
|
197
|
+
segmento_q << cod_banco # codigo banco 3
|
198
|
+
segmento_q << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
199
|
+
segmento_q << '3' # tipo de registro 1
|
200
|
+
segmento_q << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
201
|
+
segmento_q << 'Q' # cod. segmento 1
|
202
|
+
segmento_q << ' ' # uso exclusivo 1
|
203
|
+
segmento_q << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
|
204
|
+
segmento_q << pagamento.identificacao_sacado(false) # tipo insc. sacado 1
|
205
|
+
segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0') # documento sacado 14
|
206
|
+
segmento_q << pagamento.nome_sacado.format_size(40) # nome cliente 40
|
207
|
+
segmento_q << pagamento.endereco_sacado.format_size(40) # endereco cliente 40
|
208
|
+
segmento_q << pagamento.bairro_sacado.format_size(15) # bairro 15
|
209
|
+
segmento_q << pagamento.cep_sacado[0..4] # cep 5
|
210
|
+
segmento_q << pagamento.cep_sacado[5..7] # sufixo cep 3
|
211
|
+
segmento_q << pagamento.cidade_sacado.format_size(15) # cidade 15
|
212
|
+
segmento_q << pagamento.uf_sacado # uf 2
|
213
|
+
segmento_q << pagamento.identificacao_avalista(false) # identificacao do sacador 1
|
214
|
+
segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0')# documento sacador 15
|
215
|
+
segmento_q << pagamento.nome_avalista.format_size(40) # nome avalista 40
|
216
|
+
segmento_q << ''.rjust(3, '0') # cod. banco correspondente 3
|
217
|
+
segmento_q << ''.rjust(20, ' ') # nosso numero banco correspondente 20
|
218
|
+
segmento_q << ''.rjust(8, ' ') # uso exclusivo 8
|
217
219
|
segmento_q
|
218
220
|
end
|
219
221
|
|
222
|
+
# Monta o registro segmento R do arquivo
|
223
|
+
#
|
224
|
+
# @param pagamento [Brcobranca::Remessa::Pagamento]
|
225
|
+
# objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)
|
226
|
+
# @param nro_lote [Integer]
|
227
|
+
# numero do lote que o segmento esta inserido
|
228
|
+
# @param sequencial [Integer]
|
229
|
+
# numero sequencial do registro no lote
|
230
|
+
#
|
231
|
+
# @return [String]
|
232
|
+
#
|
233
|
+
def monta_segmento_r(pagamento, nro_lote, sequencial)
|
234
|
+
segmento_r = '' # CAMPO TAMANHO
|
235
|
+
segmento_r << cod_banco # codigo banco 3
|
236
|
+
segmento_r << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
237
|
+
segmento_r << '3' # tipo do registro 1
|
238
|
+
segmento_r << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
|
239
|
+
segmento_r << 'R' # cod. segmento 1
|
240
|
+
segmento_r << ' ' # uso exclusivo 1
|
241
|
+
segmento_r << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
|
242
|
+
segmento_r << "0" # cod. desconto 2 1
|
243
|
+
segmento_r << "".rjust(8, '0') # data desconto 2 8
|
244
|
+
segmento_r << "".rjust(15, '0') # valor desconto 2 15
|
245
|
+
segmento_r << "0" # cod. desconto 3 1
|
246
|
+
segmento_r << "".rjust(8, '0') # data desconto 3 8
|
247
|
+
segmento_r << "".rjust(15, '0') # valor desconto 3 15
|
248
|
+
segmento_r << pagamento.codigo_multa # codigo multa 1
|
249
|
+
segmento_r << data_multa(pagamento) # data multa 8
|
250
|
+
segmento_r << pagamento.formata_percentual_multa(15) # valor multa 15
|
251
|
+
segmento_r << ''.rjust(10, ' ') # info pagador 10
|
252
|
+
segmento_r << ''.rjust(40, ' ') # mensagem 3 40
|
253
|
+
segmento_r << ''.rjust(40, ' ') # mensagem 4 40
|
254
|
+
segmento_r << complemento_r # complemento de acordo com o banco 61
|
255
|
+
segmento_r
|
256
|
+
end
|
257
|
+
|
220
258
|
# Monta o registro trailer do lote
|
221
259
|
#
|
222
260
|
# @param nro_lote [Integer]
|
@@ -228,13 +266,13 @@ module Brcobranca
|
|
228
266
|
# @return [String]
|
229
267
|
#
|
230
268
|
def monta_trailer_lote(nro_lote, nro_registros)
|
231
|
-
trailer_lote = ''
|
232
|
-
trailer_lote << cod_banco
|
233
|
-
trailer_lote << nro_lote.to_s.rjust(4, '0')
|
234
|
-
trailer_lote << '5'
|
235
|
-
trailer_lote << ''.rjust(9, ' ')
|
236
|
-
trailer_lote << nro_registros.to_s.rjust(6, '0')
|
237
|
-
trailer_lote << complemento_trailer
|
269
|
+
trailer_lote = '' # CAMPO # TAMANHO
|
270
|
+
trailer_lote << cod_banco # codigo banco 3
|
271
|
+
trailer_lote << nro_lote.to_s.rjust(4, '0') # lote de servico 4
|
272
|
+
trailer_lote << '5' # tipo de servico 1
|
273
|
+
trailer_lote << ''.rjust(9, ' ') # uso exclusivo 9
|
274
|
+
trailer_lote << nro_registros.to_s.rjust(6, '0') # qtde de registros lote 6
|
275
|
+
trailer_lote << complemento_trailer # uso exclusivo 217
|
238
276
|
trailer_lote
|
239
277
|
end
|
240
278
|
|
@@ -271,7 +309,7 @@ module Brcobranca
|
|
271
309
|
#
|
272
310
|
def monta_lote(nro_lote)
|
273
311
|
# contador dos registros do lote
|
274
|
-
contador = 1 #
|
312
|
+
contador = 1 #header
|
275
313
|
|
276
314
|
lote = [monta_header_lote(nro_lote)]
|
277
315
|
|
@@ -282,8 +320,16 @@ module Brcobranca
|
|
282
320
|
contador += 1
|
283
321
|
lote << monta_segmento_q(pagamento, nro_lote, contador)
|
284
322
|
contador += 1
|
323
|
+
if self.respond_to?(:monta_segmento_r)
|
324
|
+
seg_r = monta_segmento_r(pagamento, nro_lote, contador)
|
325
|
+
|
326
|
+
if seg_r.present?
|
327
|
+
lote << seg_r
|
328
|
+
contador += 1
|
329
|
+
end
|
330
|
+
end
|
285
331
|
end
|
286
|
-
contador += 1 #
|
332
|
+
contador += 1 #trailer
|
287
333
|
|
288
334
|
lote << monta_trailer_lote(nro_lote, contador)
|
289
335
|
|
@@ -303,13 +349,23 @@ module Brcobranca
|
|
303
349
|
contador = 1
|
304
350
|
arquivo.push monta_lote(contador)
|
305
351
|
|
306
|
-
|
352
|
+
total_linhas = (total_segmentos(pagamentos) + (contador * 2) + 2)
|
353
|
+
|
354
|
+
arquivo << monta_trailer_arquivo(contador, total_linhas)
|
307
355
|
|
308
|
-
remittance = arquivo.join("\n").to_ascii.upcase
|
356
|
+
remittance = arquivo.join("\r\n").to_ascii.upcase
|
309
357
|
remittance << "\n"
|
310
358
|
remittance.encode(remittance.encoding, universal_newline: true).encode(remittance.encoding, crlf_newline: true)
|
311
359
|
end
|
312
360
|
|
361
|
+
def total_segmentos(pagamentos)
|
362
|
+
if self.respond_to?(:monta_segmento_r)
|
363
|
+
pagamentos.size * 3
|
364
|
+
else
|
365
|
+
pagamentos.size * 2
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
313
369
|
# Complemento do registro
|
314
370
|
#
|
315
371
|
# Este metodo deve ser sobrescrevido na classe do banco
|
@@ -334,6 +390,21 @@ module Brcobranca
|
|
334
390
|
raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
|
335
391
|
end
|
336
392
|
|
393
|
+
# Densidade de gravacao do arquivo
|
394
|
+
def densidade_gravacao
|
395
|
+
'00000'
|
396
|
+
end
|
397
|
+
|
398
|
+
# Uso exclusivo do Banco
|
399
|
+
def uso_exclusivo_banco
|
400
|
+
''.rjust(20, '0')
|
401
|
+
end
|
402
|
+
|
403
|
+
# Uso exclusivo da Empresa
|
404
|
+
def uso_exclusivo_empresa
|
405
|
+
''.rjust(20, '0')
|
406
|
+
end
|
407
|
+
|
337
408
|
# Informacoes do convenio para o lote
|
338
409
|
#
|
339
410
|
# Este metodo deve ser sobrescrevido na classe do banco
|
@@ -373,6 +444,68 @@ module Brcobranca
|
|
373
444
|
def codigo_convenio
|
374
445
|
raise Brcobranca::NaoImplementado, 'Sobreescreva este método na classe referente ao banco que você esta criando'
|
375
446
|
end
|
447
|
+
|
448
|
+
# Complemento do Segmento R
|
449
|
+
#
|
450
|
+
# Sobreescreva caso necessário
|
451
|
+
def complemento_r
|
452
|
+
segmento_r = ''
|
453
|
+
segmento_r << ''.rjust(20, ' ') # Exclusivo FEBRABAN 20
|
454
|
+
segmento_r << ''.rjust(8, '0') # Cod. Ocor do Pagador 8
|
455
|
+
segmento_r << ''.rjust(3, '0') # Cod. do Banco conta débito 3
|
456
|
+
segmento_r << ''.rjust(5, '0') # Cod. da Agencia do débito 5
|
457
|
+
segmento_r << ' ' # Cod. verificador da agencia 1
|
458
|
+
segmento_r << ''.rjust(12, '0') # Conta corrente para débito 12
|
459
|
+
segmento_r << ' ' # Cod. verificador da conta 1
|
460
|
+
segmento_r << ' ' # Cod. verificador da Ag/Conta 1
|
461
|
+
segmento_r << '0' # Aviso débito automático 1
|
462
|
+
segmento_r << ''.rjust(9, ' ') # Uso FEBRABAN 9
|
463
|
+
segmento_r
|
464
|
+
end
|
465
|
+
|
466
|
+
def data_multa(pagamento)
|
467
|
+
return ''.rjust(8, '0') if pagamento.codigo_multa == '0'
|
468
|
+
pagamento.data_vencimento.strftime('%d%m%Y')
|
469
|
+
end
|
470
|
+
|
471
|
+
def data_mora(pagamento)
|
472
|
+
return "".rjust(8, "0") unless %w( 1 2 ).include? pagamento.tipo_mora
|
473
|
+
pagamento.data_vencimento.strftime("%d%m%Y")
|
474
|
+
end
|
475
|
+
|
476
|
+
def codigo_desconto(pagamento)
|
477
|
+
pagamento.cod_desconto
|
478
|
+
end
|
479
|
+
|
480
|
+
def codigo_baixa(pagamento)
|
481
|
+
pagamento.codigo_baixa
|
482
|
+
end
|
483
|
+
|
484
|
+
def dias_baixa(pagamento)
|
485
|
+
pagamento.dias_baixa.to_s.rjust(3, "0")
|
486
|
+
end
|
487
|
+
|
488
|
+
# Identificacao do titulo da empresa
|
489
|
+
#
|
490
|
+
# Sobreescreva caso necessário
|
491
|
+
def numero(pagamento)
|
492
|
+
pagamento.formata_documento_ou_numero(15, '0')
|
493
|
+
end
|
494
|
+
|
495
|
+
def identificacao_titulo_empresa(pagamento)
|
496
|
+
pagamento.formata_documento_ou_numero
|
497
|
+
end
|
498
|
+
|
499
|
+
# Campo exclusivo para serviço
|
500
|
+
#
|
501
|
+
# Sobreescreva caso necessário
|
502
|
+
def exclusivo_servico
|
503
|
+
"".rjust(2, " ")
|
504
|
+
end
|
505
|
+
|
506
|
+
def dv_agencia_cobradora
|
507
|
+
'0'
|
508
|
+
end
|
376
509
|
end
|
377
510
|
end
|
378
511
|
end
|