Path : /home/vishqocm/pcib.in/enroll/ajax/
File Upload :
Current File : /home/vishqocm/pcib.in/enroll/ajax/get_documents.php

<?php
session_start();
require_once '../../config/database.php';

// Check if user is logged in
if (!isset($_SESSION['user_id'])) {
    echo json_encode(['success' => false, 'message' => 'You must be logged in to view documents']);
    exit;
}

$userId = $_SESSION['user_id'];

try {
    $pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Get all documents for this user
    $stmt = $pdo->prepare("
        SELECT 
            id, 
            document_type, 
            file_path, 
            status, 
            upload_date, 
            admin_notes 
        FROM student_documents 
        WHERE user_id = ? 
        ORDER BY upload_date DESC
    ");
    $stmt->execute([$userId]);
    $documents = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Get application status if exists
    $stmt = $pdo->prepare("
        SELECT 
            id, 
            status,
            application_date
        FROM applications 
        WHERE user_id = ? 
        ORDER BY application_date DESC 
        LIMIT 1
    ");
    $stmt->execute([$userId]);
    $application = $stmt->fetch(PDO::FETCH_ASSOC);
    
    // Document type labels
    $documentLabels = [
        'id_proof' => 'ID Proof',
        'address_proof' => 'Address Proof',
        'qualification_certificate' => 'Qualification Certificate',
        'passport_photo' => 'Passport Size Photo'
    ];
    
    // Status badges
    $statusBadges = [
        'pending' => 'warning',
        'verified' => 'success',
        'rejected' => 'danger'
    ];
    
    // Format document data for display
    $formattedDocuments = [];
    foreach ($documents as $doc) {
        $formattedDocuments[] = [
            'id' => $doc['id'],
            'document_type' => $doc['document_type'],
            'document_label' => $documentLabels[$doc['document_type']] ?? ucfirst(str_replace('_', ' ', $doc['document_type'])),
            'file_path' => $doc['file_path'],
            'status' => $doc['status'],
            'status_badge' => $statusBadges[$doc['status']] ?? 'secondary',
            'upload_date' => date('M d, Y', strtotime($doc['upload_date'])),
            'admin_notes' => $doc['admin_notes']
        ];
    }
    
    // Determine which documents are missing
    $requiredDocuments = ['id_proof', 'address_proof', 'qualification_certificate', 'passport_photo'];
    $uploadedDocumentTypes = array_column($documents, 'document_type');
    $missingDocuments = [];
    
    foreach ($requiredDocuments as $docType) {
        if (!in_array($docType, $uploadedDocumentTypes)) {
            $missingDocuments[] = [
                'document_type' => $docType,
                'document_label' => $documentLabels[$docType]
            ];
        }
    }
    
    // Calculate verification status
    $verifiedCount = 0;
    $rejectedCount = 0;
    
    foreach ($documents as $doc) {
        if ($doc['status'] === 'verified') {
            $verifiedCount++;
        } elseif ($doc['status'] === 'rejected') {
            $rejectedCount++;
        }
    }
    
    $totalRequired = count($requiredDocuments);
    $verificationProgress = $totalRequired > 0 ? round(($verifiedCount / $totalRequired) * 100) : 0;
    
    echo json_encode([
        'success' => true,
        'documents' => $formattedDocuments,
        'missing_documents' => $missingDocuments,
        'application' => $application,
        'verification_status' => [
            'total_required' => $totalRequired,
            'uploaded' => count($documents),
            'verified' => $verifiedCount,
            'rejected' => $rejectedCount,
            'progress' => $verificationProgress
        ]
    ]);
    
} catch (Exception $e) {
    echo json_encode(['success' => false, 'message' => 'Error: ' . $e->getMessage()]);
}
?>