-
Notifications
You must be signed in to change notification settings - Fork 1
/
editarInfoUsuario.py
158 lines (130 loc) · 7.46 KB
/
editarInfoUsuario.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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
from tkinter import *
from errorMessage import ErrorMessage
import connection as con
import customtkinter as ct
class EditarInfoUsuario:
def __init__(self, parent):
self.parent = parent
self.win = Toplevel(parent)
self.win.title("Editar Informacion de Usuario")
self.widget_list_dataPersonal = []
etiTitle = ct.CTkLabel(self.win, text="Editar Informacion de Usuario", font=("Arial", 20, "bold"))
etiIdUsuario = ct.CTkLabel(self.win, text="Id del usuario")
inputIdUsuario = ct.CTkEntry(self.win, width=200)
buttonBuscar = ct.CTkButton(self.win, text="Buscar", command= lambda: self.buscarUsuario(inputIdUsuario), width=100)
etiUsuario = ct.CTkLabel(self.win, text="Usuario", width=200)
etiContrasena = ct.CTkLabel(self.win, text="Contraseña", width=200)
inputUsuario = ct.CTkEntry(self.win, width=200)
inputContrasena = ct.CTkEntry(self.win, width=200)
buttonBuscarRegistro = ct.CTkButton(self.win, text="Buscar", command= lambda: self.buscarRegistroUsuario(inputUsuario, inputContrasena), width=100)
etiTitle.pack(pady=5)
etiIdUsuario.pack()
inputIdUsuario.pack(pady=5)
buttonBuscar.pack(pady=5)
etiUsuario.pack()
inputUsuario.pack(pady=5)
etiContrasena.pack()
inputContrasena.pack(pady=5)
buttonBuscarRegistro.pack(pady=5)
self.win.geometry("600x700")
def buscarUsuario(self, inputIdUsuario):
for widget in self.widget_list_dataPersonal:
widget.destroy()
self.widget_list_dataPersonal = []
dicLabels = {}
dicResults = {}
listResults = []
queryColumn = f"SELECT * FROM medico where num_col = '{inputIdUsuario.get()}'"
queryResults = f"SELECT * FROM medico where num_col = '{inputIdUsuario.get()}'"
column_names = con.column_names(queryColumn) # Obtener los nombres de las columnas
results = con.connect(queryResults) # Obtener los valores de las columnas
for i in range(len(column_names)):
dicLabels[column_names[i]] = ct.CTkLabel(self.win, text=column_names[i].capitalize())
for i in range(len(results)):
listResults = list(results[i])
if (len(listResults) == 0):
ErrorMessage(self.win, "No se encontro el usuario")
else:
keys = [] #Permite tener valores repetidos en el diccionario
for i in range(len(listResults)):
key = listResults[i]
while (key in dicResults):
key = key + "1"
dicResults[key] = ct.CTkEntry(self.win, width=200)
dicResults[key].insert(0, listResults[i]) # Inserta el valor en el Entry
keys.append(key)
if (len(listResults) == len(column_names)):
for i in range(len(column_names)):
dicLabels[column_names[i]].pack()
dicResults[keys[i]].pack()
self.widget_list_dataPersonal.append(dicLabels[column_names[i]])
self.widget_list_dataPersonal.append(dicResults[keys[i]])
buttonModificar = ct.CTkButton(self.win, text="Modificar", command= lambda: ObtenerValoresNuevos(), width=100)
buttonModificar.pack()
self.widget_list_dataPersonal.append(buttonModificar)
def ObtenerValoresNuevos():
newValores = []
for i in dicResults:
newValores.append(dicResults[i].get())
self.ModificaValores(newValores, inputIdUsuario)
def ModificaValores(self, newValores, inputIdUsuario):
update = f"UPDATE medico SET num_col = '{newValores[0]}', nombre = '{newValores[1]}', apellido = '{newValores[2]}', especialidad = '{newValores[3]}', telefono = '{newValores[4]}', direccion = '{newValores[5]}', email = '{newValores[6]}' WHERE num_col = '{inputIdUsuario.get()}'"
resultado = con.connect(update)
if (resultado == ""):
mensaje = "Se ha registrado correctamente"
ErrorMessage(self.win, mensaje=mensaje)
else:
mensaje = "Ha ocurrido un error al registrar"
ErrorMessage(self.win, mensaje=mensaje)
# Registro de usuario
def buscarRegistroUsuario(self, inputUsuario, inputContrasena):
for widget in self.widget_list_dataPersonal:
widget.destroy()
self.widget_list_dataPersonal = []
dicLabels = {}
dicResults = {}
listResults = []
queryColumn = f"SELECT * FROM usuarios"
queryResults = f"SELECT * FROM usuarios where usuario = '{inputUsuario.get()}' and contrasena = '{inputContrasena.get()}' and administrador = false"
column_names = con.column_names(queryColumn) # Obtener los nombres de las columnas
results = con.connect(queryResults) # Obtener los valores de las columnas
for i in range(len(column_names)):
dicLabels[column_names[i]] = ct.CTkLabel(self.win, text=column_names[i].capitalize())
for i in range(len(results)):
listResults = list(results[i])
if (len(listResults) == 0):
ErrorMessage(self.win, "No se encontro el usuario")
else:
keys = [] #Permite tener valores repetidos en el diccionario
for i in range(len(listResults)):
key = listResults[i]
while (key in dicResults):
key = str(key) + "1"
dicResults[key] = ct.CTkEntry(self.win)
dicResults[key].insert(0, listResults[i]) # Inserta el valor en el Entry
keys.append(key)
if (len(listResults) == len(column_names)):
for i in range(len(column_names)):
if(column_names[i] == "administrador"):
continue
dicLabels[column_names[i]].pack()
dicResults[keys[i]].pack()
self.widget_list_dataPersonal.append(dicLabels[column_names[i]])
self.widget_list_dataPersonal.append(dicResults[keys[i]])
buttonModificar = ct.CTkButton(self.win, text="Modificar", command= lambda: ObtenerValoresNuevosRegistroUsuario())
buttonModificar.pack()
self.widget_list_dataPersonal.append(buttonModificar)
def ObtenerValoresNuevosRegistroUsuario():
newValores = []
for i in dicResults:
newValores.append(dicResults[i].get())
self.ModificalValoresRegistroUsuario(newValores, inputUsuario, inputContrasena)
def ModificalValoresRegistroUsuario(self, newValores, inputUsuario, inputContrasena):
update = f"UPDATE usuarios SET usuario = '{newValores[0]}', contrasena = '{newValores[1]}', id_establecimiento = '{newValores[2]}', administrador = false, encargado_bodega = '{newValores[4]}' where usuario = '{inputUsuario.get()}' and contrasena = '{inputContrasena.get()}'"
resultado = con.connect(update)
if (resultado == ""):
mensaje = "Se ha registrado correctamente"
ErrorMessage(self.win, mensaje=mensaje)
else:
mensaje = "Ha ocurrido un error al registrar"
ErrorMessage(self.win, mensaje=mensaje)