-
Notifications
You must be signed in to change notification settings - Fork 0
/
ccl.py
119 lines (118 loc) · 4.1 KB
/
ccl.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Gestión de categorías de clientes"""
import cgitb; cgitb.enable()
import cgi
import datos
import htm
import pagina
def listado():
"""Listado de categorías de clientes"""
pag = pagina.Pagina("Listado de categorías de clientes", 4)
print(htm.button("Nuevo", "ccl.py?accion=nuevo"))
cat_clientes = datos.Tabla("cat_clientes")
cat_clientes.orden = "categoria"
cat_clientes.filtrar()
htm.encabezado_tabla(["Nº", "Categoria", "Acciones"])
for fila in cat_clientes.resultado:
print("<tr class='fila_datos'>")
print(htm.td(fila["id"]))
print(htm.td(fila["categoria"]))
print("<td>")
htm.boton_detalles("ccl_ver.php?accion=categoria&id=" +
str(fila["id"]))
htm.boton_editar("ccl.py?accion=editar&id=" + str(fila["id"]))
htm.boton_eliminar("ccl.py?accion=eliminar&id=" + str(fila["id"]))
print('</td></tr>')
htm.fin_tabla()
print(htm.button('Volver', 'geined.py?accion=sistema'))
pag.fin()
def editar(frm):
"""Editar categoria de cliente"""
ident = str(frm.getvalue("id"))
cat_clientes = datos.Tabla("cat_clientes")
cat_clientes.buscar("id", ident)
pag = pagina.Pagina("Edición de categoría de clientes", 2)
htm.form_edicion("Edición de categorías de clientes",
"ccl.py?accion=actualizar")
htm.campo_oculto('id', ident)
htm.input_texto("Categoría:", "categoria",
cat_clientes.registro['categoria'])
htm.botones('ccl.py?accion=listado')
htm.form_edicion_fin()
pag.fin()
def nuevo():
"""Nueva categoria de clientes"""
pag = pagina.Pagina("Categoría de clientes")
htm.form_edicion("Nueva categoría de clientes", "ccl.py?accion=agregar")
htm.input_texto("Categoría:", "categoria", '')
htm.botones('ccl.py?accion=listado')
htm.form_edicion_fin()
pag.fin()
def actualizar(frm):
"""Actualizad datos en la BDD"""
pag = pagina.Pagina("Actualizando", 20)
ident = frm.getvalue("id")
cat_clientes = datos.Tabla("cat_clientes")
cat_clientes.buscar("id", ident)
cat_clientes.registro["categoria"] = frm.getvalue("categoria")
cat_clientes.actualizar()
listado()
listado()
pag.fin()
def agregar(frm):
"""Agregar categoría de cliente"""
pag = pagina.Pagina("Agregando datos", 20)
cat_clientes = datos.Tabla("cat_clientes")
cat_clientes.buscar("categoria", frm.getvalue("categoria"))
if cat_clientes.encontrado:
print(htm.h2("Ya existe una categoría con ese nombre"))
print(htm.button("Volver", "ccl.py?accion=listado"))
else:
cat_clientes.registro["categoria"] = frm.getvalue("categoria")
cat_clientes.insertar()
print(htm.h2("Dato insertado"))
listado()
pag.fin()
def eliminar(frm):
"""Eliminar categoría de cliente"""
# Modificar categorías de clientes a Null
# OJO, tengo dificultades para asignar el valor NULL (None en python)
# al campo categoria_id dentro de CLIENTES
# queda como bug en launchpad
clientes = datos.Tabla("clientes")
clientes.filtro = "categoria_id=" + str(frm["id"].value)
clientes.filtrar()
cliente = datos.Tabla("clientes")
#cliente.filtrar()
# Esto es necesario porque sinó queda un registro sin cambiar!
clientes.registro["categoria_id"] = None
clientes.actualizar()
for fila in clientes.resultado:
cliente.ir_a(fila["id"])
cliente.registro["categoria_id"] = None
cliente.actualizar()
# Eliminar la categoría de clientes
cat_clientes = datos.Tabla("cat_clientes")
cat_clientes.borrar(frm.getvalue("id"))
listado()
def main():
"""Rutina principal"""
form = cgi.FieldStorage()
accion = form.getvalue("accion", "listado")
if accion == "listado":
listado()
elif accion == "editar":
editar(form)
elif accion == "actualizar":
actualizar(form)
elif accion == "nuevo":
nuevo()
elif accion == "agregar":
agregar(form)
elif accion == "eliminar":
eliminar(form)
else:
listado()
if __name__ == "__main__":
main()