Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por rci Ver Mensaje
Cuando se crea la factura 7, su registro de facturación tiene que estar encadenado con el último registro de facturación creado (del mismo obligado tributario y mismo SIF).
Probablemente será el registro de facturación de alta de la factura 6, pero podría no serlo, podría ser una eventual subsanación de la factura 1 por ejemplo.

El encadenamiento no tiene nada que ver con el envío.
Al crear una factura debes crear el registro de facturación de alta y guardar en algún sitio (una tabla por ejemplo) los datos del último registro de facturación creado.
Cuando se crea otro registro de facturación (ya sea de alta de una nueva factura, de anulación, de subsanación) se encadena con el último registro de facturación creado.

El envío de registros de facturación no afecta al encadenamiento. Los registros de facturación creados y no enviados, se van enviando cuando toque, siguiendo el control de flujo que indica la ley
Cita:
Empezado por seccion_31 Ver Mensaje
aun asi, y no os molesteis mucho todavia hay un caso sobre encadenamientos, no dudas del componente:



a ver si alguien tiene paciencia:


facturas


sesion 1:
Factura 4 fallida en el envio por fallo de internet encadena con 3



sesion 2: <- aqui ya funciona internet, nos ponemos a facturar
<<<- La cola de envios empieza aqui, sino seguramnete dara error cuando estemos en produccion.

Factura 5 encadena con 4
Factura 6 encadena con 5
Factura 4 encadena con 3 <- reenvío la 4 cuando vemos que ya funciona internet, (hemos enviado 2 delante)<<<< MAL

Factura 7 encadena con 6 no ha de reencadenar nada

Hola, como bien dice @rci, lo que has de guardar son los registros ya encadenados, independientemente de si se enviaron o no, has de crear unas tablas, ya sea con el XML complero del registro de facturacion completo, creo que desde c# lo mas facil, o todos los datos para recrearlo al enviar, pero ya completado.


Deves hacer 2 cosas en ese supuesto, inmediatamente enviar lo pendiente , en este caso el registro de factura 4 que ya esta correctamente encadenado, indicando en la cabecera e el fallo en el envio, y esperar los x, segundos para empezar a enviar los registros encolados despues.


Aunque puedes esperar a enviar cuando tengas mas registros , no te lo recomiendo.
__________________
Uno se alegra de ser útil. (Isaac Asimov)

Última edición por bmfranky fecha: 09-04-2025 a las 18:00:25.
  #2  
Antiguo 09-04-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Hola, como bien dice @rci, lo que has de guardar son los registros ya encadenados, independientemente de si se enviaron o no, has de crear unas tablas, ya sea con el XML complero del registro de facturacion completo, creo que desde c# lo mas facil, o todos los datos para recrearlo al enviar, pero ya completado.


Deves hacer 2 cosas en ese supuesto, inmediatamente enviar lo pendiente , en este caso el registro de factura 4 que ya esta correctamente encadenado, indicando en la cabecera e el fallo en el envio, y esperar los x, segundos para empezar a enviar los registros encolados despues.


Aunque puedes esperar a enviar cuando tengas mas registros , no te lo recomiendo.
Efectivamente,

Si, eso entraria en la logica del programa. Colocar los pendientes primero. (el componente no tiene base de datos) (la demo hace uso de una base de datos basica demostrativa, no entra en esta complicacion).

Aun asi, me asegurare que si en un paquete de envio hay varios pendientes, siempre se coloque la huella anterior correcta. Lo cual minoraria el problema, porque el envio seria correcto.

Basicamente ya esta echo. Me falta probarlo bien.

gracias a todos !
  #3  
Antiguo 09-04-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
Efectivamente,

Si, eso entraria en la logica del programa. Colocar los pendientes primero. (el componente no tiene base de datos) (la demo hace uso de una base de datos basica demostrativa, no entra en esta complicacion).

Aun asi, me asegurare que si en un paquete de envio hay varios pendientes, siempre se coloque la huella anterior correcta. Lo cual minoraria el problema, porque el envio seria correcto.

Basicamente ya esta echo. Me falta probarlo bien.

gracias a todos !
Una solucion patatera que se me ocurre es , al fallar el envio, generar en un directorio temporal, los registros pendientes de envio, con su xml completo, al comprobar que ya hay conexion, verificar si el directorio tiene contenido, y entonces automaticamente, antes de permitir empezar a factura, cargar todas las facturas pendientes en orden, y al cargar/enviar la ultima establecer esos datos como los correctos para el encadenamiento.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
  #4  
Antiguo 09-04-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Una solucion patatera que se me ocurre es , al fallar el envio, generar en un directorio temporal, los registros pendientes de envio, con su xml completo, al comprobar que ya hay conexion, verificar si el directorio tiene contenido, y entonces automaticamente, antes de permitir empezar a factura, cargar todas las facturas pendientes en orden, y al cargar/enviar la ultima establecer esos datos como los correctos para el encadenamiento.
gracias ! bueno, pero fuera del uso del componente.

personalmente, en mi aplicación antes de facturar sacare la lista de lo pendiente, para que envíe.

Saludos !

gracias por atender lo de la hora


En mi caso, este es mi timestamp:

2025-04-03T20:06:59+02:00

Y este es el codigo que lo genera:

Cita:
XSDatetime := TXSDatetime.Create;
XSDatetime.AsDateTime := Now;
XSDatetime.UseZeroMilliseconds := False;
XSDatetime.Millisecond := 0;
XSDatetime.UseZeroMilliseconds := False;
XSDatetime.FractionalSeconds := 0;
  #5  
Antiguo 09-04-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
gracias ! bueno, pero fuera del uso del componente.

personalmente, en mi aplicación antes de facturar sacare la lista de lo pendiente, para que envíe.

Saludos !

gracias por atender lo de la hora


En mi caso, este es mi timestamp:

2025-04-03T20:06:59+02:00

Y este es el codigo que lo genera:
Como le indicas la zona horaria, el C#, le he de indicar , "DateTimeKind.Local", para que la establezca correctamente, sino siempre pone +1, aunque cambie la hora.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
  #6  
Antiguo 09-04-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Como le indicas la zona horaria, el C#, le he de indicar , "DateTimeKind.Local", para que la establezca correctamente, sino siempre pone +1, aunque cambie la hora.
ni idea, funcional tal cual.
  #7  
Antiguo 10-04-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
hola !

necesito un voluntario para probar la 4.0, porque esto ya necesita pruebas algo mas complicadas.

El que quiera participar seriamente en las pruebas que me envíe un privado con su mail.

gracias !
  #8  
Antiguo 09-04-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
Efectivamente,

Si, eso entraria en la logica del programa. Colocar los pendientes primero. (el componente no tiene base de datos) (la demo hace uso de una base de datos basica demostrativa, no entra en esta complicacion).

Aun asi, me asegurare que si en un paquete de envio hay varios pendientes, siempre se coloque la huella anterior correcta. Lo cual minoraria el problema, porque el envio seria correcto.

Basicamente ya esta echo. Me falta probarlo bien.

gracias a todos !

Para dejarlo mas funcional, porque no añades en la base de datos donde guardas la configuracion, los datos del ultimo registro generado, asi siempre puedes cojer de alli los datos para generar el siguiente, sin preocuparte de si se envio o no, esa parte la puede atender el programa fuera del la DLL, la dl unicamente dedicarse a generar los registro y encadenarlos.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Tema Cerrado


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
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? Maska10 Temas legales 2 07-12-2024 12:34:47
Demo de una applicación para una estación de enfermera con RAD Studio AgustinOrtu La Taberna 1 21-07-2015 17:41:35
Demo Delphi, EMail Caral Internet 1 19-12-2006 00:37:56
Demo de delphi 2005 mazinger Varios 2 18-12-2004 09:23:09
El Rave que viene con Delphi es una Demo? apicito Impresión 0 04-06-2003 11:33:36


La franja horaria es GMT +2. Ahora son las 07:48:10.


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
Copyright 1996-2007 Club Delphi