Initial commit

This commit is contained in:
Porawit Dongwang
2026-09-16 23:20:08 +07:00
commit 0041668dbb
32577 changed files with 3687927 additions and 0 deletions
@@ -0,0 +1,67 @@
<?php
// api/dashboard.php
require_once dirname(__DIR__) . '/config/database.php';
require_once dirname(__DIR__) . '/models/Job.php';
header('Content-Type: application/json');
// Need to be logged in
session_start();
if (!isset($_SESSION['user_id'])) {
echo json_encode(['status' => 'error', 'message' => 'Unauthorized']);
exit;
}
$conn = Database::getInstance();
// 1. Fetch Stats
$stats_query = "
SELECT
COUNT(*) as total,
SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) as pending,
SUM(CASE WHEN status IN ('assigned', 'in_progress', 'waiting_for_return') THEN 1 ELSE 0 END) as in_progress,
SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed
FROM jobs
WHERE DATE(created_at) = CURDATE()
";
$stmt = $conn->query($stats_query);
$stats = $stmt->fetch();
// 2. Fetch Latest Jobs (Limit 10)
$jobs_query = "
SELECT j.*,
fd.name as from_dept,
COALESCE(td.name, j.to_department_custom) as to_dept
FROM jobs j
LEFT JOIN departments fd ON j.from_department_id = fd.id
LEFT JOIN departments td ON j.to_department_id = td.id
ORDER BY j.created_at DESC
LIMIT 10
";
$stmt2 = $conn->query($jobs_query);
$jobs = $stmt2->fetchAll();
// 3. Fetch Online Staff
$staff_query = "
SELECT id, username, full_name, status
FROM users
WHERE role IN ('staff', 'nurse')
AND status != 'offline'
ORDER BY status DESC, username ASC
";
$stmt3 = $conn->query($staff_query);
$staff = $stmt3->fetchAll();
echo json_encode([
'status' => 'success',
'data' => [
'stats' => [
'total' => $stats['total'] ?? 0,
'pending' => $stats['pending'] ?? 0,
'in_progress' => $stats['in_progress'] ?? 0,
'completed' => $stats['completed'] ?? 0
],
'jobs' => $jobs,
'staff' => $staff
]
]);