master.py 2.08 KB
# -*- coding: utf-8 -*-

from odoo import models, fields, api
from odoo.exceptions import UserError
from datetime import datetime

class hgt_masterliquidaciones(models.Model):
    _name = 'hgt.masterliquidaciones'
    
    titulo = fields.Char(
        string=u'Título',
    )

    ejecutores = fields.Many2many(
        string='Ejecutores',
        comodel_name='res.users',
        relation='user_masterliquidaciones_rel',
        column1='res_users_id',
        column2='hgt_masterliquidaciones_id',
    )
    
    liquidaciones = fields.Many2many(
        string='Liquidaciones',
        comodel_name='hgt.liquidacionestareas',
        relation='liquidaciones_masterliquidaciones_rel',
        column1='hgt_liquidacionestareas_id',
        column2='hgt_masterliquidaciones_id',
    )

    desde = fields.Date(
        string='Desde',
        default=fields.Date.context_today,
    )

    hasta = fields.Date(
        string='Hasta',
        default=fields.Date.context_today,
    )

    mt_texto = fields.Char(
        string='Seguimiento', 
        default=''
    )

    mt_notitas = fields.Text(
        string='Seguimiento', 
        default=''
    )

    def CargarNotas(self):
        if (self.mt_texto == "") or (self.mt_texto == False):
            return(True)
        Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
        datetime.now().strftime('%Y-%m-%d %H:%M'),
        self.mt_texto, self.mt_notitas)
        self.mt_notitas = Texto
        self.mt_texto = ""
        return(True)

    def generar_liquidaciones(self):
        for ejecutor in self.ejecutores:
            datos = {
                'usuario': ejecutor.id,
                'desde': self.desde,
                'hasta': self.hasta,
                'estado': 'borrador',
            }

            nva_liq = self.env['hgt.liquidacionestareas'].create(datos)
            self.liquidaciones = [(4,nva_liq.id)]
            if self.liquidaciones.crear_linea(nva_liq.id,ejecutor.id,self.desde,self.hasta) == 0: 
                raise UserError('No hay tareas que liquidar en el período de tiempo seleccionado')