diff --git a/py_app/app/__pycache__/routes.cpython-311.pyc b/py_app/app/__pycache__/routes.cpython-311.pyc index 2494f39..ceec01e 100644 Binary files a/py_app/app/__pycache__/routes.cpython-311.pyc and b/py_app/app/__pycache__/routes.cpython-311.pyc differ diff --git a/py_app/app/routes.py b/py_app/app/routes.py index 40ff3f7..86c536a 100644 --- a/py_app/app/routes.py +++ b/py_app/app/routes.py @@ -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) \ No newline at end of file diff --git a/py_app/app/templates/quality.html b/py_app/app/templates/quality.html index 2f20736..6704b93 100644 --- a/py_app/app/templates/quality.html +++ b/py_app/app/templates/quality.html @@ -6,20 +6,20 @@

Rapoarte

- +
- +
- - + +
- - + +