brcobranca 9.2.4 → 10.1.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 +86 -26
- data/HISTORY.md +71 -0
- data/README.md +52 -54
- data/Rakefile +4 -4
- data/lib/brcobranca/arquivos/logos/ailos.eps +412 -0
- data/lib/brcobranca/arquivos/logos/ailos_carne.eps +412 -0
- data/lib/brcobranca/arquivos/logos/safra.eps +0 -0
- data/lib/brcobranca/arquivos/logos/safra_carne.eps +0 -0
- data/lib/brcobranca/arquivos/templates/modelo_generico2.eps +9967 -0
- data/lib/brcobranca/boleto/{cecred.rb → ailos.rb} +7 -5
- data/lib/brcobranca/boleto/banco_brasil.rb +14 -6
- data/lib/brcobranca/boleto/banco_brasilia.rb +5 -5
- data/lib/brcobranca/boleto/banco_nordeste.rb +4 -3
- data/lib/brcobranca/boleto/banestes.rb +4 -3
- data/lib/brcobranca/boleto/banrisul.rb +4 -3
- data/lib/brcobranca/boleto/base.rb +14 -7
- data/lib/brcobranca/boleto/bradesco.rb +4 -3
- data/lib/brcobranca/boleto/caixa.rb +10 -8
- data/lib/brcobranca/boleto/citibank.rb +9 -8
- data/lib/brcobranca/boleto/credisis.rb +6 -4
- data/lib/brcobranca/boleto/hsbc.rb +8 -6
- data/lib/brcobranca/boleto/itau.rb +5 -5
- data/lib/brcobranca/boleto/safra.rb +4 -4
- data/lib/brcobranca/boleto/santander.rb +4 -2
- data/lib/brcobranca/boleto/sicoob.rb +4 -3
- data/lib/brcobranca/boleto/sicredi.rb +6 -3
- data/lib/brcobranca/boleto/template/base.rb +6 -3
- data/lib/brcobranca/boleto/template/rghost.rb +18 -13
- data/lib/brcobranca/boleto/template/rghost2.rb +255 -0
- data/lib/brcobranca/boleto/template/rghost_bolepix.rb +279 -0
- data/lib/brcobranca/boleto/template/rghost_carne.rb +18 -12
- data/lib/brcobranca/boleto/unicred.rb +61 -103
- data/lib/brcobranca/calculo.rb +14 -9
- data/lib/brcobranca/calculo_data.rb +6 -5
- data/lib/brcobranca/currency.rb +10 -10
- data/lib/brcobranca/formatacao.rb +2 -1
- data/lib/brcobranca/formatacao_string.rb +7 -6
- data/lib/brcobranca/limpeza.rb +3 -3
- data/lib/brcobranca/remessa/base.rb +7 -10
- data/lib/brcobranca/remessa/cnab240/{cecred.rb → ailos.rb} +18 -15
- data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +14 -11
- data/lib/brcobranca/remessa/cnab240/base.rb +56 -39
- data/lib/brcobranca/remessa/cnab240/base_correspondente.rb +25 -17
- data/lib/brcobranca/remessa/cnab240/caixa.rb +21 -13
- data/lib/brcobranca/remessa/cnab240/sicoob.rb +33 -30
- data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +14 -7
- data/lib/brcobranca/remessa/cnab240/sicredi.rb +28 -22
- data/lib/brcobranca/remessa/cnab240/unicred.rb +2 -1
- data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +9 -9
- data/lib/brcobranca/remessa/cnab400/banco_brasilia.rb +29 -28
- data/lib/brcobranca/remessa/cnab400/banco_nordeste.rb +11 -10
- data/lib/brcobranca/remessa/cnab400/banrisul.rb +13 -10
- data/lib/brcobranca/remessa/cnab400/base.rb +22 -9
- data/lib/brcobranca/remessa/cnab400/bradesco.rb +30 -5
- data/lib/brcobranca/remessa/cnab400/citibank.rb +6 -5
- data/lib/brcobranca/remessa/cnab400/credisis.rb +7 -5
- data/lib/brcobranca/remessa/cnab400/itau.rb +9 -6
- data/lib/brcobranca/remessa/cnab400/santander.rb +17 -15
- data/lib/brcobranca/remessa/cnab400/sicoob.rb +8 -11
- data/lib/brcobranca/remessa/cnab400/unicred.rb +185 -69
- data/lib/brcobranca/remessa/pagamento.rb +54 -20
- data/lib/brcobranca/retorno/base.rb +5 -43
- data/lib/brcobranca/retorno/cnab240/{cecred.rb → ailos.rb} +12 -10
- data/lib/brcobranca/retorno/cnab240/base.rb +8 -9
- data/lib/brcobranca/retorno/cnab240/caixa.rb +4 -5
- data/lib/brcobranca/retorno/cnab240/santander.rb +12 -8
- data/lib/brcobranca/retorno/cnab240/sicoob.rb +11 -9
- data/lib/brcobranca/retorno/cnab240/sicredi.rb +12 -9
- data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +6 -3
- data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +2 -1
- data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +2 -1
- data/lib/brcobranca/retorno/cnab400/banrisul.rb +1 -1
- data/lib/brcobranca/retorno/cnab400/base.rb +13 -12
- data/lib/brcobranca/retorno/cnab400/bradesco.rb +4 -4
- data/lib/brcobranca/retorno/cnab400/credisis.rb +2 -1
- data/lib/brcobranca/retorno/cnab400/itau.rb +6 -5
- data/lib/brcobranca/retorno/cnab400/santander.rb +8 -7
- data/lib/brcobranca/retorno/cnab400/unicred.rb +63 -58
- data/lib/brcobranca/retorno/retorno_cbr643.rb +1 -2
- data/lib/brcobranca/retorno/retorno_cnab240.rb +11 -9
- data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -5
- data/lib/brcobranca/util/date.rb +2 -1
- data/lib/brcobranca/util/empresa.rb +2 -1
- data/lib/brcobranca/util/errors.rb +31 -31
- data/lib/brcobranca/validations.rb +127 -151
- data/lib/brcobranca/version.rb +2 -3
- data/lib/brcobranca.rb +7 -5
- metadata +40 -248
- data/spec/arquivos/CBR64310.RET +0 -28
- data/spec/arquivos/CNAB240.RET +0 -74
- data/spec/arquivos/CNAB240CECRED.RET +0 -10
- data/spec/arquivos/CNAB240SANTANDER.RET +0 -8
- data/spec/arquivos/CNAB240SICOOB.RET +0 -10
- data/spec/arquivos/CNAB240SICREDI.CRT +0 -8
- data/spec/arquivos/CNAB400.RET +0 -54
- data/spec/arquivos/CNAB400BANCOBRASILIA.RET +0 -3
- data/spec/arquivos/CNAB400BANCONORDESTE.RET +0 -3
- data/spec/arquivos/CNAB400BANRISUL.RET +0 -3
- data/spec/arquivos/CNAB400BRADESCO.RET +0 -8
- data/spec/arquivos/CNAB400CREDISIS.RET +0 -3
- data/spec/arquivos/CNAB400ITAU.RET +0 -54
- data/spec/arquivos/CNAB400SANTANDER.RET +0 -54
- data/spec/arquivos/CNAB400UNICRED.RET +0 -3
- data/spec/brcobranca/base_spec.rb +0 -170
- data/spec/brcobranca/boleto/banco_brasil_spec.rb +0 -334
- data/spec/brcobranca/boleto/banco_brasilia_spec.rb +0 -152
- data/spec/brcobranca/boleto/banco_nordeste_spec.rb +0 -161
- data/spec/brcobranca/boleto/banestes_spec.rb +0 -194
- data/spec/brcobranca/boleto/banrisul_spec.rb +0 -182
- data/spec/brcobranca/boleto/bradesco_spec.rb +0 -211
- data/spec/brcobranca/boleto/caixa_spec.rb +0 -161
- data/spec/brcobranca/boleto/cecred_spec.rb +0 -147
- data/spec/brcobranca/boleto/citibank_spec.rb +0 -196
- data/spec/brcobranca/boleto/credisis_spec.rb +0 -159
- data/spec/brcobranca/boleto/hsbc_spec.rb +0 -172
- data/spec/brcobranca/boleto/itau_spec.rb +0 -262
- data/spec/brcobranca/boleto/safra_spec.rb +0 -172
- data/spec/brcobranca/boleto/santander_spec.rb +0 -143
- data/spec/brcobranca/boleto/sicoob_spec.rb +0 -193
- data/spec/brcobranca/boleto/sicredi_spec.rb +0 -190
- data/spec/brcobranca/boleto/unicred_spec.rb +0 -149
- data/spec/brcobranca/boletos_em_lote_spec.rb +0 -38
- data/spec/brcobranca/calculo_data_spec.rb +0 -33
- data/spec/brcobranca/calculo_spec.rb +0 -185
- data/spec/brcobranca/currency_spec.rb +0 -79
- data/spec/brcobranca/formatacao_spec.rb +0 -46
- data/spec/brcobranca/formatacao_string_spec.rb +0 -25
- data/spec/brcobranca/limpeza_spec.rb +0 -10
- data/spec/brcobranca/remessa/base_spec.rb +0 -67
- data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +0 -217
- data/spec/brcobranca/remessa/cnab240/base_spec.rb +0 -91
- data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +0 -163
- data/spec/brcobranca/remessa/cnab240/cecred_spec.rb +0 -164
- data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +0 -268
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +0 -198
- data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +0 -201
- data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +0 -193
- data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +0 -187
- data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +0 -183
- data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +0 -187
- data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +0 -190
- data/spec/brcobranca/remessa/cnab400/base_spec.rb +0 -53
- data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +0 -201
- data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +0 -126
- data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +0 -188
- data/spec/brcobranca/remessa/cnab400/itau_spec.rb +0 -190
- data/spec/brcobranca/remessa/cnab400/santander_spec.rb +0 -152
- data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +0 -217
- data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +0 -185
- data/spec/brcobranca/remessa/pagamento_spec.rb +0 -227
- data/spec/brcobranca/retorno/cnab240/base_spec.rb +0 -23
- data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +0 -50
- data/spec/brcobranca/retorno/cnab240/santander_spec.rb +0 -50
- data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +0 -50
- data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +0 -31
- data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +0 -36
- data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +0 -39
- data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +0 -41
- data/spec/brcobranca/retorno/cnab400/base_spec.rb +0 -57
- data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +0 -58
- data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +0 -25
- data/spec/brcobranca/retorno/cnab400/itau_spec.rb +0 -58
- data/spec/brcobranca/retorno/cnab400/santander_spec.rb +0 -39
- data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +0 -42
- data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +0 -69
- data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +0 -57
- data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +0 -52
- data/spec/brcobranca/rghost_spec.rb +0 -29
- data/spec/brcobranca/util/empresa_spec.rb +0 -36
- data/spec/brcobranca_spec.rb +0 -34
- data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-itau-cnab400.rem +0 -4
- data/spec/fixtures/remessa/remessa-santander-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-sicoob-cnab400.rem +0 -3
- data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +0 -4
- data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +0 -7
- data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +0 -3
- data/spec/spec.opts +0 -8
- data/spec/spec_helper.rb +0 -38
- data/spec/support/remessa_helpers.rb +0 -13
- data/spec/support/shared_examples/busca_logotipo.rb +0 -15
- data/spec/support/shared_examples/cnab240.rb +0 -259
- data/spec/support/shared_examples/cnab400.rb +0 -180
- data/spec/support/shared_examples/formatos_validos.rb +0 -36
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Brcobranca
|
3
4
|
module Remessa
|
4
5
|
module Cnab400
|
@@ -8,7 +9,7 @@ module Brcobranca
|
|
8
9
|
|
9
10
|
validates_presence_of :agencia, :conta_corrente, message: 'não pode estar em branco.'
|
10
11
|
validates_presence_of :codigo_empresa, :sequencial_remessa,
|
11
|
-
|
12
|
+
:digito_conta, message: 'não pode estar em branco.'
|
12
13
|
validates_length_of :codigo_empresa, maximum: 20, message: 'deve ser menor ou igual a 20 dígitos.'
|
13
14
|
validates_length_of :agencia, maximum: 5, message: 'deve ter 5 dígitos.'
|
14
15
|
validates_length_of :conta_corrente, maximum: 7, message: 'deve ter 7 dígitos.'
|
@@ -51,7 +52,7 @@ module Brcobranca
|
|
51
52
|
def identificacao_empresa
|
52
53
|
# identificacao da empresa no banco
|
53
54
|
identificacao = '0' # vazio [1]
|
54
|
-
identificacao
|
55
|
+
identificacao += carteira.to_s.rjust(3, '0') # carteira [3]
|
55
56
|
identificacao << agencia # codigo da agencia (sem dv) [5]
|
56
57
|
identificacao << conta_corrente # codigo da conta [7]
|
57
58
|
identificacao << digito_conta # digito da conta [1]
|
@@ -71,6 +72,7 @@ module Brcobranca
|
|
71
72
|
def formata_endereco_sacado(pgto)
|
72
73
|
endereco = "#{pgto.endereco_sacado}, #{pgto.cidade_sacado}/#{pgto.uf_sacado}"
|
73
74
|
return endereco.ljust(40, ' ') if endereco.size <= 40
|
75
|
+
|
74
76
|
"#{pgto.endereco_sacado[0..19]} #{pgto.cidade_sacado[0..14]}/#{pgto.uf_sacado}".format_size(40)
|
75
77
|
end
|
76
78
|
|
@@ -78,13 +80,13 @@ module Brcobranca
|
|
78
80
|
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
79
81
|
|
80
82
|
detalhe = '1' # identificacao do registro 9[01] 001 a 001
|
81
|
-
detalhe
|
83
|
+
detalhe += ''.rjust(5, '0') # agencia de debito (op) 9[05] 002 a 006
|
82
84
|
detalhe << ''.rjust(1, '0') # digito da agencia de debito (op) X[01] 007 a 007
|
83
85
|
detalhe << ''.rjust(5, '0') # razao da conta corrente de debito (op) 9[05] 008 a 012
|
84
86
|
detalhe << ''.rjust(7, '0') # conta corrente (op) 9[07] 013 a 019
|
85
87
|
detalhe << ''.rjust(1, '0') # digito da conta corrente (op) X[01] 020 a 020
|
86
88
|
detalhe << identificacao_empresa # identficacao da empresa X[17] 021 a 037
|
87
|
-
detalhe << pagamento.documento_ou_numero.to_s.ljust(25, ' ')
|
89
|
+
detalhe << pagamento.documento_ou_numero.to_s.ljust(25, ' ') # num. controle X[25] 038 a 062
|
88
90
|
detalhe << ''.rjust(3, '0') # codigo do banco (debito automatico apenas) 9[03] 063 a 065
|
89
91
|
detalhe << pagamento.codigo_multa # campo da multa (0 = sem, 2 = com) 9[01] 066 a 066 *
|
90
92
|
detalhe << pagamento.formata_percentual_multa # percentual multa 9[04] 067 a 070 *
|
@@ -124,6 +126,29 @@ module Brcobranca
|
|
124
126
|
detalhe << sequencial.to_s.rjust(6, '0') # numero do registro do arquivo 9[06] 395 a 400
|
125
127
|
detalhe
|
126
128
|
end
|
129
|
+
|
130
|
+
def monta_descontos_adicionais(pagamento, sequencial)
|
131
|
+
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
132
|
+
|
133
|
+
detalhe = '2' # identificacao do registro 9[01] 001 a 001
|
134
|
+
detalhe += ''.rjust(80, ' ') # mensagem 1 X[80] 002 a 081
|
135
|
+
detalhe << ''.rjust(80, ' ') # mensagem 2 X[80] 082 a 161
|
136
|
+
detalhe << ''.rjust(80, ' ') # mensagem 3 X[80] 162 a 241
|
137
|
+
detalhe << ''.rjust(80, ' ') # mensagem 4 X[80] 242 a 321
|
138
|
+
detalhe << pagamento.formata_data_segundo_desconto # data limite para o terceiro desconto 9[06] 322 a 327
|
139
|
+
detalhe << pagamento.formata_valor_segundo_desconto # valor do segundo desconto 9[13] 328 a 340
|
140
|
+
detalhe << pagamento.formata_data_terceiro_desconto # data limite para o terceiro desconto 9[06] 341 a 346
|
141
|
+
detalhe << pagamento.formata_valor_terceiro_desconto # valor do terceiro desconto 9[13] 347 a 359
|
142
|
+
detalhe << ''.rjust(7, ' ') # reserva X[07] 360 a 366
|
143
|
+
detalhe << carteira.to_s.rjust(3, '0') # carteira 9[03] 367 a 369
|
144
|
+
detalhe << agencia # codigo da agencia (sem dv) 9[05] 370 a 374
|
145
|
+
detalhe << conta_corrente # codigo da conta 9[07] 375 a 381
|
146
|
+
detalhe << digito_conta # digito da conta X[01] 382 a 382
|
147
|
+
detalhe << pagamento.nosso_numero.to_s.rjust(11, '0') # identificacao do titulo (nosso numero) 9[11] 383 a 393
|
148
|
+
detalhe << digito_nosso_numero(pagamento.nosso_numero).to_s # digito de conferencia do nosso numero (dv) X[01] 394 a 394
|
149
|
+
detalhe << sequencial.to_s.rjust(6, '0') # numero do registro do arquivo 9[06] 395 a 400
|
150
|
+
detalhe
|
151
|
+
end
|
127
152
|
end
|
128
153
|
end
|
129
154
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Brcobranca
|
3
4
|
module Remessa
|
4
5
|
module Cnab400
|
@@ -61,10 +62,10 @@ module Brcobranca
|
|
61
62
|
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
62
63
|
|
63
64
|
detalhe = '1' # identificacao transacao 9[01]
|
64
|
-
detalhe
|
65
|
+
detalhe += Brcobranca::Util::Empresa.new(documento_cedente).tipo # tipo de identificacao da empresa 9[02]
|
65
66
|
detalhe << documento_cedente.to_s.rjust(14, '0') # cpf/cnpj da empresa 9[14]
|
66
67
|
detalhe << portfolio # portfolio X[20]
|
67
|
-
detalhe << pagamento.documento_ou_numero.to_s.ljust(25)
|
68
|
+
detalhe << pagamento.documento_ou_numero.to_s.ljust(25) # identificacao do tit. na empresa X[25]
|
68
69
|
detalhe << pagamento.especie_titulo # espécie do título 9[02] - 00 = DMI – Duplicata Mercantil por Indicação, 02 = DM – Duplicata Mercantil
|
69
70
|
detalhe << pagamento.nosso_numero.to_s.rjust(12, '0') # nosso numero 9[12]
|
70
71
|
detalhe << ''.rjust(6, ' ') # brancos X[06]
|
@@ -74,7 +75,7 @@ module Brcobranca
|
|
74
75
|
detalhe << '000' # parcela 9[03] - Só preencher se o banco for imprimir e enviar e for um carnê
|
75
76
|
detalhe << carteira # codigo da carteira X[01] - Código 1 = Cobrança Simples, Código 2 = Cobrança Caucionada
|
76
77
|
detalhe << pagamento.identificacao_ocorrencia # identificacao ocorrencia 9[02]
|
77
|
-
detalhe << pagamento.numero.to_s.rjust(10, '0')
|
78
|
+
detalhe << pagamento.numero.to_s.rjust(10, '0') # numero do documento X[10]
|
78
79
|
detalhe << pagamento.data_vencimento.strftime('%d%m%y') # data do vencimento 9[06]
|
79
80
|
detalhe << pagamento.formata_valor # valor do documento 9[13]
|
80
81
|
detalhe << cod_banco # codigo banco 9[03]
|
@@ -101,7 +102,7 @@ module Brcobranca
|
|
101
102
|
# IMPORTANTE: essa instrução somente poderá ser utilizada após assinatura de contrato específico para o produto.
|
102
103
|
# 09 = DEVOLVER: esta é a instrução de BAIXA quando esta instrução for dada também deverá ser preenchida a posição 159/160
|
103
104
|
# 10 = SUSTAR PROTESTO: instrução utilizada para títulos que NÃO estejam em cartório
|
104
|
-
detalhe << '00'
|
105
|
+
detalhe << '00' # Instrução para o título 9[02]
|
105
106
|
|
106
107
|
# Quando posição 157/158 (Instrução para título) conter instrução 06 ou 09,
|
107
108
|
# este campo deverá conter a quantidade de dias válidos para execução da instrução.
|
@@ -1,11 +1,13 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Brcobranca
|
3
4
|
module Remessa
|
4
5
|
module Cnab400
|
5
6
|
class Credisis < Brcobranca::Remessa::Cnab400::Base
|
6
7
|
attr_accessor :codigo_cedente, :documento_cedente, :convenio
|
7
8
|
|
8
|
-
validates_presence_of :agencia, :conta_corrente, :codigo_cedente, :digito_conta,
|
9
|
+
validates_presence_of :agencia, :conta_corrente, :codigo_cedente, :digito_conta,
|
10
|
+
message: 'não pode estar em branco.'
|
9
11
|
validates_length_of :agencia, maximum: 4, message: 'deve ter 4 dígitos.'
|
10
12
|
validates_length_of :codigo_cedente, maximum: 4, message: 'deve ter 4 dígitos.'
|
11
13
|
validates_length_of :conta_corrente, maximum: 8, message: 'deve ter 8 dígitos.'
|
@@ -86,17 +88,17 @@ module Brcobranca
|
|
86
88
|
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
87
89
|
|
88
90
|
detalhe = '1' # identificacao transacao 9[01]
|
89
|
-
detalhe
|
91
|
+
detalhe += Brcobranca::Util::Empresa.new(documento_cedente).tipo # tipo de identificacao da empresa 9[02]
|
90
92
|
detalhe << documento_cedente.to_s.rjust(14, '0') # cpf/cnpj da empresa 9[14]
|
91
93
|
detalhe << agencia # agencia 9[04]
|
92
94
|
detalhe << ''.rjust(1, ' ') # brancos X[01]
|
93
95
|
detalhe << conta_corrente # conta corrente 9[08]
|
94
96
|
detalhe << digito_conta # dac 9[01]
|
95
97
|
detalhe << ''.rjust(6, ' ') # complemento do registro (brancos) X[06]
|
96
|
-
detalhe << pagamento.documento_ou_numero.to_s.ljust(25)
|
98
|
+
detalhe << pagamento.documento_ou_numero.to_s.ljust(25) # identificacao do tit. na empresa X[25]
|
97
99
|
detalhe << formata_nosso_numero(pagamento.nosso_numero.to_s) # nosso numero 9[11]
|
98
100
|
detalhe << ''.rjust(37, ' ') # brancos X[37]
|
99
|
-
detalhe << pagamento.numero.to_s.rjust(10, '0')
|
101
|
+
detalhe << pagamento.numero.to_s.rjust(10, '0') # numero do documento X[10]
|
100
102
|
detalhe << pagamento.data_vencimento.strftime('%d%m%y') # data do vencimento A[06]
|
101
103
|
detalhe << pagamento.formata_valor # valor do documento 9[13]
|
102
104
|
detalhe << ''.rjust(11, ' ') # brancos X[11]
|
@@ -1,10 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Brcobranca
|
3
4
|
module Remessa
|
4
5
|
module Cnab400
|
5
6
|
class Itau < Brcobranca::Remessa::Cnab400::Base
|
6
|
-
VALOR_EM_REAIS =
|
7
|
-
VALOR_EM_PERCENTUAL =
|
7
|
+
VALOR_EM_REAIS = '1'
|
8
|
+
VALOR_EM_PERCENTUAL = '2'
|
8
9
|
|
9
10
|
validates_presence_of :agencia, :conta_corrente, message: 'não pode estar em branco.'
|
10
11
|
validates_presence_of :documento_cedente, :digito_conta, message: 'não pode estar em branco.'
|
@@ -73,6 +74,7 @@ module Brcobranca
|
|
73
74
|
return 'U' if carteira.to_s == '150'
|
74
75
|
return '1' if carteira.to_s == '191'
|
75
76
|
return 'E' if carteira.to_s == '147'
|
77
|
+
|
76
78
|
'I'
|
77
79
|
end
|
78
80
|
|
@@ -89,7 +91,7 @@ module Brcobranca
|
|
89
91
|
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
90
92
|
|
91
93
|
detalhe = '1' # identificacao transacao 9[01]
|
92
|
-
detalhe
|
94
|
+
detalhe += Brcobranca::Util::Empresa.new(documento_cedente).tipo # tipo de identificacao da empresa 9[02]
|
93
95
|
detalhe << documento_cedente.to_s.rjust(14, '0') # cpf/cnpj da empresa 9[14]
|
94
96
|
detalhe << agencia # agencia 9[04]
|
95
97
|
detalhe << ''.rjust(2, '0') # complemento de registro (zeros) 9[02]
|
@@ -109,7 +111,7 @@ module Brcobranca
|
|
109
111
|
detalhe << pagamento.formata_valor # valor do documento 9[13]
|
110
112
|
detalhe << cod_banco # codigo banco 9[03]
|
111
113
|
detalhe << ''.rjust(5, '0') # agencia cobradora - deixar zero 9[05]
|
112
|
-
detalhe <<
|
114
|
+
detalhe << pagamento.especie_titulo # especie do titulo X[02]
|
113
115
|
detalhe << aceite # aceite (A/N) X[01]
|
114
116
|
detalhe << pagamento.data_emissao.strftime('%d%m%y') # data de emissao 9[06]
|
115
117
|
detalhe << pagamento.cod_primeira_instrucao # 1a instrucao - deixar zero X[02]
|
@@ -139,12 +141,13 @@ module Brcobranca
|
|
139
141
|
|
140
142
|
def prazo_instrucao(pagamento)
|
141
143
|
return '03' unless pagamento.cod_primeira_instrucao == '09'
|
144
|
+
|
142
145
|
pagamento.dias_protesto.rjust(2, '0')
|
143
146
|
end
|
144
147
|
|
145
148
|
def monta_detalhe_multa(pagamento, sequencial)
|
146
149
|
detalhe = '2'
|
147
|
-
detalhe
|
150
|
+
detalhe += pagamento.codigo_multa
|
148
151
|
detalhe << pagamento.data_vencimento.strftime('%d%m%Y')
|
149
152
|
detalhe << pagamento.formata_percentual_multa(13)
|
150
153
|
detalhe << ''.rjust(371, ' ')
|
@@ -1,9 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Brcobranca
|
3
4
|
module Remessa
|
4
5
|
module Cnab400
|
5
6
|
class Santander < Brcobranca::Remessa::Cnab400::Base
|
6
|
-
|
7
7
|
# Código de Transmissão
|
8
8
|
# Consultar seu gerente para pegar esse código. Geralmente está no e-mail enviado pelo banco.
|
9
9
|
attr_accessor :codigo_transmissao
|
@@ -48,16 +48,15 @@ module Brcobranca
|
|
48
48
|
# @return [String]
|
49
49
|
#
|
50
50
|
def zeros
|
51
|
-
|
51
|
+
''.ljust(16, '0')
|
52
52
|
end
|
53
53
|
|
54
|
-
|
55
54
|
# Complemento do header
|
56
55
|
#
|
57
56
|
# @return [String]
|
58
57
|
#
|
59
58
|
def complemento
|
60
|
-
|
59
|
+
''.ljust(275, ' ')
|
61
60
|
end
|
62
61
|
|
63
62
|
# Numero da versão da remessa
|
@@ -65,7 +64,7 @@ module Brcobranca
|
|
65
64
|
# @return [String]
|
66
65
|
#
|
67
66
|
def versao
|
68
|
-
|
67
|
+
'058'
|
69
68
|
end
|
70
69
|
|
71
70
|
def monta_header
|
@@ -84,7 +83,8 @@ module Brcobranca
|
|
84
83
|
# complemento registro [275]
|
85
84
|
# versao [3]
|
86
85
|
# num. sequencial [6] 000001
|
87
|
-
"01REMESSA01COBRANCA #{info_conta}#{empresa_mae[0..29].to_s.ljust(30,
|
86
|
+
"01REMESSA01COBRANCA #{info_conta}#{empresa_mae[0..29].to_s.ljust(30,
|
87
|
+
' ')}#{cod_banco}#{nome_banco}#{data_geracao}#{zeros}#{complemento}#{versao}000001"
|
88
88
|
end
|
89
89
|
|
90
90
|
# Detalhe do arquivo
|
@@ -100,10 +100,10 @@ module Brcobranca
|
|
100
100
|
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
101
101
|
|
102
102
|
detalhe = '1' # identificacao transacao 9[01]
|
103
|
-
detalhe
|
103
|
+
detalhe += Brcobranca::Util::Empresa.new(documento_cedente).tipo # tipo de identificacao da empresa 9[02]
|
104
104
|
detalhe << documento_cedente.to_s.rjust(14, '0') # cpf/cnpj da empresa 9[14]
|
105
105
|
detalhe << codigo_transmissao # Código de Transmissão 9[20]
|
106
|
-
detalhe << pagamento.documento_ou_numero.to_s.ljust(25, ' ')
|
106
|
+
detalhe << pagamento.documento_ou_numero.to_s.ljust(25, ' ') # identificacao do tit. na empresa X[25]
|
107
107
|
detalhe << pagamento.nosso_numero.to_s.rjust(8, '0') # nosso numero 9[8]
|
108
108
|
detalhe << pagamento.formata_data_segundo_desconto # data limite para o segundo desconto 9[06]
|
109
109
|
detalhe << ''.rjust(1, ' ') # brancos X[1]
|
@@ -121,7 +121,7 @@ module Brcobranca
|
|
121
121
|
# 5 = RÁPIDA COM REGISTRO
|
122
122
|
# (BLOQUETE EMITIDO PELO CLIENTE) 6 = CAUCIONADA RAPIDA
|
123
123
|
# 7 = DESCONTADA ELETRÔNICA
|
124
|
-
detalhe << codigo_carteira
|
124
|
+
detalhe << codigo_carteira # codigo da carteira 9[01]
|
125
125
|
|
126
126
|
# Código da ocorrência:
|
127
127
|
# 01 = ENTRADA DE TÍTULO
|
@@ -133,8 +133,8 @@ module Brcobranca
|
|
133
133
|
# 08 = ALTERAÇÃO DO SEU NÚMERO
|
134
134
|
# 09 = PROTESTAR
|
135
135
|
# 18 = SUSTAR PROTESTO
|
136
|
-
detalhe << pagamento.identificacao_ocorrencia
|
137
|
-
detalhe << pagamento.numero.to_s.rjust(10, '0')
|
136
|
+
detalhe << pagamento.identificacao_ocorrencia # identificacao ocorrencia 9[02]
|
137
|
+
detalhe << pagamento.numero.to_s.rjust(10, '0') # numero do documento X[10]
|
138
138
|
detalhe << pagamento.data_vencimento.strftime('%d%m%y') # data do vencimento 9[06]
|
139
139
|
detalhe << pagamento.formata_valor # valor do documento 9[13]
|
140
140
|
detalhe << cod_banco # codigo banco 9[03]
|
@@ -188,11 +188,13 @@ module Brcobranca
|
|
188
188
|
|
189
189
|
def identificador_movimento_complemento
|
190
190
|
return 'I' if conta_padrao_novo?
|
191
|
+
|
191
192
|
''.rjust(1, ' ')
|
192
193
|
end
|
193
194
|
|
194
195
|
def movimento_complemento
|
195
196
|
return "#{conta_corrente[8]}#{digito_conta}" if conta_padrao_novo?
|
197
|
+
|
196
198
|
''.rjust(2, ' ')
|
197
199
|
end
|
198
200
|
|
@@ -205,8 +207,8 @@ module Brcobranca
|
|
205
207
|
# @return [String]
|
206
208
|
#
|
207
209
|
def total_titulos
|
208
|
-
total =
|
209
|
-
total.to_s.somente_numeros.rjust(13,
|
210
|
+
total = format '%.2f', pagamentos.sum(&:valor)
|
211
|
+
total.to_s.somente_numeros.rjust(13, '0')
|
210
212
|
end
|
211
213
|
|
212
214
|
# Trailer do arquivo remessa
|
@@ -223,7 +225,7 @@ module Brcobranca
|
|
223
225
|
# valor total titulos [13]
|
224
226
|
# zeros [374] 0
|
225
227
|
# num. sequencial [6]
|
226
|
-
"9#{sequencial.to_s.rjust(6, '0')}#{total_titulos}#{''.rjust(374, '0')}#{sequencial.to_s.rjust(6,
|
228
|
+
"9#{sequencial.to_s.rjust(6, '0')}#{total_titulos}#{''.rjust(374, '0')}#{sequencial.to_s.rjust(6, '0')}"
|
227
229
|
end
|
228
230
|
end
|
229
231
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
3
|
module Brcobranca
|
4
4
|
module Remessa
|
5
5
|
module Cnab400
|
@@ -7,20 +7,16 @@ module Brcobranca
|
|
7
7
|
# convenio do cedente
|
8
8
|
attr_accessor :convenio
|
9
9
|
|
10
|
-
attr_accessor :modalidade_carteira
|
10
|
+
attr_accessor :modalidade_carteira, :distribuicao_boleto, :tipo_formulario
|
11
11
|
# identificacao da emissao do boleto (attr na classe base)
|
12
12
|
# opcoes:
|
13
13
|
# ‘1’ = Banco Emite
|
14
14
|
# ‘2’ = Cliente Emite
|
15
|
-
|
16
|
-
attr_accessor :distribuicao_boleto
|
17
15
|
#
|
18
16
|
# identificacao da distribuicao do boleto (attr na classe base)
|
19
17
|
# opcoes:
|
20
18
|
# ‘1’ = Banco distribui
|
21
19
|
# ‘2’ = Cliente distribui
|
22
|
-
|
23
|
-
attr_accessor :tipo_formulario
|
24
20
|
# Tipo Formulário - 01 posição (15 a 15):
|
25
21
|
# "1" -auto-copiativo
|
26
22
|
# "3" -auto-envelopável
|
@@ -30,7 +26,8 @@ module Brcobranca
|
|
30
26
|
# convenio do cedente
|
31
27
|
attr_accessor :convenio
|
32
28
|
|
33
|
-
validates_presence_of :agencia, :conta_corrente, :carteira, :convenio, :modalidade_carteira, :tipo_formulario,
|
29
|
+
validates_presence_of :agencia, :conta_corrente, :carteira, :convenio, :modalidade_carteira, :tipo_formulario,
|
30
|
+
:digito_conta, :sequencial_remessa, :documento_cedente, message: 'não pode estar em branco.'
|
34
31
|
# Remessa 400 - 8 digitos
|
35
32
|
# Remessa 240 - 12 digitos
|
36
33
|
validates_length_of :conta_corrente, is: 8, message: 'deve ter 8 dígitos.'
|
@@ -131,7 +128,7 @@ module Brcobranca
|
|
131
128
|
raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?
|
132
129
|
|
133
130
|
detalhe = '1' # identificacao transacao 9[01]
|
134
|
-
detalhe
|
131
|
+
detalhe += Brcobranca::Util::Empresa.new(documento_cedente).tipo # tipo de identificacao da empresa 9[02]
|
135
132
|
detalhe << documento_cedente.to_s.rjust(14, '0') # cpf/cnpj da empresa 9[14]
|
136
133
|
detalhe << agencia # Prefixo da Cooperativa 9[4]
|
137
134
|
detalhe << digito_agencia # Digito da Cooperativa 9[1]
|
@@ -185,8 +182,8 @@ module Brcobranca
|
|
185
182
|
# 31 = Alteração de Outros Dados
|
186
183
|
# 34 = Baixa - Pagamento Direto ao Beneficiário
|
187
184
|
|
188
|
-
detalhe << pagamento.identificacao_ocorrencia
|
189
|
-
detalhe << pagamento.numero.to_s.rjust(10, '0')
|
185
|
+
detalhe << pagamento.identificacao_ocorrencia # identificacao ocorrencia 9[02]
|
186
|
+
detalhe << pagamento.numero.to_s.rjust(10, '0') # numero do documento X[10]
|
190
187
|
detalhe << pagamento.data_vencimento.strftime('%d%m%y') # data do vencimento 9[06]
|
191
188
|
detalhe << pagamento.formata_valor # valor do documento 9[13]
|
192
189
|
detalhe << cod_banco # codigo banco 9[03]
|