Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
El servidor de Guipuzkua ¿espera el certificado o la clave privada?

Sé que he preguntado antes torpemente y sin investigar, pese a todo quisiera que alguien me dijera ¿con qué hay que certificar los envíos del XML ya firmado por XADES?

Me explico .

Tengo un c12 expedido por Izenpe hace unos meses. Si llamo al archivo del certificado no parece reconocerlo:

Código PHP:
curl_setopt($chCURLOPT_URL$server);
curl_setopt($chCURLOPT_HTTPHEADER$cabeceras);
curl_setopt($chCURLOPT_POSTFIELDS$texto);
curl_setopt($chCURLOPT_VERBOSE1);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_TIMEOUT10);
curl_setopt($chCURLOPT_SSLCERTTYPE"PFX");
curl_setopt($chCURLOPT_CAPATH$camino);
curl_setopt($chCURLOPT_CAINFO$file);
curl_setopt($chCURLOPT_SSLCERTPASSWD$pass);
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
Tampoco me ha funcionado si en lugar de llamar al certificado lo abro, extraigo solo el certificado como tal y lo envío como una variable, tampoco si lo limpio de cabeceras, retornos de carro y demás. Siempre me devuelve el error 01 de que el certificado no es válido o está caducado.
Lo he convertido a PEM como dicen en varios sitios, pero así lo que se mete en el nuevo archivo que yo he llamado cert.pem es la clave privada, sin embargo, otros dicen que eso les funciona. Yo lo envío con este otro código:

Código PHP:
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_HTTPHEADER$cabeceras);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_SSLCERTTYPE"PEM");
curl_setopt($chCURLOPT_SSLCERT,$camino.'cert.pem');
//curl_setopt($ch, CURLOPT_SSLKEY, $certs['pkey']);
curl_setopt($chCURLOPT_SSLKEYPASSWD$pass);
curl_setopt($chCURLOPT_SSL_VERIFYPEER1);
curl_ 
Al parecer es el indicado para el formato pem según dice la documentación oficial de PHP. Aquí no responde nada el servidor de la Diputación, absolutamente nada.

Por puesto he preguntado a la diputación y no parecen saber nada.

¿Qué estoy haciendo mal? ¿Qué no he entendido? ¿debo limpiar el archivo pem que he creado de código como "-----BEGIN PRIVATE KEY-----" o "Bag Attributes"? ¿no lo debo hacer en mi ordenador sino directamente en el servidor por aquello del "localKeyID"?
Responder Con Cita
  #2  
Antiguo 24-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 5
Irreo Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Sé que he preguntado antes torpemente y sin investigar, pese a todo quisiera que alguien me dijera ¿con qué hay que certificar los envíos del XML ya firmado por XADES?

¿Qué estoy haciendo mal? ¿Qué no he entendido? ¿debo limpiar el archivo pem que he creado de código como "-----BEGIN PRIVATE KEY-----" o "Bag Attributes"? ¿no lo debo hacer en mi ordenador sino directamente en el servidor por aquello del "localKeyID"?
Te remito a una respuesta que publiqué hace poco con el código que utilizo yo, por si te sirve:

https://www.clubdelphi.com/foros/sho...postcount=3540
Responder Con Cita
  #3  
Antiguo 28-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Muchas gracias

Por cierto. No te he dado las gracias por el detalle de responder. Voy a probarlo
Responder Con Cita
  #4  
Antiguo 29-11-2022
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 129
Poder: 19
APO Va por buen camino
Buenos días, una pregunta sólo por confirmar que lo estoy haciendo bien. Creo que es así, pero me gustaría saber vuestra opinión:

Es referente al encadenamiento. En nuestro caso tenemos 2 puntos de venta independientes y 1 Backoffice también independiente. El encadenamiento lo estoy haciendo por 3 dispositivos distintos. Es decir, cada dispositivo encadena con la factura anterior generada por ese dispositivo. ¿Es correcto cómo lo estoy haciendo?

Muchas gracias!
Responder Con Cita
  #5  
Antiguo 29-11-2022
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Cita:
Empezado por APO Ver Mensaje
Buenos días, una pregunta sólo por confirmar que lo estoy haciendo bien. Creo que es así, pero me gustaría saber vuestra opinión:

Es referente al encadenamiento. En nuestro caso tenemos 2 puntos de venta independientes y 1 Backoffice también independiente. El encadenamiento lo estoy haciendo por 3 dispositivos distintos. Es decir, cada dispositivo encadena con la factura anterior generada por ese dispositivo. ¿Es correcto cómo lo estoy haciendo?

Muchas gracias!
Correcto y obligatorio


Un saludo
Responder Con Cita
  #6  
Antiguo 29-11-2022
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
OFF Impuesto al plástico e IIEE

He buscado y no he encontrado, ni aquí ni en google

¿Existe en estos foros alguno relativo a los impuestos especiales (en particular relativo al nuevo impuesto al plástico) y que se trata de cómo enviar datos contables o de existencias a la AEAT ?


Disculpad las molestias.


Un saludo
Responder Con Cita
  #7  
Antiguo 29-11-2022
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por APO Ver Mensaje
Buenos días, una pregunta sólo por confirmar que lo estoy haciendo bien. Creo que es así, pero me gustaría saber vuestra opinión:

Es referente al encadenamiento. En nuestro caso tenemos 2 puntos de venta independientes y 1 Backoffice también independiente. El encadenamiento lo estoy haciendo por 3 dispositivos distintos. Es decir, cada dispositivo encadena con la factura anterior generada por ese dispositivo. ¿Es correcto cómo lo estoy haciendo?

Muchas gracias!
En principio el encadenamiento no tiene que ser por dispositivo, tiene que ser por sistema. Si cada punto de venta no tiene acceso a los otros entonces si se puede encadenar por puntos de venta y cada uno tendrá que usar una serie distinta, ya que sino dará numeros de facturas duplicados.

Por tanto depende del sistema.
Responder Con Cita
  #8  
Antiguo 30-11-2022
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 129
Poder: 19
APO Va por buen camino
Cita:
Empezado por keys Ver Mensaje
En principio el encadenamiento no tiene que ser por dispositivo, tiene que ser por sistema. Si cada punto de venta no tiene acceso a los otros entonces si se puede encadenar por puntos de venta y cada uno tendrá que usar una serie distinta, ya que sino dará numeros de facturas duplicados.

Por tanto depende del sistema.
Gracias keys por la respuesta.

En nuestro caso los 2 puntos de venta comparten la misma base de datos, usamos una serie para las facturas simplificadas y otra serie para las facturas completas. Pero hemos hecho pruebas de encadenando sin diferenciar por dispositivo, y no nos da ningún aviso de encadenamiento. ¿Consideras que sería necesario encadenar diferenciando por dispositivo?

En el Backoffice ya estamos encadenando por dispositivo. Gracias!
Responder Con Cita
  #9  
Antiguo 30-11-2022
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por APO Ver Mensaje
Gracias keys por la respuesta.

En nuestro caso los 2 puntos de venta comparten la misma base de datos, usamos una serie para las facturas simplificadas y otra serie para las facturas completas. Pero hemos hecho pruebas de encadenando sin diferenciar por dispositivo, y no nos da ningún aviso de encadenamiento. ¿Consideras que sería necesario encadenar diferenciando por dispositivo?

En el Backoffice ya estamos encadenando por dispositivo. Gracias!
Te pongo lo que me contesto hacienda sobre este tema.
Cita:
En TicketBAI cada factura debe de identificar la factura anterior. El cumplimiento del requisito de encadenamiento depende de la forma de funcionamiento del sistema de facturación. Si un mismo dispositivo emite facturas de diferentes series, el requisito de encadenamiento debe identificar la factura anterior expedida, con independencia de la serie (por ejemplo, a una factura de una serie ordinaria le puede preceder una factura rectificativa de otra serie).

No obstante, si existen diferentes dispositivos de facturación, los cuales sólo expiden facturas dentro de una serie específica para cada dispositivo, el encadenamiento se produce dentro de cada serie, ya que el sistema de facturación funciona de este modo.
Nuestro sistema tambien comparte la base de datos, por lo que para evitar que cada dispositivo tenga una serie distinta las encadenamos todas como si fuera un único sistema independientemente de la serie.

Yo no me fiaría de los avisos de encadenamiento que dan las haciendas.
Responder Con Cita
  #10  
Antiguo 29-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
¿Qué certificado espera el servicio rest?

Yo no encuentro el modo en que me admita el certificado de la extensión c12.

Si envío el archivo así: curl_setopt($ch, CURLOPT_CAINFO, $file); Error 01
Si quito o añado la contraseña así curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pass); Error 01
Si meto el certificado en una variable y lo envío con CURLOPT_CAINFO; Error 01
Si lo limpio de retornos de carro y cualquier otra cosa; Error 01
Si lo convierto a pem y lo mando como una variable así curl_setopt($ch, CURLOPT_SSLCERT, $certi_pem); no responde nada, nada en absoluto.

Por supuesto he probado también a quitar y poner la clave, quitar y poner la llave privada, indicar el tipo de certificado...

¿Alguien podría decirme qué espera el servidor? Porque cuando lo hago por archivo no lo reconoce y cuando lo hago como variable en formato pem no responde.

Muchas gracias por vuestra ayuda
Responder Con Cita
  #11  
Antiguo 29-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 5
Irreo Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Yo no encuentro el modo en que me admita el certificado de la extensión c12.
¿Has probado lo que te puse en este post?:

https://www.clubdelphi.com/foros/sho...postcount=3579

Un saludo.
Responder Con Cita
  #12  
Antiguo 29-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Por supuesto y no soy capaz.
¿Qué metes en $appConfig["certificate"]?
Responder Con Cita
  #13  
Antiguo 29-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 5
Irreo Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Por supuesto y no soy capaz.
¿Qué metes en $appConfig["certificate"]?
Ah ok, es que te veía insistiendo en lo de CURL, por si acaso...

En esa variable tengo la ruta al fichero PEM:

$appConfig = $_SERVER["DOCUMENT_ROOT"]."/certs/XXXXX.pem";
Responder Con Cita
  #14  
Antiguo 30-11-2022
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 332
Poder: 6
edari Va por buen camino
Factura simplificada clientes varios

Buenos días,


A ver si me podéis sacar de una duda. Es en relación a las facturas que en mis tiempos se llamaban de "clientes varios" clientes que p.e. iban a comprar algo al almacén y les hacían una factura sin nif. Tengo un cliente que hacía mucha de este tipo.


Yo tengo programado la opción de FacturaSimplificada = S pero no consigo la forma de que subir una factura sin tener un cif real.


Hago la consulta a Hacienda y me dice...




Cita:
En relación con su consulta le indico que, la factura simplificada se identificará con la clave "S" en el campo "Factura simplificada" y además se deberán recoger los datos identificativos del destinatario de la operación (por lo menos el NIF del mismo o, en su caso, otro número identificativo).

...lo que viene a indicar que nanay



El caso es que el asesor del cliente, también con su parte de razón, me dice...


De alguna manera se tiene que poder hacer porque tú cuando vas a un bar y te imprimen un ticket no te piden el dni obviamente


Sabéis alguno como tendría que subir a Ticket Bai este tipo de clientes? Yo en mis pruebas subo el valor S1 en el campo TipoNoExenta como un cliente "normal"



Puede ser por ahí la cosa?


Gracias de nuevo
Responder Con Cita
  #15  
Antiguo 30-11-2022
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 129
Poder: 19
APO Va por buen camino
Cita:
Empezado por edari Ver Mensaje
Buenos días,


A ver si me podéis sacar de una duda. Es en relación a las facturas que en mis tiempos se llamaban de "clientes varios" clientes que p.e. iban a comprar algo al almacén y les hacían una factura sin nif. Tengo un cliente que hacía mucha de este tipo.


Yo tengo programado la opción de FacturaSimplificada = S pero no consigo la forma de que subir una factura sin tener un cif real.


Hago la consulta a Hacienda y me dice...







...lo que viene a indicar que nanay



El caso es que el asesor del cliente, también con su parte de razón, me dice...


De alguna manera se tiene que poder hacer porque tú cuando vas a un bar y te imprimen un ticket no te piden el dni obviamente


Sabéis alguno como tendría que subir a Ticket Bai este tipo de clientes? Yo en mis pruebas subo el valor S1 en el campo TipoNoExenta como un cliente "normal"



Puede ser por ahí la cosa?


Gracias de nuevo

Buenos días,

Creo que el error está en que estás enviando la sección <Destinatarios>, cuando en las facturas simplificadas no se debe rellenar.
Nosotros hemos realizado varias consultas y hemos alucinado con las respuestas. A veces lían más que otra cosa...

Saludos.
Responder Con Cita
  #16  
Antiguo 30-11-2022
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.229
Poder: 24
keys Va por buen camino
Cita:
Empezado por edari Ver Mensaje
Buenos días,


A ver si me podéis sacar de una duda. Es en relación a las facturas que en mis tiempos se llamaban de "clientes varios" clientes que p.e. iban a comprar algo al almacén y les hacían una factura sin nif. Tengo un cliente que hacía mucha de este tipo.


Yo tengo programado la opción de FacturaSimplificada = S pero no consigo la forma de que subir una factura sin tener un cif real.


Hago la consulta a Hacienda y me dice...







...lo que viene a indicar que nanay



El caso es que el asesor del cliente, también con su parte de razón, me dice...


De alguna manera se tiene que poder hacer porque tú cuando vas a un bar y te imprimen un ticket no te piden el dni obviamente


Sabéis alguno como tendría que subir a Ticket Bai este tipo de clientes? Yo en mis pruebas subo el valor S1 en el campo TipoNoExenta como un cliente "normal"



Puede ser por ahí la cosa?


Gracias de nuevo
Hola logicamente se pueden emitir tickets sin identificar al destinatario. Te pongo un ejemplo de cabecera de factura simplificada.

Código PHP:
<Sujetos>
  <
Emisor>
    <
NIF>CIF EMISOR</NIF>
    <
ApellidosNombreRazonSocial>NOMBRE EMISOR</ApellidosNombreRazonSocial>
  </
Emisor>

  <
EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
</
Sujetos>
<
Factura>
 <
CabeceraFactura>
   <
NumFactura>00002962</NumFactura>
   <
FechaExpedicionFactura>30-11-2022</FechaExpedicionFactura>
   <
HoraExpedicionFactura>08:08:46</HoraExpedicionFactura>
   <
FacturaSimplificada>S</FacturaSimplificada
   
<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
 </
CabeceraFactura>
 <
DatosFactura>
  ...
  ... 
Responder Con Cita
  #17  
Antiguo 30-11-2022
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 241
Poder: 10
pablog2k Va por buen camino
Hola, se me ha adelantado keys, creo que te refieres a los tickets de toda la vida (vamos cualquier tienda tipo todo a 100, chinos...etc), donde no se identifica al destinatario.
Nosotros lo subimos así y ningún problema: (iba a adjuntar el código pero el de keys es igual que el mío).
Por lo demás, es una sujeta no exenta, vamos los mismos nodos en la parte de DatosFactura que una factura donde si se identifica al destinatario
Responder Con Cita
  #18  
Antiguo 28-11-2022
Sanduzelai Sanduzelai is offline
Miembro
 
Registrado: ago 2021
Posts: 44
Poder: 0
Sanduzelai Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Sé que he preguntado antes torpemente y sin investigar, pese a todo quisiera que alguien me dijera ¿con qué hay que certificar los envíos del XML ya firmado por XADES?

Me explico .

Tengo un c12 expedido por Izenpe hace unos meses. Si llamo al archivo del certificado no parece reconocerlo:

Código PHP:
curl_setopt($chCURLOPT_URL$server);
curl_setopt($chCURLOPT_HTTPHEADER$cabeceras);
curl_setopt($chCURLOPT_POSTFIELDS$texto);
curl_setopt($chCURLOPT_VERBOSE1);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_TIMEOUT10);
curl_setopt($chCURLOPT_SSLCERTTYPE"PFX");
curl_setopt($chCURLOPT_CAPATH$camino);
curl_setopt($chCURLOPT_CAINFO$file);
curl_setopt($chCURLOPT_SSLCERTPASSWD$pass);
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
Tampoco me ha funcionado si en lugar de llamar al certificado lo abro, extraigo solo el certificado como tal y lo envío como una variable, tampoco si lo limpio de cabeceras, retornos de carro y demás. Siempre me devuelve el error 01 de que el certificado no es válido o está caducado.
Lo he convertido a PEM como dicen en varios sitios, pero así lo que se mete en el nuevo archivo que yo he llamado cert.pem es la clave privada, sin embargo, otros dicen que eso les funciona. Yo lo envío con este otro código:

Código PHP:
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_HTTPHEADER$cabeceras);
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_SSLCERTTYPE"PEM");
curl_setopt($chCURLOPT_SSLCERT,$camino.'cert.pem');
//curl_setopt($ch, CURLOPT_SSLKEY, $certs['pkey']);
curl_setopt($chCURLOPT_SSLKEYPASSWD$pass);
curl_setopt($chCURLOPT_SSL_VERIFYPEER1);
curl_ 
Al parecer es el indicado para el formato pem según dice la documentación oficial de PHP. Aquí no responde nada el servidor de la Diputación, absolutamente nada.

Por puesto he preguntado a la diputación y no parecen saber nada.

¿Qué estoy haciendo mal? ¿Qué no he entendido? ¿debo limpiar el archivo pem que he creado de código como "-----BEGIN PRIVATE KEY-----" o "Bag Attributes"? ¿no lo debo hacer en mi ordenador sino directamente en el servidor por aquello del "localKeyID"?

Yo tuve un problema hace poco con mi certificado porque se revocó el que estaba usando y tuve que poner otro nuevo. Te pongo lo que hice porque también me daba error 01 las primeras veces por culpa del .pem que generaba.

Yo tengo esto:
Código PHP:
        $soap_do curl_init();
        
curl_setopt($soap_doCURLOPT_URL$url);
        
curl_setopt($soap_doCURLOPT_CONNECTTIMEOUT100);
        
curl_setopt($soap_doCURLOPT_TIMEOUT,        100);
        
curl_setopt($soap_doCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt($soap_doCURLOPT_FOLLOWLOCATIONtrue);
        
curl_setopt($soap_doCURLOPT_SSL_VERIFYPEERfalse);
        
curl_setopt($soap_doCURLOPT_SSL_VERIFYHOSTfalse);
        
curl_setopt($soap_doCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        
curl_setopt($soap_doCURLOPT_POST,           true );
        
curl_setopt($soap_doCURLOPT_SSLCERT,        $pem);
        
curl_setopt($soap_doCURLOPT_POSTFIELDS,     $xml);
        
curl_setopt($soap_doCURLOPT_HTTPHEADER,     $header_soap);

        
$xmlResponse curl_exec($soap_do); 
donde $pem es mi path a a mi certificado.pem
Este lo he creado asi:
Código PHP:
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 
-in path.p12 -out newfile.key.pem -nocerts -nodes    
openssl pkcs12 
-in path.p12 -out newfile.pem -nodes 
El newfile.pem final es el que he usado y ahora me manda bien las facturas.
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
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 04:03:31.


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