Ver Mensaje Individual
  #2  
Antiguo 05-09-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 344
Reputación: 2
Jarogo08 Va por buen camino
Cita:
Empezado por aleixep Ver Mensaje
¡Buenos días! Una preguntilla para los que implementáis el Verifactu como un servicio. En nuestro caso, tenemos un servicio de Windows (externo del SIF) que detecta cuando hay nuevas facturas y las envía a la AEAT. Las empresas tienen un servidor central, donde está la base de datos, el servicio y una instancia del SIF; si hay otros ordenadores en la tienda, sus instancias del SIF se conectan a la base de datos de su servidor central. Por lo tanto, hay una única base de datos y un único servicio, aunque varias instancias del SIF.

Queremos poder detectar cuando el servicio no esté corriendo para avisar a todos los usuarios del SIF que se ha parado y que debe activarse para seguir facturando. Habíamos pensado el siguiente planteamiento: cuando se inicia el servicio, se guarda en la base de datos, en un campo booleano, que el servicio está activo. Cuando se para, se guarda en ese campo que se ha parado. Esto emitiría un evento de la base de datos, lo que permitiría avisar instantáneamente el SIF.

Por otro lado, cada hora se actualizaría un campo con la fecha y hora actual, para que si por algún motivo se ha cerrado el servicio sin que haya podido avisar (se ha apagado repentinamente el ordenador, por ejemplo) se pueda mirar si ha pasado más de una hora desde la fecha guardada, lo que indicaría que también está cerrado. El SIF periódicamente (cada hora y también al realizar acciones concretas) consultaría ese campo para determinar si el servicio está abierto o no.

Este es el planteamiento que teníamos pensado para detectar si el servicio está abierto o no, pero me gustaría preguntar qué procedimiento usáis vosotros, para ver si hay alguna forma mejor de hacerlo. ¡Gracias por vuestra ayuda!

Nosotros lo hacemos así:

Cuando vamos a crear un ticket o una factura (que son los dos documentos que se envían a Verifactu) hacemos antes una consulta a la tabla de registros de facturación. Si hay alguno pendiente de enviar de más de 240 segundos (el tiempo que marca Hacienda para que un registro vaya marcado como incidencia), sacamos un aviso y preguntamos si quiere continuar.

El aviso es del tipo: "Existen registros de más de 240 segundos de antiguedad pendientes de enviar. ¿Quieres continuar igualmente?"

De esta manera, si por ejemplo tienes 5 facturas sin enviar porque está el servicio parado, te avisa para que decidas si quieres revisar el problema antes de acumular una sexta, una séptima, etc.
Pero puedes decidir seguir generando facturas si quieres (porque a lo mejor el problema es que esa mañana estás sin internet y eres consciente)

Espero que te sirva
Responder Con Cita