Hola Norberto

Hay 2 métodos: on line con web services y Facturador Plus por medio de lotes de 
hasta 50 facturas, como si fueran los txt que se arman para otros aplicativos.

A Mis clientes les alcanza con que le prepare el archivo para el Faturador plus

http://www.afip.gov.ar/fe/documentos/FormatoEnvioFacturadorPlus/fp_formato_archivo.html

A mi se me ocurrió hacerlo así: armo un cursor 
Create Curs psvcntot (tipo c(2),ptovta c(4),cuitemisor c(11),;
 fechaemision c(10),idioma c(2),concepto c(2),ape c(1),moneda c(3),tipocambio 
c(11),;
 destinocmp c(3),tipodocrecepto c(2),nrodocreceptor c(11),idimpositivoreceptor 
c(20),receptor m,domicilioreceptor m,;
 importetotal c(15), formaspago m,;
 incoterms c(3),detalleincoterms c(20),otrosdatoscomerciales m,;
 permisosdestinos m, cmpasociados m,;
 detalles m, otrosdatosgenerales m)

y lo voy llenando, y en los campos que serán grupos (que los definí como memo) 
coloco la clave de búsqueda de cada comprobante que yo la llamo 'numero'. Luego 
creo el xml con:

Cursortoxml("psvcntot", "cXML")

Ahora bien,

Cómo hago para que no aparezca standalone="yes"
Cómo hago para que en lugar de <VFPData> diga <comprobantes>
Cómo hago un cursortoxml con grupos? Por ejemplo:
        <formaspago>
            <formapago>
                <codigo>num(2)</codigo>
                <descripcion>texto(50)</descripcion>
            </formapago>
        </formaspago>
Así: 
cXml = Strtran( cXml, "<VFPData>", "<comprobantes>" )
cXml = Strtran( cXml, "</VFPData>", "</comprobantes>" )
cXml = Strtran( cXml, ' standalone="yes"',"")
cXml = Strtran( cXml, "Windows-1252","UTF-8")
cXml = Strtran( cXml, "psvcntot","comprobante") 
cXml = Strtran( cXml, "</formaspago>", "" )
cXml = Strtran( cXml, "</permisosdestinos>", "" )
cXml = Strtran( cXml, "</cmpasociados>", "" )
cXml = Strtran( cXml, "</detalles>", "" )

y para los grupos, recorro el cursor y armo cursorcitos para cada grupo y a su 
vez los mando a xml y hago el strtran en el grande. Algo así:

sele psvcntot
Go Top
Do While !Eof()
 Create Cursor formapago (codigo c(2),descripcion c(50))
 Create Cursor permisodestino (permisoemb c(16),destino c(3)) &&99999AAAA999999A
 Create Cursor cmpasociado (tipoasoc c(2),ptovtaasoc c(4),nroasoc c(8))
 Create Cursor detalle (cod c(50),Desc m,unimed c(2),cant N(10,2),preciounit 
N(13,2),importe N(13,2))
 gNumero=psvcntot.formaspago
***lleno el cursor de formapago y luego
 cXml1 = Strtran( cXml1, "VFPData", "formaspago" )
 cXml = Strtran( cXml, '<formaspago>'+gNumero,cXml1)
*** igual con los otros cursorcitos de permisodestino, cmpasociado y detalle
 Select psvcntot
 Skip
Enddo
cXml = Strtran( cXml, '<?xml version = "1.0" encoding="Windows-1252" 
standalone="yes"?>',"")
Strtofile( cXml, strSave )

También podría ser con text y endtext a pulmón

Espero te ayude

Saludos

Estela Lázaro
D&SIP

Desarrollo y Servicios Informáticos Profesionales

www.dsip.com.ar





________________________________
De: Norberto Mario Alvarez <[email protected]>
Para: GUFA List Member <[email protected]>
Enviado: martes, 27 de abril, 2010 19:55:51
Asunto: [GUFA] Factura Electrónica Exportación


Estimados colisteros, en un cliente tengo desarrollado un generador de un 
archivo TXT, para enviar las facturas A y B, autorizar y por la misma vía 
recibo el TXT con los números de CAE y la fecha de aprobación. Comunicandome 
con la AFIP, me dicen que las facturas de Exportación tiene que ser un archivo 
XML. La verdad no sé por donde empezar, me gustaría si alguien me tira una 
mano, para generar el mismo y como. También a donde lo envio, porque no me han 
informado nada. Desde ya muchas gracias, por vuestra atención.
 
Norberto Alvarez
Socio # 1892


      

Responder a