Como coloco el prefijo cfdi en cada uno de los nombres de nodo

1,241 views
Skip to first unread message

Halcón Divino

unread,
May 5, 2011, 5:37:37 PM5/5/11
to vfp-factura-electronica-mexico
Que tal colegas de nueva cuenta recuro a ustedes para una ayuda.


Mi pregunta es Como coloco el prefijo cfdi en cada uno de los nodos de
tal forma que quede de la siguiente manera:

<cfdi:Comprobante....
<cfdi:Domicilio
<cfdi:DomicilioFiscal ……
<cfdi:Traslados

Les anexo parte del código que desarrollé para generar el XML del
CFDI
Lo unció que me falta es poner el prefijo *** cfdi **** a cada
uno de los nodos

Me podrían explicar como realizarlo.

Gracias
Hañcón Divino
Monterrey, Nuevo Léon, México

Local root As IXMLDOMProcessingInstruction
Local nComprobante As XmlNode
Local nEmisor As XmlNode
Local nReceptor As XmlNode
Local nDomiciloFiscal As XmlNode
Local nExpedidoEn As XmlNode
Local nConceptos As XmlNode
Local nConcepto As XmlNode
Local nImpuestos As XmlNode
Local nTraslados As XmlNode
Local nTraslado As XmlNode
Local ninformacionAduanera As XmlNode
Local nAddEnda As XmlNode
Local nInfoAdicional As XmlNode

* se crea el objeto XML
CFDXml = CREATEOBJECT("msxml2.DOMDocument")

* Header: La siguiente instrucción genera <?xml version="1.0"?> como
salida
root = CFDXml.createProcessingInstruction("xml","version='1.0'
encoding='UTF-8'")
CFDXml.insertBefore(root, CFDXml.documentElement)

* Crea el Nodo Principal COMPROBANTE
nComprobante = CFDXml.CreateNode(1,"Comprobante","")

nComprobante.setAttribute("xsi:schemaLocation","http://www.sat.gob.mx/
cfd/3 cfdv3.xsd")
nComprobante.setAttribute("xmlns:cfdi" , "http://www.sat.gob.mx/
cfd/3")
nComprobante.setAttribute("xmlns:xsi" , "http://www.w3.org/
2001/XMLSchema-instance")


If Len(QtarChrInval(Gral.versions )) > 0

nComprobante.setAttribute("version" ,QtarChrInval(Gral.versions ))
ENDIF

If Len(QtarChrInval(Gral.serie )) > 0

nComprobante.setAttribute("serie" ,QtarChrInval(Gral.serie ))
EndIf
If Len(QtarChrInval(Gral.folio )) > 0

nComprobante.setAttribute("folio" ,QtarChrInval(Gral.folio ))
EndIf
If Len(QtarChrInval(Gral.fecha )) > 0

nComprobante.setAttribute("fecha" ,QtarChrInval(Gral.fecha ))
EndIf
If Len(QtarChrInval(Gral.noAprobaci )) > 0

nComprobante.setAttribute("noAprobacion" ,QtarChrInval(Gral.noAprobaci ))
EndIf
If Len(QtarChrInval(Gral.anoAprobac )) > 0

nComprobante.setAttribute("anoAprobacion" ,QtarChrInval(Gral.anoAprobac ))
EndIf
If Len(QtarChrInval(Gral.formaDePag )) > 0

nComprobante.setAttribute("formaDePago" ,QtarChrInval(Gral.formaDePag ))
ENDIF
If Len(QtarChrInval(Gral.metodoDePa )) > 0

nComprobante.setAttribute("metodoDePago" ,QtarChrInval(Gral.metodoDePa ))
ENDIF
If Len(QtarChrInval(Gral.condicione )) > 0

nComprobante.setAttribute("condicionesDePago" ,QtarChrInval(Gral.condicione ))
ENDIF
If Len(QtarChrInval(Gral.motivoDesc )) > 0

nComprobante.setAttribute("motivoDescuento" ,QtarChrInval(Gral.motivoDesc ))
ENDIF
If Len(QtarChrInval(Gral.subTotal )) > 0

nComprobante.setAttribute("subTotal" ,QtarChrInval(Gral.subTotal ))
EndIf
If Len(QtarChrInval(Gral.descuento )) > 0

nComprobante.setAttribute("descuento" ,QtarChrInval(Gral.descuento ))
EndIf
If Len(QtarChrInval(Gral.total )) > 0

nComprobante.setAttribute("total" ,QtarChrInval(Gral.total ))
EndIf
If Len(QtarChrInval(Gral.tipoDeComp )) > 0

nComprobante.setAttribute("tipoDeComprobante" ,QtarChrInval(Gral.tipoDeComp ))
EndIf
If Len(QtarChrInval(noCertificado )) > 0

nComprobante.setAttribute("noCertificado" ,QtarChrInval(noCertificado ))
EndIf
If Len(QtarChrInval(Certificado )) > 0

nComprobante.setAttribute("certificado" ,QtarChrInval(Certificado ))
EndIf
If Len(QtarChrInval(strsello )) > 0

nComprobante.setAttribute("sello" ,QtarChrInval(strsello ))
EndIf

* Se crea el Nodo Emisor
nEmisor = CFDXml.CreateNode(1, "Emisor", "")
If Len(QtarChrInval(Gral.Enombre )) > 0

nEmisor.setAttribute("nombre" ,QtarChrInval(Gral.Enombre ))
EndIf
If Len(QtarChrInval(Gral.Erfc )) > 0

nEmisor.setAttribute("rfc" ,QtarChrInval(Gral.Erfc ))
ENDIF

* Se crea el Nodo Domicilio Fiscal
nDomiciloFiscal = CFDXml.CreateNode(1, "DomicilioFiscal", "")

If Len(QtarChrInval(Gral.Ecalle )) > 0

nDomiciloFiscal.setAttribute("calle" ,QtarChrInval(Gral.Ecalle ))
EndIf
If Len(QtarChrInval(Gral.EcodigoPos )) > 0

nDomiciloFiscal.setAttribute("codigoPostal" ,QtarChrInval(Gral.EcodigoPos ))
EndIf
If Len(QtarChrInval(Gral.Ecolonia )) > 0

nDomiciloFiscal.setAttribute("colonia" ,QtarChrInval(Gral.Ecolonia ))
EndIf
If Len(QtarChrInval(Gral.Eestado )) > 0

nDomiciloFiscal.setAttribute("estado" ,QtarChrInval(Gral.Eestado ))
EndIf
If Len(QtarChrInval(Gral.Elocalidad )) > 0

nDomiciloFiscal.setAttribute("localidad" ,QtarChrInval(Gral.Elocalidad ))
EndIf
If Len(QtarChrInval(Gral.Emunicipio )) > 0

nDomiciloFiscal.setAttribute("municipio" ,QtarChrInval(Gral.Emunicipio ))
EndIf
If Len(QtarChrInval(Gral.EnoExterio )) > 0

nDomiciloFiscal.setAttribute("noExterior" ,QtarChrInval(Gral.EnoExterio ))
EndIf
If Len(QtarChrInval(Gral.EnoInterio )) > 0

nDomiciloFiscal.setAttribute("noInterior" ,QtarChrInval(Gral.EnoInterio ))
EndIf
If Len(QtarChrInval(Gral.Epais )) > 0

nDomiciloFiscal.setAttribute("pais" ,QtarChrInval(Gral.Epais ))
ENDIF

* El nodo Domicilio Fiscal se agrega al nodo Emisor
nEmisor.AppendChild(nDomiciloFiscal)

* Se crea el Nodo Expedido En
nExpedidoEn = CFDXml.CreateNode(1, "ExpedidoEn", "")
If Len(QtarChrInval(Gral.Xcalle )) > 0

nExpedidoEn.setAttribute("calle" ,QtarChrInval(Gral.Xcalle ))
EndIf
If Len(QtarChrInval(Gral.XcodigoPos )) > 0

nExpedidoEn.setAttribute("codigoPostal" ,QtarChrInval(Gral.XcodigoPos ))
EndIf
If Len(QtarChrInval(Gral.Xcolonia )) > 0

nExpedidoEn.setAttribute("colonia" ,QtarChrInval(Gral.Xcolonia ))
EndIf
If Len(QtarChrInval(Gral.Xestado )) > 0

nExpedidoEn.setAttribute("estado" ,QtarChrInval(Gral.Xestado ))
EndIf
If Len(QtarChrInval(Gral.Xlocalidad )) > 0

nExpedidoEn.setAttribute("localidad" ,QtarChrInval(Gral.Xlocalidad ))
EndIf
If Len(QtarChrInval(Gral.Xmunicipio )) > 0

nExpedidoEn.setAttribute("municipio" ,QtarChrInval(Gral.Xmunicipio ))
EndIf
If Len(QtarChrInval(Gral.XnoExterio )) > 0

nExpedidoEn.setAttribute("noExterior" ,QtarChrInval(Gral.XnoExterio ))
EndIf
If Len(QtarChrInval(Gral.XnoInterio )) > 0

nExpedidoEn.setAttribute("noInterior" ,QtarChrInval(Gral.XnoInterio ))
EndIf
If Len(QtarChrInval(Gral.Xpais )) > 0

nExpedidoEn.setAttribute("pais" ,QtarChrInval(Gral.Xpais ))
ENDIF
* Se agrega el nodo nExpedidoEn a el nodo Emisor
nEmisor.AppendChild(nExpedidoEn )

* Se agrega el nodo Emisor al nodo Comprobante
nComprobante.AppendChild(nEmisor);

* Se crea el Nodo Receptor
nReceptor = CFDXml.CreateNode(1, "Receptor", "")
If Len(QtarChrInval(Gral.Rnombre )) > 0

nReceptor.setAttribute("nombre" ,QtarChrInval(Gral.Rnombre ))
EndIf
If Len(QtarChrInval(Gral.Rrfc )) > 0

nReceptor.setAttribute("rfc" ,QtarChrInval(Gral.Rrfc ))
ENDIF

* Se crea el Nodo Domicilio Fiscal del Receptor
nDomiciloFiscal = CFDXml.CreateNode(1, "Domicilio", "")

If Len(QtarChrInval(Gral.Rcalle )) > 0

nDomiciloFiscal.setAttribute("calle" ,QtarChrInval(Gral.Rcalle ))
EndIf
If Len(QtarChrInval(Gral.RcodigoPos )) > 0

nDomiciloFiscal.setAttribute("codigoPostal" ,QtarChrInval(Gral.RcodigoPos ))
EndIf
If Len(QtarChrInval(Gral.Rcolonia )) > 0

nDomiciloFiscal.setAttribute("colonia" ,QtarChrInval(Gral.Rcolonia ))
EndIf
If Len(QtarChrInval(Gral.Restado )) > 0

nDomiciloFiscal.setAttribute("estado" ,QtarChrInval(Gral.Restado ))
EndIf
If Len(QtarChrInval(Gral.Rlocalidad )) > 0

nDomiciloFiscal.setAttribute("localidad" ,QtarChrInval(Gral.Rlocalidad ))
EndIf
If Len(QtarChrInval(Gral.Rmunicipio )) > 0

nDomiciloFiscal.setAttribute("municipio" ,QtarChrInval(Gral.Rmunicipio ))
EndIf
If Len(QtarChrInval(Gral.RnoExterio )) > 0

nDomiciloFiscal.setAttribute("noExterior" ,QtarChrInval(Gral.RnoExterio ))
EndIf
If Len(QtarChrInval(Gral.RnoInterio )) > 0

nDomiciloFiscal.setAttribute("noInterior" ,QtarChrInval(Gral.RnoInterio ))
EndIf
If Len(QtarChrInval(Gral.Rpais )) > 0

nDomiciloFiscal.setAttribute("pais" ,QtarChrInval(Gral.Rpais ))
ENDIF

* El nodo Domicilio Fiscal del Receptor se agrega al nodo nReceptor
nReceptor.AppendChild(nDomiciloFiscal)

* El nodo Receptor se agrega al nodo Comprobante
nComprobante.AppendChild(nReceptor);

Bart Sosa

unread,
May 5, 2011, 6:53:45 PM5/5/11
to vfp-factura-ele...@googlegroups.com
creas una variable con la URL del SAT y en cada nodo se lo asignas
nComprobante = CFDXml.CreateNode(1,"cfdi:Comprobante",cCfdi)

nEmisor = CFDXml.CreateNode(1, "cfdi:Emisor", cCfdi)

nExpedidoEn = CFDXml.CreateNode(1,"cfdi:ExpedidoEn",cCfdi)
Saludos
Desde Merida Yucatán
Bart Sosa

Adrian Gmail

unread,
May 6, 2011, 9:25:07 AM5/6/11
to vfp-factura-ele...@googlegroups.com

Bart, ya lograste timbrar los cfdi?

 

Saludos también desde Merida

--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-ele...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/vfp-factura-electronica-mexico?hl=es.

 

__________ Information from ESET NOD32 Antivirus, version of virus signature database 6098 (20110505) __________

 

The message was checked by ESET NOD32 Antivirus.

 

http://www.eset.com



__________ Information from ESET NOD32 Antivirus, version of virus signature database 6098 (20110505) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Isaias E. Yam I.

unread,
May 6, 2011, 10:39:33 AM5/6/11
to vfp-factura-ele...@googlegroups.com

ALGUIEN ME PODRIA DAR UN EJEMPLO DE CÓMO AGREGAR EL NOTO TIMBRE FISCAL AL XML ¿?

 

LES COMENTO QUE ANEXO CFDI.PRG QUE GENERA EL XML YA VALIDADO , GRACIAS A LOS DE QUE INICIARON CON EL PRG. YA NO RECUERDO QUIENES INICIARON ALGUNOS ESTAN SUS NOMBRES EN EL PRG. A TODOS MIL GRACIAS.

 

SOLO TENGO UN PROBLEMA, OJALA ME PUEDAN HECHAR LA MANO, ESTE PRG, FUNCIONA CORRECTAMENTE DE FORMA INDEPENDIENTE, SI LO LLAMO COMO UN PROCEDURE TO CFDI EN EL INIT DE UN FORM, YA NO ME DA EL NUM DE SERIE DEL CERTIFICADO ALGUIEN PODRIA AYUDAR PARA ENTENDER CUAL SERIA LO MALO QUE ESTARIA HACIENDO.

 

Saludos, también de Mérida.

 

PD. Colegas de Mérida, ojala podamos reunirnos algún día y compartir experiencias.

PruebaCfdi.rar

Armando Rodríguez

unread,
May 6, 2011, 10:44:24 AM5/6/11
to vfp-factura-ele...@googlegroups.com

Con gusto los amigo de otros estados iríamos encantados a Mérida, no excluyan, Jeje

 

Saludos

Bart Sosa

unread,
May 6, 2011, 11:05:53 AM5/6/11
to vfp-factura-ele...@googlegroups.com
Ya esta validado.
 
EL PAC es "facturaxion", estamos afinando los ultimos detalles.
 
En eso ando,
 
Saludos
Bart Sosa
 

Isaias E. Yam I.

unread,
May 6, 2011, 11:59:15 AM5/6/11
to vfp-factura-ele...@googlegroups.com

Amigo Bart Sosa, en que lenguaje estas programando. Me gustaría tener contacto directo para intercambiar algunos puntos de vista yo también estoy con facturaxion, ya mi xml esta validado pero no hayo como agregar el nodo timbre fiscal a mi xml, para hacer la impresión pdf y demás.

 

Sin afán de abusar de tus conocimientos, si hubiera una remuneración por tu apoyo, estoy dipuesto.

 

Saludos.

 

De: vfp-factura-ele...@googlegroups.com [mailto:vfp-factura-ele...@googlegroups.com] En nombre de Bart Sosa
Enviado el: Viernes, 06 de Mayo de 2011 10:06 a.m.
Para: vfp-factura-ele...@googlegroups.com
Asunto: [vfp-fem] Re: Como coloco el prefijo cfdi en cada uno de los nombres de nodo

 

Ya esta validado.

--

Bart Sosa

unread,
May 6, 2011, 12:32:57 PM5/6/11
to vfp-factura-ele...@googlegroups.com
Estoy programando en VFP, y apenas ya termine te comento.
tu en que estas programando ??
 
Saludos
 
Desde Merida Yucatan

Isaias E. Yam I.

unread,
May 6, 2011, 1:38:27 PM5/6/11
to vfp-factura-ele...@googlegroups.com

Iwal, amigo en VFP9 SP2, y ya tengo un trabajo adelantado, únicamente me hace falta como agregarle el timbrado a mi xml y hacer la impresión del pdf con los requerimentos del SAT, tu sabes de casualidad si para la impresión del CFDI ya trimbrado es obligatorio el QR Code, código de barras bidimensional.

 

Saludos.

 

Pd. Te dejo mi email: isa...@gmail.com

--

Firmo Lopez

unread,
May 6, 2011, 2:11:22 PM5/6/11
to vfp-factura-ele...@googlegroups.com
Hola
Pues sí, es obligatorio el uso del código de barra bidireccional.

Adjunto una prueba impresa desde mi programa para que tengas un ejemplo de como debe ser la representación impresa.

Saludos
Firmo Lopez
www.AutoSoftTaller.com

PRUEBA.PDF

Adrian Gmail

unread,
May 6, 2011, 2:32:33 PM5/6/11
to vfp-factura-ele...@googlegroups.com

Me apunto para la reunión.

 

Adrian Sosa

 


Enviado el: Viernes, 06 de Mayo de 2011 10:59 a.m.
Para: vfp-factura-ele...@googlegroups.com

__________ Information from ESET NOD32 Antivirus, version of virus signature database 6100 (20110506) __________

Ing. Hector García Villarreal

unread,
May 6, 2011, 2:55:31 PM5/6/11
to vfp-factura-ele...@googlegroups.com
Me adjunto al proyecto.

Isaias E. Yam I.

unread,
May 6, 2011, 3:14:15 PM5/6/11
to vfp-factura-ele...@googlegroups.com

Pues ya somos, 3 los interesados. Pos yo digo de una vez, en algún lugar. Yo no podria ofrecer ya que no tengo un domicilio pero si alguien tiene un local para reunirnos, de una buena vez.

Rulo

unread,
May 6, 2011, 5:18:36 PM5/6/11
to vfp-factura-electronica-mexico
Que tal Isaias

Si todavia tienes problemas con lo de agregar la informacion del
timbre podrias hacerlo con funciones de texto como STREXTRACT

lcxml="<"+STREXTRACT(lcxml,"<","<cfdi:Complemento>")+;
"<cfdi:Complemento>"+;
CHR(13)+CHR(10)+;
CHR(9)+CHR(9)+"<tfd:TimbreFiscalDigital "+lctimbre+"/>"+;
"</cfdi:Complemento>"+;
STREXTRACT(lcxml,"</cfdi:Complemento>","</cfdi:Comprobante>")+;
"</cfdi:Comprobante>"

lcxml es la cadena que contiene el XML y lctimbre es la cadena que
contiene la informacion del timbre

Se que se ve muy incorrecto el no trabajar con funciones de archivos
XML pero si conoces la estructura de tu archivo no tendras errores
manejandolo asi.

Isaias E. Yam I.

unread,
May 6, 2011, 5:50:26 PM5/6/11
to vfp-factura-ele...@googlegroups.com
Gracias rulo, me haz dado un panorama, mucho mas amplio, gracias se te
agredece.

-----Mensaje original-----
De: vfp-factura-ele...@googlegroups.com
[mailto:vfp-factura-ele...@googlegroups.com] En nombre de Rulo
Enviado el: Viernes, 06 de Mayo de 2011 04:19 p.m.
Para: vfp-factura-electronica-mexico
Asunto: [vfp-fem] Re: Como coloco el prefijo cfdi en cada uno de los nombres

Bart Sosa

unread,
May 7, 2011, 9:44:30 AM5/7/11
to vfp-factura-ele...@googlegroups.com
Hola Atodos
 
Agregando la parte del Complemento
cuando valido el XML me marca este error, ya lo han solucionado ??
 
SelloCFD  es un campo obligatorio y no se ha definido ???
 
Help
 
Saludos
 
Bart Sosa
Apuntado par ala reunion

Isaias E. Yam I.

unread,
May 9, 2011, 9:59:41 AM5/9/11
to vfp-factura-ele...@googlegroups.com

= que tu, tengo ese mismo, problema, según he estado investigando es algo del ordenamiento del xml. Sigo en mi lucha, si encuentro algo te aviso.

 


Enviado el: Sábado, 07 de Mayo de 2011 08:45 a.m.
Para: vfp-factura-ele...@googlegroups.com

--

Isaias E. Yam I.

unread,
May 9, 2011, 6:12:54 PM5/9/11
to vfp-factura-ele...@googlegroups.com
Hola, ya he resuelto el problemilla, ahora me enfrento al como imprimir los
xml, ya que en la presentación impresa del CFDI, según lei es obligatorio el
código de barras bidimensional, alguien tiene un ejemplo de cómo imprimir un
xml, me han comentado en volver el xml en cursor y asi trabajarlo y también
en cadena de texto.

Alguna sugerencia.

Saludos. Desde merida yucatan.

PD. A los que necesiten ayuda, no duben publicar su pregunta, todo lo
relacionado al CFDI.

-----Mensaje original-----
De: vfp-factura-ele...@googlegroups.com


[mailto:vfp-factura-ele...@googlegroups.com] En nombre de Rulo
Enviado el: Viernes, 06 de Mayo de 2011 04:19 p.m.
Para: vfp-factura-electronica-mexico

Asunto: [vfp-fem] Re: Como coloco el prefijo cfdi en cada uno de los nombres

Bart Sosa

unread,
May 10, 2011, 10:52:24 AM5/10/11
to vfp-factura-ele...@googlegroups.com
YA LOGRASTE QUITAR EL ERROR DEL TIMBRE ??
LOGRASTE TIMBRAR CON FACTURAXION ?
 
PARA EMITIR EL CBB, HAY UN DLL QUE TE DA FACTURAXION
 

DECLARE INTEGER

GenerateFile IN BarCodeLibrary.DLL string text, string fileName

DECLARE INTEGER

LibraryVersion IN BarCodeLibrary.DLL

DECLARE INTEGER

SetConfiguration IN BarCodeLibrary.DLL int size, int imageFormat

cCBB="?re=AAQM610917QJA&rr=CUA030623GJ9&tt=100.000000&id=9cf36572-e5d6-4983-b82f-b1d424b47aec"

generatefile(cCBB,"c:\CBB2.bmp")

DE ESTA MANERA GENERAS EL Codigo Bidimensional

Saludos

Bart Sosa

Isaias E. Yam I.

unread,
May 10, 2011, 11:49:35 AM5/10/11
to vfp-factura-ele...@googlegroups.com

Esto utilizo para generar el CBB, si ya he conseguito timbrar por código solo me falta generar el cbb que hize y ahora mi dolor de muelas, como imprimir el xml a pdf.

 

 

******************************************************

***  Aca inicio la generacion del QRCode en formato

***  png dimensiones de acuerdo al requerimento SAT

******************************************************

 

*** Este seria el contenido de informacion del QR

*lcDato =[?re=XAXX010101000&rr=XAXX010101000&tt=1234567890.123456] + ;

[&id=ad662d33-6934-459c-a128-BDf0393f0f44]

*lcDato = strtran(lcDato,'&','%26')

 

*Ojo, para aquellos que lo buscan para CFDI, faltaria agregar

*el parametro:&chld=Q después del tamaño de la imagen, el ejemplo

*corregido, seria:

** Este seria el contenido de informacion del QR

lcDato ='?re='+lcrfcemisor+'&rr='+lcrfcreceptor+'&tt='+ALLTRIM(TRANSFORM(VAL(lctotalcomprobante),'9999999999.999999'))+;

'&id='+lcUUID1

? lcDato

** Ancho x Alto

lcDimensiones = '300x300'

** Donde quieren guardar la imagen, ojo, es PNG

lcImagen = PUTFILE('QRCode','QRCode','png')

 

IF EMPTY(lcImagen)

RETURN

ENDIF

 

IF GoogleQR(lcDato,lcDimensiones,lcImagen) == 0

MESSAGEBOX('Descarga Exitosa',0+64,'GoogleQR')

ELSE

MESSAGEBOX('Error en la generacion del Codigo QR',0+16,'GoogleQR')

ENDIF

 

FUNCTION GoogleQR(pDato,pDimensiones,pImagen)

WAIT WINDOW "Generando y descargando Código QR, espere por favor..." NOWAIT

DECLARE Long URLDownloadToFile IN "urlmon";

Long pCaller,;

String szURL,;

String szFileName,;

Long dwReserved,;

Long lpfnCB

sURL ="https://chart.googleapis.com/chart?cht=qr&chs=" + ;

pDimensiones + "&chld=Q&chl=" + STRTRAN(pDato,'&','%26')

nRetVal = URLDownloadToFile (0, sURL, pImagen, 0, 0)

WAIT CLEAR

RETURN nRetVal

ENDFUNC

 

****

 

Saludos, desde merida yucatan.

 

De: vfp-factura-ele...@googlegroups.com [mailto:vfp-factura-ele...@googlegroups.com] En nombre de Bart Sosa
Enviado el: Martes, 10 de Mayo de 2011 09:52 a.m.
Para: vfp-factura-ele...@googlegroups.com
Asunto: Re: RE: [vfp-fem] Re: Como coloco el prefijo cfdi en cada uno de los nombres de nodo

 

YA LOGRASTE QUITAR EL ERROR DEL TIMBRE ??

--

Baltazar Moreno

unread,
May 10, 2011, 1:04:41 PM5/10/11
to vfp-factura-ele...@googlegroups.com
Firmo, creo que tienes que cambiar la leyenda de tu CFDI:

Tu tienes: 
Este documento es una impresión de un comprobante fiscal digital

Debe ser:
Este documento es una representación impresa de un CFDI

Saludos!

--
Baltazar Moreno

Baltazar Moreno

unread,
May 10, 2011, 1:07:31 PM5/10/11
to vfp-factura-ele...@googlegroups.com
Es bueno saber que sí están usando la api de google, sólo una recomendación:

Estuve comparando los QR que hacen los pac y debes hacer un cambio en el código: 

&chld=Q debe ser &chld=M

Lo expuse en un comentario de la misma entrada de portal fox:

Baltazar Moreno

unread,
May 10, 2011, 1:10:24 PM5/10/11
to vfp-factura-ele...@googlegroups.com
Ah y también te hace falta el no de certificado del emisor.

Firmo Lopez

unread,
May 11, 2011, 4:55:15 PM5/11/11
to vfp-factura-ele...@googlegroups.com
Tienes razón, lo cambiare para la nueva versión del programa.
Gracias.

Saludos
Firmo
www.AutoSoftTaller.com

Francisco A. Martínez R.

unread,
Jun 14, 2011, 4:12:33 PM6/14/11
to vfp-factura-ele...@googlegroups.com
Hola Amigos:
Tengo un desarrollo que emite los CFD, basado en el ejemplo que publicó Halcón Dorado.
Hoy quiero Hacer el CFDI para enviarlo a un PAC. La pregunta es: ¿Los datos "Serie", "Folio", "Sello", "Certificado" Es necesario enviarlos al XML que recibirá el PAC?
Agradezco cualquier información al respecto
 
Saludos



--

Arturo Ramos

unread,
Jun 15, 2011, 1:58:24 AM6/15/11
to vfp-factura-ele...@googlegroups.com
Francisco, abre un tema nuevo, será más fácil ayudarte.

Saludos.

PD.: al decir Halcón Dorado creo que te refieres al compañero Halcón Divino, no ??

Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México.

F G

unread,
Jun 20, 2011, 4:26:55 PM6/20/11
to vfp-factura-ele...@googlegroups.com
Hola Francisco
Yo tenia el mismo problema del cfdi V3
pero encontre un ejemplo que muy gentilmente publico Bart Sosa

 "creas una variable con la URL del SAT y en cada nodo se lo asignas
 cCfdi='http://www.sat.gob.mx/cfd/3'

 nComprobante = CFDXml.CreateNode(1,"cfdi:Comprobante",cCfdi)

 nEmisor = CFDXml.CreateNode(1, "cfdi:Emisor", cCfdi)

 nExpedidoEn = CFDXml.CreateNode(1,"cfdi:ExpedidoEn",cCfdi)
 Saludos
 Desde Merida Yucatán
 Bart Sosa"
ya lo inclui en mi .prg (VFP9) y FUNCIONO ojala te sirva
Saludos
Reply all
Reply to author
Forward
0 new messages