Cita:
Empezado por unomasmas
Está claro tu planteamiento y yo tengo esta misma idea, pero aún así, es posible que se generen roturas del encadenamiento. Vamos a considerar el caso más sencillo, el último, el del ejemplo 6.
Uno de los TPVs (TPV1) inicia un ticket. El sistema le asigna el número de factura (el número 22, por ejemplo). Seguidamente el otro (TPV2) inicia otro ticket. Se le asigna el número siguiente (el 23). El TPV2 emite la factura, que encadena con la del registro anterior (la del número 21) y posteriormente se emite la factura del TPV1, o sea, la 22, que encadena con la del 23...
|
El método que utilizas para iniciar una factura o tique es el que siempre se ha hecho, no había necesidad de encadenamiento y por tanto, podías iniciar y terminar el proceso en cualquier momento. Con la entrada de Verifactu, debes cambiar por completo esa filosofía porque ese caso que comentas, puede ocurrir en cualquier software donde exista concurrencia entre los usuarios a la hora de emitir facturas.
La idea es iniciar el proceso de facturación utilizando un contador auxiliar que no es el de factura o tique, por ejemplo, comenzar con una nota de entrega (albarán), ambos usuarios inician el proceso de venta con el contador de notas de entrega (cada uno con su número obtenido), el primero inicia la venta con 2 ítems y posteriormente, aparca el documento porque el cliente no le pasa la tarjeta, el segundo usuario termina su documento y solicita un número de factura bloqueando el contador de facturas para que sólo él pueda obtener un número, si el primer usuario recupera el documento aparcado y quiere emitir la factura en ese mismo momento, se encontrará con el contador bloqueado y tendrá que esperar. Desde que obtiene el número de factura el segundo usuario, genera el registro de facturación xml y desbloquea el contador. Ahora, el primer usuario podrá emitir su factura realizando el mismo proceso.
El proceso de bloqueo es muy rápido, ya que sólo requiere obtener el siguiente número de factura, asignárselo al documento que quiere emitir y generar el Xml con su fecha de creación, la del momento de generación del xml, no del inicio del proceso de venta.
No hay otra manera de asegurar la emisión de facturas en orden cronológico de número y fecha y además, asegurar el encadenamiento con el registro anterior. Al utilizar este contador de notas de entrega aseguras, por ejemplo, desechar el documento en caso de que te hayas equivocado, emitir un albarán en vez de una factura, porque el cliente era un cliente de resumen mensual de albaranes y no te habías percatado, aparcar operaciones como se hace en hostelería cuando gestionas mesas, emitir una factura completa porque el cliente antes de pagar te dice que quiere sus datos en ella, etc..