Class: Brcobranca::Remessa::Cnab240::Ailos

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/remessa/cnab240/ailos.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 = {}) ⇒ Ailos

Returns a new instance of Ailos.



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

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



8
9
10
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 8

def digito_agencia
  @digito_agencia
end

Instance Method Details

#agencia_conta_correnteObject



73
74
75
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 73

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



81
82
83
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 81

def agencia_conta_corrente_dv
  ' '
end

#ajusta_nosso_numero(pagamento) ⇒ Object



107
108
109
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 107

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

#cod_bancoObject



31
32
33
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 31

def cod_banco
  '085'
end

#codigo_baixa(_pagamento) ⇒ Object



144
145
146
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 144

def codigo_baixa(_pagamento)
  '2'
end

#codigo_convenioObject



47
48
49
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 47

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

#complemento_headerObject



85
86
87
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 85

def complemento_header
  ''.rjust(29, ' ').to_s
end

#complemento_p(pagamento) ⇒ Object



97
98
99
100
101
102
103
104
105
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 97

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



89
90
91
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 89

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

#conta_corrente=(valor) ⇒ Object



27
28
29
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 27

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

#conta_corrente_dvObject



77
78
79
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 77

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

#convenio=(valor) ⇒ Object



23
24
25
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 23

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

#convenio_loteObject



59
60
61
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 59

def convenio_lote
  codigo_convenio
end

#dias_baixa(_pagamento) ⇒ Object



148
149
150
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 148

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

#identificacao_titulo_empresa(pagamento) ⇒ Object



111
112
113
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 111

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

#info_contaObject



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

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



138
139
140
141
142
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 138

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

  super(pagamento, nro_lote, contador)
end

#nome_bancoObject



35
36
37
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 35

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

#tipo_documentoObject



93
94
95
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 93

def tipo_documento
  '1'
end

#total_segmentos(pagamentos) ⇒ Object



134
135
136
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 134

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

#uso_exclusivo_bancoObject



51
52
53
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 51

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

#uso_exclusivo_empresaObject



55
56
57
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 55

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

#versao_layout_arquivoObject



39
40
41
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 39

def versao_layout_arquivo
  '087'
end

#versao_layout_loteObject



43
44
45
# File 'lib/brcobranca/remessa/cnab240/ailos.rb', line 43

def versao_layout_lote
  '045'
end