From 6c1b55158dbc4d49f41ce03d20d255c7e4a0a416 Mon Sep 17 00:00:00 2001 From: mattspeer Date: Sat, 9 May 2026 09:06:36 -0500 Subject: [PATCH] Delete track_time.py --- track_time.py | 114 -------------------------------------------------- 1 file changed, 114 deletions(-) delete mode 100644 track_time.py diff --git a/track_time.py b/track_time.py deleted file mode 100644 index 8a7e421..0000000 --- a/track_time.py +++ /dev/null @@ -1,114 +0,0 @@ -import sqlite3 -import os -from datetime import date - -def connect_db(): - """ - Connects to the SQLite database file and returns the connection object. - If the file does not exist, it prints an error message. - """ - db_file = 'time_tracker.db' - if not os.path.exists(db_file): - print(f"Error: Database file '{db_file}' not found. Please run the database creation script first.") - return None - - return sqlite3.connect(db_file) - -def add_time_entry(): - """ - Prompts the user for details and adds a new time entry to the database. - """ - conn = connect_db() - if not conn: - return - - try: - cursor = conn.cursor() - - # Display all active clients for selection - cursor.execute('SELECT client_id, client_name FROM clients WHERE active = 1 ORDER BY client_name') - active_clients = cursor.fetchall() - - if not active_clients: - print("No active clients found. Please add an active client first.") - return - - print("\n--- Select a Client ---") - for client_id, client_name in active_clients: - print(f"{client_id}: {client_name}") - print("0: Exit") # Added exit option - print("----------------------") - - while True: - try: - choice = int(input("Enter the ID of the client (or 0 to exit): ")) - except ValueError: - print("Invalid input. Please enter a number.") - continue - - if choice == 0: - print("Exiting time entry.") - return # Exit the function if the user chooses 0 - - # Check if the entered ID is in the list of active clients - if any(c[0] == choice for c in active_clients): - client_id = choice - break - else: - print("Invalid client ID. Please enter a valid ID from the list.") - - print(f"\n--- Add New Time Entry for Client ID {client_id} ---") - project = input("Enter project name: ") - description = input("Enter a brief description: ") - - # Get the hours and validate it's a number - while True: - try: - hours = float(input("Enter number of hours (e.g., 1.5): ")) - if hours <= 0: - print("Hours must be a positive number.") - else: - break - except ValueError: - print("Invalid input. Please enter a number for hours.") - - # Get the date, defaulting to today's date - entry_date = input(f"Enter the date (YYYY-MM-DD, default is today: {date.today()}): ") - if not entry_date: - entry_date = str(date.today()) - - # The 'invoiced' field defaults to 0 (false) - invoiced = 0 - - # Insert the new time entry into the database - cursor.execute(''' - INSERT INTO time_tracking (project, description, invoiced, date, hours, client_id) - VALUES (?, ?, ?, ?, ?, ?) - ''', (project, description, invoiced, entry_date, hours, client_id)) - - conn.commit() - print("\nTime entry added successfully!") - - # Fetch and display the newly created entry - last_id = cursor.lastrowid - cursor.execute('SELECT * FROM time_tracking WHERE entry_id = ?', (last_id,)) - new_entry = cursor.fetchone() - - print("\n--- New Time Entry Details ---") - print(f"ID: {new_entry[0]}") - print(f"Project: {new_entry[1]}") - print(f"Description: {new_entry[2]}") - print(f"Invoiced: {'Yes' if new_entry[3] else 'No'}") - print(f"Date: {new_entry[4]}") - print(f"Hours: {new_entry[5]:.2f}") - print(f"Client ID: {new_entry[6]}") - print("------------------------------\n") - - except sqlite3.Error as e: - print(f"An error occurred: {e}") - finally: - if conn: - conn.close() - -if __name__ == "__main__": - add_time_entry()