Class: Brcobranca::Remessa::Cnab400::Credisis

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/remessa/cnab400/credisis.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#aceite, #agencia, #carteira, #conta_corrente, #digito_conta, #empresa_mae, #pagamentos, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from Base

#data_geracao, #gera_arquivo, #monta_header, #monta_trailer

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

Nova instancia do CrediSIS


17
18
19
20
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 17

def initialize(campos = {})
  campos = { aceite: 'N' }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#codigo_cedenteObject

Returns the value of attribute codigo_cedente


6
7
8
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 6

def codigo_cedente
  @codigo_cedente
end

#convenioObject

Returns the value of attribute convenio


6
7
8
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 6

def convenio
  @convenio
end

#documento_cedenteObject

Returns the value of attribute documento_cedente


6
7
8
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 6

def documento_cedente
  @documento_cedente
end

Instance Method Details

#agencia=(valor) ⇒ Object


22
23
24
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 22

def agencia=(valor)
  @agencia = valor.to_s.rjust(4, '0') if valor
end

#carteira=(valor) ⇒ Object


30
31
32
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 30

def carteira=(valor)
  @carteira = valor.to_s.rjust(2, '0') if valor
end

#cod_bancoObject


42
43
44
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 42

def cod_banco
  '097'
end

#complementoString

Complemento do header

Returns:

  • (String)

68
69
70
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 68

def complemento
  sequencial_remessa.to_s.ljust(294, ' ')
end

#conta_corrente=(valor) ⇒ Object


26
27
28
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 26

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

#formata_nosso_numero(nosso_numero) ⇒ Object


72
73
74
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 72

def formata_nosso_numero(nosso_numero)
  "0#{codigo_cedente}#{nosso_numero.rjust(6, '0')}"
end

#info_contaString

Informacoes da conta corrente do cedente

Returns:

  • (String)

54
55
56
57
58
59
60
61
62
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 54

def info_conta
  # CAMPO            TAMANHO
  # agencia          4
  # complemento      1
  # conta corrente   8
  # digito da conta  1
  # complemento      6
  "#{agencia} #{conta_corrente}#{digito_conta}#{''.rjust(6, ' ')}"
end

#monta_detalhe(pagamento, sequencial) ⇒ String

Detalhe do arquivo

Parameters:

  • pagamento (PagamentoCnab400)

    objeto contendo as informacoes referentes ao boleto (valor, vencimento, cliente)

  • sequencial

    num. sequencial do registro no arquivo

Returns:

  • (String)

Raises:


85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 85

def monta_detalhe(pagamento, sequencial)
  raise Brcobranca::RemessaInvalida, pagamento if pagamento.invalid?

  detalhe = '1'                                                     # identificacao transacao               9[01]
  detalhe << Brcobranca::Util::Empresa.new(documento_cedente).tipo  # tipo de identificacao da empresa      9[02]
  detalhe << documento_cedente.to_s.rjust(14, '0')                  # cpf/cnpj da empresa                   9[14]
  detalhe << agencia                                                # agencia                               9[04]
  detalhe << ''.rjust(1, ' ')                                       # brancos                               X[01]
  detalhe << conta_corrente                                         # conta corrente                        9[08]
  detalhe << digito_conta                                           # dac                                   9[01]
  detalhe << ''.rjust(6, ' ')                                       # complemento do registro (brancos)     X[06]
  detalhe << pagamento.documento_ou_numero.to_s.ljust(25)                                      # identificacao do tit. na empresa      X[25]
  detalhe << formata_nosso_numero(pagamento.nosso_numero.to_s)      # nosso numero                          9[11]
  detalhe << ''.rjust(37, ' ')                                      # brancos                               X[37]
  detalhe << pagamento.numero.to_s.rjust(10, '0')         # numero do documento                   X[10]
  detalhe << pagamento.data_vencimento.strftime('%d%m%y')           # data do vencimento                    A[06]
  detalhe << pagamento.formata_valor                                # valor do documento                    9[13]
  detalhe << ''.rjust(11, ' ')                                      # brancos                               X[11]
  detalhe << pagamento.data_emissao.strftime('%d%m%y')              # data de emissao                       9[06]
  detalhe << ''.rjust(4, ' ')                                       # brancos                               X[04]
  detalhe << pagamento.formata_valor_mora(4).ljust(6, '0')          # valor mora ao dia                     9[06]
  detalhe << pagamento.formata_percentual_multa.ljust(6, '0')       # valor multa                           9[06]
  detalhe << ''.rjust(33, ' ')                                      # brancos                               X[33]
  detalhe << pagamento.formata_valor_desconto                       # valor do desconto                     9[13]
  detalhe << pagamento.identificacao_sacado                         # identificacao do pagador              9[02]
  detalhe << pagamento.documento_sacado.to_s.rjust(14, '0')         # documento do pagador                  9[14]
  detalhe << pagamento.nome_sacado.format_size(40)                  # nome do pagador                       A[40]
  detalhe << pagamento.endereco_sacado.format_size(37)              # endereco do pagador                   A[37]
  detalhe << pagamento.bairro_sacado.format_size(15)                # bairro do pagador                     X[15]
  detalhe << pagamento.cep_sacado                                   # cep do pagador                        9[08]
  detalhe << pagamento.cidade_sacado.format_size(15)                # cidade do pagador                     A[15]
  detalhe << pagamento.uf_sacado                                    # uf do pagador                         A[02]
  detalhe << pagamento.nome_avalista.format_size(25)                # nome do sacador/avalista              X[25]
  detalhe << ''.rjust(1, ' ')                                       # complemento do registro               X[01]
  detalhe << ''.rjust(14, ' ')                                      # documento avalista                    X[14] *
  detalhe << pagamento.dias_protesto.rjust(2, '0')                  # quantidade de dias do prazo           9[02]
  detalhe << ''.rjust(1, ' ')                                       # complemento do registro (brancos)     X[01]
  detalhe << sequencial.to_s.rjust(6, '0')                          # numero do registro no arquivo         9[06]
  detalhe
end

#nome_bancoObject


46
47
48
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 46

def nome_banco
  'CENTRALCRED'.ljust(15, ' ')
end

#sequencial_remessa=(valor) ⇒ Object


34
35
36
# File 'lib/brcobranca/remessa/cnab400/credisis.rb', line 34

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