![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#121
|
||||
|
||||
|
Cita:
No sé cómo piensas orientar el tema de las bajas pero yo lo veo peliagudo. Primero te crea problemas para manejar ese dato en la misma tabla de facturas (como ya estás comprobando) y segundo que no creo que sea muy recomendable anular facturas. Si te sirve de algo yo he optado por no dejar anular facturas y en cambio generar facturas rectificativas. A partir de una factura determinada que se quiera modificar por algún motivo creo en memoria una copia para hacer los cambios que se quieran y si se aceptan muevo la factura original a otra tabla y se queda la rectificada con un nuevo número de otra serie. Si lo que se quiere es directamente eliminar la factura lo que hago es un abono. Este proceso, como tantas cosas, es discutible pero creo que es legal y no me marea mucho el programa. Saludos.
__________________
Be water my friend. |
|
#122
|
||||
|
||||
|
Esto es como todo, en enviar pregunta y se aparece la iluminación divina....
Tratar el indice principal con un autoincrement y un secundario mantenido con número de factura. Pasa que no soy muy amigo de los autoincrement, pero como no afecta a los datos, me daría igual que este variara en cualquier momento y por cualquier motivo. El problema es que no se a nivel de aplicación como me afectaría, en la busqueda de facturas. J...r estoy encasquillado con el tema.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
|
#123
|
||||
|
||||
|
Cita:
Gracias Darkdudae y Newtron por los aportes.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. Última edición por ramherfer fecha: 10-02-2025 a las 20:27:53. |
|
#124
|
||||
|
||||
|
Cita:
Nosotros tenemos en la tabla de facturas un campo de ESTADO, que en un momento dado nos marca si la factura está ANULADA (y otros estados por los que puede pasar). Por otro lado, tenemos una tabla de RegistrosDeFacturación, donde se almacena un registro por cada operación que se le realiza a una factura, y por lo tanto podemos tener varios registros (sobre la misma factura): ALTA MODIFICACION MODIFICACION ANULACION Además, esa segunda tabla se puede consultar, para acceder rápidamente al "historial" de una factura y debe permitir descargar el RegistroDeFacturación de cada factura. ![]()
__________________
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. |
|
#125
|
||||
|
||||
|
Vamos a ver si entendi lo de las bajas, como creo que lo he entendido siempre. bajo la experiencia del SII
Las bajas son una factura mas para la AEAT, tiene su huella: la que tuvo durante el alta y encadenamiento. Cuando das de alta una nueva siguiente a la baja la encadenas con ella y listo. El lugar de la baja no se puede ocupar porque dara error 3000. ¿esto es asi? lo unico que tienes que marcar es un flag en el archivo de facturas que te indique cual es su estado, sin mas. Saludos Nota: gracias a la demo de darkdudae, el componente con total seguridad abandonara el servidor de mensajes, y pasara a funcionar bajo DLL. No hay que modificar nada en el código de los programas que usan el componente. La semana que viene lo publicare. |
|
#126
|
||||
|
||||
|
Cita:
Código:
Id N.Factura Fec.Factura Operacion Notificada 1 FR250001 02/06/2025 A S 2 FR250002 02/07/2025 A S 3 FR250003 02/07/2025 A S 4 FR250003 02/07/2025 M S 5 FR250004 02/10/2025 A S Encadenada a la 3 6 FR250001 02/06/2025 B S Encadenada a la 4??? 7 FR250005 02/11/2025 A S Encadenada a la 1??? 8 FR250006 02/11/2025 A S Encadenada a la 6 Cita:
Gracias.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. Última edición por Neftali [Germán.Estévez] fecha: 11-02-2025 a las 15:24:10. |
|
#127
|
||||
|
||||
|
Cita:
Por ejemplo, en cada registro de facturación tengo el HASH, tengo el contenido del registro en formato XML,... En esa tabla me lía un poco las fechas que has puesto. En cuanto al encadenamiento, se va haciendo con el último RegistroDeFacturación generado, digamos de forma conológica (independientemente si lo último ha sido un alta, una subsanación o una anulación). Digamos que tenemos una pantalla que muestra todos los registros de facturación dedicada a posibles inspecciones. Desde esa pantalla puedes buscar una fcatura y deberías ver su "historial" y su estado actual (todas sus operacion o registros de facturación); La mayoría aparecerán 1 vez como Alta aceptada, pero también podrás encontrar un Alta + Baja o Alta + Modificacion + Modificación + Baja,... Y tal como pone la documentación se debe poder ver o descargar el registro de facturación (XML), por eso lo guardamos tal cual en un campo.
__________________
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. |
|
#128
|
||||
|
||||
|
Con el “registro de facturación” en XML te refieres a la respuesta que devuelve Hacienda o a una suerte de “Factura Electrónica” con los metadatos de la factura?
__________________
El recuerdo es la prisión en la que el alma sueña pasado, cuando no vive el presente, ni quiere un futuro. |
|
#129
|
|||
|
|||
|
Cita:
|
|
#130
|
||||
|
||||
|
Cita:
En cualquier momento esos XML se deen poder acceder y descargar. https://sede.agenciatributaria.gob.e...generales.html
__________________
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. |
|
#131
|
||||
|
||||
|
Cita:
Pienso que lo ideal a parte de quizas guardarlo en disco en una carpeta, con un nombre serializado, seria incluirlo en una tabla con un codigo y desde la factura(s) enlazarlo, con dos campos binarios, uno para el envio y otro la respuesta. Saludos ! |
|
#132
|
||||
|
||||
|
Cita:
Tengo una tabla llamada: verifactu_logcomunicaciones con la siguiente estructura: Código:
ID (Autonumérico Entero) FechaHora (TIMESTAMP) XMLEnvio (BLOB comprimido con COMPRESS de MySQL) XMLRespuesta (BLOB comprimido con COMPRESS de MySQL) CSVRespuesta (VARCHAR)
__________________
El recuerdo es la prisión en la que el alma sueña pasado, cuando no vive el presente, ni quiere un futuro. |
|
#133
|
||||
|
||||
|
Cita:
Código:
<sum1:RegistroAlta xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:IDFactura>
<sum1:IDEmisorFactura>89890001K</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>12345678-G66</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>03-02-2025</sum1:FechaExpedicionFactura>
</sum1:IDFactura>
<sum1:NombreRazonEmisor>certificado uno telematicas</sum1:NombreRazonEmisor>
<sum1:Subsanacion>N</sum1:Subsanacion>
<sum1:RechazoPrevio>N</sum1:RechazoPrevio>
<sum1:TipoFactura>R3</sum1:TipoFactura>
<sum1:TipoRectificativa>I</sum1:TipoRectificativa>
<sum1:FacturasRectificadas>
<sum1:IDFacturaRectificada>
<sum1:IDEmisorFactura>89890001K</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>12345600-G66</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>01-04-2024</sum1:FechaExpedicionFactura>
</sum1:IDFacturaRectificada>
</sum1:FacturasRectificadas>
<sum1:FechaOperacion>03-02-2025</sum1:FechaOperacion>
<sum1:DescripcionOperacion>fecha entrega</sum1:DescripcionOperacion>
<sum1:Destinatarios>
<sum1:IDDestinatario>
<sum1:NombreRazon>certificado dos telematicas</sum1:NombreRazon>
<sum1:NIF>89890002E</sum1:NIF>
</sum1:IDDestinatario>
</sum1:Destinatarios>
<sum1:Desglose>
<sum1:DetalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>4</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>10</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>0.4</sum1:CuotaRepercutida>
</sum1:DetalleDesglose>
<sum1:DetalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>21</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>21</sum1:CuotaRepercutida>
</sum1:DetalleDesglose>
<sum1:DetalleDesglose>
<sum1:ClaveRegimen>05</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>10</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>10</sum1:CuotaRepercutida>
</sum1:DetalleDesglose>
</sum1:Desglose>
<sum1:CuotaTotal>41.4</sum1:CuotaTotal>
<sum1:ImporteTotal>241.4</sum1:ImporteTotal>
<sum1:Encadenamiento>
<sum1:RegistroAnterior>
<sum1:IDEmisorFactura>89890001K</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>12345677-G33</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>15-04-2024</sum1:FechaExpedicionFactura>
<sum1:Huella>C9AF4AF1EF5EBBA700350DE3EEF12C2D355C56AC56F13DB2A25E0031BD2B7ED5</sum1:Huella>
</sum1:RegistroAnterior>
</sum1:Encadenamiento>
<sum1:SistemaInformatico>
<sum1:NombreRazon>CERTIFICADO UNO TELEMATICAS</sum1:NombreRazon>
<sum1:NIF>89890001K</sum1:NIF>
<sum1:NombreSistemaInformatico>NombreSistemaInformatico</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>77</sum1:IdSistemaInformatico>
<sum1:Version>1.0.03</sum1:Version>
<sum1:NumeroInstalacion>383</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum1:SistemaInformatico>
<sum1:FechaHoraHusoGenRegistro>2025-02-03T14:30:00+01:00</sum1:FechaHoraHusoGenRegistro>
<sum1:TipoHuella>01</sum1:TipoHuella>
<sum1:Huella>FF954378B64ED331A9B2366AD317D86E9DEC1716B12DD0ACCB172A6DC4C105AA</sum1:Huella>
Este es el ejemplo de la aeat. Y de la respuesta lo mismo , puedes deserializar los nodosde la respuesta por separado y almacenar solo el resultado de ese nodo en particular. Seleccionas el nodo correspondiente a tu factura. Código:
<RespuestaLinea> <IDFactura> <IDEmisorFactura>89890001K</IDEmisorFactura> <NumSerieFactura>12345677-G33</NumSerieFactura> <FechaExpedicionFactura>15-04-2024</FechaExpedicionFactura> </IDFactura> <EstadoRegistro>AceptadoConErrores</EstadoRegistro> <CodigoErrorRegistro>2004</CodigoErrorRegistro> <DescripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</DescripcionErrorRegistro> </RespuestaLinea>
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
|
#134
|
||||
|
||||
|
Cita:
Tecnicamente me gusta la idea, si x favor, me cedes el código para hacerlo lo incluyo en el componente, y que el usuario seleccione lo que desea archivar. El componente ya no necesita de una aplicacion servidora, funciona bajo DLL, e incorpora bastantes cambios, incluyendo una demo muy mejorada. El fin de semana lo publicare. Las aplicaciones ya desarrolladas usandolo no van a necesitar cambio alguno. Saludos ! |
|
#135
|
||||
|
||||
|
Cita:
Ojo que son cosas diferentes. RegistroDeFacturación: Nos referimos a la información referente a 1 factura (en formato XML), que va firmada o no dependiendo si estamos en Verifactu o no-verifactu. Otra cosa es el envío (sólo en la modalidad verifactu). en el envío cómo han dicho pueden ir 1..1000 registros de facturación incluídos. El RegistrodeFacturación es el que hay que guardar de forma obligatoria y debe ser accesible y descargable. La información del envío, no es obligatorio guardarla, y cada uno puede decidir cómo y qué guardar (para luego gestionar toda esa lógica desde el programa). Si guardar todo el paquete (con las 1000 fcaturas), si guardar la respuesta en el formato que la da la AEAT, si guardar sólo los códigos,...
__________________
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. |
|
#136
|
||||
|
||||
|
Cita:
Vale, sin intencion de hacerme el pesado, en tu opinion, (porque me acabo de enterar ahora) si guardamos todo el envio, asociado a cada factura, ¿estariamos cumpliendo? porque tecnicamente la informacion del registroDeFacturacion se encuentra alli. Encontrarla es tan facil como hacer una busqueda de texto. Opcion 2: Me gustaria poder sacar esa informacion del XML de envio, a ver si me podeis hacer llegar ese codigo ( bmfranky ) para incorporarlo. ¿Puedes por favor neftali resumir brevemente que es necesario guardar y disponer en un sistema verifactu? porque en el foro la informacion esta muy dispersa, para ver que le falta al componente y como incorporarlo. gracias ! |
|
#137
|
||||
|
||||
|
Extraído directamente de la documentación de la AEAT (cuestiones generales):
Capacidad de exportar los registros Todos los sistemas informáticos de facturación producidos y comercializados deberán tener capacidad de exportar y transmitir en línea los registros de facturación. Cuando la modalidad elegida sea NO VERI* FACTU, en caso de que se requieran por parte de la Administración Tributaria dichos registros, los mismos podrán ser directamente enviados a través de un procedimiento simplificado y automatizado. La transmisión: Verifactu: La transmisión es inmediata No-verifactu: deben implementar la transmisión de registros bajo requrimiento. Capacidad de exportar. Yo creo que no deja dudas, desde el programa hay que poder exportar un registro de facturación. El cómo lo hagamamos ya es cuestión de cada uno. Digamos que en nuestro programa tenemos FACTURAS, para cada factura sabemos que hay 1..N REGISTROSDEFACTURACION (alta, subsanación, anuulación). Nosotros hemos barajado varias opciones: * Desde la factura exportar todos los registros asociados a esa factura (1..N) * Desde la facttura, acceder a sus registros de facturación (1..N) -es como ver el historial de las operaciones sobre esa factura- y desde ahí poder exportarlos 1 a 1.
__________________
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. |
|
#138
|
||||
|
||||
|
Cita:
Yo creo que es más sencillo enfocarlo a cada registro de facturación que enfocarlo al envío. Al grabar la factura DEBES generar el registro, por lo tanto creo que en ese momento es el punto fácil para guardarlo. También puedes enfocarlo al envío, pero creo que es más complejo a la hora de recuperar los registros. Pienso en que si has hecho varias operaciones sobre una factura (ALTA, SUBSANACION, ANULACION) si queres obtener todo la información de esa factura (y sus registros de facturación) vas a tener que ir navegando por diferentes envíos e ir extrayendo de cada uno de ellos el registro de facturación correspondiente a esa operación. Se puede hacer, pero creo que es más complejo.
__________________
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. |
|
#139
|
||||
|
||||
|
Cita:
El plan desde mi ignorancia es enviar, guardar el XML completo y mediante alguna funcion extraer cada registrodefacturacion procesado para las facturas aceptadas. Si alguien tiene ese codigo para extraer una seccion del XML dado el numSerie de la factura, me evitaria trabajo de investigacion, o que se quedara pendiente. Con Darkduae estamos mejorando la demo y el parseo de la respuesta de la AEAT para cubrir mas casos. |
|
#140
|
||||
|
||||
|
Cita:
Creo que hay varios mensajes donde está cómo hacerlo. Por ejemplo este, genera el registro con SOAP y en un momento dado extrae el XML del registro de facturación. https://www.clubdelphi.com/foros/sho...postcount=1428
__________________
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. |
![]() |
|
|
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 |
|