~marcelo-escobal/geined/Alianza

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Manejo de valores salariales"""
import cgitb ; cgitb.enable()
import cgi
import funciones
import htm
import datos
import pagina
def listado():
    """Lista variables de salarios"""
    pag = pagina.Pagina("Listado de variales de salarios",  10)
    print(htm.encabezado("Listado de variables de salarios", "Sueldos",
                         "geined.py?accion=sueldos"))
    print(htm.div(htm.boton("Nuevo",  "sal.py?accion=nuevo") +
        'Nota: Ingresar solamente cuando hayan modificaciones salariales.' +
        'Consignar la fecha a partir de la cual es EFECTIVO el aumento', 
        clase="barra"))
    salario = datos.Tabla("salario")
    salario.orden = "fecha DESC"
    salario.filtrar()
    cat_empleados = datos.Tabla("cat_empleados")
    salario.orden = "fecha DESC"
    htm.encabezado_tabla(["Categoria", "Fecha", "Hora semanal", 
                          "Ficto semanal", "Accion"])
    for fila in salario.resultado:
        print("<tr class='fila_datos'>")
        cat_empleados.buscar("id", fila["cat_empleado_id"])
        print(htm.td(cat_empleados.registro["categoria"]) +
            htm.td(funciones.mysql_a_fecha(fila["fecha"])) +
            htm.td(funciones.moneda(fila["hora_semanal"]), "right") +
            htm.td(funciones.moneda(fila["ficto_semanal"]), "right"))
        print("<td align='center'>")
        htm.boton_editar("sal.py?accion=editar&id=" + str(fila["id"]))
        htm.boton_eliminar("sal.py?accion=eliminar&id=" + str(fila["id"]))
        print("</td></tr>")
    htm.fin_tabla()
    print(htm.button('Volver', 'geined.py?accion=administracion'))
    pag.fin()
def nuevo():
    """Nuevo grupo de valores salariales"""
    pag = pagina.Pagina("Nuevo grupo de valores salariales",  4, fecha = 1)
    cat_empleados = datos.Tabla("cat_empleados")
    cat_empleados.orden = "id ASC"
    cat_empleados.filtrar()
    htm.form_edicion("Nuevos valores salariales", "sal.py?accion=agregar")
    htm.input_combo("Categoría:", "cat_empleado_id", 
                    cat_empleados.resultado, ['id', 'categoria'], '')
    htm.input_fecha("Fecha:", "fecha", 
                    funciones.fecha_a_mysql(funciones.hoy()))
    htm.input_numero('Hora Semanal:', 'hora_semanal', 0)
    htm.input_numero('Ficto semanal:', 'ficto_semanal', 0)
    # htm.input_numero('Salario mensual:', 'mensual', 0)
    htm.botones('sal.py?accion=listado')
    htm.form_edicion_fin()
    pag.fin()
def agregar(frm):
    """Agregar datos de salario"""
    salario = datos.Tabla("salario")
    salario.nuevo()
    salario.registro["cat_empleado_id"] = frm["cat_empleado_id"].value
    salario.registro['fecha'] = funciones.fecha_a_mysql(frm['fecha'].value)
    salario.registro['hora_semanal'] = frm.getvalue('hora_semanal')
    salario.registro['ficto_semanal'] = frm.getvalue('ficto_semanal')
    # salario.registro['mensual'] = frm['mensual'].value
    salario.insertar()
    listado()
def editar(frm):
    """Editar valor salarial"""
    pag = pagina.Pagina("Edicion de valor salarial", 4, fecha = 1)
    # Bases de datos
    salario = datos.Tabla('salario')
    catemp = datos.Tabla('cat_empleados')
    salario.buscar('id', frm['id'].value)
    catemp.orden = "id ASC"
    catemp.filtrar()
    # Formulario
    htm.form_edicion("Edición de valores salariales", 
                     "sal.py?accion=actualizar")
    htm.campo_oculto("id", frm['id'].value)
    htm.input_combo("Categoría:", "cat_empleado_id", catemp.resultado, 
                    ['id', 'categoria'], salario.registro['cat_empleado_id'])
    htm.input_fecha("Fecha:", "fecha", salario.registro["fecha"])
    htm.input_numero("Hora semanal:", "hora_semanal", 
                     salario.registro["hora_semanal"])
    htm.input_numero("Ficto semanal:", "ficto_semanal", 
                     salario.registro["ficto_semanal"])
    # htm.input_numero("Salario mensual:", 
    # "mensual", salario.registro["mensual"])
    htm.botones('sal.py?accion=listado')
    htm.form_edicion_fin()
    pag.fin()
def actualizar(frm):
    """Actualizar valores salariales"""
    salarios = datos.Tabla("salario")
    salarios.buscar("id", frm['id'].value)
    salarios.registro["cat_empleado_id"] = frm["cat_empleado_id"].value
    salarios.registro["fecha"] = funciones.fecha_a_mysql(frm["fecha"].value)
    salarios.registro["hora_semanal"] = frm.getvalue("hora_semanal")
    salarios.registro["ficto_semanal"] = frm.getvalue("ficto_semanal")
    # salarios.registro["mensual"] = frm["mensual"].value
    salarios.actualizar()
    listado()
def eliminar(frm):
    """Eliminar un registro de salario"""
    salario = datos.Tabla("salario")
    salario.borrar(frm["id"].value)
    listado()
def main():
    """Principal"""
    form = cgi.FieldStorage()
    accion = "listado"
    if form.has_key("accion"):
        accion = form["accion"].value
    if accion == "listado":
        listado()
    elif accion == "nuevo":
        nuevo()
    elif accion == "agregar":
        agregar(form)
    elif accion == "editar":
        editar(form)
    elif accion == "actualizar":
        actualizar(form)
    elif accion == "eliminar":
        eliminar(form)
if __name__ == "__main__":
    main()