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'); ?>

λ‚˜μ˜ μ˜ˆμ•½ ν˜„ν™©