adjuntar.py 2.48 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api
from odoo.exceptions import UserError
import requests, json

headers = {'Content-Type': 'application/json'}

class tpv_generar_nota(models.TransientModel):
    _name = 'soporte.adjunto_wiz'
    _description = 'Agregar adjunto' 

    incidencia = fields.Many2one(
        string=u'incidencia origen',
        comodel_name='hgt.soporte_incidencia',
    )

    file_name = fields.Char(string='Nombre', default='')

    file = fields.Binary(string='Archivo')

    def CargarAdjunto(self):

        if self.file == None or self.file_name == "":
            raise UserError("No se selecciono archivo")
        vals = {
            "file_name":    self.file_name,
            "file":         self.file,
            "incidencia":   self.incidencia.id
        }
        adjunto = self.env["hgt.soporte_adjunto"].create(vals)
        adjunto.GenerarCodigoArchivo()
        
        self.PostProcesado(adjunto)

    def PostProcesado(self,adjunto):
        """Luego de agregar el adjunto se debe Notificar al server externo
        Via webservice"""
        self.incidencia.InformarAdjuntos()

    def EnviarMensajeSoporte(self):
        if self.incidencia.subida == False:
            raise UserError("El responsable tecnico debe notificar a HGT primero")
        self.Generarmensajeinterno()
        self.incidencia.AgregarTelefonoAviso()
        self.mensaje.remoto = True
        Url = self.incidencia.GetUrlBase()
        #print(self.mensaje)

        datos = {
            'params': { 'token':self.incidencia.GenerarToken(),
                        'si_mens_fecha': self.mensaje.si_mens_fecha,
                        'si_mensaje': self.mensaje.si_mensaje,   
                        'codigo': self.incidencia.si_name,
                        'usuario': self.env.user.display_name,
                        'telefonos':self.incidencia.telefonos,
            }
        }
        datos_json = json.dumps(datos)
        f = requests.post(Url+'/soporteIncidencias/soporteMensaje', data=datos_json, headers=headers)
        frespuesta = f.json()

        if frespuesta["result"]["estado"] != "ok":
            raise UserError(str(frespuesta))


        


    def generar_notaCred(self):

        return {
            'name': "Nota de Débito",
            'type': 'ir.actions.act_window',
            'res_model': 'asw.comprobante',
            'view_mode': 'form',
            'view_type': 'form',
            'res_id': contra_comprobante.id,
            'target': 'self',
        }