<?php
include_once 'config/database.php';

$database = new Database();
$conn = $database->getConnection();

// Obtener parámetros de filtro
$search = isset($_GET['search']) ? trim($_GET['search']) : '';
$cronograma_filter = isset($_GET['cronograma']) ? $_GET['cronograma'] : '';

try {
    // Query para obtener todos los equipos con filtros aplicados
    $query = "SELECT e.*, 
                     CASE WHEN c.ID IS NOT NULL THEN 1 ELSE 0 END as tiene_cronograma,
                     COUNT(c.ID) as total_cuotas,
                     MIN(c.fechapago) as primera_cuota,
                     MAX(c.fechapago) as ultima_cuota
              FROM timportequipos e 
              LEFT JOIN tcronogramaequipo c ON e.id = c.ID 
              WHERE 1=1";
    $params = [];
    
    if ($search) {
        $query .= " AND (
            e.nombres_ap_raz_soc LIKE ? OR 
            e.nro_documento LIKE ? OR 
            e.agente LIKE ? OR
            e.estado LIKE ? OR
            e.operador_actual LIKE ? OR
            e.tipo_evaluacion LIKE ?
        )";
        $searchTerm = "%{$search}%";
        $params = [$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm];
    }
    
    // Aplicar filtro de cronograma
    if ($cronograma_filter === 'con') {
        $query .= " AND c.ID IS NOT NULL";
    } elseif ($cronograma_filter === 'sin') {
        $query .= " AND c.ID IS NULL";
    }
    
    $query .= " GROUP BY e.id ORDER BY e.fecha_creacion DESC, e.id DESC";
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $equipos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
} catch(PDOException $e) {
    die("Error al obtener los datos: " . $e->getMessage());
}

// Configurar headers para descarga de Excel
$filename = 'equipos_importados_' . date('Y-m-d_H-i-s') . '.xls';
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');

// Crear el archivo Excel usando HTML table
echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">';
echo '<head>';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
echo '<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>Equipos Importados</x:Name><x:WorksheetOptions><x:DefaultRowHeight>285</x:DefaultRowHeight></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->';
echo '</head>';
echo '<body>';

// Crear tabla HTML que Excel interpretará
echo '<table border="1" cellpadding="2" cellspacing="0">';

// Escribir encabezados
$headers = [
    'ID',
    'Cliente',
    'Tipo Documento',
    'Número Documento',
    'Correo',
    'Celular',
    'Contacto',
    'Agente',
    'Estado',
    'Tipo Evaluación',
    'Plan a Evaluar',
    'Operador Actual',
    'Modalidad Venta',
    'Origen',
    'Departamento',
    'Provincia',
    'Distrito',
    'Dirección',
    'Referencias',
    'Tipo Entrega',
    'Tipo Pago',
    'SEC',
    'Fecha SEC',
    'Fecha Entrega',
    'Estado Final',
    'Acciones',
    'Código Pago',
    'Fecha Creación',
    'Fecha Edición',
    'Fecha Importación',
    'Tiene Cronograma',
    'Total Cuotas',
    'Primera Cuota',
    'Última Cuota'
];

echo '<tr style="background-color: #4CAF50; color: white; font-weight: bold;">';
foreach ($headers as $header) {
    echo '<td>' . htmlspecialchars($header) . '</td>';
}
echo '</tr>';

// Escribir datos
foreach ($equipos as $equipo) {
    echo '<tr>';
    
    $row_data = [
        $equipo['id'],
        $equipo['nombres_ap_raz_soc'] ?: '',
        $equipo['tipo_documento'] ?: '',
        $equipo['nro_documento'] ?: '',
        $equipo['correo'] ?: '',
        $equipo['numero_celular'] ?: '',
        $equipo['numero_contacto'] ?: '',
        $equipo['agente'] ?: '',
        $equipo['estado'] ?: '',
        $equipo['tipo_evaluacion'] ?: '',
        $equipo['plan_a_evaluar'] ?: '',
        $equipo['operador_actual'] ?: '',
        $equipo['modalidad_venta'] ?: '',
        $equipo['origen'] ?: '',
        $equipo['departamento'] ?: '',
        $equipo['provincia'] ?: '',
        $equipo['distrito'] ?: '',
        $equipo['direccion'] ?: '',
        $equipo['referencias'] ?: '',
        $equipo['tipo_entrega'] ?: '',
        $equipo['tipo_pago'] ?: '',
        $equipo['sec'] ?: '',
        $equipo['fecha_sec'] ? date('d/m/Y', strtotime($equipo['fecha_sec'])) : '',
        $equipo['fecha_entrega'] ? date('d/m/Y', strtotime($equipo['fecha_entrega'])) : '',
        $equipo['estado_final'] ?: '',
        $equipo['acciones'] ?: '',
        $equipo['codigodepago'] ?: '',
        $equipo['fecha_creacion'] ? date('d/m/Y', strtotime($equipo['fecha_creacion'])) : '',
        $equipo['fecha_edicion'] ? date('d/m/Y', strtotime($equipo['fecha_edicion'])) : '',
        $equipo['fecha_importacion'] ? date('d/m/Y', strtotime($equipo['fecha_importacion'])) : '',
        $equipo['tiene_cronograma'] ? 'Sí' : 'No',
        $equipo['total_cuotas'] ?: '0',
        $equipo['primera_cuota'] ? date('d/m/Y', strtotime($equipo['primera_cuota'])) : '',
        $equipo['ultima_cuota'] ? date('d/m/Y', strtotime($equipo['ultima_cuota'])) : ''
    ];
    
    foreach ($row_data as $cell) {
        echo '<td>' . htmlspecialchars($cell) . '</td>';
    }
    
    echo '</tr>';
}

echo '</table>';
echo '</body>';
echo '</html>';

exit();
?>
