Class: BrBoleto::Conta::Bradesco

Inherits:
Base show all
Defined in:
lib/br_boleto/conta/bradesco.rb

Direct Known Subclasses

Unicred

Instance Attribute Summary

Attributes inherited from Base

#agencia, #carteira, #codigo_carteira, #conta_corrente, #convenio, #convenio_dv, #cpf_cnpj, #endereco, #modalidade, #razao_social, #valid_agencia_length, #valid_carteira_inclusion, #valid_carteira_length, #valid_carteira_maximum, #valid_carteira_minimum, #valid_carteira_required, #valid_codigo_carteira_length, #valid_codigo_carteira_required, #valid_conta_corrente_length, #valid_conta_corrente_maximum, #valid_conta_corrente_minimum, #valid_conta_corrente_required, #valid_convenio_inclusion, #valid_convenio_length, #valid_convenio_maximum, #valid_convenio_minimum, #valid_convenio_required, #valid_endereco_required, #valid_modalidade_inclusion, #valid_modalidade_length, #valid_modalidade_maximum, #valid_modalidade_minimum, #valid_modalidade_required

Instance Method Summary collapse

Methods inherited from Base

#codigo_banco_formatado, #cpf_cnpj_formatado, #cpf_cnpj_formatado_com_label, #tipo_cobranca, #tipo_cpf_cnpj

Methods included from Helper::DefaultCodes

#codigos_movimento_retorno_para_ocorrencia_A_240, #codigos_movimento_retorno_para_ocorrencia_B_240, #codigos_movimento_retorno_para_ocorrencia_B_400, #codigos_movimento_retorno_para_ocorrencia_C_240, #codigos_movimento_retorno_para_ocorrencia_D_240, #default_codigo_juros, #default_codigo_multa, #equivalent_codigo_desconto, #equivalent_codigo_juros, #equivalent_codigo_moeda_240, #equivalent_codigo_moeda_400, #equivalent_codigo_motivo_ocorrencia_A_240, #equivalent_codigo_motivo_ocorrencia_B_240, #equivalent_codigo_motivo_ocorrencia_C_240, #equivalent_codigo_motivo_ocorrencia_D_240, #equivalent_codigo_movimento_remessa_240, #equivalent_codigo_multa, #equivalent_codigo_ocorrencia_pagador_240, #equivalent_codigo_ocorrencia_pagador_400, #equivalent_codigo_protesto_240, #equivalent_codigo_protesto_400, #equivalent_distribuicao_boleto, #equivalent_especie_titulo_240, #equivalent_identificacao_emissao_240, #equivalent_identificacao_emissao_400, #equivalent_tipo_cobranca_240, #equivalent_tipo_cobranca_400, #equivalent_tipo_impressao_240, #equivalent_tipo_impressao_400, #get_codigo_desconto, #get_codigo_juros, #get_codigo_moeda, #get_codigo_motivo_ocorrencia, #get_codigo_movimento_remessa, #get_codigo_movimento_retorno, #get_codigo_multa, #get_codigo_ocorrencia_pagador, #get_codigo_protesto, #get_distribuicao_boleto, #get_especie_titulo, #get_identificacao_emissao, #get_tipo_cobranca, #get_tipo_impressao

Methods inherited from ActiveModelBase

#assign_attributes, #initialize

Constructor Details

This class inherits a constructor from BrBoleto::ActiveModelBase

Instance Method Details

#agencia_codigo_cedenteString

Campo Agência / Código do Cedente Exemplo: 9999-D / 9999999-D

Returns:

  • (String)

    Agência com 4 caracteres - digito da agência / Conta de Cobrança com 7 caracteres - Digito da Conta



66
67
68
# File 'lib/br_boleto/conta/bradesco.rb', line 66

def agencia_codigo_cedente
	"#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
end

#agencia_dvObject



53
54
55
56
57
# File 'lib/br_boleto/conta/bradesco.rb', line 53

def agencia_dv
	# utilizando a agencia com 4 digitos
	# para calcular o digito
	@agencia_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(agencia).to_s
end

#carteira_formatadaObject

Número da Carteira de Cobrança, que a empresa opera no Banco. 21 – Cobrança Interna Com Registro 22 – Cobrança Interna sem registro Para as demais carteiras, retornar o número da carteira.



74
75
76
77
78
79
80
# File 'lib/br_boleto/conta/bradesco.rb', line 74

def carteira_formatada
	if cobranca_interna_formatada.present?
		cobranca_interna_formatada
	else
		carteira
	end
end

#cobranca_interna_formatadaString

Retorna a mensagem que devera aparecer no campo carteira para cobranca interna.

Returns:

  • (String)


84
85
86
87
# File 'lib/br_boleto/conta/bradesco.rb', line 84

def cobranca_interna_formatada
	cobranca_interna = { '21' => '21 – Cobrança Interna Com Registro', '22' => '22 – Cobrança Interna sem registro' }
	cobranca_interna[carteira.to_s]
end

#codigo_bancoObject



32
33
34
# File 'lib/br_boleto/conta/bradesco.rb', line 32

def codigo_banco
	'237'
end

#codigo_banco_dvObject

Dígito do código do banco descrito na documentação



37
38
39
# File 'lib/br_boleto/conta/bradesco.rb', line 37

def codigo_banco_dv
	'2'
end

#codigos_movimento_retorno_para_ocorrencia_A_400Object

Código Motivo Ocorrência Retorno CNAB 400



145
146
147
# File 'lib/br_boleto/conta/bradesco.rb', line 145

def codigos_movimento_retorno_para_ocorrencia_A_400
	%w[02 03 26 30 35 100 106]
end

#codigos_movimento_retorno_para_ocorrencia_C_400Object



283
284
285
# File 'lib/br_boleto/conta/bradesco.rb', line 283

def codigos_movimento_retorno_para_ocorrencia_C_400
	%w[06 09 10 17]
end

#codigos_movimento_retorno_para_ocorrencia_D_400Object



309
310
311
# File 'lib/br_boleto/conta/bradesco.rb', line 309

def codigos_movimento_retorno_para_ocorrencia_D_400
	%w[29]
end

#conta_corrente_dvObject



59
60
61
# File 'lib/br_boleto/conta/bradesco.rb', line 59

def conta_corrente_dv
	@conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a7.new(conta_corrente).to_s
end

#default_valuesObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/br_boleto/conta/bradesco.rb', line 17

def default_values
	super.merge({
		carteira:                      '06', 			 
		valid_carteira_required:       true, # <- Validação dinâmica que a modalidade é obrigatória
		valid_carteira_length:         2,    # <- Validação dinâmica que a modalidade deve ter 2 digitos
		valid_carteira_inclusion:      %w[06 09 19 21 22], # <- Validação dinâmica de valores aceitos para a modalidade
		codigo_carteira:               '1',   # Cobrança Simples
		valid_codigo_carteira_length:   1,    # <- Validação dinâmica que a modalidade deve ter 1 digito
		valid_conta_corrente_required: true,  # <- Validação dinâmica que a conta_corrente é obrigatória
		valid_conta_corrente_maximum:  7,     # <- Validação que a conta_corrente deve ter no máximo 7 digitos
		valid_convenio_required:       true,  # <- Validação que a convenio deve ter obrigatório
		valid_convenio_maximum:        7,     # <- Validação que a convenio deve ter no máximo 7 digitos
	})
end

#equivalent_codigo_motivo_ocorrencia_A_400(codigo_movimento_gem) ⇒ Object



148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'lib/br_boleto/conta/bradesco.rb', line 148

def equivalent_codigo_motivo_ocorrencia_A_400 codigo_movimento_gem
	super.merge(
		#  Padrão    Código para  
		{# do Banco    a GEM
			'00'   =>   'A00',    # Ocorrência aceita
			'03'   =>   'A05',    # Código da ocorrência inválida
			'05'   =>   'A208',   # Código de ocorrência não numérico
			'44'   =>   'A209',   # Agência Beneficiário não prevista
			'65'   =>   'A83',    # Limite excedido
			'66'   =>   'A84',    # Número autorização inexistente
			'67'   =>   'A68',    # Débito automático agendado
			'68'   =>   'A69',    # Débito não agendado - erro nos dados de remessa
			'69'   =>   'A70',    # Débito não agendado - Pagador não consta no cadastro de autorizante
			'70'   =>   'A71',    # Débito não agendado - Beneficiário não autorizado pelo Pagador
			'71'   =>   'A72',    # Débito não agendado - Beneficiário não participa da modalidade de déb.automático
			'72'   =>   'A73',    # Débito não agendado - Código de moeda diferente de R$
			'73'   =>   'A74',    # Débito não agendado - Data de vencimento inválida/vencida
			'74'   =>   'A75',    # Débito não agendado - Conforme seu pedido, Título não registrado
			'75'   =>   'A76',    # Débito não agendado - Tipo do número de inscrição do pagador debitado inválido
			'76'   =>   'A103',   # Pagador Eletrônico DDA
			'83'   =>   'A218',   # Cancelado pelo Pagador e Mantido Pendente, conforme negociação
			'84'   =>   'A219',   # Cancelado pelo pagador e baixado, conforme negociação
			'88'   =>   'A210',   # E-mail Pagador não lido no prazo 5 dias
			'89'   =>   'A211',   # Email Pagador não enviado – título com débito automático
			'90'   =>   'A212',   # Email pagador não enviado – título de cobrança sem registro
			'91'   =>   'A213',   # E-mail pagador não recebido
			'94'   =>   'A214',   # Título Penhorado – Instrução Não Liberada pela Agência
			'97'   =>   'A215',   # Instrução não permitida título negativado
			'98'   =>   'A216',   # Inclusão Bloqueada face a determinação Judicial
			'99'   =>   'A217',   # Telefone beneficiário não informado / inconsistente
		})
end

#equivalent_codigo_motivo_ocorrencia_B_400(codigo_movimento_gem) ⇒ Object



181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
# File 'lib/br_boleto/conta/bradesco.rb', line 181

def equivalent_codigo_motivo_ocorrencia_B_400 codigo_movimento_gem
	super.merge(
		#  Padrão    Código para  
		{# do Banco    a GEM
			'68'   =>   'B16',   # Fornecimento de máquina FAX
			'81'   =>   'B14',   # Tarifa reapresentação automática título
			'83'   =>   'B15',   # Tarifa Rateio de Crédito

			'02'   =>   'B31',  # Tarifa de permanência título cadastrado
			'12'   =>   'B32',  # Tarifa de registro
			'13'   =>   'B33',  # Tarifa título pago no Bradesco
			'14'   =>   'B34',  # Tarifa título pago compensação
			'15'   =>   'B35',  # Tarifa título baixado não pago
			'16'   =>   'B36',  # Tarifa alteração de vencimento
			'17'   =>   'B37',  # Tarifa concessão abatimento
			'18'   =>   'B38',  # Tarifa cancelamento de abatimento
			'19'   =>   'B39',  # Tarifa concessão desconto
			'20'   =>   'B40',  # Tarifa cancelamento desconto
			'21'   =>   'B41',  # Tarifa título pago cics
			'22'   =>   'B42',  # Tarifa título pago Internet
			'23'   =>   'B43',  # Tarifa título pago term. gerencial serviços
			'24'   =>   'B44',  # Tarifa título pago Pág-Contas
			'25'   =>   'B45',  # Tarifa título pago Fone Fácil
			'26'   =>   'B46',  # Tarifa título Déb. Postagem
			'27'   =>   'B47',  # Tarifa impressão de títulos pendentes
			'28'   =>   'B48',  # Tarifa título pago BDN
			'29'   =>   'B49',  # Tarifa título pago Term. Multi Função
			'30'   =>   'B50',  # Impressão de títulos baixados
			'31'   =>   'B51',  # Impressão de títulos pagos
			'32'   =>   'B52',  # Tarifa título pago Pagfor
			'33'   =>   'B53',  # Tarifa reg/pgto – guichê caixa
			'34'   =>   'B54',  # Tarifa título pago retaguarda
			'35'   =>   'B55',  # Tarifa título pago Subcentro
			'36'   =>   'B56',  # Tarifa título pago Cartão de Crédito
			'37'   =>   'B57',  # Tarifa título pago Comp Eletrônica
			'38'   =>   'B58',  # Tarifa título Baix. Pg. Cartório
			'39'   =>   'B59',  # Tarifa título baixado acerto BCO
			'40'   =>   'B60',  # Baixa registro em duplicidade
			'41'   =>   'B61',  # Tarifa título baixado decurso prazo
			'42'   =>   'B62',  # Tarifa título baixado Judicialmente
			'43'   =>   'B63',  # Tarifa título baixado via remessa
			'44'   =>   'B64',  # Tarifa título baixado rastreamento
			'45'   =>   'B65',  # Tarifa título baixado conf. Pedido
			'46'   =>   'B66',  # Tarifa título baixado protestado
			'47'   =>   'B67',  # Tarifa título baixado p/ devolução
			'48'   =>   'B68',  # Tarifa título baixado franco pagto
			'49'   =>   'B69',  # Tarifa título baixado SUST/RET/CARTÓRIO
			'50'   =>   'B70',  # Tarifa título baixado SUS/SEM/REM/CARTÓRIO
			'51'   =>   'B71',  # Tarifa título transferido desconto
			'52'   =>   'B72',  # Cobrado baixa manual
			'53'   =>   'B73',  # Baixa por acerto cliente
			'54'   =>   'B74',  # Tarifa baixa por contabilidade
			'55'   =>   'B75',  # Tr. tentativa cons deb aut
			'56'   =>   'B76',  # Tr. credito online
			'57'   =>   'B77',  # Tarifa reg/pagto Bradesco Expresso
			'58'   =>   'B78',  # Tarifa emissão Papeleta
			'59'   =>   'B79',  # Tarifa fornec papeleta semi preenchida
			'60'   =>   'B80',  # Acondicionador de papeletas (RPB)S
			'61'   =>   'B81',  # Acond. De papelatas (RPB)s PERSONAL
			'62'   =>   'B82',  # Papeleta formulário branco
			'63'   =>   'B83',  # Formulário A4 serrilhado
			'64'   =>   'B84',  # Fornecimento de softwares transmiss
			'65'   =>   'B85',  # Fornecimento de softwares consulta
			'66'   =>   'B86',  # Fornecimento Micro Completo
			'67'   =>   'B87',  # Fornecimento MODEN
			'69'   =>   'B88',  # Fornecimento de máquinas óticas
			'70'   =>   'B89',  # Fornecimento de Impressoras
			'71'   =>   'B90',  # Reativação de título
			'72'   =>   'B91',  # Alteração de produto negociado
			'73'   =>   'B92',  # Tarifa emissão de contra recibo
			'74'   =>   'B93',  # Tarifa emissão 2a via papeleta
			'75'   =>   'B94',  # Tarifa regravação arquivo retorno
			'76'   =>   'B95',  # Arq. Títulos a vencer mensal
			'77'   =>   'B96',  # Listagem auxiliar de crédito
			'78'   =>   'B97',  # Tarifa cadastro cartela instrução permanente
			'79'   =>   'B98',  # Canalização de Crédito
			'80'   =>   'B99',  # Cadastro de Mensagem Fixa
			'82'   =>   'B100', # Tarifa registro título déb. Automático
			'84'   =>   'B101', # Emissão papeleta sem valor
			'85'   =>   'B102', # Sem uso
			'86'   =>   'B103', # Cadastro de reembolso de diferença
			'87'   =>   'B104', # Relatório fluxo de pagto
			'88'   =>   'B105', # Emissão Extrato mov. Carteira
			'89'   =>   'B106', # Mensagem campo local de pagto
			'90'   =>   'B107', # Cadastro Concessionária serv. Publ.
			'91'   =>   'B108', # Classif. Extrato Conta Corrente
			'92'   =>   'B109', # Contabilidade especial
			'93'   =>   'B110', # Realimentação pagto
			'94'   =>   'B111', # Repasse de Créditos
			'96'   =>   'B112', # Tarifa reg. Pagto outras mídias
			'97'   =>   'B113', # Tarifa Reg/Pagto – Net Empresa
			'98'   =>   'B114', # Tarifa título pago vencido
			'99'   =>   'B115', # TR Tít. Baixado por decurso prazo
			'100'  =>   'B116', # Arquivo Retorno Antecipado
			'101'  =>   'B117', # Arq retorno Hora/Hora
			'102'  =>   'B118', # TR. Agendamento Déb Aut
			'105'  =>   'B119', # TR. Agendamento rat. Crédito
			'106'  =>   'B120', # TR Emissão aviso rateio
			'107'  =>   'B121', # Extrato de protesto
		})
end

#equivalent_codigo_motivo_ocorrencia_C_400(codigo_movimento_gem) ⇒ Object



286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
# File 'lib/br_boleto/conta/bradesco.rb', line 286

def equivalent_codigo_motivo_ocorrencia_C_400 codigo_movimento_gem
	if codigo_movimento_gem == '10'
		super.merge(
			#  Padrão    Código para  
			{# do Banco    a GEM
				'00'   =>   'C00',   # Baixado Conforme Instruções da Agência
				'16'   =>   'C16',   # Título Baixado pelo Banco por decurso Prazo
				'17'   =>   'C17',   # Titulo Baixado Transferido Carteira
				'20'   =>   'C20',   # Titulo Baixado e Transferido para Desconto
			
			})
	else
		super.merge(
			#  Padrão    Código para  
			{# do Banco    a GEM
				'00'   =>   'C35',  # Título pago com dinheiro
				'15'   =>   'C36',  # Título pago com cheque
				'10'   =>   'C10',  # Baixa Comandada pelo cliente
				'42'   =>   'C42',  # Rateio não efetuado, cód. Calculo 2 (VLR. Registro) e v (NOVO)
			})
	end
end

#equivalent_codigo_motivo_ocorrencia_D_400(codigo_movimento_gem) ⇒ Object



312
313
314
315
316
317
318
# File 'lib/br_boleto/conta/bradesco.rb', line 312

def equivalent_codigo_motivo_ocorrencia_D_400 codigo_movimento_gem
	#  Padrão    Código para  
	{# do Banco    a GEM
		'78'   =>   'D78',  # Pagador alega que faturamento e indevido
		'95'   =>   'D95',  # Pagador aceita/reconhece o faturamento
	}
end

#equivalent_codigo_movimento_remessa_400Object

Códigos de Movimento Remessa / Identificacao Ocorrência específicos do Banco



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/br_boleto/conta/bradesco.rb', line 105

def equivalent_codigo_movimento_remessa_400
	super.merge(
		#  Padrão    Código para  
		{# da GEM     o Banco
			'10'   =>   '18' , # Sustar protesto e baixar Título
			'11'   =>   '19' , # Sustar protesto e manter em carteira
			'31'   =>   '22' , # Transferência Cessão Crédito
			'33'   =>   '68' , # Acerto nos dados do rateio de Crédito
			'43'   =>   '23' , # Transferência entre Carteiras
			'45'   =>   '45' , # Pedido de Negativação
			'46'   =>   '46' , # Excluir Negativação com baixa
			'47'   =>   '47' , # Excluir negativação e manter pendente
			'34'   =>   '69' , # Cancelamento do rateio de crédito.
		})
end

#equivalent_codigo_movimento_retorno_240Object

Código de Movimento Retorno



122
123
124
# File 'lib/br_boleto/conta/bradesco.rb', line 122

def equivalent_codigo_movimento_retorno_240
	super.merge({'73' => '73'}) # Confirmação recebimento pedido de negativação
end

#equivalent_codigo_movimento_retorno_400Object

Identificações de Ocorrência / Código de ocorrência:



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/br_boleto/conta/bradesco.rb', line 127

def equivalent_codigo_movimento_retorno_400
	super.merge(
		#  Padrão    Código para  
		{# do Banco    a GEM
			'15'   =>   '101',  # Liquidação em Cartório (sem motivo)
			'24'   =>   '106',  # Entrada rejeitada por CEP Irregular
			'25'   =>   '170',  # Confirmação Receb.Inst.de Protesto Falimentar
			'27'   =>   '100',  # Baixa Rejeitada
			'32'   =>   '26',   # Instrução Rejeitada
			'33'   =>   '27',   # Confirmação Pedido Alteração Outros Dados (sem motivo)
			'40'   =>   '171',  # Estorno de pagamento
			'55'   =>   '63',   # Sustado judicial
			'68'   =>   '33',   # Acerto dos dados do rateio de Crédito
			'69'   =>   '34',   # Cancelamento dos dados do rateio
		})
end

#equivalent_especie_titulo_400Object

Espécie do Título



93
94
95
96
97
98
99
100
101
102
# File 'lib/br_boleto/conta/bradesco.rb', line 93

def equivalent_especie_titulo_400
	super.merge(
		#  Padrão    Código para  
		{# da GEM     o Banco
			'07'    =>   '10' , # Letra de Câmbio
			'17'    =>   '05' , # Recibo
			'19'    =>   '11' , # Nota de Débito
			'32'    =>   '30' , # Boleto de Proposta
		})
end

#nome_bancoObject



41
42
43
# File 'lib/br_boleto/conta/bradesco.rb', line 41

def nome_banco
	@nome_banco ||= 'BRADESCO'
end

#versao_layout_arquivo_cnab_240Object



45
46
47
# File 'lib/br_boleto/conta/bradesco.rb', line 45

def versao_layout_arquivo_cnab_240
	'084'
end

#versao_layout_lote_cnab_240Object



49
50
51
# File 'lib/br_boleto/conta/bradesco.rb', line 49

def versao_layout_lote_cnab_240
	'042'
end