May-10-2020, 02:10 PM
(This post was last modified: May-10-2020, 02:10 PM by scratchmyhead.)
I have a program for a motel. Basically the user enters a room number and then the program is supposed to check to see if the room number had already been entered. But when I purposely enter the same room number, it doesn't catch the error but it should. Line 67 is where it compares.
from tkinter import *
import tkinter as tk
from tkinter import ttk
import sqlite3
def enterroomnumber():
enterroom = Toplevel()
enterroom.title('Enter Room Inventory')
enterroom.geometry("800x800+500+100")
global entry1
global my_box
global mycombo
label1=Label(enterroom, text="Room#")
label1.place(x=10, y=10)
entry1 = Entry(enterroom, width=10)
entry1.place(x=70, y=10)
options = [
"Select Room Type",
"NQ1 - Non Smoking Queen",
"NQQ1 - Non Smoking Double Queen",
"Q11 - Smoking Queen",
"QQ1 - Smoking Double Queen",
"NK1 - Non Smoking king",
"K11 - Smoking King",
"PNQ1 - Non Smoking Handi-Cap",
"SK1 - Smoking Suit King",
"SNK1 - Non Smoking Suite King",
]
mycombo = ttk.Combobox(enterroom, width=40, value=options)
mycombo.place(x=10, y=40)
mycombo.current(0)
my_box = Listbox(enterroom, height=30, width=30)
my_box.place(x=500, y=20)
boxlabel=Label(enterroom, text="Rooms Already Entered")
boxlabel.place(x=500, y=0)
conn = sqlite3.connect('roominventory.db')
c = conn.cursor()
c.execute("SELECT * FROM rooms")
records = c.fetchall()
for record in records:
my_box.insert(END, record[0:1])
conn.commit()
conn.close()
entry1.focus()
btnenterroom = Button(enterroom, text="Enter Room", width=10, command=setroom)
btnenterroom.place(x=10, y=70)
def setroom():
conn = sqlite3.connect('roominventory.db')
c = conn.cursor()
c.execute("SELECT * FROM rooms")
records = c.fetchall()
for record in records:
if entry1.get()==record[0]:
messagebox.showwarning("Warning!", "You already entered this room#.", parent=enterroom)
jamin = mycombo.get()[0:4]
jamin = jamin.strip()
e2 = ""
for x in range(0, 50):
e2 = my_box.get(x)
if e2[0:2] == "":
break
conn = sqlite3.connect('roominventory.db')
c = conn.cursor()
c.execute("INSERT INTO rooms VALUES (:number, :type, :rate, :vacant, :clean, :ooo, :r1, :r2, :r3, :r4, :r5)",
{
'number': entry1.get(),
'type': jamin,
'rate': 0,
'vacant': "Y",
'clean': "Y",
'ooo': "N",
'r1': "N",
'r2': "N",
'r3': "N",
'r4': "N",
'r5': 0,
}
)
conn.commit()
conn.close()
my_box.delete(0, END)
conn = sqlite3.connect('roominventory.db')
c = conn.cursor()
c.execute("SELECT * FROM rooms")
records = c.fetchall()
for record in records:
my_box.insert(END, record[0:2])
conn.commit()
conn.close()
mycombo.set("Select Room Type")
entry1.delete(0, END)
entry1.focus()
root = Tk()
root.geometry("400x400")
btn1=Button(root, text="Click to enter room", command=enterroomnumber)
btn1.pack()
root.mainloop()
