Ver Mensaje Individual
  #1  
Antiguo 17-10-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Reputación: 10
seccion_31 Va por buen camino
publicada version 5.7 del proyecto DLL Veri*factu

La version 5.7 va a incoporar la posibilidad de guardar y recuperar en formato binario el TRegistroFactura

De esta forma es muy sencillo con apenas unas pocas instrucciones, crear una "cola" para ir procesando los registros de facturacion.

La demo incorporara el ejemplo de una cola de envio funcional que permite recibir en cualquier momento registros de facturacion en una carpeta e irlos procesando, segun el intervalo de la AEAT.

Código:
procedure TForm1.Guardarbinario1Click(Sender: TObject);
var
  fila    :integer;
  factura :TRegistroFactura;
begin
      fila:=stringGridFacturas.Row;
      factura:=stringGrid_to_VerFactuD7( fila, false );

      saveVeriFactuFile.FileName:=dirEnvio+'\'+factura.numSerieFactura+'.verifactu';

      if saveVerifactuFile.execute then
          veriFactuD7.saveFacturaToFile(factura,saveVeriFactuFile.filename);
end;
En este ejemplo, que viene de la demo se selecciona la fila de la excel cargada, se crea el registro de factura en stringGrid_to_VerFactuD7 y despues de la caja de dialogo de guardar como, se archiva en disco.

Con ese binario en el disco, un timer, puede capturarlo(s), enviarlo(s) y procesar resultados.

Código:
        veriFactuD7.loadFacturaFromFile( factura, version, archivo);

        n:=VeriFactuD7.addFactura( factura );
        if n<=0 then
        begin
              showmessage('Error Añadiendo Factura '+factura.numSerieFactura+' Al Servidor');
              if VeriFactuD7.ultimo_error_verifactu<>'' then
                  showmessage( VeriFactuD7.ultimo_error_verifactu );
        end;
Guardas los binarios desde los diferentes puestos de facturacion, o un unico puesto a medida que facturan

La aplicacion "servidora" los encuentra en la carpeta y en el intervalo de tiempo

Código:
veriFactuD7.listFacturasFiles(dirEnvio, 'verifactu', listaEnvio);
esta funcion devuelve los binarios de la carpeta, ordenados por fecha y hora


Añade el registro inicial
Carga los binarios
Envia
Elimina los binarios procesados
Procesa resultados devueltos por la AEAT

Última edición por seccion_31 fecha: 17-10-2025 a las 13:00:56.
Responder Con Cita