lineatarea.py 1.83 KB
# -*- coding: utf-8 -*-

from odoo import models, fields, api

class hgt_linea_tarea(models.Model):
    _name = 'hgt.linea_tarea'

    liquidaciones = fields.Many2one(
        string='Liquidaciones',
        comodel_name='hgt.liquidacionestareas',
        ondelete='restrict',
    )
    
    tarea = fields.Many2one(
        string=u'Tarea',
        comodel_name='hgt.tarea',
        ondelete='set null',
    )

    name = fields.Char(
        related='tarea.name',
        readonly=True,
        store=True
    )
    
    inicio = fields.Date(
        readonly=True,
        store=True
    )

    cierre = fields.Date(
        readonly=True,
        store=True
    )

    minutos_reales = fields.Integer(
        related='tarea.minutos_reales',
        readonly=True,
        store=True,
    )

    minutos_a_liquidar = fields.Integer(
        string='Minutos no liquidados',
        readonly=True,
        store=True,
    ) 
   
    tipo_cargo = fields.Many2one(
        string='Tipo de Cargo',
        comodel_name='hgt.tipo_cargo',
        ondelete='restrict',
    )
    
    subtotal = fields.Float(
        string='Subtotal',
        compute='obtener_subtotal',
    )

    state = fields.Selection(
        related='tarea.state',
        readonly=True,
        store=True
    )

    @api.onchange('tipo_cargo')
    def obtener_subtotal(self):
        for record in self:
            if record.tipo_cargo:
                horas = (record.minutos_a_liquidar)/60
                precio = record.tipo_cargo.monto
                tot= horas*precio 
                record.subtotal = tot

    @api.depends('minutos_reales')
    def computar_minutos_a_liquidar(self):
        if (self.tarea.liquidado == False):
            self.minutos_a_liquidar = self.minutos_reales
        else:
            self.minutos_a_liquidar = self.minutos_reales - self.tarea.horas_liquidadas