Path : /home/vishqocm/pcib.in/student/ajax/
File Upload :
Current File : //home/vishqocm/pcib.in/student/ajax/get_student_documents.php

<?php
session_start();

// Check if student is logged in
if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'student') {
    echo json_encode([
        'success' => false,
        'message' => 'Unauthorized access'
    ]);
    exit();
}

// Include database connection
require_once('../../includes/db_connection.php');

$userId = $_SESSION['user_id'];

try {
    // Fetch all documents for the user
    $stmt = $conn->prepare("
        SELECT id, document_type, file_path, upload_date, status, admin_notes 
        FROM student_documents 
        WHERE user_id = ? 
        ORDER BY upload_date DESC
    ");
    $stmt->bind_param('i', $userId);
    $stmt->execute();
    $result = $stmt->get_result();
    
    $documents = [];
    
    // Define document types display names
    $documentTypeDisplay = [
        'id_proof' => 'ID Proof',
        'address_proof' => 'Address Proof',
        'qualification_certificate' => 'Qualification Certificate',
        'passport_photo' => 'Passport Size Photo'
    ];
    
    // Define status badges
    $statusBadges = [
        'pending' => '<span class="badge bg-warning text-dark">Pending</span>',
        'verified' => '<span class="badge bg-success">Verified</span>',
        'rejected' => '<span class="badge bg-danger">Rejected</span>'
    ];
    
    // Format documents for response
    while ($row = $result->fetch_assoc()) {
        $documents[] = [
            'id' => $row['id'],
            'document_type' => $row['document_type'],
            'document_type_display' => $documentTypeDisplay[$row['document_type']] ?? $row['document_type'],
            'file_path' => $row['file_path'],
            'upload_date' => date('M d, Y', strtotime($row['upload_date'])),
            'status' => $row['status'],
            'status_badge' => $statusBadges[$row['status']] ?? '<span class="badge bg-secondary">'.$row['status'].'</span>',
            'admin_notes' => $row['admin_notes']
        ];
    }
    
    // Check for missing required documents
    $requiredDocuments = [
        'id_proof' => 'ID Proof',
        'address_proof' => 'Address Proof',
        'qualification_certificate' => 'Qualification Certificate',
        'passport_photo' => 'Passport Size Photo'
    ];
    
    $missingDocuments = [];
    $uploadedDocumentTypes = array_column($documents, 'document_type');
    
    foreach ($requiredDocuments as $type => $display) {
        if (!in_array($type, $uploadedDocumentTypes)) {
            $missingDocuments[] = [
                'document_type' => $type,
                'document_type_display' => $display
            ];
        }
    }
    
    // Get application status if exists
    $applicationStatus = null;
    
    $stmt = $conn->prepare("
        SELECT status FROM applications 
        WHERE user_id = ? 
        ORDER BY application_date DESC 
        LIMIT 1
    ");
    $stmt->bind_param('i', $userId);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($row = $result->fetch_assoc()) {
        $applicationStatus = $row['status'];
    }
    
    echo json_encode([
        'success' => true,
        'documents' => $documents,
        'missing_documents' => $missingDocuments,
        'application_status' => $applicationStatus
    ]);
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => 'Error retrieving documents: ' . $e->getMessage()
    ]);
}

$conn->close();