diff --git a/apps/calendar/config/secret.toml.example b/apps/calendar/config/secret.toml.example new file mode 100644 index 0000000..9ce5b75 --- /dev/null +++ b/apps/calendar/config/secret.toml.example @@ -0,0 +1,4 @@ +[database] +db = "calendar" +user = "calendaruser" +password = "Cal@dm1n" \ No newline at end of file diff --git a/apps/reporter/queries.py b/apps/reporter/queries.py index bbabd43..10cec4a 100644 --- a/apps/reporter/queries.py +++ b/apps/reporter/queries.py @@ -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]},", diff --git a/templates/home.html b/templates/home.html index fea4384..70be85e 100644 --- a/templates/home.html +++ b/templates/home.html @@ -146,7 +146,7 @@ - +