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

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

try {
    $equipo_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
    
    if (!$equipo_id) {
        throw new Exception('ID de equipo no válido');
    }
    
    // Obtener información del equipo
    $equipo_query = "SELECT * FROM timportequipos WHERE id = ?";
    $equipo_stmt = $conn->prepare($equipo_query);
    $equipo_stmt->execute([$equipo_id]);
    $equipo = $equipo_stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$equipo) {
        throw new Exception('Equipo no encontrado');
    }
    
    // Obtener cronograma de pagos
    $cronograma_query = "SELECT * FROM tcronogramaequipo WHERE ID = ? ORDER BY codcronogramaequipo ASC";
    $cronograma_stmt = $conn->prepare($cronograma_query);
    $cronograma_stmt->execute([$equipo_id]);
    $cronogramas = $cronograma_stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($cronogramas)) {
        throw new Exception('No hay cronograma de pagos para este equipo');
    }
    
    // Configurar headers para descarga de Excel
    $filename = 'Cronograma_' . $equipo['nombres_ap_raz_soc'] . '_' . date('Y-m-d') . '.xls';
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Cache-Control: max-age=0');
    
    // Generar contenido Excel
    echo "CRONOGRAMA DE PAGOS - EQUIPOS MÓVILES\n\n";
    echo "Cliente: " . $equipo['nombres_ap_raz_soc'] . "\n";
    echo "Documento: " . $equipo['tipo_documento'] . " - " . $equipo['nro_documento'] . "\n";
    echo "Teléfono: " . ($equipo['numero_celular'] ?: 'N/A') . "\n";
    echo "Correo: " . ($equipo['correo'] ?: 'N/A') . "\n";
    echo "Agente: " . ($equipo['agente'] ?: 'N/A') . "\n";
    echo "Fecha de Entrega: " . ($equipo['fecha_entrega'] ? date('d/m/Y', strtotime($equipo['fecha_entrega'])) : 'N/A') . "\n";
    echo "Operador: " . ($equipo['operador_actual'] ?: 'N/A') . "\n";
    echo "Estado: " . ($equipo['estado'] ?: 'N/A') . "\n\n";
    
    echo "CRONOGRAMA DE PAGOS\n";
    echo "Cuota\tFecha Entrega\tInicio Cobranza\tFecha Pago\tMonto\tFecha Pagada\tEstado\n";
    
    foreach ($cronogramas as $cuota) {
        $fecha_pago = new DateTime($cuota['fechapago']);
        $hoy = new DateTime();
        $dias_restantes = $hoy->diff($fecha_pago)->days;
        
        $estado_cuota = '';
        $tienePago = (!empty($cuota['monto']) || !empty($cuota['pagadofecha']) || strtoupper((string)$cuota['estado']) === 'PAGADO');
        
        if ($tienePago) {
            $estado_cuota = 'PAGADO';
        } elseif ($fecha_pago < $hoy) {
            $estado_cuota = 'Vencida';
        } elseif ($dias_restantes <= 7) {
            $estado_cuota = 'Por Vencer';
        } else {
            $estado_cuota = 'Pendiente';
        }
        
        echo intval($cuota['nropago']) . "\t";
        echo date('d/m/Y', strtotime($cuota['fecha_entrega'])) . "\t";
        echo date('d/m/Y', strtotime($cuota['fecha_iniciocobranza'])) . "\t";
        echo date('d/m/Y', strtotime($cuota['fechapago'])) . "\t";
        echo (!is_null($cuota['monto']) ? ('S/ ' . number_format((float)$cuota['monto'], 2)) : 'N/A') . "\t";
        echo (!empty($cuota['pagadofecha']) ? date('d/m/Y', strtotime($cuota['pagadofecha'])) : 'N/A') . "\t";
        echo $estado_cuota . "\n";
    }
    
    echo "\nRESUMEN\n";
    echo "Total de Meses: " . count($cronogramas) . "\n";
    echo "Primer Mes: " . date('d/m/Y', strtotime($cronogramas[0]['fechapago'])) . "\n";
    echo "Último Mes: " . date('d/m/Y', strtotime(end($cronogramas)['fechapago'])) . "\n";
    
} catch(Exception $e) {
    echo "Error: " . $e->getMessage();
}
?>
