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

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

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='Desde',
        default=fields.Date.context_today,
    )

    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')