Class: Brcobranca::Remessa::Cnab240::Cecred

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/remessa/cnab240/cecred.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#codigo_carteira, #convenio, #distribuicao_boleto, #emissao_boleto, #especie_titulo, #forma_cadastramento, #mensagem_1, #mensagem_2

Attributes inherited from Base

#aceite, #agencia, #carteira, #conta_corrente, #digito_conta, #documento_cedente, #empresa_mae, #pagamentos, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from Base

#codigo_desconto, #complemento_r, #data_geracao, #data_mora, #data_multa, #densidade_gravacao, #dv_agencia_cobradora, #exclusivo_servico, #gera_arquivo, #hora_geracao, #monta_header_arquivo, #monta_header_lote, #monta_lote, #monta_segmento_p, #monta_segmento_q, #monta_trailer_arquivo, #monta_trailer_lote, #numero

Methods inherited from Base

#quantidade_titulos_cobranca, #totaliza_valor_titulos, #valor_titulos_carteira

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

#initialize(campos = {}) ⇒ Cecred

Returns a new instance of Cecred.


14
15
16
17
18
19
20
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 14

def initialize(campos = {})
  campos = { emissao_boleto: '2',
             forma_cadastramento: '0',
             distribuicao_boleto: '2',
             especie_titulo: '02' }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#digito_agenciaObject

digito da agencia


7
8
9
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 7

def digito_agencia
  @digito_agencia
end

Instance Method Details

#agencia_conta_correnteObject


72
73
74
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 72

def agencia_conta_corrente
  "#{agencia.to_s.rjust(5, '0')}#{digito_agencia}#{conta_corrente.rjust(12, '0')}#{conta_corrente_dv}"
end

#agencia_conta_corrente_dvObject


80
81
82
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 80

def agencia_conta_corrente_dv
  " "
end

#ajusta_nosso_numero(pagamento) ⇒ Object


105
106
107
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 105

def ajusta_nosso_numero(pagamento)
  "#{conta_corrente}#{conta_corrente_dv}#{pagamento.nosso_numero.to_s.rjust(9, '0')}".ljust(20, ' ')
end

#cod_bancoObject


30
31
32
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 30

def cod_banco
  '085'
end

#codigo_baixa(pagamento) ⇒ Object


141
142
143
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 141

def codigo_baixa(pagamento)
  '2'
end

#codigo_convenioObject


46
47
48
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 46

def codigo_convenio
  convenio.ljust(20, ' ')
end

#complemento_headerObject


84
85
86
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 84

def complemento_header
  "#{''.rjust(29, ' ')}"
end

#complemento_p(pagamento) ⇒ Object


96
97
98
99
100
101
102
103
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 96

def complemento_p(pagamento)
  # CAMPO                 TAMANHO
  # conta_corrente        12
  # dv conta corrente     1
  # dv agencia/conta      1
  # ident. titulo         20
  "#{conta_corrente.rjust(12, '0')}#{conta_corrente_dv}#{agencia_conta_corrente_dv}#{ajusta_nosso_numero(pagamento)}"
end

#complemento_trailerObject


88
89
90
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 88

def complemento_trailer
  "#{''.rjust(69, '0')}#{''.rjust(148, ' ')}"
end

#conta_corrente=(valor) ⇒ Object


26
27
28
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 26

def conta_corrente=(valor)
  @conta_corrente = valor.to_s.rjust(7, '0') if valor
end

#conta_corrente_dvObject


76
77
78
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 76

def conta_corrente_dv
  conta_corrente.modulo11(mapeamento: { 10 => 0 })
end

#convenio=(valor) ⇒ Object


22
23
24
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 22

def convenio=(valor)
  @convenio = valor.to_s.rjust(6, '0') if valor
end

#convenio_loteObject


58
59
60
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 58

def convenio_lote
  codigo_convenio
end

#dias_baixa(pagamento) ⇒ Object


145
146
147
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 145

def dias_baixa(pagamento)
  ''.rjust(3, ' ')
end

#identificacao_titulo_empresa(pagamento) ⇒ Object


109
110
111
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 109

def identificacao_titulo_empresa(pagamento)
  pagamento.documento_ou_numero.to_s.ljust(25, " ")
end

#info_contaObject


62
63
64
65
66
67
68
69
70
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 62

def info_conta
  # CAMPO            # TAMANHO
  # agencia          5
  # digito agencia   1
  # conta corrente   12
  # dv da conta      1
  # dv agencia/conta 1
  "#{agencia_conta_corrente}#{agencia_conta_corrente_dv}"
end

#monta_segmento_r(pagamento, nro_lote, contador) ⇒ Object


136
137
138
139
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 136

def monta_segmento_r(pagamento, nro_lote, contador)
  return nil if pagamento.codigo_multa == '0'
  super(pagamento, nro_lote, contador)
end

#nome_bancoObject


34
35
36
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 34

def nome_banco
  'CECRED'.ljust(30, ' ')
end

#tipo_documentoObject


92
93
94
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 92

def tipo_documento
  "1"
end

#total_segmentos(pagamentos) ⇒ Object


132
133
134
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 132

def total_segmentos(pagamentos)
  pagamentos.inject(0) { |total, pagamento| total += pagamento.codigo_multa != '0' ? 3 : 2 }
end

#uso_exclusivo_bancoObject


50
51
52
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 50

def uso_exclusivo_banco
  ''.rjust(20, ' ')
end

#uso_exclusivo_empresaObject


54
55
56
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 54

def uso_exclusivo_empresa
  ''.ljust(20, ' ')
end

#versao_layout_arquivoObject


38
39
40
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 38

def versao_layout_arquivo
  '087'
end

#versao_layout_loteObject


42
43
44
# File 'lib/brcobranca/remessa/cnab240/cecred.rb', line 42

def versao_layout_lote
  '045'
end