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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-03-2025
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 96
Poder: 5
CarlosMz Va por buen camino
Guardar y qué de cada registro de facturación

Buenas a todos,

Quería preguntar por vuestro consejo sobre qué datos guardar de cada registro de facturación.
Aunque no es obligatorio guardarlos por reglamento si es solo VeriFactu, creo que la realidad es otra ya que hay tener ciertos campos como huella anterior...

Actualmente he creado un tabla RegistrosFacturacion con campos como:

Código:
TipoRegistro

IDEmisor
NumSerieFactura
FechaExpedicionFactura
FechaOperacion

RefExterna

Cliente
NIF

Huella
CuotaTotal
ImporteTotal

Rectificativa
FechaRectificativa

EstadoRegistro
Otros datos como bases, ivas... podrían obtenerse con join a la tabla de facturas/tiquets.

¿Qué recomendáis?
Responder Con Cita
  #2  
Antiguo 04-03-2025
Avatar de morta71
morta71 morta71 is offline
Miembro
 
Registrado: may 2006
Ubicación: Girona - España
Posts: 33
Poder: 0
morta71 Va por buen camino
Hola a todos,

En la aplicación que estoy adaptando guardo los siguientes campos en una tabla al uso:

- operacion -> tipo de registro
- rechazoPrevio (null,S,N)
- subsanacion (null,S,N)
- csv
- estadoRegistro
- codigoErrorRegistro
- descripcionErrorRegistro
- idDuplicado
- encadenamiento (con registro anterior -> numSerie, fecha, huella)
- huella
- fechaGeneracion
- registro (xml del registro de facturación)
- factura_id (relaciona la tabla facturas)
- envio_id (relaciona la tabla envios)

El resto de datos como refExterna, datos del destinatario, fecha, factura... los obtengo de la tabla de facturas o de envios si fuera necesario.

P.D.: Después de mis inicios con Delphi 3/5, y aunque ahora desarrollo en PHP, este foro me ha servido de mucha ayuda con el tema que nos ocupa. Muchas gracias a todos los usuarios que lo hacéis posible.
Responder Con Cita
  #3  
Antiguo 05-03-2025
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 96
Poder: 5
CarlosMz Va por buen camino
Muchas gracias por compartir tu forma de hacerlo, una pregunta ¿por qué has creado una tabla envíos a parte y no envías directamente la tabla al uso que comentas?
Responder Con Cita
  #4  
Antiguo 05-03-2025
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
Yo lo que hago es guardar todos los xmls de envío y de respuesta, así me aseguro de que tengo toda la información. Para no "petar" una carpeta con tanto fichero los guardo en carpetas por años/meses.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 05-03-2025
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 96
Poder: 5
CarlosMz Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Yo lo que hago es guardar todos los xmls de envío y de respuesta, así me aseguro de que tengo toda la información. Para no "petar" una carpeta con tanto fichero los guardo en carpetas por años/meses.


Saludos.
Y como gestionas las respuestas sobre los errores y subsanaciones de cara al usuario ?
Responder Con Cita
  #6  
Antiguo 05-03-2025
Faneka Faneka is offline
Miembro
 
Registrado: nov 2024
Posts: 137
Poder: 1
Faneka Va por buen camino
Yo guardo los XML completos de envío, el XML de cada RF, los XML de las respuestas. Luego en la base de datos por cada factura tengo información de cuando se envio, el estado de la factura (CORRECTA, ACEPTADA CON ERRORES, INCORRECTA, RECTIFICADA, ...), el CSV, el registro anterior, etc... Así el cliente si va a la factura puede ver como esta.
Responder Con Cita
  #7  
Antiguo 05-03-2025
Avatar de morta71
morta71 morta71 is offline
Miembro
 
Registrado: may 2006
Ubicación: Girona - España
Posts: 33
Poder: 0
morta71 Va por buen camino
Cita:
Empezado por CarlosMz Ver Mensaje
Muchas gracias por compartir tu forma de hacerlo, una pregunta ¿por qué has creado una tabla envíos a parte y no envías directamente la tabla al uso que comentas?
En la tabla de envíos guardo el xml de la request y la response completa a la AEAT, el csv (igual lo quito de la tabla de registros), el estado del envío total, fechaHora del envío y tiempo de espera que contesta la AEAT.

De esta manera tengo cada registro individual en una tabla, y un registro de los envíos y respuestas que me permitiría, llegado el caso, realizar un análisis más exhaustivo sobre cómo ha ido un envío determinado.

La forma más simple y que lleva menos trabajo de programación que he encontrado es:

- Se emite la factura y se emite un evento de envío de registros a la AEAT, que se gestiona de forma asíncrona, a través de un demonio (systemd en Linux, programo en PHP).

- El proceso asíncrono genera la request completa del envio de todas las facturas pendientes, y recibe la response de la AEAT. Con esa información completo los campos necesarios de la tabla de registros de facturación, y emito un correo al cliente/administrador indicando el resultado del proceso (éxito, rechazo, fallo)

De momento todo corre perfecto, pero de aquí a julio puede que simplifique/reduzca algo las tablas. Pero de momento, prefiero guardar toda la información posible.

De esta manera en la consulta de factura se muestra el/los envíos que se hayan realizado (alta/anulación, alta/subsanación error,...), con la info de CSV, estado (Aceptado...), fechaHora de generación, fechaHora de envío, error si lo hay (y enlace para subsanar), y se puede descargar el XML del registro individual del envío y el XML del envío completo.
Responder Con Cita
  #8  
Antiguo 05-03-2025
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 CarlosMz Ver Mensaje
Y como gestionas las respuestas sobre los errores y subsanaciones de cara al usuario ?

Además de estos ficheros creo otro fichero más simple con el número de factura, si está aceptada o rechazada y en su caso el código y la descripción del error que luego importo desde el programa de gestión para manejarlo. Los .xml solo los guardo por si en el futuro hubiera que hacer alguna revisión por algún motivo poder echarles un vistazo.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 05-03-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.874
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por newtron Ver Mensaje
Yo lo que hago es guardar todos los xmls de envío y de respuesta, así me aseguro de que tengo toda la información. Para no "petar" una carpeta con tanto fichero los guardo en carpetas por años/meses.

Nosotros algo similar.
En Base de Datos están los XML de los registros de facturación y eventos.
Son exportables desde la BD a disco (bajo petición del usuario).
Opcionalmente se guardan a disco (activando configuración de debug); Esto es de cara a nosotros (sólo para debug) y eventualmente en algún cliente que pueda tener algún problema.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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
Subconsulta para escojer el ultimo de cada registro? Carlex SQL 14 24-09-2018 21:50:32
capturar valores de cada registro. jose.ignacio.ve Impresión 1 24-10-2016 15:34:13
Guardar el nombre de cada aplicacion que ejecuta un usuario. phpboy Varios 3 02-05-2016 15:07:34
Avanzar una pagina, por cada registro alcides Impresión 5 31-03-2010 21:34:27
guardar valores para cada item de un TComboBox ¿como? cocute Varios 3 11-01-2010 16:00:21


La franja horaria es GMT +2. Ahora son las 13:06:32.


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