Class: Brcobranca::Remessa::Cnab400::SantanderPix

Inherits:
Santander show all
Defined in:
lib/brcobranca/remessa/cnab400/santander_pix.rb

Constant Summary collapse

TIPOS_CHAVE_DICT =
{
  cpf: '1',
  cnpj: '2',
  telefone: '3',
  email: '4',
  chave_aleatoria: '5'
}.freeze

Constants inherited from Base

Base::PAYMENT_CLASSES

Instance Attribute Summary

Attributes inherited from Santander

#codigo_carteira, #codigo_transmissao

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 Santander

#cod_banco, #complemento, #conta_padrao_novo?, #identificador_movimento_complemento, #info_conta, #initialize, #monta_detalhe, #monta_header, #monta_trailer, #movimento_complemento, #nome_banco, #total_titulos, #versao, #zeros

Methods inherited from Base

#cod_banco, #complemento, #data_geracao, #gera_arquivo, #info_conta, #monta_detalhe, #monta_header, #monta_trailer, #nome_banco

Methods inherited from Base

#initialize, #quantidade_titulos_cobranca, #totaliza_valor_titulos, #valor_titulos_carteira

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

This class inherits a constructor from Brcobranca::Remessa::Cnab400::Santander

Instance Method Details

#monta_detalhe_pix(pagamento, sequencial) ⇒ String

Monta Registro Tipo de Pagamento e Dados Qr Code

Parameters:

  • pagamento (PagamentoPix)

    objeto contendo as informacoes referentes ao pagamento via PIX

  • sequencial

    num. sequencial do registro no arquivo

Returns:

  • (String)

Raises:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/brcobranca/remessa/cnab400/santander_pix.rb', line 24

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

  detalhe = '8'                                                        # Codigo do Registro                  9[001]
  detalhe += tipo_pagamento_pix(pagamento.tipo_pagamento_pix)          # Tipo de Pagamento                   9[002]
  detalhe << pagamento.quantidade_pagamentos_pix.to_s.rjust(2, '0')    # Quantidade de Pagamentos possiveis  9[002]
  detalhe << pagamento.tipo_valor_pix.to_s.rjust(1, '0')               # Tipo do Valor Informado             9[001]
  detalhe << pagamento.formata_valor_maximo_pix                        # Valor Maximo                        9[013]
  detalhe << pagamento.formata_percentual_maximo_pix                   # Percentual Maximo                   9[005]
  detalhe << pagamento.formata_valor_minimo_pix                        # Valor Minimo                        9[013]
  detalhe << pagamento.formata_percentual_minimo_pix                   # Percentual Minimo                   9[005]
  detalhe << tipo_chave_dict(pagamento.tipo_chave_dict)                # Tipo de Chave DICT                  X[001]
  detalhe << pagamento.codigo_chave_dict.ljust(77, ' ')                # Codigo Chave DICT                   X[077]
  detalhe << pagamento.txid.to_s.ljust(35, ' ')                        # Codigo de Identificacao do Qr Code  X[035]
  detalhe << ''.rjust(239, ' ')                                        # Reservado (uso banco)               X[239]
  detalhe << sequencial.to_s.rjust(6, '0')                             # numero do registro no arquivo       9[006]
  detalhe
end