Commit 121bfba0 by Maria Agustina

1768 casi terminada

1 parent 2979d722
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -36,7 +36,13 @@ 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(
......@@ -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"
......@@ -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(
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(
......@@ -56,6 +86,26 @@ class hdgt_liquidacionestareas(models.Model):
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:
fecha = record.hasta
......@@ -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:
for record in self.lineas_tareas:
tot = tot + record.subtotal
liq.total = tot
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.estado = 'liquidado'
self.abonado = True
self.total = self.obtener_total()
self.fecha_abonado = datetime.now()
self.abonador = self.env.user.id
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.liquidado = True
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):
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!