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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.215
Poder: 24
newtron Va camino a la fama
Hola.


Prueba con esta forma de generar ese dato:


Código Delphi [-]
  DateTime:=now;
  XSDatetime := TXSDatetime.Create;
  XSDateTime.AsDateTime := dateTime;
  Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime;


La variable XSDatetime es del tipo TXSDatetime y tienes que poner en el uses Soap.XSBuiltIns


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 26-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola.


Prueba con esta forma de generar ese dato:


Código Delphi [-] DateTime:=now; XSDatetime := TXSDatetime.Create; XSDateTime.AsDateTime := dateTime; Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime;



La variable XSDatetime es del tipo TXSDatetime y tienes que poner en el uses Soap.XSBuiltIns


Saludos.



Y lo hacía así pero me daba error:


Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:04:19.643+01:00</FechaHoraHusoGenRegistro>
Error no.: 1244 El campo FechaHoraHusoGenRegistro tiene un formato incorrecto.


Lo cambie por:

Código Delphi [-]XSDatetime := TXSDatetime.Create; XSDatetime.AsUTCDateTime :=getAhora;//Now; //XSDatetime.HourOffset:=1; //XSDatetime.UseZeroMilliseconds:=false; Factura.RegistroAlta.FechaHoraHusoGenRegistro :=XSDatetime;



Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:06:21.000Z</FechaHoraHusoGenRegistro>
Me lo acepta pero con errores:


Error no.: 2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos. RefExterna=2219518
TimestampPresentacion: 26/02/2025 18:06:21
Responder Con Cita
  #3  
Antiguo 26-02-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 344
Poder: 2
Jarogo08 Va por buen camino
Buenas jodaws


Creo que no tienes bien el formato. Tiene que ser algo así (sin milisegundos y con el +01:00 de la franja horaria):


2025-02-26T12:18:25+01:00


Yo lo obtengo así y me va sin problemas (es en VB. NET)


Dim retorno As String = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK")


espero que te sirva!
Responder Con Cita
  #4  
Antiguo 26-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Buenas jodaws


Creo que no tienes bien el formato. Tiene que ser algo así (sin milisegundos y con el +01:00 de la franja horaria):


2025-02-26T12:18:25+01:00


Yo lo obtengo así y me va sin problemas (es en VB. NET)


Dim retorno As String = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK")


espero que te sirva!



Es que no lo puedo formatear yo o no sé como hacerlo, ya que tengo un tipo TXSDateTime. No le puedo asignar un string directamente... A ver si hay alguien en Delphi que lo haya solucionado y me da luz
Responder Con Cita
  #5  
Antiguo 26-02-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.215
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por jodaws Ver Mensaje
Y lo hacía así pero me daba error:


Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:04:19.643+01:00</FechaHoraHusoGenRegistro>
Error no.: 1244 El campo FechaHoraHusoGenRegistro tiene un formato incorrecto.


Lo cambie por:

Código Delphi [-]XSDatetime := TXSDatetime.Create; XSDatetime.AsUTCDateTime :=getAhora;//Now; //XSDatetime.HourOffset:=1; //XSDatetime.UseZeroMilliseconds:=false; Factura.RegistroAlta.FechaHoraHusoGenRegistro :=XSDatetime;



Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:06:21.000Z</FechaHoraHusoGenRegistro>
Me lo acepta pero con errores:


Error no.: 2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos. RefExterna=2219518
TimestampPresentacion: 26/02/2025 18:06:21

Ok, ya sé lo que te pasa. Es por los milisegundos. Prueba a hacerlo así:


Código Delphi [-]
  XSDateTime.AsDateTime := dateTime;
  Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime;
  Factura.RegistroAlta.FechaHoraHusoGenRegistro.FractionalSeconds:=0;


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 27-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Ok, ya sé lo que te pasa. Es por los milisegundos. Prueba a hacerlo así:


Código Delphi [-] XSDateTime.AsDateTime := dateTime; Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime; Factura.RegistroAlta.FechaHoraHusoGenRegistro.FractionalSeconds:=0;



Saludos.

Muchas gracias a todos!Pues así lo ha hecho bien pero ahora me salta error en el cálculo de la huella


Código:
<FechaHoraHusoGenRegistro>2025-02-27T09:08:59+01:00</FechaHoraHusoGenRegistro>
Código:
<tikR:DescripcionErrorRegistro>El cálculo de la huella suministrada es incorrecta. 
      Datos de entrada cálculo huella: 
        IDEmisorFactura=XXXXXXXXX&
        NumSerieFactura=1/125000013&
        FechaExpedicionFactura=26-02-2025&
        TipoFactura=F1&
        CuotaTotal=1.72&
        ImporteTotal=9.90&
        Huella=857d7da1a202c1659e2249feb65273a6333afc3166e97d9f2018978a42cb9233&
        FechaHoraHusoGenRegistro=2025-02-27T09:08:59+01:00 
        Huella calculada: FE087FDBAAC73C408D8F5100CC06175476A9741BF4EFBFC4C088C86F027F4E73</tikR:DescripcionErrorRegistro>
Edito: la huella debe estar en mayúsculas!

Última edición por jodaws fecha: 27-02-2025 a las 09:24:18.
Responder Con Cita
  #7  
Antiguo 27-02-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.215
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por jodaws Ver Mensaje
Muchas gracias a todos!Pues así lo ha hecho bien pero ahora me salta error en el cálculo de la huella


Código:
<FechaHoraHusoGenRegistro>2025-02-27T09:08:59+01:00</FechaHoraHusoGenRegistro>
Código:
<tikR:DescripcionErrorRegistro>El cálculo de la huella suministrada es incorrecta. 
      Datos de entrada cálculo huella: 
        IDEmisorFactura=XXXXXXXXX&
        NumSerieFactura=1/125000013&
        FechaExpedicionFactura=26-02-2025&
        TipoFactura=F1&
        CuotaTotal=1.72&
        ImporteTotal=9.90&
        Huella=857d7da1a202c1659e2249feb65273a6333afc3166e97d9f2018978a42cb9233&
        FechaHoraHusoGenRegistro=2025-02-27T09:08:59+01:00 
        Huella calculada: FE087FDBAAC73C408D8F5100CC06175476A9741BF4EFBFC4C088C86F027F4E73</tikR:DescripcionErrorRegistro>
Edito: la huella debe estar en mayúsculas!

No das muchas pistas sobre lo que te pasa con la huella, por si te sirve de algo yo lo hago así:


Código Delphi [-]
  // Calculo huella
  sAux:='IDEmisorFactura='+Edit2.Text+'&NumSerieFactura='+Factura.RegistroAlta.IDFactura.NumSerieFactu  ra+'&FechaExpedicionFactura='+Factura.RegistroAlta.IDFactura.FechaExpedicionFactura;
 sAux:=sAux+'&TipoFactura='+ListaCampos[2]+'&CuotaTotal='+Factura.RegistroAlta.CuotaTotal+'&ImporteTotal='+Factura.RegistroAlta.ImporteTotal+'  &Huella='+Edit18.Text+'&FechaHoraHusoGenRegistro='+XSDateTime.NativeToXS;
  Huella:=UpperCase(HashSHA256(sAux));
  Factura.RegistroAlta.TipoHuella := TipoHuellaType._01;
  Factura.RegistroAlta.Huella     := Huella;


No creo que tengas mucho problema en adivinar unas cuantas variables que hay en esas líneas.


y la función HashSHA256:


Código Delphi [-]
function HashSha256(const APassword: string): string;
var
  SHA256: THashSHA2;
begin
  SHA256 := THashSHA2.Create;
  try
    Result := SHA256.GetHashString(APassword);
  finally
    FreeAndNil(SHA256);
  end;
end;


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 27-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
No das muchas pistas sobre lo que te pasa con la huella, por si te sirve de algo yo lo hago así:


Código Delphi [-] // Calculo huella sAux:='IDEmisorFactura='+Edit2.Text+'&NumSerieFactura='+Factura.RegistroAlta.IDFactura.NumSerieFactu ra+'&FechaExpedicionFactura='+Factura.RegistroAlta.IDFactura.FechaExpedicionFactura; sAux:=sAux+'&TipoFactura='+ListaCampos[2]+'&CuotaTotal='+Factura.RegistroAlta.CuotaTotal+'&ImporteTotal='+Factura.RegistroAlta.ImporteTotal+' &Huella='+Edit18.Text+'&FechaHoraHusoGenRegistro='+XSDateTime.NativeToXS; Huella:=UpperCase(HashSHA256(sAux)); Factura.RegistroAlta.TipoHuella := TipoHuellaType._01; Factura.RegistroAlta.Huella := Huella;



No creo que tengas mucho problema en adivinar unas cuantas variables que hay en esas líneas.


y la función HashSHA256:


Código Delphi [-]function HashSha256(const APassword: string): string; var SHA256: THashSHA2; begin SHA256 := THashSHA2.Create; try Result := SHA256.GetHashString(APassword); finally FreeAndNil(SHA256); end; end;



Saludos.



Muchas gracias y disculpad, quería decir que la huella debe estar en mayúsculas y ya me ha funcionado correctamente.
Responder Con Cita
Respuesta


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
Maxima longitud de un Varchar(x) ingabraham Varios 4 13-08-2010 00:21:14
Convertir segundos a formato hora, minutos y segundos jafera Varios 2 07-02-2009 22:13:45
BMP/JPG a máxima velocidad MaMu Gráficos 14 11-03-2008 14:34:37
Cantidad maxima de hilos ?? marceloalegre Varios 2 18-04-2007 17:27:46
Longitud maxima integer cinecito Varios 10 12-05-2004 03:06:22


La franja horaria es GMT +2. Ahora son las 18:20:09.


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