solicitudes.py 3.23 KB
# -*- coding: utf-8 -*-
from odoo.exceptions import UserError, ValidationError, Warning
from datetime import datetime, timedelta
from odoo import models, fields, api

AVAILABLE_PRIORITIES = [
    ('0', 'Baja'),
    ('1', 'Normal'),
    ('2', 'Alta'),
    ('3', 'Crítico'),
]

class lappasolicitudes(models.Model):
    _name = "lappa.solicitudes"
    _order = "id desc"

    name = fields.Char(
        string="Servicio",
        compute="_compute_name",
        store=True,
        readonly=True
    )

    inicio = fields.Datetime("Creación",
        default=lambda *a: datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

    fecha = fields.Date(string='Fecha',
        default=lambda *a: datetime.now().strftime('%Y-%m-%d'))

    nombre = fields.Char(string='Solicitante')

    celular = fields.Char(string='Telefono solicitante')

    email = fields.Char(string='Email')

    localidad = fields.Integer(string='Localidad')

    cuit = fields.Char(string='Cuit/Documento')

    estado = fields.Selection(string='Estado', selection=[
        ('a_revisar', 'Sin Revisar'), 
        ('revision', 'En Revision'),
        ('aceptado', 'Aceptado'),
        ('rechazado', 'Rechazado'),
        ],
        default="a_revisar",
        required=True)
    


    @api.depends('nombre')
    def _compute_name(self):
        for record in self:
            name = """SOLICITUD {} - {} - {}"""
            name = name.format(str(record.id).zfill(5), record.nombre, record.fecha)
            record.name = name

    notitas = fields.Text(string='Seguimiento', default='')
    texto = fields.Char(string='Seguimiento', default='')

    @api.onchange('texto')
    def _onchange_texto(self):
        if (self.texto == "") or (self.texto == False):
            return({})
        Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
        (datetime.now() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M'),
        self.texto, self.notitas)
        self.notitas = Texto
        modelo = self.env["lappa.solicitudes"].browse(self._origin.id)
        modelo.write({"notitas": Texto})
        self.texto = ""
        return({})

    def Revisar(self):
        Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
        (datetime.now() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M'),
        "Se pasa a revisar", self.notitas)
        self.notitas = Texto
        self.estado = "revision"
    
    def Rechazar(self):
        Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
        (datetime.now() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M'),
        "Se rechaza solicitud", self.notitas)
        self.notitas = Texto
        self.estado = "rechazado"

    def AceptarNuevo(self):
        Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
        (datetime.now() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M'),
        "Se Acepta y se genera trasnportista nuevo", self.notitas)
        self.notitas = Texto
        self.estado = "aceptado"

    def AceptarRelacionar(self):
        Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
        (datetime.now() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M'),
        "Se Acepta y se relaciona a un transportista existente", self.notitas)
        self.notitas = Texto
        self.estado = "aceptado"