# -*- encoding : utf-8 -*-
module GetnetApi
class Boleto
# string 12 characters
# Denominado pelos bancos como "Nosso Número". É a identificação única do boleto no sistema de
# cobrança. É composto por regras que variam em função do banco e do serviço de cobrança.
# Por exemplo, no caso do Santander existem duas formas de se numerar. 1) Se cliente quem numera, deve informar o dígito verificador (DV); 2) Se o cliente omitir o número, o Banco fica encarregado da geração de um sequêncial, sem um DV. (sem máscara)
attr_accessor :our_number
# string 15 characters
# Seu Número. Número controlado pelo cliente, geralmente é gerenciado pelo sistema que está gerando o boleto. (sem máscara)
attr_accessor :document_number
# string
# Data do vencimento do boleto. Caso não seja informado, será considerado o número de dias padrão pré-cadastrado para o vencimento.
attr_accessor :expiration_date
# string
# Instruções a serem impressas no boleto (colocar quebra de linha a cada 100 caracteres, máximo 10 linhas).
attr_accessor :instructions
# string <= 40 characters
# Banco provedor. "santander"
attr_accessor :provider
# Validações do Rails 3
include ActiveModel::Validations
# validates :valor_total, length: { maximum: }
# validates :expiration_date, length: { maximum: }
validates :moeda, length: { maximum: 3 }
validates :our_number , length: { maximum: 12 }
validates :document_number, length: { maximum: 15 }
validates :instructions, length: { maximum: 1000 }
validates :provider, length: { maximum: 40 }
# Nova instancia da classe Boleto
# @param [Hash] campos
def initialize(campos = {})
campos.each do |campo, valor|
if GetnetApi::Boleto.public_instance_methods.include? "#{campo}=".to_sym
send "#{campo}=", valor
end
end
end
# Montar o Hash de dados do pagamento no padrão utilizado pela Getnet
def to_request
boleto = {
our_number: self.our_number,
document_number: self.document_number,
expiration_date: self.expiration_date,
instructions: self.instructions,
provider: self.provider
}
return boleto
end
end
end