Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Bibliotecas de código fuente
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2017
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 291
Poder: 21
elrayo76 Va por buen camino
He visto el código y esta todo muy bueno.

El problema es que necesitamos entre todos buscar alguna solución para poder usar tu código con las librerías que trae Delphi XE8. Es que intento por mi parte usar lo menos posible componentes de terceros, ya que en ocaciones me ha pasado que al cambiar de versión de Delphi no hay actualización de los mismos y es engorroso ponerce a tocarlos para hacerlos compatibles.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #2  
Antiguo 27-06-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Yo utilizo ese codigo con Delphi 2010. Compila sin ningun problema. Eso si, necesitas la biblioteca Synapse para la parte de HTTP, ya que con Indy he tenido problemas; y alguna otra biblioteca para tratar con JSON, yo he usado lkJson

De hecho, el mismo codigo lo he traducido a FreePascal (hay algunas cuestiones menores relacionadas con el soporte a genericos y ayudantes, pero es en esencia el mismo codigo)

Si queres usar otras bibliotecas simplemente tenes que implementar un par de interfaces:

Las que convierten JSON a objetos de negocio, definidas en Afip.PublicAPI.Parsers.pas

Código PHP:
  IAfip_PersonParser = interface
    [
'{3A2CC23D-B463-45C8-B3BA-8546DBF21A62}']
    function 
JsonToPerson(const AJsonstring): IPersona_Afip;
    function 
JsonToDocumentos(const AJsonstring): TArray<string>;
  
end;

  
IAfip_ItemParser = interface
    [
'{0EF21EDC-EFE9-4600-8732-1BBE3A7B136C}']
    function 
JsonToItems(const AJsonstring): TArray<TItem_Afip>;
    function 
JsonToDependencies(const AJsonstring): TArray<TDependencia_Afip>;
  
end
Y un cliente HTTP, esta interfaz esta definida en Afip.PublicAPI.HttpClient.pas

Código PHP:
  /// <summary>
  ///  Esta interface define los dos metodos basicos que tienen que implementar los clientes HTTP
  ///  Segun la documentacion de la AFIP el encoding del response es UTF-8
  /// </summary>
  
IHttpClient = interface
    [
'{AFA99837-6CBB-4111-A268-D8AB8E4CD8DD}']
    function 
HttpGetText(const AUrlstring): string;
    function 
HttpGetBinary(const AUrlstring): TStream;
  
end
Despues conectas todo, creando una instancia de la clase TAfipQuery. El constructor te va a indicar que objetos necesitas suministrar:


Código Delphi [-]
var
  API_AFIP: IApi_Afip;
  HttpClient: IHttpClient;
  PersonParser: IAfip_PersonParser;
  ItemsParser: IAfip_ItemParser;
begin
  HttpClient := // crear http client
  PersonParser := // crear parser json
  ItemsParser:= // crear parser json
  API_AFIP:= TAfipQuery.Create(HttpClient, PersonParser, ItemsParser);
  // usar API

Última edición por AgustinOrtu fecha: 27-06-2017 a las 05:15:12.
Responder Con Cita
  #3  
Antiguo 28-06-2017
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 291
Poder: 21
elrayo76 Va por buen camino
Parece que para poder usar tu código en Delphi XE8 no me va a quedar otra que usar clases de terceros para la parte de JSON. El tema es que quería evitar eso para no tener muchas cosas de terceros que luego complican la migración a otras versiones

Saludos
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #4  
Antiguo 28-06-2017
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 291
Poder: 21
elrayo76 Va por buen camino
Perdón que mi mensaje anterior salió dos veces. Dío error al enviarlo la primera vez y cuando lo mande la segunda no me dicuenta que ya se había grabado la primera

Saludos
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
Respuesta



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 Argentina Joe_Balda Varios 30 30-01-2021 04:10:34
Factura Electrónica AFIP Argentina SergioFrey Noticias 2 19-05-2017 21:02:03
Como informar Factura Electrionica 'B' AFIP ARGENTINA adripugliesso Varios 1 24-08-2015 14:14:28
Ayuda Web Service AFIP Argentina patriciojgf Delphi para la web 1 04-11-2014 17:46:34
Padrón telefónico rruffino SQL 2 09-08-2008 16:27:02


La franja horaria es GMT +2. Ahora son las 16:18: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