Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SDK Componente Verifactu para Delphi 7+ - Subforo Avisos/consultas (https://www.clubdelphi.com/foros/forumdisplay.php?f=81)
-   -   Tikets Kioscos (https://www.clubdelphi.com/foros/showthread.php?t=97758)

Isaac_uni 15-10-2025 09:24:25

Tikets Kioscos
 
Buenos dias.
Actualmente tengo un programa para puntos de venta, querria saber como deberia hacer el envio, en otros sitemas de facturacion ya he podido implementar la dll, aun me falta pulirla, pero los tikets no se como enviarlos o que marcar para enviarlos.
Gracias

newtron 15-10-2025 09:27:21

Cita:

Empezado por Isaac_uni (Mensaje 568588)
Buenos dias.
Actualmente tengo un programa para puntos de venta, querria saber como deberia hacer el envio, en otros sitemas de facturacion ya he podido implementar la dll, aun me falta pulirla, pero los tikets no se como enviarlos o que marcar para enviarlos.
Gracias


Las facturas simplificadas (tickets) se envían exactamente igual que las facturas normales, lo único es que cambias la clave F1 por F2 y no se identifica al cliente.

seccion_31 15-10-2025 11:59:10

Cita:

Empezado por newtron (Mensaje 568589)
Las facturas simplificadas (tickets) se envían exactamente igual que las facturas normales, lo único es que cambias la clave F1 por F2 y no se identifica al cliente.

Si hace uso del componente, que creo que si, por lo que dice y donde ha posteado...., no debe indicar ningun dato del cliente, y el componente automáticamente seleccionara la clave F2.

Saludos !

seccion_31 15-10-2025 12:00:02

A estas alturas me pregunto por curiosidad cuantos usuarios de la DLL estan haciendo uso de ella....

Neftali [Germán.Estévez] 15-10-2025 16:49:13

Cita:

Empezado por seccion_31 (Mensaje 568598)
A estas alturas me pregunto por curiosidad cuantos usuarios de la DLL estan haciendo uso de ella....

Pues he creado una encuesta aquí, para saber qué tal:
https://www.clubdelphi.com/foros/showthread.php?t=97761

A ver si la gente se pasa y lo contesta.

Isaac_uni 16-10-2025 08:43:46

Gracias, lo añadiré pronto al proyecto,

Tengo otra duda.
Estoy implementando la dll a unigui para poderlo ejecutar desde un navegador, hasta ahora en desarrollo he logrado que funcione, y haciendo pruebas en un servidor he visto que no me recoge los certificados del navegador si no los que estan instalados en la maquina(servidor) hay forma de hacer de que recoja los certificados digitales instalados en el navegador del usuario?

No se si tendria que crear otro hilo o lo dejo aqui, si es necesario que lo cree lo hago
Gracias.

Por cierto esto de la dll me ha ayudado mucho, gracias.

seccion_31 16-10-2025 08:54:54

Cita:

Empezado por Isaac_uni (Mensaje 568640)
Gracias, lo añadiré pronto al proyecto,

Tengo otra duda.
Estoy implementando la dll a unigui para poderlo ejecutar desde un navegador, hasta ahora en desarrollo he logrado que funcione, y haciendo pruebas en un servidor he visto que no me recoge los certificados del navegador si no los que estan instalados en la maquina(servidor) hay forma de hacer de que recoja los certificados digitales instalados en el navegador del usuario?

No se si tendria que crear otro hilo o lo dejo aqui, si es necesario que lo cree lo hago
Gracias.

Por cierto esto de la dll me ha ayudado mucho, gracias.

Exportalos a pfx al servidor y guarda la contraseña de forma segura en el servidor, y haz que use el archivo en vez del certificado en memoria.

Saludos !

Isaac_uni 30-10-2025 10:45:44

Buenas continuo con estos tikets.
Resulta que se tiene que enviar una factura resumida que es una agrupación de tikets, pero estos tikets si todo funciona correctamente ya han sido enviados mediante verifactu, que hay que modificar en el envió para indicarle que es una factura resumida de varios tikets?.
Gracias.

bmfranky 30-10-2025 12:23:04

Hola, por lo que indica eso seria una F3, pero no se si el componente permite crearlas, lo siento no huso el componente.

seccion_31 30-10-2025 12:57:20

Cita:

Empezado por bmfranky (Mensaje 569152)
Hola, por lo que indica eso seria una F3, pero no se si el componente permite crearlas, lo siento no huso el componente.

hasta 60 tickets pueden ser agrupados en una F3, desde la version 4.9


Código:

TRegistroFactura.nsustituye:=1;
TRegistroFactura.sustituyeTicketF3[0].NumSerieTicket:='ticket a sustituir';
TRegistroFactura.sustituyeTicketF3[0].fechaTicket  :='fecha ticket a sustituir'

Saludos !

¿por cierto, el tema de certificados como quedo?

Isaac_uni 30-10-2025 13:00:07

Y en que punto se agrupa o como los debería de agrupar?

Gracias seccion_31

starlet 31-10-2025 14:05:57

Buenas:

Tal y como te indica seccion31, es un array que vas cargando con los datos número_ticket_serie de F2 (o como lo tengas en tu programa) y la fecha de los tickets que agrupes en esa F3.

Código:


TRegistroFactura.nsustituye:=1;
TRegistroFactura.sustituyeTicketF3[0].NumSerieTicket:='ticket a sustituir';
TRegistroFactura.sustituyeTicketF3[0].fechaTicket  :='fecha ticket a sustituir'

Tendrá tantos elementos como facturas/tickets F2 añadas, hasta un máximo de 60 y añadir los datos del cliente para esa F3.

Saludos,

starlet 31-10-2025 14:47:41

Aclaro con más información el uso en el componente:

Flujo Completo del Proceso

1. EMISIÓN DE TICKETS F2 (sin identificar cliente)
├─ T-2025-001: 60€ (10/01/2025)
├─ T-2025-002: 40€ (15/01/2025)
└─ T-2025-003: 50€ (20/01/2025)

2. CLIENTE SOLICITA FACTURA COMPLETA

3. CREAR FACTURA F3
├─ Número nuevo: F-2025-100
├─ Cliente identificado: PEPITO PEREZ PEREZ (12345678A)
├─ Total: 150€ (suma de los 3 tickets)
└─ Sustituye: T-2025-001, T-2025-002, T-2025-003

4. ENVÍO A AEAT
└─ Se registra F3 con referencia a los 3 tickets

5. RESULTADO
├─ F3 enviada y aceptada
└─ Tickets F2 quedan sustituidos (no anulados)

---
XML Generado (Simplificado y como EJEMPLO)
Código:

  <RegistroFacturacion>
    <TipoFactura>F3</TipoFactura>
    <NumSerieFactura>F-2025-100</NumSerieFactura>
    <FechaExpedicion>31-01-2025</FechaExpedicion>

    <!-- CLIENTE IDENTIFICADO -->
    <Destinatarios>
      <NIF>12345678A</NIF>
      <Nombre>PEPITO PEREZ PEREZ</Nombre>
    </Destinatarios>

    <!-- IMPORTES TOTALES -->
    <ImporteTotal>150.00</ImporteTotal>
    <BaseImponible>123.97</BaseImponible>
    <CuotaIVA>26.03</CuotaIVA>

    <!-- FACTURAS SUSTITUIDAS -->
    <FacturasSustituidas>
      <<IDFacturaSustituida>>
        <IDEmisorFactura>B123456789</IDEmisorFactura>
        <NumSerieFactura>T-2024-001</NumSerieFactura>
        <FechaExpedicionFactura>10-01-2025</FechaExpedicionFactura>
      </IDFacturaSustituida>
      <IDFacturaSustituida>
        <IDEmisorFactura>B123456789</IDEmisorFactura>
        <NumSerieFactura>T-2024-002</NumSerieFactura>
        <FechaExpedicionFactura>15-01-2025</FechaExpedicionFactura>
      </IDFacturaSustituida>
      <IDFacturaSustituida>
        <IDEmisorFactura>B123456789</IDEmisorFactura>
        <NumSerieFactura>T-2024-003</NumSerieFactura>
        <FechaExpedicionFactura>20-01-2025</FechaExpedicionFactura>
      </IDFacturaSustituida>
    </FacturasSustituidas>
  </RegistroFacturacion>

---
PUNTOS IMPORTANTES

1. Detección Automática de F3

El componente detecta automáticamente que es F3 cuando:
if factura.nSustituye > 0 then
// Cambia TipoFactura a F3 automáticamente

2. Importes en la F3

- Los importes de la F3 deben ser la suma de los tickets sustituidos
- Los conceptos pueden ser nuevos/agrupados (no necesariamente los mismos)
- Los IVAs se calculan sobre el total

3. Encadenamiento

- La F3 se encadena con la última factura enviada como cualquier otra factura (no con los tickets)
- Los tickets F2 no se anulan, solo se sustituyen

Yo no uso la multisustiutución por características de mis clientes. Yo solo sustituyo una F2 en cada F3 y no varias F2 en cada F3.

Espero que ayude a los que tengan dudas.

seccion_31 02-11-2025 09:21:22

La version 5.8 incluira un ejemplo en la Demo de como crear una factura F3.

El ejemplo, busca los tickets en la AEAT (porque no los tiene identificados en la BD XML que guarda), los recupera como digo de la AEAT, y permite seleccionarlos para crear una F3 agrupandolos.

En principio esta semana la enviare a publicacion, con este y algun cambio mas.

Saludos !

Isaac_uni 06-11-2025 13:00:41

Hola buenas
Estoy muy agredecido Seccion_31 por haber creado la dll para verifactu, no sabia por donde pillar este tema.

Tengo un problema y no se a quien recurrir, estoy Implementado el proceso en el proyecto que tengo de los tikets no me funciona al momento iniciar la comprobación me da un error.
Me pasa en 2 sitios pero me parece que comparte causa.
El primero es aqui
if veriFactuD7.VerifactuActivo then
formmenu.unistatusBar1.panels[1].Text:='AEAT Activa'
else
formmenu.unistatusBar1.panels[1].Text:='AEAT Inactiva';
En VerifactuActivo me da error aqui
result:=VerificarServicioSOAP( maxSessions+1, VERIFACTUACTIVOPING );

el error es
Project kioslib.exe raised exception class $C000000FD with message 'stack overflow at 0x5658327f'
me parece que esta intentando acceder a algun sitio o algo que no esta generado, pero no logro localizarlo.

cualquier cosa que se os ocurra la pruebo,
Gracias

seccion_31 06-11-2025 17:11:57

Aumenta el stacksize de tu aplicación al máximo.

Y nos cuentas

Isaac_uni 07-11-2025 13:53:46

Cita:

Empezado por seccion_31 (Mensaje 569536)
Aumenta el stacksize de tu aplicación al máximo.

Y nos cuentas

Muchas Gracias.
Funciono perfectamente, llevaba un par de días que no sabia que era, ahora continuare adaptando mi programa.
Gracias de nuevo

DarkDudae 07-11-2025 16:16:23

Yo llevo enviando F3 de varios tickets(F2) desde la 5.6 o 5.7 si no recuerdo mal sin problemas.


La franja horaria es GMT +2. Ahora son las 14:52:58.

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