Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #421  
Antiguo 23-03-2017
josecr josecr is offline
Registrado
NULL
 
Registrado: feb 2017
Posts: 7
Poder: 0
josecr Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Segun creo toda facura tiene que tener un documento un identificador, ya sea nif, pasporte, etc. En las facturas recibidas es obligatorio rellenarlo.
Muchas Gracias, (en el libro de IVA actual , indicas tipo 06(otro) y no es necesario mas)

y nos llegan facturas que no tienen nada, por q en USA no debe ser obligado, en cualquier caso tampoco lo van a poder contrastar

Saludos.
Responder Con Cita
  #422  
Antiguo 23-03-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Buenos días!!!
Antes de nada, muchas gracias a todos los foreros que estáis aportando toda vuestra inestimable ayuda con todo este tema de la AEAT, que en menudo jaleo nos ha metido a algunos como yo, porque hasta ahora había utilizado nada de Webservices.

Bueno, al grano, os quería comentar que llevo ya leídos y releídos los 22 posts de este tema, y aún sigo sin poder enviar una triste factura al entorno de pruebas (increíble!!!). En principio pensé que era error de certificado, pero no, los verifiqué, fecha de caducidad, etc... y todo correcto. También me he descargado la última versión del WSDL por si habían modificado algo, y modifiqué las líneas:

Código Delphi [-]
  
defWSDL = '...aeat/ssii/fact/ws/SuministroInmediatoInfo.wsdl';
  defSvc  = 'siiService';
  defPrt  = 'SuministroFacturasPruebas';

Pero nada, seguía igual. Entonces, me pareció interesante lo que comentaba el forero NASCAR, que en vez de utilizar los objetos y clases del Webservice para enviar los datos, sería mejor crear uno mismo el xml y luego enviarlo. Pero no sé exactamente cómo enviar el xml, porque antes la línea que se enviaba en el ejemplo era esta:

Código Delphi [-]
result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);

Pero aquí no se puede enviar un xml. Supongo que se hará de otra manera, no??? Seguramente habré dicho alguna barbaridad porque como comentaba antes, ni idea de webservices.

Entonces, resumiendo, ¿sería alguien tan amable de adjuntar un ejemplo completo en Delphi de cómo enviar el xml? No hace falta poner la parte de construcción del xml (ya me buscaré la vida para montar el xml, aunque si se pone mejor jejejeje), pero sí de la conexión con el WebService y todo lo demás.

Muchas gracias!!!!!!
Responder Con Cita
  #423  
Antiguo 23-03-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por APO Ver Mensaje
Buenos días!!!
Antes de nada, muchas gracias a todos los foreros que estáis aportando toda vuestra inestimable ayuda con todo este tema de la AEAT, que en menudo jaleo nos ha metido a algunos como yo, porque hasta ahora había utilizado nada de Webservices.

Bueno, al grano, os quería comentar que llevo ya leídos y releídos los 22 posts de este tema, y aún sigo sin poder enviar una triste factura al entorno de pruebas (increíble!!!). En principio pensé que era error de certificado, pero no, los verifiqué, fecha de caducidad, etc... y todo correcto. También me he descargado la última versión del WSDL por si habían modificado algo, y modifiqué las líneas:

Código Delphi [-] defWSDL = '...aeat/ssii/fact/ws/SuministroInmediatoInfo.wsdl'; defSvc = 'siiService'; defPrt = 'SuministroFacturasPruebas';


Pero nada, seguía igual. Entonces, me pareció interesante lo que comentaba el forero NASCAR, que en vez de utilizar los objetos y clases del Webservice para enviar los datos, sería mejor crear uno mismo el xml y luego enviarlo. Pero no sé exactamente cómo enviar el xml, porque antes la línea que se enviaba en el ejemplo era esta:

Código Delphi [-]result := GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);


Pero aquí no se puede enviar un xml. Supongo que se hará de otra manera, no??? Seguramente habré dicho alguna barbaridad porque como comentaba antes, ni idea de webservices.

Entonces, resumiendo, ¿sería alguien tan amable de adjuntar un ejemplo completo en Delphi de cómo enviar el xml? No hace falta poner la parte de construcción del xml (ya me buscaré la vida para montar el xml, aunque si se pone mejor jejejeje), pero sí de la conexión con el WebService y todo lo demás.

Muchas gracias!!!!!!
Hola.

Yo en particular prefiero hacerlo usando los objetos del webservice, a mi me resulta más cómodo y a la hora de las actualizaciones que están haciendo es más fácil corregir que si generas el xml "a pelo".

¿No has podido poner en marcha ninguno de los ejemplos que se han subido a este hilo?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #424  
Antiguo 23-03-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola.

Yo en particular prefiero hacerlo usando los objetos del webservice, a mi me resulta más cómodo y a la hora de las actualizaciones que están haciendo es más fácil corregir que si generas el xml "a pelo".

¿No has podido poner en marcha ninguno de los ejemplos que se han subido a este hilo?

Saludos
Gracias Newtron por responder,
pues no, todavía sigo sin poner en marcha ninguno. Con el que estoy luchando es con el 'Ejemplo Sii.zip' que puso Keys en la página 5 de este hilo. Sin tocar nada de código, compilo, selecciono el certificado, relleno el nif, nombre y demás y al enviar me sale el siguiente error:

'javax.servlet.ServletException'

Entonces, pruebo de importar el nuevo SuministroInmediatoInfo.wsdl

Compilo y en la línea donde pone: IDEmisorFactura:= IDEmisorFactura3.Create; me da el siguiente error:
Incompatible types: 'IDEmisorFactura2' and 'IDEmisorFactura3'

Y aquí sigo estancando...
Responder Con Cita
  #425  
Antiguo 23-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.085
Poder: 23
keys Va por buen camino
Hola. Al importar los ficheros wsdl de nuevo, hay clases que las cambia de nombre. Tienes que cambiar esas lineas a los nombres de las clases nuevas.

Por ejemplo

IDEmisorFactura:= IDEmisorFactura3.Create; tiene que ser IDEmisorFactura:= IDEmisorFactura2.Create; que es el error que te da el compilador.

Por cierto mi ejemplo esta compilado en Delphi 10.1 berlin. No se is en otras versiones anteriores funcionará.
Responder Con Cita
  #426  
Antiguo 23-03-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola. Al importar los ficheros wsdl de nuevo, hay clases que las cambia de nombre. Tienes que cambiar esas lineas a los nombres de las clases nuevas.

Por ejemplo

IDEmisorFactura:= IDEmisorFactura3.Create; tiene que ser IDEmisorFactura:= IDEmisorFactura2.Create; que es el error que te da el compilador.

Por cierto mi ejemplo esta compilado en Delphi 10.1 berlin. No se is en otras versiones anteriores funcionará.
Ostras!!! Muchas gracias Keys,
Vaya tela con la AEAT, simplificando la cosa... jejeje

Por fin ya he podido compilar, y ahora ya me otro error que tiene más sentido. Creo que ya empiezo a ir por el buen camino. Me dice:

'Error La direccion no se corresponde con el fichero de entrada'

Supongo que esto ya deben ser error de no configurar bien los parámetros de la factura o alguna dirección del WebService, no se... Yo he puesto las de siempre:

defWSDL ='... es/aeat/ssii/fact/ws/SuministroCobrosEmitidas.wsdl';
defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactCOBV1SOAP';
defSvc = 'siiService';
defPrt = 'SuministroCobrosEmitidasPruebas';
Responder Con Cita
  #427  
Antiguo 23-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.085
Poder: 23
keys Va por buen camino
Al cargar los wdsl otra de las cosas que se pierden son las direcciones de las web services.

Para emitidas son

defWSDL = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl';
defURL = 'https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP';
defSvc = 'siiService';
defPrt = 'SuministroFactEmitidasPruebas';
Responder Con Cita
  #428  
Antiguo 23-03-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Por fin!!!!!!!! Muchas gracias Keys
Ya he podido enviar una factura. Es cierto, tenía que cambiar las direcciones de las web services. Vaya empanada que llevo!

Pues nada, ahora que ya he logrado conectar y enviar una factura, voy a seguir haciendo pruebas y seguro que me surgirán más dudas, que intentaré ir resolviendo.

De nuevo, gracias a todos por vuestra ayuda!!!
Responder Con Cita
  #429  
Antiguo 23-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Baja de una factura

Al enviar por webservice la petición de baja de una factura emitida recibo una respuesta que considera la operación como correcta.

Pero al parecer esa operación es irreversible. Pues al dar nuevamente de alta la misma factura (con cambios o sin ellos) el webservice ya no la admite, diciendo "Factura duplicada". Y si intento darla de baja otra vez, dice que la factura no existe.

Por favor, ¿alguien puede confirmar, o desmentir, esa suposición?

Cuando hay que modificar una factura, ¿es imprescindible enviarla como modificaciones en vez de dar de baja y de alta?

Muchas gracias.

Saludos,
Responder Con Cita
  #430  
Antiguo 23-03-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por CMB Ver Mensaje
Al enviar por webservice la petición de baja de una factura emitida recibo una respuesta que considera la operación como correcta.

Pero al parecer esa operación es irreversible. Pues al dar nuevamente de alta la misma factura (con cambios o sin ellos) el webservice ya no la admite, diciendo "Factura duplicada". Y si intento darla de baja otra vez, dice que la factura no existe.

Por favor, ¿alguien puede confirmar, o desmentir, esa suposición?

Cuando hay que modificar una factura, ¿es imprescindible enviarla como modificaciones en vez de dar de baja y de alta?

Muchas gracias.

Saludos,
Cuando das una factura de baja no podrás usar el mismo número ni hacer nada más con ella, la nueva factura tendrá que tener otro número. Si lo que quieres es modificarla tendrás que enviar una factura de rectificación.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #431  
Antiguo 23-03-2017
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 18
Nasca Va por buen camino
Cita:
Empezado por CMB Ver Mensaje
Al enviar por webservice la petición de baja de una factura emitida recibo una respuesta que considera la operación como correcta.

Pero al parecer esa operación es irreversible. Pues al dar nuevamente de alta la misma factura (con cambios o sin ellos) el webservice ya no la admite, diciendo "Factura duplicada". Y si intento darla de baja otra vez, dice que la factura no existe.

Por favor, ¿alguien puede confirmar, o desmentir, esa suposición?

Cuando hay que modificar una factura, ¿es imprescindible enviarla como modificaciones en vez de dar de baja y de alta?
Las modificaciones siempre como modificaciones. Puedes cambiar cualquier cosa, incluida contraparte en facturas emitidas.
La contraparte en facturas recibidas no tendría mucho sentido, ya que a todos los efectos es una factura totalmente nueva.

La baja anula la factura, y por lo que dices es imposible volver a activar la misma.
No lo he comprobado pero la verdad es que es coherente con la documentación, que dice expresamente que ese número de factura no puede reutilizarse.

Hay que tener presente que la clave primaria de cada registro de facturas está compuesto de: NIF/IDOtro, FechaExpedicion y NumFactura

Cualquier modificación en cualquiera de esos datos supone a todos los efectos una factura nueva.

Entiendo que si te has equivocado en una factura recibida asignando un proveedor incorrecto, lo lógico es como lo establece la AEAT, anular y en un registro totalmente independiente hacer el alta correcta.

En emitidas no se me ocurre ningún caso que no pueda resolverse con una modificación. Si acaso, si has equivocado la fecha.

P.D. Acabo de comprobar que una factura emitida con mismo número y diferente fecha cuela sin problemas. En este caso toca anular una de ellas. Y se puede hacer sin problemas.
Responder Con Cita
  #432  
Antiguo 23-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Para newtron y Nasca:

Dos respuestas que aclaran totalmente la cuestión. La verdad es que en la documentación de la AEAT hay algunas cosas ambiguas y otras que difícilmente las encuentras (o entiendes).

¡Muchas gracias a ambos!
Responder Con Cita
  #433  
Antiguo 24-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.085
Poder: 23
keys Va por buen camino
Buenos días. Si el problema es que se ha registrado una factura incorrectamente, por ejemplo te has equivocado en el tipo de operación, importes, etcc, es decir no hay otra factura que rectifique a esta, lo que se puede hacer es mandar un registro de tipo A1 Modificación de facturas/registros (errores registrales). Que sirve para esto.

Un saludo.
Responder Con Cita
  #434  
Antiguo 24-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Modificación de facturas

Magníficas respuestas las de newtron, Nasca y keys sobre la modificación de facturas. La curva de aprendizaje es cada vez más horizontal a medida que vas progresando, y en este momento creo que la cosa ya va de bajada para la mayoría de nosotros.

Muchas gracias de nuevo.

Saludos,
Responder Con Cita
  #435  
Antiguo 27-03-2017
Fèlix Ruiz Fèlix Ruiz is offline
Registrado
NULL
 
Registrado: mar 2017
Posts: 3
Poder: 0
Fèlix Ruiz Va por buen camino
Hola.
Estoy desarrollando un módulo para el envio de facturas al SII. La primera fase fue que generase los ficheros XML tal como indica la AEAT en su documentación.
Ahora estoy con la fase de envío con la AEAT, pero llevo varios días intentando enviar una factura y no hay manera. A ver si me pueden ayudar...
Estoy programando en C#, y he probado tanto cargar desde fichero XML como generando la factura directamente contra el servicio web.
En ambos casos, al enviar los datos me retorna un error:
Código:
The content type text/html of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: ...
Lo bueno es que usando el portal de pruebas de Hacienda, el fichero XML sí se carga (he de cambiar este a formato a SOAP). Por lo tanto problema del certificado no es.
Os adjunto los ficheros para revisar (el que generé por primera vez y se carga en el portal, el que se crea con Serialize, y el que cargo con Deserialize), e incluso adjunto el código C# usado.
Lo servicios WEB que uso son los proporcionados en el portal de SII: V_06/SuministroFactEmitidas.wsdl
Ya estoy desesperado, no se que hacer... Necesito ayuda.
Gracias.
Menos mal que existe este foro...
Archivos Adjuntos
Tipo de Archivo: rar Consulta club Delphi.rar (5,2 KB, 80 visitas)
Responder Con Cita
  #436  
Antiguo 27-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por Fèlix Ruiz Ver Mensaje
Hola.
Estoy desarrollando un módulo para el envio de facturas al SII. La primera fase fue que generase los ficheros XML tal como indica la AEAT en su documentación.
Ahora estoy con la fase de envío con la AEAT, pero llevo varios días intentando enviar una factura y no hay manera. A ver si me pueden ayudar...
Estoy programando en C#, y he probado tanto cargar desde fichero XML como generando la factura directamente contra el servicio web.
En ambos casos, al enviar los datos me retorna un error:
Código:
The content type text/html of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: ...
Lo bueno es que usando el portal de pruebas de Hacienda, el fichero XML sí se carga (he de cambiar este a formato a SOAP). Por lo tanto problema del certificado no es.
Os adjunto los ficheros para revisar (el que generé por primera vez y se carga en el portal, el que se crea con Serialize, y el que cargo con Deserialize), e incluso adjunto el código C# usado.
Lo servicios WEB que uso son los proporcionados en el portal de SII: V_06/SuministroFactEmitidas.wsdl
Ya estoy desesperado, no se que hacer... Necesito ayuda.
Gracias.
Menos mal que existe este foro...
Podrían haber más cosas, pero te falta rellenar el Tag <siiDescripcionOperacion>, que es obligatorio.
Responder Con Cita
  #437  
Antiguo 27-03-2017
Fèlix Ruiz Fèlix Ruiz is offline
Registrado
NULL
 
Registrado: mar 2017
Posts: 3
Poder: 0
Fèlix Ruiz Va por buen camino
Cita:
Empezado por CMB Ver Mensaje
Podrían haber más cosas, pero te falta rellenar el Tag <siiDescripcionOperacion>, que es obligatorio.
Gracias por responder tan rápido.
En el XML que cargo en el portal está el TAG pero no hay datos. De todas formas este no da problemas, se carga.
El problema es si voy por código, tanto por Serialize o Deserialize, sí que está el TAG y con datos. En estos casos es cuando me da problemas...
Responder Con Cita
  #438  
Antiguo 27-03-2017
Virman Virman is offline
Miembro
 
Registrado: ene 2017
Posts: 67
Poder: 8
Virman Va por buen camino
Saludos! Después de conseguir que me envíe correctamente las facturas emitidas con el nuevo web service, estoy teniendo problemas para rellenar las facturas recibidas.
El problema me surge a la hora de rellenar el Detalle de IVA, pues me devuelve null a la hora de crear la variable de tipo array.
Lo hago de la siguiente forma:
factRecibida.DesgloseFactura = new DesgloseFacturaRecibidasType();
factRecibida.DesgloseFactura.DesgloseIVA = new DetalleIVARecibidaType[1];

Me intenta crear el elemento DesgloseIVA[0], pero es null, por lo que no me deja rellenar el tipo impositivo, base imponible, cuota soportada, etc. Y al ser campos obligatorios no me permite enviar la factura recibida.

Alguna sugerencia? Porque en versiones anteriores del web service si podía crear el detalle de IVA.

Muchas gracias.
Responder Con Cita
  #439  
Antiguo 27-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.085
Poder: 23
keys Va por buen camino
Yo no lo estoy haciendo en VB pero esa propiedad factRecibida.DesgloseFactura.DesgloseIVA es un array y me imagino que primero tendrás que declarar su tamaño.

Te pongo como es en delphi por si te sirve de algo

Código Delphi [-]
           SetLength(DesgloseOp, Tamanio);
           FacturaRecibida.DesgloseFactura.DesgloseIVA := DesgloseOp;

           for z := 0 to Tamanio - 1 do
             begin

                  DesgloseOp[z] := DetalleIVARecibidaType.Create;
                  DesgloseOp[z].TipoImpositivo := TratarCampoImporte(Desglose.TIPOIMPOSITIVO);
                  DesgloseOp[z].BaseImponible := TratarCampoImporte(Desglose.BASEIMPONIBLE);
                  DesgloseOp[z].CuotaSoportada := TratarCampoImporte(Desglose.CUOTAREPERCUTIDA);
                                  
             end;
Responder Con Cita
  #440  
Antiguo 27-03-2017
Virman Virman is offline
Miembro
 
Registrado: ene 2017
Posts: 67
Poder: 8
Virman Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Yo no lo estoy haciendo en VB pero esa propiedad factRecibida.DesgloseFactura.DesgloseIVA es un array y me imagino que primero tendrás que declarar su tamaño.

Te pongo como es en delphi por si te sirve de algo

Código Delphi [-]
           SetLength(DesgloseOp, Tamanio);
           FacturaRecibida.DesgloseFactura.DesgloseIVA := DesgloseOp;

           for z := 0 to Tamanio - 1 do
             begin

                  DesgloseOp[z] := DetalleIVARecibidaType.Create;
                  DesgloseOp[z].TipoImpositivo := TratarCampoImporte(Desglose.TIPOIMPOSITIVO);
                  DesgloseOp[z].BaseImponible := TratarCampoImporte(Desglose.BASEIMPONIBLE);
                  DesgloseOp[z].CuotaSoportada := TratarCampoImporte(Desglose.CUOTAREPERCUTIDA);
                                  
             end;
Gracias por la respuesta keys, En esta línea: factRecibida.DesgloseFactura.DesgloseIVA = new DetalleIVARecibidaType[1];
Es dónde le indico el tamaño que tiene que tener el array de DesgloseIVA, lo que pasa que me devuelve esto:
factRecibida.DesgloseFactura.DesgloseIVA[0]=null;
Luego no puedo rellenar las variables que componen esa struct. A alguien más le ha pasado? Gracias.

Edit1: Ya he encontrado mi fallo, que malos son los Lunes, jejejeje.
Me faltaba esta línea: factRecibida.DesgloseFactura.DesgloseIVA[0] = new DetalleIVARecibidaType();

Gracias keys por enseñarme el fallo.

Última edición por Virman fecha: 27-03-2017 a las 17:04:50.
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4288 Hace 1 Día 13:58:30
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 21:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 12:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 21:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 16:49:20


La franja horaria es GMT +2. Ahora son las 01:03:33.


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