updated reports
This commit is contained in:
@@ -99,26 +99,37 @@ def scan():
|
||||
date = request.form.get('date')
|
||||
time = request.form.get('time')
|
||||
|
||||
|
||||
try:
|
||||
# Connect to the database
|
||||
conn = get_db_connection()
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Insert query
|
||||
insert_query = """
|
||||
INSERT INTO scan1_orders (operator_code, CP_full_code, OC1_code, OC2_code, quality_code, date, time)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
"""
|
||||
print(f"Executing query: {insert_query}")
|
||||
print(f"With values: ('{operator_code}', '{cp_code}', '{oc1_code}', '{oc2_code}', '{defect_code}', '{date}', '{time}')")
|
||||
# Check if the CP_full_code already exists
|
||||
cursor.execute("SELECT Id FROM scan1_orders WHERE CP_full_code = ?", (cp_code,))
|
||||
existing_entry = cursor.fetchone()
|
||||
|
||||
# Execute the query
|
||||
cursor.execute(insert_query, (operator_code, cp_code, oc1_code, oc2_code, defect_code, date, time))
|
||||
if existing_entry:
|
||||
# Update the existing entry
|
||||
update_query = """
|
||||
UPDATE scan1_orders
|
||||
SET operator_code = ?, OC1_code = ?, OC2_code = ?, quality_code = ?, date = ?, time = ?
|
||||
WHERE CP_full_code = ?
|
||||
"""
|
||||
cursor.execute(update_query, (operator_code, oc1_code, oc2_code, defect_code, date, time, cp_code))
|
||||
flash('Existing entry updated successfully.')
|
||||
else:
|
||||
# Insert a new entry
|
||||
insert_query = """
|
||||
INSERT INTO scan1_orders (operator_code, CP_full_code, OC1_code, OC2_code, quality_code, date, time)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
"""
|
||||
cursor.execute(insert_query, (operator_code, cp_code, oc1_code, oc2_code, defect_code, date, time))
|
||||
flash('New entry inserted successfully.')
|
||||
|
||||
# Commit the transaction
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
flash('Scan data saved successfully.')
|
||||
except mariadb.Error as e:
|
||||
print(f"Error saving scan data: {e}")
|
||||
flash(f"Error saving scan data: {e}")
|
||||
@@ -253,7 +264,6 @@ def get_report_data():
|
||||
cursor = conn.cursor()
|
||||
|
||||
if report == "1": # Logic for the 1-day report
|
||||
# Calculate the date 1 day ago
|
||||
one_day_ago = datetime.now() - timedelta(days=1)
|
||||
cursor.execute("""
|
||||
SELECT Id, operator_code, CP_base_code, OC1_code, OC2_code, quality_code, date, time, approved_quantity, rejected_quantity
|
||||
@@ -262,21 +272,11 @@ def get_report_data():
|
||||
ORDER BY date DESC, time DESC
|
||||
""", (one_day_ago.strftime('%Y-%m-%d'),))
|
||||
rows = cursor.fetchall()
|
||||
|
||||
# Debugging: Print fetched rows
|
||||
print("Fetched rows for report 1 (last 1 day):", rows)
|
||||
|
||||
# Define headers based on database column names
|
||||
data["headers"] = ["Id", "Operator Code", "CP Base Code", "OC1 Code", "OC2 Code", "Quality Code", "Date", "Time", "Approved Quantity", "Rejected Quantity"]
|
||||
|
||||
# Convert rows to JSON serializable format
|
||||
data["rows"] = [
|
||||
[str(cell) if isinstance(cell, (datetime, timedelta)) else cell for cell in row]
|
||||
for row in rows
|
||||
]
|
||||
data["rows"] = [[str(cell) if isinstance(cell, (datetime, timedelta)) else cell for cell in row] for row in rows]
|
||||
|
||||
elif report == "2": # Logic for the 5-day report
|
||||
# Calculate the date 5 days ago
|
||||
five_days_ago = datetime.now() - timedelta(days=5)
|
||||
cursor.execute("""
|
||||
SELECT Id, operator_code, CP_base_code, OC1_code, OC2_code, quality_code, date, time, approved_quantity, rejected_quantity
|
||||
@@ -285,24 +285,40 @@ def get_report_data():
|
||||
ORDER BY date DESC, time DESC
|
||||
""", (five_days_ago.strftime('%Y-%m-%d'),))
|
||||
rows = cursor.fetchall()
|
||||
|
||||
# Debugging: Print fetched rows
|
||||
print("Fetched rows for report 2 (last 5 days):", rows)
|
||||
|
||||
# Define headers based on database column names
|
||||
data["headers"] = ["Id", "Operator Code", "CP Base Code", "OC1 Code", "OC2 Code", "Quality Code", "Date", "Time", "Approved Quantity", "Rejected Quantity"]
|
||||
data["rows"] = [[str(cell) if isinstance(cell, (datetime, timedelta)) else cell for cell in row] for row in rows]
|
||||
|
||||
# Convert rows to JSON serializable format
|
||||
data["rows"] = [
|
||||
[str(cell) if isinstance(cell, (datetime, timedelta)) else cell for cell in row]
|
||||
for row in rows
|
||||
]
|
||||
elif report == "3": # Logic for the report with non-zero quality_code (1 day)
|
||||
one_day_ago = datetime.now() - timedelta(days=1)
|
||||
cursor.execute("""
|
||||
SELECT Id, operator_code, CP_full_code, OC1_code, OC2_code, quality_code, date, time, approved_quantity, rejected_quantity
|
||||
FROM scan1_orders
|
||||
WHERE date >= ? AND quality_code != 0
|
||||
ORDER BY date DESC, time DESC
|
||||
""", (one_day_ago.strftime('%Y-%m-%d'),))
|
||||
rows = cursor.fetchall()
|
||||
print("Fetched rows for report 3 (non-zero quality_code, last 1 day):", rows)
|
||||
data["headers"] = ["Id", "Operator Code", "CP Full Code", "OC1 Code", "OC2 Code", "Quality Code", "Date", "Time", "Approved Quantity", "Rejected Quantity"]
|
||||
data["rows"] = [[str(cell) if isinstance(cell, (datetime, timedelta)) else cell for cell in row] for row in rows]
|
||||
|
||||
elif report == "4": # Logic for the report with non-zero quality_code (5 days)
|
||||
five_days_ago = datetime.now() - timedelta(days=5)
|
||||
cursor.execute("""
|
||||
SELECT Id, operator_code, CP_full_code, OC1_code, OC2_code, quality_code, date, time, approved_quantity, rejected_quantity
|
||||
FROM scan1_orders
|
||||
WHERE date >= ? AND quality_code != 0
|
||||
ORDER BY date DESC, time DESC
|
||||
""", (five_days_ago.strftime('%Y-%m-%d'),))
|
||||
rows = cursor.fetchall()
|
||||
print("Fetched rows for report 4 (non-zero quality_code, last 5 days):", rows)
|
||||
data["headers"] = ["Id", "Operator Code", "CP Full Code", "OC1 Code", "OC2 Code", "Quality Code", "Date", "Time", "Approved Quantity", "Rejected Quantity"]
|
||||
data["rows"] = [[str(cell) if isinstance(cell, (datetime, timedelta)) else cell for cell in row] for row in rows]
|
||||
|
||||
conn.close()
|
||||
except mariadb.Error as e:
|
||||
print(f"Error fetching report data: {e}")
|
||||
data["error"] = "Error fetching report data."
|
||||
|
||||
# Debugging: Print the final data being returned
|
||||
print("Data being returned:", data)
|
||||
return jsonify(data)
|
||||
Reference in New Issue
Block a user