brcobranca 9.2.1 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -6
  3. data/HISTORY.md +71 -0
  4. data/README.md +47 -53
  5. data/Rakefile +4 -4
  6. data/lib/brcobranca/arquivos/logos/ailos.eps +412 -0
  7. data/lib/brcobranca/arquivos/logos/ailos_carne.eps +412 -0
  8. data/lib/brcobranca/arquivos/logos/citibank.eps +745 -0
  9. data/lib/brcobranca/arquivos/logos/citibank_carne.eps +745 -0
  10. data/lib/brcobranca/arquivos/logos/safra.eps +0 -0
  11. data/lib/brcobranca/arquivos/logos/safra_carne.eps +0 -0
  12. data/lib/brcobranca/boleto/{cecred.rb → ailos.rb} +7 -5
  13. data/lib/brcobranca/boleto/banco_brasil.rb +9 -5
  14. data/lib/brcobranca/boleto/banco_brasilia.rb +5 -5
  15. data/lib/brcobranca/boleto/banco_nordeste.rb +4 -3
  16. data/lib/brcobranca/boleto/banestes.rb +4 -3
  17. data/lib/brcobranca/boleto/banrisul.rb +4 -3
  18. data/lib/brcobranca/boleto/base.rb +12 -7
  19. data/lib/brcobranca/boleto/bradesco.rb +4 -3
  20. data/lib/brcobranca/boleto/caixa.rb +10 -8
  21. data/lib/brcobranca/boleto/citibank.rb +97 -0
  22. data/lib/brcobranca/boleto/credisis.rb +6 -4
  23. data/lib/brcobranca/boleto/hsbc.rb +8 -6
  24. data/lib/brcobranca/boleto/itau.rb +5 -5
  25. data/lib/brcobranca/boleto/safra.rb +6 -6
  26. data/lib/brcobranca/boleto/santander.rb +4 -2
  27. data/lib/brcobranca/boleto/sicoob.rb +4 -3
  28. data/lib/brcobranca/boleto/sicredi.rb +6 -3
  29. data/lib/brcobranca/boleto/template/base.rb +2 -3
  30. data/lib/brcobranca/boleto/template/rghost.rb +18 -13
  31. data/lib/brcobranca/boleto/template/rghost_carne.rb +18 -12
  32. data/lib/brcobranca/boleto/unicred.rb +61 -103
  33. data/lib/brcobranca/calculo.rb +14 -9
  34. data/lib/brcobranca/calculo_data.rb +6 -5
  35. data/lib/brcobranca/currency.rb +10 -10
  36. data/lib/brcobranca/formatacao.rb +2 -1
  37. data/lib/brcobranca/formatacao_string.rb +11 -9
  38. data/lib/brcobranca/limpeza.rb +3 -3
  39. data/lib/brcobranca/remessa/base.rb +7 -10
  40. data/lib/brcobranca/remessa/cnab240/{cecred.rb → ailos.rb} +18 -15
  41. data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +14 -11
  42. data/lib/brcobranca/remessa/cnab240/base.rb +56 -39
  43. data/lib/brcobranca/remessa/cnab240/base_correspondente.rb +25 -17
  44. data/lib/brcobranca/remessa/cnab240/caixa.rb +21 -13
  45. data/lib/brcobranca/remessa/cnab240/sicoob.rb +33 -30
  46. data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +14 -7
  47. data/lib/brcobranca/remessa/cnab240/sicredi.rb +28 -22
  48. data/lib/brcobranca/remessa/cnab240/unicred.rb +2 -1
  49. data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +9 -9
  50. data/lib/brcobranca/remessa/cnab400/banco_brasilia.rb +29 -28
  51. data/lib/brcobranca/remessa/cnab400/banco_nordeste.rb +11 -10
  52. data/lib/brcobranca/remessa/cnab400/banrisul.rb +13 -10
  53. data/lib/brcobranca/remessa/cnab400/base.rb +22 -9
  54. data/lib/brcobranca/remessa/cnab400/bradesco.rb +30 -5
  55. data/lib/brcobranca/remessa/cnab400/citibank.rb +6 -5
  56. data/lib/brcobranca/remessa/cnab400/credisis.rb +7 -5
  57. data/lib/brcobranca/remessa/cnab400/itau.rb +9 -6
  58. data/lib/brcobranca/remessa/cnab400/santander.rb +17 -15
  59. data/lib/brcobranca/remessa/cnab400/sicoob.rb +8 -11
  60. data/lib/brcobranca/remessa/cnab400/unicred.rb +185 -69
  61. data/lib/brcobranca/remessa/pagamento.rb +43 -11
  62. data/lib/brcobranca/retorno/base.rb +5 -43
  63. data/lib/brcobranca/retorno/cnab240/{cecred.rb → ailos.rb} +12 -10
  64. data/lib/brcobranca/retorno/cnab240/base.rb +8 -9
  65. data/lib/brcobranca/retorno/cnab240/caixa.rb +4 -5
  66. data/lib/brcobranca/retorno/cnab240/santander.rb +12 -8
  67. data/lib/brcobranca/retorno/cnab240/sicoob.rb +11 -9
  68. data/lib/brcobranca/retorno/cnab240/sicredi.rb +12 -9
  69. data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +3 -3
  70. data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +2 -1
  71. data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +2 -1
  72. data/lib/brcobranca/retorno/cnab400/banrisul.rb +1 -1
  73. data/lib/brcobranca/retorno/cnab400/base.rb +13 -12
  74. data/lib/brcobranca/retorno/cnab400/bradesco.rb +4 -4
  75. data/lib/brcobranca/retorno/cnab400/credisis.rb +2 -1
  76. data/lib/brcobranca/retorno/cnab400/itau.rb +6 -5
  77. data/lib/brcobranca/retorno/cnab400/santander.rb +8 -7
  78. data/lib/brcobranca/retorno/cnab400/unicred.rb +63 -58
  79. data/lib/brcobranca/retorno/retorno_cbr643.rb +1 -2
  80. data/lib/brcobranca/retorno/retorno_cnab240.rb +11 -9
  81. data/lib/brcobranca/retorno/retorno_cnab400.rb +6 -5
  82. data/lib/brcobranca/util/date.rb +2 -1
  83. data/lib/brcobranca/util/empresa.rb +2 -1
  84. data/lib/brcobranca/util/errors.rb +31 -31
  85. data/lib/brcobranca/validations.rb +127 -151
  86. data/lib/brcobranca/version.rb +2 -3
  87. data/lib/brcobranca.rb +6 -5
  88. data/spec/brcobranca/base_spec.rb +20 -11
  89. data/spec/brcobranca/boleto/{cecred_spec.rb → ailos_spec.rb} +13 -12
  90. data/spec/brcobranca/boleto/banco_brasil_spec.rb +14 -12
  91. data/spec/brcobranca/boleto/banco_brasilia_spec.rb +11 -10
  92. data/spec/brcobranca/boleto/banco_nordeste_spec.rb +2 -3
  93. data/spec/brcobranca/boleto/banestes_spec.rb +10 -11
  94. data/spec/brcobranca/boleto/banrisul_spec.rb +10 -12
  95. data/spec/brcobranca/boleto/bradesco_spec.rb +36 -33
  96. data/spec/brcobranca/boleto/caixa_spec.rb +11 -12
  97. data/spec/brcobranca/boleto/citibank_spec.rb +195 -0
  98. data/spec/brcobranca/boleto/credisis_spec.rb +18 -17
  99. data/spec/brcobranca/boleto/hsbc_spec.rb +9 -10
  100. data/spec/brcobranca/boleto/itau_spec.rb +11 -12
  101. data/spec/brcobranca/boleto/safra_spec.rb +13 -14
  102. data/spec/brcobranca/boleto/santander_spec.rb +9 -10
  103. data/spec/brcobranca/boleto/sicoob_spec.rb +10 -11
  104. data/spec/brcobranca/boleto/sicredi_spec.rb +14 -10
  105. data/spec/brcobranca/boleto/unicred_spec.rb +28 -38
  106. data/spec/brcobranca/boletos_em_lote_spec.rb +7 -7
  107. data/spec/brcobranca/calculo_data_spec.rb +2 -2
  108. data/spec/brcobranca/calculo_spec.rb +13 -11
  109. data/spec/brcobranca/currency_spec.rb +26 -26
  110. data/spec/brcobranca/formatacao_spec.rb +2 -2
  111. data/spec/brcobranca/formatacao_string_spec.rb +10 -3
  112. data/spec/brcobranca/limpeza_spec.rb +2 -2
  113. data/spec/brcobranca/remessa/base_spec.rb +3 -4
  114. data/spec/brcobranca/remessa/cnab240/{cecred_spec.rb → ailos_spec.rb} +48 -47
  115. data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +18 -13
  116. data/spec/brcobranca/remessa/cnab240/base_spec.rb +35 -12
  117. data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +19 -17
  118. data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +14 -10
  119. data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +30 -28
  120. data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +14 -12
  121. data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +13 -11
  122. data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +8 -5
  123. data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +24 -19
  124. data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +19 -14
  125. data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +17 -15
  126. data/spec/brcobranca/remessa/cnab400/base_spec.rb +27 -12
  127. data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +19 -17
  128. data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +14 -12
  129. data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +21 -19
  130. data/spec/brcobranca/remessa/cnab400/itau_spec.rb +18 -16
  131. data/spec/brcobranca/remessa/cnab400/santander_spec.rb +24 -22
  132. data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +22 -22
  133. data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +167 -166
  134. data/spec/brcobranca/remessa/pagamento_spec.rb +16 -15
  135. data/spec/brcobranca/retorno/cnab240/base_spec.rb +10 -9
  136. data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +4 -2
  137. data/spec/brcobranca/retorno/cnab240/santander_spec.rb +2 -0
  138. data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +2 -0
  139. data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +2 -0
  140. data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +2 -1
  141. data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +2 -1
  142. data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +2 -1
  143. data/spec/brcobranca/retorno/cnab400/base_spec.rb +25 -25
  144. data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +2 -1
  145. data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +5 -4
  146. data/spec/brcobranca/retorno/cnab400/itau_spec.rb +4 -2
  147. data/spec/brcobranca/retorno/cnab400/santander_spec.rb +2 -1
  148. data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +28 -32
  149. data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +2 -2
  150. data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +2 -1
  151. data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +2 -1
  152. data/spec/brcobranca/rghost_spec.rb +4 -4
  153. data/spec/brcobranca/util/empresa_spec.rb +1 -2
  154. data/spec/brcobranca_spec.rb +1 -2
  155. metadata +90 -162
  156. data/spec/arquivos/CBR64310.RET +0 -28
  157. data/spec/arquivos/CNAB240.RET +0 -74
  158. data/spec/arquivos/CNAB240CECRED.RET +0 -10
  159. data/spec/arquivos/CNAB240SANTANDER.RET +0 -8
  160. data/spec/arquivos/CNAB240SICOOB.RET +0 -10
  161. data/spec/arquivos/CNAB240SICREDI.CRT +0 -8
  162. data/spec/arquivos/CNAB400.RET +0 -54
  163. data/spec/arquivos/CNAB400BANCOBRASILIA.RET +0 -3
  164. data/spec/arquivos/CNAB400BANCONORDESTE.RET +0 -3
  165. data/spec/arquivos/CNAB400BANRISUL.RET +0 -3
  166. data/spec/arquivos/CNAB400BRADESCO.RET +0 -8
  167. data/spec/arquivos/CNAB400CREDISIS.RET +0 -3
  168. data/spec/arquivos/CNAB400ITAU.RET +0 -54
  169. data/spec/arquivos/CNAB400SANTANDER.RET +0 -54
  170. data/spec/arquivos/CNAB400UNICRED.RET +0 -3
  171. data/spec/fixtures/remessa/remessa-banco-brasil-cnab400.rem +0 -3
  172. data/spec/fixtures/remessa/remessa-banco-brasilia-cnab400.rem +0 -3
  173. data/spec/fixtures/remessa/remessa-banco-nordeste-cnab400.rem +0 -3
  174. data/spec/fixtures/remessa/remessa-banco_brasil-cnab240.rem +0 -7
  175. data/spec/fixtures/remessa/remessa-bancoob-cnab240.rem +0 -7
  176. data/spec/fixtures/remessa/remessa-banrisul-cnab400.rem +0 -3
  177. data/spec/fixtures/remessa/remessa-bradesco-cnab400.rem +0 -3
  178. data/spec/fixtures/remessa/remessa-caixa-cnab240.rem +0 -7
  179. data/spec/fixtures/remessa/remessa-cecred-cnab240.rem +0 -7
  180. data/spec/fixtures/remessa/remessa-citibank-cnab400.rem +0 -3
  181. data/spec/fixtures/remessa/remessa-credisis-cnab400.rem +0 -3
  182. data/spec/fixtures/remessa/remessa-itau-cnab400.rem +0 -4
  183. data/spec/fixtures/remessa/remessa-santander-cnab400.rem +0 -3
  184. data/spec/fixtures/remessa/remessa-sicoob-cnab400.rem +0 -3
  185. data/spec/fixtures/remessa/remessa-sicoob-correspondente-bb-cnab240.rem +0 -4
  186. data/spec/fixtures/remessa/remessa-sicredi-cnab240.rem +0 -7
  187. data/spec/fixtures/remessa/remessa-unicred-cnab240.rem +0 -7
  188. data/spec/fixtures/remessa/remessa-unicred-cnab400.rem +0 -3
  189. data/spec/spec.opts +0 -8
  190. data/spec/spec_helper.rb +0 -38
  191. data/spec/support/remessa_helpers.rb +0 -13
  192. data/spec/support/shared_examples/busca_logotipo.rb +0 -15
  193. data/spec/support/shared_examples/cnab240.rb +0 -259
  194. data/spec/support/shared_examples/cnab400.rb +0 -180
  195. data/spec/support/shared_examples/formatos_validos.rb +0 -36
@@ -1,185 +1,186 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Remessa::Cnab400::Unicred do
5
6
  let(:pagamento) do
6
7
  Brcobranca::Remessa::Pagamento.new(valor: 199.9,
7
- data_vencimento: Date.current,
8
- nosso_numero: '072000031',
9
- documento: 6969,
10
- documento_sacado: '12345678901',
11
- nome_sacado: 'PABLO DIEGO JOSÉ FRANCISCO DE PAULA JUAN NEPOMUCENO MARÍA DE LOS REMEDIOS CIPRIANO DE LA SANTÍSSIMA TRINIDAD RUIZ Y PICASSO',
12
- endereco_sacado: 'RUA RIO GRANDE DO SUL São paulo Minas caçapa da silva junior',
13
- bairro_sacado: 'São josé dos quatro apostolos magros',
14
- cep_sacado: '12345678',
15
- cidade_sacado: 'Santa rita de cássia maria da silva',
16
- uf_sacado: 'SP')
8
+ data_vencimento: Date.current,
9
+ nosso_numero: '72000031',
10
+ documento: '1/01',
11
+ documento_sacado: '12345678901',
12
+ nome_sacado: 'AKRETION LTDA',
13
+ endereco_sacado: 'AVENIDA PAULISTA 1',
14
+ bairro_sacado: 'CENTRO',
15
+ cep_sacado: '12345678',
16
+ cidade_sacado: 'SAO PAULO',
17
+ uf_sacado: 'SP')
17
18
  end
18
19
  let(:params) do
19
20
  {
20
- carteira: '03',
21
+ carteira: '21',
21
22
  agencia: '1234',
22
23
  conta_corrente: '12345',
23
24
  digito_conta: '1',
24
25
  empresa_mae: 'SOCIEDADE BRASILEIRA DE ZOOLOGIA LTDA',
25
26
  documento_cedente: '12345678910',
26
- codigo_transmissao: '12345678901234567890',
27
- byte_idt: '2',
27
+ codigo_beneficiario: '1234567890',
28
28
  pagamentos: [pagamento]
29
29
  }
30
30
  end
31
31
  let(:unicred) { subject.class.new(params) }
32
32
 
33
- context 'validacoes dos campos' do
34
- context '@agencia' do
35
- it 'deve ser invalido se nao possuir uma agencia' do
36
- object = subject.class.new(params.merge!(agencia: nil))
37
- expect(object.invalid?).to be true
38
- expect(object.errors.full_messages).to include('Agencia não pode estar em branco.')
39
- end
40
-
41
- it 'deve ser invalido se a agencia tiver mais de 4 digitos' do
42
- unicred.agencia = '12345'
43
- expect(unicred.invalid?).to be true
44
- expect(unicred.errors.full_messages).to include('Agencia deve ter 4 dígitos.')
45
- end
46
- end
47
-
48
- context '@digito_conta' do
49
- it 'deve ser invalido se nao possuir um digito da conta corrente' do
50
- objeto = subject.class.new(params.merge!(digito_conta: nil))
51
- expect(objeto.invalid?).to be true
52
- expect(objeto.errors.full_messages).to include('Digito conta não pode estar em branco.')
53
- end
54
-
55
- it 'deve ser inválido se o dígito da conta tiver mais de 1 dígito' do
56
- unicred.digito_conta = '12'
57
- expect(unicred.invalid?).to be true
58
- expect(unicred.errors.full_messages).to include('Digito conta deve ter 1 dígito.')
59
- end
60
- end
61
-
62
- context '@conta_corrente' do
63
- it 'deve ser invalido se nao possuir uma conta corrente' do
64
- object = subject.class.new(params.merge!(conta_corrente: nil))
65
- expect(object.invalid?).to be true
66
- expect(object.errors.full_messages).to include('Conta corrente não pode estar em branco.')
67
- end
68
-
69
- it 'deve ser invalido se a conta corrente tiver mais de 5 digitos' do
70
- unicred.conta_corrente = '123456'
71
-
72
- expect(unicred.invalid?).to be true
73
- expect(unicred.errors.full_messages).to include('Conta corrente deve ter 5 dígitos.')
74
- end
75
- end
76
-
77
- context '@carteira' do
78
- it 'deve ser inválido se não possuir uma carteira' do
79
- object = subject.class.new(params.merge!(carteira: nil))
80
- expect(object.invalid?).to be true
81
- expect(object.errors.full_messages).to include('Carteira não pode estar em branco.')
82
- end
83
-
84
- it 'deve ser inválido se a carteira tiver mais de 2 dígitos' do
85
- unicred.carteira = '123'
86
- expect(unicred.invalid?).to be true
87
- expect(unicred.errors.full_messages).to include('Carteira deve ter 2 dígitos.')
88
- end
89
- end
90
-
91
- context '@documento_cedente' do
92
- it 'deve ser inválido se não possuir o documento cedente' do
93
- object = subject.class.new(params.merge!(documento_cedente: nil))
94
- expect(object.invalid?).to be true
95
- expect(object.errors.full_messages).to include('Documento cedente não pode estar em branco.')
96
- end
97
-
98
- it 'deve ser invalido se o documento do cedente nao tiver entre 11 e 14 digitos' do
99
- unicred.documento_cedente = '123'
100
- expect(unicred.invalid?).to be true
101
- expect(unicred.errors.full_messages).to include('Documento cedente deve ter entre 11 e 14 dígitos.')
102
- end
103
- end
104
-
105
- context '@codigo_transmissao' do
106
- it 'deve ser inválido se não existir' do
107
- object = subject.class.new(params.merge!(codigo_transmissao: nil))
108
- expect(object.invalid?).to be true
109
- expect(object.errors.full_messages).to include('Codigo transmissao não pode estar em branco.')
110
- end
111
-
112
- it 'deve ser inválido quando não possuir até 20 dígitos' do
113
- object = subject.class.new(params.merge!(codigo_transmissao: '123456789012345678901'))
114
- expect(object.invalid?).to be true
115
- expect(object.errors.full_messages).to include('Codigo transmissao deve ter 20 dígitos.')
116
- end
117
- end
118
- end
119
-
120
- context 'formatacoes dos valores' do
121
- it 'cod_banco deve ser 748' do
122
- expect(unicred.cod_banco).to eq '748'
123
- end
124
-
125
- it 'nome_banco deve ser UNICRED com 15 posicoes' do
126
- nome_banco = unicred.nome_banco
127
- expect(nome_banco.size).to eq 15
128
- expect(nome_banco.strip).to eq 'UNICRED'
129
- end
130
-
131
- it 'complemento deve retornar 294 caracteres' do
132
- expect(unicred.complemento.size).to eq 294
133
- end
134
-
135
- it 'info_conta deve retornar com 20 posicoes as informacoes da conta' do
136
- info_conta = unicred.info_conta
137
- expect(info_conta.size).to eq 20
138
- expect(info_conta[0..19]).to eq '12345678901234567890'
139
- end
140
-
141
- it 'deve retornar o codigo da carteira de acordo com o tipo de emissão' do
142
- unicred.carteira = '03'
143
- expect(unicred.codigo_carteira).to eq '3'
144
-
145
- unicred.carteira = '09'
146
- expect(unicred.invalid?).to be true
147
- expect(unicred.errors.full_messages).to include('Carteira não existente para este banco.')
148
- end
149
- end
150
-
151
- context 'monta remessa' do
152
- it_behaves_like 'cnab400'
153
-
154
- context 'header' do
155
- it 'informacoes devem estar posicionadas corretamente no header' do
156
- header = unicred.monta_header
157
- expect(header[1]).to eq '1' # tipo operacao (1 = remessa)
158
- expect(header[2..8]).to eq 'REMESSA' # literal da operacao
159
- expect(header[26..45]).to eq unicred.info_conta # informacoes da conta
160
- expect(header[76..78]).to eq '748' # codigo do banco
161
- end
162
- end
163
-
164
- context 'detalhe' do
165
- it 'informacoes devem estar posicionadas corretamente no detalhe' do
166
- detalhe = unicred.monta_detalhe pagamento, 1
167
- expect(detalhe[37..61]).to eq "6969".ljust(25) # documento
168
- expect(detalhe[62..81]).to eq '072000031'.rjust(20, ' ') # nosso numero
169
- expect(detalhe[120..125]).to eq Date.current.strftime('%d%m%y') # data de vencimento
170
- expect(detalhe[126..138]).to eq '0000000019990' # valor do titulo
171
- expect(detalhe[142..145]).to eq '0000' # agência cobradora
172
- expect(detalhe[156..159]).to eq '0000' # instrução
173
- expect(detalhe[220..233]).to eq '00012345678901' # documento do pagador
174
- expect(detalhe[234..263]).to eq 'PABLO DIEGO JOSE FRANCISCO DE ' # nome do pagador
175
- end
176
- end
177
-
178
- context 'arquivo' do
179
- before { Timecop.freeze(Time.local(2015, 7, 14, 16, 15, 15)) }
180
- after { Timecop.return }
181
-
182
- it { expect(unicred.gera_arquivo).to eq(read_remessa('remessa-unicred-cnab400.rem', unicred.gera_arquivo)) }
183
- end
184
- end
33
+ # context 'validacoes dos campos' do
34
+ # context '@agencia' do
35
+ # it 'deve ser invalido se nao possuir uma agencia' do
36
+ # object = subject.class.new(params.merge!(agencia: nil))
37
+ # expect(object.invalid?).to be true
38
+ # expect(object.errors.full_messages).to include('Agencia não pode estar em branco.')
39
+ # end
40
+
41
+ # it 'deve ser invalido se a agencia tiver mais de 4 digitos' do
42
+ # unicred.agencia = '12345'
43
+ # expect(unicred.invalid?).to be true
44
+ # expect(unicred.errors.full_messages).to include('Agencia deve ter 4 dígitos.')
45
+ # end
46
+ # end
47
+
48
+ # context '@digito_conta' do
49
+ # it 'deve ser invalido se nao possuir um digito da conta corrente' do
50
+ # objeto = subject.class.new(params.merge!(digito_conta: nil))
51
+ # expect(objeto.invalid?).to be true
52
+ # expect(objeto.errors.full_messages).to include('Digito conta não pode estar em branco.')
53
+ # end
54
+
55
+ # it 'deve ser inválido se o dígito da conta tiver mais de 1 dígito' do
56
+ # unicred.digito_conta = '12'
57
+ # expect(unicred.invalid?).to be true
58
+ # expect(unicred.errors.full_messages).to include('Digito conta deve ter 1 dígito.')
59
+ # end
60
+ # end
61
+
62
+ # context '@conta_corrente' do
63
+ # it 'deve ser invalido se nao possuir uma conta corrente' do
64
+ # object = subject.class.new(params.merge!(conta_corrente: nil))
65
+ # expect(object.invalid?).to be true
66
+ # expect(object.errors.full_messages).to include('Conta corrente não pode estar em branco.')
67
+ # end
68
+
69
+ # it 'deve ser invalido se a conta corrente tiver mais de 5 digitos' do
70
+ # unicred.conta_corrente = '123456'
71
+
72
+ # expect(unicred.invalid?).to be true
73
+ # expect(unicred.errors.full_messages).to include('Conta corrente deve ter 5 dígitos.')
74
+ # end
75
+ # end
76
+
77
+ # context '@carteira' do
78
+ # it 'deve ser inválido se não possuir uma carteira' do
79
+ # object = subject.class.new(params.merge!(carteira: nil))
80
+ # expect(object.invalid?).to be true
81
+ # expect(object.errors.full_messages).to include('Carteira não pode estar em branco.')
82
+ # end
83
+
84
+ # it 'deve ser inválido se a carteira tiver mais de 2 dígitos' do
85
+ # unicred.carteira = '123'
86
+ # expect(unicred.invalid?).to be true
87
+ # expect(unicred.errors.full_messages).to include('Carteira deve ter 2 dígitos.')
88
+ # end
89
+ # end
90
+
91
+ # context '@documento_cedente' do
92
+ # it 'deve ser inválido se não possuir o documento cedente' do
93
+ # object = subject.class.new(params.merge!(documento_cedente: nil))
94
+ # expect(object.invalid?).to be true
95
+ # expect(object.errors.full_messages).to include('Documento cedente não pode estar em branco.')
96
+ # end
97
+
98
+ # it 'deve ser invalido se o documento do cedente nao tiver entre 11 e 14 digitos' do
99
+ # unicred.documento_cedente = '123'
100
+ # expect(unicred.invalid?).to be true
101
+ # expect(unicred.errors.full_messages).to include('Documento cedente deve ter entre 11 e 14 dígitos.')
102
+ # end
103
+ # end
104
+
105
+ # context '@codigo_beneficiario' do
106
+ # it 'deve ser inválido se não existir' do
107
+ # object = subject.class.new(params.merge!(codigo_beneficiario: nil))
108
+ # expect(object.invalid?).to be true
109
+ # expect(object.errors.full_messages).to include('Codigo beneficiario não pode estar em branco.')
110
+ # end
111
+
112
+ # it 'deve ser inválido quando maior que 10 dígitos' do
113
+ # object = subject.class.new(params.merge!(codigo_beneficiario: '12345678901'))
114
+ # expect(object.invalid?).to be true
115
+ # expect(object.errors.full_messages).to include('Codigo Beneficiario não deve ter mais que 10 dígitos.')
116
+ # end
117
+ # end
118
+ # end
119
+
120
+ # context 'formatacoes dos valores' do
121
+ # it 'cod_banco deve ser 136' do
122
+ # expect(unicred.cod_banco).to eq '136'
123
+ # end
124
+
125
+ # it 'nome_banco deve ser UNICRED com 15 posicoes' do
126
+ # nome_banco = unicred.nome_banco
127
+ # expect(nome_banco.size).to eq 15
128
+ # expect(nome_banco.strip).to eq 'UNICRED'
129
+ # end
130
+
131
+ # it 'complemento deve retornar 277 caracteres' do
132
+ # expect(unicred.complemento.size).to eq 277
133
+ # end
134
+
135
+ # it 'info_conta deve retornar com 10 posicoes as informacoes da conta' do
136
+ # info_conta = unicred.info_conta
137
+ # expect(info_conta.size).to eq 20
138
+ # expect(info_conta[0..19]).to eq '00000000001234567890'
139
+ # end
140
+
141
+ # it 'deve retornar o codigo da carteira de acordo com o tipo de emissão' do
142
+ # unicred.carteira = '21'
143
+ # expect(unicred.carteira).to eq '21'
144
+
145
+ # unicred.carteira = '09'
146
+ # expect(unicred.invalid?).to be true
147
+ # expect(unicred.errors.full_messages).to include('Carteira não existente para este banco.')
148
+ # end
149
+ # end
150
+
151
+ # context 'monta remessa' do
152
+ # it_behaves_like 'cnab400'
153
+
154
+ # context 'header' do
155
+ # it 'informacoes devem estar posicionadas corretamente no header' do
156
+ # header = unicred.monta_header
157
+ # expect(header[1]).to eq '1' # tipo operacao (1 = remessa)
158
+ # expect(header[2..8]).to eq 'REMESSA' # literal da operacao
159
+ # expect(header[26..45]).to eq unicred.info_conta # informacoes da conta
160
+ # expect(header[76..78]).to eq '136' # codigo do banco
161
+ # end
162
+ # end
163
+
164
+ # context 'detalhe' do
165
+ # it 'informacoes devem estar posicionadas corretamente no detalhe' do
166
+ # detalhe = unicred.monta_detalhe pagamento, 1
167
+ # expect(detalhe[2..5]).to eq '1234' # Agencia
168
+ # expect(detalhe[108..109]).to eq '01' # Instrução
169
+ # expect(detalhe[110..119]).to eq '0000001/01' # documento
170
+ # expect(detalhe[120..125]).to eq Date.current.strftime('%d%m%y') # data de vencimento
171
+ # expect(detalhe[126..138]).to eq '0000000019990' # valor do titulo
172
+ # expect(detalhe[192..202]).to eq '72000031'.rjust(10, ' ') # nosso numero
173
+ # expect(detalhe[220..233]).to eq '00012345678901' # documento do pagador
174
+ # expect(detalhe[234..263]).to eq 'AKRETION LTDA' # nome do pagador
175
+ # end
176
+ # end
177
+
178
+ # context 'arquivo' do
179
+ # before { Timecop.freeze(Time.local(2015, 7, 14, 16, 15, 15)) }
180
+
181
+ # after { Timecop.return }
182
+
183
+ # it { expect(unicred.gera_arquivo).to eq(read_remessa('remessa-unicred-cnab400.rem', unicred.gera_arquivo)) }
184
+ # end
185
+ # end
185
186
  end
@@ -1,18 +1,19 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Remessa::Pagamento do
5
6
  let(:pagamento) do
6
7
  subject.class.new(valor: 199.9,
7
- data_vencimento: Date.parse('2015-06-25'),
8
- nosso_numero: 123,
9
- documento_sacado: '12345678901',
10
- nome_sacado: 'PABLO DIEGO JOSÉ FRANCISCO DE PAULA JUAN NEPOMUCENO MARÍA DE LOS REMEDIOS CIPRIANO DE LA SANTÍSSIMA TRINIDAD RUIZ Y PICASSO',
11
- endereco_sacado: 'RUA RIO GRANDE DO SUL São paulo Minas caçapa da silva junior',
12
- bairro_sacado: 'São josé dos quatro apostolos magros',
13
- cep_sacado: '12345678',
14
- cidade_sacado: 'Santa rita de cássia maria da silva',
15
- uf_sacado: 'SP')
8
+ data_vencimento: Date.parse('2015-06-25'),
9
+ nosso_numero: 123,
10
+ documento_sacado: '12345678901',
11
+ nome_sacado: 'PABLO DIEGO JOSÉ FRANCISCO,!^.?\/@ DE PAULA JUAN NEPOMUCENO MARÍA DE LOS REMEDIOS CIPRIANO DE LA SANTÍSSIMA TRINIDAD RUIZ Y PICASSO',
12
+ endereco_sacado: 'RUA RIO GRANDE DO SUL,!^.?\/@ São paulo Minas caçapa da silva junior',
13
+ bairro_sacado: 'São josé dos quatro apostolos magros',
14
+ cep_sacado: '12345678',
15
+ cidade_sacado: 'Santa rita de cássia maria da silva',
16
+ uf_sacado: 'SP')
16
17
  end
17
18
 
18
19
  context 'validacoes' do
@@ -175,24 +176,24 @@ RSpec.describe Brcobranca::Remessa::Pagamento do
175
176
  context 'formata valor do campo documento' do
176
177
  before { pagamento.documento = '2345' }
177
178
 
178
- it "deve formatar assumindo os valores padrao para os parametros tamanho e caracter" do
179
+ it 'deve formatar assumindo os valores padrao para os parametros tamanho e caracter' do
179
180
  expect(pagamento.formata_documento_ou_numero).to eql '2345'.rjust(25, ' ')
180
181
  end
181
182
 
182
- it "deve formatar com os parametros tamanho e caracter" do
183
+ it 'deve formatar com os parametros tamanho e caracter' do
183
184
  expect(pagamento.formata_documento_ou_numero(15, '0')).to eql '2345'.rjust(15, '0')
184
185
  end
185
186
 
186
- it "deve extrair somente o valor do campo no tamanho informado" do
187
+ it 'deve extrair somente o valor do campo no tamanho informado' do
187
188
  pagamento.documento = '12345678901234567890'
188
189
  expect(pagamento.formata_documento_ou_numero(15, '0')).to eql '123456789012345'
189
- expect(pagamento.formata_documento_ou_numero(15, '0').length).to eql 15
190
+ expect(pagamento.formata_documento_ou_numero(15, '0').length).to be 15
190
191
  end
191
192
 
192
193
  it 'deve remover caracteres especiais ou acentuação' do
193
194
  pagamento.documento = 'JOÃO DEve R$ 900.00'
194
195
  expect(pagamento.formata_documento_ou_numero).to eql ' JOO DEve R 90000'
195
- expect(pagamento.formata_documento_ou_numero.length).to eql 25
196
+ expect(pagamento.formata_documento_ou_numero.length).to be 25
196
197
  end
197
198
  end
198
199
 
@@ -1,22 +1,23 @@
1
- # -*_ encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab240::Base do
5
6
  let(:arquivo) { File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', nome_arquivo) }
6
7
 
7
- describe "#load_lines" do
8
- it "retorna nil se o arquivo é nil" do
9
- expect(Brcobranca::Retorno::Cnab240::Base.load_lines(nil)).to be_nil
8
+ describe '#load_lines' do
9
+ it 'retorna nil se o arquivo é nil' do
10
+ expect(described_class.load_lines(nil)).to be_nil
10
11
  end
11
12
 
12
- context "Sicoob" do
13
- let(:nome_arquivo) { "CNAB240SICOOB.RET" }
14
-
13
+ context 'Sicoob' do
15
14
  subject { Brcobranca::Retorno::Cnab240::Sicoob }
16
15
 
17
- it "lê o arquivo pela classe do Sicoob" do
16
+ let(:nome_arquivo) { 'CNAB240SICOOB.RET' }
17
+
18
+ it 'lê o arquivo pela classe do Sicoob' do
18
19
  expect(subject).to receive(:load_lines).with(arquivo, {})
19
- Brcobranca::Retorno::Cnab240::Base.load_lines(arquivo)
20
+ described_class.load_lines(arquivo)
20
21
  end
21
22
  end
22
23
  end
@@ -1,6 +1,8 @@
1
- RSpec.describe Brcobranca::Retorno::Cnab240::Cecred do
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Brcobranca::Retorno::Cnab240::Ailos do
2
4
  before do
3
- @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240CECRED.RET')
5
+ @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240AILOS.RET')
4
6
  end
5
7
 
6
8
  it 'Transforma arquivo de retorno em objetos de retorno retornando somente as linhas de pagamentos de títulos sem registro' do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  RSpec.describe Brcobranca::Retorno::Cnab240::Santander do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Brcobranca::Retorno::Cnab240::Sicoob do
2
4
  before do
3
5
  @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240SICOOB.RET')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Brcobranca::Retorno::Cnab240::Sicredi do
2
4
  before do
3
5
  @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB240SICREDI.CRT')
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::BancoBrasilia do
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::BancoNordeste do
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::Banrisul do
@@ -1,56 +1,56 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::Base do
5
6
  let(:arquivo) { File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', nome_arquivo) }
6
7
 
7
- describe "#load_lines" do
8
-
9
- it "retorna nil se o arquivo é nil" do
10
- expect(Brcobranca::Retorno::Cnab400::Base.load_lines(nil)).to be_nil
8
+ describe '#load_lines' do
9
+ it 'retorna nil se o arquivo é nil' do
10
+ expect(described_class.load_lines(nil)).to be_nil
11
11
  end
12
12
 
13
- context "Banco de Brasilia" do
14
- let(:nome_arquivo) { "CNAB400BANCOBRASILIA.RET" }
15
-
13
+ context 'Banco de Brasilia' do
16
14
  subject { Brcobranca::Retorno::Cnab400::BancoBrasilia }
17
15
 
18
- it "lê o arquivo pela classe do Banco de Brasilia" do
16
+ let(:nome_arquivo) { 'CNAB400BANCOBRASILIA.RET' }
17
+
18
+ it 'lê o arquivo pela classe do Banco de Brasilia' do
19
19
  expect(subject).to receive(:load_lines).with(arquivo, {})
20
- Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
20
+ described_class.load_lines(arquivo)
21
21
  end
22
22
  end
23
23
 
24
- context "Bradesco" do
25
- let(:nome_arquivo) { "CNAB400BRADESCO.RET" }
26
-
24
+ context 'Bradesco' do
27
25
  subject { Brcobranca::Retorno::Cnab400::Bradesco }
28
26
 
29
- it "lê o arquivo pela classe do Bradesco" do
27
+ let(:nome_arquivo) { 'CNAB400BRADESCO.RET' }
28
+
29
+ it 'lê o arquivo pela classe do Bradesco' do
30
30
  expect(subject).to receive(:load_lines).with(arquivo, {})
31
- Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
31
+ described_class.load_lines(arquivo)
32
32
  end
33
33
  end
34
34
 
35
- context "Itaú" do
36
- let(:nome_arquivo) { "CNAB400ITAU.RET" }
37
-
35
+ context 'Itaú' do
38
36
  subject { Brcobranca::Retorno::Cnab400::Itau }
39
37
 
40
- it "lê o arquivo pela classe do Itaú" do
38
+ let(:nome_arquivo) { 'CNAB400ITAU.RET' }
39
+
40
+ it 'lê o arquivo pela classe do Itaú' do
41
41
  expect(subject).to receive(:load_lines).with(arquivo, {})
42
- Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
42
+ described_class.load_lines(arquivo)
43
43
  end
44
44
  end
45
45
 
46
- context "Santander" do
47
- let(:nome_arquivo) { "CNAB400SANTANDER.RET" }
48
-
46
+ context 'Santander' do
49
47
  subject { Brcobranca::Retorno::Cnab400::Santander }
50
48
 
51
- it "lê o arquivo pela classe do Santander" do
49
+ let(:nome_arquivo) { 'CNAB400SANTANDER.RET' }
50
+
51
+ it 'lê o arquivo pela classe do Santander' do
52
52
  expect(subject).to receive(:load_lines).with(arquivo, {})
53
- Brcobranca::Retorno::Cnab400::Base.load_lines(arquivo)
53
+ described_class.load_lines(arquivo)
54
54
  end
55
55
  end
56
56
  end
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::Bradesco do
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::Credisis do
@@ -16,9 +17,9 @@ RSpec.describe Brcobranca::Retorno::Cnab400::Credisis do
16
17
  pagamentos = described_class.load_lines(@arquivo)
17
18
  expect(pagamentos.size).to eq(2) # deve ignorar a primeira linha que é header
18
19
  pagamento = pagamentos.first
19
- expect(pagamento.nosso_numero).to eql("00005005001")
20
- expect(pagamento.data_vencimento).to eql("011012")
21
- expect(pagamento.valor_titulo).to eql("0000005005001")
20
+ expect(pagamento.nosso_numero).to eql('00005005001')
21
+ expect(pagamento.data_vencimento).to eql('011012')
22
+ expect(pagamento.valor_titulo).to eql('0000005005001')
22
23
  expect(pagamento.valor_recebido).to eql('0000000044400')
23
24
  expect(pagamento.data_credito).to eql('150515')
24
25
  end
@@ -1,4 +1,5 @@
1
- # -*- encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
 
4
5
  RSpec.describe Brcobranca::Retorno::Cnab400::Itau do
@@ -6,7 +7,8 @@ RSpec.describe Brcobranca::Retorno::Cnab400::Itau do
6
7
  @arquivo = File.join(File.dirname(__FILE__), '..', '..', '..', 'arquivos', 'CNAB400ITAU.RET')
7
8
  end
8
9
 
9
- it 'Ignora primeira linha que é header' do pagamentos = described_class.load_lines(@arquivo)
10
+ it 'Ignora primeira linha que é header' do
11
+ pagamentos = described_class.load_lines(@arquivo)
10
12
  pagamento = pagamentos.first
11
13
  expect(pagamento.sequencial).to eql('000002')
12
14
  end