master.py
1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- 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')