Class: Brcobranca::Remessa::Cnab400::Unicred

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

Instance Attribute Summary collapse

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

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

Nova instancia do Unicred


24
25
26
27
28
29
30
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 24

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

  super(campos)
end

Instance Attribute Details

#byte_idtObject

Returns the value of attribute byte_idt


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

def byte_idt
  @byte_idt
end

#codigo_transmissaoObject

Codigo de transmissao fornecido pelo banco


9
10
11
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 9

def codigo_transmissao
  @codigo_transmissao
end

#postoObject

Returns the value of attribute posto


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

def posto
  @posto
end

Instance Method Details

#agencia=(valor) ⇒ Object


32
33
34
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 32

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

#carteira=(valor) ⇒ Object


40
41
42
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 40

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

#cod_bancoObject


44
45
46
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 44

def cod_banco
  '748'
end

#codigo_carteiraString

Codigo da carteira de acordo com a documentacao do Unicred

Returns:

  • (String)

75
76
77
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 75

def codigo_carteira
  codigo_carteira = carteira[1]
end

#complementoString

Complemento do header (no caso do Unicred, sao apenas espacos em branco)

Returns:

  • (String)

67
68
69
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 67

def complemento
  ''.rjust(294, ' ')
end

#conta_corrente=(valor) ⇒ Object


36
37
38
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 36

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

#formata_nosso_numero(nosso_numero) ⇒ String

Retorna o nosso numero

Returns:

  • (String)

86
87
88
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 86

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

#identificador_complementoObject


79
80
81
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 79

def identificador_complemento
  " "
end

#info_contaString

Informacoes da conta corrente do cedente

Returns:

  • (String)

56
57
58
59
60
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 56

def info_conta
  # CAMPO                    TAMANHO
  # codigo da transmissao         20
  "#{codigo_transmissao}"
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:


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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 99

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 << codigo_transmissao                                     # código da transmissao                 9[20]
  detalhe << pagamento.documento_ou_numero.to_s.ljust(25)                                      # numero de controle do participante    X[25]
  detalhe << formata_nosso_numero(pagamento.nosso_numero)           # nosso numero                          X[20]
  detalhe << ''.rjust(25, ' ')                                      # brancos                               X[25]
  detalhe << codigo_carteira                                        # codigo da carteira                    X[01]
  detalhe << pagamento.identificacao_ocorrencia                     # identificacao ocorrencia              9[02]
  detalhe << pagamento.numero.to_s.rjust(10, '0')         # numero do documento                   X[10]
  detalhe << pagamento.data_vencimento.strftime('%d%m%y')           # data do vencimento                    9[06]
  detalhe << pagamento.formata_valor                                # valor do documento                    9[13]
  detalhe << cod_banco                                              # codigo banco                          9[03]
  detalhe << ''.rjust(5, '0')                                       # agencia cobradora - deixar zero       9[05]
  detalhe << '01'                                                   # especie  do titulo                    X[02]
  detalhe << aceite                                                 # aceite (A/N)                          X[01]
  detalhe << pagamento.data_emissao.strftime('%d%m%y')              # data de emissao                       9[06]
  detalhe << "".rjust(4, "0")                                       # instrucao                             9[04]
  detalhe << "0"                                                    # zero                                  9[01]
  detalhe << pagamento.formata_valor_mora(12)                       # valor mora ao dia                     9[12]
  detalhe << pagamento.formata_data_desconto                        # data limite para desconto             9[06]
  detalhe << pagamento.formata_valor_desconto                       # valor do desconto                     9[13]
  detalhe << pagamento.formata_valor_iof                            # valor do iof                          9[13]
  detalhe << pagamento.formata_valor_abatimento                     # valor do abatimento                   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                       X[40]
  detalhe << pagamento.endereco_sacado.format_size(40)              # endereco do pagador                   X[40]
  detalhe << pagamento.bairro_sacado.format_size(12)                # bairro do pagador                     X[12]
  detalhe << pagamento.cep_sacado                                   # cep do pagador                        9[08]
  detalhe << pagamento.cidade_sacado.format_size(15)                # cidade do pagador                     X[15]
  detalhe << pagamento.uf_sacado                                    # uf do pagador                         X[02]
  detalhe << pagamento.nome_avalista.format_size(40)                # nome do sacador/avalista              X[40]
  detalhe << pagamento.dias_protesto.rjust(2, '0')                  # numero de dias para proteste          9[02]
  detalhe << "9"                                                    # moeda                                 9[01]
  detalhe << sequencial.to_s.rjust(6, '0')                          # numero do registro no arquivo         9[06]
  detalhe
end

#nome_bancoObject


48
49
50
# File 'lib/brcobranca/remessa/cnab400/unicred.rb', line 48

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