Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 08-10-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question

Cita:
Empezado por Rom@n Ver Mensaje
Hola quetal programadores quiero aportar un poco al tema de facturacion electronica voy a explicar brevemente este codigo esperando que le sirva a mas de uno:
1:Primero Busco con dialogExecute el archivo .cer
2:ejecuto el openssl con shellexecute y paso los parametros para convertir a formato pem y creo un archivo de texto.
3:con una funcion de escaneo busco la palabra not after y copio solo la fecha con copy y la proceso para lograr un formato de echa valido
4:la funcion LongDateStrToShortDateStr me rotorna el numero de mes ya que en el archivo caduca aparece el mes abreviado ejem:ene,feb,mar....dic


Código Delphi [-]
procedure Tfrm_datos_empresa.BitBtn5Click(Sender: TObject);
var
Rutacerti,nombrecerti:string;
position: integer;
dia,mes,yy,h,m,s:string;
begin
if Opencerti.Execute then
begin
Rutacerti := Opencerti.FileName ;
if Rutacerti <> '' then
begin
nombrecerti:=ExtractFileName(opencerti.FileName);
CopyFile(PChar(rutacerti), PChar('C:\SAT\'+nombrecerti), false);
certi.Text:=nombrecerti;
ShellExecute(Handle, nil, pchar('C:\openssl\openssl.exe'), pchar('x509 -inform DER -outform PEM -in '+PChar('C:\SAT\'+nombrecerti)+' -out C:\SAT\'+nombrecerti+'.pem'),nil,SW_SHOW);
Sleep(1000);
ShellExecute(Handle, nil, pchar('C:\openssl\openssl.exe'), pchar('x509 -in C:\SAT\'+nombrecerti+'.pem -text -out C:\SAT\caduca.txt'),nil,SW_SHOW);
Sleep(1000);
//proceso para sacar la fecha de caducidad
position := ScanFile('C:\SAT\caduca.txt', 'Not After', true);
if position <> -1 then
begin
//showmessage(archivo_caduca);
dia:=Copy(archivo_caduca,17,2);
mes:=LongDateStrToShortDateStr(Copy(archivo_caduca,13,3));//(Copy(archivo_caduca,13,3)));
yy:=Copy(archivo_caduca,29,4);
h:=Copy(archivo_caduca,20,8);
if date>=strtodatetime(dia+'/'+mes+'/'+yy+' '+h) then
showmessage('Este certificado ya esta caducado:'+ dia+'/'+mes+'/'+yy+' '+h)
else
showmessage('Certificado Vigente hasta:'+ dia+'/'+mes+'/'+yy+' '+h);
caduca.DateTime:= strtodatetime(dia+'/'+mes+'/'+yy+' '+h);
end
else
begin
ShowMessage('No se econtro Fecha de caducidad (Not After)');
end;
end;
end//fin del dialog1 execute
else
begin
showmessage('no se ejecuto');
end;

cual es tu funcion

scanfile
Responder Con Cita
 



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
Mexico - Como crear sellos en FACTURA ELECTRONICA.. pcicom API de Windows 12 10-11-2012 18:46:55
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06
Factura electronica AUNA Aprendiz Varios 5 01-09-2005 10:44:15


La franja horaria es GMT +2. Ahora son las 00:55:12.


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