facturista.com - Foros de Factura Electrónica (Comprobante Fiscal Digital por Internet)
http://facturista.com/foros/

Obtener el QRCode o Código de Barras Bidimensional (CBB)
http://facturista.com/foros/viewtopic.php?f=3&t=686
Página 1 de 1

Autor:  ariel_medina [ Mié Nov 20, 2013 4:27 pm ]
Asunto:  Obtener el QRCode o Código de Barras Bidimensional (CBB)

Para generar el QrCode debe llamar a unos programas externos, aquí el ejemplo de código en Fox:

loShell = createobject("WScript.Shell")

lcrutacomprobante='cfdi:Comprobante'
lcrutaemisor='cfdi:Comprobante/cfdi:Emisor'
lcrutareceptor='cfdi:Comprobante/cfdi:Receptor'

lctotal=alltrim(cfdi_xml_atributo(h,lcrutacomprobante,'total'))
lctotal=padreal(lctotal,10,6)

lcqrcode="?re="+cfdi_xml_atributo(h,lcrutaemisor,'rfc')+"&rr="+cfdi_xml_atributo(h,lcrutareceptor,'rfc')+"&tt="+;
lctotal+"&id="+alltrim(cfdi_uuid(h))

loShell.Run('qrcode\qrcode.exe -o "'+lcxml+'.png" "'+lcqrcode+'"',0,.T.)
loShell.Run('qrcode\png2bmp.exe "'+lcxml+'.png"',0,.T.)

release loShell


Vea que también se llama a unas funciones de la dll: cfdi_xml_atributo y cfdi_uuid ,
h es el manejador al CFDI cargado,
lcxml es el nombre del archivo xml, al cual se le agrega el sufijo .png .


Se anexa también la especificación del SAT para el QRcode.

Solicite por correo el directorio con los programas que se deben llamar, la imagen resultante estará en png y bmp .

Adjuntos:
qrcode.png
qrcode.png [ 182.15 KiB | Visto 13961 veces ]

Autor:  ariel_medina [ Sab Mar 08, 2014 1:12 pm ]
Asunto:  Re: Obtener el QRCode o Código de Barras Bidimensional (CBB)

Para comprobar que el CBB se ha generado correctamente, puede usar zbarimg : http://sourceforge.net/apps/mediawiki/zbar/index.php?title=FAQ


Código:
* Funcion que ajusta un numero a los enteros y decimales indicados

function padreal(lcn,lni,lnd)
local lnpospunto, lc

        lnpospunto=at('.',lcn)
        if lnpospunto>0
                lc=padl(substr(lcn,1,lnpospunto),lni+1,'0')+padr(substr(lcn,lnpospunto+1,lnd),lnd,'0')
        else
                lc=padl(lcn,lni,'0')+padr('.',1+lnd,'0')
        endif

        return lc
endfunc

Página 1 de 1 Todos los horarios son UTC - 6 horas
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/