Factura electronica

1,507 views
Skip to first unread message

Juan Miguel Solis

unread,
Apr 13, 2019, 6:14:55 AM4/13/19
to Comunidad de Visual Foxpro en Español
Hola a todos

Perdonar esta pregunta , pero es para ver si alguien me puede orientar sobre este tema.

Yo tengo una aplicación en VFP 6.0 que realiza albaranes, presupuestos, facturas, etc.  ahora el cliente me pide que le haga factura electrónica, esto como se puede afrontar, se puede hacer desde el VFP 6.0, necesitaría migrar a VFP 9.0 o es algo que no se puede hacer desde  VFP automáticamente ?

Si alguno puede orientarme se lo agradeceria, hace ya bastante tiempo que no toco el VFP y ando un poco perdido.

Gracias da antemano y un saludo

Juan Miguel Solis

unread,
Apr 13, 2019, 6:18:32 AM4/13/19
to Comunidad de Visual Foxpro en Español
Perdonar, nos dije para donde era, era par España la factura electrónica.

Rodolfo

unread,
Apr 13, 2019, 7:11:33 AM4/13/19
to publice...@googlegroups.com
Hola Juan.

Necesariamente tendrías que hacerlo desde visual 9.0, saludos! 

Jean Pierre Adonis De La Cruz Garcia

unread,
Apr 13, 2019, 7:36:45 AM4/13/19
to Comunidad de Visual Foxpro en Español
realmente mucho depende de que es lo que deseas  hacr y a donde va dirigido, por decir, yo tengo mi API desarrrollado en PHP para Facturacion Electronia en Peru y se adapta a cualquier lenguaje de programacion, en cualquier tipo de PC y/o windows sin problemas. El año pasado instalaron mi API en un FOXPRO para D.O.S. y no han tenido problema, solo adaptar sus campos adicionales y solucioonado.

Luis suescún

unread,
Apr 13, 2019, 8:25:46 AM4/13/19
to publice...@googlegroups.com
Decirte que esa es una opción, que desarrolles la api, para que no necesariamente tengas que migrar el sistema, si ya desarrollas php(sino aprender php) puedes hacerla, Irwin Rodríguez esta impartiendo un curso, el zorro peregrino en este mismo foro(busca el hilo), para que lo enganches a tu aplicacion.
De todos modos la opción es desarrollar un backend(el lenguaje que quieras) que puedas instanciar desde tu aplicación.
También en este foro hay hilos que publican herramientas de FE ya desarrolladas para colgar de las aplicaciones vfp.

Jacinto Ovalle

unread,
Apr 13, 2019, 10:06:54 AM4/13/19
to publice...@googlegroups.com
Usa vfp 9.0

HernanCano

unread,
Apr 14, 2019, 4:21:23 PM4/14/19
to Comunidad de Visual Foxpro en Español
Buenas tardes, amigos. Permítanme mi aportación.

Las respuestas de Rodolfo y de Jacinto son tajantes, pero sin decir por qué.
Las respuestas de Jean Pierre y de Luis (y el curso de Irwin) están mejor argumentadas, pero dan otra perspectiva con respecto al alcance de VFP. Jean Pierre nos da alcance a FoxPro DOS, y Luis nos da alcance a lenguajes de programación diferentes.

Agradezco la respuesta positiva de Jean Pierre y Luis, pero necesariamente nos dan el sgte escenario: no se puede lograr con VFP (ni FoxProDOS, ni VFP3-5-6-7-8-9, y muy probablemente ni con VFPa); podría lograse algo (en Fox/VFP) siempre y cuando la solución se base en PHP.

Sin embargo las últimas seis palabras nos "sacan" de Fox/VFP, lo que no era algo considerado en la pregunta inicial.

Por lo tanto los aportes de Jean Pierre, Luis e Irwin, le indican a Juan Miguel que Fox/VFP no alcanza para lograr esta temática.

Personalmente disiento de ello, pero --como apenas me estoy adentrando en el tema-- mis aportes por ahora son a manera de pregunta y/o "testing" más que de "resolver".

Hay un tema en este mismo foro en el que varios colegas están compartiendo lo que van descubriendo, pero necesariamente indica --lo admito-- que se requiere algún conocimiento adicional a VFP. El tema aún no está cerrado ni resuelto en definitiva, por lo tanto se concluye que es tan complejo que algunos colegas prefieren dar las cuatro respuestas vistas aquí y el curso de Irwin.

La conclusión para Juan Miguel puede ser: con los conocimientos adecuados debieras poder lograrlo con cualq de las dos versiones que mencionas: VFP6 o VFP9.
Sin embargo existen algunas DLLs que probablemente (tal vez, quizás, lo más probable, de pronto) sólo te funcionen (o lo hagan mejor) en VFP9 que en el VFP6. 

Mi recomendación que sobre la misma aplicación en VFP6 continúes el desarrollo hacia factura electrónica. Si alguna DLL te informa error de versión (de VFP), pues vuelves a probar con VFP9.

Luis suescún

unread,
Apr 14, 2019, 9:29:05 PM4/14/19
to publice...@googlegroups.com
Gracias Hernán 

Francisco

unread,
Apr 15, 2019, 11:58:49 AM4/15/19
to Comunidad de Visual Foxpro en Español
Bueno compañero yo tengo el sistema hecho en VFP9 y funcionando. Aquí en españa la factura electrónica  no es más que un documento XML generado con las especificaciones que se adjuntan en su página oficial. Este pdf puede ir firmado con un certificado. Así pues tienes dos cuestiones.

1º) ¿Puedo con el fox que tengo en este caso el 6 generar ficheros xml? Yo sinceramente lo desconozco pero si sé que en VFP9 se puede hacer perfectamente o bien pegando el curro con el Texto to .... endtext. o bien utilizar el XmlParser que nos proporciono Victor Espina que facilita en gran medida generar el xml como un objeto.

Por ejemplo así empieza el xml de una factura electronica en españa.
oParser = CREATEOBJECT("XmlParser")
WITH oParser
.indentString = ""
.New()
   
*-- Nodo "fe:Facturae"
.XML.addNode("fe:Facturae")
WITH .XML._Facturae
.addProp("xmlns:ds","http://www.w3.org/2000/09/xmldsig#")
ENDWITH

* 1 **<FileHeader> -------------------------
.XML._Facturae.addNode("FileHeader")

Una vez generado el xml la cuestión es firmarlo. Pues bien puedes liarte todo lo que quieras o bien emplear el programa de autofirma que proporciona la administración para firmar cualquier documento con un certificado en https://firmaelectronica.gob.es/Home/Descargas.html

Ahora solo nos queda que nuestro programa se cerciore que esté instalado el autofirma y firme el xml generado.... yo lo hago así:

IF !EMPTY(thisform.nombre_certificado) AND !EMPTY(thisform.ruta_autofirma)
&& MISMO QUE INICIAL PERO CON EXTENSION XSIG
cArchivo_Final=ALLTRIM(STRTRAN(THISFORM.NOMBRe_archivo,JUSTEXT(THISFORM.NOMBRe_archivo),"XSIG"))
TEXT TO cCOMANDO NOSHOW PRETEXT 1+2+4+8
"<<ADDBS(thisform.ruta_autofirma)>>autofirmaCommandLine.exe" "sign" "-i" "<<THISFORM.NOMBRe_archivo>>" 
"-o" "<<cArchivo_Final>>" 
"-format" "facturae" 
"-store" "windows" "-alias" "<<ALLTRIM(thisform.nombre_certificado)>>"
ENDTEXT
TRY
oShell = createobject("WScript.Shell")
oShell.Run(cComando,0,.t.)
CATCH TO oException
=MESSAGEBOX("Error en la creación del fichero firmado: "+cArchivo_Final)
   IF oException.ErrorNo = 1
      STRTOFILE("Error occurred at: " + TRANSFORM(DATETIME());
         + CHR(13),ALLTRIM(ruta_usuario(2))+"\Errors.log",.T.)
   ENDIF
ENDTRY
ELSE
=MESSAGEBOX("Debe de rellenar el Certificado y la ruta al programa de autofirma")
ENDIF

Esto es para Factura Electrónica en España, desconozco como se hace para otros países.

Saludos y espero haberte ayudado o encaminado...

Jose Antonio Blasco

unread,
Apr 16, 2019, 4:15:31 AM4/16/19
to Comunidad de Visual Foxpro en Español
!!! Que gracia Francisco !!!
Hemos llegado a la misma solución de forma independiente.
Lo único que hago yo, es que copio a la carpeta de mi aplicación, el "autofirmacommandline.exe" y la carpeta "jre" completa, de la carpeta de instalación del AutoFirma.

Un saludo Francisco.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Hernan Serrano

unread,
Apr 16, 2019, 11:14:16 AM4/16/19
to publice...@googlegroups.com
Aca en Costa Rica. Todo se genera para la factura electrónica en VFP9, incluso la conexión con Hacienda.
Lo unico que utilizo es una libreria en C sharp. Para la firma electrónica. Sin embargo unos compañeros de estos foros, ya han trabajado en la firma 100% fox.
Por lo que creo que Factura electrónica es un hecho con VFP.

Saludos.
--
Tico Support S. A.
Tel. (506)8819-4369

Fernando Mora

unread,
Apr 16, 2019, 12:02:06 PM4/16/19
to Comunidad de Visual Foxpro en Español
Todo el proceso de facturación electrónica se lo puede hacer 100% Fox (6,7,8,9), sin necesidad de utilizar librerías hechas en otros lenguajes. Las librerías de CSharp usan las API del sistema operativo, Fox puede acceder directamente a esas API sin problemas. El asunto es que en CSharp ya vienen librerías que hacen el trabajo, en Fox hay que escribir la librería desde cero. 
En lo personal para armar los Xml use TEXT/ENDTEXT, para el firmado del XML use las API de BCrypt, Crypto32 y para firmar con certificados antiguos, Advapi32. Para consumir los web service, use las API de msxml6, CREATEOBJECT("Msxml2.ServerXMLHTTP.6.0"), todos estos temas están publicado en este mismo foro. 
Por lo que he revisado la facturación electrónica de acá en Ecuador, es muy similar al de Colombia, Costa Rica, Perú, España, etc. 

Saludos, desde Machala, Ecuador
Fernando. 

Mario Escudero

unread,
Apr 18, 2019, 9:14:19 PM4/18/19
to Comunidad de Visual Foxpro en Español
Hola.
Acá en Perú, la Sunat pone a disposición de los contribuyentes el SFS (Sistema de Facturacion Sunat) que te crea el XML, te lo devuelve con Firma, el CDR, etc.
Y lo bueno es que no necesitas tener Internet para entregar la factura o boleta electrónica al cliente.
Sólo tienes que crear 5 archivos TXT o un Json y el SFS los detecta y procesa en tres segundos o menos.
Lo que yo hago es leer el XML devuelto y extraigo el Código Hash para imprimirlo al final del ticket de venta.
El cliente puede verificar su factura o boleta sólo con su clave Sol.
Luego, si el cliente quiere su XML y Pdf se le envía por otrs opción.
Si hay algo similar al SFS allá en entonces tienes todo solucionado.
Saludos

Mario Escudero

unread,
Apr 20, 2019, 8:55:34 AM4/20/19
to Comunidad de Visual Foxpro en Español

mhlezama

unread,
Jun 24, 2022, 10:20:05 PM6/24/22
to Comunidad de Visual Foxpro en Español
Saludos Hernán

Soy novato para la factura electrónica en CR, alguna orientación donde empezar.?
Gracias

Reply all
Reply to author
Forward
0 new messages