Entrep
Entrep
import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
from tkinter import scrolledtext
from PIL import Image, ImageTk
from datetime import datetime
def calculate_fare():
try:
distance = float(distance_entry.get())
is_student = student_var.get()
is_senior = senior_var.get()
kilometer = distance / 6
decimal = kilometer - int(kilometer)
total_fare = kilometer_round * 7
if is_student or is_senior:
total_fare -= 10
fare_label_total.config(text=total_fare)
messagebox.showinfo('Total Fare', f'Your total fare is {total_fare}')
except ValueError:
messagebox.showerror('Error', 'Please enter a valid distance')
def pay():
try:
total_fare = int(fare_label_total.cget('text'))
your_pay = int(pay_entry.get())
except ValueError:
messagebox.showinfo('Input Error', 'Please input a valid payment amount')
def get_person_type():
if student_var.get():
return 'Student'
elif senior_var.get():
return 'Senior'
else:
return 'Regular'
def reset_fields():
fare_label_total.config(text='0')
pay_entry.delete(0, tk.END)
distance_entry.delete(0, tk.END)
student_var.set(False)
senior_var.set(False)
def clear_receipt():
for item in receipt_tree.get_children():
receipt_tree.delete(item)
reset_fields()
def delete_selected():
selected_item = receipt_tree.selection()
if selected_item:
receipt_tree.delete(selected_item)
else:
messagebox.showinfo('Error', 'No selection made')
def update_selected():
selected_item = receipt_tree.selection()
if selected_item:
total_fare = int(fare_label_total.cget('text'))
person = get_person_type()
distance = distance_entry.get()
pay_amount = pay_entry.get()
def on_tree_select(event):
selected_item = receipt_tree.selection()
if selected_item:
item = receipt_tree.item(selected_item)
values = item['values']
person, distance, fare, pay = values
distance_entry.delete(0, tk.END)
distance_entry.insert(0, distance)
fare_label_total.config(text=fare)
pay_entry.delete(0, tk.END)
pay_entry.insert(0, pay)
if person == 'Student':
student_var.set(True)
senior_var.set(False)
elif person == 'Senior':
student_var.set(False)
senior_var.set(True)
else:
student_var.set(False)
senior_var.set(False)
def show_receipt():
selected_item = receipt_tree.selection()
if selected_item:
item = receipt_tree.item(selected_item)
values = item['values']
person, distance, fare, change = values
_name = "Fare"
transaction_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
main_window = tk.Tk()
main_window.title("Fare Discount Calculator")
main_window.geometry('1300x800')
senior_var = tk.BooleanVar()
senior_checkbox = tk.Checkbutton(frame_sa_widgets, text="Senior", variable=senior_var,
background='pink')
senior_checkbox.grid(row=3, columnspan=2, pady=5, sticky='e', padx=10)
style = ttk.Style()
style.configure('Treeview.Heading',foreground='blue')
# Treeview Widget for Receipts
receipt_tree = ttk.Treeview(frame_sa_receipt, columns=('Person', 'Distance', 'Fare', 'Change'),
show='headings')
receipt_tree.heading('Person', text='Person')
receipt_tree.heading('Distance', text='Distance')
receipt_tree.heading('Fare', text='Fare')
receipt_tree.heading('Change', text='Change')
receipt_tree.pack(fill='both', expand=True)
main_window.mainloop()