codigos qr en facturas afip

5,383 views
Skip to first unread message

gat...@gmail.com

unread,
Dec 10, 2020, 9:07:07 AM12/10/20
to Comunidad de Visual Foxpro en Español
alquien me puede ayudar de como convertir el json en base64 y de esto como resultado

JSON con datos del comprobante:

{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}


Texto codificado en el QR:

https://www.afip.gob.ar/fe/qr/?p=eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMC0xMC0xMyIsImN1aXQiOjMwMDAwMDAwMDA3LCJwdG9WdGEiOjEwLCJ0aXBvQ21wIjoxLCJucm9DbXAiOjk0LCJpbXBvcnRlIjoxMjEwMCwibW9uZWRhIjoiRE9MIiwiY3R6Ijo2NSwidGlwb0RvY1JlYyI6ODAsIm5yb0RvY1JlYyI6MjAwMDAwMDAwMDEsInRpcG9Db2RBdXQiOiJFIiwiY29kQXV0Ijo3MDQxNzA1NDM2NzQ3Nn0=

utilizo visual foxpro 6.0

Desde ya muchas gracias


Ricardo Mata

unread,
Dec 10, 2020, 9:50:02 AM12/10/20
to publice...@googlegroups.com

Yo también trabajo con VFP 6 , y esta librería me ha funcionado para  codificar/decodificar Base 64  FixCrypto.fll

 

http://fox.wikis.com/wc.dll?Wiki~Base64~Wiki

 

Espero te sirva

 

Ricardo Mata

Consultor/Implementador   ERP EasyMax®
Venezuela

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/98c2468f-b03b-47bf-a1dd-f723864496c1n%40googlegroups.com.

Gustavo Torres

unread,
Dec 10, 2020, 9:58:29 AM12/10/20
to publice...@googlegroups.com

Y como le indicas que es un string cuando el formato de json tiene comillas todo el tiempo

Busque donde me mandaste …pero hay paginas que ya no están

 

 

Enviado desde Correo para Windows 10

Ricardo Mata

unread,
Dec 10, 2020, 10:18:34 AM12/10/20
to publice...@googlegroups.com

Este enlace me funciono en Firefox, revisa la seguridad para descargar ese tipo de archivos

 

http://www.connectthenet.com/foxpro/FoxCrypto.fll

 

Revisa la documentación en Wiki

 

Respecto a lo del string  yo uso [] para las cadenas que puedan contener comillas dobles

 

Ejemplo

 

Myvar = [{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}]

 

Espero te sirva..

Luis Maria Guayan

unread,
Dec 10, 2020, 3:53:28 PM12/10/20
to Comunidad de Visual Foxpro en Español
Adjunto ejemplo utilizando FoxBarcodeQR v.2.0 -> https://sites.google.com/site/foxbarcode/foxbarcodeqr

Enlace directo a la descarga de FoxBarcodeQR v.2.0 -> https://github.com/VFPX/FoxBarcodeQR/archive/master.zip

con las especificaciones de AFIP -> https://www.afip.gob.ar/fe/qr/especificaciones.asp

*--------------------------------------------------------------------------------------
* Ejemplo de código QR para 
* Factura Electrónica Argentina (AFIP)
* con FoxBarcodeQR v.2.0+
*--------------------------------------------------------------------------------------

SET PROCEDURE TO LOCFILE("FoxBarcodeQR.prg") ADDITIVE

*--- Creo el objeto FoxBarcodeQR
LOCAL loFbc, lcQRImage
m.loFbc = CREATEOBJECT("FoxBarcodeQR")

*-- JSON con los datos requeridos por AFIP
TEXT TO lcString NOSHOW
{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}
ENDTEXT

lcString64 = STRCONV(lcString, 13)

lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

*-- Creo la imagen QR
*-- Opción con mayor control (recomendada)
m.lcQRImage = loFbc.FullQRCodeImage(lcQR, , 200)

*-- Opción automática
*m.lcQRImage = loFbc.FastQRCodeImage(lcQR)

*-- Creo el Formulario
LOCAL loForm AS FORM
m.loForm = CREATEOBJECT("Form")
WITH m.loForm
  .CAPTION = "Ejemplo de QR de AFIP con FoxBarcodeQR"
  .WIDTH = 400
  .HEIGHT = 400
  .BACKCOLOR = RGB(255,255,255)
  .AUTOCENTER = .T.
  .ADDOBJECT("Image1", "Image")
  WITH .Image1
    .WIDTH = 200
    .HEIGHT = 200
    .STRETCH = 0
    .PICTURE = m.lcQRImage
    .TOP = 20
    .LEFT = 20
    .VISIBLE = .T.
  ENDWITH
  .SHOW(1)
ENDWITH

m.loForm = NULL
m.loFbc = NULL

*-- Fin

Luis María Guayán
Tucumán, Argentina
_______________________________

Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Gustavo Torres

unread,
Dec 10, 2020, 3:57:50 PM12/10/20
to publice...@googlegroups.com
Gracias por los datos...mi problema es que en vfp 6 no existe el comando strconv con el parámetro 13

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

tito flores

unread,
Dec 10, 2020, 9:04:32 PM12/10/20
to Comunidad de Visual Foxpro en Español
Elemental, pues colega...  Tienes que actualizar tu version a la VFP 9... Quedarte en la 6, estas al pierde.... Saludos

PabloZa

unread,
Dec 15, 2020, 6:54:39 AM12/15/20
to Comunidad de Visual Foxpro en Español
Luis María. te hago una consulta. en la instrucción TEXT...ENDTEXT como hago para reemplazar los valores constantes por variables ? Saludos

Afpsistemas - Fernando Maggi

unread,
Dec 15, 2020, 7:24:26 AM12/15/20
to publice...@googlegroups.com

Pablo, podes usar SET TEXTMERGE ON y luego pones las variables entre << >>

 

Por ejemplo:

 

SET TEXTMERGE ON

 yy=SQLEXEC(lconex,"select ws from parametro","parametro")

 

SELECT ws

SCAN FOR enviar=1

    TEXT TO nvar2 noshow

    <<parametro.ws>>

    ENDTEXT

Endscan

 

Saludos,

Fernando.

Luis Maria Guayan

unread,
Dec 15, 2020, 11:20:10 AM12/15/20
to Comunidad de Visual Foxpro en Español
Como indica Fernando lo puedes hacer directamente con TEXT ... ENDTEXT con la clausula TEXTMERGE, o directamente ir formando la cadena json añadiendo los datos según la especificación de Afip ( https://www.afip.gob.ar/fe/qr/especificaciones.asp  )

Para hacerlo directamente con TEXT...ENDTEXT mira estos dos artículos que te ayudaran:

-- Evolución del tratamiento de cadenas con TEXTMERGE --

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
 
 

HERNAN D. A.

unread,
Dec 15, 2020, 2:04:38 PM12/15/20
to publicesvfoxpro
Alguien probó las dimensiones del QR como esta en el ejemplo de AFIP ? Con las dimensiones que le dió Luis María va bien al leer con un lector de QR, pero si se achica como el ej. ,al menos el lector mío no lo engancha. Alguna sugerencia ? Gracias


Luis Maria Guayan

unread,
Dec 15, 2020, 3:15:32 PM12/15/20
to Comunidad de Visual Foxpro en Español
Hola, sabés cual es el tamaño y versión del código QR que especifica AFIP? no pude encontrar esa info.

Gracias

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
  

PabloZa

unread,
Dec 15, 2020, 5:08:43 PM12/15/20
to Comunidad de Visual Foxpro en Español
Muchas gracias por sus respuestas. disculpen que hice una pregunta que no tiene relación con el tema en cuestión. Saludos

HERNAN D. A.

unread,
Dec 16, 2020, 8:57:37 AM12/16/20
to publicesvfoxpro
Hola Luis María, disculpá la demora.
Sobre el tema, en las delegaciones de AFIP no saben nada de nada, pero en el Consejo Profesional de Ciencias Económicas de Córdoba
tiene este ejemplo según me pasaron.
Saludos


Ejemplo de comprobante con QR.pdf

Esteban Herrero

unread,
Dec 16, 2020, 9:24:20 AM12/16/20
to publice...@googlegroups.com

Hola Hernán.

Si medis el logo QR q viene en el ejemplo de la FE de Afip tiene un tamaño de 2.4 x 2.4 cm. Yo voy a hacerlo un poquito mas grande de 3,54 x 3,54 q es el tamaño q uso en los Remitos Electrónicos Harina q llevan QR y no he tenido drama en las panaderías cuando reciben y scanean.

Saludos

Esteban

Luis Maria Guayan

unread,
Dec 16, 2020, 9:40:57 AM12/16/20
to publice...@googlegroups.com

Hola Hernán, ese ejemplo es el UNICO que tiene la Afip en https://www.afip.gob.ar/fe/qr/ejemplo-de-comprobante.asp y es el que aparece en todos lados :-(

Viendo el código es Versión 12 (65 x 65 modulos) y no se si es obligatorio esa versión. No hay mas especificaciones.


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CACfzyEBeVH55-Y3J1AZY5GAujf9wddwVAv4a_FHiFz_ZFs2hkQ%40mail.gmail.com.

HERNAN D. A.

unread,
Dec 16, 2020, 9:43:38 AM12/16/20
to publicesvfoxpro
Gracias Luis, tal como decis, Afip siempre tiene 2 problemas para 1 solución, tendremos que ver si sacan algo mas.
Saludos

Afpsistemas - Fernando Maggi

unread,
Dec 16, 2020, 10:40:46 AM12/16/20
to publice...@googlegroups.com

Con respecto a este tema, lo que están es implementándolo en los comprobantes en línea …. Existe alguna norma que obligue a los comprobantes emitidos por los sistemas ¿?

Si es así deberemos modificar el aplicativo de todos nuestros clientes.

 

Saludos,

Fernando.

 

 

De: publice...@googlegroups.com <publice...@googlegroups.com> En nombre de HERNAN D. A.
Enviado el: miércoles, 16 de diciembre de 2020 10:57
Para: publicesvfoxpro <publice...@googlegroups.com>
Asunto: Re: [vfp] Re: codigos qr en facturas afip

 

Hola Luis María, disculpá la demora.

HERNAN D. A.

unread,
Dec 16, 2020, 1:49:13 PM12/16/20
to publicesvfoxpro
Entiendo que según la explicación en el instructivo de cómo se arma el json debe ser para los WS .

Afpsistemas - Fernando Maggi

unread,
Dec 16, 2020, 3:24:30 PM12/16/20
to publice...@googlegroups.com

Hernan, si estoy de acuerdo … pero tenes referencia de a partir de cuando es obligatorio y el número de normativa de AFIP ¿?

HERNAN D. A.

unread,
Dec 17, 2020, 8:55:31 AM12/17/20
to publicesvfoxpro
Hola FERNANDO, todavía no hay fecha cierta, pero según contadores amigos que trabajan en fiscalización AFIP, me dicen que no pasa de Ene / Feb


Acá dicen algo de fines de dic 2020

Saludos





Afpsistemas - Fernando Maggi

unread,
Dec 17, 2020, 11:10:38 AM12/17/20
to publice...@googlegroups.com

Hernán, estaremos atentos y comenzando a realizar pruebas antes que se nos venga todo encima …. Que hermosas fechas para implementar cambios, no ¿?

 

Saludos ¡!

HERNAN D. A.

unread,
Dec 24, 2020, 8:17:17 AM12/24/20
to publice...@googlegroups.com

RESOLUCIÓN GENERAL (AFIP) 4892

Facturación y Registración. Régimen de Factura Electrónica. Obligación de incorporar un código de respuesta rápida “QR”.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxpro+unsubscribe@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/004601d6d48f%242099f1e0%2461cdd5a0%24%40gmail.com.

vcarl...@gmail.com

unread,
Dec 29, 2020, 8:05:07 PM12/29/20
to Comunidad de Visual Foxpro en Español
Buenas Noches, segui el ejemplo que publico Luis María, genera el QR, cree un pequeño formulario donde ingreso los datos necesarios
para generrar el codigo, tambien funciona pero al leer el codigo con un lector que tengo en el celular no muestra nada y si leo un QR
de un ticket fiscal de una impresora de segunda generacion si puedo ver los datos del emisor, en mi caso un supermercado.

La app que use en el celu se llama QR & Barcode Scanner

Este es el codigo

LOCAL fFecha as String, nCuit as Integer, nPtovta as Integer, nNrocpte as Integer, nTipocpte as Integer,;
   nImporte as Decimal, cMoneda as String, nCotizacion as Decimal, nTipodocrec as Integer, nNrodocrec as Integer,;
   cTipocodaut as String, nCodaut as Integer

STORE SPACE(0) TO fFecha, cMoneda, cTipocodaut
STORE 0 TO nCuit, nPtovta, nNrocpte, nTipocpte, nTipodocrec, nNrodocrec, nCodaut
STORE 0.00 TO nImporte, nCotizacion


SET PROCEDURE TO LOCFILE("FoxBarcodeQR.prg") ADDITIVE

*--- Creo el objeto FoxBarcodeQR
LOCAL loFbc, lcQRImage
m.loFbc = CREATEOBJECT("FoxBarcodeQR")

*-- JSON con los datos requeridos por AFIP
fFehca = STR(YEAR(ThisForm.txt_fecha.Value),4)+'-'+STRTRAN(STR(MONTH(ThisForm.txt_fecha.Value),2),' ','0')+'-'+STRTRAN(STR(DAY(ThisForm.txt_fecha.Value),2),' ','0')
nCuit = ThisForm.txt_cuit.Value
nPtovta = ThisForm.txt_ptovta.Value
nNroCpte = ThisForm.txt_nrocpte.Value
nTipocpte = ThisForm.txt_tipocpte.Value
nImporte = ThisForm.txt_importe.Value
cMoneda = ALLTRIM(ThisForm.txt_moneda.Value)
nTipodocrec = ThisForm.txt_tipodocreceptor.Value
nNrodocrec = ThisForm.txt_nrodocreceptor.Value
cTipocodaut = ThisForm.txt_tipoautorizacion.Value   
nCodaut = ThisForm.txt_codigocae.Value

TEXT TO lcString NOSHOW
   {"ver":1,"fecha":<<fFecha>>,"cuit":<<nCuit>>,"ptoVta":<<nPtovta>>,"tipoCmp":<<nTipocpte>>,
    "nroCmp":<<nNrocpte>>,"importe":<<nImporte>>,"moneda":<<cMoneda>>,"ctz":<<nCotizacion>>,
    "tipoDocRec":<<nTipodocrec>>,"nroDocRec":<<nNrodocrec>>,"tipoCodAut":<<Tipocodaut>>,"codAut":<<nCodaut>>}

ENDTEXT

lcString64 = STRCONV(lcString, 13)

lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

*-- Creo la imagen QR
*-- Opción con mayor control (recomendada)
m.lcQRImage = loFbc.FullQRCodeImage(lcQR, , 200)

*-- Opción automática
*m.lcQRImage = loFbc.FastQRCodeImage(lcQR)

ThisForm.image1.Picture = m.lcQRImage

RELEASE fFecha, nCuit, nPtovta, nNrocpte, nTipocpte, nImporte, cMoneda, nCotizacion, nTipodocrec, nNrodocrec, cTipocodaut, nCodaut

ThisForm.Refresh

y esto uso para imprimir
PRIVATE poFbc, codQR

poFbc = CREATEOBJECT("FoxBarcodeQR")
codQR = ThisForm.image1.Picture

REPORT FORM FoxBarcodeQR PREVIEW

Tambien imprimi la factura de ejemplo del afip y lee ese codigo pero dice que es un codigo generico.

Gracias por su ayuda o consejos.

Carlos Veron


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/004601d6d48f%242099f1e0%2461cdd5a0%24%40gmail.com.

Luis Maria Guayan

unread,
Dec 30, 2020, 6:18:37 AM12/30/20
to publice...@googlegroups.com

Buen día Carlos, puedes adjuntar imagen del código en el formulario y del Informe?

En el objeto imagen del Informe, como le indicas la imagen a utilizar? Veo que estás instanciando dos veces a la clase FoxBarcodeQR.

Saludos,


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/cf380801-912d-4b53-9be8-2ab696b1fac0n%40googlegroups.com.

vcarl...@gmail.com

unread,
Dec 30, 2020, 7:01:24 AM12/30/20
to Comunidad de Visual Foxpro en Español
Buenos dias Luis Maria, gracias por responder. Adjunto el codigo del formulario
que lo genere desde el examinador de clases. Esta en VFP 9 SP2

Saludos
Carlos Veron


genera-qr-afip.prg

vcarl...@gmail.com

unread,
Dec 30, 2020, 7:05:20 AM12/30/20
to Comunidad de Visual Foxpro en Español
Me olvide del reporte estan comprimodos con 7zip
Reporte.7z

Luis Maria Guayan

unread,
Dec 30, 2020, 7:40:31 AM12/30/20
to publice...@googlegroups.com

Carlos, te retorno los  archivos corregidos.

En el objeto Imagen del Informe debes invocar al método igual que en el objeto imagen del formulario.

Y si al objeto le indicas 200 x 200 pixeles, es conveniente que en el informe le indiques el mismo tamaño 200 x 200 pixeles

Saludos,


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Reporte.zip

vcarl...@gmail.com

unread,
Dec 30, 2020, 11:55:52 AM12/30/20
to Comunidad de Visual Foxpro en Español
Buenas tardes, lamentablemete no logro poder leer el codigo que genero e imprimo.
No se si es el lector que tengo en mi celular, la impresora no creo porque imprimo la factura pdf de ejemplo del afip y lo puedo leer.
Seguire intentando hasta que funciones.
Muchas gracias. Que tengan un buen 2021.

Saludos
Carlos Veron

Hector Kuhn

unread,
Dec 30, 2020, 1:35:47 PM12/30/20
to publicesvfoxpro
Buenas tardes, fijate el nombre de la variable fFehca
en el text usas fFecha

fFehca = STR(YEAR(THISFORM.txt_fecha.VALUE),4)+'-'+STRTRAN(STR(MONTH(THISFORM.txt_fecha.VALUE),2),' ','0')+'-'+STRTRAN(STR(DAY(THISFORM.txt_fecha.VALUE),2),' ','0')


TEXT TO lcString NOSHOW
   {"ver":1,"fecha":<<fFecha>>,"cuit":<<nCuit>>,"ptoVta":<<nPtovta>>,"tipoCmp":<<nTipocpte>>,
    "nroCmp":<<nNrocpte>>,"importe":<<nImporte>>,"moneda":<<cMoneda>>,"ctz":<<nCotizacion>>,
    "tipoDocRec":<<nTipodocrec>>,"nroDocRec":<<nNrodocrec>>,"tipoCodAut":<<Tipocodaut>>,"codAut":<<nCodaut>>}
ENDTEXT
 

Saludos

Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/fa5f4a59-c3fc-406e-baad-6ff6ad13b7c8n%40googlegroups.com.

Luis Maria Guayan

unread,
Dec 30, 2020, 2:25:26 PM12/30/20
to publice...@googlegroups.com

Te adjunto las imágenes del ejemplo y lo leo correctamente con el teléfono con la App: Lector de códigos QR y barras (español) by TeaCapps

app

qr


Creo que tu problema es el tamaño, debería coincidir en pixeles el tamaño del objeto imagen con el de la imagen generada, para ello es el 3er. parámetro del método poFbc.FullQRCodeImage(pcQR, , 200)

Saludos


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Hugo

unread,
Dec 31, 2020, 7:28:53 AM12/31/20
to Comunidad de Visual Foxpro en Español
no se si es mi caso, pero con todos los ejemplos mostrados aca, escaneando el codigo QR, no va a ningun lado, no muestra si es valido o no, solo se dirige al sitio de las especificaciones del QR de AFIP.

Marcelo Rodriguez

unread,
Jan 1, 2021, 6:14:47 PM1/1/21
to Comunidad de Visual Foxpro en Español
Espectacular Luis Maria, me anduvo perfecto con la generacion del qr AFIP, ahora tengo un problema: 

el que me genera es un poco mas corto que el de la AFIP

el mio termina asi: 

ibnJvRG9jUmVjIjoyMDI5NjY0NjIxMSwidG

el de la afip:

ibnJvRG9jUmVjIjoyMDI5NjY0NjIxMSwidGlwb0NvZEF1dCI6IkUiLCJjb2RBdXQiOjcwNTI4NjM1ODAyMTEyfQ==

Sabes cual es el motivo????

Desde ya muchas Gracias


El jueves, 10 de diciembre de 2020, 17:53:28 (UTC-3), Luis Maria Guayan escribió:
Adjunto ejemplo utilizando FoxBarcodeQR v.2.0 -> https://sites.google.com/site/foxbarcode/foxbarcodeqr

Enlace directo a la descarga de FoxBarcodeQR v.2.0 -> https://github.com/VFPX/FoxBarcodeQR/archive/master.zip

con las especificaciones de AFIP -> https://www.afip.gob.ar/fe/qr/especificaciones.asp

*--------------------------------------------------------------------------------------
* Ejemplo de código QR para 
* Factura Electrónica Argentina (AFIP)
* con FoxBarcodeQR v.2.0+
*--------------------------------------------------------------------------------------

SET PROCEDURE TO LOCFILE("FoxBarcodeQR.prg") ADDITIVE

*--- Creo el objeto FoxBarcodeQR
LOCAL loFbc, lcQRImage
m.loFbc = CREATEOBJECT("FoxBarcodeQR")

*-- JSON con los datos requeridos por AFIP
TEXT TO lcString NOSHOW
Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
  

Marcelo Rodriguez

unread,
Jan 1, 2021, 6:15:18 PM1/1/21
to Comunidad de Visual Foxpro en Español

David Castelari

unread,
Jan 2, 2021, 10:16:30 AM1/2/21
to Comunidad de Visual Foxpro en Español
Hola Hugo,
Eso es CORRECTO!....La AFIP publico las especificaciones (para que los desarrolladores vayan probando-haciendolo), pero NI la URL de consulta NI las APPs estan todavia operativas.
Lo importante es que pruebes con un LECTOR de QR con cualquier telefono, y veas que la información es correcta.

Saludos,
Sergio Castellari
Descargá la Interface Teresa 2.14.017 de acceso a WebServices de AFIP

Gustavo Torres

unread,
Jan 2, 2021, 11:28:54 AM1/2/21
to publice...@googlegroups.com
Yo lo achique y no tuve problema

Luis Maria Guayan

unread,
Jan 2, 2021, 12:06:18 PM1/2/21
to publice...@googlegroups.com

Creo que el problema es como estas asignado el valor a la variable con la cadena JSON y solo está tomando 256 caracteres y eso es lo que está codificando

No tengo VFP6 para probar si la instrucción TEXT TO ... ENDTEXT tiene alguna linitación en el largo de la cadena. Lo que puede probar es ir agregando a la variable, la suma de la variable mas el tecto, por ej:

lcJson = ""

lcJson = lcJson + [{"ver":1,]
lcJson = lcJson + ["fecha":"2020-10-13",]
lcJson = lcJson + ["cuit":30000000007,]

...

...
lcJson = lcJson + ["codAut":70417054367476}]


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/156ae019-d28b-4173-bff4-d5faada425e8o%40googlegroups.com.

Gustavo Torres

unread,
Jan 2, 2021, 12:10:49 PM1/2/21
to publice...@googlegroups.com
Así es.. yo tengo vfp6 y lo fui uniendo de a pedazos y me lo toma correctamente 

Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/10268dd1-7e6b-1612-65d4-25285a4b28ac%40gmail.com.

PabloZa

unread,
Jan 8, 2021, 6:58:23 AM1/8/21
to Comunidad de Visual Foxpro en Español
Hola. Tengo una duda con respecto a donde me tiene que llevar el codigo QR cuando lo escaneo. Yo lo escaneo y me lleva a WWW.AFIP.GOB.AR, al apartado "Código QR". es correcto? Saludos

Afpsistemas - Fernando Maggi

unread,
Jan 8, 2021, 7:01:46 AM1/8/21
to publice...@googlegroups.com

Pablo buen día,

 

aparentemente no está en producción la página que indicará si la factura es válida.

 

Saludos,

Fernando.

 

 

De: publice...@googlegroups.com <publice...@googlegroups.com> En nombre de PabloZa
Enviado el: viernes, 8 de enero de 2021 8:58
Para: Comunidad de Visual Foxpro en Español <publice...@googlegroups.com>
Asunto: Re: [vfp] Re: codigos qr en facturas afip

 

Hola. Tengo una duda con respecto a donde me tiene que llevar el codigo QR cuando lo escaneo. Yo lo escaneo y me lleva a WWW.AFIP.GOB.AR, al apartado "Código QR". es correcto? Saludos

David Castelari

unread,
Jan 8, 2021, 7:07:20 AM1/8/21
to LISTA Visual FOX
Hola Pablo,

Si es así como decís...por ahora...ya que todavía no está disponible la URL de consulta.

Saludos,
Sergio Castellari

PabloZa

unread,
Jan 8, 2021, 9:30:57 AM1/8/21
to Comunidad de Visual Foxpro en Español
Gracias Sergio.

Jorge

unread,
Jan 8, 2021, 2:33:00 PM1/8/21
to publicesvfoxpro
hola a todos : 

Basandome en los mensajes anteriores  ( me han sido de gran ayuda , gracias ) intente hacer  la prueba de generar la imagen del codbar de esta manera :

LOCAL fFecha as String, nCuit as Integer, nPtovta as Integer, nNrocpte as Integer, nTipocpte as Integer,;
   nImporte as Decimal, cMoneda as String, nCotizacion as Decimal, nTipodocrec as Integer, nNrodocrec as Integer,;
   cTipocodaut as String, nCodaut as Integer

STORE SPACE(0) TO fFecha, cMoneda, cTipocodaut
STORE 0 TO nCuit, nPtovta, nNrocpte, nTipocpte, nTipodocrec, nNrodocrec, nCodaut
STORE 0.00 TO nImporte, nCotizacion

SET PROCEDURE TO ( Sys(5) + Curdir() + "FoxBarcodeQR.prg" ) ADDITIVE


*--- Creo el objeto FoxBarcodeQR
LOCAL loFbc as Object
Local lcQRImage, lcQR as string

loFbc = CREATEOBJECT("FoxBarcodeQR")


*-- JSON con los datos requeridos por AFIP
fFehca = STR(YEAR(ThisForm.txtfecha.Value),4)+'-'+STRTRAN(STR(MONTH(ThisForm.txtfecha.Value),2),' ','0')+'-'+STRTRAN(STR(DAY(ThisForm.txtfecha.Value),2),' ','0')
nCuit = ThisForm.txtcuit.Value
nPtovta = ThisForm.txtpventa.Value
nNroCpte = ThisForm.txtncomp.Value
nTipocpte = ThisForm.txttipocomp.Value
nImporte = ThisForm.txtimporte.Value
cMoneda = "pesos"
nTipodocrec = "dni"
nNrodocrec = "12546789"
cTipocodaut = "CAE"  
nCodaut = "01233665478"


TEXT TO lcString NOSHOW
   {"ver":1,"fecha":<<fFecha>>,"cuit":<<nCuit>>,"ptoVta":<<nPtovta>>,"tipoCmp":<<nTipocpte>>,
    "nroCmp":<<nNrocpte>>,"importe":<<nImporte>>,"moneda":<<cMoneda>>,"ctz":<<nCotizacion>>,
    "tipoDocRec":<<nTipodocrec>>,"nroDocRec":<<nNrodocrec>>,"tipoCodAut":<<Tipocodaut>>,"codAut":<<nCodaut>>}
EndText


lcString64 = STRCONV(lcString, 13)

lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

*-- Creo la imagen QR
*-- Opción con mayor control (recomendada)
lcQRImage = loFbc.FullQRCodeImage(lcQR, , 200)


MessageBox( "imagen generada" )


*-- Opción automática
*m.lcQRImage = loFbc.FastQRCodeImage(lcQR)

cuando ejecuto este codigo me sale el error :
" propiedad FullQRCodeImage not found " , siendo que tengo el archivo  FoxBarcodeQR.prg y 
barcodelibrary.dll en el mismo directorio desde donde ejecuto el formualrio de prueba ( si no fuese asi , la linea 
del set procedure me daria error ) 
agradeceria si me pueden decir cual puede ser el error . gracias 



Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/b4fd4c8c-2167-4dfe-aea4-64d6898ee31an%40googlegroups.com.

Luis Maria Guayan

unread,
Jan 8, 2021, 7:46:02 PM1/8/21
to Comunidad de Visual Foxpro en Español
A partir de la versión 2.0 de FoxBarcodeQR utiliza otra librería DLL: QRCodeLib.dll que debe estar en la carpeta de tu aplicación 

Te aconsejo que descargues la última versión de FoxBarcodeQR v.2.00 de: https://github.com/VFPX/FoxBarcodeQR/tree/master/FoxBarcodeQR_v_2_00

Y mires la documentación en:

Saludos

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
 
 

Jorge

unread,
Jan 12, 2021, 6:03:18 PM1/12/21
to publicesvfoxpro
Gracias por la ayuda Luis :
Hice lo que me explicaste . 
Probe de hacer un prg primero usando directamente los datos de ejemplo que puso Afip en la documentacion :

Texto codificado en el QR:

https://www.afip.gob.ar/fe/qr/?p=eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMC0xMC0xMyIsImN1aXQiOjMwMDAwMDAwMDA3LCJwdG9WdGEiOjEwLCJ0aXBvQ21wIjoxLCJucm9DbXAiOjk0LCJpbXBvcnRlIjoxMjEwMCwibW9uZWRhIjoiRE9MIiwiY3R6Ijo2NSwidGlwb0RvY1JlYyI6ODAsIm5yb0RvY1JlYyI6MjAwMDAwMDAwMDEsInRpcG9Db2RBdXQiOiJFIiwiY29kQXV0Ijo3MDQxNzA1NDM2NzQ3Nn0=


JSON con datos del comprobante:

{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}


Este es el prg de prueba :
-------------------------------------------------------------

SET PROCEDURE TO ( Sys(5) + Curdir() + "FoxBarcodeQR.prg" ) ADDITIVE

*--- Creo el objeto FoxBarcodeQR
LOCAL loFbc as Object
Local lcQRImage, lcQR as string
loFbc = CREATEOBJECT("FoxBarcodeQR")
Local lRutaArchivoObtenido As String
lRutaArchivoObtenido = Sys(5) + Curdir()+"Barcodeqr"

Text to lcstring2 noshow
    {"ver":1,"fecha":"2020-10-        13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"
     nroDocRec":20000000001,"tipoCodA  ut":"E","codAut":70417054367476}
EndText


lcString64 = STRCONV(lcString2, 13)


lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

lcQRImage = loFbc.FullQRCodeImage(lcQR, lRutaArchivoObtenido, 200)

MessageBox( "imagen generada" )
---------------------------------------------------------------------
El problema que yo tengo es que obtengo la imagen , pero cuando la escaneo , el resultado que me sale en la pantalla del celular no coincide 
con el texto codificado del ejemplo ( supongo que si uso los valores de JSON del ejemplo de 
Afip , el escaneo me tiene que dar igual que el resultado del ejemplo ).
Para la lectura uso el programa Escaner QR .
gracias 


HernanCano

unread,
Jan 12, 2021, 6:10:59 PM1/12/21
to Comunidad de Visual Foxpro en Español
Colega ciclon:

¿Qué pasa si cambias 

lcString64 = STRCONV(lcString2, 13) 

por

lcString64 = lcString2 ?????????????????????

Sólo por probar.....


El martes, 12 de enero de 2021 a la(s) 18:03:18 UTC-5, ciclon... escribió:
Gracias por la ayuda Luis :
Este es el prg de prueba :

HernanCano

unread,
Jan 12, 2021, 6:41:27 PM1/12/21
to Comunidad de Visual Foxpro en Español
Amigo ciclo:
He probado tu rutina y obtengo un QR cuya info concuerda con lo que muestras como "Texto codificado en el QR".

Pero para que pudiera concordar, debí reeditar el texto del JSON; me quedó así:

Text to lcstring2 noshow pretext 15
    {"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodA  ut":"E","codAut":70417054367476}
EndText

Explico:
1. Todo el texto va en una sola línea.
2. El texto que tú muestras tiene un espacio de unos seis o siete caracteres antes del 13 de la fecha: los quité.
3. El parámetro nroDocRec lo tenías con un retorno de carro chr(13): lo quité.

Verifica en tu escenario y nos cuentas........

Jorge

unread,
Jan 12, 2021, 6:49:14 PM1/12/21
to publicesvfoxpro
gracias 

HernanCano :

De esta ,manera que me decis cuando leo el qr obtenido , me da el string lcString2 tal cual lo puse .
Por lo que entiendo AFip pide que al escanear el QR , para los datos de lcString2 se obtenga :


A mi al leer la imagen obtenida me da algo parecido en formato , pero no con los valores que requiere Afip segun el JSON.  gracias  

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Luis Maria Guayan

unread,
Jan 12, 2021, 7:00:16 PM1/12/21
to Comunidad de Visual Foxpro en Español

Algo mal está en tu cadena, y agrega algunos espacios ( antes del dia 13 en la fecha tienes espacios)

Tomé los datos del ejemplo de la AFIP y es excatamente igual al de la cadena leida

CLEAR

lcJson = []
lcJson = lcJson + [{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,]
lcJson = lcJson + ["moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}]

lcJson64 = []
lcJson64 = lcJson64 + [eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMC0xMC0xMyIsImN1aXQiOjMwMDAwMDAwMDA3LCJwdG9WdGEiOjEwLCJ0aXBvQ21wIjoxLCJucm]
lcJson64 = lcJson64 + [9DbXAiOjk0LCJpbXBvcnRlIjoxMjEwMCwibW9uZWRhIjoiRE9MIiwiY3R6Ijo2NSwidGlwb0RvY1JlYyI6ODAsIm5yb0RvY1JlYyI]
lcJson64 = lcJson64 + [6MjAwMDAwMDAwMDEsInRpcG9Db2RBdXQiOiJFIiwiY29kQXV0Ijo3MDQxNzA1NDM2NzQ3Nn0=]


? STRCONV(lcJson,13)
?
? STRCONV(lcJson64,14)
?
? "Comparo y son IGUALES"
?
? lcJson64 = STRCONV(lcJson,13)
?
? lcJson = STRCONV(lcJson64,14)

* Esta es la cadena leida de la imagen
*
* eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMC0xMC0xMyIsImN1aXQiOjMwMDAwMDAwMDA3LCJwdG
* 9WdGEiOjEwLCJ0aXBvQ21wIjoxLCJucm9DbXAiOjk0LCJpbXBvcnRlIjoxMjEwMCwibW
* 9uZWRhIjoiRE9MIiwiY3R6Ijo2NSwidGlwb0RvY1JlYyI6ODAsIm5yb0RvY1JlYyI
* 6MjAwMDAwMDAwMDEsInRpcG9Db2RBdXQiOiJFIiwiY29kQXV0Ijo3MDQxNzA1NDM2NzQ3Nn0=


Recuerda que los datos están convertidos a base64, por lo que una vez ledos lo debes volver a convertir con STRCONV()


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com


Jorge

unread,
Jan 13, 2021, 8:41:47 AM1/13/21
to publicesvfoxpro
gracias por la ayuda ! era eso 

Jorge

unread,
Jan 13, 2021, 3:53:42 PM1/13/21
to publicesvfoxpro
Hice este programa tratando de usar variables y concatenandolas con los string fijos del JSON , pero no llego a los valores del ejemplo de Afip ( al escanear el qr no me da el valor de la URL que esta en als especificaciones ).

Mi codigo es este : 

LOCAL fFecha as String, nCuit as Integer, nPtovta as Integer, nNrocpte as Integer, nTipocpte as Integer,;
   nImporte as Decimal, cMoneda as String, nCotizacion as Decimal, nTipodocrec as Integer, nNrodocrec as Integer,;
   cTipocodaut as String, nCodaut as Integer

STORE SPACE(0) TO fFecha, cMoneda, cTipocodaut
STORE 0 TO nCuit, nPtovta, nNrocpte, nTipocpte, nTipodocrec, nNrodocrec, nCodaut
STORE 0.00 TO nImporte, nCotizacion

SET PROCEDURE TO ( Sys(5) + Curdir() + "FoxBarcodeQR.prg" ) ADDITIVE

*--- Creo el objeto FoxBarcodeQR
LOCAL loFbc as Object
Local lcQRImage, lcQR as string
loFbc = CREATEOBJECT("FoxBarcodeQR")
Local lRutaArchivoObtenido As String
lRutaArchivoObtenido = Sys(5) + Curdir()+"Barcodeqr"


*-- JSON con los datos requeridos por AFIP
    fFecha = "2020-10-13"
nCuit = 30000000007
nPtovta = 10
nNroCpte = 94
nTipocpte = 1
nImporte = 12100
cMoneda = "DOL"
nTipodocrec = 80
nNrodocrec = 20000000001
Tipocodaut = "E"  
nCodaut = 70417054367476
nCotizacion = 65

lcStringQr = []


lcStringQr = lcStringQr + ['{"ver":1,"fecha":'+fFecha+',"cuit":'+ncuit+',"ptovta":'+nprovta+',"tipocmp":'+ntipocpte+',"nroCmp":'+nNrocpte+',"importe":'+nImporte+]

lcStringQr = lcStringQr + [',"moneda":'+cMoneda+',"ctz":'+nCotizacion+',"tipoDocRec":'+nTipodocrec+',"nroDocRec":'+nNrodocrec+]

lcStringQr = lcStringQr + [',"tipoCodAut":'+Tipocodaut+',"codAut":'+nCodaut ]


lcString64 = STRCONV(lcStringQr, 13)


lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

lcQRImage = loFbc.FullQRCodeImage(lcQR, lRutaArchivoObtenido, 200)

MessageBox( "imagen generada" )

Tambien trate de hacerlo con las variables encerradas entre << >> , pero no llego al valor del ejemplo .

si alguien me puede ayudar estare muy agradecido 

Luis Maria Guayan

unread,
Jan 13, 2021, 5:28:00 PM1/13/21
to Comunidad de Visual Foxpro en Español
Jorge, tienes serios problemas en el manejo de variables, tipos de variables y cadenas de texto.

con tu mismo ejemplo:
lcStringQr = []
lcStringQr = lcStringQr + ['{"ver":1,"fecha":'+fFecha+',"cuit":'+ncuit+', "ptovta":'+nprovta+  ',"tipocmp":'+ntipocpte+',"nroCmp":'+nNrocpte+',"importe":'+nImporte+]
lcStringQr = lcStringQr + [',"moneda":'+cMoneda+',"ctz":'+nCotizacion+',"tipoDocRec":'+nTipodocrec+',"nroDocRec":'+nNrodocrec+]
lcStringQr = lcStringQr + [',"tipoCodAut":'+Tipocodaut+',"codAut":'+nCodaut ]

*-- Mira el contenido de lcStringQr
? lcStringQr

Eso es lo que estás codificando, no los valores de las variables que definiste

Deberías trabajar algo como lo que sigue:

lcStringQr = []
lcStringQr = lcStringQr + [{"ver":1,"fecha":"] + fFecha + [",]
lcStringQr = lcStringQr + ["cuit":"] + TRANSFORM(ncuit) + [",]
lcStringQr = lcStringQr + ["ptovta":] + TRANSFORM(nPtovta)  + [,] 
....
*** agregar lo que falta
....
lcStringQr = lcStringQr + ["codAut":] + TRANSFORM( nCodaut  ) + [}]  

*-- Mira el contenido de lcStringQr
? lcStringQr

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
  

Jorge

unread,
Jan 13, 2021, 8:10:13 PM1/13/21
to publicesvfoxpro
ahi lo pude hacer . Gracias 

Marcelo Rodriguez

unread,
Jan 14, 2021, 5:11:46 AM1/14/21
to publice...@googlegroups.com

El importe con decimales, como va?

norberto.ma...@gmail.com

unread,
Jan 14, 2021, 10:34:59 AM1/14/21
to Comunidad de Visual Foxpro en Español
Hola Grupo, pregunta. Ya se puede implementar ó hay que esperar a Marzo para agregar el código QR?
Gracias

Norberto Alvarez

Luis Maria Guayan

unread,
Jan 14, 2021, 1:33:51 PM1/14/21
to publice...@googlegroups.com

Las facturas electrónicas emitidas desde el sitio de la AFIP a partir del 1ero de Enero ya lo tienen impreso.


que leído es:

https://www.afip.gob.ar/fe/qr/?p=eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMS0wMS0wMiIsImN1aXQiOjI3MTY4Njk1NTY1LCJwdG9WdGEiOjIsInRpcG9DbXAiOjExLCJucm9DbXAiOjYsImltcG9ydGUiOjMwMDAwLCJtb25lZGEiOiJQRVMiLCJjdHoiOjEsInRpcG9Eb2NSZWMiOjgwLCJucm9Eb2NSZWMiOjMwNzEwOTg2MjAzLCJ0aXBvQ29kQXV0IjoiRSIsImNvZEF1dCI6NzEwMTU3NjU5OTQ2MzJ9

y convertido a Json es:

{"ver":1,"fecha":"2021-01-02","cuit":27168695565,"ptoVta":2,"tipoCmp":11,"nroCmp":6,"importe":30000,"moneda":"PES","ctz":1,"tipoDocRec":80,"nroDocRec":30710986203,"tipoCodAut":"E","codAut":71015765994632}


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Marisa Molina

unread,
Jan 14, 2021, 3:24:33 PM1/14/21
to Comunidad de Visual Foxpro en Español
Buenos dias! yo consulté a AFIP si se puede implementar antes y les transmito la respuesta:


Le informamos que el artículo N° 5 de la resolución general 4892/2020, indica que las disposiciones de la resolución entrarán en vigencia el día de su publicación en el Boletín Oficial y resultarán de aplicación desde ese mismo día; excepto que se trate de sujetos que tramiten la autorización de emisión de comprobantes electrónicos mediante el intercambio de información basado en el “WebService”, en cuyo caso la obligatoriedad de incorporar el código “QR”, deberá verificar el cronograma adjuntado en la respuesta anterior.



Ahora yo les quería consultar si saben cuál es el universo de comprobantes electronicos alcanzados por el código QR?.Gracias!

David Castelari

unread,
Jan 14, 2021, 4:02:27 PM1/14/21
to LISTA Visual FOX
Hola Marisa,

Según mi interpretación, son todos los comprobantes electrónicos (facturas, NC, ND) y en todas sus clases (A, B, C y M)
Saludos, Sergio

"La información contenida en este correo electrónico es privada y confidencial y está dirigida únicamente a sus destinatarios. La distribución o copia de este mensaje sin la debida autorización está estrictamente prohibida. La distribución y/o difusión y/o copia no autorizada de la información contenida en este correo será pasible de acciones legales por parte de la compañía emisora".

"The content of this email is confidential and intended for the recipient specified in the message only. It is strictly forbidden to share or copy any part of this message with any third party without a written consent of the sender. The unauthorized sharing or copying of the content of this email may lead to legal actions".

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Esteban Herrero

unread,
Jan 14, 2021, 4:19:28 PM1/14/21
to publice...@googlegroups.com

Vigencia y aplicación

Las disposiciones de la Resolución General 4892/2020 entrarán en vigencia el día 24 de diciembre de 2020 y resultarán de aplicación desde ese mismo día; excepto para sujetos que tramiten la autorización de emisión de comprobantes electrónicos mediante el intercambio de información basado en el “WebService”, en cuyo caso la obligatoriedad de incorporar el código “QR” será conforme se indica a continuación:

  1. Para responsables inscriptos en el impuesto al valor agregado que hayan efectuado operaciones (gravadas, exentas y no gravadas) declaradas en el impuesto durante el año calendario 2020 por un importe total neto de impuestos y tasas:

    • Superior a $ 10.000.000: desde el 1 de marzo de 2021.
    • Superior a $ 2.000.000 e inferior o igual a $ 10.000.000: desde el 1 de abril de 2021.
    • Superior a $ 500.000 e inferior o igual a $ 2.000.000: desde el 1 de mayo de 2021.
  2. Para el resto de los responsables inscriptos en el impuesto al valor agregado, sujetos exentos ante dicho gravamen y pequeños contribuyentes inscriptos en el Monotributo: a partir del 1 junio de 2021.
"La información contenida en este correo electrónico es privada y confidencial y está dirigida únicamente a sus destinatarios. La distribución o copia de este mensaje sin la debida autorización está estrictamente prohibida. La distribución y/o difusión y/o copia no autorizada de la información contenida en este correo será pasible de acciones legales por parte de la compañía emisora".

"The content of this email is confidential and intended for the recipient specified in the message only. It is strictly forbidden to share or copy any part of this message with any third party without a written consent of the sender. The unauthorized sharing or copying of the content of this email may lead to legal actions".
--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Marisa Molina

unread,
Jan 14, 2021, 4:22:28 PM1/14/21
to publice...@googlegroups.com
Gracias David!!.

Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAM-OFxCikP7gFUwyYbnHC-WTDyJWXyYnZsR4JaUXozSn%3Dzzm6w%40mail.gmail.com.

marcelo lopez

unread,
Jan 14, 2021, 7:45:34 PM1/14/21
to publicesvfoxpro
hola : la duda que tengo con el tema es : Por lo leido a partir del 1 de marzo se empieza a implememtar el QR  en forma escalonada segun el monto anual de factuaracion. Pregunto : . este codbar va a reemplazar el codigo de barras  anterior o se tienen que imprimir ambos ?? . No quiero correr el riesgo de reemplazarlo  y que luego los clientes empiecen a protestar . saludos 



Javier Otero (DAS Informáticos)

unread,
Jan 15, 2021, 6:54:33 AM1/15/21
to publice...@googlegroups.com

Buen día Grupo.

Como dijo Luis Maria, la AFIp comenzó a implementarlos el 1 de enero, ahora, yo le el código QR y me navega a una pagina que no da ninguna información mas que indicar como se implementa el Código QR.

Les pasa lo mismo?

 

Javier Otero/

Jorge

unread,
Jan 19, 2021, 7:18:35 AM1/19/21
to publicesvfoxpro
hola a todos : pude lograr generar la imagen con el QR segun el ejemplo que esta en la documentacion de Afip basandome en lo visto en los posteos anteriores..
El problema que tengo es que cuando escaneo la imagen generada usando escaner QR desde mi celular  la leo perfectamente y llego a la URL del ejemplo de AFip . El problema es que al pegar la imagen en un reporte ( la pego en un picture bound control ) las pocas veces que al escanear la lee correctamente es 
si conservo el tamaño real en que fue generada ( 5 cm x 5 cm ) . Si la achico proporcionalmente ( 3,5 x 3.5 ) no la puedo leer .
Una vez que armo el string con el formato JSON  la logica que empleo es esta :

lcStringEnBase64 = Strconv(lcStringQr, 13)

lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcStringEnBase64

lcQRImage = loCodigobarraqr.FullQRCodeImage(lcQR, lcArchivoImagenCodigoQr, 200)

alguno me puede decir cual es el error que puedo estar cometiendo ? gracias 

Jorge

unread,
Jan 19, 2021, 8:35:57 AM1/19/21
to publicesvfoxpro
hola a todos : pude lograr generar la imagen con el QR segun el ejemplo que esta en la documentacion de Afip basandome en lo visto en los posteos anteriores..
El problema que tengo es que cuando escaneo la imagen generada usando escaner QR desde mi celular  la leo perfectamente y llego a la URL del ejemplo de AFip . El problema es que al pegar la imagen en un reporte ( la pego en un picture bound control ) las pocas veces que al escanear la lee correctamente es 
si conservo el tamaño real en que fue generada ( 5 cm x 5 cm ) . 
Probe de generar la imagen cambiando el tamaño de pixeles en la funcion  FullQRCodeImage ( puse el tercer parametro en 100 en vez de 200 )
ahi logre generar la imagen del qr con el tamaño del ejemplo de factura de Afip ( es alrededor de 2 cm ) , pero si la intento leer con el lector desde el celular 
no me la lee correctamente .
En resumen , de la unica manera que pude hacerlo andar es usando el tamaño de imagen de 5 cm x 5 cm 
Este es el codigo que genera la imagen :


lcStringEnBase64 = Strconv(lcStringQr, 13)


lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcStringEnBase64

lcQRImage = loCodigobarraqr.FullQRCodeImage(lcQR, lcArchivoImagenCodigoQr, 200)

alguno me puede decir cual es el error que puedo estar cometiendo ? gracias 
El jue, 14 ene 2021 a las 18:22, Marisa Molina (<mmo...@qbitla.com>) escribió:

Luis Maria Guayan

unread,
Jan 19, 2021, 3:01:52 PM1/19/21
to publice...@googlegroups.com

Deberias generarla del tamaño real que la vas a imprimir para que no se expanda o achique y pierda definición.

Si ya tienes el objeto en tu informe, cambia la unidad de medida del informe a pixeles y allí tendrás el tamaño en pixeles que deberías generar, pasandole ese tamaño en pixeles en el tercer parámetro.

Saludos.


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Jorge

unread,
Jan 20, 2021, 8:14:34 AM1/20/21
to publicesvfoxpro
gracias Luis por la ayuda :

Mas alla que pude exportar la imagen del qr a formato jpg usando gdiplus ,te pregunto : la libreria foxbarcodeqr solo genera el archivo de imagen con qr en formato BMp ? 

Luis Maria Guayan

unread,
Jan 20, 2021, 9:06:41 AM1/20/21
to publice...@googlegroups.com

Si, las librerias BarCodeLibrary.dll y QRCodeLib.dll solo generan imágenes del tipo BMP

No creo que ese sea problema con el uso de XFRX. Yo en su momento hice pruebas de compatibilidad entre FoxBarcode (no ForbacodeQR) y XFRX y no tuve ningún problema.

Intenta con alguna otra imagen BMP y exporta a PDF con XFRX a ver que resultados obtienes.

Saludos,


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Jorge

unread,
Jan 20, 2021, 6:08:14 PM1/20/21
to publicesvfoxpro
Hola grupo :  pude generar imagenes con el codigo Qr en formato bmp usando  una resolucion de 180 o 200 
Genere una imagen con una resolucion de 120 de esta manera :
  loFbc.FullQRCodeImage(lcQR, lRutaArchivoObtenido, 120 )
con esto obtengo un qr con el tamaño aproximado del  que tiene Afip en el comprobante que esta  como ejemplo.
( lo trato de leer con un celular samsung j7 , con el programa escaner QR  ) , pero intento leer el archivo bmp 
sin pegarlo en un reporte y no hay manera que lo lea .
Adjunto el archivo generado y estaria muy agradecido si alguno me puede decir si lo puede leer con algun otro programa que tenga 
Desde ya gracias por la ayuda .
En resumen , La unica manera que me lee perfecto el qr es si genero la imagen con una resolucion mayor o igual a 180 .

saludos 

Barcodeqr.BMP

Luis Maria Guayan

unread,
Jan 20, 2021, 8:05:57 PM1/20/21
to publice...@googlegroups.com

Como consejo, intenta siempre con tamaños en pixeles multiplos de 33. Usa 132 y/o también intenta cambiando el ancho de cada modulo a 2. Recuerda cambiar también el tamaño en pixeles en tu informe. 132 o 120 pixeles

Ejemplo

intenta escanearla con tu lector

pego código de este ejemplo


SET PROCEDURE TO LOCFILE("FoxBarcodeQR.prg") ADDITIVE



*--- Creo el objeto FoxBarcodeQR

LOCAL loFbc AS OBJECT
LOCAL lcQRImage, lcQR AS STRING


loFbc = CREATEOBJECT("FoxBarcodeQR")

LOCAL lRutaArchivoObtenido AS STRING
lRutaArchivoObtenido = SYS(5) + CURDIR()+"Barcodeqr"

TEXT to lcstring2 noshow


{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}

ENDTEXT




lcString64 = STRCONV(lcString2, 13)

lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64


*-- Cambio el ancho de los módulos (5 por default)
loFbc.nModuleWidth = 2
*-- optimizo tamaño multiplo de 33 y > 100
lcQRImage = loFbc.FullQRCodeImage(lcQR, lRutaArchivoObtenido, 132)


*-- Create form
LOCAL loForm AS FORM
m.loForm = CREATEOBJECT("Form")
WITH m.loForm
  .CAPTION = "FoxBarcodeQR example form"
  .WIDTH = 600
  .HEIGHT = 600
  .BACKCOLOR = RGB(255,255,255)
  .AUTOCENTER = .T.
  .ADDOBJECT("Image1", "MyImage")
  WITH .Image1
    .WIDTH = 600
    .HEIGHT = 600
    .STRETCH = 0
    .PICTURE = m.lcQRImage
    .TOP = 20
    .LEFT = 20
    .VISIBLE = .T.
  ENDWITH
  .SHOW(1)
ENDWITH

m.loForm = NULL
m.loFbc = NULL

RETURN

DEFINE CLASS MyImage AS IMAGE
  PROCEDURE DESTROY
    THIS.PICTURE = ""
  ENDPROC
ENDDEFINE


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

Jorge

unread,
Jan 21, 2021, 5:56:22 AM1/21/21
to publicesvfoxpro
Gracias Luis ! Con lo q m pasaste pude hacer andar el reporte y la exportacion a pdf .Usando  132 pixeles y poniendo el contenedor de imagen del reporte con las dimensiones equivalentes en cm ( 3.49 cm ) anduvo joya 

Saludos 

Luis Maria Guayan

unread,
Jan 22, 2021, 7:51:59 PM1/22/21
to publice...@googlegroups.com

Jorge, haciendo algunas pruebas con los tamaños y generando el QR con la API de Google, logre muy buenos resultados con imágenes de hasta 72x72 pixeles.

Pego un código de ejemplo de códigos QR para Factura Electrónica (AFIP Argentina)

*--------------------------------------------------------------------------------------
* Ejemplo de código QR para
* Factura Electrónica Argentina (AFIP)
* con la API de Google
*--------------------------------------------------------------------------------------



*-- JSON con los datos requeridos por AFIP

TEXT TO lcString NOSHOW


{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}
ENDTEXT

lcString64 = STRCONV(lcString, 13)



lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

*-- Creo la imagen QR
m.lcQRImage = GoogleApiQRBarcodeImage(lcQr, "", 198)

*-- Copio la ruta y nombre de la imagen en el portapapeles

*_CLIPTEXT = m.lcQRImage

*-- Creo el Formulario


LOCAL loForm AS FORM
m.loForm = CREATEOBJECT("Form")
WITH m.loForm

  .CAPTION = "Ejemplo de QR de AFIP con la API de Google"
  .WIDTH = 400
  .HEIGHT = 400


  .BACKCOLOR = RGB(255,255,255)
  .AUTOCENTER = .T.

  .ADDOBJECT("Image1", "Image")
  WITH .Image1
    .WIDTH = 200
    .HEIGHT = 200


    .STRETCH = 0
    .PICTURE = m.lcQRImage
    .TOP = 20
    .LEFT = 20
    .VISIBLE = .T.
  ENDWITH
  .SHOW(1)
ENDWITH

m.loForm = NULL

RETURN

*---------------------------------------------------------
* PROCEDURE GoogleApiQRBarcodeImage()
*---------------------------------------------------------
* Genero la imagen del código QR con la API de Google
*  Parametetros:
*   tcText: Texto a codificar
*   tcFile: Nombre y ruta del archivo de imagen (opcional)
*   tnSize: tamaño en pixeles (opcional)
*---------------------------------------------------------

PROCEDURE GoogleApiQRBarcodeImage(tcText, tcFile, tnSize)
  LOCAL lcType, lcFolder, lcUrl

  IF VARTYPE(m.tnSize) <> "N"
    m.tnSize = 198 && Tamaño por omisión = 198 x 198 pixels
  ENDIF

  m.tnSize = MIN(MAX(m.tnSize, 72), 540)
  m.lcType = "PNG" && Solo PNG
  m.lcUrl = [https://chart.googleapis.com/chart?chs=] + ;
    TRANSFORM(m.tnSize) + [x] + TRANSFORM(m.tnSize) + ;
    [&cht=qr&chl=] + tcText

  IF EMPTY(m.tcFile)
    m.lcFolder = TempPath()
    IF NOT DIRECTORY(m.lcFolder)
      MD (m.lcFolder)
    ENDIF
    m.tcFile = FORCEEXT(m.lcFolder + SYS(2015), m.lcType)
  ELSE
    m.lcFolder = JUSTPATH(m.tcFile)
    IF NOT DIRECTORY(m.lcFolder) AND NOT EMPTY(m.lcFolder)
      MD (m.lcFolder)
    ENDIF
    m.tcFile = FORCEEXT(m.tcFile, m.lcType)
  ENDIF

  *-- Declaro la función URLDownloadToFile
  DECLARE LONG URLDownloadToFile IN URLMON.DLL ;
    LONG, STRING, STRING, LONG, LONG

  ERASE (m.tcFile)
  IF 0 = URLDownloadToFile(0, m.lcUrl, m.tcFile, 0, 0)
    RETURN m.tcFile
  ELSE
    RETURN ""
  ENDIF
ENDPROC

*---------------------------------------------------------
* PROCEDURE TempPath()
*---------------------------------------------------------
* Retorna la carpeta de archivos temporales de Windows
*---------------------------------------------------------

PROCEDURE TempPath()
  LOCAL lcPath, lnRet
  LOCAL lnSize
  m.lcPath = SPACE(255)
  m.lnSize = 255
  DECLARE INTEGER GetTempPath IN WIN32API ;
    INTEGER nBufSize, ;
    STRING @cPathName
  m.lnRet = GetTempPath(m.lnSize, @m.lcPath)
  IF m.lnRet <= 0
    m.lcPath = ADDBS(FULLPATH("TEMP"))
  ELSE
    m.lcPath = ADDBS(SUBSTR(m.lcPath, 1, m.lnRet))
  ENDIF
  RETURN m.lcPath
ENDPROC

*---------------------------------------------------------



Saludos


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

marboccia

unread,
Jan 26, 2021, 10:26:21 AM1/26/21
to Comunidad de Visual Foxpro en Español
Estimados:

Estoy trabajando con este tema y me encuentro con el siguiente inconveniente.

Al momento de codificar el string utilizo librerías externas que me generan el qr (https://sites.google.com/site/foxbarcode/foxbarcodeqr)

lcString64 =  CREATEOBJECT("base64Helper")
lcString64_1 = lcString64.encodeString(lcstring)
lcQR = "https://www.afip.gob.ar/fe/qr/?p=" + lcString64_1

*-- Creo la imagen QR
lcQRImage = loFbc.FullQRCodeImage(lcQR, lcMiArchivoImagen , 200)

El tema me ocurre al momento de decodificar la imagen para tratar de validar mi proceso:

Al momento de decodificarla me arroja caracteres erróneos en la url, todo el resto si lo decodifico me devuelve el json perfectamente.

httpsÑ--www.afip.gob.ar-fe-qr-_p¿eyJ2ZXIiOjEsImZlY2hhIjoyMDIwLTExLTI0LCJjdWl0Ijoz

Cualquier comentario es más que bienvenido. Aún no se me ocurre como resolverlo.

Saludos para todos!

Mariano



Luis Maria Guayan

unread,
Jan 27, 2021, 2:23:22 PM1/27/21
to Comunidad de Visual Foxpro en Español
Hola, Que versión de VFP estás utilizando?

Por que no utilizas directamente la función STRCONV() como el siguiente ejemplo:

*-- JSON con los datos requeridos por AFIP

TEXT TO lcString NOSHOW

{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}

ENDTEXT
lcString64 = STRCONV(lcString, 13)

lcQR = [https://www.afip.gob.ar/fe/qr/?p=] + lcString64

Envía la imagen generada para que la podamos escaner nosotros y capaz sea configuración del scanner o la app de escaneo.

Saludos.

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
    

MJDemonte

unread,
Jan 30, 2021, 6:36:22 PM1/30/21
to Comunidad de Visual Foxpro en Español
Hola,  bajé el archivo Reporte.ZIP, y generé un Código QR, con datos, luego escanee el código QR generado que se visualize en el reporte y al decodificarlo obtengo la siguiente cadena:

 {"ver":1,"fecha":<<fFecha>>,"cuit":<<nCuit>>,"ptoVta":<<nPtovta>>,"tipoCmp":<<nTipocpte>>,
        "nroCmp":<<nNrocpte>>,"importe":<<nImporte>>,"moneda":<<cMoneda>>,"ctz":<<nCotizacion>>,
        "tipoDocRec":<<nTipodocrec>>,"nroDocRec":<<nNrodocrec>>,"tipoCodAut":<<Tipocodaut>>,"codAut":<<nCodaut>>}

¿Que puede haber pasado???
Gracias
Saludos

El miércoles, 30 de diciembre de 2020 a las 9:40:31 UTC-3, luism...@gmail.com escribió:

Carlos, te retorno los  archivos corregidos.

En el objeto Imagen del Informe debes invocar al método igual que en el objeto imagen del formulario.

Y si al objeto le indicas 200 x 200 pixeles, es conveniente que en el informe le indiques el mismo tamaño 200 x 200 pixeles

Saludos,


Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

El 30/12/2020 a las 09:05:20, vcarl...@gmail.com escribió:
Me olvide del reporte estan comprimodos con 7zip

El miércoles, 30 de diciembre de 2020 a las 9:01:24 UTC-3, vcarl...@gmail.com escribió:
Buenos dias Luis Maria, gracias por responder. Adjunto el codigo del formulario
que lo genere desde el examinador de clases. Esta en VFP 9 SP2

Saludos
Carlos Veron


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Luis Maria Guayan

unread,
Jan 31, 2021, 9:57:04 AM1/31/21
to Comunidad de Visual Foxpro en Español
Faltó la cláusula TEXTMERGE en el comando TEXT ... ENDTEXT:

TEXT TO lcString NOSHOW TEXTMERGE 
{"ver":1,"fecha":<<fFecha>>,"cuit":<<nCuit>>,"ptoVta":<<nPtovta>>,"tipoCmp":<<nTipocpte>>,"nroCmp":<<nNrocpte>>,"importe":<<nImporte>>,"moneda":<<cMoneda>>,"ctz":<<nCotizacion>>,"tipoDocRec":<<nTipodocrec>>,"nroDocRec":<<nNrodocrec>>,"tipoCodAut":<<Tipocodaut>>,"codAut":<<nCodaut>>}
ENDTEXT

Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
  

HernanCano

unread,
Jan 31, 2021, 5:10:40 PM1/31/21
to Comunidad de Visual Foxpro en Español
Colega:
Tengo cuatro lectores que instalé en mi celular. En varias pruebas con tu imagen, dos de ellos me entregan una URL de la AFIP, que dirige a la documentación, la ayuda.

Te confirmo lo sgte:
Hasta hace como un año tenía otro celular, de gama "muy" baja, le instalé un sólo lector de cod barras; no instalé más, por que no tenía suficiente memoria. 
Luego que adquirí mi nuevo celular, de gama baja --pero con muy buena capacidad de espacio en disco-- tenía que ampliar la imagen en mi computador --de la misma forma que con el anterior-- para que los lectores lo leyeran. Hasta ahora no sé a qué se debe: si es que las dos cámaras tienen poca resolución para un cod barras/QR, o si es que la tecnología es así.

HernanCano

unread,
Jan 31, 2021, 5:18:05 PM1/31/21
to Comunidad de Visual Foxpro en Español
Qué bien, Luis.
Gracias por compartir.

Quisiera que me recordaras dónde encuentro la explicación del por qué es mejor la función GetTempPath() de la Win32API que la función interna sys(2023) de VFP.
Gracias.

Luis Maria Guayan

unread,
Feb 1, 2021, 10:01:20 AM2/1/21
to Comunidad de Visual Foxpro en Español
Hola Hernán, tampoco yo lo recuerdo :-))

Creo que la razón fue que cuando creamos las librerías de FoxBarcode con Guillermo, decidimos utilizar la API por compatibilidad de versiones de VFP y porque SYS(2023) retorna la ruta en formato DOS 8.3 y en MAYUSCULAS. 

? SYS(2023)
? ADDBS(GETENV("TMP"))
? TempPath()

PROCEDURE TempPath()
  LOCAL lcPath, lnRet
  LOCAL lnSize
  m.lcPath = SPACE(255)
  m.lnSize = 255
  DECLARE INTEGER GetTempPath IN WIN32API ;
    INTEGER nBufSize, ;
    STRING @cPathName
  m.lnRet = GetTempPath(m.lnSize, @m.lcPath)
  IF m.lnRet <= 0
    m.lcPath = ADDBS(FULLPATH("TEMP"))
  ELSE
    m.lcPath = ADDBS(SUBSTR(m.lcPath, 1, m.lnRet))
  ENDIF
  RETURN m.lcPath
ENDPROC
Luis María Guayán
Tucumán, Argentina
_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com
  

MJDemonte

unread,
Feb 1, 2021, 3:05:01 PM2/1/21
to Comunidad de Visual Foxpro en Español
Muchas gracias Luis.
Abrazo

HERNAN D. A.

unread,
Feb 2, 2021, 5:35:49 AM2/2/21
to publicesvfoxpro
Hola Gente, una consulta relacionada, un cliente me pidió si es factible dejar el Código de Barras en la Factura, algún lugar que no moleste, ya que lo usan para despacho y control de cargas, tiene un lector en varios lados que lo usan contra ese código. habrá algún problema con  AFIP si se deja el CB?, quedaría con QR y CB.

Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/c885361c-2d8b-4b81-9968-c132b97a786an%40googlegroups.com.

Afpsistemas - Fernando Maggi

unread,
Feb 2, 2021, 7:21:43 AM2/2/21
to publice...@googlegroups.com

Hola Hernán,

 

En mi humilde opinión no debería haber ningún problema, estas cumpliendo con la normativa de incluir el QR y tal cual vos mencionas el de Barras lo usas por procesos internos, yo le daría para adelante.

 

Saludos,

Fernando.

 

 

De: publice...@googlegroups.com <publice...@googlegroups.com> En nombre de HERNAN D. A.
Enviado el: martes, 2 de febrero de 2021 7:35
Para: publicesvfoxpro <publice...@googlegroups.com>
Asunto: Re: [vfp] codigos qr en facturas afip

 

Hola Gente, una consulta relacionada, un cliente me pidió si es factible dejar el Código de Barras en la Factura, algún lugar que no moleste, ya que lo usan para despacho y control de cargas, tiene un lector en varios lados que lo usan contra ese código. habrá algún problema con  AFIP si se deja el CB?, quedaría con QR y CB.

Sergio Castellari [Gmail]

unread,
Feb 2, 2021, 7:59:49 AM2/2/21
to publice...@googlegroups.com

Hola Hernan,

 

Para mí no habría ningún problema. Ya cumplís con la ultiman normativa, y además incluís mas información válida.

 

Saludos,

Sergio Castellari

 

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de HERNAN D. A.
Enviado el: martes, 02 de febrero de 2021 07:35 a.m.
Para: publicesvfoxpro
Asunto: Re: [vfp] codigos qr en facturas afip

 

Hola Gente, una consulta relacionada, un cliente me pidió si es factible dejar el Código de Barras en la Factura, algún lugar que no moleste, ya que lo usan para despacho y control de cargas, tiene un lector en varios lados que lo usan contra ese código. habrá algún problema con  AFIP si se deja el CB?, quedaría con QR y CB.

HERNAN D. A.

unread,
Feb 2, 2021, 9:40:37 AM2/2/21
to publicesvfoxpro
Gracias Colegas
Saludos Cordiales


Sergio Castellari [Gmail]

unread,
Feb 2, 2021, 7:00:32 PM2/2/21
to publice...@googlegroups.com

Hola Gente,

 

He creado una pequeña utilidad (QRFacil.exe) que facilita la creación de la imagen QR de los comprobantes electrónicos de AFIP.

Solo tienen que enviar una cadena (string) con los campos de datos solicitados por AFIP.

QRFacil.exe, arma el Json, codifica en Base64 y genera una imagen QR en formato JPG y el link QR en un archivo TXT.

 

Pueden descargarla de este link https://mega.nz/file/UIFh3Yjb#uqQXq6SqM4rY-lxyBxUGQP6X4V_9PTejb0CIU7tEWMY

 

Es libre y gratuita.

La idea es ayudar a colegas a obtener las imágenes QR lo más fácil posible.

Contiene una pequeña ayuda de uso.

 

Cualquier sugerencia o error encontrado, con gusto lo corregiré.

 

Saludos,

Sergio Castellari

 

 

 

 

 

norberto.ma...@gmail.com

unread,
Feb 3, 2021, 7:55:38 AM2/3/21
to Comunidad de Visual Foxpro en Español
Hola Grupo, pregunta, use el codigo de Luis Maria, el cual me parece fantástico y logre hacer el QR, lo comencé a implementar con mis facturas, pero cada vez que lo leo, me manda a la pagina de la AFIP, a la parte de especificaciones del codigo QR. Mi pregunta es esto desde la AFIP ya esta implementado, porque me deberia mostrar información de la factura que he emitido, o algo estoy haciendo mal. Desde ya muchas gracias por vuestra atención.

Norberto Alvarez
Buenos Aires, Argentina

LUIS - GMAIL

unread,
Feb 3, 2021, 8:51:49 AM2/3/21
to publice...@googlegroups.com

Norberto , hoy es asi , por lo menos en lo que he podido comprobar en factura electronica , si tenes la posibilidad de tener acceso a algun comprobante que alguien haya emitido por la el servicio de facturacion en linea ( pagina afip ) veras que llegas al mismo resultado.  Creo que afip no tiene nada implementado todavia. 

Saludos

LUIS

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Sergio Castellari [Gmail]

unread,
Feb 3, 2021, 9:16:02 AM2/3/21
to publice...@googlegroups.com

Hola Norberto,

 

Lamentablemente, AFIP dicto la disposición sobre la implementación del QR, pero hasta ahora NO tiene una URL activa para “verificar” los datos enviados por el link QR.

Por lo tanto, independientemente del método para “lograrlo”, todas te envían a la página de especificaciones sin más.  O sea, que por el momento confiamos que hemos realizados todos los pasos correctamente, pero SIN SABER realmente si todo esta OK.

En mi caso, el motivo de compartir libremente QRFacil.exe fue para intentar facilitar su obtención y una forma de agradecer toda la ayuda que me brindan.

 

Saludos,

Sergio Castellari

--

Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/bv2j6tm0bVg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

norberto.ma...@gmail.com

unread,
Feb 4, 2021, 6:59:50 AM2/4/21
to Comunidad de Visual Foxpro en Español
Hola Luis y Sergio, gracias por la info, creia que no funcionaba. Gracias

Norberto Alvarez

norberto.ma...@gmail.com

unread,
Feb 9, 2021, 2:59:41 PM2/9/21
to Comunidad de Visual Foxpro en Español
Hola Grupo, esta es una pregunta de duda de mi parte, con respectos a los Remitos (pre-impresos), hay que rehacerlos con codigo QR o siguen en vigencia los que tienen codigo de Barras. Gracias por vuestra atención.

Norberto Alvarezx

Luis Maria Guayan

unread,
Feb 10, 2021, 6:19:32 AM2/10/21
to publice...@googlegroups.com

Los comprobantes pre-impresos continuan iguales. La resolución de la AFIP es solo para los comprobantes electrónicos.


Luis María Guayán
Tucumán, Argentina
_______________________________

Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

norberto.ma...@gmail.com

unread,
Feb 10, 2021, 6:28:11 AM2/10/21
to Comunidad de Visual Foxpro en Español
Gracias Luis Maria, por tu respuesta. Lo suponia, pero no esta demás consultarlo. Tambien quería aprovechar, para agradecerte tu aporte de la función del armado del Código QR, que esta impecable. Muchas Gracias, por tu aporte.

Norberto Alvarez

Hector Kuhn

unread,
Feb 11, 2021, 12:54:50 PM2/11/21
to publicesvfoxpro
Buenas tardes, alguien a enviado el codigo QR a una comandera termica y luego  ha intentado leer dicho QR , para ver si lo lee, y en caso de ser leeido cual seria el tamaño a imprimir.

He estado probando una comandera Epson Tm-t20ii y no logro que el lector del celular lo pueda leer. El mismo codigo impreso por Hp laser lo puede leer

El maximo de impresion que he usado hasta ahora es de 35x35  milimetros

Yo genero el codigo  QR de la siguiente manera

IF VARTYPE(loFbc)="O"
   RELEASE loFbc
ENDIF
IF VARTYPE(loFbc)#"O"
loFbc = CREATEOBJECT("FoxBarcodeQR")
ENDIF

lcQRImage = loFbc.FullQRCodeImage(lcQR,lcArchivo , 200)

* Convierto bmp a png para libreria python sistemasagiles

LOCAL lcSource, lcDestination
lcSource      = lcQRImage
lcDestination = STRTRAN(UPPER(lcSource),".BMP",".PNG")

IF VARTYPE(loImage)="O"
   RELEASE loImage
ENDIF
IF VARTYPE(loImage)#"O"
loImage = NEWOBJECT("GpImage", "_gdiplus.vcx")
ENDIF

loImage.CreateFromFile(lcSource)
loImage.SaveToFile(lcDestination,"image/png")


Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/b66c3036-8503-4fdb-b0c2-6e3f2515594an%40googlegroups.com.

Sergio Castellari [Gmail]

unread,
Feb 11, 2021, 4:09:17 PM2/11/21
to publice...@googlegroups.com

Hola,

 

Yo lo imprimo en 50x50 milímetros en formato JPG

marcelo.s...@gmail.com

unread,
Feb 14, 2021, 10:51:01 AM2/14/21
to Comunidad de Visual Foxpro en Español
Hola, alguien sabe si el logo de Afip es obligatorio ponerlo también con el código QR

Juan Manuel Conde

unread,
Feb 17, 2021, 7:11:08 AM2/17/21
to Comunidad de Visual Foxpro en Español
Buenos dias
Les agradezco a todos la información que compartieron, pude colocar en mi sistema el código QR sin problemas usando el TEXT..ENDTEXT y el foxbarcodeqr.prg
Me ahorraron mucho tiempo y eso se valora mucho, espero poder contribuir con algo asi en algún momento
Saludos a todos
Larga vida al viejo Zorro!!!

El jueves, 10 de diciembre de 2020 a la(s) 11:07:07 UTC-3, gat...@gmail.com escribió:
alquien me puede ayudar de como convertir el json en base64 y de esto como resultado

JSON con datos del comprobante:

{"ver":1,"fecha":"2020-10-13","cuit":30000000007,"ptoVta":10,"tipoCmp":1,"nroCmp":94,"importe":12100,"moneda":"DOL","ctz":65,"tipoDocRec":80,"nroDocRec":20000000001,"tipoCodAut":"E","codAut":70417054367476}


utilizo visual foxpro 6.0

Desde ya muchas gracias


PabloZa

unread,
Feb 17, 2021, 5:34:18 PM2/17/21
to Comunidad de Visual Foxpro en Español
Hector, yo lo implementé en una comandera y el tamaño que utilicé es 3,5 x 3,5 cm. Mas chico no lo leía. seguramente x la calidad de impresión de la comandera.
Una cosa que tuve que hacer es colocar, en el informe, la imagen con Height =3.50 y Width=4.00 porque sino me imprimía en forma rectangular.

Roxana

unread,
Feb 18, 2021, 9:00:19 AM2/18/21
to Comunidad de Visual Foxpro en Español
Hola Sergio,

Baje el QRfacil.exe. Hice unas pruebas y funciona muy bien.
Te queria hacer una pregunta:
El tamaño que genera la imagen se puede modificar? Vos lo probaste ya en una factura de AFIP? No queda muy grande?
Gracias!

Saludos,

Roxana

Hector Kuhn

unread,
Feb 18, 2021, 9:03:09 AM2/18/21
to publicesvfoxpro
Buen dia

Lo he tenido que hacer de 4x4 mm, ya que segun el celular / lector de barras que se use en algunos anda y otros no
Con 4x4mm me aseguro de que la mayoria los pueda leer


Sergio Castellari [Gmail]

unread,
Feb 18, 2021, 9:29:52 AM2/18/21
to publice...@googlegroups.com

Hola Roxana,

 

El tamaño y resolución es muy buena a propósito, para que vos pueda definir su tamaño al momento de imprimirlo o generar el comprobante en PDF para enviarlo.

Yo utilizo en mis impresiones 35x35mm en comprobantes A4 (normalmente impresoras laser) y en comanderas tipo Epson TM20ii, lo incremento a 50x50mm ya que la impresión térmica es de menor calidad.

 

Pero te cuento que en pruebas que hice (con una APP lectora genérica de Celular) , en tamaños de 18x18mm los leía !!!!

Incluso hice pruebas directas de lectura desde la propia pantalla del monitor, y también lo hacía perfectamente.

En fin, creo que el principal obstáculo es la calidad del grafico.

Roxana Demattei

unread,
Feb 18, 2021, 9:40:38 AM2/18/21
to publice...@googlegroups.com

Ok. Mi duda era si al incrustarlo en el formulario de FOX con menor tamaño podía tener algún problema.

Por lo que me cuentas debería funcionar ok.

 

Lo pruebo y les aviso.

 

Muchas gracias!!

 

 

Saludos,

 

Roxana.

It is loading more messages.
0 new messages