Class: VerifactuRails::RegistroAnterior

Inherits:
Object
  • Object
show all
Defined in:
lib/verifactu_rails/registro.rb

Overview

Identificación de la factura anterior de la cadena (sf:EncadenamientoFactura- AnteriorType). No basta con la huella previa: el registro anterior se identifica por emisor, serie y fecha además del hash.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id_emisor:, num_serie:, fecha_expedicion:, huella:) ⇒ RegistroAnterior

Returns a new instance of RegistroAnterior.



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/verifactu_rails/registro.rb', line 35

def initialize(id_emisor:, num_serie:, fecha_expedicion:, huella:)
  @id_emisor = Formato.nif(id_emisor, 'IDEmisorFactura anterior')
  @num_serie = Formato.num_serie(num_serie)
  @fecha_expedicion = Formato.fecha(fecha_expedicion)
  @huella = Formato.limitar(huella, 'Huella anterior', 64)

  unless @huella.match?(Huella::PATRON_HUELLA)
    raise ValidacionError,
          "La huella anterior debe ser SHA-256 hex en MAYÚSCULAS: #{@huella.inspect}"
  end
end

Instance Attribute Details

#fecha_expedicionObject (readonly)

Returns the value of attribute fecha_expedicion.



33
34
35
# File 'lib/verifactu_rails/registro.rb', line 33

def fecha_expedicion
  @fecha_expedicion
end

#huellaObject (readonly)

Returns the value of attribute huella.



33
34
35
# File 'lib/verifactu_rails/registro.rb', line 33

def huella
  @huella
end

#id_emisorObject (readonly)

Returns the value of attribute id_emisor.



33
34
35
# File 'lib/verifactu_rails/registro.rb', line 33

def id_emisor
  @id_emisor
end

#num_serieObject (readonly)

Returns the value of attribute num_serie.



33
34
35
# File 'lib/verifactu_rails/registro.rb', line 33

def num_serie
  @num_serie
end

Instance Method Details

#a_paresObject



47
48
49
50
# File 'lib/verifactu_rails/registro.rb', line 47

def a_pares
  { 'IDEmisorFactura' => id_emisor, 'NumSerieFactura' => num_serie,
    'FechaExpedicionFactura' => fecha_expedicion, 'Huella' => huella }
end