68 lines
No EOL
2.8 KiB
PHP
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()]);
|
|
} |