Commit 0183508d by Juan

Merge branch 'master' of git.anacsoft.com:matu/hgt_liquidacion_tareas

2 parents f91e5b46 fc23493f
# -*- coding: utf-8 -*-
# from . import controllers
from . import models
\ No newline at end of file
from . import models
from . import reportes
\ No newline at end of file
......@@ -31,6 +31,8 @@
'data': [
'security/permisos.xml',
'security/ir.model.access.csv',
'reportes/template_reporte_liquidaciones.xml',
'reportes/reporte_liquidaciones.xml',
'views/vista_maestro.xml',
'views/vista_liquidaciones.xml',
'views/vista_tipocargo.xml',
......
......@@ -42,7 +42,7 @@ class hgt_linea_tarea(models.Model):
tipo_cargo = fields.Many2one(
string='Tipo de Cargo',
comodel_name='hgt.tipo_cargo',
ondelete='restrict',
ondelete='set null',
)
subtotal = fields.Float(
......
......@@ -55,6 +55,17 @@ class hdgt_liquidacionestareas(models.Model):
selection=[('borrador', 'Borrador'), ('aprobado', 'Aprobado'), ('liquidado', 'Liquidado')],
default='borrador',
)
reporte_ejecutor = fields.Many2one(
string=u'Ejecutó',
comodel_name='res.users',
default=lambda self: self.env.user
)
reporte_fecha = fields.Datetime(
string='field_name',
default=fields.Datetime.now,
)
def obtener_nombre(self):
for record in self:
......@@ -65,19 +76,21 @@ class hdgt_liquidacionestareas(models.Model):
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),('inicio', '>', desde1),('inicio', '<', hasta1)])
puesto = self.env['hgt.tipo_cargo'].search([('ejecutores','=',usuario)], limit=1)
for tarea in tareas.ids:
nva_lin = self.env['hgt.linea_tarea'].create({
'tarea': tarea,
'liquidaciones':liquidacion,
'inicio': desde,
'cierre': hasta,
'tipo_cargo': puesto.id,
})
return len(tareas)
......@@ -110,7 +123,20 @@ class hdgt_liquidacionestareas(models.Model):
tar.tarea.horas_liquidadas = tar.tarea.horas_liquidadas - tar.minutos_reales
tar.tarea.liquidado = False
def imprimir_liquidaciones(self):
obj = self.env.ref('hgt_liquidacion_tareas.reporte_liquidaciones').report_action(self)
return obj
def ver_liquidacion(self):
return {
'type': 'ir.actions.act_window',
'name': 'Liquidaciones',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'hgt.liquidacionestareas',
'res_id': self.id,
'target': 'current',
}
......@@ -44,12 +44,13 @@ class hgt_masterliquidaciones(models.Model):
'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')
......
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<report
id="reporte_liquidaciones"
string="Reporte de Liquidaciones"
model="hgt.liquidacionestareas"
report_type="qweb-html"
name="hgt_liquidacion_tareas.hgt_liquidacionestareas"
file="hgt_liquidacion_tareas.hgt_liquidacionestareas" />
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="0">
<template id="hgt_liquidacionestareas">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.external_layout">
<div class="page">
<header col="4">
<h1>Reporte de liquidaciones</h1>
<div colspan="2">
<p><b>Ejecuta:</b> <span t-field="o.reporte_ejecutor"></span></p>
</div>
<div colspan="2">
<p><b>En la fecha:</b> <span t-field="o.reporte_fecha"></span></p>
</div>
</header>
<div>
<div colspan="2">
<h2>Tareas Liquidadas:</h2>
</div>
<table class="table table-condensed" style="border: 3px solid black; border-collapse: collapse;">
<thead style="padding:10px;">
<tr>
<th colspan='5' style="font-size:30px; border: 3px solid black; " ><strong>Tareas</strong></th>
</tr>
</thead>
<tbody>
<t t-set="estilo_cabecera" t-value="'font-size:20px; border: 3px solid black; padding:5px; '" />
<tr>
<td t-att-style="estilo_cabecera" >Estado</td>
<td t-att-style="estilo_cabecera" >Tarea</td>
<td t-att-style="estilo_cabecera" >Minutos</td>
<td t-att-style="estilo_cabecera" >Cargo</td>
<td t-att-style="estilo_cabecera" >Subtotal</td>
</tr>
<t t-set="estilo_celda" t-value="'font-size:20px; border:1px solid black; padding:5px;'" />
<t t-set="total_min" t-value="0" />
<t t-set="total_plata" t-value="0" />
<t t-foreach="o.lineas_tareas" t-as="tar">
<tr>
<td t-att-style="estilo_celda" ><span t-field="tar.state"/></td>
<td t-att-style="estilo_celda" ><span t-field="tar.name"/></td>
<td t-att-style="estilo_celda" ><span t-field="tar.minutos_reales"/></td>
<td t-att-style="estilo_celda" ><span t-field="tar.tipo_cargo"/></td>
<td t-att-style="estilo_celda" ><span t-field="tar.subtotal"/></td>
<t t-set="total_min" t-value="total_min + tar.minutos_reales" />
<t t-set="total_plata" t-value="total_plata + tar.subtotal" />
</tr>
</t>
</tbody>
</table>
<div colspan="2">
<t t-set="total_horas" t-value="total_min/60" />
<p><b>Total horas:</b> <span t-esc="total_horas"/></p>
<p><b>Total:</b> <span t-esc="total_plata"/> </p>
</div>
</div>
</div>
</t>
</t>
</t>
</template>
</data>
</odoo>
......@@ -43,6 +43,7 @@
<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="volver_borrador" string="Volver a Borrador" type="object" attrs='{ "invisible" : [("estado", "!=", "aprobado")] }'/>
<button name="imprimir_liquidaciones" class='btn btn-default' string="Imprimir" type="object" attrs='{ "invisible" : [("estado", "=", "borrador")] }' />
<field name="estado" widget="statusbar"/>
</header>
<sheet>
......@@ -67,7 +68,7 @@
<field name="state" readonly="1" />
<field name="name" readonly="1" />
<field name="minutos_reales" sum='1' readonly="1" />
<field name="tipo_cargo" editable="1" readonly="0" />
<field name="tipo_cargo" editable="1" />
<field name="subtotal" sum='1' readonly="1" force_save="1" />
</tree>
</field>
......
......@@ -53,7 +53,17 @@
<field colspan="2" nolabel="1" name="ejecutores" widget="many2many_tags" />
</group>
<group col="2" string="Liquidaciones">
<field colspan="2" nolabel="1" name="liquidaciones" />
<field colspan="2" nolabel="1" name="liquidaciones">
<tree create="0" edit="0" editable="0">
<field name="nombre" readonly="1" />
<field name="desde" readonly="1" />
<field name="hasta" readonly="1" />
<field name="estado" readonly="1" />
<field name="total" readonly="1" />
<field name="abonado" readonly="1" />
<button name="ver_liquidacion" class='btn btn-primary' string="Ir" type="object" />
</tree>
</field>
</group>
</sheet>
</form>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!