prepare("SELECT * FROM projects WHERE id = ?"); $project->execute([$id]); $project = $project->fetch(); if (!$project) { die("Project not found."); } $pageTitle = "Project Detail: " . htmlspecialchars($project['name']); include __DIR__ . '/includes/header.php'; // Fetch recent labour $labourStmt = $db->prepare(" SELECT l.*, e.name as employee_name, lt.name as labour_type FROM labour_entries l JOIN employees e ON l.employee_id = e.id JOIN labour_types lt ON l.labour_type_id = lt.id WHERE l.project_id = ? ORDER BY l.entry_date DESC LIMIT 10 "); $labourStmt->execute([$id]); $labourEntries = $labourStmt->fetchAll(); // Fetch recent expenses $expenseStmt = $db->prepare(" SELECT ex.*, et.name as expense_type, s.name as supplier_name FROM expenses ex JOIN expense_types et ON ex.expense_type_id = et.id LEFT JOIN suppliers s ON ex.supplier_id = s.id WHERE ex.project_id = ? ORDER BY ex.entry_date DESC LIMIT 10 "); $expenseStmt->execute([$id]); $expenseEntries = $expenseStmt->fetchAll(); // Stats $statsStmt = $db->prepare(" SELECT (SELECT SUM(hours) FROM labour_entries WHERE project_id = ?) as total_hours, (SELECT SUM(amount) FROM expenses WHERE project_id = ?) as total_expenses "); $statsStmt->execute([$id, $id]); $stats = $statsStmt->fetch(); ?>

()

Archived
Unarchive Archive Project Add Labour
Total Hours

Budget:
Total Expenses

$

Type

Start Date

Recent Labour View All
Date Employee Hours
Recent Expenses View All
Date Type Amount
$