65 lines
2.2 KiB
Python
65 lines
2.2 KiB
Python
|
|
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 |