Untitled
unknown
plain_text
a year ago
2.5 kB
9
Indexable
def load_data(self):
print(self.date)
# Connect to the PostgreSQL database
conn = psycopg2.connect(host='localhost', dbname='insurgent_db', user='postgres', password='admin', port='5432')
cursor = conn.cursor()
# Retrieve data from the employees table including the staff ID
cursor.execute("""
SELECT
employees.employee_id,
first_name,
last_name,
start_time,
end_time,
status,
schedule_id
FROM
employees
LEFT JOIN
schedules
ON
employees.employee_id = schedules.employee_id
WHERE
(schedules.shift_date = %s OR schedules.shift_date IS NULL)
ORDER BY
CASE status
WHEN 'REGULAR' THEN 1
WHEN 'RESERVE' THEN 2
WHEN 'DAY OFF' THEN 3
ELSE 4
END,
start_time
""", (self.date,))
rows = cursor.fetchall()
self.tableWidget.setColumnCount(7) # Set the number of columns including the hidden ID column
self.tableWidget.setHorizontalHeaderLabels(['ID', 'First Name', 'Last Name', 'Start Time', 'End Time', 'Status', 'Schedule ID'])
self.tableWidget.setRowCount(len(rows)) # Set the number of rows
for row_idx, row_data in enumerate(rows):
for col_idx, col_data in enumerate(row_data):
if col_idx == 3 or col_idx == 4: # Start Time or End Time
if row_data[5] == 'DAY OFF': # Check if status is 'DAY OFF'
col_data = '' # Set to empty string
elif isinstance(col_data, datetime.datetime):
col_data = col_data.strftime('%H:%M') # Convert datetime to time string
elif isinstance(col_data, datetime.date):
col_data = col_data.strftime('%Y-%m-%d') # Convert date to string
item = QTableWidgetItem(str(col_data))
item.setTextAlignment(Qt.AlignCenter) # Align text to center
self.tableWidget.setItem(row_idx, col_idx, item)
header = self.tableWidget.horizontalHeader()
header.setSectionResizeMode(QHeaderView.Stretch)
# Hide the ID column
self.tableWidget.setColumnHidden(0, True)
self.tableWidget.setColumnHidden(6, True)
# Close the connection
cursor.close()
conn.close()Editor is loading...
Leave a Comment