This commit is contained in:
2024-12-09 20:30:19 +01:00
parent d080b6287c
commit 9b5f3b23fb
13 changed files with 636 additions and 43 deletions

65
web/db.py Normal file
View File

@@ -0,0 +1,65 @@
import sqlite3
from flask import current_app as app
def get_db_connection():
conn = sqlite3.connect('./static/db/db.sqlite')
conn.row_factory = sqlite3.Row
return conn
def dict_from_row(row):
return {key: row[key] for key in row.keys()}
def fetch_users(role_id):
conn = get_db_connection()
users = conn.execute('SELECT * FROM Zamestnanci WHERE Role_ID >= ?', (role_id,)).fetchall()
users = [dict_from_row(user) for user in users]
conn.close()
app.logger.debug(f"Fetched users: {users}")
return users
def fetch_orders():
conn = get_db_connection()
orders = conn.execute('SELECT * FROM Objednavky').fetchall()
orders = [dict_from_row(order) for order in orders]
conn.close()
app.logger.debug(f"Fetched orders: {orders}")
return orders
def fetch_roles():
conn = get_db_connection()
roles = conn.execute('SELECT * FROM Role').fetchall()
roles = [dict_from_row(role) for role in roles]
conn.close()
app.logger.debug(f"Fetched roles: {roles}")
return roles
def fetch_repairs():
conn = get_db_connection()
repairs = conn.execute('''
SELECT Opravy.ID_Opravy, Zamestnanci.Jmeno, Zamestnanci.Prijmeni, Opravy.Nazev, Opravy.Popis
FROM Opravy
JOIN Zamestnanci ON Opravy.ID_Zamestnance = Zamestnanci.ID_Uzivatele
''').fetchall()
repairs = [dict_from_row(repair) for repair in repairs]
for repair in repairs:
products = conn.execute('''
SELECT Produkty.Nazev, Pouzite_Produkty.Pocet_Produktu
FROM Pouzite_Produkty
JOIN Produkty ON Pouzite_Produkty.ID_Produktu = Produkty.ID_Produktu
WHERE Pouzite_Produkty.ID_Opravy = ?
''', (repair['ID_Opravy'],)).fetchall()
repair['products'] = [dict_from_row(product) for product in products]
conn.close()
app.logger.debug(f"Fetched repairs: {repairs}")
return repairs
def fetch_employees():
conn = get_db_connection()
employees = conn.execute('SELECT ID_Uzivatele, Jmeno, Prijmeni FROM Zamestnanci').fetchall()
employees = [dict_from_row(employee) for employee in employees]
conn.close()
app.logger.debug(f"Fetched employees: {employees}")
return employees