Código:
import tkinter as tk
from tkinter import ttk,messagebox
import sqlite3
import datetime
from win10toast import ToastNotifier
# toaster = ToastNotifier()
# toaster.show_toast("App Gimnasio",
# "¡Hay que pagar la cuota!",
# duration=60)
db = sqlite3.connect("Gimnasio_MDD.db")
cursor = db.cursor()
#cursor.execute("create table Clientes (Id integer primary key autoincrement,nombre text, fecha_de_nacimiento text,telefono numeric,vencimiento_de_la_cuota numeric)")
def agregar_clientes():
Id = 0
nombre = caja_nombre.get()
fecha_de_nacimiento= caja_fecha.get()
telefono = int(caja_telefono.get())
Vencimiento_de_la_cuota = int(caja_vencimiento.get())
if nombre == "" and fecha_de_nacimiento == "" and telefono == "" and Vencimiento_de_la_cuota == "" :
messagebox.showerror(message = "Complete todos lo campos!")
#db.close
else:
clientes_tab.insert("", tk.END, text=nombre, values=(fecha_de_nacimiento, telefono ,Vencimiento_de_la_cuota))
try:
cursor.execute("insert into Clientes values(NULL,?,?,?,?) ",(nombre,fecha_de_nacimiento ,telefono,Vencimiento_de_la_cuota))
db.commit()
caja_nombre.delete(0,tk.END)
caja_fecha.delete(0,tk.END)
caja_telefono.delete(0,tk.END)
caja_vencimiento.delete(0,tk.END)
except ValueError:
messagebox.showerror(message ="solo numeros!")
def eliminar():
clientes = cursor.fetchall()
for cliente in clientes:
cliente = cliente[1]
if selecion == " ":
print("no se eligio")
elif selecion == cliente:
cursor.execute("delete from Clientes where nombre = ?",(selecion,))
def listar():
cursor.execute("select * from Clientes")
clientes = cursor.fetchall()
for cliente in clientes:
clientes_tab.insert(
"",
tk.END,
text=cliente[1],
values = (cliente[2],cliente[3],cliente[4]))
db.commit()
def editar_clientes():
nueva_ventana = tk.Toplevel(ventana)
nueva_ventana.config(width=400,height=300)
nueva_ventana.title("Editar")
lbl_edit_nombre = ttk.Label(nueva_ventana,text="Ingrese nombre")
lbl_edit_nombre.place(x=10,y=10)
caja_edit_nombre = ttk.Entry(nueva_ventana)
caja_edit_nombre.place(x=120,y=10)
lbl_edit_cumple = ttk.Label(nueva_ventana,text="Ingrese Fecha")
lbl_edit_cumple.place(x=10,y=40)
caja_edit_cumple = ttk.Entry(nueva_ventana)
caja_edit_cumple.place(x=120,y=40)
lbl_edit_telef = ttk.Label(nueva_ventana,text="Ingrese Telefono")
lbl_edit_telef.place(x=10,y=70)
caja_edit_telef = ttk.Entry(nueva_ventana)
caja_edit_telef.place(x=120,y=70)
lbl_edit_vencimiento = ttk.Label(nueva_ventana,text="Ingrese Vencimiento")
lbl_edit_vencimiento.place(x=10,y=90)
caja_edit_vencimiento = ttk.Entry(nueva_ventana)
caja_edit_vencimiento.place(x=120,y=90)
boton_actualizar = ttk.Button(nueva_ventana, text = 'Actualizar', command = editar_clientes)
boton_actualizar.place(x=10,y=120)
seleccion = clientes_tab.item(clientes_tab.selection())["text"]
valores = clientes_tab.item(clientes_tab.selection())["values"]
print(seleccion,valores)
cajaNombre = caja_edit_nombre.get()
cajaCumple = caja_edit_cumple.get()
cajaTelef = int(caja_edit_telef())
cajaVenci = int(caja_edit_vencimiento.get())
cursor.execute("UPDATE Clientes SET nombre ='" + cajaNombre +
"', fecha_de_nacimiento = '" + cajaCumple +
"', telefono = '" + cajaTelef + "',Vencimiento_de_la_cuota = '" + cajaVenci +
"' WHERE sellcion ='" + seleccion)
db.commit()
messagebox.showinfo("Registro Actualizado")
nueva_ventana.destroy()
agregar_clientes()
ventana = tk.Tk()
ventana.title("Gimansio MD")
ventana.config(width=900, height=650)
boton_agregar = ttk.Button(text="Agregar Clientes", command=agregar_clientes)
boton_agregar.place(x=780, y=80)
boton_eliminar = ttk.Button(text="Elminar",command=eliminar)
boton_eliminar.place(x=780,y=110)
boton_listar = ttk.Button(text="Mostrar Clientes",command=listar)
boton_listar.place(x=780,y=140)
boton_actualizar = ttk.Button(text="Actualizar registro",command=editar_clientes)
boton_actualizar.place(x=780,y=170)
etiq_nombre= ttk.Label(text="Nombre")
etiq_nombre.place(x=10,y=10)
caja_nombre= ttk.Entry()
caja_nombre.place(x=70,y=10)
etiq_fecha_nacimiento = ttk.Label(text="Fecha de nacimiento")
etiq_fecha_nacimiento.place(x=200,y=10)
caja_fecha= ttk.Entry()
caja_fecha.place(x=320,y=10)
etiq_telefono = ttk.Label(text="Telefono")
etiq_telefono.place(x=420,y=10)
caja_telefono= ttk.Entry()
caja_telefono.place(x=470,y=10)
etiq_vencimiento = ttk.Label(text="Vencimiento de la cuota")
etiq_vencimiento.place(x=600,y=10)
caja_vencimiento= ttk.Entry()
caja_vencimiento.place(x=740,y=10)
lbl_mensaje = ttk.Label(text="mostrar")
lbl_mensaje.place(x=30,y=560)
clientes_tab = ttk.Treeview(columns=("fecha_de_nacimiento","telefono","vencimiento"))
clientes_tab.place(x=10, y=60, width=700, height=500)
clientes_tab.heading("#0", text="Nombre")
clientes_tab.heading("fecha_de_nacimiento", text="Fecha de Nacimiento")
clientes_tab.heading("telefono", text="Telefono")
clientes_tab.heading("vencimiento",text="Fecha de vencimiento")
clientes_tab.column("telefono", width=80)
selecion = clientes_tab.item(clientes_tab.selection())["text"]
valores = clientes_tab.item(clientes_tab.selection())["values"]
ventana.mainloop()