Class: VerifactuRails::Libro::Autochequeo
- Inherits:
-
Object
- Object
- VerifactuRails::Libro::Autochequeo
- Defined in:
- lib/verifactu_rails/libro/autochequeo.rb
Overview
Las comprobaciones que el art. 7.i) de la Orden HAC/1177/2024 obliga a hacer ANTES de generar cada registro:
1.º El último registro de facturación generado está correctamente
encadenado.
2.º La fecha y hora de generación del último registro no es superior en
más de un minuto a la fecha y hora actuales.
DEVUELVE una lista de anomalías; no levanta excepciones. Es deliberado: las FAQs dicen que "será preciso generar el siguiente RF, ya que la facturación por este motivo NUNCA debe interrumpirse". Bloquear la caja por un problema de trazabilidad es peor remedio que la enfermedad.
Constant Summary collapse
- MARGEN_RELOJ =
El minuto del art. 7.i).2.º.
60
Instance Method Summary collapse
-
#anomalias(ahora:) ⇒ Array<Symbol>
Vacío si todo cuadra.
-
#initialize(anterior) ⇒ Autochequeo
constructor
A new instance of Autochequeo.
Constructor Details
#initialize(anterior) ⇒ Autochequeo
Returns a new instance of Autochequeo.
21 22 23 |
# File 'lib/verifactu_rails/libro/autochequeo.rb', line 21 def initialize(anterior) @anterior = anterior end |
Instance Method Details
#anomalias(ahora:) ⇒ Array<Symbol>
Returns vacío si todo cuadra.
27 28 29 30 31 32 33 34 35 |
# File 'lib/verifactu_rails/libro/autochequeo.rb', line 27 def anomalias(ahora:) return [] if anterior.nil? # "salvo cuando se trate del primer registro" fallos = [] fallos << :encadenamiento_roto unless eslabon_cuadra? fallos << :huella_alterada unless anterior.huella_cuadra? fallos << :reloj_hacia_atras if reloj_atrasado?(ahora) fallos end |