From d11dc0983ff4aa84ed1668586468661317ba2874 Mon Sep 17 00:00:00 2001 From: NAS-Admin Date: Mon, 1 Jun 2026 09:22:26 +0900 Subject: [PATCH] feat(users): organically link Laptop Assets and User Management with multi-asset assigned/temporary laptops support --- api.php | 36 +++++++++++ users.php | 184 +++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 184 insertions(+), 36 deletions(-) diff --git a/api.php b/api.php index 510edfa..ba32148 100644 --- a/api.php +++ b/api.php @@ -139,6 +139,7 @@ FROM departments d JOIN dept_path dp ON d.parent_id = dp.id ) SELECT u.*, dp.path as dept_name, (SELECT asset_tag FROM laptop_assets WHERE current_user_id = u.id ORDER BY id DESC LIMIT 1) as laptop_tag, +(SELECT GROUP_CONCAT(asset_tag, ',') FROM laptop_assets WHERE current_user_id = u.id) as laptop_tags, (SELECT purchase_date FROM laptop_assets WHERE current_user_id = u.id ORDER BY id DESC LIMIT 1) as laptop_purchase_date, (SELECT m.model_name FROM laptop_assets a JOIN laptop_models m ON a.model_id = m.id WHERE a.current_user_id = u.id ORDER BY a.id DESC LIMIT 1) as laptop_model_name, @@ -327,6 +328,41 @@ WHERE a.rental_user_id = ?"; echo json_encode($stmt->fetchAll()); break; + case 'get_user_laptops': + $user_id = (int) $_GET['user_id']; + $query = "SELECT a.*, m.model_name, m.manufacturer +FROM laptop_assets a +JOIN laptop_models m ON a.model_id = m.id +WHERE a.current_user_id = ?"; + $stmt = $db->prepare($query); + $stmt->execute([$user_id]); + echo json_encode($stmt->fetchAll()); + break; + + case 'unassign_laptop': + $data = json_decode(file_get_contents('php://input'), true); + $asset_id = (int)$data['id']; + + // Get asset details to log + $old_stmt = $db->prepare("SELECT assigned_user_name FROM laptop_assets WHERE id = ?"); + $old_stmt->execute([$asset_id]); + $old_name = $old_stmt->fetchColumn() ?: ''; + + // Update to stock + $stmt = $db->prepare("UPDATE laptop_assets SET + current_user_id = NULL, + status = 'stock', + assigned_user_name = '업무용(TEMP_44666b)' + WHERE id = ?"); + $stmt->execute([$asset_id]); + + // Log history + $log_stmt = $db->prepare("INSERT INTO asset_history (asset_id, log_type, user_name, action_date, note) VALUES (?, 'assignment', '재고(반납)', ?, '직원 페이지에서 배정 해제됨')"); + $log_stmt->execute([$asset_id, date('Y-m-d')]); + + echo json_encode(['success' => true]); + break; + case 'update_asset_remarks': $data = json_decode(file_get_contents('php://input'), true); $stmt = $db->prepare("UPDATE laptop_assets SET remarks = ? WHERE id = ?"); diff --git a/users.php b/users.php index a24e259..7b22553 100644 --- a/users.php +++ b/users.php @@ -298,22 +298,23 @@ - -