Commit 121bfba0 by Maria Agustina

1768 casi terminada

1 parent 2979d722
......@@ -36,8 +36,14 @@ class hgt_linea_tarea(models.Model):
minutos_reales = fields.Integer(
related='tarea.minutos_reales',
readonly=True,
store=True
store=True,
)
minutos_a_liquidar = fields.Integer(
string='Minutos no liquidados',
readonly=True,
store=True,
)
tipo_cargo = fields.Many2one(
string='Tipo de Cargo',
......@@ -60,14 +66,17 @@ class hgt_linea_tarea(models.Model):
def obtener_subtotal(self):
for record in self:
if record.tipo_cargo:
horas = (record.minutos_reales)/60
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
\ No newline at end of file
# -*- coding: utf-8 -*-
from odoo import models, fields, api
import datetime
from datetime import datetime
from odoo.exceptions import UserError
#from lib.config import config
DEFAULT_SERVER_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
......@@ -40,14 +40,44 @@ class hdgt_liquidacionestareas(models.Model):
string='Hasta',
)
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(
string='Total',
compute="obtener_total",
string='Total Abonado',
readonly = True,
)
abonado = fields.Boolean(
string='Abonado?',
readonly= True,
)
fecha_abonado = fields.Datetime(
string= "Fecha Abonado",
)
abonador = fields.Many2one(
string='Abonador',
comodel_name='res.users',
)
estado = fields.Selection(
......@@ -55,6 +85,26 @@ class hdgt_liquidacionestareas(models.Model):
selection=[('borrador', 'Borrador'), ('aprobado', 'Aprobado'), ('liquidado', 'Liquidado')],
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):
for record in self:
......@@ -63,12 +113,9 @@ class hdgt_liquidacionestareas(models.Model):
string = "{} - {}".format(fecha,usuario)
record.nombre = string
def crear_linea(self,liquidacion,usuario,desde,hasta):
desde1 = "{} 00:00:01".format(desde)
hasta1 = "{} 23:59:59".format(hasta)
#import ipdb; ipdb.set_trace()
tareas = self.env['hgt.tarea'].search([('ejecutor','=',usuario),('write_date', '>', desde1),('write_date', '<', hasta1)])
......@@ -79,29 +126,38 @@ class hdgt_liquidacionestareas(models.Model):
'inicio': desde,
'cierre': hasta,
})
nva_lin.computar_minutos_a_liquidar()
return len(tareas)
def obtener_total(self):
for liq in self:
tot = 0
for record in liq.lineas_tareas:
tot = tot + record.subtotal
liq.total = tot
tot = 0
for record in self.lineas_tareas:
tot = tot + record.subtotal
return(tot)
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'
def abonar_liquidaciones(self):
self.total = self.obtener_total()
self.fecha_abonado = datetime.now()
self.abonador = self.env.user.id
for tar in self.lineas_tareas:
if tar.minutos_a_liquidar > 0:
if tar.tarea.liquidado == False:
tar.tarea.horas_liquidadas = tar.minutos_reales
tar.tarea.liquidado = True
else:
tar.tarea.horas_liquidadas += tar.minutos_a_liquidar
self.estado = 'liquidado'
self.abonado = True
for tar in self.lineas_tareas:
if (tar.tarea.liquidado == False) :
tar.tarea.horas_liquidadas = tar.minutos_reales
tar.tarea.liquidado = True
else:
raise UserError('Alguna de estas tareas ya fue liquidada previamente')
return(True)
def volver_borrador(self):
self.estado = 'borrador'
......
......@@ -2,6 +2,7 @@
from odoo import models, fields, api
from odoo.exceptions import UserError
from datetime import datetime
class hgt_masterliquidaciones(models.Model):
_name = 'hgt.masterliquidaciones'
......@@ -32,10 +33,30 @@ class hgt_masterliquidaciones(models.Model):
)
hasta = fields.Date(
string='Desde',
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 = {
......
......@@ -41,7 +41,7 @@
<form>
<header>
<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")] }'/>
<field name="estado" widget="statusbar"/>
</header>
......@@ -57,8 +57,16 @@
<field colspan="2" name="hasta" readonly="1" />
</group>
<group col="4">
<field colspan="2" name="total" attrs='{ "readonly" : [("estado", "!=", "borrador")] }' />
<field colspan="2" name="abonado" attrs='{ "readonly" : [("estado", "!=", "borrador")] }'/>
<field colspan="2" name="total_aprobado" readonly="1" />
<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 col="4" string="Tareas">
<field nolabel="1" widget="one2many" name="lineas_tareas" attrs='{ "readonly" : [("estado", "!=", "borrador")] }'>
......@@ -67,11 +75,23 @@
<field name="state" readonly="1" />
<field name="name" 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="subtotal" sum='1' readonly="1" force_save="1" />
</tree>
</field>
</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>
</form>
</field>
......
......@@ -55,6 +55,17 @@
<group col="2" string="Liquidaciones">
<field colspan="2" nolabel="1" name="liquidaciones" />
</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>
</form>
</field>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!