brcobranca 5.0.0 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +13 -9
- data/README.md +5 -1
- data/brcobranca.gemspec +2 -0
- data/lib/brcobranca/arquivos/logos/sicoob.eps +209 -0
- data/lib/brcobranca/boleto/bradesco.rb +20 -0
- data/lib/brcobranca/boleto/sicoob.rb +80 -0
- data/lib/brcobranca/remessa/base.rb +1 -1
- data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +7 -2
- data/lib/brcobranca/remessa/cnab240/base.rb +133 -134
- data/lib/brcobranca/remessa/cnab240/caixa.rb +6 -1
- data/lib/brcobranca/remessa/cnab240/sicoob.rb +128 -0
- data/lib/brcobranca/remessa/cnab400/base.rb +5 -5
- data/lib/brcobranca/remessa/cnab400/bradesco.rb +5 -3
- data/lib/brcobranca/remessa/cnab400/citibank.rb +140 -0
- data/lib/brcobranca/remessa/cnab400/itau.rb +4 -11
- data/lib/brcobranca/remessa/pagamento.rb +39 -5
- data/lib/brcobranca/retorno/base.rb +1 -0
- data/lib/brcobranca/retorno/cnab400/base.rb +40 -0
- data/lib/brcobranca/retorno/cnab400/bradesco.rb +117 -0
- data/lib/brcobranca/retorno/cnab400/itau.rb +136 -0
- data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -1
- data/lib/brcobranca/util/empresa.rb +29 -0
- data/lib/brcobranca/version.rb +1 -1
- data/lib/brcobranca.rb +19 -5
- data/spec/arquivos/CNAB400BRADESCO.RET +8 -0
- data/spec/arquivos/CNAB400ITAU.RET +54 -0
- data/spec/brcobranca/base_spec.rb +175 -179
- data/spec/brcobranca/{banco_bradesco_spec.rb → boleto/banco_bradesco_spec.rb} +80 -53
- data/spec/brcobranca/{banco_brasil_spec.rb → boleto/banco_brasil_spec.rb} +2 -2
- data/spec/brcobranca/{banco_caixa_spec.rb → boleto/banco_caixa_spec.rb} +1 -1
- data/spec/brcobranca/{banco_hsbc_spec.rb → boleto/banco_hsbc_spec.rb} +2 -2
- data/spec/brcobranca/{banco_itau_spec.rb → boleto/banco_itau_spec.rb} +2 -2
- data/spec/brcobranca/{banco_santander_spec.rb → boleto/banco_santander_spec.rb} +2 -2
- data/spec/brcobranca/boleto/banco_sicoob_spec.rb +132 -0
- data/spec/brcobranca/{banco_sicredi_spec.rb → boleto/banco_sicredi_spec.rb} +2 -2
- data/spec/brcobranca/boletos_em_lote_spec.rb +2 -2
- data/spec/brcobranca/core_ext_spec.rb +198 -199
- data/spec/brcobranca/currency_spec.rb +67 -71
- data/spec/brcobranca/remessa/base_spec.rb +1 -17
- data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +22 -13
- data/spec/brcobranca/remessa/cnab240/base_spec.rb +28 -27
- data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +13 -4
- data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +155 -0
- data/spec/brcobranca/remessa/cnab400/base_spec.rb +1 -17
- data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +15 -2
- data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +117 -0
- data/spec/brcobranca/remessa/cnab400/itau_spec.rb +15 -10
- data/spec/brcobranca/remessa/pagamento_spec.rb +6 -8
- data/spec/brcobranca/retorno/cnab400/base_spec.rb +35 -0
- data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +55 -0
- data/spec/brcobranca/retorno/cnab400/itau_spec.rb +55 -0
- data/spec/brcobranca/{retorno_cbr643_spec.rb → retorno/retorno_cbr643_spec.rb} +3 -3
- data/spec/brcobranca/{retorno_cnab400_spec.rb → retorno/retorno_cnab400_spec.rb} +3 -3
- data/spec/brcobranca/{retorno_cnab_240_spec.rb → retorno/retorno_cnab_240_spec.rb} +3 -3
- data/spec/brcobranca/rghost_spec.rb +2 -2
- data/spec/brcobranca/util/empresa_spec.rb +35 -0
- data/spec/brcobranca_spec.rb +25 -10
- data/spec/fixtures/remessa/.keep +0 -0
- data/spec/fixtures/remessa/remessa-bancoob.rem +6 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/remessa_helpers.rb +12 -0
- data/spec/{shared_examples → support/shared_examples}/cnab240.rb +17 -15
- data/spec/{shared_examples → support/shared_examples}/cnab400.rb +11 -3
- metadata +72 -26
@@ -0,0 +1,55 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe Brcobranca::Retorno::Cnab400::Bradesco do
|
5
|
+
before do
|
6
|
+
@arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400BRADESCO.RET')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'Ignora primeira linha que é header' do
|
10
|
+
pagamentos = described_class.load_lines(@arquivo)
|
11
|
+
pagamento = pagamentos.first
|
12
|
+
expect(pagamento.sequencial).to eql('000002')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
|
16
|
+
pagamentos = described_class.load_lines(@arquivo)
|
17
|
+
expect(pagamentos.size).to eq(7) # deve ignorar a primeira linha que é header
|
18
|
+
pagamento = pagamentos.first
|
19
|
+
expect(pagamento.agencia_com_dv).to eql('01467-2')
|
20
|
+
expect(pagamento.cedente_com_dv).to eql('0019669P')
|
21
|
+
expect(pagamento.nosso_numero).to eql('000000000303')
|
22
|
+
expect(pagamento.carteira).to eql('009')
|
23
|
+
expect(pagamento.data_vencimento).to eql('250515')
|
24
|
+
expect(pagamento.valor_titulo).to eql('0000000145000')
|
25
|
+
expect(pagamento.banco_recebedor).to eql('237')
|
26
|
+
expect(pagamento.agencia_recebedora_com_dv).to eql('04157')
|
27
|
+
expect(pagamento.especie_documento).to eql('')
|
28
|
+
expect(pagamento.valor_tarifa).to eql('0000000000160')
|
29
|
+
expect(pagamento.iof).to eql('0000000000000')
|
30
|
+
expect(pagamento.valor_abatimento).to eql('0000000000000')
|
31
|
+
expect(pagamento.desconto).to eql('0000000000000')
|
32
|
+
expect(pagamento.valor_recebido).to eql('0000000145000')
|
33
|
+
expect(pagamento.juros_mora).to eql('0000000000000')
|
34
|
+
expect(pagamento.outros_recebimento).to eql('0000000000000')
|
35
|
+
expect(pagamento.data_credito).to eql('150515')
|
36
|
+
expect(pagamento.sequencial).to eql('000002')
|
37
|
+
|
38
|
+
# Campos da classe base que não encontrei a relação com CNAB400
|
39
|
+
# parse.field :tipo_cobranca,80..80
|
40
|
+
# parse.field :tipo_cobranca_anterior,81..81
|
41
|
+
# parse.field :natureza_recebimento,86..87
|
42
|
+
# parse.field :convenio,31..37
|
43
|
+
# parse.field :comando,108..109
|
44
|
+
# parse.field :juros_desconto,201..213
|
45
|
+
# parse.field :iof_desconto,214..226
|
46
|
+
# parse.field :desconto_concedito,240..252
|
47
|
+
# parse.field :outras_despesas,279..291
|
48
|
+
# parse.field :abatimento_nao_aproveitado,292..304
|
49
|
+
# parse.field :data_liquidacao,295..300
|
50
|
+
# parse.field :valor_lancamento,305..317
|
51
|
+
# parse.field :indicativo_lancamento,318..318
|
52
|
+
# parse.field :indicador_valor,319..319
|
53
|
+
# parse.field :valor_ajuste,320..331
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe Brcobranca::Retorno::Cnab400::Itau do
|
5
|
+
before do
|
6
|
+
@arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400ITAU.RET')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'Ignora primeira linha que é header' do pagamentos = described_class.load_lines(@arquivo)
|
10
|
+
pagamento = pagamentos.first
|
11
|
+
expect(pagamento.sequencial).to eql('000002')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
|
15
|
+
pagamentos = described_class.load_lines(@arquivo)
|
16
|
+
expect(pagamentos.size).to eq(53) # deve ignorar a primeira linha que é header
|
17
|
+
pagamento = pagamentos.first
|
18
|
+
expect(pagamento.agencia_com_dv).to eql('0730')
|
19
|
+
expect(pagamento.cedente_com_dv).to eql('035110')
|
20
|
+
expect(pagamento.nosso_numero).to eql('00000011')
|
21
|
+
expect(pagamento.carteira_variacao).to eql('109')
|
22
|
+
expect(pagamento.carteira).to eql('I')
|
23
|
+
expect(pagamento.data_vencimento).to eql('000000')
|
24
|
+
expect(pagamento.valor_titulo).to eql('0000000004000')
|
25
|
+
expect(pagamento.banco_recebedor).to eql('104')
|
26
|
+
expect(pagamento.agencia_recebedora_com_dv).to eql('18739')
|
27
|
+
expect(pagamento.especie_documento).to eql('')
|
28
|
+
expect(pagamento.valor_tarifa).to eql('0000000000210')
|
29
|
+
expect(pagamento.iof).to eql('0000000000000')
|
30
|
+
expect(pagamento.valor_abatimento).to eql('0000000000000')
|
31
|
+
expect(pagamento.desconto).to eql('0000000000000')
|
32
|
+
expect(pagamento.valor_recebido).to eql('0000000003790')
|
33
|
+
expect(pagamento.juros_mora).to eql('0000000000000')
|
34
|
+
expect(pagamento.outros_recebimento).to eql('0000000000000')
|
35
|
+
expect(pagamento.data_credito).to eql('210513')
|
36
|
+
expect(pagamento.sequencial).to eql('000002')
|
37
|
+
|
38
|
+
# Campos da classe base que não encontrei a relação com CNAB400
|
39
|
+
# parse.field :tipo_cobranca,80..80
|
40
|
+
# parse.field :tipo_cobranca_anterior,81..81
|
41
|
+
# parse.field :natureza_recebimento,86..87
|
42
|
+
# parse.field :convenio,31..37
|
43
|
+
# parse.field :comando,108..109
|
44
|
+
# parse.field :juros_desconto,201..213
|
45
|
+
# parse.field :iof_desconto,214..226
|
46
|
+
# parse.field :desconto_concedito,240..252
|
47
|
+
# parse.field :outras_despesas,279..291
|
48
|
+
# parse.field :abatimento_nao_aproveitado,292..304
|
49
|
+
# parse.field :data_liquidacao,295..300
|
50
|
+
# parse.field :valor_lancamento,305..317
|
51
|
+
# parse.field :indicativo_lancamento,318..318
|
52
|
+
# parse.field :indicador_valor,319..319
|
53
|
+
# parse.field :valor_ajuste,320..331
|
54
|
+
end
|
55
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe Brcobranca::Retorno::RetornoCbr643 do
|
5
|
-
before
|
6
|
-
@arquivo = File.join(File.dirname(__FILE__), '..', 'arquivos', 'CBR64310.RET')
|
4
|
+
RSpec.describe Brcobranca::Retorno::RetornoCbr643 do
|
5
|
+
before do
|
6
|
+
@arquivo = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'CBR64310.RET')
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'Transforma arquivo de retorno em objetos de retorno' do
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe Brcobranca::Retorno::RetornoCnab400 do
|
5
|
-
before
|
6
|
-
@arquivo = File.join(File.dirname(__FILE__), '..', 'arquivos', 'CNAB400.RET')
|
4
|
+
RSpec.describe Brcobranca::Retorno::RetornoCnab400 do
|
5
|
+
before do
|
6
|
+
@arquivo = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'CNAB400.RET')
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'Ignora primeira linha que é header' do
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe Brcobranca::Retorno::RetornoCnab240 do
|
5
|
-
before
|
6
|
-
@arquivo = File.join(File.dirname(__FILE__), '..', 'arquivos', 'CNAB240.RET')
|
4
|
+
RSpec.describe Brcobranca::Retorno::RetornoCnab240 do
|
5
|
+
before do
|
6
|
+
@arquivo = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'CNAB240.RET')
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe Brcobranca::Util::Empresa do
|
5
|
+
|
6
|
+
context 'com zero' do
|
7
|
+
it 'CPF returns 01' do
|
8
|
+
['179.461.278-55', '17946127855', 17946127855].each do |documento|
|
9
|
+
expect(Brcobranca::Util::Empresa.new(documento, true).tipo).to eq('01')
|
10
|
+
expect(Brcobranca::Util::Empresa.new(documento).tipo).to eq('01')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'CNPJ returns 02' do
|
15
|
+
['25.716.376/0001-28', '25716376000128', 25716376000128].each do |documento|
|
16
|
+
expect(Brcobranca::Util::Empresa.new(documento, true).tipo).to eq('02')
|
17
|
+
expect(Brcobranca::Util::Empresa.new(documento).tipo).to eq('02')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'sem zero' do
|
23
|
+
it 'CPF returns 1' do
|
24
|
+
['179.461.278-55', '17946127855', 17946127855].each do |documento|
|
25
|
+
expect(Brcobranca::Util::Empresa.new(documento, false).tipo).to eq('1')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'CNPJ returns 2' do
|
30
|
+
['25.716.376/0001-28', '25716376000128', 25716376000128].each do |documento|
|
31
|
+
expect(Brcobranca::Util::Empresa.new(documento, false).tipo).to eq('2')
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/spec/brcobranca_spec.rb
CHANGED
@@ -1,18 +1,33 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe 'Brcobranca' do
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
RSpec.describe 'Brcobranca' do
|
5
|
+
|
6
|
+
describe 'gerador' do
|
7
|
+
context 'rghost' do
|
8
|
+
before { Brcobranca.configuration.gerador = :rghost }
|
9
|
+
|
10
|
+
it { expect(Brcobranca.configuration.gerador).to eql(:rghost) }
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'prawn' do
|
14
|
+
before { Brcobranca.configuration.gerador = :prawn }
|
15
|
+
|
16
|
+
it { expect(Brcobranca.configuration.gerador).to eql(:prawn) }
|
17
|
+
end
|
8
18
|
end
|
9
19
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
20
|
+
describe 'formato' do
|
21
|
+
context 'pdf' do
|
22
|
+
before { Brcobranca.configuration.formato = :pdf }
|
23
|
+
|
24
|
+
it { expect(Brcobranca.configuration.formato).to eql(:pdf) }
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'gif' do
|
28
|
+
before { Brcobranca.configuration.formato = :gif }
|
29
|
+
|
30
|
+
it { expect(Brcobranca.configuration.formato).to eql(:gif) }
|
14
31
|
end
|
15
|
-
expect(Brcobranca.configuration.gerador).to eql(:prawn)
|
16
|
-
expect(Brcobranca.configuration.formato).to eql(:gif)
|
17
32
|
end
|
18
33
|
end
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
75600000 274576177000177 0432730000000036668 SEBASTIAN ELIAS PUBLICIDADE SICOOB 114072015161515000000081000000000000000000000000000000000000000000000
|
2
|
+
75600011R01 040 2074576177000177 0432730000000036668 SEBASTIAN ELIAS PUBLICIDADE 000000001407201500000000
|
3
|
+
7560001300001P 010432730000000036668 000042971501014 10 220000000000000001407201500000000000500000000002N14072015000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000090000000000
|
4
|
+
7560001300002Q 011000082136760505JOSE DA SILVA AV. BURKHARD HEHN SIMOES SAO FRANCISCO 24360440RIO DE JANEIRO RJ0000000000000000 000
|
5
|
+
75600015 000004
|
6
|
+
75699999 000001000006
|
data/spec/spec_helper.rb
CHANGED
@@ -8,9 +8,32 @@ CodeClimate::TestReporter.start
|
|
8
8
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
9
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
10
|
require 'rspec'
|
11
|
+
require 'timecop'
|
11
12
|
require 'pry'
|
12
13
|
require 'tempfile'
|
13
14
|
require 'brcobranca'
|
14
15
|
require 'rghost'
|
15
16
|
|
17
|
+
# Requires supporting files with custom matchers and macros, etc,
|
18
|
+
# in ./support/ and its subdirectories.
|
19
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
20
|
+
|
21
|
+
RSpec.configure do |config|
|
22
|
+
config.disable_monkey_patching!
|
23
|
+
config.order = :random
|
24
|
+
Kernel.srand config.seed
|
25
|
+
config.filter_run focus: true
|
26
|
+
config.run_all_when_everything_filtered = true
|
27
|
+
config.expect_with :rspec do |expectations|
|
28
|
+
expectations.syntax = :expect
|
29
|
+
end
|
30
|
+
config.mock_with :rspec do |mocks|
|
31
|
+
mocks.syntax = :expect
|
32
|
+
mocks.verify_partial_doubles = true
|
33
|
+
end
|
34
|
+
if config.files_to_run.one?
|
35
|
+
config.default_formatter = 'doc'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
16
39
|
RGhost::Config.config_platform
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RemessaHelpers
|
2
|
+
def read_remessa(name, body=nil)
|
3
|
+
filename = File.join(File.dirname(__FILE__), '..', 'fixtures', 'remessa', name)
|
4
|
+
@body = body
|
5
|
+
File.open(filename, 'w') { |f| f.write(@body) } unless File.exist?(filename)
|
6
|
+
File.read(filename)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.include RemessaHelpers
|
12
|
+
end
|
@@ -14,7 +14,8 @@ shared_examples_for 'cnab240' do
|
|
14
14
|
valor_iof: 9.9,
|
15
15
|
valor_abatimento: 24.35,
|
16
16
|
documento_avalista: '12345678901',
|
17
|
-
nome_avalista: 'avalista'
|
17
|
+
nome_avalista: 'avalista',
|
18
|
+
numero_documento: '00000000123')
|
18
19
|
end
|
19
20
|
let(:params) do
|
20
21
|
p = { empresa_mae: 'teste',
|
@@ -29,10 +30,11 @@ shared_examples_for 'cnab240' do
|
|
29
30
|
if subject.class == Brcobranca::Remessa::Cnab240::Caixa
|
30
31
|
p.merge!(versao_aplicativo: '1234',
|
31
32
|
digito_agencia: '1')
|
32
|
-
|
33
|
+
elsif subject.class == Brcobranca::Remessa::Cnab240::BancoBrasil
|
33
34
|
p.merge!(carteira: '12',
|
34
35
|
variacao: '123')
|
35
36
|
end
|
37
|
+
p
|
36
38
|
end
|
37
39
|
let(:objeto) { subject.class.new(params) }
|
38
40
|
|
@@ -43,14 +45,14 @@ shared_examples_for 'cnab240' do
|
|
43
45
|
|
44
46
|
it 'header arquivo deve ter as informacoes nas posicoes corretas' do
|
45
47
|
header = objeto.monta_header_arquivo
|
46
|
-
expect(header[0..2]).to eq objeto.cod_banco
|
47
|
-
expect(header[17]).to eq '1'
|
48
|
-
expect(header[18..31]).to eq '00012345678901'
|
49
|
-
expect(header[32..51]).to eq objeto.codigo_convenio
|
50
|
-
expect(header[52..71]).to eq objeto.info_conta
|
51
|
-
expect(header[72..101]).to eq 'TESTE'.ljust(30, ' ')
|
52
|
-
expect(header[157..162]).to eq '000001'
|
53
|
-
expect(header[163..165]).to eq objeto.
|
48
|
+
expect(header[0..2]).to eq objeto.cod_banco # cod. do banco
|
49
|
+
expect(header[17]).to eq '1' # tipo inscricao do cedente
|
50
|
+
expect(header[18..31]).to eq '00012345678901' # documento do cedente
|
51
|
+
expect(header[32..51]).to eq objeto.codigo_convenio # informacoes do convenio
|
52
|
+
expect(header[52..71]).to eq objeto.info_conta # informacoes da conta
|
53
|
+
expect(header[72..101]).to eq 'TESTE'.ljust(30, ' ') # razao social do cedente
|
54
|
+
expect(header[157..162]).to eq '000001' # sequencial de remessa
|
55
|
+
expect(header[163..165]).to eq objeto.versao_layout_arquivo # versao do layout
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
@@ -63,7 +65,7 @@ shared_examples_for 'cnab240' do
|
|
63
65
|
header = objeto.monta_header_lote 1
|
64
66
|
expect(header[0..2]).to eq objeto.cod_banco # cod. do banco
|
65
67
|
expect(header[3..6]).to eq '0001' # numero do lote
|
66
|
-
expect(header[13..15]).to eq objeto.
|
68
|
+
expect(header[13..15]).to eq objeto.versao_layout_lote # versao do layout
|
67
69
|
expect(header[17]).to eq '1' # tipo inscricao do cedente
|
68
70
|
expect(header[18..32]).to eq '000012345678901' # documento do cedente
|
69
71
|
expect(header[33..52]).to eq objeto.convenio_lote # informacoes do convenio
|
@@ -88,7 +90,7 @@ shared_examples_for 'cnab240' do
|
|
88
90
|
expect(segmento_p[17..21]).to eq '01234' # agencia
|
89
91
|
expect(segmento_p[22]).to eq objeto.digito_agencia.to_s # digito da agencia
|
90
92
|
expect(segmento_p[23..56]).to eq objeto.complemento_p(pagamento) # complemento do segmento P
|
91
|
-
expect(segmento_p[62..
|
93
|
+
expect(segmento_p[62..76]).to eq '000000000000123' # numero do documento
|
92
94
|
expect(segmento_p[77..84]).to eq Date.today.strftime('%d%m%Y') # data de vencimento
|
93
95
|
expect(segmento_p[85..99]).to eq '000000000019990' # valor
|
94
96
|
expect(segmento_p[109..116]).to eq Date.today.strftime('%d%m%Y') # data de emissao
|
@@ -168,8 +170,8 @@ shared_examples_for 'cnab240' do
|
|
168
170
|
it 'contador de registros deve acrescer 1 a cada registro' do
|
169
171
|
lote = objeto.monta_lote pagamento, 1
|
170
172
|
|
171
|
-
expect(lote[1][8..12]).to eq '
|
172
|
-
expect(lote[2][8..12]).to eq '
|
173
|
+
expect(lote[1][8..12]).to eq '00001' # segmento P
|
174
|
+
expect(lote[2][8..12]).to eq '00002' # segmento Q
|
173
175
|
expect(lote[3][17..22]).to eq '000004' # trailer do lote
|
174
176
|
end
|
175
177
|
end
|
@@ -191,6 +193,7 @@ shared_examples_for 'cnab240' do
|
|
191
193
|
expect(remessa[1204]).to eq "\n"
|
192
194
|
end
|
193
195
|
|
196
|
+
# TODO no momento só existe um lote e todos os pagamentos são adicionados a ele
|
194
197
|
it 'pode ser adicionado varios lotes' do
|
195
198
|
objeto.pagamentos << pagamento
|
196
199
|
remessa = objeto.gera_arquivo
|
@@ -200,7 +203,6 @@ shared_examples_for 'cnab240' do
|
|
200
203
|
# 10 registros (2400) + 9 quebras de linha (18)
|
201
204
|
expect(remessa.size).to eq 2409
|
202
205
|
expect(lote1).to eq objeto.monta_lote(pagamento, 1).join("\n")
|
203
|
-
expect(lote2).to eq objeto.monta_lote(pagamento, 2).join("\n")
|
204
206
|
end
|
205
207
|
end
|
206
208
|
end
|
@@ -18,16 +18,24 @@ shared_examples_for 'cnab400' do
|
|
18
18
|
agencia: '12345',
|
19
19
|
conta_corrente: '1234567',
|
20
20
|
digito_conta: '1',
|
21
|
-
empresa_mae: '
|
21
|
+
empresa_mae: 'ASD',
|
22
22
|
sequencial_remessa: '1',
|
23
23
|
codigo_empresa: '123',
|
24
24
|
pagamentos: [pagamento] }
|
25
|
+
elsif subject.class == Brcobranca::Remessa::Cnab400::Citibank
|
26
|
+
{
|
27
|
+
portfolio: '17777751042700080112',
|
28
|
+
carteira: '1',
|
29
|
+
empresa_mae: 'ASD',
|
30
|
+
documento_cedente: '12345678910',
|
31
|
+
pagamentos: [pagamento]
|
32
|
+
}
|
25
33
|
else
|
26
34
|
{ carteira: '123',
|
27
35
|
agencia: '1234',
|
28
36
|
conta_corrente: '12345',
|
29
37
|
digito_conta: '1',
|
30
|
-
empresa_mae: '
|
38
|
+
empresa_mae: 'ASD',
|
31
39
|
documento_cedente: '12345678910',
|
32
40
|
pagamentos: [pagamento] }
|
33
41
|
end
|
@@ -76,7 +84,7 @@ shared_examples_for 'cnab400' do
|
|
76
84
|
expect(remessa[801]).to eq "\n"
|
77
85
|
end
|
78
86
|
|
79
|
-
it 'deve ser
|
87
|
+
it 'deve ser possivel adicionar mais de um pagamento' do
|
80
88
|
objeto.pagamentos << pagamento
|
81
89
|
remessa = objeto.gera_arquivo
|
82
90
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brcobranca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kivanio Barbosa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rghost
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: unidecoder
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.1.2
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.1.2
|
69
83
|
description: Gem para emissao de bloquetos de cobranca de bancos brasileiros.
|
70
84
|
email: kivanio@gmail.com
|
71
85
|
executables: []
|
@@ -93,6 +107,7 @@ files:
|
|
93
107
|
- lib/brcobranca/arquivos/logos/hsbc.eps
|
94
108
|
- lib/brcobranca/arquivos/logos/itau.eps
|
95
109
|
- lib/brcobranca/arquivos/logos/santander.eps
|
110
|
+
- lib/brcobranca/arquivos/logos/sicoob.eps
|
96
111
|
- lib/brcobranca/arquivos/logos/sicredi.eps
|
97
112
|
- lib/brcobranca/arquivos/templates/modelo_carne.eps
|
98
113
|
- lib/brcobranca/arquivos/templates/modelo_generico.eps
|
@@ -103,6 +118,7 @@ files:
|
|
103
118
|
- lib/brcobranca/boleto/hsbc.rb
|
104
119
|
- lib/brcobranca/boleto/itau.rb
|
105
120
|
- lib/brcobranca/boleto/santander.rb
|
121
|
+
- lib/brcobranca/boleto/sicoob.rb
|
106
122
|
- lib/brcobranca/boleto/sicredi.rb
|
107
123
|
- lib/brcobranca/boleto/template/base.rb
|
108
124
|
- lib/brcobranca/boleto/template/rghost.rb
|
@@ -117,26 +133,35 @@ files:
|
|
117
133
|
- lib/brcobranca/remessa/cnab240/banco_brasil.rb
|
118
134
|
- lib/brcobranca/remessa/cnab240/base.rb
|
119
135
|
- lib/brcobranca/remessa/cnab240/caixa.rb
|
136
|
+
- lib/brcobranca/remessa/cnab240/sicoob.rb
|
120
137
|
- lib/brcobranca/remessa/cnab400/base.rb
|
121
138
|
- lib/brcobranca/remessa/cnab400/bradesco.rb
|
139
|
+
- lib/brcobranca/remessa/cnab400/citibank.rb
|
122
140
|
- lib/brcobranca/remessa/cnab400/itau.rb
|
123
141
|
- lib/brcobranca/remessa/pagamento.rb
|
124
142
|
- lib/brcobranca/retorno/base.rb
|
143
|
+
- lib/brcobranca/retorno/cnab400/base.rb
|
144
|
+
- lib/brcobranca/retorno/cnab400/bradesco.rb
|
145
|
+
- lib/brcobranca/retorno/cnab400/itau.rb
|
125
146
|
- lib/brcobranca/retorno/retorno_cbr643.rb
|
126
147
|
- lib/brcobranca/retorno/retorno_cnab240.rb
|
127
148
|
- lib/brcobranca/retorno/retorno_cnab400.rb
|
149
|
+
- lib/brcobranca/util/empresa.rb
|
128
150
|
- lib/brcobranca/version.rb
|
129
151
|
- spec/arquivos/CBR64310.RET
|
130
152
|
- spec/arquivos/CNAB240.RET
|
131
153
|
- spec/arquivos/CNAB400.RET
|
132
|
-
- spec/
|
133
|
-
- spec/
|
134
|
-
- spec/brcobranca/banco_caixa_spec.rb
|
135
|
-
- spec/brcobranca/banco_hsbc_spec.rb
|
136
|
-
- spec/brcobranca/banco_itau_spec.rb
|
137
|
-
- spec/brcobranca/banco_santander_spec.rb
|
138
|
-
- spec/brcobranca/banco_sicredi_spec.rb
|
154
|
+
- spec/arquivos/CNAB400BRADESCO.RET
|
155
|
+
- spec/arquivos/CNAB400ITAU.RET
|
139
156
|
- spec/brcobranca/base_spec.rb
|
157
|
+
- spec/brcobranca/boleto/banco_bradesco_spec.rb
|
158
|
+
- spec/brcobranca/boleto/banco_brasil_spec.rb
|
159
|
+
- spec/brcobranca/boleto/banco_caixa_spec.rb
|
160
|
+
- spec/brcobranca/boleto/banco_hsbc_spec.rb
|
161
|
+
- spec/brcobranca/boleto/banco_itau_spec.rb
|
162
|
+
- spec/brcobranca/boleto/banco_santander_spec.rb
|
163
|
+
- spec/brcobranca/boleto/banco_sicoob_spec.rb
|
164
|
+
- spec/brcobranca/boleto/banco_sicredi_spec.rb
|
140
165
|
- spec/brcobranca/boletos_em_lote_spec.rb
|
141
166
|
- spec/brcobranca/core_ext_spec.rb
|
142
167
|
- spec/brcobranca/currency_spec.rb
|
@@ -144,19 +169,28 @@ files:
|
|
144
169
|
- spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb
|
145
170
|
- spec/brcobranca/remessa/cnab240/base_spec.rb
|
146
171
|
- spec/brcobranca/remessa/cnab240/caixa_spec.rb
|
172
|
+
- spec/brcobranca/remessa/cnab240/sicoob_spec.rb
|
147
173
|
- spec/brcobranca/remessa/cnab400/base_spec.rb
|
148
174
|
- spec/brcobranca/remessa/cnab400/bradesco_spec.rb
|
175
|
+
- spec/brcobranca/remessa/cnab400/citibank_spec.rb
|
149
176
|
- spec/brcobranca/remessa/cnab400/itau_spec.rb
|
150
177
|
- spec/brcobranca/remessa/pagamento_spec.rb
|
151
|
-
- spec/brcobranca/
|
152
|
-
- spec/brcobranca/
|
153
|
-
- spec/brcobranca/
|
178
|
+
- spec/brcobranca/retorno/cnab400/base_spec.rb
|
179
|
+
- spec/brcobranca/retorno/cnab400/bradesco_spec.rb
|
180
|
+
- spec/brcobranca/retorno/cnab400/itau_spec.rb
|
181
|
+
- spec/brcobranca/retorno/retorno_cbr643_spec.rb
|
182
|
+
- spec/brcobranca/retorno/retorno_cnab400_spec.rb
|
183
|
+
- spec/brcobranca/retorno/retorno_cnab_240_spec.rb
|
154
184
|
- spec/brcobranca/rghost_spec.rb
|
185
|
+
- spec/brcobranca/util/empresa_spec.rb
|
155
186
|
- spec/brcobranca_spec.rb
|
156
|
-
- spec/
|
157
|
-
- spec/
|
187
|
+
- spec/fixtures/remessa/.keep
|
188
|
+
- spec/fixtures/remessa/remessa-bancoob.rem
|
158
189
|
- spec/spec.opts
|
159
190
|
- spec/spec_helper.rb
|
191
|
+
- spec/support/remessa_helpers.rb
|
192
|
+
- spec/support/shared_examples/cnab240.rb
|
193
|
+
- spec/support/shared_examples/cnab400.rb
|
160
194
|
homepage: http://rubygems.org/gems/brcobranca
|
161
195
|
licenses: []
|
162
196
|
metadata: {}
|
@@ -185,14 +219,17 @@ test_files:
|
|
185
219
|
- spec/arquivos/CBR64310.RET
|
186
220
|
- spec/arquivos/CNAB240.RET
|
187
221
|
- spec/arquivos/CNAB400.RET
|
188
|
-
- spec/
|
189
|
-
- spec/
|
190
|
-
- spec/brcobranca/banco_caixa_spec.rb
|
191
|
-
- spec/brcobranca/banco_hsbc_spec.rb
|
192
|
-
- spec/brcobranca/banco_itau_spec.rb
|
193
|
-
- spec/brcobranca/banco_santander_spec.rb
|
194
|
-
- spec/brcobranca/banco_sicredi_spec.rb
|
222
|
+
- spec/arquivos/CNAB400BRADESCO.RET
|
223
|
+
- spec/arquivos/CNAB400ITAU.RET
|
195
224
|
- spec/brcobranca/base_spec.rb
|
225
|
+
- spec/brcobranca/boleto/banco_bradesco_spec.rb
|
226
|
+
- spec/brcobranca/boleto/banco_brasil_spec.rb
|
227
|
+
- spec/brcobranca/boleto/banco_caixa_spec.rb
|
228
|
+
- spec/brcobranca/boleto/banco_hsbc_spec.rb
|
229
|
+
- spec/brcobranca/boleto/banco_itau_spec.rb
|
230
|
+
- spec/brcobranca/boleto/banco_santander_spec.rb
|
231
|
+
- spec/brcobranca/boleto/banco_sicoob_spec.rb
|
232
|
+
- spec/brcobranca/boleto/banco_sicredi_spec.rb
|
196
233
|
- spec/brcobranca/boletos_em_lote_spec.rb
|
197
234
|
- spec/brcobranca/core_ext_spec.rb
|
198
235
|
- spec/brcobranca/currency_spec.rb
|
@@ -200,16 +237,25 @@ test_files:
|
|
200
237
|
- spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb
|
201
238
|
- spec/brcobranca/remessa/cnab240/base_spec.rb
|
202
239
|
- spec/brcobranca/remessa/cnab240/caixa_spec.rb
|
240
|
+
- spec/brcobranca/remessa/cnab240/sicoob_spec.rb
|
203
241
|
- spec/brcobranca/remessa/cnab400/base_spec.rb
|
204
242
|
- spec/brcobranca/remessa/cnab400/bradesco_spec.rb
|
243
|
+
- spec/brcobranca/remessa/cnab400/citibank_spec.rb
|
205
244
|
- spec/brcobranca/remessa/cnab400/itau_spec.rb
|
206
245
|
- spec/brcobranca/remessa/pagamento_spec.rb
|
207
|
-
- spec/brcobranca/
|
208
|
-
- spec/brcobranca/
|
209
|
-
- spec/brcobranca/
|
246
|
+
- spec/brcobranca/retorno/cnab400/base_spec.rb
|
247
|
+
- spec/brcobranca/retorno/cnab400/bradesco_spec.rb
|
248
|
+
- spec/brcobranca/retorno/cnab400/itau_spec.rb
|
249
|
+
- spec/brcobranca/retorno/retorno_cbr643_spec.rb
|
250
|
+
- spec/brcobranca/retorno/retorno_cnab400_spec.rb
|
251
|
+
- spec/brcobranca/retorno/retorno_cnab_240_spec.rb
|
210
252
|
- spec/brcobranca/rghost_spec.rb
|
253
|
+
- spec/brcobranca/util/empresa_spec.rb
|
211
254
|
- spec/brcobranca_spec.rb
|
212
|
-
- spec/
|
213
|
-
- spec/
|
255
|
+
- spec/fixtures/remessa/.keep
|
256
|
+
- spec/fixtures/remessa/remessa-bancoob.rem
|
214
257
|
- spec/spec.opts
|
215
258
|
- spec/spec_helper.rb
|
259
|
+
- spec/support/remessa_helpers.rb
|
260
|
+
- spec/support/shared_examples/cnab240.rb
|
261
|
+
- spec/support/shared_examples/cnab400.rb
|