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.


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

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


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

def digito_agencia
  @digito_agencia
end

#modalidade_carteiraObject

modalidade da carteira

opcoes:
  11: t

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

def modalidade_carteira
  @modalidade_carteira
end

#versao_aplicativoObject

versao do aplicativo da CAIXA


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

def versao_aplicativo
  @versao_aplicativo
end

Instance Method Details

#cod_bancoObject


56
57
58
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 56

def cod_banco
  '104'
end

#codigo_baixa(pagamento) ⇒ Object


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

def codigo_baixa(pagamento)
  return "1" if pagamento.codigo_protesto.to_s == "3"
  "2"
end

#codigo_convenioObject


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

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

#complemento_headerObject


98
99
100
101
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 98

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

#complemento_p(pagamento) ⇒ Object


115
116
117
118
119
120
121
122
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 115

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


124
125
126
127
128
129
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 124

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


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

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

#convenio=(valor) ⇒ Object


48
49
50
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 48

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

#convenio_loteObject


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

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

#data_mora(pagamento) ⇒ Object


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

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


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

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


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

def dias_baixa(pagamento)
  return "120" if pagamento.codigo_protesto.to_s == "3"
  "000"
end

#exclusivo_servicoObject


103
104
105
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 103

def exclusivo_servico
  "00"
end

#identificacao_titulo_empresa(pagamento) ⇒ Object


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

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

#info_contaObject


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

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


60
61
62
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 60

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

#numero(pagamento) ⇒ Object


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

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

#tipo_documentoObject


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

def tipo_documento
  "2"
end

#uso_exclusivo_bancoObject


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

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

#uso_exclusivo_empresaObject


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

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

#versao_layout_arquivoObject


64
65
66
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 64

def versao_layout_arquivo
  '050'
end

#versao_layout_loteObject


68
69
70
# File 'lib/brcobranca/remessa/cnab240/caixa.rb', line 68

def versao_layout_lote
  '030'
end