incidencias.py 3.41 KB
# -*- coding: utf-8 -*-

from odoo import models, fields, api
import requests
class hgt_incidencias(models.Model):
    _name = 'hgt.incidencias'
    _order = "id desc"

    responsabilidad = fields.Selection(
        string=u'Responsabilidad',
        selection=[('pro', 'Propia'), ('ter', 'Tercero'), ('cli', 'Cliente'), ('cat', 'Catástrofe')]
    )
    
    responsable = fields.Many2one('res.users', string='Responsable', index=True, default=lambda self: self.env.user)
    
    reporte = fields.Many2one(
        string='Reporte',
        comodel_name='hgt.reporte',
        ondelete='restrict',
    )

    cliente = fields.Many2one(
        string='Cliente',
        comodel_name='hgt.instituciones',
    )

    descripcion = fields.Html(
        string=u'Descripción',
    )

    url = fields.Char(string='Url de ticketera')

    numero = fields.Char(string='Numero de ticket')

    _sql_constraints = [('id_ost_uniq', 'unique (id_ost)', 'Id Ticket must be unique.')]
    id_ost = fields.Integer(string='Id osticket')

    ost_cliente = fields.Char(string='Ost cliente')

    ost_asunto = fields.Char(string='Ost asunto')

    ost_mail = fields.Char(string='Ost mail')

    ost_telefeno = fields.Char(string='Ost telefono')

    ost_mensaje = fields.Text(string='Mensajes')

    fecha_creacion = fields.Date(
        string=u'Fecha de creación',
        default=fields.Date.context_today,
    )
    
    estado = fields.Many2one(
        string='Estados',
        comodel_name='hgt.estados',
        ondelete='restrict',
    )

    tarea = fields.Many2one(
        string='Tarea',
        comodel_name='hgt.tarea',
        ondelete='restrict',
    )

    proyecto = fields.Many2one(
        string='Proyecto',
        comodel_name='hgt.proyecto',
        ondelete='restrict',
    )

    accion = fields.Many2one(
        string='Acción',
        comodel_name='hgt.acciones',
        ondelete='restrict',
    )

    @api.onchange('proyecto') 
    def onchange_campo(self):
        result = {}
        result['domain'] = []
        if self.proyecto:
            ids = self.proyecto.acciones.ids
            result['domain'] = {'accion' : [('id', 'in', ids)]}
            return result 


    @api.model
    def create(self, vals):
        dom =[]
        cant = self.env['hgt.incidencias'].search_count(dom) 
        iden= cant + 1

        datos = {
            'resumen':'Incidencia {} {}'.format(iden, vals['ost_asunto']),
            'descripcion': vals['descripcion']
        }
        nueva_tar = self.env['hgt.tarea'].create(datos)  
        try:
            if vals['accion']:
                accion = vals['accion']
                acc = self.env['hgt.acciones'].search([('id','=',accion)])
                acc.tareas = [(4,nueva_tar.id)]
        except:
            pass
        vals['tarea'] = nueva_tar.id
        result = super(hgt_incidencias, self).create(vals)
        return result


    def mensajes_ost(self, val):
        #print(val[0])
        dom = [["numero", "=", val[0]]]
        ins =  self.env['hgt.incidencias'].search(dom, limit=1)
        if len(ins) == 0:
            #print("no esta en sistemma")
            return(True)
        text_orig = ins.ost_mensaje
        texto_nuevo = """\n{} {} {} \n{}\n\n#######################################################\n""".format(val[1],val[2],val[4],val[3])
        Texto = """{}\n{}""".format(text_orig,texto_nuevo)
        #print(Texto)
        ins.ost_mensaje = Texto
        return(True)