Compare commits
No commits in common. "main" and "Database_Headless" have entirely different histories.
main
...
Database_H
58
Headless.py
58
Headless.py
|
|
@ -1,58 +0,0 @@
|
|||
import pyodbc
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
SERVER = '<server name or IP>'
|
||||
DATABASE = '<db name>'
|
||||
USERNAME = '<db username>'
|
||||
PASSWORD = '<db password>'
|
||||
PORT='1433'
|
||||
|
||||
connection_string = f'DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={SERVER};PORT={PORT};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD};TrustServerCertificate=yes'
|
||||
db_connection = pyodbc.connect(connection_string)
|
||||
cursor = db_connection.cursor()
|
||||
|
||||
#Set default values
|
||||
sign_in_date_time_check = datetime.fromtimestamp(0)
|
||||
card_code_check = False
|
||||
|
||||
while True:
|
||||
#Get from card when inputed - card id will be a string
|
||||
card_code_input = input()
|
||||
|
||||
date_time_now = datetime.now()
|
||||
time_now = date_time_now.time()
|
||||
|
||||
#Find user in the database used only for checking that the user exists
|
||||
cursor.execute('SELECT SignInTime FROM EmployeeRegister WHERE CardID = ?', card_code_input)
|
||||
db_user_entry = cursor.fetchall()
|
||||
db_sign_in_time = db_user_entry[0][0]
|
||||
|
||||
#if no user info is returned and thus user does not exist reset loop
|
||||
if not db_user_entry:
|
||||
print('User does not exist')
|
||||
continue
|
||||
|
||||
#Prevent double tap of card
|
||||
if card_code_input == card_code_check and sign_in_date_time_check > date_time_now:
|
||||
print('Double tap prevented')
|
||||
continue
|
||||
|
||||
#Save sign in/sign out card code and time + 5 seconds
|
||||
sign_in_date_time_check = date_time_now + timedelta(seconds = 50)
|
||||
card_code_check = card_code_input
|
||||
|
||||
|
||||
#If user is signed in sign them out
|
||||
if db_sign_in_time:
|
||||
print('Signed Out')
|
||||
cursor.execute('UPDATE EmployeeRegister SET SignInTime = ? WHERE CardID = ?', None, card_code_input)
|
||||
db_connection.commit()
|
||||
continue
|
||||
|
||||
print('Database updated')
|
||||
#Update database with sign in time
|
||||
cursor.execute('UPDATE EmployeeRegister SET SignInTime = ? WHERE CardID = ?', time_now, card_code_input)
|
||||
db_connection.commit()
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue