Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #241  
Antiguo 08-10-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question

Cita:
Empezado por Rom@n Ver Mensaje
Hola quetal programadores quiero aportar un poco al tema de facturacion electronica voy a explicar brevemente este codigo esperando que le sirva a mas de uno:
1:Primero Busco con dialogExecute el archivo .cer
2:ejecuto el openssl con shellexecute y paso los parametros para convertir a formato pem y creo un archivo de texto.
3:con una funcion de escaneo busco la palabra not after y copio solo la fecha con copy y la proceso para lograr un formato de echa valido
4:la funcion LongDateStrToShortDateStr me rotorna el numero de mes ya que en el archivo caduca aparece el mes abreviado ejem:ene,feb,mar....dic


Código Delphi [-]
procedure Tfrm_datos_empresa.BitBtn5Click(Sender: TObject);
var
Rutacerti,nombrecerti:string;
position: integer;
dia,mes,yy,h,m,s:string;
begin
if Opencerti.Execute then
begin
Rutacerti := Opencerti.FileName ;
if Rutacerti <> '' then
begin
nombrecerti:=ExtractFileName(opencerti.FileName);
CopyFile(PChar(rutacerti), PChar('C:\SAT\'+nombrecerti), false);
certi.Text:=nombrecerti;
ShellExecute(Handle, nil, pchar('C:\openssl\openssl.exe'), pchar('x509 -inform DER -outform PEM -in '+PChar('C:\SAT\'+nombrecerti)+' -out C:\SAT\'+nombrecerti+'.pem'),nil,SW_SHOW);
Sleep(1000);
ShellExecute(Handle, nil, pchar('C:\openssl\openssl.exe'), pchar('x509 -in C:\SAT\'+nombrecerti+'.pem -text -out C:\SAT\caduca.txt'),nil,SW_SHOW);
Sleep(1000);
//proceso para sacar la fecha de caducidad
position := ScanFile('C:\SAT\caduca.txt', 'Not After', true);
if position <> -1 then
begin
//showmessage(archivo_caduca);
dia:=Copy(archivo_caduca,17,2);
mes:=LongDateStrToShortDateStr(Copy(archivo_caduca,13,3));//(Copy(archivo_caduca,13,3)));
yy:=Copy(archivo_caduca,29,4);
h:=Copy(archivo_caduca,20,8);
if date>=strtodatetime(dia+'/'+mes+'/'+yy+' '+h) then
showmessage('Este certificado ya esta caducado:'+ dia+'/'+mes+'/'+yy+' '+h)
else
showmessage('Certificado Vigente hasta:'+ dia+'/'+mes+'/'+yy+' '+h);
caduca.DateTime:= strtodatetime(dia+'/'+mes+'/'+yy+' '+h);
end
else
begin
ShowMessage('No se econtro Fecha de caducidad (Not After)');
end;
end;
end//fin del dialog1 execute
else
begin
showmessage('no se ejecuto');
end;

cual es tu funcion

scanfile
Responder Con Cita
  #242  
Antiguo 08-10-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Cita:
Empezado por JXJ Ver Mensaje
cual es tu funcion

scanfile
y tu funcion

LongDateStrToShortDateStr
Responder Con Cita
  #243  
Antiguo 08-10-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question

Cita:
Empezado por JXJ Ver Mensaje
y tu funcion

LongDateStrToShortDateStr
unas dudas con este tema.

la fecha de validez del certificado.

¿como se traducen a un formato de fecha entendible''?
no se que es GMT

notBefore=May 3 19:07:59 2010 GMT

notAfter=May 2 19:07:59 2012 GMT


esta informacion la necesito ingrear a firebird
con el formato

dd/MM/yyy :
Responder Con Cita
  #244  
Antiguo 09-10-2010
edgaronfo edgaronfo is offline
Miembro
 
Registrado: jul 2007
Posts: 33
Poder: 0
edgaronfo Va por buen camino
Red face Lo estoy pasando a Delphi 2006

Morris, oye, ya te mandé mi correo por mensaje privado. Fíjate que nomás no he podido hacerlo funcionar en Delphi 2010 y ya lo estoy pasando a Delphi 2006, es que tengo que entregar avances y no he podido resolver ese problemita, que no es tan grande después de todo, pero que me limitaba un poquito.

Ahorita lo que me tiene preocupado es encapsularlo en una clase y subirlo a una DLL, pero mi cliente usa Visual Basic así que ya sabrás los líos en los que me tuve que meter para que se pudiera instanciar una clase en VB para un objeto en un DLL hecho en Delphi...

Pero : "El cliente siempre tiene la razón..."

Saludos!

p.d. ojalá me puedas mandar ese proyectito en Delphi 2010 para saber de una buena vez qué me está fallando, gracias!
Responder Con Cita
  #245  
Antiguo 09-10-2010
edgaronfo edgaronfo is offline
Miembro
 
Registrado: jul 2007
Posts: 33
Poder: 0
edgaronfo Va por buen camino
Talking Por cierto!

Por cierto! JXJ, GMT significa: Greenwich Mean Time, y aquí hay información de lo que es:

http://es.wikipedia.org/wiki/Tiempo_medio_de_Greenwich

Espero que te sea de utilidad, saludos!
Responder Con Cita
  #246  
Antiguo 12-10-2010
Eina Eina is offline
Registrado
 
Registrado: sep 2010
Posts: 1
Poder: 0
Eina Va por buen camino
como la funcion Scanfile

Cita:
Empezado por JXJ Ver Mensaje
cual es tu funcion

scanfile
me prodrias ayudar, soy nueva en delphi, eh checado tu codigo, me parece bien, pero no entiendo la funcion de Scanfile, me podrias asignar tu codigo de Scanfile, estoy haciendo el sistema de facturacion electronica para mis residencia.


gracias
Responder Con Cita
  #247  
Antiguo 13-10-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 14
dado Va por buen camino
La funcion que publicaron para obtener el numero de serie del certificado y sus otros datos esta muy bien, solo que padece de un pequeño problema, hay que alimentar el certificado en formato PEM pero el SAT nos lo proporciona en formato DER.

Bueno, la pregunta es, alguien ha podido convertir de DER a PEM dentro de Delphi, sin usar el incomodo *.bat?

O reformulando la pregunta, alguien ha podido programar esto en delphi :

openssl x509 -inform DER -outform PEM -in aaa010101.cer
Responder Con Cita
  #248  
Antiguo 13-10-2010
alexsazu alexsazu is offline
Registrado
 
Registrado: ene 2010
Posts: 4
Poder: 0
alexsazu Va por buen camino
Delphi

Ya casi tengo hecho el codgio para la generacion del Sello digital, si estan interesados. favor de comunicarse conmigo y ver la forma de pago para ver el archivo, lo tengo realizado en delphi 2010 y delphi 7

Recuerden solametne tengo la estructura de como generalrlo:

Codigo completo delphi:
Exportcion a XML.
generacion del Sello Digital
Cadena de certificacion..

Saludos
Responder Con Cita
  #249  
Antiguo 13-10-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por alexsazu Ver Mensaje
...comunicarse conmigo y ver la forma de pago para ver el archivo...
no entendí... ¿cuál forma de pago?, no sabía que la forma de pago se involucraba en las facturas electrónicas, ¿que no son solo de "ingreso" o "egreso"?

sarcasmo sutil, o sutil sacarmos....
__________________

Responder Con Cita
  #250  
Antiguo 13-10-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 14
dado Va por buen camino
Cita:
Empezado por alexsazu Ver Mensaje
Ya casi tengo hecho el codgio para la generacion del Sello digital, si estan interesados. favor de comunicarse conmigo y ver la forma de pago para ver el archivo, lo tengo realizado en delphi 2010 y delphi 7

Recuerden solametne tengo la estructura de como generalrlo:

Codigo completo delphi:
Exportcion a XML.
generacion del Sello Digital
Cadena de certificacion..

Saludos

Mmmmh, talvez le compre sus rutinas, para ver como programo la "Cadena de certificacion", nunca habia oido de eso.....

Cita:
contrveneno dijo : sarcasmo sutil o sutil sarcasmo
Responder Con Cita
  #251  
Antiguo 13-10-2010
alexsazu alexsazu is offline
Registrado
 
Registrado: ene 2010
Posts: 4
Poder: 0
alexsazu Va por buen camino
Todo se hace con el openssl,

bien los que esten interesados en ver mi codigo del programa en delphi 2010
sobre la factura electronica, pueden enviarme un correo privado

saludos
Responder Con Cita
  #252  
Antiguo 13-10-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por alexsazu Ver Mensaje
Todo se hace con el openssl,
bien los que esten interesados en ver mi codigo del programa en delphi 2010
sobre la factura electronica, pueden enviarme un correo privado
saludos
Hola, alexsazu, esto es un foro público para ayudarnos entre todos, si pretendes enseñar código privadamente y cobrar por ello, eso es spam.
En clubdelphi no está permitido ese tipo de prácticas.
Responder Con Cita
  #253  
Antiguo 14-10-2010
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
Cita:
Empezado por alexsazu Ver Mensaje
Ya casi tengo hecho el codgio para la generacion del Sello digital, si estan interesados. favor de comunicarse conmigo y ver la forma de pago para ver el archivo, lo tengo realizado en delphi 2010 y delphi 7

Recuerden solametne tengo la estructura de como generalrlo:

Codigo completo delphi:
Exportcion a XML.
generacion del Sello Digital
Cadena de certificacion..

Saludos
Saludos alexsazu.

Te recomiendo esta página que está buenísima y puede que encuentres eso que andas buscando:
Mercadolibre

Solo dale click al link y esto te llevará a otra página. Ahí hay un mundo de posibilidades para tí. Sería bueno que ahí fuera donde publicaras tu oferta.

Saludos!
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #254  
Antiguo 14-10-2010
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
no entendí... ¿cuál forma de pago?, no sabía que la forma de pago se involucraba en las facturas electrónicas, ¿que no son solo de "ingreso" o "egreso"?
Cita:
Empezado por dado Ver Mensaje
Mmmmh, talvez le compre sus rutinas, para ver como programo la "Cadena de certificacion", nunca habia oido de eso.....

Ahh! Es que eso viene en el Anexo 21, pero lo van a liberar en el 2012, creo que el 23 de Diciembre.

Hay que estar pendientes!
__________________
Tiempo y ocasión acontecen a todos!

Última edición por nuk3zito fecha: 14-10-2010 a las 19:52:08.
Responder Con Cita
  #255  
Antiguo 21-10-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question

Cita:
Empezado por nuk3zito Ver Mensaje
Ahh! Es que eso viene en el Anexo 21, pero lo van a liberar en el 2012, creo que el 23 de Diciembre.

Hay que estar pendientes!
no encuentro la informacion del anexo 20 version 3 para los cfdi

y no se si existe un validador del sat para los cfdi

mi situacion es la de desarrollador de un software que ahora
es para version 2 del CFD que es un punto de venta

y que se tiene la intencion de venderlo a
pymes para que ellos generen sus propios CFDs v2 y
que en el 2011 generen segun la version 3.

en eso estoy ahora ¿donde hay el pdf con las instrucciones para la version 3
como existe la version pdf para la version 2 ?
Responder Con Cita
  #256  
Antiguo 22-10-2010
nejamube nejamube is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 65
Poder: 15
nejamube Va por buen camino
Thumbs up Obtener la cadena original

Si alguien quiere obtener la cadena original de la forma correcta, aqui les dejo esta funcion:

Código Delphi [-]

uses XMLIntf,  MSXML,  XMLDoc,  msxmldom;

function CadenaOriginal(const xml, xsl : string ): string;var
  XMLDoc : IXMLDOMDocument;
  XSLDoc : IXMLDOMDocument;
  Template : IXSLTemplate;
  Processor : IXSLProcessor;
begin
  Result := '';
  try
    XMLDoc := CoFreeThreadedDOMDocument30.Create;
    XSLDoc := CoFreeThreadedDOMDocument30.Create;
    XMLDoc.load(xml);
    XSLDoc.load(xsl);
    Template := CoXSLTemplate30.Create;
    Template.stylesheet := XSLDoc;
    Processor := Template.createProcessor;
    Processor.input := XMLDoc;
    Processor.transform;
    result :=  Processor.output;
  finally
    XMLDoc := nil;
    XSLDoc := nil;
  end;
end;
Responder Con Cita
  #257  
Antiguo 23-10-2010
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
Cita:
Empezado por JXJ Ver Mensaje
no encuentro la informacion del anexo 20 version 3 para los cfdi
...
en eso estoy ahora ¿donde hay el pdf con las instrucciones para la version 3
como existe la version pdf para la version 2 ?
Busca el Anexo 20 de la RMF publicado en el DOF del 23 de Septiembre del 2010.
Aunque ahí notarás que el xml no cambia de versión, ya menciona los CFDI y los cambios en el sellado, como por ejemplo usar el algoritmo SHA1 en lugar del MD5.

Saludos.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #258  
Antiguo 24-10-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 14
dado Va por buen camino
Acabo de liberar el ValidaCFD V0.1c programa para validar Facturas Electronicas.

Dentro de lo nuevo que trae es que ya valida CFD's firmados con SHA-1

Tambien valida, de forma limitada* los CFDI y genera un preview que se puede exportar a PDF y que incluye el Codigo de Barras Bidimensional (QR Code).

Como siempre lo pueden descargar libremente de www.validacfd.com

*Referente a que valida "de forma limitada" es porque no he obtenido suficientes muestras de CFDI para hacer pruebas y siendo el *unico* validador que existe para CFDI es dificil porque no puedo comparar resultados

ENVIENME SUS CFDI para hacer pruebas de validacion !!
Responder Con Cita
  #259  
Antiguo 26-10-2010
lcarrasco lcarrasco is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 15
Poder: 0
lcarrasco Va por buen camino
Wink :)

Hola amigos, ya tengo algunas semanas viendo el codigo publicado aqui tan amablemente por todos ustedes.

Les comento que pronto liberare una libreria de clases de codigo abierto para que sea muy sencillo implementar la factura electronica en Delphi.

Les adelanto que despues de 4 dias y con la ayuda del creador de la libreria libeay32.pas logre hacer la digestion/hashing usando directamente el archivo .key (DER) que nos da el SAT, sin necesidad de convertir primero a PEM (aunque tambien logre eso, convertir el .key a .pem sin llamar a openssl.exe)

Pronto les paso la liga, solo quiero afinar los detalles para publicar algo de calidad (con pruebas de unidad, incluidas) y que sea un esfuerzo colaborativo para que todos se vean beneficiados y que tambien contribuyan los cambios que el mismo SAT vaya publicando.
Responder Con Cita
  #260  
Antiguo 26-10-2010
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por dado Ver Mensaje

*Referente a que valida "de forma limitada" es porque no he obtenido suficientes muestras de CFDI para hacer pruebas y siendo el *unico* validador que existe para CFDI es dificil porque no puedo comparar resultados
Te comento que tu validador falla o manda un "error" falso al manejar el impuesto IEPS, es decir, te indica que el IVA no es correcto cuando si lo es, recuerda que se calcula como IVA = (subtotal + IEPS) * TasaIVA /100.
Saludos.
__________________
Ya tengo Firma!
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
Mexico - Como crear sellos en FACTURA ELECTRONICA.. pcicom API de Windows 12 10-11-2012 18:46:55
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06
Factura electronica AUNA Aprendiz Varios 5 01-09-2005 10:44:15


La franja horaria es GMT +2. Ahora son las 11:57:28.


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