Class: Brcobranca::Remessa::Cnab240::Sicredi

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

Direct Known Subclasses

Unicred

Instance Attribute Summary collapse

Attributes inherited from Base

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

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

#complemento_r, #data_geracao, #data_multa, #exclusivo_servico, #gera_arquivo, #hora_geracao, #identificacao_titulo_empresa, #monta_header_arquivo, #monta_header_lote, #monta_lote, #monta_segmento_p, #monta_segmento_q, #monta_segmento_r, #monta_trailer_lote, #numero, #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 = {}) ⇒ Sicredi

Returns a new instance of Sicredi.



23
24
25
26
27
28
29
30
31
32
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 23

def initialize(campos = {})
  campos = { emissao_boleto: '2',
             distribuicao_boleto: '2',
             especie_titulo: '03',
             parcela: '01',
             modalidade_carteira: '01',
             forma_cadastramento: '1',
             tipo_documento: '1' }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#byte_idtObject

Returns the value of attribute byte_idt.



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

def byte_idt
  @byte_idt
end

#modalidade_carteiraObject

Returns the value of attribute modalidade_carteira.



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

def modalidade_carteira
  @modalidade_carteira
end

#parcelaObject

Returns the value of attribute parcela.



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

def parcela
  @parcela
end

#postoObject

Returns the value of attribute posto.



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

def posto
  @posto
end

Instance Method Details

#cod_bancoObject



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

def cod_banco
  '748'
end

#codigo_baixa(_pagamento) ⇒ Object



158
159
160
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 158

def codigo_baixa(_pagamento)
  '1'
end

#codigo_convenioObject Also known as: convenio_lote



70
71
72
73
74
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 70

def codigo_convenio
  # CAMPO                TAMANHO
  # num. convenio        20 BRANCOS
  ''.rjust(20, ' ')
end

#codigo_desconto(_pagamento) ⇒ Object



154
155
156
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 154

def codigo_desconto(_pagamento)
  '1'
end

#complemento_headerObject



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

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

#complemento_p(pagamento) ⇒ Object



138
139
140
141
142
143
144
145
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 138

def complemento_p(pagamento)
  # CAMPO                   TAMANHO
  # conta corrente          12
  # digito conta            1
  # digito agencia/conta    1
  # ident. titulo no banco  20
  "#{conta_corrente.rjust(12, '0')}#{digito_conta} #{formata_nosso_numero(pagamento.nosso_numero)}"
end

#complemento_trailerObject



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 92

def complemento_trailer
  # CAMPO                               TAMANHO
  # Qt. Títulos em Cobrança Simples     6
  # Vl. Títulos em Carteira Simples     15 + 2 decimais
  # Qt. Títulos em Cobrança Vinculada   6
  # Vl. Títulos em Carteira Vinculada   15 + 2 decimais
  # Qt. Títulos em Cobrança Caucionada  6
  # Vl. Títulos em Carteira Caucionada  15 + 2 decimais
  # Qt. Títulos em Cobrança Descontada  6
  # Vl. Títulos em Carteira Descontada  15 + 2 decimais
  total_cobranca_simples    = ''.rjust(23, '0')
  total_cobranca_vinculada  = ''.rjust(23, '0')
  total_cobranca_caucionada = ''.rjust(23, '0')
  total_cobranca_descontada = ''.rjust(23, '0')

  "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}" \
  "#{total_cobranca_descontada}".ljust(217, ' ')
end

#data_mora(pagamento) ⇒ Object



166
167
168
169
170
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 166

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

  pagamento.data_vencimento.next_day.strftime('%d%m%Y')
end

#densidade_gravacaoObject



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

def densidade_gravacao
  '01600'
end

#dias_baixa(_pagamento) ⇒ Object



162
163
164
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 162

def dias_baixa(_pagamento)
  '060'
end

#digito_agenciaObject



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

def digito_agencia
  ' '
end

#dv_agencia_cobradoraObject



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

def dv_agencia_cobradora
  ' '
end

#formata_nosso_numero(nosso_numero) ⇒ String

Retorna o nosso numero

Returns:

  • (String)


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

def formata_nosso_numero(nosso_numero)
  nosso_numero.somente_numeros.ljust(20, ' ')
end

#info_contaObject



78
79
80
81
82
83
84
85
86
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 78

def info_conta
  # CAMPO                  TAMANHO
  # agencia                5
  # digito agencia         1
  # conta corrente         12
  # digito conta           1
  # digito agencia/conta   1
  "#{agencia.rjust(5, '0')}#{digito_agencia}#{conta_corrente.rjust(12, '0')}#{digito_conta} "
end

#monta_trailer_arquivo(nro_lotes, sequencial) ⇒ String

Monta o registro trailer do arquivo

Parameters:

  • nro_lotes (Integer)

    numero de lotes no arquivo

  • sequencial (Integer)

    numero de registros(linhas) no arquivo

Returns:

  • (String)


120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 120

def monta_trailer_arquivo(nro_lotes, sequencial)
  # CAMPO                     TAMANHO
  # codigo banco              3
  # lote de servico           4
  # tipo de registro          1
  # uso FEBRABAN              9
  # nro de lotes              6
  # nro de registros(linhas)  6
  # uso FEBRABAN              211
  "#{cod_banco}99999#{''.rjust(9,
                               ' ')}#{nro_lotes.to_s.rjust(6,
                                                           '0')}#{sequencial.to_s.rjust(6,
                                                                                        '0')}#{''.rjust(6,
                                                                                                        '0')}#{''.rjust(
                                                                                                          205, ' '
                                                                                                        )}"
end

#nome_bancoObject



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

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

#uso_exclusivo_bancoObject



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

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

#uso_exclusivo_empresaObject



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

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

#versao_layout_arquivoObject



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

def versao_layout_arquivo
  '081'
end

#versao_layout_loteObject



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

def versao_layout_lote
  '040'
end