Class: BoletoBancario::Calculos::FatorVencimento
- Inherits:
-
String
- Object
- String
- BoletoBancario::Calculos::FatorVencimento
- Defined in:
- lib/boleto_bancario/calculos/fator_vencimento.rb
Overview
Classe responsável pelo cálculo de Fator de Vencimento do boleto bancário.
Descricão
Conforme Carta-circular 002926 do Banco Central do Brasil, de 24/07/2000, recomenda-se a indicação do Fator de Vencimento no Código de Barras. A partir de 02/04/2001, o Banco acolhedor/recebedor não será mais responsável por eventuais diferenças de recebimento de BOLETOs fora do prazo, ou sem a indicação do fator de vencimento.
Forma para obtenção do Fator de Vencimento
Calcula-se o número de dias corridos entre a data base (“Fixada” em 07/10/1997) e a do vencimento desejado:
Vencimento desejado: 04/07/2000
Data base : - 07/10/1997
# => 1001
Atenção
Caso ocorra divergência entre a data impressa no campo “data de vencimento” e a constante no código de barras, o recebimento se dará da seguinte forma:
-
Quando pago por sistemas eletrônicos (Home-Banking, Auto-Atendimento, Internet, SISPAG, telefone, etc.), prevalecerá à representada no “código de barras”;
-
Quando quitado na rede de agências, diretamente no caixa, será considerada a data impressa no campo “vencimento” do BOLETO.
Instance Attribute Summary collapse
-
#base_date ⇒ Object
readonly
Returns the value of attribute base_date.
Instance Method Summary collapse
-
#calculate ⇒ String
Cálculo da data de vencimento com a data base.
-
#expiration_date_minus_base_date ⇒ Integer
private
Cálculo da data de vencimento com a data base.
-
#initialize(expiration_date, base_date = Date.new(1997, 10, 7)) ⇒ String
constructor
Retorna o resultado do cálculo.
Constructor Details
#initialize(expiration_date, base_date = Date.new(1997, 10, 7)) ⇒ String
Returns retorna o resultado do cálculo. Deve conter 4 dígitos.
59 60 61 62 63 64 65 66 |
# File 'lib/boleto_bancario/calculos/fator_vencimento.rb', line 59 def initialize(expiration_date, base_date = Date.new(1997, 10, 7)) @base_date = base_date @expiration_date = expiration_date if @expiration_date.present? super(calculate) end end |
Instance Attribute Details
#base_date ⇒ Object (readonly)
Returns the value of attribute base_date.
45 46 47 |
# File 'lib/boleto_bancario/calculos/fator_vencimento.rb', line 45 def base_date @base_date end |
Instance Method Details
#calculate ⇒ String
Cálculo da data de vencimento com a data base.
72 73 74 |
# File 'lib/boleto_bancario/calculos/fator_vencimento.rb', line 72 def calculate expiration_date_minus_base_date.to_s.rjust(4, '0') end |
#expiration_date_minus_base_date ⇒ Integer
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Cálculo da data de vencimento com a data base. Chamando #to_i para não retornar um Float.
82 83 84 |
# File 'lib/boleto_bancario/calculos/fator_vencimento.rb', line 82 def expiration_date_minus_base_date (@expiration_date - @base_date).to_i end |