FACTURA ELECTRÓNICA ARGENTINA: CÓDIGO QR

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
Roberto Lopez
HMG Founder
Posts: 4004
Joined: Wed Jul 30, 2008 6:43 pm

FACTURA ELECTRÓNICA ARGENTINA: CÓDIGO QR

Post by Roberto Lopez »

Hola!

A partir de Marzo de 2021 (según el tipo de contribuyente) será obligatorio incluir un código QR en las facturas electrónicas emitidas.

Así que, me puse a trabajar en eso, para tener listas las actualizaciones de mis aplicaciones.

Comparto aquí el código, ya que podría ser de utilidad para alguien.

Code: Select all

*-------------------------------------------------------------------------------------------*
PROCEDURE QRGEN( cFecha , nCUITEmisor, nPdV, nTipoCmp , nNroCmp , nImporte ,cMoneda, nCtz , nTipoDocRec , nNroDocRec , cCodAut )
*-------------------------------------------------------------------------------------------*
LOCAL cBaseURL, cCuit, cPtoVta, cTipoCmp, cJSON, cBase64JSON

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

	cFecha      := LEFT(cFecha,4) + '-' + SUBSTR(cFecha,5,2) + '-' + RIGHT(cFecha,2)

	cCuit       := ALLTRIM(STR(nCUITEmisor))

	cPtoVta     := ALLTRIM( STR(nPdV) )

	cTipoCmp    := ALLTRIM(STR(nTipoCmp)) 

	cNroCmp     := ALLTRIM( STR(nNroCmp) )

	cImporte    := ALLTRIM( STR(nImporte) )

	cMoneda     := ALLTRIM(cMoneda)

	cCtz        := ALLTRIM(STR(nCtz))

	cTipoDocRec := ALLTRIM( STR(nTipoDocRec) )

	cNroDocRec  := ALLTRIM( STR(nNroDocRec) )

	
	* Crear Texto QR

	cJSON := '{"ver":1,"fecha":"' + cFecha + '","cuit":' + cCuit + ',"ptoVta":' + cPtoVta + ',"tipoCmp":' + cTipoCmp + ',"nroCmp":' + cNroCmp + ',"importe":' + cImporte + ',"moneda":"' + cMoneda + '","ctz":' + cCtz + ',"tipoDocRec":' + cTipoDocRec + ',"nroDocRec":' + cNroDocRec + ',"tipoCodAut":"E","codAut":' + cCodAut + '}'

	cBase64JSON := hb_base64encode( cJSON )

	cFullCode := cBaseURL + cBase64JSON

	HB_MEMOWRIT( 'test.txt' , cFullCode , .F. )

	* Generar CSV Para QRGEN

	cCsv := 'qr' + ',' + '"' + cFullCode + '"' 

	HB_MEMOWRIT('qr.csv',cCsv,.F.)


	* Generar BAT

	cBat := 'qrgen.exe --format PNG qr.csv'  + chr(13) + chr(10)

	HB_MEMOWRIT('qr.bat',cBat,.F.)


	* Ejecutar BAT

	EXECUTE FILE 'qr.bat' WAIT HIDE

RETURN
qrgen.exe se puede descargar desde aquí: https://github.com/ian-hamlin/qrgen

Para probar el código, generé un QR con los datos de ejemplo de AFIP:

Code: Select all

*-------------------------------------------------------------------------------------------*
PROCEDURE TESTQRGEN()
*-------------------------------------------------------------------------------------------*
LOCAL	cFecha       := "20201013"
LOCAL	nCUITEmisor  := 30000000007
LOCAL	nPdv         := 10
LOCAL	nTipoCmp     := 1
LOCAL	nNroCmp      := 94
LOCAL	nImporte     := 12100
LOCAL	cMoneda      := 'DOL'
LOCAL	nCtz         := 65
LOCAL	nTipoDocRec  := 80
LOCAL	nNroDocRec   := 20000000001
LOCAL	cCodAut      := '70417054367476'

	QRGEN( cFecha , nCUITEmisor, nPdV, nTipoCmp , nNroCmp , nImporte ,cMoneda, nCtz, nTipoDocRec , nNroDocRec , cCodAut )

RETURN
El resultado es la misma cadena y el mismo QR que se muestran en el ejemplo.

Más info en AFIP: https://www.afip.gob.ar/fe/qr/conceptos-generales.asp

Espero que les sea de utilidad.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)
ASESORMIX
Posts: 192
Joined: Thu Oct 25, 2012 8:08 pm
Location: Bqto, Venezuela

Re: FATURA ELECTRÓNICA ARGENTINA: CÓDIGO QR

Post by ASESORMIX »

Saludos Maestro.
Muchas gracias por compartir.
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: FATURA ELECTRÓNICA ARGENTINA: CÓDIGO QR

Post by danielmaximiliano »

Gracias Roberto por compartir 😊
Saludos como siempre y que andes bien como así tú flia
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
User avatar
Claudio Ricardo
Posts: 367
Joined: Tue Oct 27, 2020 3:38 am
DBs Used: DBF, MySQL, MariaDB
Location: Bs. As. - Argentina

Re: FATURA ELECTRÓNICA ARGENTINA: CÓDIGO QR

Post by Claudio Ricardo »

Muchas gracias Sr. Roberto !!!
Corrige al sabio y lo harás más sabio, Corrige al necio y lo harás tu enemigo.
WhatsApp / Telegram: +54 911-63016162
JALMAG
Posts: 262
Joined: Sun Jan 10, 2010 7:05 pm
DBs Used: DBF, MariaDB
Location: España - Spain

Re: FACTURA ELECTRÓNICA ARGENTINA: CÓDIGO QR

Post by JALMAG »

¡Gracias maestro!
Post Reply