added report styles
This commit is contained in:
@@ -576,6 +576,73 @@ def generate_report():
|
||||
"date": selected_date
|
||||
}
|
||||
|
||||
elif report == "9": # Date Range Quality Defects Report
|
||||
print(f"DEBUG: Processing Date Range Quality Defects Report")
|
||||
|
||||
# Get date range from request parameters
|
||||
start_date = request.args.get('start_date')
|
||||
end_date = request.args.get('end_date')
|
||||
|
||||
print(f"DEBUG: Date range quality defects requested - Start: {start_date}, End: {end_date}")
|
||||
|
||||
if not start_date or not end_date:
|
||||
data["error"] = "Both start date and end date are required for date range quality defects report."
|
||||
conn.close()
|
||||
return jsonify(data)
|
||||
|
||||
try:
|
||||
# Validate date format
|
||||
from datetime import datetime
|
||||
datetime.strptime(start_date, '%Y-%m-%d')
|
||||
datetime.strptime(end_date, '%Y-%m-%d')
|
||||
|
||||
# Check what dates are available in the database within the range
|
||||
cursor.execute("""
|
||||
SELECT DISTINCT date
|
||||
FROM scan1_orders
|
||||
WHERE date >= ? AND date <= ? AND quality_code != 0
|
||||
ORDER BY date DESC
|
||||
""", (start_date, end_date))
|
||||
existing_dates = cursor.fetchall()
|
||||
print(f"DEBUG: Available dates with quality defects in range: {existing_dates}")
|
||||
|
||||
# Query for quality defects in the date range
|
||||
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 date <= ? AND quality_code != 0
|
||||
ORDER BY date DESC, quality_code DESC, time DESC
|
||||
""", (start_date, end_date))
|
||||
rows = cursor.fetchall()
|
||||
print(f"DEBUG: Date range quality defects query found {len(rows)} rows from {start_date} to {end_date}")
|
||||
|
||||
data["headers"] = ["Id", "Operator Code", "CP Full Code", "OC1 Code", "OC2 Code", "Quality Code", "Date", "Time", "Approved Quantity", "Rejected Quantity"]
|
||||
data["rows"] = [[format_cell_data(cell) for cell in row] for row in rows]
|
||||
|
||||
# Add helpful message if no data found
|
||||
if len(rows) == 0:
|
||||
data["message"] = f"No quality defects found between {start_date} and {end_date}. This could mean no scanning was performed in this date range or all items passed quality control."
|
||||
else:
|
||||
# Add summary for quality defects in date range
|
||||
total_defective_items = len(rows)
|
||||
total_rejected_qty = sum(row[9] for row in rows if row[9] is not None)
|
||||
unique_quality_codes = len(set(row[5] for row in rows if row[5] != 0))
|
||||
unique_dates = len(set(row[6] for row in rows))
|
||||
|
||||
data["defects_summary"] = {
|
||||
"total_defective_items": total_defective_items,
|
||||
"total_rejected_quantity": total_rejected_qty,
|
||||
"unique_defect_types": unique_quality_codes,
|
||||
"date_range": f"{start_date} to {end_date}",
|
||||
"days_with_defects": unique_dates
|
||||
}
|
||||
|
||||
except ValueError:
|
||||
data["error"] = "Invalid date format. Please use YYYY-MM-DD format."
|
||||
except Exception as e:
|
||||
print(f"DEBUG: Error in date range quality defects report: {e}")
|
||||
data["error"] = f"Error processing date range quality defects report: {e}"
|
||||
|
||||
conn.close()
|
||||
except mariadb.Error as e:
|
||||
print(f"Error fetching custom date report: {e}")
|
||||
|
||||
Reference in New Issue
Block a user