comprobante.py
1.8 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
# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions
from .qr import qrfiscal
class asw_comprobante(models.Model):
_inherit = 'asw.comprobante'
name_ref = fields.Char(
string="Nombre",
)
referencia_corr = fields.One2many(
string=u'Referencia',
comodel_name='asw.referencias',
inverse_name='factura',
)
afip_qr_img = fields.Binary(
string=u'QR',
default="QR Fiscal"
)
afip_qr = fields.Char(
compute='_compute_afip_qr',
string='QR Fiscal'
)
qr = fields.Char(
string='QR'
)
@api.depends('afip_qr_img')
def _compute_afip_qr(self):
for rec in self:
print(rec.comp_fecha)
print(rec.comp_talonario.tal_tpc_id.tc_cod_afip)
print(rec.comp_talonario.tal_ptv_id.ptv_nro)
print(rec.afip_auth_code)
print(rec.comp_total)
try:
if rec.afip_auth_code == False:
continue()
print(self.cae_due_qr(rec))
QR = qrfiscal(FechaEmision=rec.comp_fecha,)
QR.GenerarQR()
rec.afip_qr_img = QR.LeerQR()
except:
rec.afip_qr_img = False
def cae_due_qr(self, rec):
cae_due = ''.join(
[c for c in str(
rec.afip_auth_code_due or '') if c.isdigit()])
return(cae_due)
#metodo p q campo de referencia escriba name
#como el campo es one2many puse que tome el nombre de la primer referencia elegida
@api.onchange('referencia_corr')
def _onchange_name(self):
first_line = self.env['asw.referencias'].search([('id', 'in', self.referencia_corr.ids)], limit=1)
if first_line and first_line.name:
self.name_ref = first_line.name