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

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

// Delete logic
if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    try {
        // Obtener la empresa del usuario logueado
        $codempresaUsuario = null;
        $stmt_empresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
        $stmt_empresa->execute([$_SESSION['user']['codempleado']]);
        $resultado_empresa = $stmt_empresa->fetch(PDO::FETCH_ASSOC);
        if ($resultado_empresa) {
            $codempresaUsuario = $resultado_empresa['codempresa'];
        }
        
        // Verificar que el registro pertenece a la empresa del usuario
        if ($codempresaUsuario) {
            $stmt_verificar = $conn->prepare("SELECT id FROM timportequipos WHERE id = ? AND codempresa = ?");
            $stmt_verificar->execute([$id, $codempresaUsuario]);
            $registro_existe = $stmt_verificar->fetch(PDO::FETCH_ASSOC);
            
            if (!$registro_existe) {
                $_SESSION['error'] = "No tiene permisos para eliminar este registro";
            } else {
                $stmt = $conn->prepare("DELETE FROM timportequipos WHERE id = ? AND codempresa = ?");
                $stmt->execute([$id, $codempresaUsuario]);
                $_SESSION['success'] = "Registro eliminado correctamente";
            }
        } else {
            $_SESSION['error'] = "No se pudo verificar la empresa del usuario";
        }
    } catch(PDOException $e) {
        $_SESSION['error'] = "Error al eliminar el registro: " . $e->getMessage();
    }
    header("Location: importarequipos.php");
    exit();
}

// CSV Import logic
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['csv_file'])) {
    $file = $_FILES['csv_file'];
    
    if ($file['error'] == 0 && $file['type'] == 'text/csv') {
        try {
            // Obtener información del usuario logueado
            $codempleado = $_SESSION['user']['codempleado'];
            $codempresa = null;
            
            // Obtener el codempresa del empleado logueado
            $stmt_empresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
            $stmt_empresa->execute([$codempleado]);
            $resultado_empresa = $stmt_empresa->fetch(PDO::FETCH_ASSOC);
            if ($resultado_empresa) {
                $codempresa = $resultado_empresa['codempresa'];
            }
            
            if (!$codempresa) {
                throw new Exception("No se pudo obtener la empresa del usuario logueado");
            }
            
            // Open CSV file
            $handle = fopen($file['tmp_name'], 'r');
            if ($handle === FALSE) {
                throw new Exception("No se pudo abrir el archivo CSV");
            }
            
            // Read header row
            $header = fgetcsv($handle, 1000, ';');
            if (!$header) {
                throw new Exception("No se pudo leer el encabezado del CSV");
            }
            
            // Skip header row and start importing data
            $row = 2; // Start from row 2 (after header)
            $imported = 0;
            $errors = [];
            
            while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) {
                try {
                    // Validate data length
                    if (count($data) < count($header)) {
                        $errors[] = "Fila $row: Datos insuficientes";
                        $row++;
                        continue;
                    }
                    
                    // Prepare data for insertion - Skip ID column (index 0) since it's auto-increment
                    $fecha_creacion = !empty($data[1]) ? date('Y-m-d', strtotime(str_replace('/', '-', $data[1]))) : null;
                    $fecha_edicion = !empty($data[2]) ? date('Y-m-d', strtotime(str_replace('/', '-', $data[2]))) : null;
                    $agente = $data[3] ?? null;
                    $estado = $data[4] ?? null;
                    $nombres_ap_raz_soc = $data[5] ?? null;
                    $tipo_documento = $data[6] ?? null;
                    $nro_documento = $data[7] ?? null;
                    $correo = $data[8] ?? null;
                    $tipo_evaluacion = $data[9] ?? null;
                    $numero_celular = $data[10] ?? null;
                    $operador_actual = $data[11] ?? null;
                    $origen = $data[12] ?? null;
                    $plan_a_evaluar = $data[13] ?? null;
                    $modalidad_venta = $data[14] ?? null;
                    $departamento = $data[15] ?? null;
                    $provincia = $data[16] ?? null;
                    $distrito = $data[17] ?? null;
                    $direccion = $data[18] ?? null;
                    $referencias = $data[19] ?? null;
                    $numero_contacto = $data[20] ?? null;
                    $tipo_entrega = $data[21] ?? null;
                    $tipo_pago = $data[22] ?? null;
                    $sec = $data[23] ?? null;
                    $fecha_sec = !empty($data[24]) ? date('Y-m-d', strtotime(str_replace('/', '-', $data[24]))) : null;
                    $fecha_entrega = !empty($data[25]) ? date('Y-m-d', strtotime(str_replace('/', '-', $data[25]))) : null;
                    $estado_final = $data[26] ?? null;
                    $acciones = $data[27] ?? null;
                    $codigodepago = $data[28] ?? null;
                    
                    // Insert data - 30 campos en total (sin el campo id que es auto-increment y sin fecha_importacion que tiene DEFAULT)
                    $stmt = $conn->prepare("INSERT INTO timportequipos (
                        fecha_creacion, fecha_edicion, agente, estado, nombres_ap_raz_soc,
                        tipo_documento, nro_documento, correo, tipo_evaluacion, numero_celular,
                        operador_actual, origen, plan_a_evaluar, modalidad_venta, departamento,
                        provincia, distrito, direccion, referencias, numero_contacto,
                        tipo_entrega, tipo_pago, sec, fecha_sec, fecha_entrega, estado_final, acciones, codigodepago, codempleado, codempresa
                    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
                    
                    // Array con exactamente 30 parámetros - Contados uno por uno
                    $params = [
                        $fecha_creacion,        // 1
                        $fecha_edicion,         // 2
                        $agente,                 // 3
                        $estado,                 // 4
                        $nombres_ap_raz_soc,    // 5
                        $tipo_documento,        // 6
                        $nro_documento,         // 7
                        $correo,                // 8
                        $tipo_evaluacion,       // 9
                        $numero_celular,        // 10
                        $operador_actual,       // 11
                        $origen,                // 12
                        $plan_a_evaluar,        // 13
                        $modalidad_venta,       // 14
                        $departamento,          // 15
                        $provincia,             // 16
                        $distrito,              // 17
                        $direccion,             // 18
                        $referencias,           // 19
                        $numero_contacto,       // 20
                        $tipo_entrega,          // 21
                        $tipo_pago,             // 22
                        $sec,                   // 23
                        $fecha_sec,             // 24
                        $fecha_entrega,         // 25
                        $estado_final,          // 26
                        $acciones,              // 27
                        $codigodepago,          // 28
                        $codempleado,           // 29
                        $codempresa             // 30
                    ];
                    
                    // Debug: Mostrar el número de parámetros
                    $paramCount = count($params);
                    if ($paramCount !== 30) {
                        throw new Exception("Error: Número de parámetros incorrecto. Esperados: 30, Encontrados: $paramCount. Parámetros: " . implode(', ', array_map(function($p) { return $p === null ? 'NULL' : (is_string($p) ? "'$p'" : $p); }, $params)));
                    }
                    
                    $stmt->execute($params);
                    
                    $imported++;
                    
                } catch (Exception $e) {
                    $errors[] = "Fila $row: " . $e->getMessage();
                }
                $row++;
            }
            
            fclose($handle);
            
            if ($imported > 0) {
                $_SESSION['success'] = "Se importaron $imported registros correctamente";
                if (!empty($errors)) {
                    $_SESSION['warning'] = "Se encontraron " . count($errors) . " errores durante la importación";
                }
            } else {
                $_SESSION['error'] = "No se pudo importar ningún registro";
            }
            
            if (!empty($errors)) {
                $_SESSION['import_errors'] = $errors;
            }
            
        } catch (Exception $e) {
            $_SESSION['error'] = "Error durante la importación: " . $e->getMessage();
        }
    } else {
        $_SESSION['error'] = "Por favor seleccione un archivo CSV válido";
    }
    
    header("Location: importarequipos.php");
    exit();
}

// Fetch records with search and pagination
try {
    // Obtener la empresa del usuario logueado
    $codempresaUsuario = null;
    $stmt_empresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmt_empresa->execute([$_SESSION['user']['codempleado']]);
    $resultado_empresa = $stmt_empresa->fetch(PDO::FETCH_ASSOC);
    if ($resultado_empresa) {
        $codempresaUsuario = $resultado_empresa['codempresa'];
    }
    
    $search = isset($_GET['search']) ? trim($_GET['search']) : '';
    $page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
    $records_per_page = isset($_GET['per_page']) ? max(10, min(100, intval($_GET['per_page']))) : 20;
    $offset = ($page - 1) * $records_per_page;
    
    // Count total records for pagination
    $count_query = "SELECT COUNT(DISTINCT e.id) as total 
                    FROM timportequipos e 
                    LEFT JOIN tcronogramaequipo c ON e.id = c.ID 
                    WHERE 1=1";
    $count_params = [];
    
    // Filtrar por empresa del usuario logueado
    if ($codempresaUsuario) {
        $count_query .= " AND e.codempresa = ?";
        $count_params[] = $codempresaUsuario;
    }
    
    if ($search) {
        $count_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}%";
        $count_params = array_merge($count_params, [$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm]);
    }
    
    // Filter by cronograma status
    $cronograma_filter = isset($_GET['cronograma']) ? $_GET['cronograma'] : '';
    if ($cronograma_filter === 'con') {
        $count_query .= " AND c.ID IS NOT NULL";
    } elseif ($cronograma_filter === 'sin') {
        $count_query .= " AND c.ID IS NULL";
    }
    
    $count_stmt = $conn->prepare($count_query);
    $count_stmt->execute($count_params);
    $total_records = $count_stmt->fetch(PDO::FETCH_ASSOC)['total'];
    $total_pages = ceil($total_records / $records_per_page);
    
    // Ensure page is within valid range
    if ($page > $total_pages && $total_pages > 0) {
        $page = $total_pages;
        $offset = ($page - 1) * $records_per_page;
    }
    
    // Fetch records for current page with cronograma information
    $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 = [];
    
    // Filtrar por empresa del usuario logueado
    if ($codempresaUsuario) {
        $query .= " AND e.codempresa = ?";
        $params[] = $codempresaUsuario;
    }
    
    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 = array_merge($params, [$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm]);
    }
    
    // Apply cronograma filter to main query
    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 LIMIT " . intval($records_per_page) . " OFFSET " . intval($offset);
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $equipos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
} catch(PDOException $e) {
    $_SESSION['error'] = "Error al obtener los datos: " . $e->getMessage();
    $equipos = [];
    $total_records = 0;
    $total_pages = 0;
    $page = 1;
}
?>

<div class="col-md-10 p-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <div>
            <h2>Importar Móviles</h2>
            <?php if ($total_records > 0): ?>
                <small class="text-muted">
                    Total: <?php echo number_format($total_records); ?> registros | 
                    Página <?php echo $page; ?> de <?php echo $total_pages; ?>
                </small>
            <?php endif; ?>
        </div>
        <div>
            <button type="button" class="btn btn-success" onclick="exportarEquipos()">
                <i class="fas fa-file-excel"></i> Exportar Excel
            </button>
        </div>
    </div>

    <!-- Botones de acción múltiple -->
    <div class="card mb-4" id="accionesMultiples" style="display: none;">
        <div class="card-body">
            <div class="d-flex justify-content-between align-items-center">
                <div>
                    <span class="badge bg-info" id="registrosSeleccionados">0 registros seleccionados</span>
                </div>
                <div>
                    <button type="button" class="btn btn-danger me-2" onclick="eliminarSeleccionados()" id="btnEliminarSeleccionados">
                        <i class="fas fa-trash"></i> Eliminar Seleccionados
                    </button>
                    <button type="button" class="btn btn-warning" onclick="crearCronogramasGrupales()" id="btnCrearCronogramasGrupales">
                        <i class="fas fa-calendar-plus"></i> Crear Cronogramas Grupales
                    </button>
                </div>
            </div>
        </div>
    </div>

    <?php if (isset($_SESSION['success'])): ?>
        <div class="alert alert-success">
            <?php 
            echo $_SESSION['success']; 
            unset($_SESSION['success']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_SESSION['warning'])): ?>
        <div class="alert alert-warning">
            <?php 
            echo $_SESSION['warning']; 
            unset($_SESSION['warning']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_SESSION['error'])): ?>
        <div class="alert alert-danger">
            <?php 
            echo $_SESSION['error']; 
            unset($_SESSION['error']);
            ?>
        </div>
    <?php endif; ?>

    <!-- CSV Import Form -->
    <div class="card mb-4">
        <div class="card-body">
            <h5 class="card-title">Importar Archivo CSV</h5>
            <form method="POST" action="importarequipos.php" enctype="multipart/form-data">
                <div class="row">
                    <div class="col-md-6 mb-3">
                        <label class="form-label">Seleccionar archivo CSV</label>
                        <input type="file" class="form-control" name="csv_file" accept=".csv" required>
                        <div class="form-text">El archivo debe estar en formato CSV con separador punto y coma (;)</div>
                    </div>
                    <div class="col-md-6 mb-3 d-flex align-items-end">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-upload"></i> Importar CSV
                        </button>
                    </div>
                </div>
            </form>
        </div>
    </div>

    <!-- Import Errors Display -->
    <?php if (isset($_SESSION['import_errors']) && !empty($_SESSION['import_errors'])): ?>
        <div class="card mb-4">
            <div class="card-header bg-warning text-dark">
                <h6 class="mb-0"><i class="fas fa-exclamation-triangle"></i> Errores de Importación</h6>
            </div>
            <div class="card-body">
                <div class="table-responsive">
                    <table class="table table-sm">
                        <thead>
                            <tr>
                                <th>Error</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach ($_SESSION['import_errors'] as $error): ?>
                                <tr>
                                    <td class="text-danger"><?php echo htmlspecialchars($error); ?></td>
                                </tr>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
        <?php unset($_SESSION['import_errors']); ?>
    <?php endif; ?>

    <!-- Search and Records per page form -->
    <div class="card mb-4">
        <div class="card-body">
            <form method="GET" action="importarequipos.php" class="row g-3 align-items-end">
                <div class="col-md-4">
                    <label class="form-label">Buscar</label>
                    <input type="text" class="form-control" name="search" 
                           placeholder="Buscar por nombre, documento, agente, estado, operador..."
                           value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>">
                </div>
                <div class="col-md-2">
                    <button type="submit" class="btn btn-primary w-100">
                        <i class="fas fa-search"></i> Buscar
                    </button>
                </div>
                <div class="col-md-2">
                    <label class="form-label">Cronograma</label>
                    <select name="cronograma" class="form-select" onchange="this.form.submit()">
                        <option value="">Todos</option>
                        <option value="con" <?php echo (isset($_GET['cronograma']) && $_GET['cronograma'] == 'con') ? 'selected' : ''; ?>>Con Cronograma</option>
                        <option value="sin" <?php echo (isset($_GET['cronograma']) && $_GET['cronograma'] == 'sin') ? 'selected' : ''; ?>>Sin Cronograma</option>
                    </select>
                </div>
                <div class="col-md-2">
                    <label class="form-label">Registros por página</label>
                    <select name="per_page" class="form-select" onchange="this.form.submit()">
                        <option value="10" <?php echo (isset($_GET['per_page']) && $_GET['per_page'] == '10') ? 'selected' : ''; ?>>10</option>
                        <option value="20" <?php echo (!isset($_GET['per_page']) || $_GET['per_page'] == '20') ? 'selected' : ''; ?>>20</option>
                        <option value="50" <?php echo (isset($_GET['per_page']) && $_GET['per_page'] == '50') ? 'selected' : ''; ?>>50</option>
                        <option value="100" <?php echo (isset($_GET['per_page']) && $_GET['per_page'] == '100') ? 'selected' : ''; ?>>100</option>
                    </select>
                </div>
                <div class="col-md-2">
                    <?php if (isset($_GET['search']) || isset($_GET['per_page']) || isset($_GET['cronograma'])): ?>
                        <a href="importarequipos.php" class="btn btn-secondary w-100">
                            <i class="fas fa-times"></i> Limpiar
                        </a>
                    <?php endif; ?>
                </div>
            </form>
        </div>
    </div>

    <!-- List of records -->
    <div class="card">
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th>
                                <input type="checkbox" id="selectAll" onchange="toggleAllCheckboxes()">
                            </th>
                            <th>ID</th>
                            <th>Cliente</th>
                            <th>Documento</th>
                            <th>Agente</th>
                            <th>Estado</th>
                            <th>Evaluación</th>
                            <th>Operador</th>
                            <th>Cronograma</th>
                            <th>Código Pago</th>
                            <th>Fecha Importación</th>
                            <th>Acciones</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($equipos as $equipo): ?>
                            <tr>
                                <td>
                                    <?php if (!$equipo['tiene_cronograma']): ?>
                                        <input type="checkbox" class="equipo-checkbox" value="<?php echo $equipo['id']; ?>" onchange="updateSelectedCount()">
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td><?php echo $equipo['id']; ?></td>
                                <td>
                                    <strong><?php echo htmlspecialchars($equipo['nombres_ap_raz_soc'] ?: '-'); ?></strong>
                                    <?php if ($equipo['numero_celular']): ?>
                                        <br><small class="text-muted">📱 <?php echo htmlspecialchars($equipo['numero_celular']); ?></small>
                                    <?php endif; ?>
                                    <?php if ($equipo['correo']): ?>
                                        <br><small class="text-muted">✉ <?php echo htmlspecialchars($equipo['correo']); ?></small>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php echo htmlspecialchars($equipo['tipo_documento'] ?: '-'); ?>
                                    <br><strong><?php echo htmlspecialchars($equipo['nro_documento'] ?: '-'); ?></strong>
                                </td>
                                <td>
                                    <span class="badge bg-info"><?php echo htmlspecialchars($equipo['agente'] ?: '-'); ?></span>
                                </td>
                                <td>
                                    <?php 
                                    $estadoClass = '';
                                    switch(strtoupper($equipo['estado'])) {
                                        case 'ATENDIDA':
                                            $estadoClass = 'bg-success';
                                            break;
                                        case 'EN PROCESO':
                                            $estadoClass = 'bg-warning';
                                            break;
                                        case 'PENDIENTE':
                                            $estadoClass = 'bg-danger';
                                            break;
                                        default:
                                            $estadoClass = 'bg-secondary';
                                    }
                                    ?>
                                    <span class="badge <?php echo $estadoClass; ?>">
                                        <?php echo htmlspecialchars($equipo['estado'] ?: '-'); ?>
                                    </span>
                                </td>
                                <td>
                                    <small><?php echo htmlspecialchars($equipo['tipo_evaluacion'] ?: '-'); ?></small>
                                    <?php if ($equipo['plan_a_evaluar']): ?>
                                        <br><span class="badge bg-primary"><?php echo htmlspecialchars($equipo['plan_a_evaluar']); ?></span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <span class="badge bg-dark"><?php echo htmlspecialchars($equipo['operador_actual'] ?: '-'); ?></span>
                                    <?php if ($equipo['modalidad_venta']): ?>
                                        <br><small class="text-muted"><?php echo htmlspecialchars($equipo['modalidad_venta']); ?></small>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($equipo['tiene_cronograma']): ?>
                                        <span class="badge bg-success">
                                            <i class="fas fa-check-circle"></i> Activo
                                        </span>
                                        <br><small class="text-muted">
                                            <?php echo $equipo['total_cuotas']; ?> Meses
                                        </small>
                                        <?php if ($equipo['primera_cuota']): ?>
                                            <br><small class="text-muted">
                                                Primera: <?php echo date('d/m/Y', strtotime($equipo['primera_cuota'])); ?>
                                            </small>
                                        <?php endif; ?>
                                        <?php if ($equipo['ultima_cuota']): ?>
                                            <br><small class="text-muted">
                                                Última: <?php echo date('d/m/Y', strtotime($equipo['ultima_cuota'])); ?>
                                            </small>
                                        <?php endif; ?>
                                    <?php else: ?>
                                        <span class="badge bg-secondary">
                                            <i class="fas fa-times-circle"></i> Sin Cronograma
                                        </span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($equipo['codigodepago']): ?>
                                        <span class="badge bg-primary"><?php echo htmlspecialchars($equipo['codigodepago']); ?></span>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php echo $equipo['fecha_importacion'] ? date('d/m/Y', strtotime($equipo['fecha_importacion'])) : '-'; ?>
                                    <?php if ($equipo['fecha_entrega']): ?>
                                        <br><small class="text-muted">Atendido: <?php echo date('d/m/Y', strtotime($equipo['fecha_entrega'])); ?></small>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <div class="btn-group" role="group">
                                        <?php if (!$equipo['tiene_cronograma']): ?>
                                            <button type="button" class="btn btn-sm btn-success" 
                                                    onclick="openCronogramaModal(<?php echo $equipo['id']; ?>, '<?php echo htmlspecialchars($equipo['nombres_ap_raz_soc']); ?>', '<?php echo $equipo['fecha_entrega']; ?>')"
                                                    title="Generar Cronograma de Pagos">
                                                <i class="fas fa-calendar-plus"></i>
                                            </button>
                                        <?php else: ?>
                                            <button type="button" class="btn btn-sm btn-info" 
                                                    onclick="viewCronograma(<?php echo $equipo['id']; ?>)"
                                                    title="Ver Cronograma de Pagos">
                                                <i class="fas fa-calendar-check"></i>
                                            </button>
                                        <?php endif; ?>
                                        <a href="?delete=<?php echo $equipo['id']; ?>" 
                                           class="btn btn-sm btn-danger"
                                           onclick="return confirm('¿Está seguro de eliminar este registro?')"
                                           title="Eliminar">
                                            <i class="fas fa-trash"></i>
                                        </a>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            
            <?php if (empty($equipos)): ?>
                <div class="text-center py-4">
                    <i class="fas fa-mobile-alt fa-3x text-muted mb-3"></i>
                    <p class="text-muted">No hay registros de equipos importados</p>
                </div>
            <?php endif; ?>
            
            <!-- Pagination -->
            <?php if ($total_pages > 1): ?>
                <div class="d-flex justify-content-between align-items-center mt-4">
                    <div class="text-muted">
                        Mostrando <?php echo ($offset + 1); ?> - <?php echo min($offset + $records_per_page, $total_records); ?> 
                        de <?php echo $total_records; ?> registros
                    </div>
                    
                    <nav aria-label="Navegación de páginas">
                        <ul class="pagination pagination-sm mb-0">
                            <!-- First Page -->
                            <?php if ($page > 1): ?>
                                <li class="page-item">
                                    <a class="page-link" href="?<?php echo http_build_query(array_merge($_GET, ['page' => 1])); ?>" aria-label="Primera página">
                                        <i class="fas fa-angle-double-left"></i>
                                    </a>
                                </li>
                            <?php endif; ?>
                            
                            <!-- Previous Page -->
                            <?php if ($page > 1): ?>
                                <li class="page-item">
                                    <a class="page-link" href="?<?php echo http_build_query(array_merge($_GET, ['page' => $page - 1])); ?>" aria-label="Página anterior">
                                        <i class="fas fa-angle-left"></i>
                                    </a>
                                </li>
                            <?php endif; ?>
                            
                            <!-- Page Numbers -->
                            <?php
                            $start_page = max(1, $page - 2);
                            $end_page = min($total_pages, $page + 2);
                            
                            if ($start_page > 1): ?>
                                <li class="page-item disabled">
                                    <span class="page-link">...</span>
                                </li>
                            <?php endif; ?>
                            
                            <?php for ($i = $start_page; $i <= $end_page; $i++): ?>
                                <li class="page-item <?php echo ($i == $page) ? 'active' : ''; ?>">
                                    <a class="page-link" href="?<?php echo http_build_query(array_merge($_GET, ['page' => $i])); ?>">
                                        <?php echo $i; ?>
                                    </a>
                                </li>
                            <?php endfor; ?>
                            
                            <?php if ($end_page < $total_pages): ?>
                                <li class="page-item disabled">
                                    <span class="page-link">...</span>
                                </li>
                            <?php endif; ?>
                            
                            <!-- Next Page -->
                            <?php if ($page < $total_pages): ?>
                                <li class="page-item">
                                    <a class="page-link" href="?<?php echo http_build_query(array_merge($_GET, ['page' => $page + 1])); ?>" aria-label="Página siguiente">
                                        <i class="fas fa-angle-right"></i>
                                    </a>
                                </li>
                            <?php endif; ?>
                            
                            <!-- Last Page -->
                            <?php if ($page < $total_pages): ?>
                                <li class="page-item">
                                    <a class="page-link" href="?<?php echo http_build_query(array_merge($_GET, ['page' => $total_pages])); ?>" aria-label="Última página">
                                        <i class="fas fa-angle-double-right"></i>
                                    </a>
                                </li>
                            <?php endif; ?>
                        </ul>
                    </nav>
                </div>
            <?php endif; ?>
        </div>
    </div>
</div>

<!-- Modal para Cronograma de Pagos -->
<div class="modal fade" id="cronogramaModal" tabindex="-1" aria-labelledby="cronogramaModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="cronogramaModalLabel">
                    <i class="fas fa-calendar-plus"></i> Generar Cronograma de Pagos
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <form id="cronogramaForm">
                    <input type="hidden" id="equipo_id" name="equipo_id">
                    <input type="hidden" id="dias_inicio_cobro_hidden" name="dias_inicio_cobro">
                    <input type="hidden" id="dias_ultimo_hidden" name="dias_ultimo">
                    
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label class="form-label">Cliente:</label>
                            <input type="text" class="form-control" id="cliente_nombre" readonly>
                        </div>
                        <div class="col-md-6">
                            <label class="form-label">Número de Pago:</label>
                            <input type="text" class="form-control" id="nropago" name="nropago" value="1" readonly>
                        </div>
                    </div>
                    
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label class="form-label">Fecha de Entrega:</label>
                            <input type="date" class="form-control" id="fecha_entrega" name="fecha_entrega" readonly>
                        </div>
                        <div class="col-md-6">
                            <label class="form-label">Fecha de Inicio de Cobranza:</label>
                            <input type="date" class="form-control" id="fecha_iniciocobranza" name="fecha_iniciocobranza" readonly>
                        </div>
                    </div>
                    
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label class="form-label">Fecha de Pago:</label>
                            <input type="date" class="form-control" id="fechapago" name="fechapago" readonly>
                        </div>
                        <div class="col-md-6">
                            <label class="form-label">Días de Inicio Cobro:</label>
                            <input type="number" class="form-control" id="dias_inicio_cobro" min="0" onchange="recalcularFechas()" oninput="recalcularFechas()">
                        </div>
                    </div>
                    
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label class="form-label">Días Último:</label>
                            <input type="number" class="form-control" id="dias_ultimo" min="0" onchange="recalcularFechas()" oninput="recalcularFechas()">
                        </div>
                        <div class="col-md-6">
                            <label class="form-label">Cantidad de Meses a Generar:</label>
                            <input type="number" class="form-control" id="cantidad_meses" name="cantidad_meses" 
                                   value="06" min="1" max="120" required>
                            <div class="form-text">Número de meses para generar el cronograma de pagos</div>
                        </div>
                    </div>
                    
                    <div class="alert alert-info">
                        <i class="fas fa-info-circle"></i>
                        <strong>Información:</strong> Las fechas se calculan automáticamente basándose en la configuración de la empresa. Puede modificar los días de inicio cobro y días último, y las fechas se actualizarán automáticamente.
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
                    <i class="fas fa-times"></i> Cancelar
                </button>
                <button type="button" class="btn btn-warning" onclick="aumentarMeses()" id="btnAumentarMeses" style="display: none;">
                    <i class="fas fa-plus"></i> Aumentar Meses
                </button>
                <button type="button" class="btn btn-success" onclick="generateCronograma()">
                    <i class="fas fa-save"></i> Generar Cronograma
                </button>
            </div>
        </div>
    </div>
</div>

<!-- Modal para Ver Cronograma -->
<div class="modal fade" id="cronogramaViewModal" tabindex="-1" aria-labelledby="cronogramaViewModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-xl">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="cronogramaViewModalLabel">
                    <i class="fas fa-calendar-check"></i> Cronograma de Pagos
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body" id="cronogramaViewModalBody">
                <!-- El contenido se carga dinámicamente -->
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
                    <i class="fas fa-times"></i> Cerrar
                </button>
            </div>
        </div>
    </div>
</div>

<!-- Modal para Cronogramas Grupales -->
<div class="modal fade" id="cronogramasGrupalesModal" tabindex="-1" aria-labelledby="cronogramasGrupalesModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="cronogramasGrupalesModalLabel">
                    <i class="fas fa-calendar-plus"></i> Crear Cronogramas Grupales
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <form id="cronogramasGrupalesForm">
                    <div class="alert alert-info">
                        <i class="fas fa-info-circle"></i>
                        <strong>Información:</strong> Se crearán cronogramas para los registros seleccionados sin cronograma.
                    </div>
                    
                    <div class="mb-3">
                        <label class="form-label">Cantidad de Meses:</label>
                        <input type="number" class="form-control" id="cantidad_meses_grupal" name="cantidad_meses_grupal" 
                               value="6" min="1" max="120" required>
                        <div class="form-text">Número de meses para generar el cronograma de pagos para todos los registros seleccionados</div>
                    </div>
                    
                    <div class="mb-3">
                        <label class="form-label">Registros Seleccionados:</label>
                        <div id="listaRegistrosSeleccionados" class="border p-3" style="max-height: 200px; overflow-y: auto;">
                            <!-- Se llena dinámicamente -->
                        </div>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
                    <i class="fas fa-times"></i> Cancelar
                </button>
                <button type="button" class="btn btn-success" onclick="procesarCronogramasGrupales()">
                    <i class="fas fa-save"></i> Crear Cronogramas
                </button>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // File input validation
    const fileInput = document.querySelector('input[name="csv_file"]');
    const submitBtn = document.querySelector('button[type="submit"]');
    
    fileInput.addEventListener('change', function() {
        const file = this.files[0];
        if (file) {
            if (file.type !== 'text/csv' && !file.name.endsWith('.csv')) {
                alert('Por favor seleccione un archivo CSV válido');
                this.value = '';
                submitBtn.disabled = true;
            } else {
                submitBtn.disabled = false;
            }
        }
    });
    
    // Pagination enhancement - preserve search and per_page when navigating
    const paginationLinks = document.querySelectorAll('.pagination .page-link');
    paginationLinks.forEach(link => {
        link.addEventListener('click', function(e) {
            // Don't prevent default for actual page links
            if (this.getAttribute('href') && this.getAttribute('href').includes('page=')) {
                // Add loading indicator
                this.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
            }
        });
    });
    
    // Auto-submit form when per_page changes
    const perPageSelect = document.querySelector('select[name="per_page"]');
    if (perPageSelect) {
        perPageSelect.addEventListener('change', function() {
            // Reset to page 1 when changing records per page
            const pageInput = document.createElement('input');
            pageInput.type = 'hidden';
            pageInput.name = 'page';
            pageInput.value = '1';
            this.form.appendChild(pageInput);
            this.form.submit();
        });
    }
});

// Función para recalcular las fechas cuando cambian los días
function recalcularFechas() {
    const fechaEntrega = document.getElementById('fecha_entrega').value;
    const diasInicioCobro = parseInt(document.getElementById('dias_inicio_cobro').value) || 0;
    const diasUltimo = parseInt(document.getElementById('dias_ultimo').value) || 0;
    
    if (!fechaEntrega) {
        return; // No hay fecha de entrega, no se puede calcular
    }
    
    // Actualizar campos ocultos
    document.getElementById('dias_inicio_cobro_hidden').value = diasInicioCobro;
    document.getElementById('dias_ultimo_hidden').value = diasUltimo;
    
    const fechaEntregaObj = new Date(fechaEntrega);
    
    // Calcular fecha de pago: fecha_entrega + 1 mes - diasultimo días
    const fechaPago = new Date(fechaEntregaObj);
    fechaPago.setMonth(fechaPago.getMonth() + 1);
    fechaPago.setDate(fechaPago.getDate() - diasUltimo);
    
    // Calcular fecha de inicio de cobranza: fecha_entrega + 1 mes - iniciocobro días
    const fechaInicioCobranza = new Date(fechaEntregaObj);
    fechaInicioCobranza.setMonth(fechaInicioCobranza.getMonth() + 1);
    fechaInicioCobranza.setDate(fechaInicioCobranza.getDate() - diasInicioCobro);
    
    // Formatear fechas para el input date (YYYY-MM-DD)
    document.getElementById('fecha_iniciocobranza').value = fechaInicioCobranza.toISOString().split('T')[0];
    document.getElementById('fechapago').value = fechaPago.toISOString().split('T')[0];
}

// Función para abrir el modal de cronograma
function openCronogramaModal(equipoId, clienteNombre, fechaEntrega) {
    // Llenar los campos básicos
    document.getElementById('equipo_id').value = equipoId;
    document.getElementById('cliente_nombre').value = clienteNombre;
    document.getElementById('fecha_entrega').value = fechaEntrega;
    
    // Obtener información de la empresa para calcular las fechas
    fetch('ajax/get_empresa_info.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: 'equipo_id=' + encodeURIComponent(equipoId)
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            const empresaInfo = data.empresa;
            
            // Debug: mostrar valores en consola
            console.log('Valores obtenidos:', empresaInfo);
            console.log('iniciocobro:', empresaInfo.iniciocobro);
            console.log('diasultimo:', empresaInfo.diasultimo);
            
            // Mostrar los días de configuración (usar valores de la empresa o 0 como fallback)
            const iniciocobro = empresaInfo.iniciocobro !== null && empresaInfo.iniciocobro !== undefined ? empresaInfo.iniciocobro : '0';
            const diasultimo = empresaInfo.diasultimo !== null && empresaInfo.diasultimo !== undefined ? empresaInfo.diasultimo : '0';
            
            document.getElementById('dias_inicio_cobro').value = iniciocobro;
            document.getElementById('dias_ultimo').value = diasultimo;
            
            // Llenar campos ocultos para enviar al backend
            document.getElementById('dias_inicio_cobro_hidden').value = iniciocobro;
            document.getElementById('dias_ultimo_hidden').value = diasultimo;
            
            // Calcular las fechas usando la función de recálculo
            recalcularFechas();
        } else {
            alert('Error al obtener información de la empresa: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('Error al obtener información de la empresa');
    });
    
    // Mostrar el modal
    const modal = new bootstrap.Modal(document.getElementById('cronogramaModal'));
    modal.show();
}

// Función para generar el cronograma
function generateCronograma() {
    // Asegurar que los campos ocultos estén actualizados antes de enviar
    const diasInicioCobro = parseInt(document.getElementById('dias_inicio_cobro').value) || 0;
    const diasUltimo = parseInt(document.getElementById('dias_ultimo').value) || 0;
    document.getElementById('dias_inicio_cobro_hidden').value = diasInicioCobro;
    document.getElementById('dias_ultimo_hidden').value = diasUltimo;
    
    const form = document.getElementById('cronogramaForm');
    const formData = new FormData(form);
    
    // Validar que se haya ingresado un número de meses válido
    const cantidadMeses = parseInt(document.getElementById('cantidad_meses').value);
    if (!cantidadMeses || cantidadMeses < 1 || cantidadMeses > 120) {
        alert('Por favor ingrese un número válido de meses (1-120)');
        return;
    }
    
    // Mostrar loading en el botón
    const btn = event.target;
    const originalText = btn.innerHTML;
    btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Generando...';
    btn.disabled = true;
    
    fetch('ajax/generate_cronograma.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            alert(`Cronograma generado exitosamente para ${data.meses_generados} meses`);
            // Cerrar el modal
            const modal = bootstrap.Modal.getInstance(document.getElementById('cronogramaModal'));
            modal.hide();
            // Recargar la página para mostrar los cambios
            location.reload();
        } else {
            alert('Error al generar el cronograma: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('Error al generar el cronograma');
    })
    .finally(() => {
        // Restaurar el botón
        btn.innerHTML = originalText;
        btn.disabled = false;
    });
}

// Función para ver el cronograma existente
function viewCronograma(equipoId) {
    // Mostrar loading en el modal
    const modalBody = document.getElementById('cronogramaViewModalBody');
    modalBody.innerHTML = '<div class="text-center py-4"><i class="fas fa-spinner fa-spin fa-2x"></i><br>Cargando cronograma...</div>';
    
    // Mostrar el modal
    const modal = new bootstrap.Modal(document.getElementById('cronogramaViewModal'));
    modal.show();
    
    // Cargar el cronograma via AJAX
    fetch(`ajax/get_cronograma_import.php?id=${equipoId}`)
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            modalBody.innerHTML = data.html;
            
            // Wire up buttons inside loaded content
            const exportBtn = document.getElementById('exportCronogramaBtn');
            if (exportBtn) {
                exportBtn.addEventListener('click', function(){
                    const id = this.getAttribute('data-equipo-id');
                    window.location.href = `export_cronograma_import.php?id=${id}`;
                });
            }
            
            const aumentarBtn = document.getElementById('aumentarMesesBtn');
            if (aumentarBtn) {
                aumentarBtn.addEventListener('click', function(){
                    openAumentarMesesModal(
                        this.getAttribute('data-equipo-id'),
                        this.getAttribute('data-cliente'),
                        this.getAttribute('data-fecha-entrega')
                    );
                });
            }
            
            const eliminarBtn = document.getElementById('eliminarUltimaBtn');
            if (eliminarBtn) {
                eliminarBtn.addEventListener('click', function(){
                    eliminarUltimaCuota(
                        this.getAttribute('data-equipo-id'),
                        this.getAttribute('data-cuota-id')
                    );
                });
            }
        } else {
            modalBody.innerHTML = `<div class="alert alert-danger">Error: ${data.message}</div>`;
        }
    })
    .catch(error => {
        console.error('Error:', error);
        modalBody.innerHTML = '<div class="alert alert-danger">Error al cargar el cronograma</div>';
    });
}

// Función para abrir el modal de aumento de meses desde el cronograma
function openAumentarMesesModal(equipoId, clienteNombre, fechaEntrega) {
    // Cerrar el modal actual de cronograma
    const cronogramaModal = bootstrap.Modal.getInstance(document.getElementById('cronogramaViewModal'));
    if (cronogramaModal) {
        cronogramaModal.hide();
    }
    
    // Esperar un momento para que se cierre el modal anterior
    setTimeout(() => {
        // Llenar los campos básicos del modal existente
        document.getElementById('equipo_id').value = equipoId;
        document.getElementById('cliente_nombre').value = clienteNombre;
        document.getElementById('fecha_entrega').value = fechaEntrega;
        
        // Obtener información de la empresa para calcular las fechas
        fetch('ajax/get_empresa_info.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            },
            body: 'equipo_id=' + encodeURIComponent(equipoId)
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                const empresaInfo = data.empresa;
                
                // Mostrar los días de configuración (usar valores de la empresa o 0 como fallback)
                const iniciocobro = empresaInfo.iniciocobro !== null && empresaInfo.iniciocobro !== undefined ? empresaInfo.iniciocobro : '0';
                const diasultimo = empresaInfo.diasultimo !== null && empresaInfo.diasultimo !== undefined ? empresaInfo.diasultimo : '0';
                
                document.getElementById('dias_inicio_cobro').value = iniciocobro;
                document.getElementById('dias_ultimo').value = diasultimo;
                
                // Llenar campos ocultos para enviar al backend
                document.getElementById('dias_inicio_cobro_hidden').value = iniciocobro;
                document.getElementById('dias_ultimo_hidden').value = diasultimo;
                
                // Calcular las fechas usando la función de recálculo
                recalcularFechas();
            } else {
                alert('Error al obtener información de la empresa: ' + data.message);
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('Error al obtener información de la empresa');
        });
        
        // Cambiar el título del modal y mostrar botón de aumentar meses
        document.getElementById('cronogramaModalLabel').innerHTML = '<i class="fas fa-plus"></i> Aumentar Meses al Cronograma';
        document.getElementById('btnAumentarMeses').style.display = 'inline-block';
        document.querySelector('button[onclick="generateCronograma()"]').style.display = 'none';
        document.getElementById('btnAumentarMeses').innerHTML = '<i class="fas fa-plus"></i> Aumentar Meses';
        
        // Mostrar el modal con z-index más alto
        const modal = new bootstrap.Modal(document.getElementById('cronogramaModal'), {
            backdrop: 'static',
            keyboard: false
        });
        modal.show();
        
        // Asegurar que el modal esté por encima
        const modalElement = document.getElementById('cronogramaModal');
        modalElement.style.zIndex = '1060';
    }, 300);
}

// Función para aumentar meses al cronograma existente
function aumentarMeses() {
    // Asegurar que los campos ocultos estén actualizados antes de enviar
    const diasInicioCobro = parseInt(document.getElementById('dias_inicio_cobro').value) || 0;
    const diasUltimo = parseInt(document.getElementById('dias_ultimo').value) || 0;
    document.getElementById('dias_inicio_cobro_hidden').value = diasInicioCobro;
    document.getElementById('dias_ultimo_hidden').value = diasUltimo;
    
    const form = document.getElementById('cronogramaForm');
    const formData = new FormData(form);
    
    // Validar que se haya ingresado un número de meses válido
    const cantidadMeses = parseInt(document.getElementById('cantidad_meses').value);
    if (!cantidadMeses || cantidadMeses < 1 || cantidadMeses > 120) {
        alert('Por favor ingrese un número válido de meses (1-120)');
        return;
    }
    
    // Mostrar loading en el botón
    const btn = event.target;
    const originalText = btn.innerHTML;
    btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Aumentando...';
    btn.disabled = true;
    
    fetch('ajax/aumentar_meses_cronograma.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            alert(`Se agregaron ${data.meses_agregados} meses al cronograma existente`);
            // Cerrar el modal
            const modal = bootstrap.Modal.getInstance(document.getElementById('cronogramaModal'));
            modal.hide();
            // Recargar la página para mostrar los cambios
            location.reload();
        } else {
            alert('Error al aumentar meses: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('Error al aumentar meses al cronograma');
    })
    .finally(() => {
        // Restaurar el botón
        btn.innerHTML = originalText;
        btn.disabled = false;
    });
}

// Función para eliminar la última cuota pendiente
function eliminarUltimaCuota(equipoId, cuotaId) {
    if (!confirm('¿Está seguro de eliminar la última cuota pendiente? Esta acción no se puede deshacer.')) {
        return;
    }
    
    fetch('ajax/eliminar_ultima_cuota.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: 'equipo_id=' + encodeURIComponent(equipoId) + '&cuota_id=' + encodeURIComponent(cuotaId)
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            alert('Última cuota eliminada correctamente');
            // Recargar el cronograma
            viewCronograma(equipoId);
        } else {
            alert('Error al eliminar la cuota: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('Error al eliminar la cuota');
    });
}

// Función para exportar equipos a Excel
function exportarEquipos() {
    const params = new URLSearchParams(window.location.search);
    // Exporta con filtros actuales pero sin paginación
    params.delete('page');
    params.delete('per_page');
    const url = 'export_equipos_importados.php?' + params.toString();
    window.location.href = url;
}

// Función para alternar todos los checkboxes
function toggleAllCheckboxes() {
    const selectAll = document.getElementById('selectAll');
    const checkboxes = document.querySelectorAll('.equipo-checkbox');
    
    checkboxes.forEach(checkbox => {
        checkbox.checked = selectAll.checked;
    });
    
    updateSelectedCount();
}

// Función para actualizar el contador de registros seleccionados
function updateSelectedCount() {
    const checkboxes = document.querySelectorAll('.equipo-checkbox:checked');
    const count = checkboxes.length;
    const accionesMultiples = document.getElementById('accionesMultiples');
    const registrosSeleccionados = document.getElementById('registrosSeleccionados');
    
    if (count > 0) {
        accionesMultiples.style.display = 'block';
        registrosSeleccionados.textContent = count + ' registro' + (count !== 1 ? 's' : '') + ' seleccionado' + (count !== 1 ? 's' : '');
    } else {
        accionesMultiples.style.display = 'none';
    }
    
    // Actualizar el estado del checkbox "Seleccionar todo"
    const selectAll = document.getElementById('selectAll');
    const totalCheckboxes = document.querySelectorAll('.equipo-checkbox').length;
    selectAll.checked = count === totalCheckboxes && totalCheckboxes > 0;
    selectAll.indeterminate = count > 0 && count < totalCheckboxes;
}

// Función para eliminar registros seleccionados
function eliminarSeleccionados() {
    const checkboxes = document.querySelectorAll('.equipo-checkbox:checked');
    const ids = Array.from(checkboxes).map(cb => cb.value);
    
    if (ids.length === 0) {
        alert('Por favor seleccione al menos un registro para eliminar');
        return;
    }
    
    if (!confirm(`¿Está seguro de eliminar ${ids.length} registro(s) seleccionado(s)? Esta acción no se puede deshacer.`)) {
        return;
    }
    
    // Mostrar loading
    const btn = event.target;
    const originalText = btn.innerHTML;
    btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Eliminando...';
    btn.disabled = true;
    
    fetch('ajax/eliminar_equipos_multiple.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: 'ids=' + encodeURIComponent(JSON.stringify(ids))
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            alert(`Se eliminaron ${data.eliminados} registro(s) correctamente`);
            location.reload();
        } else {
            alert('Error al eliminar registros: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('Error al eliminar registros');
    })
    .finally(() => {
        btn.innerHTML = originalText;
        btn.disabled = false;
    });
}

// Función para abrir el modal de cronogramas grupales
function crearCronogramasGrupales() {
    const checkboxes = document.querySelectorAll('.equipo-checkbox:checked');
    const ids = Array.from(checkboxes).map(cb => cb.value);
    
    if (ids.length === 0) {
        alert('Por favor seleccione al menos un registro sin cronograma');
        return;
    }
    
    // Obtener información de los registros seleccionados
    const registrosInfo = [];
    checkboxes.forEach(checkbox => {
        const row = checkbox.closest('tr');
        const id = checkbox.value;
        const cliente = row.cells[2].textContent.trim();
        const documento = row.cells[3].textContent.trim();
        registrosInfo.push({ id, cliente, documento });
    });
    
    // Llenar la lista de registros seleccionados
    const listaRegistros = document.getElementById('listaRegistrosSeleccionados');
    listaRegistros.innerHTML = registrosInfo.map(reg => 
        `<div class="d-flex justify-content-between align-items-center mb-2">
            <div>
                <strong>ID: ${reg.id}</strong> - ${reg.cliente}
                <br><small class="text-muted">${reg.documento}</small>
            </div>
        </div>`
    ).join('');
    
    // Mostrar el modal
    const modal = new bootstrap.Modal(document.getElementById('cronogramasGrupalesModal'));
    modal.show();
}

// Función para procesar cronogramas grupales
function procesarCronogramasGrupales() {
    const checkboxes = document.querySelectorAll('.equipo-checkbox:checked');
    const ids = Array.from(checkboxes).map(cb => cb.value);
    const cantidadMeses = document.getElementById('cantidad_meses_grupal').value;
    
    if (ids.length === 0) {
        alert('Por favor seleccione al menos un registro');
        return;
    }
    
    if (!cantidadMeses || cantidadMeses < 1 || cantidadMeses > 120) {
        alert('Por favor ingrese un número válido de meses (1-120)');
        return;
    }
    
    if (!confirm(`¿Está seguro de crear cronogramas de ${cantidadMeses} meses para ${ids.length} registro(s)?`)) {
        return;
    }
    
    // Mostrar loading
    const btn = event.target;
    const originalText = btn.innerHTML;
    btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Procesando...';
    btn.disabled = true;
    
    fetch('ajax/crear_cronogramas_grupales.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: 'ids=' + encodeURIComponent(JSON.stringify(ids)) + '&cantidad_meses=' + encodeURIComponent(cantidadMeses)
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            alert(`Se crearon cronogramas para ${data.procesados} registro(s) correctamente`);
            // Cerrar el modal
            const modal = bootstrap.Modal.getInstance(document.getElementById('cronogramasGrupalesModal'));
            modal.hide();
            // Recargar la página
            location.reload();
        } else {
            alert('Error al crear cronogramas: ' + data.message);
        }
    })
    .catch(error => {
        console.error('Error:', error);
        alert('Error al crear cronogramas grupales');
    })
    .finally(() => {
        btn.innerHTML = originalText;
        btn.disabled = false;
    });
}
</script>

<?php
include_once 'includes/footer.php';
?>
