br_boleto 2.0.1 → 2.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 +2 -1
- data/.travis.yml +1 -1
- data/Gemfile.lock +2 -2
- data/br_boleto.gemspec +2 -3
- data/lib/br_boleto/association/have_conta.rb +27 -25
- data/lib/br_boleto/association/have_pagador.rb +2 -0
- data/lib/br_boleto/boleto/base.rb +0 -4
- data/lib/br_boleto/boleto/bradesco.rb +80 -0
- data/lib/br_boleto/boleto/caixa.rb +10 -12
- data/lib/br_boleto/boleto/cecred.rb +76 -0
- data/lib/br_boleto/boleto/itau.rb +114 -0
- data/lib/br_boleto/boleto/sicredi.rb +101 -0
- data/lib/br_boleto/boleto/unicred.rb +21 -0
- data/lib/br_boleto/conta/base.rb +28 -3
- data/lib/br_boleto/conta/bradesco.rb +120 -0
- data/lib/br_boleto/conta/caixa.rb +22 -12
- data/lib/br_boleto/conta/cecred.rb +67 -0
- data/lib/br_boleto/conta/itau.rb +199 -0
- data/lib/br_boleto/conta/sicoob.rb +40 -11
- data/lib/br_boleto/conta/sicredi.rb +171 -0
- data/lib/br_boleto/conta/unicred.rb +38 -0
- data/lib/br_boleto/helper/default_codes.rb +535 -26
- data/lib/br_boleto/pagador.rb +4 -0
- data/lib/br_boleto/remessa/base.rb +2 -0
- data/lib/br_boleto/remessa/cnab240/base.rb +21 -6
- data/lib/br_boleto/remessa/cnab240/bradesco.rb +141 -0
- data/lib/br_boleto/remessa/cnab240/caixa.rb +8 -1
- data/lib/br_boleto/remessa/cnab240/cecred.rb +169 -0
- data/lib/br_boleto/remessa/cnab240/helper/segmento_p.rb +29 -21
- data/lib/br_boleto/remessa/cnab240/helper/segmento_q.rb +4 -3
- data/lib/br_boleto/remessa/cnab240/helper/segmento_r.rb +5 -5
- data/lib/br_boleto/remessa/cnab240/helper/segmento_s.rb +4 -3
- data/lib/br_boleto/remessa/cnab240/itau.rb +186 -0
- data/lib/br_boleto/remessa/cnab240/sicoob.rb +4 -16
- data/lib/br_boleto/remessa/cnab240/sicredi.rb +205 -0
- data/lib/br_boleto/remessa/cnab240/unicred.rb +40 -0
- data/lib/br_boleto/remessa/cnab400/bradesco.rb +235 -0
- data/lib/br_boleto/remessa/cnab400/helper/detalhe.rb +6 -5
- data/lib/br_boleto/remessa/cnab400/itau.rb +190 -0
- data/lib/br_boleto/remessa/cnab400/sicoob.rb +3 -3
- data/lib/br_boleto/remessa/cnab400/sicredi.rb +276 -0
- data/lib/br_boleto/remessa/cnab400/unicred.rb +62 -0
- data/lib/br_boleto/remessa/pagamento.rb +93 -43
- data/lib/br_boleto/retorno/cnab240/base.rb +13 -12
- data/lib/br_boleto/retorno/cnab240/bradesco.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/caixa.rb +2 -3
- data/lib/br_boleto/retorno/cnab240/cecred.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/itau.rb +24 -0
- data/lib/br_boleto/retorno/cnab240/sicredi.rb +10 -0
- data/lib/br_boleto/retorno/cnab240/unicred.rb +10 -0
- data/lib/br_boleto/retorno/cnab400/bradesco.rb +42 -0
- data/lib/br_boleto/retorno/cnab400/itau.rb +43 -0
- data/lib/br_boleto/retorno/cnab400/sicoob.rb +2 -2
- data/lib/br_boleto/retorno/cnab400/sicredi.rb +43 -0
- data/lib/br_boleto/retorno/cnab400/unicred.rb +10 -0
- data/lib/br_boleto/retorno/pagamento.rb +18 -4
- data/lib/br_boleto/version.rb +2 -2
- data/lib/br_boleto.rb +28 -0
- data/lib/config/locales/br-boleto-en.yml +1 -0
- data/lib/config/locales/br-boleto-pt-BR.yml +1 -0
- data/test/br_boleto/association/have_pagador_test.rb +24 -0
- data/test/br_boleto/boleto/bradesco_test.rb +125 -0
- data/test/br_boleto/boleto/caixa_test.rb +18 -18
- data/test/br_boleto/boleto/cecred_test.rb +115 -0
- data/test/br_boleto/boleto/itau_test.rb +160 -0
- data/test/br_boleto/boleto/sicredi_test.rb +136 -0
- data/test/br_boleto/boleto/unicred_test.rb +128 -0
- data/test/br_boleto/conta/base_test.rb +298 -3
- data/test/br_boleto/conta/bradesco_test.rb +142 -0
- data/test/br_boleto/conta/caixa_test.rb +7 -6
- data/test/br_boleto/conta/cecred_test.rb +119 -0
- data/test/br_boleto/conta/itau_test.rb +189 -0
- data/test/br_boleto/conta/sicoob_test.rb +32 -2
- data/test/br_boleto/conta/sicredi_test.rb +180 -0
- data/test/br_boleto/conta/unicred_test.rb +154 -0
- data/test/br_boleto/pagador_test.rb +22 -2
- data/test/br_boleto/remessa/cnab240/base_test.rb +24 -12
- data/test/br_boleto/remessa/cnab240/bradesco_test.rb +196 -0
- data/test/br_boleto/remessa/cnab240/caixa_test.rb +51 -0
- data/test/br_boleto/remessa/cnab240/cecred_test.rb +242 -0
- data/test/br_boleto/remessa/cnab240/helper/segmento_p_test.rb +78 -71
- data/test/br_boleto/remessa/cnab240/helper/segmento_q_test.rb +4 -3
- data/test/br_boleto/remessa/cnab240/helper/segmento_r_test.rb +10 -18
- data/test/br_boleto/remessa/cnab240/helper/segmento_s_test.rb +6 -5
- data/test/br_boleto/remessa/cnab240/itau_test.rb +201 -0
- data/test/br_boleto/remessa/cnab240/sicoob_test.rb +1 -58
- data/test/br_boleto/remessa/cnab240/sicredi_test.rb +207 -0
- data/test/br_boleto/remessa/cnab240/unicred_test.rb +250 -0
- data/test/br_boleto/remessa/cnab400/base_test.rb +4 -4
- data/test/br_boleto/remessa/cnab400/bradesco_test.rb +164 -0
- data/test/br_boleto/remessa/cnab400/itau_test.rb +173 -0
- data/test/br_boleto/remessa/cnab400/sicoob_test.rb +2 -2
- data/test/br_boleto/remessa/cnab400/sicredi_test.rb +241 -0
- data/test/br_boleto/remessa/cnab400/unicred_test.rb +169 -0
- data/test/br_boleto/retorno/cnab240/base_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/bradesco_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/caixa_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/cecred_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/itau_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/sicoob_test.rb +20 -10
- data/test/br_boleto/retorno/cnab240/sicredi_test.rb +228 -0
- data/test/br_boleto/retorno/cnab240/unicred_test.rb +228 -0
- data/test/br_boleto/retorno/cnab400/bradesco_test.rb +255 -0
- data/test/br_boleto/retorno/cnab400/itau_test.rb +96 -0
- data/test/br_boleto/retorno/cnab400/sicoob_test.rb +10 -5
- data/test/br_boleto/retorno/cnab400/sicredi_test.rb +7 -0
- data/test/br_boleto/retorno/cnab400/unicred.rb +255 -0
- data/test/br_boleto/retorno/pagamento_test.rb +7 -0
- data/test/factories/boleto/boleto_bradesco.rb +18 -0
- data/test/factories/boleto/boleto_cecred.rb +18 -0
- data/test/factories/boleto/boleto_itau.rb +18 -0
- data/test/factories/boleto/boleto_sicredi.rb +18 -0
- data/test/factories/boleto/boleto_unicred.rb +18 -0
- data/test/factories/conta/bradesco.rb +16 -0
- data/test/factories/conta/caixa.rb +2 -1
- data/test/factories/conta/cecred.rb +15 -0
- data/test/factories/conta/itau.rb +15 -0
- data/test/factories/conta/sicoob.rb +2 -1
- data/test/factories/conta/sicredi.rb +15 -0
- data/test/factories/conta/unicred.rb +15 -0
- data/test/factories/remessa/cnab240/bradesco.rb +9 -0
- data/test/factories/remessa/cnab240/cecred.rb +9 -0
- data/test/factories/remessa/cnab240/itau.rb +9 -0
- data/test/factories/remessa/cnab240/sicredi.rb +9 -0
- data/test/factories/remessa/cnab240/unicred.rb +9 -0
- data/test/factories/remessa/cnab400/bradesco.rb +8 -0
- data/test/factories/remessa/cnab400/itau.rb +8 -0
- data/test/factories/remessa/cnab400/sicredi.rb +8 -0
- data/test/factories/remessa/cnab400/unicred.rb +8 -0
- data/test/fixtures/remessa/cnab240/caixa.rem +8 -0
- data/test/fixtures/remessa/cnab240/cecred.rem +8 -0
- data/test/fixtures/remessa/cnab240/sicoob.rem +8 -8
- data/test/fixtures/remessa/cnab240/unicred.rem +7 -0
- data/test/fixtures/retorno/cnab400/bradesco.ret +8 -0
- data/test/fixtures/retorno/cnab400/itau.ret +54 -0
- metadata +138 -3
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module BrBoleto
|
|
3
|
+
module Conta
|
|
4
|
+
class Sicredi < BrBoleto::Conta::Base
|
|
5
|
+
|
|
6
|
+
# MODALIDADE CARTEIRA:
|
|
7
|
+
# _______________________________________________
|
|
8
|
+
# | Carteira | Descrição |
|
|
9
|
+
# | 1 | Cobrança Simples Com registro |
|
|
10
|
+
# | 3 | Cobrança SimplesSem registro |
|
|
11
|
+
# ------------------------------------------------
|
|
12
|
+
|
|
13
|
+
# Código do posto da cooperativa de crédito
|
|
14
|
+
attr_accessor :posto
|
|
15
|
+
|
|
16
|
+
# Byte de identificação do cedente do bloqueto utilizado para compor o nosso número.
|
|
17
|
+
# Valores aceitos de 2 a 9, somente será "1" se forem boletos pré-impressos.
|
|
18
|
+
attr_accessor :byte_id
|
|
19
|
+
|
|
20
|
+
############################### VALIDAÇÕES DINÂMICAS ###############################
|
|
21
|
+
attr_accessor :valid_byte_id_length
|
|
22
|
+
attr_accessor :valid_byte_id_required
|
|
23
|
+
attr_accessor :valid_byte_id_inclusion
|
|
24
|
+
attr_accessor :valid_posto_maximum
|
|
25
|
+
attr_accessor :valid_posto_required
|
|
26
|
+
#####################################################################################
|
|
27
|
+
|
|
28
|
+
# Byte de identificação
|
|
29
|
+
validates :byte_id, custom_length: {is: :valid_byte_id_length}, if: :valid_byte_id_length
|
|
30
|
+
validates :byte_id, custom_inclusion: {in: :valid_byte_id_inclusion}, if: :valid_byte_id_inclusion
|
|
31
|
+
validates :byte_id, presence: true, if: :valid_byte_id_required
|
|
32
|
+
|
|
33
|
+
# Posto
|
|
34
|
+
validates :posto, custom_length: {maximum: :valid_posto_maximum}, if: :valid_posto_maximum
|
|
35
|
+
validates :posto, presence: true, if: :valid_posto_required
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def default_values
|
|
39
|
+
super.merge({
|
|
40
|
+
carteira: '1',
|
|
41
|
+
valid_carteira_required: true, # <- Validação dinâmica que a modalidade é obrigatória
|
|
42
|
+
valid_carteira_length: 1, # <- Validação dinâmica que a modalidade deve ter 1 digito
|
|
43
|
+
valid_carteira_inclusion: %w[1 3], # <- Validação dinâmica de valores aceitos para a modalidade
|
|
44
|
+
valid_conta_corrente_required: true, # <- Validação dinâmica que a conta_corrente é obrigatória
|
|
45
|
+
valid_conta_corrente_maximum: 5, # <- Validação que a conta_corrente deve ter no máximo 5 digitos
|
|
46
|
+
valid_convenio_required: true, # <- Validação que a convenio deve ter obrigatório
|
|
47
|
+
valid_convenio_maximum: 5, # <- Validação que a convenio deve ter no máximo 5 digitos
|
|
48
|
+
codigo_carteira: '1', # Cobrança Simples
|
|
49
|
+
valid_codigo_carteira_length: 1, # <- Validação dinâmica que a modalidade deve ter 1 digito
|
|
50
|
+
posto: '0',
|
|
51
|
+
valid_posto_maximum: 2, # <- Validação que a posto deve ter no máximo 2 digitos
|
|
52
|
+
valid_posto_required: true, # <- Validação que a posto deve ter obrigatório
|
|
53
|
+
byte_id: '2',
|
|
54
|
+
valid_byte_id_length: 1, # <- Validação dinâmica que o byte identificador deve ter 1 digito
|
|
55
|
+
valid_byte_id_required: true, # <- Validação que a byte_id deve ter obrigatório
|
|
56
|
+
valid_byte_id_inclusion: %w[2 3 4 5 6 7 8 9], # <- Validação dinâmica de valores aceitos para o byte identificador
|
|
57
|
+
})
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def codigo_banco
|
|
61
|
+
'748'
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Dígito do código do banco descrito na documentação
|
|
65
|
+
def codigo_banco_dv
|
|
66
|
+
'X'
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def nome_banco
|
|
70
|
+
@nome_banco ||= 'SICREDI'
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def versao_layout_arquivo_cnab_240
|
|
74
|
+
'081'
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def versao_layout_lote_cnab_240
|
|
78
|
+
'040'
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def posto
|
|
82
|
+
"#{@posto}".rjust(2, '0') if @posto.present?
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def byte_id
|
|
86
|
+
"#{@byte_id}".rjust(1, '2') if @byte_id.present?
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def agencia_dv
|
|
90
|
+
@agencia_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9.new(agencia).to_s
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Campo Agência / Código do Cedente
|
|
94
|
+
# @return [String] Agência com 4 caracteres . Posto do beneficiário com 2 caracteres . Código do beneficiário com 5 caracteres
|
|
95
|
+
# Exemplo: AAAA.PP.CCCCC
|
|
96
|
+
def agencia_codigo_cedente
|
|
97
|
+
"#{agencia}.#{posto}.#{codigo_cedente}"
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Espécie do Título CNAB 240
|
|
101
|
+
def equivalent_especie_titulo_240
|
|
102
|
+
super.merge(
|
|
103
|
+
# Padrão Código para
|
|
104
|
+
{# da GEM o Banco
|
|
105
|
+
'01' => '03', # Duplicata Mercantil por Indicação (DMI)
|
|
106
|
+
'02' => '03' # Duplicata Mercantil por Indicação (DMI)
|
|
107
|
+
})
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Espécie do Título CNAB 400
|
|
111
|
+
def equivalent_especie_titulo_400
|
|
112
|
+
super.merge(
|
|
113
|
+
# Padrão Código para
|
|
114
|
+
{# da GEM o Banco
|
|
115
|
+
'01' => 'A',
|
|
116
|
+
'02' => 'A',
|
|
117
|
+
'03' => 'A', # Duplicata Mercantil por Indicação (DMI)
|
|
118
|
+
'06' => 'B', # Duplicata Rural (DR)
|
|
119
|
+
'12' => 'C', # Nota Promissória (NP)
|
|
120
|
+
'13' => 'D', # Nota Promissória Rural (NR)
|
|
121
|
+
'16' => 'E', # Nota de Seguros (NS)
|
|
122
|
+
'17' => 'G', # Recibo (RC)
|
|
123
|
+
'07' => 'H', # Letra de Câmbio (LC)
|
|
124
|
+
'19' => 'I', # Nota de Débito (ND)
|
|
125
|
+
'05' => 'J', # Duplicata de Serviço por Indicação (DSI)
|
|
126
|
+
'99' => 'K', # Outros (OS)
|
|
127
|
+
'32' => 'O' # Boleto de Proposta (BDP)
|
|
128
|
+
})
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Código da Carteira
|
|
132
|
+
def equivalent_tipo_cobranca_400
|
|
133
|
+
super.merge({ '1' => 'A' }) # Cobrança Simples
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# Identificação do Tipo de Impressão :
|
|
137
|
+
def equivalent_tipo_impressao_400
|
|
138
|
+
super.merge({ '1' => 'A' }) # Frente do Bloqueto
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Código da Moeda :
|
|
142
|
+
def equivalent_codigo_moeda_400
|
|
143
|
+
super.merge({ '09' => 'A' }) # Real
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# Identificação da Emissão do Boleto de Pagamento
|
|
147
|
+
def equivalent_identificacao_emissao_400
|
|
148
|
+
super.merge(
|
|
149
|
+
# Padrão Código para
|
|
150
|
+
{# da GEM o Banco
|
|
151
|
+
'1' => 'A', # Impressão é feita pelo Sicredi
|
|
152
|
+
'2' => 'B', # Impressão é feita pelo Beneficiário
|
|
153
|
+
})
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Código adotado pelo SICREDI para identificação do tipo de desconto que deverá ser concedido.
|
|
157
|
+
def equivalent_codigo_desconto
|
|
158
|
+
{
|
|
159
|
+
'0' => '1', # Valor Fixo Até a Data Informada
|
|
160
|
+
'1' => '1', # Valor Fixo Até a Data Informada
|
|
161
|
+
'2' => '2', # Percentual Até a Data Informada
|
|
162
|
+
'3' => '3', # Valor por Antecipação Dia Corrido
|
|
163
|
+
'4' => '3', # Valor por Antecipação Dia Úti
|
|
164
|
+
'5' => '2', # Percentual Sobre o Valor Nominal Dia Corrido
|
|
165
|
+
'6' => '2', # Percentual Sobre o Valor Nominal Dia Útil
|
|
166
|
+
'7' => '7', # Cancelamento de Desconto
|
|
167
|
+
}
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module BrBoleto
|
|
3
|
+
module Conta
|
|
4
|
+
|
|
5
|
+
# A Unicred (através do CobExpress) utiliza e o layout de boleto os arquivos de remessa/retorno disponibilizados pelo Banco Bradesco.
|
|
6
|
+
class Unicred < BrBoleto::Conta::Bradesco
|
|
7
|
+
|
|
8
|
+
def default_values
|
|
9
|
+
super.merge({
|
|
10
|
+
carteira: '09',
|
|
11
|
+
})
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def versao_layout_arquivo_cnab_240
|
|
15
|
+
'082'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def versao_layout_lote_cnab_240
|
|
19
|
+
'041'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Código adotado pelo UNICRED para identificar o tipo de prazo a ser considerado para o protesto.
|
|
23
|
+
# Segundo documentação, é permitido somente os códigos '1' = Protestar dias corridos e '3' = Não protestar
|
|
24
|
+
def equivalent_codigo_protesto
|
|
25
|
+
{
|
|
26
|
+
'1' => '1', # Protestar Dias Corridos
|
|
27
|
+
'2' => '1', # Protestar Dias Úteis
|
|
28
|
+
'3' => '3', # Não Protesta
|
|
29
|
+
'4' => '1', # Protestar Fim Falimentar - Dias Úteis
|
|
30
|
+
'5' => '1', # Protestar Fim Falimentar - Dias Corridos
|
|
31
|
+
'8' => '3', # Negativação sem Protesto
|
|
32
|
+
'9' => '3', # Cancelamento Protesto Automático
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|