Commit 121bfba0 by Maria Agustina

1768 casi terminada

1 parent 2979d722
...@@ -36,7 +36,13 @@ class hgt_linea_tarea(models.Model): ...@@ -36,7 +36,13 @@ class hgt_linea_tarea(models.Model):
minutos_reales = fields.Integer( minutos_reales = fields.Integer(
related='tarea.minutos_reales', related='tarea.minutos_reales',
readonly=True, readonly=True,
store=True store=True,
)
minutos_a_liquidar = fields.Integer(
string='Minutos no liquidados',
readonly=True,
store=True,
) )
tipo_cargo = fields.Many2one( tipo_cargo = fields.Many2one(
...@@ -60,14 +66,17 @@ class hgt_linea_tarea(models.Model): ...@@ -60,14 +66,17 @@ class hgt_linea_tarea(models.Model):
def obtener_subtotal(self): def obtener_subtotal(self):
for record in self: for record in self:
if record.tipo_cargo: if record.tipo_cargo:
horas = (record.minutos_reales)/60 horas = (record.minutos_a_liquidar)/60
precio = record.tipo_cargo.monto precio = record.tipo_cargo.monto
tot= horas*precio tot= horas*precio
record.subtotal = tot 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
\ No newline at end of file \ No newline at end of file
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from odoo import models, fields, api from odoo import models, fields, api
import datetime from datetime import datetime
from odoo.exceptions import UserError from odoo.exceptions import UserError
#from lib.config import config #from lib.config import config
DEFAULT_SERVER_DATE_FORMAT = "%Y-%m-%d %H:%M:%S" DEFAULT_SERVER_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
...@@ -41,13 +41,43 @@ class hdgt_liquidacionestareas(models.Model): ...@@ -41,13 +41,43 @@ class hdgt_liquidacionestareas(models.Model):
) )
total_aprobado = fields.Float(
string='Total Aprobado',
readonly = True,
)
aprobado = fields.Boolean(
string='Aprobado?',
readonly= True,
)
fecha_aprobado = fields.Datetime(
string= "Fecha Aprobado",
)
aprobador = fields.Many2one(
string='Aprobador',
comodel_name='res.users',
)
total = fields.Float( total = fields.Float(
string='Total', string='Total Abonado',
compute="obtener_total", readonly = True,
) )
abonado = fields.Boolean( abonado = fields.Boolean(
string='Abonado?', string='Abonado?',
readonly= True,
)
fecha_abonado = fields.Datetime(
string= "Fecha Abonado",
)
abonador = fields.Many2one(
string='Abonador',
comodel_name='res.users',
) )
estado = fields.Selection( estado = fields.Selection(
...@@ -56,6 +86,26 @@ class hdgt_liquidacionestareas(models.Model): ...@@ -56,6 +86,26 @@ class hdgt_liquidacionestareas(models.Model):
default='borrador', default='borrador',
) )
lt_texto = fields.Char(
string='Seguimiento',
default=''
)
lt_notitas = fields.Text(
string='Seguimiento',
default=''
)
def CargarNotas(self):
if (self.lt_texto == "") or (self.lt_texto == False):
return(True)
Texto = """{} - {}: {} \n{}""".format(self.env.user.display_name,
datetime.now().strftime('%Y-%m-%d %H:%M'),
self.lt_texto, self.lt_notitas)
self.lt_notitas = Texto
self.lt_texto = ""
return(True)
def obtener_nombre(self): def obtener_nombre(self):
for record in self: for record in self:
fecha = record.hasta fecha = record.hasta
...@@ -63,12 +113,9 @@ class hdgt_liquidacionestareas(models.Model): ...@@ -63,12 +113,9 @@ class hdgt_liquidacionestareas(models.Model):
string = "{} - {}".format(fecha,usuario) string = "{} - {}".format(fecha,usuario)
record.nombre = string record.nombre = string
def crear_linea(self,liquidacion,usuario,desde,hasta): def crear_linea(self,liquidacion,usuario,desde,hasta):
desde1 = "{} 00:00:01".format(desde) desde1 = "{} 00:00:01".format(desde)
hasta1 = "{} 23:59:59".format(hasta) hasta1 = "{} 23:59:59".format(hasta)
#import ipdb; ipdb.set_trace() #import ipdb; ipdb.set_trace()
tareas = self.env['hgt.tarea'].search([('ejecutor','=',usuario),('write_date', '>', desde1),('write_date', '<', hasta1)]) tareas = self.env['hgt.tarea'].search([('ejecutor','=',usuario),('write_date', '>', desde1),('write_date', '<', hasta1)])
...@@ -79,29 +126,38 @@ class hdgt_liquidacionestareas(models.Model): ...@@ -79,29 +126,38 @@ class hdgt_liquidacionestareas(models.Model):
'inicio': desde, 'inicio': desde,
'cierre': hasta, 'cierre': hasta,
}) })
nva_lin.computar_minutos_a_liquidar()
return len(tareas) return len(tareas)
def obtener_total(self): def obtener_total(self):
for liq in self:
tot = 0 tot = 0
for record in liq.lineas_tareas: for record in self.lineas_tareas:
tot = tot + record.subtotal tot = tot + record.subtotal
liq.total = tot return(tot)
def aprobar_liquidaciones(self): def aprobar_liquidaciones(self):
self.total_aprobado = self.obtener_total()
self.aprobado = True
self.fecha_aprobado = datetime.now()
self.aprobador = self.env.user.id
self.estado = 'aprobado' self.estado = 'aprobado'
def abonar_liquidaciones(self): def abonar_liquidaciones(self):
self.estado = 'liquidado' self.total = self.obtener_total()
self.abonado = True self.fecha_abonado = datetime.now()
self.abonador = self.env.user.id
for tar in self.lineas_tareas: for tar in self.lineas_tareas:
if (tar.tarea.liquidado == False) : if tar.minutos_a_liquidar > 0:
if tar.tarea.liquidado == False:
tar.tarea.horas_liquidadas = tar.minutos_reales tar.tarea.horas_liquidadas = tar.minutos_reales
tar.tarea.liquidado = True tar.tarea.liquidado = True
else: else:
raise UserError('Alguna de estas tareas ya fue liquidada previamente') tar.tarea.horas_liquidadas += tar.minutos_a_liquidar
self.estado = 'liquidado'
self.abonado = True
return(True)
def volver_borrador(self): def volver_borrador(self):
self.estado = 'borrador' self.estado = 'borrador'
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
from odoo import models, fields, api from odoo import models, fields, api
from odoo.exceptions import UserError from odoo.exceptions import UserError
from datetime import datetime
class hgt_masterliquidaciones(models.Model): class hgt_masterliquidaciones(models.Model):
_name = 'hgt.masterliquidaciones' _name = 'hgt.masterliquidaciones'
...@@ -32,10 +33,30 @@ class hgt_masterliquidaciones(models.Model): ...@@ -32,10 +33,30 @@ class hgt_masterliquidaciones(models.Model):
) )
hasta = fields.Date( hasta = fields.Date(
string='Desde', string='Hasta',
default=fields.Date.context_today, 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): def generar_liquidaciones(self):
for ejecutor in self.ejecutores: for ejecutor in self.ejecutores:
datos = { datos = {
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<form> <form>
<header> <header>
<button name="aprobar_liquidaciones" class='btn btn-primary' string="Aprobar" type="object" attrs='{ "invisible" : [("estado", "!=", "borrador")] }' /> <button name="aprobar_liquidaciones" class='btn btn-primary' string="Aprobar" type="object" attrs='{ "invisible" : [("estado", "!=", "borrador")] }' />
<button name="abonar_liquidaciones" string="Abonar" type="object" attrs='{ "invisible" : [("estado", "!=", "aprobado")] }' /> <button name="abonar_liquidaciones" class='btn btn-success' string="Abonar" type="object" attrs='{ "invisible" : [("estado", "!=", "aprobado")] }' />
<button name="volver_borrador" string="Volver a Borrador" type="object" attrs='{ "invisible" : [("estado", "!=", "aprobado")] }'/> <button name="volver_borrador" string="Volver a Borrador" type="object" attrs='{ "invisible" : [("estado", "!=", "aprobado")] }'/>
<field name="estado" widget="statusbar"/> <field name="estado" widget="statusbar"/>
</header> </header>
...@@ -57,8 +57,16 @@ ...@@ -57,8 +57,16 @@
<field colspan="2" name="hasta" readonly="1" /> <field colspan="2" name="hasta" readonly="1" />
</group> </group>
<group col="4"> <group col="4">
<field colspan="2" name="total" attrs='{ "readonly" : [("estado", "!=", "borrador")] }' /> <field colspan="2" name="total_aprobado" readonly="1" />
<field colspan="2" name="abonado" attrs='{ "readonly" : [("estado", "!=", "borrador")] }'/> <field colspan="2" name="aprobado" readonly="1"/>
<field colspan="2" name="fecha_aprobado" readonly="1"/>
<field colspan="2" name="aprobador" readonly="1"/>
</group>
<group col="4">
<field colspan="2" name="total" readonly="1" />
<field colspan="2" name="abonado" readonly="1"/>
<field colspan="2" name="fecha_abonado" readonly="1"/>
<field colspan="2" name="abonador" readonly="1"/>
</group> </group>
<group col="4" string="Tareas"> <group col="4" string="Tareas">
<field nolabel="1" widget="one2many" name="lineas_tareas" attrs='{ "readonly" : [("estado", "!=", "borrador")] }'> <field nolabel="1" widget="one2many" name="lineas_tareas" attrs='{ "readonly" : [("estado", "!=", "borrador")] }'>
...@@ -67,11 +75,23 @@ ...@@ -67,11 +75,23 @@
<field name="state" readonly="1" /> <field name="state" readonly="1" />
<field name="name" readonly="1" /> <field name="name" readonly="1" />
<field name="minutos_reales" sum='1' readonly="1" /> <field name="minutos_reales" sum='1' readonly="1" />
<field name="minutos_a_liquidar" sum='1' readonly="1" />
<field name="tipo_cargo" editable="1" readonly="0" /> <field name="tipo_cargo" editable="1" readonly="0" />
<field name="subtotal" sum='1' readonly="1" force_save="1" /> <field name="subtotal" sum='1' readonly="1" force_save="1" />
</tree> </tree>
</field> </field>
</group> </group>
<h2>Bitácora</h2>
<group col="3">
<field name="lt_texto"/>
<button name="CargarNotas" string="Archivar en la bitácora" type="object" class="oe_edit_only" />
</group>
<group col="1">
<field name="lt_notitas" nolabel="1" attrs="{'readonly': True}"/>
</group>
</sheet> </sheet>
</form> </form>
</field> </field>
......
...@@ -55,6 +55,17 @@ ...@@ -55,6 +55,17 @@
<group col="2" string="Liquidaciones"> <group col="2" string="Liquidaciones">
<field colspan="2" nolabel="1" name="liquidaciones" /> <field colspan="2" nolabel="1" name="liquidaciones" />
</group> </group>
<h2>Bitácora</h2>
<group col="3">
<field name="mt_texto"/>
<button name="CargarNotas" string="Archivar en la bitácora" type="object" class="oe_edit_only" />
</group>
<group col="1">
<field name="mt_notitas" nolabel="1" attrs="{'readonly': True}"/>
</group>
</sheet> </sheet>
</form> </form>
</field> </field>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!