Class: Brcobranca::Remessa::Cnab240::Caixa

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/remessa/cnab240/caixa.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, #data_geracao, #densidade_gravacao, #dv_agencia_cobradora, #gera_arquivo, #hora_geracao, #monta_header_arquivo, #monta_header_lote, #monta_lote, #monta_segmento_p, #monta_segmento_q, #monta_segmento_r, #monta_trailer_arquivo, #monta_trailer_lote, #total_segmentos

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 = {}) ⇒ Caixa

Returns a new instance of Caixa.



39
40
41
42
43
44
45
46
47
48
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 39

def initialize(campos = {})
  # Modalidade carteira: 14 (título Registrado emissão Cedente)
  campos = { modalidade_carteira: '14',
             emissao_boleto: '2',
             codigo_baixa: '2',
             dias_baixa: '000',
             distribuicao_boleto: '0',
             especie_titulo: '99' }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#digito_agenciaObject

digito da agencia



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

def digito_agencia
  @digito_agencia
end

#modalidade_carteiraObject

modalidade da carteira

opcoes:
  11: título Registrado emissão CAIXA
  14: título Registrado emissão Cedente
  21: título Sem Registro emissão CAIXA


16
17
18
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 16

def modalidade_carteira
  @modalidade_carteira
end

#versao_aplicativoObject

versao do aplicativo da CAIXA



10
11
12
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 10

def versao_aplicativo
  @versao_aplicativo
end

Instance Method Details

#cod_bancoObject



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

def cod_banco
  '104'
end

#codigo_baixa(pagamento) ⇒ Object



150
151
152
153
154
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 150

def codigo_baixa(pagamento)
  return '1' if pagamento.codigo_protesto.to_s == '3'

  '2'
end

#codigo_convenioObject



74
75
76
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 74

def codigo_convenio
  ''.rjust(20, '0')
end

#complemento_headerObject



100
101
102
103
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 100

def complemento_header
  versao = versao_aplicativo || ''
  "#{versao.rjust(4, ' ')}#{''.rjust(25, ' ')}"
end

#complemento_p(pagamento) ⇒ Object



117
118
119
120
121
122
123
124
125
126
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 117

def complemento_p(pagamento)
  # CAMPO                 TAMANHO
  # convenio              6
  # uso CAIXA             11
  # modalidade carteira   2
  # ident. titulo         15
  "#{convenio.rjust(6,
                    '0')}#{''.rjust(11,
                                    '0')}#{modalidade_carteira}#{pagamento.nosso_numero.to_s.rjust(15, '0')}"
end

#complemento_rObject



128
129
130
131
132
133
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 128

def complemento_r
  segmento_r = ''
  segmento_r += ''.rjust(50, ' ')  # e-mail do sacado     50
  segmento_r << ''.rjust(11, ' ')  # exclusivo FEBRABAN   11
  segmento_r
end

#complemento_trailerObject



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

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

#convenio=(valor) ⇒ Object



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

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

#convenio_loteObject



86
87
88
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 86

def convenio_lote
  "#{convenio.rjust(6, '0')}#{''.rjust(14, '0')}"
end

#data_mora(pagamento) ⇒ Object



162
163
164
165
166
167
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 162

def data_mora(pagamento)
  return ''.rjust(8, '0') unless %w[1 2].include? pagamento.tipo_mora

  data_mora = pagamento.data_vencimento + 1
  data_mora.strftime('%d%m%Y')
end

#data_multa(pagamento) ⇒ Object



143
144
145
146
147
148
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 143

def data_multa(pagamento)
  return ''.rjust(8, '0') if pagamento.codigo_multa == '0'

  data_multa = pagamento.data_vencimento + 1
  data_multa.strftime('%d%m%Y')
end

#dias_baixa(pagamento) ⇒ Object



156
157
158
159
160
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 156

def dias_baixa(pagamento)
  return '120' if pagamento.codigo_protesto.to_s == '3'

  '000'
end

#exclusivo_servicoObject



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

def exclusivo_servico
  '00'
end

#identificacao_titulo_empresa(pagamento) ⇒ Object



139
140
141
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 139

def identificacao_titulo_empresa(pagamento)
  "#{pagamento.formata_documento_ou_numero(11, '0')}#{''.rjust(14, ' ')}"
end

#info_contaObject



90
91
92
93
94
95
96
97
98
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 90

def info_conta
  # CAMPO            # TAMANHO
  # agencia          5
  # digito agencia   1
  # cod. convenio    6
  # uso CAIXA        7
  # uso CAIXA        1
  "#{agencia.to_s.rjust(5, '0')}#{digito_agencia}#{convenio}#{''.rjust(7, '0')}0"
end

#nome_bancoObject



62
63
64
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 62

def nome_banco
  'CAIXA ECONOMICA FEDERAL'.ljust(30, ' ')
end

#numero(pagamento) ⇒ Object



135
136
137
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 135

def numero(pagamento)
  "#{pagamento.formata_documento_ou_numero(11, '0')}#{''.rjust(4, ' ')}"
end

#tipo_documentoObject



113
114
115
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 113

def tipo_documento
  '2'
end

#uso_exclusivo_bancoObject



78
79
80
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 78

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

#uso_exclusivo_empresaObject



82
83
84
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 82

def uso_exclusivo_empresa
  'REMESSA-PRODUCAO'.ljust(20, ' ')
end

#versao_layout_arquivoObject



66
67
68
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 66

def versao_layout_arquivo
  '050'
end

#versao_layout_loteObject



70
71
72
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 70

def versao_layout_lote
  '030'
end