br_boleto 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +13 -0
- data/LICENSE +1 -1
- data/README.markdown +22 -7
- data/br_boleto.gemspec +9 -7
- data/lib/br_boleto/active_model_base.rb +28 -0
- data/lib/br_boleto/boleto/base.rb +666 -633
- data/lib/br_boleto/boleto/caixa.rb +257 -0
- data/lib/br_boleto/boleto/sicoob.rb +6 -18
- data/lib/br_boleto/helper/format_value.rb +18 -0
- data/lib/br_boleto/remessa/base.rb +1 -22
- data/lib/br_boleto/remessa/cnab240/base.rb +12 -9
- data/lib/br_boleto/remessa/cnab240/caixa.rb +201 -0
- data/lib/br_boleto/remessa/cnab240/helper/header_arquivo.rb +2 -2
- data/lib/br_boleto/remessa/cnab240/helper/header_lote.rb +10 -1
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +2 -2
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +2 -2
- data/lib/br_boleto/remessa/cnab240/helper/trailer_arquivo.rb +7 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +6 -6
- data/lib/br_boleto/remessa/lote.rb +1 -21
- data/lib/br_boleto/remessa/pagamento.rb +22 -36
- data/lib/br_boleto/retorno/base.rb +31 -0
- data/lib/br_boleto/retorno/cnab240/base.rb +101 -0
- data/lib/br_boleto/retorno/cnab240/caixa.rb +30 -0
- data/lib/br_boleto/retorno/cnab240/sicoob.rb +35 -0
- data/lib/br_boleto/retorno/pagamento.rb +242 -0
- data/lib/br_boleto/version.rb +2 -2
- data/lib/br_boleto.rb +23 -11
- data/test/br_boleto/boleto/base_test.rb +6 -6
- data/test/br_boleto/boleto/caixa_test.rb +191 -0
- data/test/br_boleto/boleto/sicoob_test.rb +18 -11
- data/test/br_boleto/remessa/cnab240/base_test.rb +5 -5
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +271 -0
- data/test/br_boleto/remessa/cnab240/helper/header_arquivo_test.rb +2 -2
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +1 -1
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +27 -27
- data/test/br_boleto/remessa/pagamento_test.rb +12 -2
- data/test/br_boleto/retorno/cnab240/base_test.rb +217 -0
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +217 -0
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +217 -0
- data/test/br_boleto/retorno/pagamento_test.rb +179 -0
- data/test/factories/boleto/boleto_caixa.rb +25 -0
- data/test/factories/remessa/cnab240/caixa.rb +14 -0
- data/test/factories/remessa/pagamento.rb +1 -0
- data/test/factories/retorno/pagamento.rb +6 -0
- data/test/files/retorno/cnab240/caixa.ret +14 -0
- data/test/files/retorno/cnab240/padrao240.ret +14 -0
- metadata +51 -6
@@ -164,9 +164,9 @@ describe BrBoleto::Remessa::Cnab240::Sicoob do
|
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
167
|
-
describe "#
|
167
|
+
describe "#complemento_header_arquivo" do
|
168
168
|
it "deve ter 29 posições em branco" do
|
169
|
-
subject.
|
169
|
+
subject.complemento_header_arquivo.must_equal ''.rjust(29, ' ')
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
@@ -191,23 +191,23 @@ describe BrBoleto::Remessa::Cnab240::Sicoob do
|
|
191
191
|
end
|
192
192
|
|
193
193
|
describe "#complemento_trailer_lote_posicao_024_a_029" do
|
194
|
-
it "se o
|
195
|
-
subject.expects(:
|
194
|
+
it "se o tipo_cobranca_formatada for simples, então deve contar o total de pagamentos do lote" do
|
195
|
+
subject.expects(:tipo_cobranca_formatada).returns(:simples)
|
196
196
|
subject.complemento_trailer_lote_posicao_024_a_029(lote).must_equal "2".rjust(6, "0")
|
197
197
|
end
|
198
|
-
it "se o
|
199
|
-
subject.expects(:
|
198
|
+
it "se o tipo_cobranca_formatada não for simples, então não deve contar o total de pagamentos do lote" do
|
199
|
+
subject.expects(:tipo_cobranca_formatada).returns(:caucionada)
|
200
200
|
subject.complemento_trailer_lote_posicao_024_a_029(lote).must_equal "".rjust(6, "0")
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
204
204
|
describe "#complemento_trailer_lote_posicao_030_a_046" do
|
205
|
-
it "se o
|
206
|
-
subject.expects(:
|
205
|
+
it "se o tipo_cobranca_formatada for simples, então deve somar o valor_documento dos pagamentos do lote" do
|
206
|
+
subject.expects(:tipo_cobranca_formatada).returns(:simples)
|
207
207
|
subject.complemento_trailer_lote_posicao_030_a_046(lote).must_equal "15025".rjust(17, "0")
|
208
208
|
end
|
209
|
-
it "se o
|
210
|
-
subject.expects(:
|
209
|
+
it "se o tipo_cobranca_formatada não for simples, então não deve somar o valor_documento dos pagamentos do lote" do
|
210
|
+
subject.expects(:tipo_cobranca_formatada).returns(:caucionada)
|
211
211
|
subject.complemento_trailer_lote_posicao_030_a_046(lote).must_equal "".rjust(17, "0")
|
212
212
|
end
|
213
213
|
end
|
@@ -221,23 +221,23 @@ describe BrBoleto::Remessa::Cnab240::Sicoob do
|
|
221
221
|
end
|
222
222
|
|
223
223
|
describe "#complemento_trailer_lote_posicao_070_a_075" do
|
224
|
-
it "se o
|
225
|
-
subject.expects(:
|
224
|
+
it "se o tipo_cobranca_formatada for caucionada, então deve contar o total de pagamentos do lote" do
|
225
|
+
subject.expects(:tipo_cobranca_formatada).returns(:caucionada)
|
226
226
|
subject.complemento_trailer_lote_posicao_070_a_075(lote).must_equal "2".rjust(6, "0")
|
227
227
|
end
|
228
|
-
it "se o
|
229
|
-
subject.expects(:
|
228
|
+
it "se o tipo_cobranca_formatada não for caucionada, então não deve contar o total de pagamentos do lote" do
|
229
|
+
subject.expects(:tipo_cobranca_formatada).returns(:simples)
|
230
230
|
subject.complemento_trailer_lote_posicao_070_a_075(lote).must_equal "".rjust(6, "0")
|
231
231
|
end
|
232
232
|
end
|
233
233
|
|
234
234
|
describe "#complemento_trailer_lote_posicao_076_a_092" do
|
235
|
-
it "se o
|
236
|
-
subject.expects(:
|
235
|
+
it "se o tipo_cobranca_formatada for caucionada, então deve somar o valor_documento dos pagamentos do lote" do
|
236
|
+
subject.expects(:tipo_cobranca_formatada).returns(:caucionada)
|
237
237
|
subject.complemento_trailer_lote_posicao_076_a_092(lote).must_equal "15025".rjust(17, "0")
|
238
238
|
end
|
239
|
-
it "se o
|
240
|
-
subject.expects(:
|
239
|
+
it "se o tipo_cobranca_formatada não for caucionada, então não deve somar o valor_documento dos pagamentos do lote" do
|
240
|
+
subject.expects(:tipo_cobranca_formatada).returns(:simples)
|
241
241
|
subject.complemento_trailer_lote_posicao_076_a_092(lote).must_equal "".rjust(17, "0")
|
242
242
|
end
|
243
243
|
end
|
@@ -310,38 +310,38 @@ describe BrBoleto::Remessa::Cnab240::Sicoob do
|
|
310
310
|
end
|
311
311
|
end
|
312
312
|
|
313
|
-
describe "#
|
313
|
+
describe "#tipo_cobranca_formatada" do
|
314
314
|
it "deve ser :simples se modalidade_carteira for 01" do
|
315
315
|
subject.modalidade_carteira = '01'
|
316
|
-
subject.
|
316
|
+
subject.tipo_cobranca_formatada.must_equal :simples
|
317
317
|
end
|
318
318
|
it "deve ser :simples se modalidade_carteira for 1" do
|
319
319
|
subject.modalidade_carteira = 1
|
320
|
-
subject.
|
320
|
+
subject.tipo_cobranca_formatada.must_equal :simples
|
321
321
|
end
|
322
322
|
it "deve ser :simples se modalidade_carteira for 02" do
|
323
323
|
subject.modalidade_carteira = '02'
|
324
|
-
subject.
|
324
|
+
subject.tipo_cobranca_formatada.must_equal :simples
|
325
325
|
end
|
326
326
|
it "deve ser :simples se modalidade_carteira for 2" do
|
327
327
|
subject.modalidade_carteira = 2
|
328
|
-
subject.
|
328
|
+
subject.tipo_cobranca_formatada.must_equal :simples
|
329
329
|
end
|
330
330
|
it "deve ser :caucionada se modalidade_carteira for 03" do
|
331
331
|
subject.modalidade_carteira = '03'
|
332
|
-
subject.
|
332
|
+
subject.tipo_cobranca_formatada.must_equal :caucionada
|
333
333
|
end
|
334
334
|
it "deve ser :caucionada se modalidade_carteira for 3" do
|
335
335
|
subject.modalidade_carteira = 3
|
336
|
-
subject.
|
336
|
+
subject.tipo_cobranca_formatada.must_equal :caucionada
|
337
337
|
end
|
338
338
|
it "deve ser nil se modalidade_carteira for outro numero" do
|
339
339
|
subject.modalidade_carteira = 4
|
340
|
-
subject.
|
340
|
+
subject.tipo_cobranca_formatada.must_be_nil
|
341
341
|
end
|
342
342
|
it "deve ser nil se modalidade_carteira for nil" do
|
343
343
|
subject.modalidade_carteira = nil
|
344
|
-
subject.
|
344
|
+
subject.tipo_cobranca_formatada.must_be_nil
|
345
345
|
end
|
346
346
|
end
|
347
347
|
end
|
@@ -2,8 +2,18 @@
|
|
2
2
|
require 'test_helper'
|
3
3
|
|
4
4
|
describe BrBoleto::Remessa::Pagamento do
|
5
|
+
|
6
|
+
class Shoulda::Matchers::ActiveModel::ValidateLengthOfMatcher
|
7
|
+
# Sobrescrevo o método que gera a string para validar o tamanho
|
8
|
+
# Pois o CEP só aceita números
|
9
|
+
def string_of_length(length)
|
10
|
+
'8' * length
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
5
14
|
subject { FactoryGirl.build(:remessa_pagamento) }
|
6
15
|
|
16
|
+
|
7
17
|
describe "validations" do
|
8
18
|
it { must validate_presence_of(:nosso_numero) }
|
9
19
|
it { must validate_presence_of(:data_vencimento) }
|
@@ -83,8 +93,8 @@ describe BrBoleto::Remessa::Pagamento do
|
|
83
93
|
|
84
94
|
describe "#assign_attributes" do
|
85
95
|
it "posso setar varios atributos" do
|
86
|
-
subject.assign_attributes({cep_sacado: "
|
87
|
-
subject.cep_sacado.must_equal '
|
96
|
+
subject.assign_attributes({cep_sacado: "89809-360", cidade_sacado: "Valor", uf_sacado: "OK"})
|
97
|
+
subject.cep_sacado.must_equal '89809360'
|
88
98
|
subject.cidade_sacado.must_equal 'Valor'
|
89
99
|
subject.uf_sacado.must_equal 'OK'
|
90
100
|
end
|
@@ -0,0 +1,217 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require 'pry'
|
4
|
+
describe BrBoleto::Retorno::Cnab240::Base do
|
5
|
+
subject { BrBoleto::Retorno::Cnab240::Base.new(file) }
|
6
|
+
let(:file) { File.join(BrBoleto.root, "test", "files", "retorno", "cnab240", "padrao240.ret") }
|
7
|
+
|
8
|
+
it "Deve ler o código do banco" do
|
9
|
+
subject.codigo_banco.must_equal '756'
|
10
|
+
end
|
11
|
+
|
12
|
+
it "Deve carregar 5 pagamentos" do
|
13
|
+
subject.pagamentos.size.must_equal 5
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "deve setar as informações corretas para os pagamentos" do
|
17
|
+
it "valores para o pagamento 1" do
|
18
|
+
pagamento = subject.pagamentos[0]
|
19
|
+
pagamento.modalidade.must_equal nil
|
20
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
21
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
22
|
+
pagamento.numero_conta_com_dv.must_equal "0000000777778"
|
23
|
+
pagamento.numero_conta_sem_dv.must_equal "000000077777"
|
24
|
+
pagamento.dv_conta_e_agencia.must_equal "0"
|
25
|
+
pagamento.nosso_numero.must_equal "000000033001014"
|
26
|
+
pagamento.carteira.must_equal "1"
|
27
|
+
pagamento.numero_codumento.must_equal "000000000000330"
|
28
|
+
pagamento.data_vencimento.must_equal Date.parse('03/05/2016')
|
29
|
+
pagamento.valor_titulo.must_equal 129.39
|
30
|
+
pagamento.banco_recebedor.must_equal "756"
|
31
|
+
pagamento.agencia_recebedora_com_dv.must_equal "030690"
|
32
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
33
|
+
pagamento.codigo_moeda.must_equal "09"
|
34
|
+
pagamento.sacado_tipo_documento.must_equal "2"
|
35
|
+
pagamento.sacado_documento.must_equal "111111111111111"
|
36
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 1"
|
37
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
38
|
+
pagamento.valor_tarifa.must_equal 2.69
|
39
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
40
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
41
|
+
pagamento.valor_desconto.must_equal 0.0
|
42
|
+
pagamento.valor_abatimento.must_equal 0.0
|
43
|
+
pagamento.valor_iof.must_equal 0.0
|
44
|
+
pagamento.valor_pago.must_equal 129.39
|
45
|
+
pagamento.valor_liquido.must_equal 129.39
|
46
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
47
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
48
|
+
pagamento.data_ocorrencia.must_equal Date.parse('02/05/2016')
|
49
|
+
pagamento.data_credito.must_equal Date.parse('03/05/2016')
|
50
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
51
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
52
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
53
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
54
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
|
55
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
56
|
+
end
|
57
|
+
it "valores para o pagamento 2" do
|
58
|
+
pagamento = subject.pagamentos[1]
|
59
|
+
pagamento.modalidade.must_equal nil
|
60
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
61
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
62
|
+
pagamento.numero_conta_com_dv.must_equal "0000000777778"
|
63
|
+
pagamento.numero_conta_sem_dv.must_equal "000000077777"
|
64
|
+
pagamento.dv_conta_e_agencia.must_equal "0"
|
65
|
+
pagamento.nosso_numero.must_equal "000000034801024"
|
66
|
+
pagamento.carteira.must_equal "1"
|
67
|
+
pagamento.numero_codumento.must_equal "000000000000348"
|
68
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
69
|
+
pagamento.valor_titulo.must_equal 29.0
|
70
|
+
pagamento.banco_recebedor.must_equal "756"
|
71
|
+
pagamento.agencia_recebedora_com_dv.must_equal "030690"
|
72
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
73
|
+
pagamento.codigo_moeda.must_equal "09"
|
74
|
+
pagamento.sacado_tipo_documento.must_equal "2"
|
75
|
+
pagamento.sacado_documento.must_equal "222222222222222"
|
76
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 2"
|
77
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
78
|
+
pagamento.valor_tarifa.must_equal 2.69
|
79
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
80
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
81
|
+
pagamento.valor_desconto.must_equal 0.0
|
82
|
+
pagamento.valor_abatimento.must_equal 0.0
|
83
|
+
pagamento.valor_iof.must_equal 0.0
|
84
|
+
pagamento.valor_pago.must_equal 29.0
|
85
|
+
pagamento.valor_liquido.must_equal 29.0
|
86
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
87
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
88
|
+
pagamento.data_ocorrencia.must_equal Date.parse('05/05/2016')
|
89
|
+
pagamento.data_credito.must_equal Date.parse('06/05/2016')
|
90
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
91
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
92
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
93
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
94
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "304"
|
95
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
96
|
+
end
|
97
|
+
it "valores para o pagamento 3" do
|
98
|
+
pagamento = subject.pagamentos[2]
|
99
|
+
pagamento.modalidade.must_equal nil
|
100
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
101
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
102
|
+
pagamento.numero_conta_com_dv.must_equal "0000000777778"
|
103
|
+
pagamento.numero_conta_sem_dv.must_equal "000000077777"
|
104
|
+
pagamento.dv_conta_e_agencia.must_equal "0"
|
105
|
+
pagamento.nosso_numero.must_equal "000000035501014"
|
106
|
+
pagamento.carteira.must_equal "1"
|
107
|
+
pagamento.numero_codumento.must_equal "000000000000355"
|
108
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
109
|
+
pagamento.valor_titulo.must_equal 89.1
|
110
|
+
pagamento.banco_recebedor.must_equal "756"
|
111
|
+
pagamento.agencia_recebedora_com_dv.must_equal "030690"
|
112
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
113
|
+
pagamento.codigo_moeda.must_equal "09"
|
114
|
+
pagamento.sacado_tipo_documento.must_equal "2"
|
115
|
+
pagamento.sacado_documento.must_equal "333333333333333"
|
116
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 3"
|
117
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
118
|
+
pagamento.valor_tarifa.must_equal 2.69
|
119
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
120
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
121
|
+
pagamento.valor_desconto.must_equal 0.0
|
122
|
+
pagamento.valor_abatimento.must_equal 0.0
|
123
|
+
pagamento.valor_iof.must_equal 0.0
|
124
|
+
pagamento.valor_pago.must_equal 89.1
|
125
|
+
pagamento.valor_liquido.must_equal 89.1
|
126
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
127
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
128
|
+
pagamento.data_ocorrencia.must_equal Date.parse('05/05/2016')
|
129
|
+
pagamento.data_credito.must_equal Date.parse('06/05/2016')
|
130
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
131
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
132
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
133
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
134
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "100"
|
135
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
136
|
+
end
|
137
|
+
it "valores para o pagamento 4" do
|
138
|
+
pagamento = subject.pagamentos[3]
|
139
|
+
pagamento.modalidade.must_equal nil
|
140
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
141
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
142
|
+
pagamento.numero_conta_com_dv.must_equal "0000000777778"
|
143
|
+
pagamento.numero_conta_sem_dv.must_equal "000000077777"
|
144
|
+
pagamento.dv_conta_e_agencia.must_equal "0"
|
145
|
+
pagamento.nosso_numero.must_equal "000000036201014"
|
146
|
+
pagamento.carteira.must_equal "1"
|
147
|
+
pagamento.numero_codumento.must_equal "000000000000362"
|
148
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
149
|
+
pagamento.valor_titulo.must_equal 29.0
|
150
|
+
pagamento.banco_recebedor.must_equal "104"
|
151
|
+
pagamento.agencia_recebedora_com_dv.must_equal "004140"
|
152
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
153
|
+
pagamento.codigo_moeda.must_equal "09"
|
154
|
+
pagamento.sacado_tipo_documento.must_equal "1"
|
155
|
+
pagamento.sacado_documento.must_equal "444444444444444"
|
156
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 4"
|
157
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
158
|
+
pagamento.valor_tarifa.must_equal 2.69
|
159
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
160
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
161
|
+
pagamento.valor_desconto.must_equal 0.0
|
162
|
+
pagamento.valor_abatimento.must_equal 0.0
|
163
|
+
pagamento.valor_iof.must_equal 0.0
|
164
|
+
pagamento.valor_pago.must_equal 29.0
|
165
|
+
pagamento.valor_liquido.must_equal 29.0
|
166
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
167
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
168
|
+
pagamento.data_ocorrencia.must_equal Date.parse('06/05/2016')
|
169
|
+
pagamento.data_credito.must_equal nil
|
170
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
171
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
172
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
173
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
174
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
|
175
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
176
|
+
end
|
177
|
+
it "valores para o pagamento 4" do
|
178
|
+
pagamento = subject.pagamentos[4]
|
179
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
180
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
181
|
+
pagamento.numero_conta_com_dv.must_equal "0000000777778"
|
182
|
+
pagamento.numero_conta_sem_dv.must_equal "000000077777"
|
183
|
+
pagamento.dv_conta_e_agencia.must_equal "0"
|
184
|
+
pagamento.nosso_numero.must_equal "000000036201014"
|
185
|
+
pagamento.carteira.must_equal "1"
|
186
|
+
pagamento.numero_codumento.must_equal "000000000000362"
|
187
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
188
|
+
pagamento.valor_titulo.must_equal 47.37
|
189
|
+
pagamento.banco_recebedor.must_equal "104"
|
190
|
+
pagamento.agencia_recebedora_com_dv.must_equal "004140"
|
191
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
192
|
+
pagamento.codigo_moeda.must_equal "09"
|
193
|
+
pagamento.sacado_tipo_documento.must_equal "1"
|
194
|
+
pagamento.sacado_documento.must_equal "555555555555555"
|
195
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 5"
|
196
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
197
|
+
pagamento.valor_tarifa.must_equal 2.69
|
198
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
199
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
200
|
+
pagamento.valor_desconto.must_equal 0.0
|
201
|
+
pagamento.valor_abatimento.must_equal 0.0
|
202
|
+
pagamento.valor_iof.must_equal 0.0
|
203
|
+
pagamento.valor_pago.must_equal 47.37
|
204
|
+
pagamento.valor_liquido.must_equal 47.37
|
205
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
206
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
207
|
+
pagamento.data_ocorrencia.must_equal Date.parse('06/05/2016')
|
208
|
+
pagamento.data_credito.must_equal nil
|
209
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
210
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
211
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
212
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
213
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
|
214
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
@@ -0,0 +1,217 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrBoleto::Retorno::Cnab240::Caixa do
|
4
|
+
subject { BrBoleto::Retorno::Cnab240::Caixa.new(file) }
|
5
|
+
let(:file) { File.join(BrBoleto.root, "test", "files", "retorno", "cnab240", "caixa.ret") }
|
6
|
+
|
7
|
+
it "Deve ler o código do banco" do
|
8
|
+
subject.codigo_banco.must_equal '104'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "Deve carregar 5 pagamentos" do
|
12
|
+
subject.pagamentos.size.must_equal 5
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "deve setar as informações corretas para os pagamentos" do
|
16
|
+
it "valores para o pagamento 1" do
|
17
|
+
pagamento = subject.pagamentos[0]
|
18
|
+
pagamento.modalidade.must_equal 'M1'
|
19
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
20
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
21
|
+
pagamento.numero_conta_com_dv.must_equal "CEDEN1"
|
22
|
+
pagamento.numero_conta_sem_dv.must_equal "CEDEN1"
|
23
|
+
pagamento.dv_conta_e_agencia.must_equal nil
|
24
|
+
pagamento.nosso_numero.must_equal "NOSSONUMERO0001"
|
25
|
+
pagamento.carteira.must_equal "X"
|
26
|
+
pagamento.numero_codumento.must_equal "NUMEROCOD01"
|
27
|
+
pagamento.data_vencimento.must_equal Date.parse('03/05/2016')
|
28
|
+
pagamento.valor_titulo.must_equal 129.39
|
29
|
+
pagamento.banco_recebedor.must_equal "104"
|
30
|
+
pagamento.agencia_recebedora_com_dv.must_equal "030690"
|
31
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
32
|
+
pagamento.codigo_moeda.must_equal "09"
|
33
|
+
pagamento.sacado_tipo_documento.must_equal "2"
|
34
|
+
pagamento.sacado_documento.must_equal "111111111111111"
|
35
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 1"
|
36
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
37
|
+
pagamento.valor_tarifa.must_equal 2.69
|
38
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
39
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
40
|
+
pagamento.valor_desconto.must_equal 0.0
|
41
|
+
pagamento.valor_abatimento.must_equal 0.0
|
42
|
+
pagamento.valor_iof.must_equal 0.0
|
43
|
+
pagamento.valor_pago.must_equal 129.39
|
44
|
+
pagamento.valor_liquido.must_equal 129.39
|
45
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
46
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
47
|
+
pagamento.data_ocorrencia.must_equal Date.parse('02/05/2016')
|
48
|
+
pagamento.data_credito.must_equal Date.parse('03/05/2016')
|
49
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
50
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
51
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
52
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
53
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "756"
|
54
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
55
|
+
end
|
56
|
+
it "valores para o pagamento 2" do
|
57
|
+
pagamento = subject.pagamentos[1]
|
58
|
+
pagamento.modalidade.must_equal 'M2'
|
59
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
60
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
61
|
+
pagamento.numero_conta_com_dv.must_equal "CEDEN2"
|
62
|
+
pagamento.numero_conta_sem_dv.must_equal "CEDEN2"
|
63
|
+
pagamento.dv_conta_e_agencia.must_equal nil
|
64
|
+
pagamento.nosso_numero.must_equal "NOSSONUMERO0002"
|
65
|
+
pagamento.carteira.must_equal "X"
|
66
|
+
pagamento.numero_codumento.must_equal "NUMEROCOD02"
|
67
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
68
|
+
pagamento.valor_titulo.must_equal 29.00
|
69
|
+
pagamento.banco_recebedor.must_equal "104"
|
70
|
+
pagamento.agencia_recebedora_com_dv.must_equal "030690"
|
71
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
72
|
+
pagamento.codigo_moeda.must_equal "09"
|
73
|
+
pagamento.sacado_tipo_documento.must_equal "2"
|
74
|
+
pagamento.sacado_documento.must_equal "222222222222222"
|
75
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 2"
|
76
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
77
|
+
pagamento.valor_tarifa.must_equal 2.69
|
78
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
79
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
80
|
+
pagamento.valor_desconto.must_equal 0.0
|
81
|
+
pagamento.valor_abatimento.must_equal 0.0
|
82
|
+
pagamento.valor_iof.must_equal 0.0
|
83
|
+
pagamento.valor_pago.must_equal 29.0
|
84
|
+
pagamento.valor_liquido.must_equal 29.0
|
85
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
86
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
87
|
+
pagamento.data_ocorrencia.must_equal Date.parse('05/05/2016')
|
88
|
+
pagamento.data_credito.must_equal Date.parse('06/05/2016')
|
89
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
90
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
91
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
92
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
93
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "304"
|
94
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
95
|
+
end
|
96
|
+
it "valores para o pagamento 3" do
|
97
|
+
pagamento = subject.pagamentos[2]
|
98
|
+
pagamento.modalidade.must_equal 'M3'
|
99
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
100
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
101
|
+
pagamento.numero_conta_com_dv.must_equal "CEDEN3"
|
102
|
+
pagamento.numero_conta_sem_dv.must_equal "CEDEN3"
|
103
|
+
pagamento.dv_conta_e_agencia.must_equal nil
|
104
|
+
pagamento.nosso_numero.must_equal "NOSSONUMERO0003"
|
105
|
+
pagamento.carteira.must_equal "X"
|
106
|
+
pagamento.numero_codumento.must_equal "NUMEROCOD03"
|
107
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
108
|
+
pagamento.valor_titulo.must_equal 89.1
|
109
|
+
pagamento.banco_recebedor.must_equal "104"
|
110
|
+
pagamento.agencia_recebedora_com_dv.must_equal "030690"
|
111
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
112
|
+
pagamento.codigo_moeda.must_equal "09"
|
113
|
+
pagamento.sacado_tipo_documento.must_equal "2"
|
114
|
+
pagamento.sacado_documento.must_equal "333333333333333"
|
115
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 3"
|
116
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
117
|
+
pagamento.valor_tarifa.must_equal 2.69
|
118
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
119
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
120
|
+
pagamento.valor_desconto.must_equal 0.0
|
121
|
+
pagamento.valor_abatimento.must_equal 0.0
|
122
|
+
pagamento.valor_iof.must_equal 0.0
|
123
|
+
pagamento.valor_pago.must_equal 89.1
|
124
|
+
pagamento.valor_liquido.must_equal 89.1
|
125
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
126
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
127
|
+
pagamento.data_ocorrencia.must_equal Date.parse('05/05/2016')
|
128
|
+
pagamento.data_credito.must_equal Date.parse('06/05/2016')
|
129
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
130
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
131
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
132
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
133
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "100"
|
134
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
135
|
+
end
|
136
|
+
it "valores para o pagamento 4" do
|
137
|
+
pagamento = subject.pagamentos[3]
|
138
|
+
pagamento.modalidade.must_equal 'M4'
|
139
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
140
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
141
|
+
pagamento.numero_conta_com_dv.must_equal "CEDEN4"
|
142
|
+
pagamento.numero_conta_sem_dv.must_equal "CEDEN4"
|
143
|
+
pagamento.dv_conta_e_agencia.must_equal nil
|
144
|
+
pagamento.nosso_numero.must_equal "NOSSONUMERO0004"
|
145
|
+
pagamento.carteira.must_equal "X"
|
146
|
+
pagamento.numero_codumento.must_equal "NUMEROCOD04"
|
147
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
148
|
+
pagamento.valor_titulo.must_equal 29.0
|
149
|
+
pagamento.banco_recebedor.must_equal "104"
|
150
|
+
pagamento.agencia_recebedora_com_dv.must_equal "004140"
|
151
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
152
|
+
pagamento.codigo_moeda.must_equal "09"
|
153
|
+
pagamento.sacado_tipo_documento.must_equal "1"
|
154
|
+
pagamento.sacado_documento.must_equal "444444444444444"
|
155
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 4"
|
156
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
157
|
+
pagamento.valor_tarifa.must_equal 2.69
|
158
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
159
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
160
|
+
pagamento.valor_desconto.must_equal 0.0
|
161
|
+
pagamento.valor_abatimento.must_equal 0.0
|
162
|
+
pagamento.valor_iof.must_equal 0.0
|
163
|
+
pagamento.valor_pago.must_equal 29.0
|
164
|
+
pagamento.valor_liquido.must_equal 29.0
|
165
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
166
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
167
|
+
pagamento.data_ocorrencia.must_equal Date.parse('06/05/2016')
|
168
|
+
pagamento.data_credito.must_equal nil
|
169
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
170
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
171
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
172
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
173
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "104"
|
174
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
175
|
+
end
|
176
|
+
it "valores para o pagamento 5" do
|
177
|
+
pagamento = subject.pagamentos[4]
|
178
|
+
pagamento.modalidade.must_equal 'M5'
|
179
|
+
pagamento.agencia_com_dv.must_equal "030690"
|
180
|
+
pagamento.agencia_sem_dv.must_equal "03069"
|
181
|
+
pagamento.numero_conta_com_dv.must_equal "CEDEN5"
|
182
|
+
pagamento.numero_conta_sem_dv.must_equal "CEDEN5"
|
183
|
+
pagamento.dv_conta_e_agencia.must_equal nil
|
184
|
+
pagamento.nosso_numero.must_equal "NOSSONUMERO0005"
|
185
|
+
pagamento.carteira.must_equal "X"
|
186
|
+
pagamento.numero_codumento.must_equal "NUMEROCOD05"
|
187
|
+
pagamento.data_vencimento.must_equal Date.parse('06/05/2016')
|
188
|
+
pagamento.valor_titulo.must_equal 47.37
|
189
|
+
pagamento.banco_recebedor.must_equal "104"
|
190
|
+
pagamento.agencia_recebedora_com_dv.must_equal "004140"
|
191
|
+
pagamento.identificacao_titulo_empresa.must_equal ""
|
192
|
+
pagamento.codigo_moeda.must_equal "09"
|
193
|
+
pagamento.sacado_tipo_documento.must_equal "1"
|
194
|
+
pagamento.sacado_documento.must_equal "555555555555555"
|
195
|
+
pagamento.sacado_nome.must_equal "NOME DO CLIENTE 5"
|
196
|
+
pagamento.numero_contrato.must_equal "0000000000"
|
197
|
+
pagamento.valor_tarifa.must_equal 2.69
|
198
|
+
pagamento.motivo_ocorrencia.must_equal "0000000004"
|
199
|
+
pagamento.valor_juros_multa.must_equal 0.0
|
200
|
+
pagamento.valor_desconto.must_equal 0.0
|
201
|
+
pagamento.valor_abatimento.must_equal 0.0
|
202
|
+
pagamento.valor_iof.must_equal 0.0
|
203
|
+
pagamento.valor_pago.must_equal 47.37
|
204
|
+
pagamento.valor_liquido.must_equal 47.37
|
205
|
+
pagamento.valor_coutras_despesas.must_equal 0.0
|
206
|
+
pagamento.valor_coutros_creditos.must_equal 0.0
|
207
|
+
pagamento.data_ocorrencia.must_equal Date.parse('06/05/2016')
|
208
|
+
pagamento.data_credito.must_equal nil
|
209
|
+
pagamento.codigo_ocorrencia_sacado.must_equal ""
|
210
|
+
pagamento.data_ocorrencia_sacado.must_equal nil
|
211
|
+
pagamento.valor_ocorrencia_sacado.must_equal 0.0
|
212
|
+
pagamento.complemento_ocorrencia_sacado.must_equal ""
|
213
|
+
pagamento.codigo_ocorrencia_banco_correspondente.must_equal "104"
|
214
|
+
pagamento.nosso_numero_banco_correspondente.must_equal ""
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|