Adenadas de CFDI con VFP

81 views
Skip to first unread message

Reyes Reyes del Valle

unread,
Oct 29, 2015, 3:14:42 PM10/29/15
to Comunidad de Visual Foxpro en Español
Estimados Todos

   Les agradezco antes que nada que se tomen el tiempo para leer el mensaje,  sinceramente tengo un poco de rato que no programo en VFP pero debo de realizar una aplicacion que modifique la adenda de un CDFI (xml de factura electronica)  he estado revisando y buscando y encuentro funciones que he probado pero no logro que funcione, entiendo que debo de pasar el XML a un cursos y desde ahi crear la adenda y volver a generar el xml (cfdi), en base a eso he revisado:

esto si me funciona y me parece asi puedo generar un XML  <?xml version="1.0" encoding="UTF-8"?>
CURSORTOXML("customer","lcXML",1,48)
STRTOFILE(STRCONV(lcXML,9),"customer48.xml")
XMLTOCURSOR("customer.xml","curCustomer",4096)

   Pero al tratar de leer el XML para pasar al cursos no logro que "suba"

             XMLTOCURSOR("Addenda.xml","curorAdenda",1024)

            Agradecere mucho sus comentarios y sugerencias


Addenda.XML

Trento

unread,
Oct 30, 2015, 10:04:13 PM10/30/15
to Comunidad de Visual Foxpro en Español
Hola, Reyes.

Si lo que necesitas es simplemente agregar el nodo de Addenda a un XML ya timbrado, es sencillo:

Lo primero es generar la addenda como una cadena de texto (vamos a hacerlo sencillo como código fijo; que si los valores de los atributos de la addenda pudieran estar en un dbf o así, también se podría).

lcAddenda =  ;
"<cfdi:Addenda>" + ;
"<Addenda_OfficeMax_Detecno>" + ;
"<Version>1.0</Version>" + ;
"<TipoProveedor>1</TipoProveedor>" + ;
"<Sociedad>0003</Sociedad>" + ;
"<NoProveedor>55177</NoProveedor>" + ;
"<NoOc>125450</NoOc>" + ;
"<Moneda>MX</Moneda>" + ;
"<TC>13.00</TC>" + ;
"<IDFactura>12345abcde</IDFactura>" + ;
"<CorreoAviso>contac...@proveedor.com</CorreoAviso>" + ;
"</Addenda_OfficeMax_Detecno>" + ;
"</cfdi:Addenda>"

* Ahora, pasamos el XML a texto:

lcStrXml = FILETOSTR("MiArchivo.Xml.xml")

* El nodo Comprobante cierra la addenda, por lo que:

lcStrXml = STRTRAN( "</cfdi:Comprobante>", lcAddenda + "</cfdi:Comprobante>" )

* Grabamos un nuevo XML como prueba, para verificar

STRTOFILE( lcStrXml, "MiArchivoXmlConAddenda.xml")


Ojalá te haya entendido y que esto te sirva.


Saludos.
Reply all
Reply to author
Forward
0 new messages