jasan/api.php
2026-02-08 15:54:29 +09:00

68 lines
No EOL
2.8 KiB
PHP

<?php
/**
* api.php
* FKI Asset System RESTful API
*/
require_once 'config.php';
header('Content-Type: application/json; charset=utf-8');
$action = $_GET['action'] ?? '';
try {
switch ($action) {
case 'get_dashboard_stats':
// Laptops
$laptop_total = $db->query("SELECT COUNT(*) FROM laptop_assets")->fetchColumn();
$laptop_assigned = $db->query("SELECT COUNT(*) FROM laptop_assets WHERE status = 'assigned'")->fetchColumn();
// Cards
$card_total = $db->query("SELECT COUNT(*) FROM access_cards")->fetchColumn();
$card_assigned = $db->query("SELECT COUNT(*) FROM access_cards WHERE status = 'assigned'")->fetchColumn();
// MFP
$mfp_total = $db->query("SELECT COUNT(*) FROM mfp_accounts")->fetchColumn();
$mfp_active = $db->query("SELECT COUNT(*) FROM mfp_accounts WHERE status = 'active'")->fetchColumn();
// Users
$users_general = $db->query("SELECT COUNT(*) FROM users WHERE accounting_type = '일반회계'")->fetchColumn();
$users_special = $db->query("SELECT COUNT(*) FROM users WHERE accounting_type = '특별회계'")->fetchColumn();
echo json_encode([
'laptops' => ['total' => (int) $laptop_total, 'assigned' => (int) $laptop_assigned],
'cards' => ['total' => (int) $card_total, 'assigned' => (int) $card_assigned],
'mfp' => ['total' => (int) $mfp_total, 'assigned' => (int) $mfp_active],
'users' => ['general' => (int) $users_general, 'special' => (int) $users_special]
]);
break;
case 'get_users':
$query = "SELECT u.*, d.name as dept_name FROM users u LEFT JOIN departments d ON u.department_id = d.id";
$search = $_GET['search'] ?? '';
if ($search) {
$query .= " WHERE u.name LIKE :search OR u.emp_id LIKE :search OR u.email LIKE :search";
$stmt = $db->prepare($query);
$stmt->execute(['search' => "%$search%"]);
} else {
$stmt = $db->query($query);
}
echo json_encode($stmt->fetchAll());
break;
case 'get_laptops':
$query = "SELECT a.*, m.model_name, m.manufacturer, u.name as user_name
FROM laptop_assets a
LEFT JOIN laptop_models m ON a.model_id = m.id
LEFT JOIN users u ON a.current_user_id = u.id";
echo json_encode($db->query($query)->fetchAll());
break;
default:
echo json_encode(['error' => 'Invalid action']);
break;
}
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['error' => $e->getMessage()]);
}