comprobante.py 1.31 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions
from odoo.exceptions import UserError, ValidationError, Warning, RedirectWarning
import base64
class asw_comprobante(models.Model):
    _inherit = 'asw.comprobante'
    _order = 'id desc'

    tipo_comprobante_lappa = fields.Char(string='Tipo de comprobante',
        readonly=True, compute="_tipo_comprobante_lappa")
    

    @api.depends('tipo_comprobante_lappa')
    def _tipo_comprobante_lappa(self):
        adap = {"fac":"Factura","rec":"Recivo"}
        for rec in self:
            tal = rec.comp_talonario.tal_menu
            if tal in ["fac","rec"]:
                tipo = adap[tal]
            else:
                tipo = "otro"
            rec.tipo_comprobante_lappa = tipo
    

    def DescargarPDF(self,val):
        if len(self) != 1:
            raise Warning("Seleccione un regisrto")
        print(val)
        rec = self.sudo(8)# usuario que pueda imprimir bien
        result = rec.imprimir()
        report_action = rec.env[result['type']]._get_report_from_name(result['report_name'])
        pdf = report_action.render_aeroo([rec.id], {'context': rec.env.context})
        nombre_pdf = pdf[2].replace(' ', '').replace(".pdf.pdf",".pdf")
        contenido = base64.b64encode(pdf[0])
        return({"filename":nombre_pdf,"file":contenido})