Ver Mensaje Individual
  #2  
Antiguo 24-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.436
Reputación: 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
Y sobre el pdf publicado de verifactu del calculo de huella, un ejemplo con los mismos datos para comprobar que la información sale correcta.

Código Delphi [-]
{$APPTYPE CONSOLE}

uses
    System.SysUtils,
    System.DateUtils,
    uGenerarHuellaVerifactu in 'F:\AutofirmaCLI\uGenerarHuellaVerifactu.pas';

var
    Generador: TGenerarHuellaVerifactu;
    h1, h2, h3: string;
    f1, f2, f3: TDateTime;
    FechaExpedicion: TDateTime;

begin
    try
        Generador := TGenerarHuellaVerifactu.Create;
        try
            FechaExpedicion := EncodeDate(2024, 1, 1);  //01-01-2024

            // === Caso 1: primer registro de alta (sin huella anterior) ===
            f1 := EncodeDateTime(2024, 1, 1, 18, 20, 30, 0);  //2024-01-01T19:20:30+01:00
            h1 := Generador.GenerarHuellaVerifactu(tpAlta, '89890001K', '12345678/G33', FechaExpedicion, f1, '', // Huella anterior vacía
                    False, // Península
                    'F1', // TipoFactura
                    12.35, 123.45);
            Writeln('Huella 1:');
            Writeln(h1);
            Writeln;

            // === Caso 2: segundo registro de alta (con huella anterior) ===
            f2 := EncodeDateTime(2024, 1, 1, 18, 20, 35, 0);   //01-01-2024
            h2 := Generador.GenerarHuellaVerifactu(tpAlta, '89890001K', '12345679/G34', FechaExpedicion, f2, h1, // Huella del registro anterior
                    False, // Península
                    'F1', // TipoFactura
                    12.35, 123.45);
            Writeln('Huella 2:');
            Writeln(h2);
            Writeln;

            // === Caso 3: anulación (sin campos financieros) ===
            f3 := EncodeDateTime(2024, 1, 1, 18, 20, 40, 0);
            h3 := Generador.GenerarHuellaVerifactu(tpAnulacion, '89890001K', '12345679/G34', FechaExpedicion, f3, h2, // Huella del registro anterior
                    False // península
                    // No se pasan TipoFactura, CuotaTotal ni ImporteTotal
                    );
            Writeln('Huella 3:');
            Writeln(h3);
            Writeln;

            Readln;
        finally
            Generador.Free;
        end;
    except
        on E: Exception do
            Writeln('Error: ', E.Message);
    end;

end.

Espero que sea útil.
__________________
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