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)

JXJ 08-10-2010 00:22:16

Cita:

Empezado por Rom@n (Mensaje 377331)
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

JXJ 08-10-2010 01:37:17

Cita:

Empezado por JXJ (Mensaje 378727)
cual es tu funcion

scanfile

y tu funcion

LongDateStrToShortDateStr

JXJ 08-10-2010 20:43:59

Cita:

Empezado por JXJ (Mensaje 378731)
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 :

edgaronfo 09-10-2010 00:51:19

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!

edgaronfo 09-10-2010 00:56:20

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!

Eina 12-10-2010 02:01:21

como la funcion Scanfile
 
Cita:

Empezado por JXJ (Mensaje 378727)
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

dado 13-10-2010 00:09:40

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

alexsazu 13-10-2010 01:31:50

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

ContraVeneno 13-10-2010 01:54:30

Cita:

Empezado por alexsazu (Mensaje 379096)
...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....

dado 13-10-2010 16:18:36

Cita:

Empezado por alexsazu (Mensaje 379096)
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

alexsazu 13-10-2010 21:35:50

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

Casimiro Noteví 13-10-2010 21:44:01

Cita:

Empezado por alexsazu (Mensaje 379200)
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.

nuk3zito 14-10-2010 19:41:13

Cita:

Empezado por alexsazu (Mensaje 379096)
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!

nuk3zito 14-10-2010 19:45:33

Cita:

Empezado por ContraVeneno (Mensaje 379099)
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 (Mensaje 379148)
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!

JXJ 21-10-2010 21:58:03

Cita:

Empezado por nuk3zito (Mensaje 379310)
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 ?

nejamube 22-10-2010 17:20:22

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;
:)

nuk3zito 23-10-2010 01:12:16

Cita:

Empezado por JXJ (Mensaje 380081)
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.

dado 24-10-2010 08:10:12

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 !!

lcarrasco 26-10-2010 00:52:15

:)
 
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.

juanelo 26-10-2010 01:12:09

Cita:

Empezado por dado (Mensaje 380263)

*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.

ContraVeneno 26-10-2010 16:12:47

IVA = (subtotal + IEPS) * (TasaIVA /100.0).

dado 26-10-2010 16:42:12

Cita:

Empezado por juanelo (Mensaje 380409)
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.

Podrias enviarme o subir aqui la muestra de ese XML, me seria de mucha ayuda para poder corregir el valida.

juanelo 26-10-2010 18:10:14

Cita:

Empezado por dado (Mensaje 380475)
Podrias enviarme o subir aqui la muestra de ese XML, me seria de mucha ayuda para poder corregir el valida.

Es Facil, a tu sistema agregale un producto que tenga IEPS como uno de sus impuestos y generas el CFD vendiendo ese producto.

dado 26-10-2010 19:05:09

Cita:

Empezado por juanelo (Mensaje 380487)
Es Facil, a tu sistema agregale un producto que tenga IEPS como uno de sus impuestos y generas el CFD vendiendo ese producto.

Si, bueno gracias por el aviso de todos modos.

Veras, lo que pasa es que "mi sistema" lo desarrolle yo y el validador tambien lo desarrolle yo.

Lo que sucede es que estoy como juez y parte al mismo tiempo.

Yo desarrollo un sistema que "a mi parecer" esta bien y genera facturas.

Luego desarrollo el validador y aplico las mismas reglas que mi desarrollo

Resultado, yo hago facturas y me las autovalido, y eso no funciona siempre, por eso necesito de un tercero.....

edgaronfo 27-10-2010 01:51:39

delphi 2010
 
Jejeje, me ha pasado lo que le pasa a dado, así que lo comprendo.

Pero también tiene razón juanelo cuando dice que es fácil, que solo hagas uno y pruebas, digo, no se pierde nada con tratar, no?

Bueno, pasando a otro asunto, aunque creo que fui el único que tuvo problemas implementando la unidad sello.pas en delphi 2010, les comento que ya pude sacar la información del certificado que no había podido obtener. y me quedó así:

Original
Código Delphi [-]
begin 
InitOpenSSL;      
Cert:=TX509Certificate.Create;   
try     
fn := PAnsiChar(ansistring(AFileName));         
bp := BIO_new(BIO_s_file());         
BIO_read_filename(bp, Pchar(fn));         
x    := X509_new;     
x509 := PEM_read_bio_X509(bp, x, nil, nil);         
Cert.fCertificate:=x;         
Result.NotBefore:=Cert.NotBefore;         
Result.Issuer:=Cert.Issuer;  
... 
end;



Delphi 2010
Código Delphi [-]
begin  
InitOpenSSL;      
Cert:=TX509Certificate.Create;      
try          
fn := PAnsiChar(ansistring(AFileName));          
bp := BIO_new(BIO_s_file());          
BIO_read_filename(bp, Pchar(fn));          
Cert.fCertificate := X509_new;          
x509 := PEM_read_bio_X509(bp, Cert.fCertificate, nil, nil);          
Result.NotBefore:=Cert.NotBefore;          
Result.Issuer:=Cert.Issuer;  
... 
end;



lo pongo para que si a alguien le llega a pasar, que sepa cómo lo pude solucionar yo.

Oigan y cómo van con los CFDi ?
por cierto, cómo se van a enviar las facturas para que las timbren?
por algún tipo de conexión ppp? o cómo?
Y luego, mandas el xml ya sellado y te lo regresan con el timbre ya sellado?

Saludos!

jourdan 27-10-2010 20:18:00

Hola a todos, tengo una duda, hace unos meses desarrolle en delphi para generar facturas electrónicas y las facturas pasaban sin problema el validador del sat y el programa validaCFD, hoy para asegurarme de que todo sigue bien, valide una factura en el validador del sat y me marca que “El sello no pudo ser verificado” sin embargo el programa valida CFD me dice que la factura es correcta.
Alguien sabrá que paso con el validador del sat, le cambiaron algo? Lo hicieron más sensible? Hay que hacer algun cambio en el sellado a ultimas fechas?

De antemano muchas gracias y saludos

Alejandro

lcarrasco 28-10-2010 01:44:43

Dudas sobre Numero de Serie del certificado
 
Hola amigos, mejorando la liberia que les comente, me topo con que el Numero de Serie que reporta OpenSSL a traves del siguiente comando:

openssl.exe x509 -inform DER -in aaa010101aaa_CSD_02.cer -noout -serial > Serial.txt

Es:
3330303031303030303030313030303030383030

Y el que me regresa la libreria OpenSSL a traves de la DLL es:
3000100000010000080

En algun lado vi que se tenia que quitar un 3 de cada par de digitos. Solo que con esto quiero estar seguro al 100% y saber porque se quita ese 3. De donde viene? porque se quita y donde esta especificado que tiene que tener una longitud de 20 digitos el numero de serie?

Notese tambien la ausencia del ultimo 0 para completar los 20 digitos.

Gracias de antemano por sus respuestas

nejamube 28-10-2010 03:28:11

Codigo QRCODE para CFDI
 
Buenas noches.

En el siguiente enlace pueden descargar el codigo fuente para la generacion de el codigo QRCODE, entre muchos mas.

http://code.google.com/p/theunknowno...ts/ZintBarcode

http://sourceforge.net/projects/zint...0.exe/download

Sitio principal del proyecto con fuentes disponibles en C, que se pueden compilar en Visual C:
http://www.zint.org.uk/zintSite/

Entonces a disfrutar se ha dicho.
:cool:

edgaronfo 28-10-2010 05:58:00

preguntas sobre CFDi
 
Hola amigos, esperando que estén bien.

Oigan, en este sitio del SAT:
http://www.sat.gob.mx/sitio_internet.../66_19430.html

están los nuevos xsd y xslt para los CFDi's, y algunas otras notas, también viene un ejemplo de factura CFDi

Alguien ya lo probó? porque en el ejemplo vienen los campos del xml como: cfdi:comprobante o cfdi:emisor, pero a mí no me lo produce así el delphi, por eso pregunto si a ustedes les sale así o les sale como en el anterior, con solo el nombre del campo

Espero haberme hecho entender,

Gracias y saludos

dado 28-10-2010 17:20:35

Cita:

Empezado por lcarrasco (Mensaje 380676)
Hola amigos, mejorando la liberia que les comente, me topo con que el Numero de Serie que reporta OpenSSL a traves del siguiente comando:

openssl.exe x509 -inform DER -in aaa010101aaa_CSD_02.cer -noout -serial > Serial.txt

Es:
3330303031303030303030313030303030383030

Y el que me regresa la libreria OpenSSL a traves de la DLL es:
3000100000010000080

En algun lado vi que se tenia que quitar un 3 de cada par de digitos. Solo que con esto quiero estar seguro al 100% y saber porque se quita ese 3. De donde viene? porque se quita y donde esta especificado que tiene que tener una longitud de 20 digitos el numero de serie?

Notese tambien la ausencia del ultimo 0 para completar los 20 digitos.

Gracias de antemano por sus respuestas

Lo que sucede es lo siguiente :

tomemos un "35", en realidad es un numero hexadecimal asi que lo tenemos que convertir a decimal, bueno eso es facil :

3x16 + 5 = 53

Pero resulta que el codigo ASCII numero 53 es el numero "5"

Si lo revisas en Delphi con Chr(53) puedes ver que te arroja un "5"

En 3000100000010000080 tienes 19 caracteres, si te falta el ultimo "0"

dado 28-10-2010 17:32:17

Cita:

Empezado por edgaronfo (Mensaje 380690)
Hola amigos, esperando que estén bien.

Oigan, en este sitio del SAT:
http://www.sat.gob.mx/sitio_internet.../66_19430.html

están los nuevos xsd y xslt para los CFDi's, y algunas otras notas, también viene un ejemplo de factura CFDi

Alguien ya lo probó? porque en el ejemplo vienen los campos del xml como: cfdi:comprobante o cfdi:emisor, pero a mí no me lo produce así el delphi, por eso pregunto si a ustedes les sale así o les sale como en el anterior, con solo el nombre del campo

Espero haberme hecho entender,

Gracias y saludos


Si debe llevar los prefijos cfdi: se debe a un nuevo namespace que acaban de introducir.

Por otro lado el ejemplo ESTA PESIMO, lo hicieron con las PATAS y disculpen si lo menciono asi pero es verdad ya me lo han confirmado otros desarrolladores.

Aqui menciono los errores del ejemplo publicado por el SAT, lee ese post y los que le siguen ya que tambien hay publicado un ejemplo valido tanto en forma como en los DOS sellos

Al González 28-10-2010 18:22:50

Off topic
 
Leyendo sus comentarios tengo la impresión (equivocada quizá) de que el SAT ha venido pecando de impericia con esta cuestión de la factura electrónica. De por sí, ya tenía dudas de que fuera posible ponerla en práctica a partir del próximo enero (dado el escaso porcentaje de contribuyentes que siquiera hacen algún tipo de operación electrónica), y ahora con tantos cambios en apariencia apresurados uno se queda estupefacto.

Espero que cuando llegue a mí la necesidad de implementar mecanismos de factura electrónica el terreno sea menos agreste. Mis respetos para quienes hoy no tienen otra opción que entrarle al asunto.

:)

lcarrasco 28-10-2010 20:53:51

Cita:

Empezado por dado (Mensaje 380728)
Lo que sucede es lo siguiente :

tomemos un "35", en realidad es un numero hexadecimal asi que lo tenemos que convertir a decimal, bueno eso es facil :

3x16 + 5 = 53

Pero resulta que el codigo ASCII numero 53 es el numero "5"

Si lo revisas en Delphi con Chr(53) puedes ver que te arroja un "5"

En 3000100000010000080 tienes 19 caracteres, si te falta el ultimo "0"

Gracias Dado!

Ya vi que el Numero de Serie es por definicion del RFC de 20 digitos.

edgaronfo 28-10-2010 21:00:28

Cita:

Empezado por dado (Mensaje 380729)
Si debe llevar los prefijos cfdi: se debe a un nuevo namespace que acaban de introducir.

Por otro lado el ejemplo ESTA PESIMO, lo hicieron con las PATAS y disculpen si lo menciono asi pero es verdad ya me lo han confirmado otros desarrolladores.

Aqui menciono los errores del ejemplo publicado por el SAT, lee ese post y los que le siguen ya que tambien hay publicado un ejemplo valido tanto en forma como en los DOS sellos

Oye dado, pero si yo agarre el cfdv3.xsd de la pagina del SAT y lo use para generar my XML data bind en Delphi y no me da los "cfdi:" , entonces, de donde saco ese nuevo namespace?
o tu como le hiciste en delphi?

saludos

dado 29-10-2010 17:47:34

Cita:

Empezado por edgaronfo (Mensaje 380755)
Oye dado, pero si yo agarre el cfdv3.xsd de la pagina del SAT y lo use para generar my XML data bind en Delphi y no me da los "cfdi:" , entonces, de donde saco ese nuevo namespace?
o tu como le hiciste en delphi?

saludos

Checa esta entrada en mi foro, ahi explica un poco sobre este asunto

edgaronfo 29-10-2010 18:27:43

Gracias!
 
Cita:

Empezado por dado (Mensaje 380878)
Checa esta entrada en mi foro, ahi explica un poco sobre este asunto

Gracias dado, está muy buena tu explicación, aunque ya lo solucioné de manera diferente, lo que hice fue añadir el prefijo cfdi: directamente a la funcion GetComprobante, así:
Código Delphi [-]
function GetComprobanteCFDi(Doc: IXMLDocument): IXMLComprobanteCFDi;
begin
  Result := Doc.GetDocBinding('cfdi:Comprobante', TXMLComprobanteCFDi, TargetNamespace) as IXMLComprobanteCFDi;
end;

Bueno, entonces cómo voy? ya tengo:
1.- mi XML "supuestamente" bien formado usando el cfdv3.xsd del SAT y ahora con el prefijo cfdi:
2.- luego aplico la transformación con el archivo: "cadenaoriginal_3_0.xslt" también bajado desde el SAT, y "supuestamente" voy a tener mi cadena original versión 3.0 también de manera correcta.
3.- Ahora solo mando a llamar la funcion sello de la unidad sello.pas publicada en este foro, pero le cambio un parámetro, verdad? en vez de EVP_md5() le pongo EVP_sha1(), creo...

Saludos y gracias

JXJ 29-10-2010 23:56:16

Cita:

Empezado por edgaronfo (Mensaje 380884)
Gracias dado, está muy buena tu explicación, aunque ya lo solucioné de manera diferente, lo que hice fue añadir el prefijo cfdi: directamente a la funcion GetComprobante, así:

Código Delphi [-]
function GetComprobanteCFDi(Doc: IXMLDocument): IXMLComprobanteCFDi;
begin
Result := Doc.GetDocBinding('cfdi:Comprobante', TXMLComprobanteCFDi, TargetNamespace) as IXMLComprobanteCFDi;
end;





Bueno, entonces cómo voy? ya tengo:
1.- mi XML "supuestamente" bien formado usando el cfdv3.xsd del SAT y ahora con el prefijo cfdi:
2.- luego aplico la transformación con el archivo: "cadenaoriginal_3_0.xslt" también bajado desde el SAT, y "supuestamente" voy a tener mi cadena original versión 3.0 también de manera correcta.
3.- Ahora solo mando a llamar la funcion sello de la unidad sello.pas publicada en este foro, pero le cambio un parámetro, verdad? en vez de EVP_md5() le pongo EVP_sha1(), creo...

Saludos y gracias

donde se encuentra el

sello.pas
para delphi 7 ,,,
y la version para delphi 2010??

los ando buscando en este hilo y no los encuentro..

gracias.

edgaronfo 30-10-2010 03:48:04

las unidades sello.pas
 
Cita:

Empezado por JXJ (Mensaje 380926)
donde se encuentra el

sello.pas
para delphi 7 ,,,
y la version para delphi 2010??

los ando buscando en este hilo y no los encuentro..

gracias.

JXJ, la unidad sello.pas está en la primera pagina de este hilo, buscala bien, la publicó felipep.

Saludos

edgaronfo 30-10-2010 04:36:48

sobre el sellado de cfdi
 
Hola amigos, un saludo. Oigan, ya pudieron sellar los cfdis?

y otra pregunta: ya que tienen sellado el cfdi, lo enviamos ¿cómo? al pac para que nos lo timbren?

Saludos

JXJ 04-11-2010 17:44:49

Cita:

Empezado por nejamube (Mensaje 380683)
Buenas noches.

En el siguiente enlace pueden descargar el codigo fuente para la generacion de el codigo QRCODE, entre muchos mas.

http://code.google.com/p/theunknowno...ts/ZintBarcode

http://sourceforge.net/projects/zint...0.exe/download

Sitio principal del proyecto con fuentes disponibles en C, que se pueden compilar en Visual C:
http://www.zint.org.uk/zintSite/

Entonces a disfrutar se ha dicho.
:cool:

¿donde dice que hay que suar QRcode?
¿y como usarlos?


La franja horaria es GMT +2. Ahora son las 12:44:05.

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