Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Factura Electronica México (https://www.clubdelphi.com/foros/showthread.php?t=66807)

jourdan 12-03-2010 20:46:30

Factura Electronica México
 
Hola a Todos, en México será indispensable facturar electronicamente a partir de enero del 2011, tengo un sistema de facturación creado en delphi el cual será obsoleto si no le agrego las capacidades de facturar electronicamente.
Alguien puede compartir sus experiencias con exto, lo han logrado implementar?
Desde ya muchas gracias
Alejandro Jourdan

AzidRain 13-03-2010 00:05:07

Es muy sencillo y realmente no tiene problema la programación de ello, basta seguir los lineamientos de hacienda En este link viene explicado lo más importante. El punto más problemático es que el requisito indispensable es que se lleve la contabilidad via un software y que toda factura emitida se registre en contabilidad prácticamente al momento, lo cual es complicado si no tienes forma de interactuar con el sistema de contabilidad.

juanelo 13-03-2010 00:25:05

Que tal,
El tema de Factura electronica es basicamente simple, el principal problema o recovejo que se tiene es la elaboracion de las Addendas para los diferentes clientes que lo usen. En cuanto a la iteraccion con el sistema de contabilidad, si cuentas con algun software de linea (como compac o Aspel) , entonces será de los mas sencillo, ya que lo unico que tienes que saber es el formato de layout que cada uno de estos soporta.
Saludos.

jourdan 13-03-2010 01:21:46

Muchas gracias por sus respuetas, he estado leyendo el link del SAT y lo que entendí es que hay que generar un sello digital y solicitar los folios antes de usarlos, por lo que creo que el sistema que tengo actualmente debe funcionar, el trabajo estará en generar un archivo xml de la información de la factura, y un sistema para poder mandar reportes mensualmente al SAT, estoy en lo correcto?

jourdan 19-03-2010 02:24:51

Ya he resuelto varios temas con respecto a la factura electronica, estoy atorado con el tema de la encriptacion RSA

He buscado en internet pero de delphi no hay mucho, hay un componente que venden en 200 dolares llamado Chilkat RSA ActiveX

Alguno de ustedes ha logrado resolverlo.

Muchas gracias

Alejandro

Casimiro Notevi 19-03-2010 02:52:49

En torry.net he encontrado esto, no sé si es lo que estás buscando.
Lo malo es que te venden el código fuente por 99$

AzidRain 19-03-2010 19:16:32

Changos!! Yo tengo por ahi abandonado un componente para encriptacion que precisamente usa RSA y un buen de otros métodos de encriptación...no lo encuentro pero me comprometo a subírtelo apenas aparezca ah y además es libre.

Por cierto regresando al tema de la contabilidad en Linea, Aspel no tiene esa característica apenas en sus últimas versiones al fin se dignó en usar bases de datos abiertas. Yo recomiendo Contpaq porque además de que te proporciona todo el diccionario de datos de sus bases de datos, tiene un SDK muy completo y compatible con Delphi, por lo que puedes comunicarte sin probemas con él para hacer cualquier movimiento, otra cosa muy buena es que puede accederse a su servidor vía internet por lo que es relativamente sencillo adaptar tu software ya en uso para usarlo con él.

jourdan 19-03-2010 20:17:45

Muchas gracias, la idea de todo esto es mejorar un sistema de facturación actualmente en uso e integrarle la facultad de poder facturar de manera electronica, he avanzado en los temas del xml, etc., pero la parte donde estoy atorado es esa, la de hacer el famoso sello digital
Nuevamente gracias y saludos

jourdan 19-03-2010 20:18:54

Muchas gracias, lo voy a revisar!

AzidRain 30-03-2010 19:55:22

Ya había puesto el link en otro post. Pero aquí te dejo el componente LockBox de TurboPower, no solo maneja RSA sino MD5, Blowfish y otros métodos de encriptado. Tiene un ejemplo que hace precisamente lo que se requiere para la factura electrónica: se le mete una cadena original, se le proporciona la clave de encryptado y arroja un resultado ya encriptado correctamente.

Casimiro Notevi 02-04-2010 03:22:37

uamero, por favor, recuerda poner el código entre etiquetas para que se pueda leer mejor, gracias.
Aquí tienes una referencia.
De momento, este último te lo voy a editar para que veas la diferencia, ok?

axesys 02-04-2010 10:59:37

Que casualidad buscando como usar los xml para esto de los cfd di con este post, yo acabo de publicar un ejemplo aquí de como usar las librerias openssl para generar el sello usando una biblioteca que me recomendo Hector Randolph tal vez te pueda servir para que no tengas que usar tanto bat.


Saludos

axesys 04-04-2010 01:19:36

Si tienes razon solo funciona la primera vez. Estoy viendo si con este otro codigo que encontre se corrije si quieres puedes probarlo tambien.

http://stackoverflow.com/questions/1...ning-to-delphi


Saludos

felipep 06-04-2010 20:03:28

1 Archivos Adjunto(s)
Anexo una modificación al código enviado en donde puedes obtener varias veces el sello al limpiar bien la memoria y puedes también obtener los datos del certificado.

Ojalá sea de utilidad

axesys 06-04-2010 20:29:24

Factura digital traerá problemas para contribuyentes: AMECE

A partir del primer minuto del próximo año todas las empresas y personas físicas que realicen una transacción superior a los 2 mil pesos tendrán que expedir facturas digitales.

Más información aquí

nuk3zito 17-04-2010 18:54:52

Cadena Original
 
Que tal uamero, me llama la atención la manera en que generas la cadena original. Mira, con C# la genero con la siguiente función:

Código:

        public string GeneraCadenaOriginal(string nombreArchivo)
        {
            string cadenaOriginal = "";
            string fileXSLT = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "cadenaoriginal_2_0.xslt"); // @"http://www.sat.gob.mx/sitio_internet/cfd/2/cadenaoriginal_2_0/cadenaoriginal_2_0.xslt";
            string newFile = System.IO.Path.GetTempFileName();

            try
            {
                XslCompiledTransform xsl = new XslCompiledTransform();
                xsl.Load(fileXSLT);
                xsl.Transform(nombreArchivo, newFile);
                xsl = null;

                StreamReader streamReader = new StreamReader(newFile);
                cadenaOriginal = streamReader.ReadToEnd();
                streamReader.Close();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                // Eliminamos el archivo
                System.IO.File.Delete(newFile);
            }

            return cadenaOriginal;
        }

Traduciendo lo anterior, tanto en los ejemplos de la corona, lo que exige hacienda y otras soluciones para CFD's, la cadena original se obtiene de la transformación de tu archivo XML con un XLST (el que contiene las reglas de transformación) o de la generación manual de ésta. Veo que optaste por la generación manual.

Bueno, la pregunta es ¿de puritita casualidad no has encontrado algo acerca de como transformar el XML en la cadena original utilizando el archivo XSLT para ello?

Por cierto, lo que expones acerca de como el componente TXMLDcument te genera las entidades ya lo comprobé y si que te saca de apurototote. :)

Aún así me gustaría encontrar la manera de generar la cadena original con una transformación
¿Alguien sabe como hacer esta transformación?

Saludos y excelente trabajo uamero.

nejamube 19-04-2010 00:57:27

Hola, revisa el anexo 20
 
Hola, revisa los requerimientos en el SAT.

Es necesario generar un movimiento contable, entre muchas otras cosas, por lo demas, tu trabajo no ha sido en vano.

Gracias.

nuk3zito 19-04-2010 17:07:48

Que tal uamero, me preocupé cuando leí tu último post pero luego me puse a leer ese artículo y me encuentro que los contribuyentes que así lo soliciten podrán generar sus propios comprobantes fiscales digitales con sus propios medios informáticos, con un proveedor externo de ste servicio o mediante el servicio que el sat ofrecerá. Si optas por generarlos tu, solo debes cumplir con los requisitos establecidos por el sat para que tus comprobantes sean válidos.
En otras palabras, tu trabajo SI sirve siempre y cuando tu empresa vaya a generar por si misma sus propios CFD's.

Esto viene en la fracción VII de ese artículo.

Cabe comentar que todo el texto que proporcionan al respecto siempre vienen muy rebuscados y nada claros, pero en ningún caso indica que solo el sat vaya a proporcionar los folios o sellos.

Saludos, y estamos al pendiente de lo que aquí se vea.

jisraelpo 20-04-2010 18:26:54

uamero que paso contigo?
 
uamero, necesito de favor tus post, ocupo de ellos ya que hasta el momento es la fuente de informacion mas propia que hay para solventar la facturacion electronica en Mexico para un desarrollador en Delphi.

No te rajes!

felipep 20-04-2010 19:45:42

Post
 
Yo guardé el post de uamero para futura referencia ;)

Se los anexo en dydtelcom.com/foro.zip

nuk3zito 20-04-2010 19:54:34

¿¿¿Osea! Eliminaron los post's del usuario uamero aunque no tuvieran nada que ver con el "incidente" de la acusación que hizo de plagio a Caral??? :eek: :confused:

Pero que falta de... sentido común de parte de quien lo haya hecho!!!

Es cierto que el tipo es un engreído o como lo quieran ver... pero los posteos en este hilo eran de bastante utilidad y a decir verdad, solo él ha aportado algo útil en este tema de la facturación digital.

Estamos muy mal con esto señores! :mad:

Casimiro Notevi 20-04-2010 20:40:21

Los ha borrado él mismo.
uamero ha borrado sus mensajes.
Nadie le ha dicho nada, estábamos esperando una disculpa para Caral, nada más.

nuk3zito 20-04-2010 20:44:16

Cita:

Empezado por Casimiro Notevi (Mensaje 361281)
Los ha borrado él mismo.
uamero ha borrado sus mensajes.
Nadie le ha dicho nada, estábamos esperando una disculpa para Caral, nada más.

OK Casimiro...

No me queda otra más que mostrar mi carota y ofrecer una disculpa a quien haya yo acusado con este mensaje. :o

De cualquier manera y siendo honesto, las soluciones en cuanto a este tema estaban a medias, pues estaba usando un truquito para salir del problema y solo utilizaba Delphi como un cascaron, pues el fuerte de todo el relajo lo hacía OpenSSL. Yo espero no tener problemas en la empresa y postear algo del trabajo que yo he realizado al respecto.

Gracias, una disculpa y un saludo a todos.

Casimiro Notevi 20-04-2010 21:00:24

No pasa nada, todos nos equivocamos a veces :)
Espero que entre todos se pueda sacar una solución para la factura electrónica.

wallamx 20-04-2010 23:02:02

Podrias poner un ejemplo de como utilizar las funciones
 
Cita:

Empezado por felipep (Mensaje 359478)
Anexo una modificación al código enviado en donde puedes obtener varias veces el sello al limpiar bien la memoria y puedes también obtener los datos del certificado.

Ojalá sea de utilidad

Hola, aprovechando, podrias poner un ejemplo de que funciones son las que hay que llamar y en que orden?

Gracias de antemano

maeyanes 21-04-2010 18:52:33

Hola wallamx

Bienvenido a estos foros. Solo te comento que no por repetir tu mensaje vas a hacer que te contesten más rapido...

Te recomiendo que le des una leida a la Guía de Estilo de los foros...


Saludos...

felipep 21-04-2010 20:18:25

Hola,

una vez obtenida la cadena, simplemente tienes que ejecutar las siguientes funciones:

//Obtiene el sello a partir de la cadena
Sello := SelloDigital('aaa010101aaa_CSD_01.key.pem',cadena);

//Obtiene el certificado (clave pública)
Certificado := LoadPublicKey('aaa010101aaa_CSD_01.cer.pem');

//Obtiene la serie del certificado
NoCertificado := GetNoCertificado('aaa010101aaa_CSD_01.cer.pem');

Todas las funciones están declaradas en el archivo que subí.

Saludos

mesquivelh 22-04-2010 16:08:04

Estimados:

Estoy estado trabajando con sus indicaciones, todas muy útiles, pero al generar mi cadena original me aparece así:

||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350|5.25|397.25|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|15|52.5||

Como verán las vocales con acento no aparecen como tal, ¿me podrían orientar?, estoy trabajando con Delphi 2007 y los fuentes que publicaron felipep y uamero.

nejamube 22-04-2010 18:26:52

Cadena Original
 
Muchas Gracias.

nuk3zito 22-04-2010 18:52:06

Cita:

Empezado por mesquivelh (Mensaje 361535)
Estimados:

Estoy estado trabajando con sus indicaciones, todas muy útiles, pero al generar mi cadena original me aparece así:

||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350|5.25|397.25|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa MarÃ*a Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|15|52.5||

Como verán las vocales con acento no aparecen como tal, ¿me podrían orientar?, estoy trabajando con Delphi 2007 y los fuentes que publicaron felipep y uamero.

Yo opté por cambiar las letras acentuadas porque tenía ese mismo problema.

La verdad, todo esto se resolvería si lográramos obtener la cadena original como Dios manda, es decir, usando la transformación del XML con el archivo XSLT que proporciona el sat para este fin pero sinceramente no pude más que haciendo una función en C#, la puse en una dll y ésta la mandaba llamar desde Delphi... pero no me gusta hacer las cosas así :( y me gustaría hacer todo esto con Delphi.

Si alguien sabe como hacer esta transformación con Delphi les estaré agradecido, ya que cualquier modificación que haga el sat a la generación de la cadena original repercutirá en cambios inminentes a nuestro código fuente si hacemos la cadena como indicaba el uamero, pero si generamos la cadena haciendo la transformación, entonces los cambios a nuestro código serían mínimos o nulos.

wallamx 22-04-2010 20:18:52

Felipep Milgracias
 
Cita:

Empezado por felipep (Mensaje 361430)
Hola,

una vez obtenida la cadena, simplemente tienes que ejecutar las siguientes funciones:

//Obtiene el sello a partir de la cadena
Sello := SelloDigital('aaa010101aaa_CSD_01.key.pem',cadena);

//Obtiene el certificado (clave pública)
Certificado := LoadPublicKey('aaa010101aaa_CSD_01.cer.pem');

//Obtiene la serie del certificado
NoCertificado := GetNoCertificado('aaa010101aaa_CSD_01.cer.pem');

Todas las funciones están declaradas en el archivo que subí.

Saludos

Mil gracias Funciona de maravilla

felipep 22-04-2010 20:30:37

Cita:

Empezado por nuk3zito (Mensaje 361567)
Yo opté por cambiar las letras acentuadas porque tenía ese mismo problema.

La verdad, todo esto se resolvería si lográramos obtener la cadena original como Dios manda, es decir, usando la transformación del XML con el archivo XSLT que proporciona el sat para este fin pero sinceramente no pude más que haciendo una función en C#, la puse en una dll y ésta la mandaba llamar desde Delphi... pero no me gusta hacer las cosas así :( y me gustaría hacer todo esto con Delphi.

Si alguien sabe como hacer esta transformación con Delphi les estaré agradecido, ya que cualquier modificación que haga el sat a la generación de la cadena original repercutirá en cambios inminentes a nuestro código fuente si hacemos la cadena como indicaba el uamero, pero si generamos la cadena haciendo la transformación, entonces los cambios a nuestro código serían mínimos o nulos.

Utilizando directamente la cadena, con acentos y caracteres, mas los componentes XML de Delphi, con codificación UTF-8, se colocan automáticamente los caracteres especiales según las reglas del SAT y pasa perfectamente la validación

nuk3zito 22-04-2010 20:45:17

Cita:

Empezado por felipep (Mensaje 361596)
Utilizando directamente la cadena, con acentos y caracteres, mas los componentes XML de Delphi, con codificación UTF-8, se colocan automáticamente los caracteres especiales según las reglas del SAT y pasa perfectamente la validación

Mira, te comento el problema como es...
Yo utilizo el TXMLDocument y le digo que codificación usar, le envío los valores y todo y el documento SI SE GENERA BIEN.
Realmente el problema es cuando quiero mostrar el contenido del XML digamos en un TMemo... ahí es donde el componente ya no respeta esos acentos y los cambia.

No es tan grave el asunto en si, solo que los dueños del sistema quieren ver todos los pasos que realiza el software para el sellado de un documento, y pues por eso opté por eliminar los acentos (para poder usar el TMemo), más solo lo eliminé provisionalmente, pues lo restauraré cuando ya no sea necesario mostrar los pasos uno a uno.

De casualidad ¿Sabrás como mostrar correctamente el xml en algún componente? Esto es todo el problema, pero si no lo mostrará, todo estaría OK.

Saludos y gracias de antemano.

nuk3zito 22-04-2010 20:50:16

Cita:

Empezado por mesquivelh (Mensaje 361535)
Estimados:

Estoy estado trabajando con sus indicaciones, todas muy útiles, pero al generar mi cadena original me aparece así:

||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350|5.25|397.25|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa MarÃ*a Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|15|52.5||

Como verán las vocales con acento no aparecen como tal, ¿me podrían orientar?, estoy trabajando con Delphi 2007 y los fuentes que publicaron felipep y uamero.

Si no la muestras en un componente, todo estará bien! El problema lo tengo yo que por ahora tengo que mostrar el contenido del xml.

felipep 22-04-2010 21:03:19

Cita:

Empezado por nuk3zito (Mensaje 361603)
Si no la muestras en un componente, todo estará bien! El problema lo tengo yo que por ahora tengo que mostrar el contenido del xml.


Quítenle solamente la instrucción UTF8Encode. no es necesaria

jourdan 23-04-2010 00:51:44

Muchas gracias por sus respuestas, somos muchos los que andamos trabajando en solucionar esto, Yo de plano compre el active x de chilkat.
unamero mucha sgracias por la información, lo intente varias veces con el liveay32.dll pero sin exito.

El activex de chilkat sirve bastante bien pero vale sus buenos 150 dolaritos

osmuar_exp 23-04-2010 02:27:51

Error en key:=ReadPrivateKey(llaveprivada);
 
Buenas tardes, andamos en la mismas con la factura electrónica, ya pasé la validación de la factura en el validador de hacienda factura estilo
Cita:

"uamero"
, el problema que se me presenta es el siguiente:

Tengo una cadena original "grande" y me marca el error en la funcion
Código:

ReadPrivateKey
, Funcion:
Código PHP:

function ReadPrivateKey(AFileNamestring): pEVP_PKEY
  var 
keyfilepBIO;     
  
mx pEVP_PKey;  
 
begin     
   keyfile 
:= BIO_new(BIO_s_file());   
   
mx := nil;       
   
BIO_read_filename(keyfile,PChar(AFilename));     
   
result := PEM_read_bio_PrivateKey(keyfile,mx,nil,nil); 
end

Error:
Cita:

error:00000000:lib(0):func(0):reason(0)
me marca error en el begin antes de acceder al la primera linea de la funcion...
les dejo la cadena por si alguien quiere hacer la prueba y si ya encontrarón una solución me harian un gran favor si la postean...
Nota: Ya descargue la nueva version de la libreria OpenSSL junto con el Microsoft Visual C++ 2008 Redistributable y ni asi.
Nota: Si a la siguiente cadena le quito nose algunos 7 u 8 conceptos no me marca el error, entonces por ahi viene el error en la longitud de la cadena :S.
Gracias...

Cadena Original: Es de prueba
Cita:

||2.0|FE|313|2010-04-22T16:45:42|38843|2008|ingreso|Pago en una sola exhibicion|760.00|881.60|EXP010829R48|MI EMPRESA SA DE CV|AV. MEXICO|30|NUEVO PROGRESO|GUADALAJARA|GUADALAJARA|JALISCO|MEXICO|64000|MEXICO|AGA152156DD5|AGROPECUARIA EL AVION|AV. CONSTITUCION|626|CD INDUSTRIAL|GUADALAJARA|JALISCO|MEXICO|64000|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|1.00|KILO|030903341|BOLSA JUMBO 1KG|38.00|38.00|IVA|16|121.60|121.60||

nejamube 23-04-2010 02:39:15

Agradecimiento
 
Muchas Gracias.

osmuar_exp 23-04-2010 02:55:49

RE: Sello digital alterado
 
Cita:

Empezado por nejamube (Mensaje 361640)
Hola, el validador siempre me marca que el sello digital es invalido, que pudo ser alterado.


Adjunto la cadena original y el CFD en formato XML.

Los estoy validando en :



¿La cadena original esta correcta ?

Es lo unico que creo que puede alterar el sello esperado por el SAT.

Gracias.


Hola, fijate que ami me pasaba lo mismo, el sello digital era invalido, intenta buscar dentro de tu cadena de sello saltos de linea, etc,,,aparte debes estar seguro de que el certificado (no autorizacion, año de autorizacion y no certificado) sean los correctos., con eso ami me soluciono el problema, saludos...

Código Delphi [-]
memo.Lines.clear;
memo.lines.add(SelloDigital(ruta_llave,CalculaCadenaOriginal(1)));
memo.Text := AnsiReplaceStr(memo.Text,#8,'');          
memo.Text := AnsiReplaceStr(memo.Text,#10,'');
memo.Text := AnsiReplaceStr(memo.Text,#13,'');
memo.Text := AnsiReplaceStr(memo.Text,'  ','');
sello:=memo.text;

nejamube 23-04-2010 03:03:34

Agradecimiento
 
Muchas gracias.


La franja horaria es GMT +2. Ahora son las 17:06:52.

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