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.


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

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

Parcela - 02 posições (11 a 12) - “01” se parcela única


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

def byte_idt
  @byte_idt
end

#modalidade_carteiraObject

Returns the value of attribute modalidade_carteira


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

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


11
12
13
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 11

def posto
  @posto
end

Instance Method Details

#cod_bancoObject


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

def cod_banco
  '748'
end

#codigo_baixa(pagamento) ⇒ Object


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

def codigo_baixa(pagamento)
  '1'
end

#codigo_convenioObject Also known as: convenio_lote


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

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

#codigo_desconto(pagamento) ⇒ Object


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

def codigo_desconto(pagamento)
  '1'
end

#complemento_headerObject


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

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

#complemento_p(pagamento) ⇒ Object


133
134
135
136
137
138
139
140
# File 'lib/brcobranca/remessa/cnab240/sicredi.rb', line 133

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


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

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


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

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


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

def densidade_gravacao
  '01600'
end

#dias_baixa(pagamento) ⇒ Object


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

def dias_baixa(pagamento)
  '060'
end

#digito_agenciaObject


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

def digito_agencia
  " "
end

#dv_agencia_cobradoraObject


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

def dv_agencia_cobradora
  " "
end

#formata_nosso_numero(nosso_numero) ⇒ String

Retorna o nosso numero

Returns:

  • (String)

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

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

#info_contaObject


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

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)

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

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


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

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

#uso_exclusivo_bancoObject


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

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

#uso_exclusivo_empresaObject


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

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

#versao_layout_arquivoObject


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

def versao_layout_arquivo
  '081'
end

#versao_layout_loteObject


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

def versao_layout_lote
  '040'
end