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
  #1  
Antiguo 24-09-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
Ps con la novedad de que el sat ya liberó su nuevo Anexo 20.

Búsquenlo para que vean las diferencias. Que jijos!


http://www.sat.gob.mx/sitio_internet...on/default.asp
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #2  
Antiguo 29-09-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
mmkela, y yo que acabo de terminar de acomodar el formato anterior... ¿ahora tengo que hacer uno para las digitales?

shaaalee....


Pues parece que el más sencillo es el criptosys junto con firmasat... al menos de 10 que conozco, 8 lo están... estamos usando...
__________________

Responder Con Cita
  #3  
Antiguo 29-09-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 nuk3zito Ver Mensaje
Ps con la novedad de que el sat ya liberó su nuevo Anexo 20.

Búsquenlo para que vean las diferencias. Que jijos!


http://www.sat.gob.mx/sitio_internet...on/default.asp
Pues no hubo diferencias... o al menos no para los que ya emitimos CFD's. Los requerimientos "nuevos" son para los que emiten CFDI.
Saludos.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #4  
Antiguo 01-10-2010
edgaronfo edgaronfo is offline
Miembro
 
Registrado: jul 2007
Posts: 33
Poder: 0
edgaronfo Va por buen camino
Question Qué onda con el SAT?

Hola programadores y foreros, les envío un cordial saludo.
Este es mi primer post y antes que nada permítanme felicitarlos por el excelente trabajo que están haciendo en estos foros del clubdelphi.com ya que me han salvado incontables veces; pero en especial en este foro de las facturas electrónicas SAT, este foro me ha salvado la vida (bueno tal vez no tanto como la vida pero me ha dado una gran ayudadota): MUUUUCHAS GRACIAAAAAAS!!!!

Gracias al código que han puesto aquí estoy haciendo mi modulito de facturas electrónicas, si no, quién sabe si lo hubiera podido hacer. De nuevo muchas gracias.

Y me gustaría añadir mi granito de arena al tema, ya que yo tuve problemas para añadir los encabezados y el tipo de documento al documento xml y en estos foros leí un hilo que decía que tienes que respetar los namespaces del documento, y no fijarlo como atributo:

véase: Attributos fantasmas en nodos XML (www_clubdelphi_com/foros/showthread.php?t=40379)

y leyendo sus indicaciones llegué a esto:

Código:
procedure prepareSatXML(thisXMLDoc : TXMLDocument);
var CFD : IXMLComprobante;
begin
    thisXMLDoc.XML.Text := '';
    thisXMLDoc.Active := True;
    thisXMLDoc.Version := '1.0';
    thisXMLDoc.Encoding:='UTF-8';

    CFD := GetComprobante(thisXMLDoc);
    CFD.DeclareNamespace('xsi', 'http_//www_w3_org/2001/XMLSchema-instance');
    CFD.Schema:='http_//www_sat_gob_mx/cfd/2 http_//www_sat_gob_mx/sitio_internet/cfd/2/cfdv2.xsd';
    CFD.Version:='2.0';
end;
aunque para usar CFD.Schema tuve que hacer un poco más de argucias en el unit que me generó el delphi xml bind

Por cierto, primero use el xml binder para que delphi me generara una unidad de interface para manejar automáticamente el documento xml en el formato que pide hacienda como está ejemplificado arriba (IXMLComprobante).

Y luego use el TSXLPageProducer para que automáticamente me generara la cadena original (Ejemplo de TSXLPageProducer):
Código:
procedure TForm1.bttnCadenaOriginal1Click(Sender: TObject);
var xslt_source : string;
begin
  xslt_source := 'cadenaoriginal_2_0.xslt';
try
   XMLDoc.Active := False; // just in case
   XSLPageProducer1.FileName := xslt_source;
   XSLPageProducer1.XMLData := XMLDoc;
   XMLDoc.Active := True;
   Memo1.Text := XSLPageProducer1.Content; // Transform!!
 except
   on E: Exception do
     Memo1.Text := E.Message
 end;
end;
Y así dejas que delphi se haga bolas por tí, jejeje.
espero que sea de ayuda para alguien como lo fue para mí.

Entonces mis preguntas son:
De dónde obtienes NoAprobación y AnoAprobación ??

Y finalmente usando Sello.pas que bajas de este mismo hilo (muchísimas gracias felipep) puedes producir el sello, el certificado y el NoCertificado.

Y precisamente aquí es donde está mi última pregunta:
la función GetNoCertificado(const AFileName: string): string; de la unidad Sello.pas me regresa un string muy raro, así debe ser?
ejemplo de resultado:
〱〰㈱〰〰〰〰㈰㔲㜱圌¨
que cuando le hago: UTF8Decode(NoCertificado) me da:
??????????? (puros signos de interrogación)

Muchas gracias por su atención.


Saludos!
Responder Con Cita
  #5  
Antiguo 01-10-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Cita:
Empezado por edgaronfo Ver Mensaje
Entonces mis preguntas son:
De dónde obtienes NoAprobación y AnoAprobación ??
El número de aprobación y el año de aprobación, se te proporcionan cuando solicitas los folios. En el documento de solicitud de folios ahí encuentras estos datos. Obviamente esto se configuran junto con los folio.
__________________

Responder Con Cita
  #6  
Antiguo 01-10-2010
edgaronfo edgaronfo is offline
Miembro
 
Registrado: jul 2007
Posts: 33
Poder: 0
edgaronfo Va por buen camino
Talking

Cita:
Empezado por ContraVeneno Ver Mensaje
El número de aprobación y el año de aprobación, se te proporcionan cuando solicitas los folios. En el documento de solicitud de folios ahí encuentras estos datos. Obviamente esto se configuran junto con los folio.
Ooooooh! osea que ese control lo tiene que llevar uno mismo, por decir, "manualmente"... oh! yo pensé que lo sacabas del certificado o de alguno de los archivos que te manda hacienda, qué burro! jajaja.

Ok, entonces uno debe llevar el control y debe saber el NoAprobacion y el AnoAprobacion.

Muchas gracias!

Entonces rápidamente, lo único que generas en el momento es:
1.-cadena original
2.-sello digital
3.-NoCertificado

verdad?

gracias!
Responder Con Cita
  #7  
Antiguo 01-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 edgaronfo Ver Mensaje
...
Y luego use el TSXLPageProducer para que automáticamente me generara la cadena original (Ejemplo de TSXLPageProducer):
Código:
procedure TForm1.bttnCadenaOriginal1Click(Sender: TObject);
var xslt_source : string;
begin
  xslt_source := 'cadenaoriginal_2_0.xslt';
try
   XMLDoc.Active := False; // just in case
   XSLPageProducer1.FileName := xslt_source;
   XSLPageProducer1.XMLData := XMLDoc;
   XMLDoc.Active := True;
   Memo1.Text := XSLPageProducer1.Content; // Transform!!
 except
   on E: Exception do
     Memo1.Text := E.Message
 end;
end;
Y así dejas que delphi se haga bolas por tí, jejeje.
espero que sea de ayuda para alguien como lo fue para mí.
...
Te la rifaste con ese código... yo no sabía como obtener la cadena original en Delphi (en C# no me dio nadita de problemas).

En serio, te agradezco el aporte. Solo me resta probarlo.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #8  
Antiguo 01-10-2010
edgaronfo edgaronfo is offline
Miembro
 
Registrado: jul 2007
Posts: 33
Poder: 0
edgaronfo Va por buen camino
Wink De nada

Cita:
Empezado por nuk3zito Ver Mensaje
Te la rifaste con ese código... yo no sabía como obtener la cadena original en Delphi (en C# no me dio nadita de problemas).

En serio, te agradezco el aporte. Solo me resta probarlo.
Gracias y de nada nuk3zito, sabía que a alguien le iba a ayudar, es mi pequeña aportación al foro que tanto me ha dado, a mí me sirvió muchísimo y te lo hace automático tal como hacienda te lo pide, tú mientras te dedicas a otras cosas, y además tiene la enorme ventaja que con los cambios que está haciendo hacienda, cuando salga la versión nueva del cadenaoriginal_2_0.XSLT nomás le cambias el archivo y listo!!!!

Saludos!
Responder Con Cita
  #9  
Antiguo 01-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 edgaronfo Ver Mensaje
Gracias y de nada nuk3zito, sabía que a alguien le iba a ayudar, es mi pequeña aportación al foro que tanto me ha dado, a mí me sirvió muchísimo y te lo hace automático tal como hacienda te lo pide, tú mientras te dedicas a otras cosas, y además tiene la enorme ventaja que con los cambios que está haciendo hacienda, cuando salga la versión nueva del cadenaoriginal_2_0.XSLT nomás le cambias el archivo y listo!!!!

Saludos!
Así es... conozco las bondades que esto ofrece pues lo uso en C#. En los primeros post que puse en este hilo yo solicitaba que alguien me ayudara a realizar esta "transformación" en Delphi (de hecho está en la primer página) pero no tuve éxito, aunque aún me sirve (y mucho) tu aporte, ya solo me queda probar aunque no tengo dudas de que esto vaya a funcionar bien.

Ahora me estoy metiendo en la onda de CFDI, a ver como me va con eso.

Saludos.
__________________
Tiempo y ocasión acontecen a todos!

Última edición por nuk3zito fecha: 01-10-2010 a las 21:13:53.
Responder Con Cita
  #10  
Antiguo 01-10-2010
edgaronfo edgaronfo is offline
Miembro
 
Registrado: jul 2007
Posts: 33
Poder: 0
edgaronfo Va por buen camino
Exclamation ayuda

Cita:
Empezado por nuk3zito Ver Mensaje
Así es... conozco las bondades que esto ofrece pues lo uso en C#. En los primeros post que puse en este hilo yo solicitaba que alguien me ayudara a realizar esta "transformación" en Delphi (de hecho está en la primer página) pero no tuve éxito, aunque aún me sirve (y mucho) tu aporte, ya solo me queda probar aunque no tengo dudas de que esto vaya a funcionar bien.

Ahora me estoy metiendo en la onda de CFDI, a ver como me va con eso.

Saludos.
No tengo dudas de que te va a funcionar perfectamente nuk3zito!

Por cierto amigos programadores, tengo un problemilla con la unidad Sello.pas que postearon en este hilo, ojalá me puedan ayudar.

Ya había preguntado sobre esto en mi primer post, pero sigo con eso, y es que por más que le muevo y le busco, no doy.

Mi problema esta en la función:
Código:
function GetNoCertificado(const AFileName: string): string;
var
  bp:   pBIO;
  fn:   PWideChar;
  x:    pX509;
  x509: pX509;
  bn:   pBIGNUM;
  num:  array [0..19] of char;
begin
  InitOpenSSL;
  fn := PWideChar(AnsiString(AFileName));
  bp := BIO_new(BIO_s_file());
  BIO_read_filename(bp, fn);
  x    := X509_new;
  x509 := PEM_read_bio_X509(bp, x, nil, nil);
  bn   := ASN1_INTEGER_to_BN(X509_get_serialNumber(x509), nil);
  BN_bn2bin(bn, @num[0]);
  BN_free(bn);
  X509_free(x509);
  BIO_free(bp);
  Result := num;
  EVP_cleanup;
end;
como podrán ver, el primer cambio que le tuve que hacer fue cambiar el tipo de la variable fn de PAnsiChar a PWideChar, esto es porque así me lo pide el delphi, pero de ahí en fuera todo esta igual.

Alguna sugerencia?

Gracias!
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 18:48:19.


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