Ver Mensaje Individual
  #6  
Antiguo 06-11-2006
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Reputación: 21
adebonis Va por buen camino
Hola.

Yo hago lo siguiente:

Genero la factura en formato pdf, la firmo y la envío por correo electrónico. La firma de la factura la realiza el método Firma. Fíjate que el método firma necesita del archivo origen a firmar, el número de NIF del emisor de la factura (debe estar instalado el certificado digital) y el archivo resultante ya firmado.

utilizo el siguiente código:

Código Delphi [-]
var
  Inicio, Final: WideString;
  Aeat: Variant;
begin
    dmSgp.Export1.Report := Listado;
    dmSgp.Export1.ExportQRPDF(varDirExe+ 'Temp\'+ NombreFacTel, True, False);
    Inicio := varDirExe+ 'Temp\'+ NombreFacTel+ '.pdf';
    Final := varDirExe+ 'Temp\'+ NombreFacTel+ '.F64';;
    Aeat := CreateOleObject('AeatFact.AeatFactCtl');
    try
    CodiFirma := Aeat.FIRMA(Inicio, NifEmi, Final);
    if Copy(CodiFirma, 1, 2) <> '00' then
      Mensaje('ERROR en la generación de la Factura telématica.'+ #13+ Copy(CodiFirma, 4, 100)+ '.')
    else begin
      CopyFile(PChar(varDirExe+ 'Temp\'+ NombreFacTel+ '.F64'), PChar(varDirIni+ '\FacturasEmitidas\'+ NombreFacTel+ '.F64'), False);
      with dmSgp.sqlSgp do begin
        sql.Clear;
        sql.Add('insert into sgp20Fte values (:Num, 0, es)');
        ParamByName('Num').AsInteger := Factura;
        ParamByName('Des').AsString := NombreFacTel+ '.F64';
        ExecSql;
      end;
      fMensaje.EnviaEmilio(varAsunto, Nombre, Eml, varDirIni+ '\FacturasEmitidas\'+ NombreFacTel+'.F64', TexAsu, True, 0);
    end;
    finally
    Aeat := Unassigned;
    end;
end;

Bueno, coméntame cualquier cosa si lo necesitas.

Adolfo Bonis Mora
Adolfo
Responder Con Cita