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

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-07-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
por cierto, yo diria que la ayuda de la 4.6a esta algo mal detallada sobre la F3, creo que con indicar los datos de cliente, emision, y el record de sustitucion deberia funcionar. Vamos que no lo tengo claro, pero funcionar, funciona.

Saludos !

: )
  #2  
Antiguo 16-07-2025
Avatar de Matorral
Matorral Matorral is offline
Miembro
 
Registrado: oct 2006
Ubicación: Ferrol-Galicia
Posts: 92
Poder: 20
Matorral Va por buen camino
Consulta de RF enviados

Buenas tardes¡¡

Gracias anticipadas de nuevo a todos por el enorme esfuerzo.

Acabo de darme cuenta de que al realizar la consulta de la AEAT de registros de facturación enviados, me aparecen todos como Subsanacion = 'S' y PrimerRegistro = 'S'.

La consulta la hago por medio del componente, capturando los registros en el evento onRegConsultaD7.

Los RF los envío sin valor en el campo Subsanacion, y trazando la función AddRegistroInicial el valor fPrimero tiene valor False, no entiendo por que al hacer la consulta me devuelve 'S' en esos dos campos (Subsanacion y RegistroInicial).

El xml de envio esta bien generado y el encadenamiento es correcto. Y el xml de respuesta también es correcto

A alguien le pasa esto?
__________________
Inieeeesssstademiviiiiidaaaaa.
  #3  
Antiguo 16-07-2025
Avatar de Matorral
Matorral Matorral is offline
Miembro
 
Registrado: oct 2006
Ubicación: Ferrol-Galicia
Posts: 92
Poder: 20
Matorral Va por buen camino
evento onRegTrasEspera

Quería comentaros, por si le sirve a alguien, que estoy utilizando el evento onRegTrasEspera para gestionar la cola de envío, y va de cine.

Mi software es de hostelería y comercio, y en principio había pensado en realizar los envíos cada vez que se cobra una factura, pero no las tenia todas conmigo, porque en muchos bares y comercios realizan varios cobros por minuto, y quien sabe si los banearían.

Para gestionar la cola de envíos hago lo siguiente:

Cuando cobro una factura compruebo la propiedad AutoEspera. Si está a False la pongo a true y realizo el envío. Y si esta a True guardo la factura en la cola (FIFO) sin realizar envío.

Código Delphi [-]
        if VerifactuD7.AutoEspera=false then begin    // si esta a false se puede enviar
          try
            HazAvisoVerifactu('Enviando registro de facturación ... ');

            VerifactuD7.AutoEspera:=true;    // ponemos en marcha onTrasEspera

            enviarVerifactu_Simplificada( cSer,cTicket,'A'); // Enviamos Verifactu

            CierraAvisoVerifactu(Proc_Ventas);

          except
            showmessage('Fallo al enviar Factura');
          end;
        end
        else
          Graba_Pendiente_Envio(cSerieTickets,TTicket.FieldByName('SERIE').AsString,TTicket.FieldByName('CODIG  O').AsString,'S', 'N', 'N', 'N');

Luego en el evento onTrasEspera, si hay registros pendientes realizo el envío de las facturas guardadas en cola y si no hay registros pendientes de envío vuelvo a poner a False la propiedad AutoEspera.

Código Delphi [-]
/////// VERIFACTU
// autoenvio automatico de facturas pendientes REGISTROSPENDIENTESENVIO.DB
procedure TProc_Ventas.OnTrasEsperaD7( Sender: TObject );
begin

  if TRegistrosPendientesEnvio.IsEmpty then
    VerifactuD7.AutoEspera:=False
  else
    enviarVerifactu_Pendientes;

end;

Espero que le pueda servir a alguien.
__________________
Inieeeesssstademiviiiiidaaaaa.
  #4  
Antiguo 18-07-2025
Avatar de DarkDudae
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 177
Poder: 21
DarkDudae Va por buen camino
Cita:
Empezado por Matorral Ver Mensaje
Quería comentaros, por si le sirve a alguien, que estoy utilizando el evento onRegTrasEspera para gestionar la cola de envío, y va de cine.

Mi software es de hostelería y comercio, y en principio había pensado en realizar los envíos cada vez que se cobra una factura, pero no las tenia todas conmigo, porque en muchos bares y comercios realizan varios cobros por minuto, y quien sabe si los banearían.

Para gestionar la cola de envíos hago lo siguiente:

Cuando cobro una factura compruebo la propiedad AutoEspera. Si está a False la pongo a true y realizo el envío. Y si esta a True guardo la factura en la cola (FIFO) sin realizar envío.

Código Delphi [-]
        if VerifactuD7.AutoEspera=false then begin    // si esta a false se puede enviar
          try
            HazAvisoVerifactu('Enviando registro de facturación ... ');

            VerifactuD7.AutoEspera:=true;    // ponemos en marcha onTrasEspera

            enviarVerifactu_Simplificada( cSer,cTicket,'A'); // Enviamos Verifactu

            CierraAvisoVerifactu(Proc_Ventas);

          except
            showmessage('Fallo al enviar Factura');
          end;
        end
        else
          Graba_Pendiente_Envio(cSerieTickets,TTicket.FieldByName('SERIE').AsString,TTicket.FieldByName('CODIG  O').AsString,'S', 'N', 'N', 'N');

Luego en el evento onTrasEspera, si hay registros pendientes realizo el envío de las facturas guardadas en cola y si no hay registros pendientes de envío vuelvo a poner a False la propiedad AutoEspera.

Código Delphi [-]
/////// VERIFACTU
// autoenvio automatico de facturas pendientes REGISTROSPENDIENTESENVIO.DB
procedure TProc_Ventas.OnTrasEsperaD7( Sender: TObject );
begin

  if TRegistrosPendientesEnvio.IsEmpty then
    VerifactuD7.AutoEspera:=False
  else
    enviarVerifactu_Pendientes;

end;

Espero que le pueda servir a alguien.
Vaya, me ha alegrado ver que mi pequeña aportación al componente le ha servido a alguien. Pensaba que era el único que usaba algo así.
Comentarte que el componente intercepta el tiempo de espera entre operaciones devuelto en cada envío desde la AEAT para modificar el timer interno que se usa antes de lanzar el evento OnTrasEspera. Se incorporó para hacer exactamente lo que estás haciendo y lo estás usando de forma muy similar a la que lo hago yo mismo.

Un saludo!
__________________
El recuerdo es la prisión en la que el alma sueña pasado, cuando no vive el presente, ni quiere un futuro.
  #5  
Antiguo 18-07-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
La 4.7 ya esta enviada para su publicación, corrigiendo esas variables de la consulta

Saludos !
  #6  
Antiguo 18-07-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: 19.441
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
Subida la versión 4.7 al FTP
https://terawiki.clubdelphi.com/Otro...%20Delphi%207/

Gracias.
__________________
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.
  #7  
Antiguo 18-07-2025
Avatar de Matorral
Matorral Matorral is offline
Miembro
 
Registrado: oct 2006
Ubicación: Ferrol-Galicia
Posts: 92
Poder: 20
Matorral Va por buen camino
Cita:
Empezado por DarkDudae Ver Mensaje
Vaya, me ha alegrado ver que mi pequeña aportación al componente le ha servido a alguien. Pensaba que era el único que usaba algo así.
Comentarte que el componente intercepta el tiempo de espera entre operaciones devuelto en cada envío desde la AEAT para modificar el timer interno que se usa antes de lanzar el evento OnTrasEspera. Se incorporó para hacer exactamente lo que estás haciendo y lo estás usando de forma muy similar a la que lo hago yo mismo.

Un saludo!
Pues sinceramente, me parece una gran aportación. Muy útil, y te olvidas de manejar timers y controlar segundos devueltos por hacienda, etc...

Gracias¡¡¡¡¡
__________________
Inieeeesssstademiviiiiidaaaaa.
  #8  
Antiguo 17-07-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 Matorral Ver Mensaje
Buenas tardes¡¡

Gracias anticipadas de nuevo a todos por el enorme esfuerzo.

Acabo de darme cuenta de que al realizar la consulta de la AEAT de registros de facturación enviados, me aparecen todos como Subsanacion = 'S' y PrimerRegistro = 'S'.

La consulta la hago por medio del componente, capturando los registros en el evento onRegConsultaD7.

Los RF los envío sin valor en el campo Subsanacion, y trazando la función AddRegistroInicial el valor fPrimero tiene valor False, no entiendo por que al hacer la consulta me devuelve 'S' en esos dos campos (Subsanacion y RegistroInicial).

El xml de envio esta bien generado y el encadenamiento es correcto. Y el xml de respuesta también es correcto

A alguien le pasa esto?

uuummm...

revisa en la web de la AEAT como estan esos registros.

Si en la WEB DE LA AEAT estan correctos (es decir no aparece subsanacion y no son primer registro), entonces sera un problema de proceso de la consulta y lo reviso. Dimelo. (mira tambien si en el XML subsanacion no esta ni primer registro)

(Yo no he proceso la consulta para obtener de vuelta esos valores, me fijo en otros campos, de ahi que quizas esten mal procesados)

Saludos !
  #9  
Antiguo 17-07-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
Smile

por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.


el timer del que habla [matorral] fue una aportación de [Darkdudae]

Última edición por seccion_31 fecha: 17-07-2025 a las 10:25:27.
  #10  
Antiguo 17-07-2025
rafa1963 rafa1963 is offline
Miembro
 
Registrado: dic 2024
Posts: 100
Poder: 2
rafa1963 Va por buen camino
Post re

Buenos días seccion_31, Yo lo estoy utilizando en mi aplicación personal (en modo prueba) y va todo de lujo, si bien, lo que no he sido capaz aún es de insertar la firma en el signature. Todo funciona correctamente y voy adaptándolo según los mensajes de respuesta de la aeta y con los apreciados consejos que posteais.
Un millón de gracias a todos
  #11  
Antiguo 17-07-2025
Avatar de Matorral
Matorral Matorral is offline
Miembro
 
Registrado: oct 2006
Ubicación: Ferrol-Galicia
Posts: 92
Poder: 20
Matorral Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.

el timer del que habla [matorral] fue una aportación de [Darkdudae]
Yo sigo el componente desde el inicio. Mi aportación fue nula porque no llego al nivel. Siempre fui a remolque en esto de Verifactu. No sabia por donde empezar.
Me disteis la vida, porque ni por asombro podria conseguir todo esto por mi mismo. Creo que uno de los dias mas felices de mi vida fue cuando envie un RF a Hacienda y me contesto "Correcto"

A estas alturas aun sigo peleando con la implementación del componente en mis aplicaciones y lo que mas me aterra ahora mismo es el tratamiento de los errores que devuelva (aceptado con errores, etc ... ), porque aun no me he puesto con ello.

Pero que de verdad que os debo la vida¡¡

__________________
Inieeeesssstademiviiiiidaaaaa.
  #12  
Antiguo 17-07-2025
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 130
Poder: 22
elguille Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.


el timer del que habla [matorral] fue una aportación de [Darkdudae]
+1 Muchísimas gracias a ti y a todos los colaboradores
  #13  
Antiguo 17-07-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 162
Poder: 14
ramherfer Va por buen camino
[quote=seccion_31;566402] por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.

Yo y no me cansaré de dar las gracias primero a ti y despues a todos aquellos que han colaborado para que funcione correctamente este magnífico componente.
De momento no he detectado ningún problema
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #14  
Antiguo 18-07-2025
valdusio valdusio is offline
Miembro
 
Registrado: feb 2004
Posts: 10
Poder: 0
valdusio Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.


el timer del que habla [matorral] fue una aportación de [Darkdudae]
Yo también lo estoy usando. Va perfectamente.
Muchas gracias por tu aporte.
  #15  
Antiguo 21-07-2025
yeyo yeyo is offline
Miembro
 
Registrado: abr 2010
Posts: 24
Poder: 0
yeyo Va por buen camino
vaya por delante el agradecimiento a Seccion31 por su código!

Con la versión 4.7 me ha saltado el siguiente error:
"[dcc32 Error] uVerifactuFuncs.pas(...): E2361 Cannot access private symbol RespuestaDatosRegistroFacturacionType.Incidencia_Specified"

Después de mucho mirar me he encontrado con que sistemafacturacion.pas (el .pas generado a partir del WSDL) está modificado! buscar esta linea:

"PUBLIC // modificado aqui para disponer de las funciones _Specified"

A mí me ha saltado el error porque no estoy utilizando el sistemafacturacion.pas que viene con el componente. Estoy utilizando un sistemafacturacion.pas generado por mi, posterior: Version : 1.0 (01/07/2025 10:20:16 - - $Rev: 116709 $)

Lo digo para que lo tengaís en cuenta y el autor podrá confirmar si esto es así o me he liado yo. Y la cuestión... ¿es conveniente utilizar siempre el último WSDL? nos quedamos con una versión y ya? que consideraís que se debe hacer al respecto?


gracias!!
  #16  
Antiguo 21-07-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 yeyo Ver Mensaje
vaya por delante el agradecimiento a Seccion31 por su código!

Con la versión 4.7 me ha saltado el siguiente error:
"[dcc32 Error] uVerifactuFuncs.pas(...): E2361 Cannot access private symbol RespuestaDatosRegistroFacturacionType.Incidencia_Specified"

Después de mucho mirar me he encontrado con que sistemafacturacion.pas (el .pas generado a partir del WSDL) está modificado! buscar esta linea:

"PUBLIC // modificado aqui para disponer de las funciones _Specified"

A mí me ha saltado el error porque no estoy utilizando el sistemafacturacion.pas que viene con el componente. Estoy utilizando un sistemafacturacion.pas generado por mi, posterior: Version : 1.0 (01/07/2025 10:20:16 - - $Rev: 116709 $)

Lo digo para que lo tengaís en cuenta y el autor podrá confirmar si esto es así o me he liado yo. Y la cuestión... ¿es conveniente utilizar siempre el último WSDL? nos quedamos con una versión y ya? que consideraís que se debe hacer al respecto?


gracias!!
No hay mas remedio que publicar esas funciones para que funcionen bien las consultas. Esta documentado, tanto en el .pas como en la ayuda.txt

La actual es: // Version : 1.0 (14/02/2025 11:14:56 - - $Rev: 90173 $)

Pero yo creo que es la misma 1.0 que tienes tu, ¿importada en otra fecha? porque entiendo que la version deberia cambiar. (aqui ya no lo tengo claro)

Cuando se publique otro WSDL es ir a esos lugares y colocar el PUBLIC y listo. Es la solucion menos intrusiva que encontre.

No se si este problema se ha tratado en otros hilos del foro.

Saludos !

Última edición por seccion_31 fecha: 21-07-2025 a las 13:56:40.
  #17  
Antiguo 17-07-2025
Avatar de Matorral
Matorral Matorral is offline
Miembro
 
Registrado: oct 2006
Ubicación: Ferrol-Galicia
Posts: 92
Poder: 20
Matorral Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
uuummm...

revisa en la web de la AEAT como estan esos registros.

Si en la WEB DE LA AEAT estan correctos (es decir no aparece subsanacion y no son primer registro), entonces sera un problema de proceso de la consulta y lo reviso. Dimelo. (mira tambien si en el XML subsanacion no esta ni primer registro)

(Yo no he proceso la consulta para obtener de vuelta esos valores, me fijo en otros campos, de ahi que quizas esten mal procesados)

Saludos !
Alguien podría indicar un link a la web de la AEAT para consultar los envíos a la plataforma de pruebas? En el mensaje nº 1 no lo encontre.
__________________
Inieeeesssstademiviiiiidaaaaa.
  #18  
Antiguo 17-07-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 Matorral Ver Mensaje
Alguien podría indicar un link a la web de la AEAT para consultar los envíos a la plataforma de pruebas? En el mensaje nº 1 no lo encontre.
https://preportal.aeat.es/PRE-Exteri...cturacion.html
  #19  
Antiguo 17-07-2025
Avatar de Matorral
Matorral Matorral is offline
Miembro
 
Registrado: oct 2006
Ubicación: Ferrol-Galicia
Posts: 92
Poder: 20
Matorral Va por buen camino
Buenas tardes¡¡

Acabo de comprobar los registros enviados y las dos columnas me aparecen en blanco (Subsanación y Sin registro previo). O sea, que el componente envía bien la información. .
__________________
Inieeeesssstademiviiiiidaaaaa.
  #20  
Antiguo 17-07-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 Matorral Ver Mensaje
Buenas tardes¡¡

Acabo de comprobar los registros enviados y las dos columnas me aparecen en blanco (Subsanación y Sin registro previo). O sea, que el componente envía bien la información. .
acabo de revisar y pasa lo que ya anuncie con otros tipos en este mismo hilo.

En tipos serializados esa importación de delphi NO permite saber si tiene valor asignado o no.

La solucion es modificar el tipo SubsanacionType = (S, N);

y dejarlo:

SubsanacionType = (stNone, S, N);

Y cambiar algo el codigo de proceso de Consulta y asi funciona correcto.

Esto pasa con otros tipos.

Pero me parece muy intrusivo.

¿alguna idea mejor?

Saludos !
Tema Cerrado



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 04:30:52.


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