Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Registros de Facturacion y Eventos (XML)
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 1 Semana
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Numeración de tickets

Buenos días a todos

Quería plantearos un problema que tenemos, a ver cómo lo habéis orientado vosotros.

En el caso de las facturas, no vemos problema con la numeración: como siempre tenemos un albarán previo, al momento de facturar coge el número que le corresponde.
Ejemplo: yo estoy haciendo el albarán 1 y mi compañero el albarán 2. Si mi compañero termina antes su albarán, su factura va a ser la número 1 y la mía la número 2. Y esa numeración va a ser la que se envíe a Verifactu. Esto es correcto porque tenemos 2 documentos distintos (albaranes y facturas)


Ahora el lío viene con los tickets, en el que al menos nosotros NO tenemos 2 documentos (preticket y ticket, o como queráis llamarle).
Imaginad que yo estoy haciendo el ticket 1 y mi compañero el ticket 2. Si mi compañero termina antes su ticket (para nosotros terminarlo significa pasarle la fase de pago), tiene que ser el número 1 en Verifactu, y yo cuando termine el mío tendrá que ser el número 2. Pero claro, sólo tenemos una tabla y el número de ticket es clave primaria, no podemos cambiarle el valor según se le vayan pasando la fase de pago.
Lo que hemos hecho es aparte de tener el campo NumeroTicket crear el campo NumeroTicketVerifactu, que mientras no se finaliza el ticket está a 0 y cuando se finaliza es cuando se le da valor. De esta manera, el ticket que hice yo tendrá NumeroTicket=1 y NumeroTicketVerifactu=2 y el ticket de mi compañero tendrá NumeroTicket=2 y NumeroTicketVerifactu=1.

Y a la hora de la impresión y de mandar a Verifactu el campo que tenemos en cuenta es NumeroTicketVerifactu.

¿se os dió este problema a vosotros? ¿Como lo habéis planteado?

Muchas gracias!
Responder Con Cita
  #2  
Antiguo Hace 6 Días
Galahad Galahad is online now
Miembro
 
Registrado: abr 2007
Posts: 240
Poder: 19
Galahad Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Buenos días a todos

Quería plantearos un problema que tenemos, a ver cómo lo habéis orientado vosotros.

En el caso de las facturas, no vemos problema con la numeración: como siempre tenemos un albarán previo, al momento de facturar coge el número que le corresponde.
Ejemplo: yo estoy haciendo el albarán 1 y mi compañero el albarán 2. Si mi compañero termina antes su albarán, su factura va a ser la número 1 y la mía la número 2. Y esa numeración va a ser la que se envíe a Verifactu. Esto es correcto porque tenemos 2 documentos distintos (albaranes y facturas)


Ahora el lío viene con los tickets, en el que al menos nosotros NO tenemos 2 documentos (preticket y ticket, o como queráis llamarle).
Imaginad que yo estoy haciendo el ticket 1 y mi compañero el ticket 2. Si mi compañero termina antes su ticket (para nosotros terminarlo significa pasarle la fase de pago), tiene que ser el número 1 en Verifactu, y yo cuando termine el mío tendrá que ser el número 2. Pero claro, sólo tenemos una tabla y el número de ticket es clave primaria, no podemos cambiarle el valor según se le vayan pasando la fase de pago.
Lo que hemos hecho es aparte de tener el campo NumeroTicket crear el campo NumeroTicketVerifactu, que mientras no se finaliza el ticket está a 0 y cuando se finaliza es cuando se le da valor. De esta manera, el ticket que hice yo tendrá NumeroTicket=1 y NumeroTicketVerifactu=2 y el ticket de mi compañero tendrá NumeroTicket=2 y NumeroTicketVerifactu=1.

Y a la hora de la impresión y de mandar a Verifactu el campo que tenemos en cuenta es NumeroTicketVerifactu.

¿se os dió este problema a vosotros? ¿Como lo habéis planteado?

Muchas gracias!
Puedes asignar el número de ticket en el momento que se finaliza el ticket, de esa manera pueden haber varios tickets 'en proceso' , cuando se finalice se asigna el número y se envia.
Responder Con Cita
  #3  
Antiguo Hace 6 Días
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por Galahad Ver Mensaje
Puedes asignar el número de ticket en el momento que se finaliza el ticket, de esa manera pueden haber varios tickets 'en proceso' , cuando se finalice se asigna el número y se envia.

Muchas gracias Galahad


El problema es que la clave primaria de mi tabla de tickets es Ejercicio/Serie/Numero, y lo que dices me obligaría a cambiar la clave de la tabla (para que el Numero estuviera a 0 hasta que se finalizase). Y no me gusta nada esa idea porque me cambiaría la estructura de la tabla, con lo que tendría que cambiar código en todos los sitios donde se consultan/borran/crean/actualizan datos de esa tabla.
Responder Con Cita
  #4  
Antiguo Hace 6 Días
Galahad Galahad is online now
Miembro
 
Registrado: abr 2007
Posts: 240
Poder: 19
Galahad Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Muchas gracias Galahad


El problema es que la clave primaria de mi tabla de tickets es Ejercicio/Serie/Numero, y lo que dices me obligaría a cambiar la clave de la tabla (para que el Numero estuviera a 0 hasta que se finalizase). Y no me gusta nada esa idea porque me cambiaría la estructura de la tabla, con lo que tendría que cambiar código en todos los sitios donde se consultan/borran/crean/actualizan datos de esa tabla.
Nosotros tenemos una estructura similar, una clave primaria como comentas,, pero utilizamos de cara al cliente y a todos los efectos del ticket otro campo que llamamos 'identificador' que es el que aparece como número de ticket a todos los efectos . Este número es que se asigna al finalizar el ticket. De esa manera, se evitan los huecos en la numeración.
Responder Con Cita
  #5  
Antiguo Hace 6 Días
rdea rdea is offline
Registrado
 
Registrado: ene 2025
Posts: 3
Poder: 0
rdea Va por buen camino
Nosotros tenémos un esquema parecido donde serie tambien se corresponde al numero de terminal.
Por ejemplo, la serie 1 es para facturas y luego cada ticket la seríe sería la del terminal que este usando(por ejemplo si tenemos 3 terminales le asignamos el número de serie 25,26 y 27. Así no se pisan los numeros y cada equipo tiene su terminal).
Al hacer la factura recapitulativa de esos tickets si pasa a tener la serie un ESA FACTURA, la de recapitulación. A ver si por ahí te ayuda. un saludo!
Responder Con Cita
  #6  
Antiguo Hace 2 Días
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Muchas gracias Galahad


El problema es que la clave primaria de mi tabla de tickets es Ejercicio/Serie/Numero, y lo que dices me obligaría a cambiar la clave de la tabla (para que el Numero estuviera a 0 hasta que se finalizase). Y no me gusta nada esa idea porque me cambiaría la estructura de la tabla, con lo que tendría que cambiar código en todos los sitios donde se consultan/borran/crean/actualizan datos de esa tabla.
Es que has de hacer eso mismo, no has de asignar el numero de ticket a encolar hasta el momento mismo de imprimir, por mil motivos, como los que te he comentado mas arriba.
O duplicar esa tabla, como por ejemplo no definitiva, con sus numeraciones x y en el momento de facturala copiarla a la definitiva y alli si asignar las numeraciones definitivas.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #7  
Antiguo Hace 1 Día
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
no has de asignar el numero de ticket a encolar hasta el momento mismo de imprimir, por mil motivos, como los que te he comentado mas arriba.
O duplicar esa tabla, como por ejemplo no definitiva, con sus numeraciones x y en el momento de facturala copiarla a la definitiva y alli si asignar las numeraciones definitivas.

El numero de ticket lo tengo que asignar porque es campo clave, y no puedo tener x tickets sin ese número informado (a 0) porque la tabla no me lo permite. A no ser que cambie la clave primaria de la tabla.

Lo de duplicar la tabla es irte a la opción de un documento previo, que está claro que funcionaría.

El problema es que esas dos opciones son las que quiero evitar, porque me suponen un cambio grande en la estructura. Al final estoy haciendo pruebas con lo que mencionaba más arriba (crear un los campos Ejercicio-Serie-Numero Verifactu, que sólo se asignan correlativamente al momento de finalizar el ticket). Así en principio me está funcionando, ya veré si me saltan incidencias cuando esto empiece en serio
Responder Con Cita
  #8  
Antiguo Hace 1 Hora
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
El numero de ticket lo tengo que asignar porque es campo clave, y no puedo tener x tickets sin ese número informado (a 0) porque la tabla no me lo permite. A no ser que cambie la clave primaria de la tabla.

Lo de duplicar la tabla es irte a la opción de un documento previo, que está claro que funcionaría.

El problema es que esas dos opciones son las que quiero evitar, porque me suponen un cambio grande en la estructura. Al final estoy haciendo pruebas con lo que mencionaba más arriba (crear un los campos Ejercicio-Serie-Numero Verifactu, que sólo se asignan correlativamente al momento de finalizar el ticket). Así en principio me está funcionando, ya veré si me saltan incidencias cuando esto empiece en serio
No he leído todo lo que comentas, pero ten en cuenta de presentar en los tiquets esa concatenación que haces para verifactu y no pongas la que asignas autonumerica o de clave de indice unica en la tabla(como numero de tiquet), si no no es legal. Es importante la secuencialidad, tanto en el número de tiquet como en el orden cronológico, quizás permitan algún desfase de segundos en el que el próximo tiquet sea anterior al primero en cuanto a orden cronológico, ya que hay que tener en cuenta que puede haber varios dispostivos atacando a una sola base de datos y pueden tener desincronizacion de segundos, y la normativa te permite 1 minuto de desfase, pero no más.

Última edición por ermendalenda fecha: Hace 1 Hora a las 12:19:14.
Responder Con Cita
  #9  
Antiguo Hace 6 Días
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.905
Poder: 22
newtron Va camino a la fama
Cita:
Empezado por Jarogo08 Ver Mensaje
Buenos días a todos

Quería plantearos un problema que tenemos, a ver cómo lo habéis orientado vosotros.

En el caso de las facturas, no vemos problema con la numeración: como siempre tenemos un albarán previo, al momento de facturar coge el número que le corresponde.
Ejemplo: yo estoy haciendo el albarán 1 y mi compañero el albarán 2. Si mi compañero termina antes su albarán, su factura va a ser la número 1 y la mía la número 2. Y esa numeración va a ser la que se envíe a Verifactu. Esto es correcto porque tenemos 2 documentos distintos (albaranes y facturas)


Ahora el lío viene con los tickets, en el que al menos nosotros NO tenemos 2 documentos (preticket y ticket, o como queráis llamarle).
Imaginad que yo estoy haciendo el ticket 1 y mi compañero el ticket 2. Si mi compañero termina antes su ticket (para nosotros terminarlo significa pasarle la fase de pago), tiene que ser el número 1 en Verifactu, y yo cuando termine el mío tendrá que ser el número 2. Pero claro, sólo tenemos una tabla y el número de ticket es clave primaria, no podemos cambiarle el valor según se le vayan pasando la fase de pago.
Lo que hemos hecho es aparte de tener el campo NumeroTicket crear el campo NumeroTicketVerifactu, que mientras no se finaliza el ticket está a 0 y cuando se finaliza es cuando se le da valor. De esta manera, el ticket que hice yo tendrá NumeroTicket=1 y NumeroTicketVerifactu=2 y el ticket de mi compañero tendrá NumeroTicket=2 y NumeroTicketVerifactu=1.

Y a la hora de la impresión y de mandar a Verifactu el campo que tenemos en cuenta es NumeroTicketVerifactu.

¿se os dió este problema a vosotros? ¿Como lo habéis planteado?

Muchas gracias!

Según planteas tu caso, y para no hacer modificaciones profundas, claramente hay que tener dos numeraciones. Lo único que tienes que tener en cuenta de que el número de ticket real sería lo que llamas NumeroTicketVerifactu y el otro se quedaría como un mero número de orden.
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo Hace 6 Días
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Según planteas tu caso, y para no hacer modificaciones profundas, claramente hay que tener dos numeraciones. Lo único que tienes que tener en cuenta de que el número de ticket real sería lo que llamas NumeroTicketVerifactu y el otro se quedaría como un mero número de orden.

Así es como lo planteamos, no creo que haya mucho más por donde tirar sin cambios profundos de estructura, que no nos apetecen nada!
Responder Con Cita
  #11  
Antiguo Hace 6 Días
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.905
Poder: 22
newtron Va camino a la fama
Cita:
Empezado por Jarogo08 Ver Mensaje
Así es como lo planteamos, no creo que haya mucho más por donde tirar sin cambios profundos de estructura, que no nos apetecen nada!

Finalmente apuntar que ya los programas "modernos" (y no sé si algunos "antiguos") usan un id automático para todo independientemente del número de documento, código o diablos que se quiera asignar al registro en particular. Teniendo un id interno para todo no tendrías ese problema porque le asignas el número de documento final cuando lo guardes ya sean albaranes, tickets, facturas, etc. Igualmente si (por ejemplo) usas un id interno para los artículos podrías cambiar sin miedo la referencia del mismo y cosas así.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo Hace 6 Días
novatico novatico is offline
Miembro
 
Registrado: dic 2022
Posts: 92
Poder: 3
novatico Va por buen camino
En nuestro caso, llevamos series diferentes por cada línea de emisión de tickets, que aunque sigamos llamándolos así, recuerda que son "Facturas Simplificadas"
Responder Con Cita
  #13  
Antiguo Hace 6 Días
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 179
Poder: 8
pablog2k Va por buen camino
he hecho una consulta al respecto de esta duda al correo que tienen de ayuda, con lo que contesten os diré
Responder Con Cita
  #14  
Antiguo Hace 6 Días
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por novatico Ver Mensaje
En nuestro caso, llevamos series diferentes por cada línea de emisión de tickets, que aunque sigamos llamándolos así, recuerda que son "Facturas Simplificadas"

En nuestro caso si en un mostrador tenemos 3 pcs pueden compartir la serie y la caja.


Pero aunque tengas una serie por cada pc, ¿no se te podría dar el caso? En nuestro programa tenemos la opción de suspender un ticket, con lo cual lo empiezas ahora, lo suspendes, creas x tickets mientras tanto y luego recuperas y finalizas el suspendido. Y ya tienes el mismo problema con la numeración. ¿vuestro programa no tiene opción de suspender un ticket?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Numeración de Factura zeta2 Varios 3 11-02-2010 20:21:56
FastReport Numeracion de Hojas hecospina Impresión 3 04-02-2008 15:21:12
continuar una numeracion con Qreport Alfredo Impresión 7 23-10-2007 11:05:53
ayuda con un campo de numeracion paco_galo Tablas planas 2 15-05-2007 14:06:29
Continuar numeracion en impresion !! Help RJF Impresión 2 07-11-2006 04:43:17


La franja horaria es GMT +2. Ahora son las 14:00:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi