getConnection(); } catch (Exception $e) { logPartnerActivity('Database connection failed: ' . $e->getMessage()); die('System error. Please try again later.'); } $success_message = ''; $error_message = ''; // Handle ticket creation if ($_SERVER['REQUEST_METHOD'] === 'POST') { $subject = isset($_POST['subject']) ? trim($_POST['subject']) : ''; $message = isset($_POST['message']) ? trim($_POST['message']) : ''; $priority = isset($_POST['priority']) ? $_POST['priority'] : 'medium'; if (empty($subject) || empty($message)) { $error_message = 'Subject and message are required.'; } elseif (strlen($subject) > 255) { $error_message = 'Subject must be 255 characters or less.'; } elseif (strlen($message) > 5000) { $error_message = 'Message must be 5000 characters or less.'; } else { try { $pdo->beginTransaction(); // Generate unique ticket number $ticketNumber = 'TKT-' . date('Ymd') . '-' . strtoupper(substr(bin2hex(random_bytes(4)), 0, 6)); // Insert ticket with partner info $stmt = $pdo->prepare(" INSERT INTO support_tickets (ticket_number, user_id, sender_type, sender_id, subject, status, priority) VALUES (?, ?, 'partner', ?, ?, 'open', ?) "); $stmt->execute([$ticketNumber, $partner['id'], $partner['id'], $subject, $priority]); $ticketId = $pdo->lastInsertId(); // Insert initial message $stmt = $pdo->prepare(" INSERT INTO support_messages (ticket_id, sender_type, sender_id, message, is_internal) VALUES (?, 'user', ?, ?, 0) "); $stmt->execute([$ticketId, $partner['id'], $message]); $pdo->commit(); $success_message = "Support ticket created successfully! Ticket Number: $ticketNumber
We will respond to your query shortly."; logPartnerActivity('Support ticket created', [ 'ticket_number' => $ticketNumber, 'partner_id' => $partner['id'], 'subject' => $subject, 'priority' => $priority ]); // Clear form $_POST = []; } catch (Exception $e) { $pdo->rollBack(); logPartnerActivity('Error creating support ticket: ' . $e->getMessage()); $error_message = 'Failed to create support ticket. Please try again.'; } } } // Get partner's existing tickets try { $stmt = $pdo->prepare(" SELECT st.*, au.full_name as assigned_to_name, (SELECT COUNT(*) FROM support_messages WHERE ticket_id = st.id AND is_internal = 0) as message_count FROM support_tickets st LEFT JOIN admin_users au ON st.assigned_to = au.id WHERE st.sender_type = 'partner' AND st.sender_id = ? ORDER BY st.created_at DESC "); $stmt->execute([$partner['id']]); $tickets = $stmt->fetchAll(); } catch (Exception $e) { logPartnerActivity('Error fetching tickets: ' . $e->getMessage()); $tickets = []; } ?> Partner Support - Relevant Reflex

Partner Support Center PARTNER

Logged in as: ()

Back to Dashboard

Create New Support Ticket

Maximum 5000 characters

Your Support Tickets

No tickets yet

You haven't created any support tickets. Create one above if you need assistance.