Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 1 Semana
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 107
Poder: 13
aledieb Va por buen camino
Clase para Factura electrónica AFIP Argentina

Hola me vi obligado a utilizar la facturas electrónicas y estuve buscando ayudas para poder implementarlo, encontré estos post https://www.clubdelphi.com/foros/showthread.php?t=73179 , http://www.clubdelphi.com/foros/showthread.php?t=88675 y a partir del trabajo de adripugliesso empecé a preparar una clase para usar la factura electrónica, aun no esta terminado, falta terminar de implementar la obtención del cae/caea y el control de errores. Está basado totalmente en el trabajo de adripugliesso, incluso verán su código casi sin modificar.

La clase esta sin terminar y hay que hacerle bastantes ajustes pero le puede servir a alguien para empezar con su sistema.
Para usarlo deben incluir la clase en el uses y hay que poner los certificados y las librerías de openssl (con el exe) en la carpeta donde estará el ejecutable de la aplicación (yo use la versión de openssl sin instalador), (se puede cambiar sin mucho trabajo)

En la sección public del formulario:

Código Delphi [-]
MiFCAFIP : TFCAfip;
En el evento OnCreate del formulario
Código Delphi [-]
MiFCAFIP := TFCAfip.Create( GetCurrentDir, ElCuitEmpresa ); // ElCuitEmpresa es un int64
MiFCAFIP.ArchClavePriv := 'claveprivada.txt'; // Archivo con la clave privada para el cuit 
MiFCAFIP.ArchCertPemCRT := 'certificadopem.crt'; // Archivo con el certificado creado en la página de la Afip
En el evento OnDestroy del formulario
Código Delphi [-]
MiFCAFIP.Destroy;
Esta línea genera el token y el sign:
Código Delphi [-]
MiFCAFIP.ObtenerTokenSign;
Las propiedades
Código Delphi [-]
MiFCAFIP.Token; // El token generado ( WideString )
MiFCAFIP.Sign; // El sign generado   ( WideString )
MiFCAFIP.expirationTA; // Texto con la fecha/hora según el código original de adripugliesso ( String )
MiFCAFIP.generationTA; // Texto con la fecha/hora según el código original de adripugliesso ( String )
MiFCAFIP.Generacion; // Fecha de generación ( TDateTime ) es lo mismo que los anteriores pero para poder usar en el código para controlar
MiFCAFIP.Expiracion; // Fecha de vencimiento ( TDateTime ) ídem
MiFCAFIP.LastError.codigo; // Código de error devuelto ( int ) solo un error por ahora
MiFCAFIP.LastError.mensaje; // Descripción de error devuelto ( String ) solo un error por ahora
Para usar los métodos (excepto el de obtención de cae que aún no termine de ajustar, pero no es difícil de implementar)

Código Delphi [-]
var
  stResultado : TStringList;
begin
  stResultado := TStringList.Create;
  stResultado := MiFCAFIP.ListaComprobantes;
  // Hacer lo que se necesite con stResultado
  FreeAndNil( stResultado );
end;
Lo mismo para:
stResultado := MiFCAFIP.ConsultaComprobante( iCbteTipo, iCbteNro, iPtoVta );
// Este método aun no lo comprobé iCbteTipo, iCbteNro, iPtoVta son integer
// y los valores deben corresponder al comprobante que quieran consultar
stResultado := MiFCAFIP.ListaComprobantes; // Listado de códigos/descrip. comprobantes
stResultado := MiFCAFIP.ListaConceptos; // Listado de códigos/descrip. conceptos
stResultado := MiFCAFIP.ListaDocumentos; // Listado de códigos/descrip. documentos
stResultado := MiFCAFIP.ListaOpcional; // Listado de códigos/descrip. opcionales
stResultado := MiFCAFIP.ListaPuntosVenta; // Listado de Puntos de venta AUN NO COMPROBADO
stResultado := MiFCAFIP.ListaTributos; // Listado de códigos/descrip. tributos
stResultado := MiFCAFIP.ListaCotizacion( 'DOL' ); // Cotización oficial de moneda según el código devuelto en MiFCAFIP.ListaMonedas;
stResultado := MiFCAFIP.ListaMonedas; // Listado de códigos/descrip. monedas
stResultado := MiFCAFIP.ListaIvas; // Listado de códigos/descrip. IVAS
stResultado := MiFCAFIP.ListaPaises; // Listado de códigos/descrip. Países
// La única que es distinta y devuelve un integer con el último número de comprobante autorizado según los datos pasados
Var iUltComprobanteAutorizado : integer;
iUltComprobanteAutorizado := MiFCAFIP.ObtieneUltComp( puntoventa, idcomprobante : integer );

//Saber si los servidores AFIP funcionan:
  if MiFCAFIP.Dummy then
     ShowMessage('Servidores funcionan');
Para el caso en que se deba reiniciar el sistema se puede guardar en un archivo ini el token, sign y las fechas de generación y vencimiento y antes de generar el token/sign leerlo desde el ini y guardarlo luego de obtenerlo, método que se debería incluir en la clase o implementar la modificación de las propiedades para hacerlo fuera de la clase.
Adjunto el código de la clase y las unidades de webservice importadas.
Archivos Adjuntos
Tipo de Archivo: rar ClaseFCElecArgentina.rar (19,3 KB, 7 visitas)
__________________
Suerte
Alejandro
Responder Con Cita
  #2  
Antiguo Hace 1 Semana
el-mono el-mono is offline
Miembro
 
Registrado: abr 2008
Ubicación: Lules
Posts: 126
Poder: 10
el-mono Va por buen camino
Buenísimo Alejandro. Se agradece un montón !
Responder Con Cita
  #3  
Antiguo Hace 1 Semana
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.016
Poder: 14
ElKurgan Va por buen camino
Thumbs up

Gracias por el aporte

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Factura Electronica AFIP Resuelto/Funcionando adripugliesso Varios 30 01-11-2017 14:52:55
Factura Electronica - Afip Argentina Joe_Balda Varios 13 19-05-2017 22:03:40
Factura Electrónica AFIP Argentina SergioFrey Noticias 2 19-05-2017 22:02:03
Como informar Factura Electrionica 'B' AFIP ARGENTINA adripugliesso Varios 1 24-08-2015 15:14:28
Codigo de Barras Factura Electronica AFIP adripugliesso Varios 1 01-08-2015 04:20:25


La franja horaria es GMT +2. Ahora son las 14:45:05.


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