false, 'message' => 'λ‘κ·ΈμΈμ΄ νμν©λλ€.']); exit; } $action = $_POST['action'] ?? ''; $reservation_id = (int)($_POST['id'] ?? 0); try { if ($action === 'cancel') { if (!$reservation_id) { throw new Exception('μμ½ IDκ° μμ΅λλ€.'); } // λ³ΈμΈμ μμ½μΈμ§ νμΈ $sql = "SELECT * FROM expert_visit_reservations WHERE id = '{$reservation_id}' AND (customer_id = '{$member['mb_id']}' OR customer_phone = '{$member['mb_hp']}')"; $reservation = sql_fetch($sql); if (!$reservation) { throw new Exception('μ·¨μν μ μλ μμ½ μ λ³΄κ° μκ±°λ κΆνμ΄ μμ΅λλ€.'); } // μ΄λ―Έ μ·¨μλμκ±°λ μλ£λ μμ½μ λ³κ²½ λΆκ° if ($reservation['status'] === 'cancelled' || $reservation['status'] === 'completed') { throw new Exception('μ΄λ―Έ μ·¨μλμκ±°λ μλ£λ μμ½μ λλ€.'); } // μμ½ μ·¨μ μ²λ¦¬ $sql_update = "UPDATE expert_visit_reservations SET status = 'cancelled', updated_at = NOW(), updated_by = '{$member['mb_id']}' WHERE id = '{$reservation_id}'"; if (sql_query($sql_update)) { // μμ½ μ·¨μ μλ¦Ό λ°μ‘ if (function_exists('notify_for_expert_visit')) { notify_for_expert_visit($reservation_id, 'μμ½μ·¨μ'); } echo json_encode(['success' => true, 'message' => 'μμ½μ΄ μ μμ μΌλ‘ μ·¨μλμμ΅λλ€.']); } else { throw new Exception('μμ½ μ·¨μ μ€ μ€λ₯κ° λ°μνμ΅λλ€.'); } } elseif ($action === 'get_list') { // μμ½ λͺ©λ‘ μ‘°ν $sql = "SELECT * FROM expert_visit_reservations WHERE (customer_id = '{$member['mb_id']}' OR customer_phone = '{$member['mb_hp']}') AND is_deleted = 0 ORDER BY visit_date DESC, visit_time DESC"; $result = sql_query($sql); $reservations = []; while($row = sql_fetch_array($result)) { $row['status_text'] = get_order_config('reservation_status_' . $row['status'], $row['status']); $row['is_cancellable'] = !in_array($row['status'], ['completed', 'cancelled']); $reservations[] = $row; } echo json_encode(['success' => true, 'data' => $reservations]); } else { throw new Exception('μλͺ»λ μμ²μ λλ€.'); } } catch (Exception $e) { echo json_encode(['success' => false, 'message' => $e->getMessage()]); } exit; } if (!defined('_GNUBOARD_')) exit; $ajax_url = G5_ADMIN_URL . '/order_manage/components/my_reservations_popup.php'; include_once(G5_ADMIN_URL . '/order_manage/_common_con.php'); include_once(G5_ADMIN_URL . '/order_manage/lib/notification_helper.php'); ?>