qr.py
1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import qrcode, json, base64
class qrfiscal():
"""Armo esta clase para separar la generacion de la imagen del modelo
El unico objetivo es el orden, no tengo en claro cuanto me va a llevar
Capas es al pedo"""
doc_a = {"fac":"001:", "notc":"003", "notd":"002"}
doc_b = {"fac":"006:", "notc":"008", "notd":"007"}
def __init__(self, ver=1, FechaEmision="2020-10-13",
cuit=30000000007,
PuntoVenta=10,
tipoComprobante="001",
nroCmp=94,
importe=12100,
moneda="PES",
ctz=1,
tipoDocRec=80,
nroDocRec=20000000001,
tipoCodAut="E",
codAut=70417054367476) -> dict:
self.data = {"ver":1,
"fecha":FechaEmision,
"cuit":cuit,
"ptoVta":PuntoVenta,
"tipoCmp":tipoComprobante,
"nroCmp":nroCmp,
"importe":importe,
"moneda":moneda,
"ctz":ctz,
"tipoDocRec": tipoDocRec,
"nroDocRec":nroDocRec,
"tipoCodAut":tipoCodAut,
"codAut":codAut,
}
self.archivo = """/dev/shm/{}.png""".format(self.data["cuit"])
#print(self.data)
def GenerarQR(self):
json_dump = json.dumps(self.data,separators=(',', ':'))
data = json_dump.encode('ascii')
base64_bytes = base64.b64encode(data)
base64_message = base64_bytes.decode('ascii')
URL = """https://www.afip.gob.ar/fe/qr/?p={}""".format(base64_message)#al dia de la fecha no anda esta url asi q no puedo probar esta codificacion
self.URL = json_dump
self.generadorQR(URL)
#print(URL)
def generadorQR(self, URL):
qr = qrcode.QRCode(version=1,box_size=2,border=2)
qr.add_data(URL)
qr.make(fit=True)
img = qr.make_image(fill='black', back_color='white')
img.save(self.archivo)
def LeerQR(self):
data = open(self.archivo, "rb").read()
encoded = base64.b64encode(data)
return(encoded)
#qr = qrfiscal()
#jsz = qr.GenerarQR()
#import ipdb; ipdb.set_trace()