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
  #481  
Antiguo 10-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 starlet Ver Mensaje
Te pongo un ejemplo con los nodos:
Código:
<RegFactuSistemaFacturacion>
 <Cabecera>
 <ObligadoEmision>
  <NombreRazon>EMPRESA PRUEBA</NombreRazon> 
  <NIF>00000006Y</NIF> 
  </ObligadoEmision>
  </Cabecera>
 <RegistroFactura>
 <RegistroAlta>
  <IDVersion>1.0</IDVersion> 
 <IDFactura>
  <IDEmisorFactura>00000006Y</IDEmisorFactura> 
  <NumSerieFactura>2312-5</NumSerieFactura> 
  <FechaExpedicionFactura>16-06-2025</FechaExpedicionFactura> 
  </IDFactura>
  <RefExterna>20250906000023000001002000000005</RefExterna> 
  <NombreRazonEmisor>EMPRESA</NombreRazonEmisor> 
  <TipoFactura>F3</TipoFactura> 
 <FacturasSustituidas>
 	<IDFacturaSustituida>
  		<IDEmisorFactura>00000006Y</IDEmisorFactura> 
  		<NumSerieFactura>23.1.1-6</NumSerieFactura> 
  		<FechaExpedicionFactura>06-09-2025</FechaExpedicionFactura> 
  	</IDFacturaSustituida>
  </FacturasSustituidas>
  <DescripcionOperacion>CANJE DE TIQUET/S PETICION CLIENTE</DescripcionOperacion> 
 <Destinatarios>
 <IDDestinatario>
  <NombreRazon>natural</NombreRazon> 
  <NIF>BXXXXXXXX</NIF> 
  </IDDestinatario>
  </Destinatarios>
 <Desglose>
 <DetalleDesglose>
  <ClaveRegimen>01</ClaveRegimen> 
  <CalificacionOperacion>S1</CalificacionOperacion> 
  <TipoImpositivo>4.00</TipoImpositivo> 
  <BaseImponibleOimporteNoSujeto>2.88</BaseImponibleOimporteNoSujeto> 
  <CuotaRepercutida>0.12</CuotaRepercutida> 
  </DetalleDesglose>
  </Desglose>
  <CuotaTotal>0.12</CuotaTotal> 
  <ImporteTotal>3.00</ImporteTotal> 
 <Encadenamiento>
 <RegistroAnterior>
  <IDEmisorFactura>00000006Y</IDEmisorFactura> 
  <NumSerieFactura>23.1.1-6</NumSerieFactura> 
  <FechaExpedicionFactura>06-09-2025</FechaExpedicionFactura> 
  <Huella>D595EAF45EDF1A18D3602AE2EC7D84C1F9F86A2D991622CDE2FF27A0F4254849</Huella> 
  </RegistroAnterior>
  </Encadenamiento>
 <SistemaInformatico>
  <NombreRazon>papara</NombreRazon> 
  <NIF>AXXXXXXXX</NIF> 
  <NombreSistemaInformatico>pruebas</NombreSistemaInformatico> 
  <IdSistemaInformatico>01</IdSistemaInformatico> 
  <Version>T.1.0.7275-P.1.00.0759-C.1.00.0003</Version> 
  <NumeroInstalacion>00000006Y NCentro:23 NTPV:1</NumeroInstalacion> 
  <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu> 
  <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT> 
  <IndicadorMultiplesOT>N</IndicadorMultiplesOT> 
  </SistemaInformatico>
  <FechaHoraHusoGenRegistro>2025-09-06T21:36:17+02:00</FechaHoraHusoGenRegistro> 
  <TipoHuella>01</TipoHuella> 
  <Huella>98171943CECAD4369F71E7124A5E31E9A11BAA8C8B3991C36E69CAD32D65B80F</Huella> 
  </RegistroAlta>
  </RegistroFactura>
  </RegFactuSistemaFacturacion>
aparentemente es añadir este nodo por tantas facturas como se sustituyan en la F3.

Código:
<IDFacturaSustituida>
  <IDEmisorFactura>00000006Y</IDEmisorFactura> 
  <NumSerieFactura>23.1.X-XX</NumSerieFactura> 
  <FechaExpedicionFactura>XX-09-2025</FechaExpedicionFactura> 
</IDFacturaSustituida>
Si puedes hacerlo sería fantástico. Me ofrezco voluntario para probarlo.

Mil gracias.
no puedo colocar un array dinamico de IDFacturaSustituida tendria que haber un limite, ¿por ejemplo 5 tickets para cambiarlos a una factura? (si lo h entendido bien lo que es la F3)
  #482  
Antiguo 10-07-2025
starlet starlet is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 31
Poder: 0
starlet Va por buen camino
En teoría se pueden sustituir varias facturas simplificadas en 1 nominal, pero si lo ves más sencillo en 1 también vale pq en la gran mayoría de los casos 1 simplificada -> 1 nominal .

El nodo es <FacturasSustituidas> y dentro el array.

Código:
<FacturasSustituidas>
 	<IDFacturaSustituida>
  		<IDEmisorFactura>00000006Y</IDEmisorFactura> 
  		<NumSerieFactura>23.1.1-6</NumSerieFactura> 
  		<FechaExpedicionFactura>06-09-2025</FechaExpedicionFactura> 
  	</IDFacturaSustituida>
  </FacturasSustituidas>
  #483  
Antiguo 11-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 versión 4.6 incluirá el tipo de factura F3.

Saludos !
  #484  
Antiguo 11-07-2025
starlet starlet is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 31
Poder: 0
starlet Va por buen camino
En teoría se pueden sustituir varias facturas simplificadas en 1 nominal, pero si lo ves más sencillo en 1 también vale pq en la gran mayoría de los casos 1 simplificada -> 1 nominal .

El nodo es <FacturasSustituidas> y dentro el array.

Código:
<FacturasSustituidas>
 	<IDFacturaSustituida>
  		<IDEmisorFactura>00000006Y</IDEmisorFactura> 
  		<NumSerieFactura>23.1.1-6</NumSerieFactura> 
  		<FechaExpedicionFactura>06-09-2025</FechaExpedicionFactura> 
  	</IDFacturaSustituida>
  </FacturasSustituidas>
  #485  
Antiguo 14-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.435
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
Ya está la subida la versión 4.6a
Que como ha comentado [sección_31] incluye las facturas de tipo F3

Está en el FTP del club:
https://terawiki.clubdelphi.com/Otro...%20Delphi%207/
__________________
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.
  #486  
Antiguo 14-07-2025
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 62
Poder: 20
mqm Va por buen camino
Da igual si tienes variuas series. Simpre es sobre la ultima y por lo que he visto hasta ahora lo esta haciendo bien.
  #487  
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 !

: )
  #488  
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.
  #489  
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.
  #490  
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 !
  #491  
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.
  #492  
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
  #493  
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.
  #494  
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
  #495  
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.
  #496  
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
  #497  
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.
  #498  
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.
  #499  
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 !
  #500  
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 seccion_31 Ver Mensaje
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 !
Alterando un poco el codigo del interface soap y publicando las funciones _Specified creo que ya funciona !

Saludos !

Última edición por seccion_31 fecha: 17-07-2025 a las 19:54:23.
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 07:32:57.


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