Fixes for linux

This commit is contained in:
Vassili Minaev 2025-03-17 16:55:43 -06:00
parent 708ee610f1
commit 007fb2c9e1
3 changed files with 73 additions and 69 deletions

View file

@ -0,0 +1,4 @@
[database]
db = "calendar"
user = "calendaruser"
password = "Cal@dm1n"

View file

@ -16,24 +16,24 @@ async def orders_by_employee(cursor, options):
query = """\
SELECT
CONCAT(E.firstname, ' ', E.lastname) AS name,
O.orderid,
O.orderdate,
C.customername,
CONCAT(E.FirstName, ' ', E.LastName) AS name,
O.OrderID,
O.OrderDate,
C.CustomerName,
inter.value
FROM employees AS E
INNER JOIN orders AS O ON E.employeeid = O.employeeid
LEFT JOIN customers AS C on O.customerid = C.customerid
FROM Employees AS E
INNER JOIN Orders AS O ON E.EmployeeID = O.EmployeeID
LEFT JOIN Customers AS C on O.CustomerID = C.CustomerID
INNER JOIN (
SELECT
OD.orderid,
SUM(OD.quantity * P.price) AS value
FROM orderdetails AS OD
LEFT JOIN products AS P ON OD.productid = P.productid
WHERE P.categoryid IN ({})
GROUP BY OD.orderid
) AS inter ON o.orderid = inter.orderid
WHERE O.orderdate BETWEEN %s AND %s;""".format(",".join(['%s'] * len(options["category"])))
OD.OrderID,
SUM(OD.Quantity * P.Price) AS value
FROM OrderDetails AS OD
LEFT JOIN Products AS P ON OD.ProductID = P.ProductID
WHERE P.CategoryID IN ({})
GROUP BY OD.OrderID
) AS inter ON O.OrderID = inter.OrderID
WHERE O.OrderDate BETWEEN %s AND %s;""".format(",".join(['%s'] * len(options["category"])))
await cursor.execute(query, [*options["category"].keys(), options["date"]["from"], options["date"]["to"]])
rows = await cursor.fetchall()
@ -68,22 +68,22 @@ async def orders_by_location(cursor, options):
query = """\
SELECT
{},
C.customername,
O.orderid,
O.orderdate,
C.CustomerName,
O.OrderID,
O.OrderDate,
inter.value
FROM orders AS O
LEFT JOIN customers AS C on O.customerid = C.customerid
FROM Orders AS O
LEFT JOIN Customers AS C ON O.CustomerID = C.CustomerID
INNER JOIN (
SELECT
OD.orderid,
SUM(OD.quantity * P.price) AS value
FROM orderdetails AS OD
LEFT JOIN products AS P ON OD.productid = P.productid
WHERE P.categoryid IN ({})
GROUP BY OD.orderid
) AS inter ON o.orderid = inter.orderid
WHERE O.orderdate BETWEEN %s AND %s;\
OD.OrderID,
SUM(OD.quantity * P.Price) AS value
FROM OrderDetails AS OD
LEFT JOIN Products AS P ON OD.ProductID = P.ProductID
WHERE P.CategoryID IN ({})
GROUP BY OD.OrderID
) AS inter ON O.OrderID = inter.OrderID
WHERE O.OrderDate BETWEEN %s AND %s;\
""".format(location_query[options["location"]], ",".join(['%s'] * len(options["category"])))
await cursor.execute(query, [*options["category"].keys(), options["date"]["from"], options["date"]["to"]])
@ -111,18 +111,18 @@ async def orders_by_product(cursor, options):
query = """\
SELECT
P.productname,
C.customername,
O.orderid,
O.orderdate,
OD.quantity,
OD.quantity * P.price AS value
FROM orderdetails AS OD
LEFT JOIN orders AS O ON OD.orderid = O.orderid
LEFT JOIN products AS P ON OD.productid = P.productid
LEFT JOIN customers AS C ON O.customerid = C.customerid
WHERE P.categoryid IN ({})
AND O.orderdate BETWEEN %s AND %s;\
P.ProductName,
C.CustomerName,
O.OrderID,
O.OrderDate,
OD.Quantity,
OD.Quantity * P.Price AS value
FROM OrderDetails AS OD
LEFT JOIN Orders AS O ON OD.OrderID = O.OrderID
LEFT JOIN Products AS P ON OD.ProductID = P.ProductID
LEFT JOIN Customers AS C ON O.CustomerID = C.CustomerID
WHERE P.CategoryID IN ({})
AND O.OrderDate BETWEEN %s AND %s;\
""".format(",".join(['%s'] * len(options["category"])))
await cursor.execute(query, [*options["category"].keys(), options["date"]["from"], options["date"]["to"]])
@ -151,19 +151,19 @@ async def orders_by_supplier(cursor, options):
query = """\
SELECT
S.suppliername,
P.productname,
C.customername,
O.orderid,
O.orderdate,
OD.quantity,
OD.quantity * P.price AS value
FROM orderdetails AS OD
LEFT JOIN orders AS O ON OD.orderid = O.orderid
LEFT JOIN products AS P ON OD.productid = P.productid
LEFT JOIN customers AS C ON O.customerid = C.customerid
LEFT JOIN suppliers AS S ON P.supplierid = S.supplierid
WHERE P.categoryid IN ({})
AND O.orderdate BETWEEN %s AND %s;\
P.ProductName,
C.CustomerName,
O.OrderID,
O.OrderDate,
OD.Quantity,
OD.Quantity * P.Price AS value
FROM OrderDetails AS OD
LEFT JOIN Orders AS O ON OD.OrderID = O.OrderID
LEFT JOIN Products AS P ON OD.ProductID = P.ProductID
LEFT JOIN Customers AS C ON O.CustomerID = C.CustomerID
LEFT JOIN Suppliers AS S ON P.SupplierID = S.SupplierID
WHERE P.CategoryID IN ({})
AND O.OrderDate BETWEEN %s AND %s;\
""".format(",".join(['%s'] * len(options["category"])))
await cursor.execute(query, [*options["category"].keys(), options["date"]["from"], options["date"]["to"]])
@ -207,40 +207,40 @@ async def pivot_table(cursor, options):
# SELECT, GROUP BY, JOIN
parts = {
'none' : ("", "", ""),
'month' : ("CONCAT(YEAR(o.orderdate), '-', LPAD(MONTH(o.orderdate), 2, '0')) AS month", "month", ""),
'year' : ("YEAR(o.orderdate) AS year", "year", ""),
'month' : ("CONCAT(YEAR(O.OrderDate), '-', LPAD(MONTH(O.OrderDate), 2, '0')) AS month", "month", ""),
'year' : ("YEAR(O.OrderDate) AS year", "year", ""),
'employee': ("CONCAT(E.firstname, ' ', E.lastname) AS employeename",
"employeename",
"LEFT JOIN employees AS E ON O.employeeid = E.employeeid"),
'shipper' : ("SH.shippername",
"SH.shippername",
"LEFT JOIN shippers AS SH ON O.shipperid = SH.shipperid"),
'customer': ("C.customername",
"C.customername",
"LEFT JOIN customers AS C ON O.customerid = C.customerid"),
'customer': ("C.CustomerName",
"C.CustomerName",
"LEFT JOIN customers AS C ON O.CustomerID = C.CustomerID"),
'supplier': ("S.suppliername",
"S.suppliername",
"LEFT JOIN suppliers AS S ON P.supplierid = S.supplierid"),
"LEFT JOIN suppliers AS S ON P.SupplierID = S.SupplierID"),
'category': ("CA.categoryname",
"CA.categoryname",
"LEFT JOIN categories AS CA ON P.categoryid = CA.categoryid"),
'product' : ("P.productname", "P.productname", "")
"LEFT JOIN categories AS CA ON P.CategoryID = CA.CategoryID"),
'product' : ("P.ProductName", "P.ProductName", "")
}
values = {
'sales' : 'SUM(OD.quantity * P.price)',
'qty' : 'SUM(OD.quantity)'
'sales' : 'SUM(OD.Quantity * P.Price)',
'qty' : 'SUM(OD.Quantity)'
}
query = """
SELECT
{rows} {columns} {values}
FROM orderdetails AS OD
LEFT JOIN orders AS O ON OD.orderid = O.orderid
LEFT JOIN products AS P ON OD.productid = P.productid
FROM OrderDetails AS OD
LEFT JOIN Orders AS O ON OD.OrderID = O.OrderID
LEFT JOIN Products AS P ON OD.ProductID = P.ProductID
{joins}
WHERE P.categoryid IN ({categories})
AND O.orderdate BETWEEN %s AND %s
WHERE P.CategoryID IN ({categories})
AND O.OrderDate BETWEEN %s AND %s
GROUP BY {grouprows}{groupcols}
""".format(
rows=f"{parts[options['rows']][0]},",

View file

@ -146,7 +146,7 @@
</section>
</main>
<script src="static/bs/bootstrap.bundle.min.js"></script>
<script src="static/bootstrap/bootstrap.bundle.min.js"></script>
<script type="text/javascript">
window.onload = () => {
const email = document.getElementById('email');