Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 893
Poder: 3
ermendalenda Va por buen camino
Huella

Hola,a ver que entendeis de ésto:

Huella de la factura (Realizada sobre el nodo RegistroFacturacion)

¿Calculariais con el nombre del nodo o sin él?

O sea sha256 sobre
Código:
<RegistroFacturacion></RegistroFacturacion>
¿Incluido o sin incluir ?
Responder Con Cita
  #2  
Antiguo 11-08-2022
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 144
Poder: 3
antoine0 Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Huella de la factura (Realizada sobre el nodo RegistroFacturacion)
¿Calculariais con el nombre del nodo o sin él?
Con; es decir, desde el primero < hasta el último >. El nodo incluye su identificador y sus delimitadores.

Creo que en la norma XML, el nodo se extiende un poco más, es decir, también recoge todo el texto que viene detrás del último > (¡cuidado, esto incluye los CR y LF!) y también eventuales comentarios que pueden venir después del último >.
Sin embargo, poner comentarios detrás del </RegistroFacturacion> me parece una extraordinaria mala idea
Y para evitar malas sorpresas de parte de paquetes XML que siguen la norma de forma más o menos estricta, creo que sería una buena idea pegar la etiqueta <DatosControl> justo detrás del </RegistroFacturacion>, sin nada entre las dos etiquetas.
Responder Con Cita
  #3  
Antiguo 11-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 893
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por antoine0 Ver Mensaje
Con; es decir, desde el primero < hasta el último >. El nodo incluye su identificador y sus delimitadores.

Creo que en la norma XML, el nodo se extiende un poco más, es decir, también recoge todo el texto que viene detrás del último > (¡cuidado, esto incluye los CR y LF!) y también eventuales comentarios que pueden venir después del último >.
Sin embargo, poner comentarios detrás del </RegistroFacturacion> me parece una extraordinaria mala idea
Y para evitar malas sorpresas de parte de paquetes XML que siguen la norma de forma más o menos estricta, creo que sería una buena idea pegar la etiqueta <DatosControl> justo detrás del </RegistroFacturacion>, sin nada entre las dos etiquetas.
Buena idea gracias.
Responder Con Cita
  #4  
Antiguo 15-09-2022
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 23
Poder: 0
CarlosMz Va por buen camino
Hola,

Esto es nuevo o es lo mismo:

www infoautonomos.com/blog/factura-electronica-obligatoria-autonomos/
Responder Con Cita
  #5  
Antiguo 15-09-2022
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.035
Poder: 22
keys Va por buen camino
Eso es otra cosa.

Una cosa es la ley antifraude (VERIFACTU) y otra es la forma de como les envias las facturas a tus clientes que es a lo que se refiere el articulo (Facturae, pdf, etc...).
Responder Con Cita
  #6  
Antiguo 15-09-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por CarlosMz Ver Mensaje
Hola,
Esto es nuevo o es lo mismo:
www infoautonomos.com/blog/factura-electronica-obligatoria-autonomos/
Es otra cosa:
Cita:
¿Cuándo entrará en vigor? La factura electrónica entrará en vigor en enero de 2023 para todos aquellos autónomos o empresas que tengan una facturación superior a 8 millones de euros anuales.
El resto de autónomos y empresas (facturaciones inferiores a 8 millones de euros) tendrán de margen hasta 2025 para emitir todas sus facturas en formato electrónico.
Ah, ya te ha contestado keys.
Responder Con Cita
  #7  
Antiguo 18-09-2022
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Hola... alguien tiene información de qué es lo que hay que imprimir en el dichoso QR ??? En hacienda sólo dicen que tiene que ir la información necesaria para que el cliente pueda comprobar que la factura ha sido declarada correctamente. Pensé que con la Huella sería suficiente, pero también he leído que la información contenida también debe ayudar al cliente a registrar esa factura en su sistema automáticamente, ¿¿¿ habrá que meter el <registrofactura> completo ???
__________________
Amar al mundo apasionadamente.
Responder Con Cita
  #8  
Antiguo 19-09-2022
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.293
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 afxe Ver Mensaje
... alguien tiene información de qué es lo que hay que imprimir en el dichoso QR ??? En hacienda sólo dicen que tiene que ir la información necesaria para que el cliente pueda comprobar que la factura ha sido declarada correctamente. Pensé que con la Huella sería suficiente, pero también he leído que la información contenida también debe ayudar al cliente a registrar esa factura en su sistema automáticamente, ¿¿¿ habrá que meter el <registrofactura> completo ???
Si es similar a TicketBAI (y por ahora las cosas se parecebn bastante) es una URL con la información suficiente para que el cliente "busque" su factura en el sistema y compare que es igul a la que tienes en las manos.

Es este caso es esta URL
https://tbai.prep.gipuzkoa.eus/qr/

Y a continuación concatenar esta información:
“?id=IDENTIFICATIVO_TBAIi&s=SERIE&nf=NUMERO_FACTURA&i=IMPORTE&cr=CODIGO_CRC”
__________________
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
  #9  
Antiguo 09-05-2023
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 51
Poder: 12
ramherfer Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola,a ver que entendeis de ésto:

Huella de la factura (Realizada sobre el nodo RegistroFacturacion)

¿Calculariais con el nombre del nodo o sin él?

O sea sha256 sobre
Código:
<RegistroFacturacion></RegistroFacturacion>
¿Incluido o sin incluir ?
(Pongo esta pregunta en el hilo pero tengo dudas de como pasar la información desde el nodo del xml para calcular su huella)

Hola buenas tardes. A ver si me podeis echar un cable ¿Cómo puedo pasar el contenido del nodo <RegistroFacturacion>contenido</RegistroFacturación> a un string para calcular su huella? si es que se ha de hacer así. Por más que he buscado he intentado no lo consigo de ninguna manera. Ayuda por favor.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
Responder Con Cita
  #10  
Antiguo 09-05-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Algo así:


Código Delphi [-]
uses
  IdHash, IdHashSHA, IdGlobal, SysUtils;

function CalculateFileHash(const FileName: string): string;
var
  FileStream: TFileStream;
  SHA256Hash: TIdHashSHA256;
  HashBytes: TBytes;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    SHA256Hash := TIdHashSHA256.Create;
    try
      HashBytes := SHA256Hash.HashValue(FileStream);
      Result := LowerCase(BytesToHex(HashBytes));
    finally
      SHA256Hash.Free;
    end;
  finally
    FileStream.Free;
  end;
end;

// Ejemplo de uso:
procedure TForm1.Button1Click(Sender: TObject);
var
  FileName: string;
  HashValue: string;
begin
  FileName := 'ruta_del_archivo.xml';
  HashValue := CalculateFileHash(FileName);
  ShowMessage('Hash SHA256 del archivo XML: ' + HashValue);
end;
Responder Con Cita
  #11  
Antiguo 09-05-2023
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 51
Poder: 12
ramherfer Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Algo así:


Código Delphi [-]
uses
  IdHash, IdHashSHA, IdGlobal, SysUtils;

function CalculateFileHash(const FileName: string): string;
var
  FileStream: TFileStream;
  SHA256Hash: TIdHashSHA256;
  HashBytes: TBytes;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    SHA256Hash := TIdHashSHA256.Create;
    try
      HashBytes := SHA256Hash.HashValue(FileStream);
      Result := LowerCase(BytesToHex(HashBytes));
    finally
      SHA256Hash.Free;
    end;
  finally
    FileStream.Free;
  end;
end;

// Ejemplo de uso:
procedure TForm1.Button1Click(Sender: TObject);
var
  FileName: string;
  HashValue: string;
begin
  FileName := 'ruta_del_archivo.xml';
  HashValue := CalculateFileHash(FileName);
  ShowMessage('Hash SHA256 del archivo XML: ' + HashValue);
end;
Gracias Casimiro, pero eso sería para crear el hash del fichero xml, pero lo que tiene que llevar es en el campo huella el hash sólo del contenido del nodo <RegistroFacturacion>contenido</RegistroFacturacion>. Entonces el problema es que no tengo ni pajolera idea de como pasar el nodo completo a widestring (por ejemplo) para calcular el hash del string y pasarlo al campo huella. Agradezco tu respuesta mil+1
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
Responder Con Cita
  #12  
Antiguo 10-05-2023
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 51
Poder: 12
ramherfer Va por buen camino
Bueno pues ya lo tengo, he recibido ayuda de valor incalculable, Si no, no lo consigo ni de coña. Ojo que como ya se había hablado, es bien distinto calcular el hash con el fichero xml formateado indentado que sin formato evidentemente los CR LF varian el valor del Hash. ¿Cómo se tendrá que hacer? pues sorpresa, pero por lo menos lo está haciendo. Luego es más fácil corregir y adaptar que empezar desde cero. Las cosas deprisa y corriendo por muy claras que las tengas, no suelen salir igual.
Observaciones estoy creando el hash mientras estoy creando el xml.

Aquí va el código, cualquier sugerencia u objeción sería bien recibida.

Código:
   

var
   archivoXML: TXMLDocument;
   NDatosControl, NCabecera : IXMLNode;
   NodoSistema, NodoRegistroAltaFacturas, NodoRegistroFacturacion: IXMLNode;
   ContenidoNodoRegistroFacturacion: WideString;
   Huella: String;

    · · ·

    NDatosControl := NCabecera.AddChild( 'DatosControl' );
    Nodo := NDatosControl.AddChild( 'Huella' );
    //***** Calculo Hash RegistroFacturacion
    NodoSistema := archivoXML.DocumentElement;
    NodoregistroAltaFacturas := NodoSistema.ChildNodes.FindNode('RegistroAltaFacturas');
    if Assigned(NodoregistroAltaFacturas) then
    begin
      NodoRegistroFacturacion := NodoRegistroAltaFacturas.ChildNodes.FindNode('RegistroFacturacion');
      if Assigned(NodoRegistroFacturacion) then
        ContenidoNodoRegistroFacturacion := NodoRegistroFacturacion.XML;
    end;
    Huella := CalculaStrHashSHA256(ContenidoNodoRegistroFacturacion, checkBox1.Checked);
    //****** Fin calculo huella SHA256
    Nodo.Text := Huella;
    Nodo := NDatosControl.AddChild( 'TipoHash' );
    Nodo.Text := '01';

    · · ·
La función CalculaStrHashSHA256 esta contenida en una librería DLL. Si alguien necesita el código de la librería lo pongo, aunque es bien sencillo.
He comprobado los Hash resultantes con la herramienta online https://emn178.github.io/online-tools/sha256.html y en principio están perfectos.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
Responder Con Cita
  #13  
Antiguo 11-05-2023
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 178
Poder: 3
edari Va por buen camino
Pongo por adelantado que no he empezado a hacer anda de esto hasta que no sea todo más o menos definitivo.



Me he leído el hilo y esperando la nueva "movida" que nos llega.



Yo también tendré que generar el Hash sha256 desde un proceso externo y no sé si puedo usar utilidades tipo CERTUTIL del propio sistema operativo o me estoy liando bien liado...


https://www.dell.com/support/kbdoc/e...re-y-antivirus


Insisto que igual estoy diciendo una burrada pero bueno por si os suena este tipo de utilidades. Perdón de antemano...



Gracias...
Responder Con Cita
  #14  
Antiguo 19-05-2023
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 893
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por edari Ver Mensaje
Pongo por adelantado que no he empezado a hacer anda de esto hasta que no sea todo más o menos definitivo.


Me he leído el hilo y esperando la nueva "movida" que nos llega.



Yo también tendré que generar el Hash sha256 desde un proceso externo y no sé si puedo usar utilidades tipo CERTUTIL del propio sistema operativo o me estoy liando bien liado...


https://www.dell.com/support/kbdoc/e...re-y-antivirus


Insisto que igual estoy diciendo una burrada pero bueno por si os suena este tipo de utilidades. Perdón de antemano...



Gracias...
Hay apis de windows que se pueden incluir, no creo que desarrollers en un lenguaje que no se pueda, tendría que ser cobol qbasic o gwbasic
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
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 19:45:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi