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

<?php
// Enable error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Set headers for JSON response
header('Content-Type: application/json');

// Start session
session_start();

// Include database configuration
require_once '../../admin/database/db_config.php';

// Ensure we have a valid database connection before proceeding
if (!isset($conn) || !($conn instanceof mysqli) || $conn->connect_error) {
    // Try to connect manually if the include didn't set up $conn correctly
    $db_host = $db_host ?? 'localhost';
    $db_user = $db_user ?? 'root';
    $db_pass = $db_pass ?? '';
    $db_name = $db_name ?? 'popularcomputer';
    
    $conn = new mysqli($db_host, $db_user, $db_pass, $db_name);
    
    if ($conn->connect_error) {
        echo json_encode([
            'success' => false,
            'message' => 'Database connection failed: ' . $conn->connect_error
        ]);
        exit();
    }
}

// Check if user is logged in
if (!isset($_SESSION['user_id'])) {
    echo json_encode([
        'success' => false,
        'message' => 'Authentication required'
    ]);
    exit;
}

$user_id = $_SESSION['user_id'];
$application_id = isset($_GET['application_id']) ? intval($_GET['application_id']) : 0;

$response = [
    'success' => true,
    'refresh_needed' => false,
    'documents' => [],
        'total_documents' => 0,
        'verified_documents' => 0,
    'pending_documents' => 0,
        'rejected_documents' => 0,
    'completion_percentage' => 0,
    'application_status' => '',
    'all_documents_uploaded' => false
];

// Get application status if application_id is provided
if ($application_id > 0) {
    $app_query = "SELECT status FROM enrollment_applications WHERE id = ? AND user_id = ?";
    $app_stmt = $conn->prepare($app_query);
    $app_stmt->bind_param("ii", $application_id, $user_id);
    $app_stmt->execute();
    $app_result = $app_stmt->get_result();
    
    if ($app_result && $app_result->num_rows > 0) {
        $app_data = $app_result->fetch_assoc();
        $response['application_status'] = $app_data['status'];
    }
}

// Define required document types
$required_document_types = ['id_proof', 'educational_certificate', 'photograph'];
$total_required = count($required_document_types);

// Get document counts by status
$count_query = "SELECT 
                    COUNT(*) as total, 
                    SUM(CASE WHEN status = 'verified' THEN 1 ELSE 0 END) as verified,
                    SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) as pending,
                    SUM(CASE WHEN status = 'rejected' THEN 1 ELSE 0 END) as rejected
    FROM student_documents 
                WHERE user_id = ?";
$count_stmt = $conn->prepare($count_query);
$count_stmt->bind_param("i", $user_id);
$count_stmt->execute();
$count_result = $count_stmt->get_result()->fetch_assoc();

$response['total_documents'] = $count_result['total'] ?? 0;
$response['verified_documents'] = $count_result['verified'] ?? 0;
$response['pending_documents'] = $count_result['pending'] ?? 0;
$response['rejected_documents'] = $count_result['rejected'] ?? 0;

// Get all documents
$documents_query = "SELECT * FROM student_documents WHERE user_id = ? ORDER BY upload_date DESC";
$doc_stmt = $conn->prepare($documents_query);
$doc_stmt->bind_param("i", $user_id);
$doc_stmt->execute();
$documents_result = $doc_stmt->get_result();

// Count uploaded documents by type
$uploaded_documents = [];
$uploaded_required = 0;

if ($documents_result && $documents_result->num_rows > 0) {
    while ($doc = $documents_result->fetch_assoc()) {
        // Store document in response
        $response['documents'][] = [
            'id' => $doc['id'],
            'type' => $doc['document_type'],
            'path' => $doc['document_path'],
            'upload_date' => date('M d, Y h:i A', strtotime($doc['upload_date'])),
            'status' => $doc['status']
        ];
        
        // Track document types
        $uploaded_documents[$doc['document_type']] = $doc;
        
        // Count required documents
        if (in_array($doc['document_type'], $required_document_types)) {
            $uploaded_required++;
        }
    }
}

// Calculate document completion percentage
$response['completion_percentage'] = ($total_required > 0) ? round(($uploaded_required / $total_required) * 100) : 0;
$response['all_documents_uploaded'] = ($uploaded_required == $total_required);

// Check missing required documents
$missing_documents = [];
foreach ($required_document_types as $type) {
    if (!isset($uploaded_documents[$type])) {
        $missing_documents[] = $type;
    }
}
$response['missing_documents'] = $missing_documents;

// Generate HTML for the document list
$document_html = '';
if (count($response['documents']) > 0) {
    $document_html .= '<div class="table-responsive">';
    $document_html .= '<table class="table table-hover" style="color: white; border-color: rgba(255,255,255,0.1);">';
    $document_html .= '<thead><tr><th>Document Type</th><th>Upload Date</th><th>Status</th><th>File</th></tr></thead>';
    $document_html .= '<tbody>';
    
    foreach ($response['documents'] as $doc) {
        $status_class = ($doc['status'] === 'verified') ? 'bg-success' : (($doc['status'] === 'rejected') ? 'bg-danger' : 'bg-warning');
        
        $document_html .= '<tr>';
        $document_html .= '<td>' . ucfirst(str_replace('_', ' ', $doc['type'])) . '</td>';
        $document_html .= '<td>' . $doc['upload_date'] . '</td>';
        $document_html .= '<td><span class="badge ' . $status_class . '">' . ucfirst($doc['status']) . '</span></td>';
        $document_html .= '<td><a href="' . $doc['path'] . '" target="_blank" class="btn btn-sm btn-primary"><i class="fas fa-eye me-1"></i> View</a></td>';
        $document_html .= '</tr>';
    }
    
    $document_html .= '</tbody></table></div>';
} else {
    $document_html = '<div class="alert" style="background: rgba(255, 255, 255, 0.1); color: white;">';
    $document_html .= '<i class="fas fa-info-circle me-2"></i>No documents uploaded yet. Please upload the required documents above.';
    $document_html .= '</div>';
}

$response['document_html'] = $document_html;

echo json_encode($response);
?>