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

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

// Obtener el codempresa del usuario logueado (por si se agrega este campo a la tabla)
$codempresaUsuario = null;
try {
    $stmt = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmt->execute([$_SESSION['user']['codempleado']]);
    $empresaInfo = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($empresaInfo) {
        $codempresaUsuario = $empresaInfo['codempresa'];
    }
} catch(PDOException $e) {
    // Silenciar error si no existe el campo codempresa en la tabla
}

// Delete logic
if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    try {
        $stmt = $conn->prepare("DELETE FROM tclientes_import WHERE codprogramacion = ?");
        $stmt->execute([$id]);
        $_SESSION['success'] = "Registro eliminado correctamente";
    } catch(PDOException $e) {
        $_SESSION['error'] = "Error al eliminar el registro: " . $e->getMessage();
    }
    header("Location: cliente_import_crud.php");
    exit();
}

// Update logic only
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['guardar_cliente'])) {
    try {
        $codprogramacion = !empty($_POST['codprogramacion']) ? intval($_POST['codprogramacion']) : null;
        
        if (!$codprogramacion) {
            $_SESSION['error'] = "Error: No se puede crear un nuevo cliente desde esta vista";
            header("Location: cliente_import_crud.php");
            exit();
        }
        
        $fecha = !empty($_POST['fecha']) ? $_POST['fecha'] : null;
        $cod = !empty($_POST['cod']) ? trim($_POST['cod']) : null;
        $documento = !empty($_POST['documento']) ? trim($_POST['documento']) : null;
        $nombre = !empty($_POST['nombre']) ? trim($_POST['nombre']) : null;
        $sot = !empty($_POST['sot']) ? trim($_POST['sot']) : null;
        $direccion = !empty($_POST['direccion']) ? trim($_POST['direccion']) : null;
        $distrito = !empty($_POST['distrito']) ? trim($_POST['distrito']) : null;
        $plano = !empty($_POST['plano']) ? trim($_POST['plano']) : null;
        $paquete = !empty($_POST['paquete']) ? trim($_POST['paquete']) : null;
        $contacto = !empty($_POST['contacto']) ? trim($_POST['contacto']) : null;
        $tipo_trabajo = !empty($_POST['tipo_trabajo']) ? trim($_POST['tipo_trabajo']) : null;
        $estado = !empty($_POST['estado']) ? trim($_POST['estado']) : null;
        $grupoimportado = !empty($_POST['grupoimportado']) ? trim($_POST['grupoimportado']) : null;
        $realiza_solicitud = !empty($_POST['realiza_solicitud']) ? trim($_POST['realiza_solicitud']) : null;
        
        // Update
        $stmt = $conn->prepare("UPDATE tclientes_import SET 
            fecha = ?, cod = ?, documento = ?, nombre = ?, sot = ?, 
            direccion = ?, distrito = ?, plano = ?, paquete = ?, 
            contacto = ?, tipo_trabajo = ?, estado = ?, grupoimportado = ?, realiza_solicitud = ?
            WHERE codprogramacion = ?");
        $stmt->execute([
            $fecha, $cod, $documento, $nombre, $sot, 
            $direccion, $distrito, $plano, $paquete, 
            $contacto, $tipo_trabajo, $estado, $grupoimportado, $realiza_solicitud, $codprogramacion
        ]);
        $_SESSION['success'] = "Cliente actualizado correctamente";
    } catch(PDOException $e) {
        $_SESSION['error'] = "Error al guardar el cliente: " . $e->getMessage();
    }
    header("Location: cliente_import_crud.php");
    exit();
}

// Bulk Delete logic
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['eliminar_seleccionados'])) {
    if (isset($_POST['ids']) && is_array($_POST['ids']) && !empty($_POST['ids'])) {
        try {
            $conn->beginTransaction();
            $eliminados = 0;
            $placeholders = implode(',', array_fill(0, count($_POST['ids']), '?'));
            $stmt = $conn->prepare("DELETE FROM tclientes_import WHERE codprogramacion IN ($placeholders)");
            $stmt->execute($_POST['ids']);
            $eliminados = $stmt->rowCount();
            $conn->commit();
            $_SESSION['success'] = "Se eliminaron $eliminados registro(s) correctamente";
        } catch(PDOException $e) {
            $conn->rollBack();
            $_SESSION['error'] = "Error al eliminar los registros: " . $e->getMessage();
        }
    } else {
        $_SESSION['error'] = "No se seleccionaron registros para eliminar";
    }
    header("Location: cliente_import_crud.php");
    exit();
}

// Bulk Update Realiza Solicitud logic
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['actualizar_realiza_solicitud'])) {
    if (isset($_POST['ids']) && is_array($_POST['ids']) && !empty($_POST['ids'])) {
        $realiza_solicitud = isset($_POST['realiza_solicitud']) ? trim($_POST['realiza_solicitud']) : null;
        
        if ($realiza_solicitud === null || ($realiza_solicitud !== 'SI' && $realiza_solicitud !== 'NO')) {
            $_SESSION['error'] = "Error: Debe seleccionar un valor válido (SI o NO)";
        } else {
            try {
                $conn->beginTransaction();
                $placeholders = implode(',', array_fill(0, count($_POST['ids']), '?'));
                $stmt = $conn->prepare("UPDATE tclientes_import SET realiza_solicitud = ? WHERE codprogramacion IN ($placeholders)");
                $params = array_merge([$realiza_solicitud], $_POST['ids']);
                $stmt->execute($params);
                $actualizados = $stmt->rowCount();
                $conn->commit();
                $_SESSION['success'] = "Se actualizaron $actualizados registro(s) correctamente";
            } catch(PDOException $e) {
                $conn->rollBack();
                $_SESSION['error'] = "Error al actualizar los registros: " . $e->getMessage();
            }
        }
    } else {
        $_SESSION['error'] = "No se seleccionaron registros para actualizar";
    }
    header("Location: cliente_import_crud.php");
    exit();
}

// Fetch records with search and pagination
try {
    $search = isset($_GET['search']) ? trim($_GET['search']) : '';
    $estado_filter = isset($_GET['estado']) ? trim($_GET['estado']) : '';
    $grupo_filter = isset($_GET['grupoimportado']) ? trim($_GET['grupoimportado']) : '';
    $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(*) as total FROM tclientes_import WHERE 1=1";
    $count_params = [];
    
    if ($search) {
        $count_query .= " AND (
            nombre LIKE ? OR 
            documento LIKE ? OR 
            cod LIKE ? OR
            sot LIKE ? OR
            distrito LIKE ? OR
            estado LIKE ?
        )";
        $searchTerm = "%{$search}%";
        $count_params = array_merge($count_params, [$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm]);
    }
    
    if ($estado_filter) {
        $count_query .= " AND estado = ?";
        $count_params[] = $estado_filter;
    }
    
    if ($grupo_filter) {
        $count_query .= " AND grupoimportado = ?";
        $count_params[] = $grupo_filter;
    }
    
    $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
    $query = "SELECT * FROM tclientes_import WHERE 1=1";
    $params = [];
    
    if ($search) {
        $query .= " AND (
            nombre LIKE ? OR 
            documento LIKE ? OR 
            cod LIKE ? OR
            sot LIKE ? OR
            distrito LIKE ? OR
            estado LIKE ?
        )";
        $searchTerm = "%{$search}%";
        $params = array_merge($params, [$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm]);
    }
    
    if ($estado_filter) {
        $query .= " AND estado = ?";
        $params[] = $estado_filter;
    }
    
    if ($grupo_filter) {
        $query .= " AND grupoimportado = ?";
        $params[] = $grupo_filter;
    }
    
    $query .= " ORDER BY fecha_creacion DESC, codprogramacion DESC LIMIT " . intval($records_per_page) . " OFFSET " . intval($offset);
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $clientes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Get unique estados for filter
    $stmt_estados = $conn->query("SELECT DISTINCT estado FROM tclientes_import WHERE estado IS NOT NULL AND estado != '' ORDER BY estado");
    $estados = $stmt_estados->fetchAll(PDO::FETCH_COLUMN);
    
    // Get unique grupos importados for filter
    $stmt_grupos = $conn->query("SELECT DISTINCT grupoimportado FROM tclientes_import WHERE grupoimportado IS NOT NULL AND grupoimportado != '' ORDER BY grupoimportado ASC");
    $grupos_importados = $stmt_grupos->fetchAll(PDO::FETCH_COLUMN);
    
} catch(PDOException $e) {
    $_SESSION['error'] = "Error al obtener los datos: " . $e->getMessage();
    $clientes = [];
    $estados = [];
    $grupos_importados = [];
    $total_records = 0;
    $total_pages = 0;
    $page = 1;
}

// Get single record for edit
$cliente_edit = null;
if (isset($_GET['edit'])) {
    try {
        $stmt = $conn->prepare("SELECT * FROM tclientes_import WHERE codprogramacion = ?");
        $stmt->execute([$_GET['edit']]);
        $cliente_edit = $stmt->fetch(PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        $_SESSION['error'] = "Error al obtener el registro: " . $e->getMessage();
    }
}
?>

<div class="col-md-10 p-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <div>
            <h2>Gestión de Clientes Importados</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="exportarClientes()">
                <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-warning" onclick="abrirModalActualizarRealizaSolicitud()" id="btnActualizarRealizaSolicitud">
                        <i class="fas fa-edit"></i> Actualizar Realiza Solicitud
                    </button>
                    <button type="button" class="btn btn-danger" onclick="eliminarSeleccionados()" id="btnEliminarSeleccionados">
                        <i class="fas fa-trash"></i> Eliminar Seleccionados
                    </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; ?>

    <!-- Search and Records per page form -->
    <div class="card mb-4">
        <div class="card-body">
            <form method="GET" action="cliente_import_crud.php" class="row g-3 align-items-end">
                <div class="col-md-3">
                    <label class="form-label">Buscar</label>
                    <input type="text" class="form-control" name="search" 
                           placeholder="Buscar por nombre, documento, código, SOT..."
                           value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>">
                </div>
                <div class="col-md-2">
                    <label class="form-label">Estado</label>
                    <select name="estado" class="form-select" onchange="this.form.submit()">
                        <option value="">Todos</option>
                        <?php foreach ($estados as $est): ?>
                            <option value="<?php echo htmlspecialchars($est); ?>" 
                                <?php echo (isset($_GET['estado']) && $_GET['estado'] == $est) ? 'selected' : ''; ?>>
                                <?php echo htmlspecialchars($est); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-2">
                    <label class="form-label">Grupo Importado</label>
                    <select name="grupoimportado" class="form-select" onchange="this.form.submit()">
                        <option value="">Todos</option>
                        <?php foreach ($grupos_importados as $grupo): ?>
                            <option value="<?php echo htmlspecialchars($grupo); ?>" 
                                <?php echo (isset($_GET['grupoimportado']) && $_GET['grupoimportado'] == $grupo) ? 'selected' : ''; ?>>
                                <?php echo htmlspecialchars($grupo); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </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">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-1">
                    <?php if (isset($_GET['search']) || isset($_GET['per_page']) || isset($_GET['estado']) || isset($_GET['grupoimportado'])): ?>
                        <a href="cliente_import_crud.php" class="btn btn-secondary w-100" title="Limpiar filtros">
                            <i class="fas fa-times"></i>
                        </a>
                    <?php endif; ?>
                </div>
            </form>
        </div>
    </div>

    <!-- List of records -->
    <div class="card">
        <div class="card-body">
            <div class="table-responsive">
                <form method="POST" action="cliente_import_crud.php" id="formEliminarSeleccionados">
                    <input type="hidden" name="eliminar_seleccionados" value="1">
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th>
                                    <input type="checkbox" id="selectAll" onchange="toggleAllCheckboxes()">
                                </th>
                                <th>ID</th>
                                <th>Fecha</th>
                                <th>Código</th>
                                <th>Cliente</th>
                                <th>Documento</th>
                                <th>SOT</th>
                                <th>Distrito</th>
                                <th>Plano</th>
                                <th>Paquete</th>
                                <th>Contacto</th>
                                <th>Tipo Trabajo</th>
                                <th>Estado</th>
                                <th>Realiza Solicitud</th>
                                <th>Fecha Creación</th>
                                <th>Acciones</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php if (empty($clientes)): ?>
                                <tr>
                                    <td colspan="16" class="text-center py-4">
                                        <i class="fas fa-users fa-3x text-muted mb-3"></i>
                                        <p class="text-muted">No hay registros de clientes importados</p>
                                    </td>
                                </tr>
                            <?php else: ?>
                                <?php foreach ($clientes as $cliente): ?>
                                    <tr>
                                        <td>
                                            <input type="checkbox" class="cliente-checkbox" name="ids[]" value="<?php echo $cliente['codprogramacion']; ?>" onchange="updateSelectedCount()">
                                        </td>
                                        <td><?php echo $cliente['codprogramacion']; ?></td>
                                        <td>
                                            <?php if ($cliente['fecha']): ?>
                                                <?php echo date('d/m/Y', strtotime($cliente['fecha'])); ?>
                                            <?php else: ?>
                                                <span class="text-muted">-</span>
                                            <?php endif; ?>
                                        </td>
                                        <td><?php echo htmlspecialchars($cliente['cod'] ?: '-'); ?></td>
                                        <td>
                                            <strong><?php echo htmlspecialchars($cliente['nombre'] ?: '-'); ?></strong>
                                        </td>
                                        <td><?php echo htmlspecialchars($cliente['documento'] ?: '-'); ?></td>
                                        <td><?php echo htmlspecialchars($cliente['sot'] ?: '-'); ?></td>
                                        <td><?php echo htmlspecialchars($cliente['distrito'] ?: '-'); ?></td>
                                        <td><?php echo htmlspecialchars($cliente['plano'] ?: '-'); ?></td>
                                        <td title="<?php echo htmlspecialchars($cliente['paquete'] ?? ''); ?>">
                                            <?php echo htmlspecialchars(mb_substr($cliente['paquete'] ?? '-', 0, 30)) . (mb_strlen($cliente['paquete'] ?? '') > 30 ? '...' : ''); ?>
                                        </td>
                                        <td><?php echo htmlspecialchars($cliente['contacto'] ?: '-'); ?></td>
                                        <td title="<?php echo htmlspecialchars($cliente['tipo_trabajo'] ?? ''); ?>">
                                            <?php echo htmlspecialchars(mb_substr($cliente['tipo_trabajo'] ?? '-', 0, 30)) . (mb_strlen($cliente['tipo_trabajo'] ?? '') > 30 ? '...' : ''); ?>
                                        </td>
                                        <td>
                                            <?php if ($cliente['estado']): ?>
                                                <?php 
                                                $estadoClass = 'bg-secondary';
                                                switch(strtoupper($cliente['estado'])) {
                                                    case 'ATENDIDA':
                                                    case 'ATENDIDO':
                                                        $estadoClass = 'bg-success';
                                                        break;
                                                    case 'EN PROCESO':
                                                    case 'PENDIENTE':
                                                        $estadoClass = 'bg-warning';
                                                        break;
                                                    case 'CANCELADA':
                                                    case 'CANCELADO':
                                                        $estadoClass = 'bg-danger';
                                                        break;
                                                }
                                                ?>
                                                <span class="badge <?php echo $estadoClass; ?>">
                                                    <?php echo htmlspecialchars($cliente['estado']); ?>
                                                </span>
                                            <?php else: ?>
                                                <span class="text-muted">-</span>
                                            <?php endif; ?>
                                        </td>
                                        <td>
                                            <?php 
                                            $realizaSolicitud = $cliente['realiza_solicitud'] ?? null;
                                            if ($realizaSolicitud): 
                                                $badgeClass = strtoupper($realizaSolicitud) === 'SI' ? 'bg-success' : 'bg-secondary';
                                            ?>
                                                <span class="badge <?php echo $badgeClass; ?>">
                                                    <?php echo htmlspecialchars($realizaSolicitud); ?>
                                                </span>
                                            <?php else: ?>
                                                <span class="text-muted">-</span>
                                            <?php endif; ?>
                                        </td>
                                        <td>
                                            <?php echo $cliente['fecha_creacion'] ? date('d/m/Y H:i', strtotime($cliente['fecha_creacion'])) : '-'; ?>
                                        </td>
                                        <td>
                                            <div class="btn-group" role="group">
                                                <button type="button" class="btn btn-sm btn-primary" 
                                                        onclick="abrirModalCliente(<?php echo $cliente['codprogramacion']; ?>)"
                                                        title="Editar">
                                                    <i class="fas fa-edit"></i>
                                                </button>
                                                <a href="?delete=<?php echo $cliente['codprogramacion']; ?>" 
                                                   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; ?>
                            <?php endif; ?>
                        </tbody>
                    </table>
                </form>
            </div>
            
            <!-- 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 Crear/Editar Cliente -->
<div class="modal fade" id="modalCliente" tabindex="-1" aria-labelledby="modalClienteLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="modalClienteLabel">
                    <i class="fas fa-user"></i> <span id="modalTitulo">Editar Cliente</span>
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form method="POST" action="cliente_import_crud.php" id="formCliente">
                <input type="hidden" name="guardar_cliente" value="1">
                <input type="hidden" name="codprogramacion" id="codprogramacion" required>
                <div class="modal-body">
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Fecha <span class="text-danger">*</span></label>
                            <input type="date" class="form-control" name="fecha" id="fecha" required>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Código</label>
                            <input type="text" class="form-control" name="cod" id="cod" maxlength="20">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Documento</label>
                            <input type="text" class="form-control" name="documento" id="documento" maxlength="20">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Nombre <span class="text-danger">*</span></label>
                            <input type="text" class="form-control" name="nombre" id="nombre" maxlength="250" required>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">SOT</label>
                            <input type="text" class="form-control" name="sot" id="sot" maxlength="20">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Distrito</label>
                            <input type="text" class="form-control" name="distrito" id="distrito" maxlength="100">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Plano</label>
                            <input type="text" class="form-control" name="plano" id="plano" maxlength="50">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">Contacto</label>
                            <input type="text" class="form-control" name="contacto" id="contacto" maxlength="20">
                        </div>
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Dirección</label>
                        <textarea class="form-control" name="direccion" id="direccion" rows="2"></textarea>
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Paquete</label>
                        <input type="text" class="form-control" name="paquete" id="paquete" maxlength="200">
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Tipo de Trabajo</label>
                        <input type="text" class="form-control" name="tipo_trabajo" id="tipo_trabajo" maxlength="200">
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Estado</label>
                        <select class="form-select" name="estado" id="estado">
                            <option value="">Seleccionar...</option>
                            <?php foreach ($estados as $est): ?>
                                <option value="<?php echo htmlspecialchars($est); ?>">
                                    <?php echo htmlspecialchars($est); ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Grupo Importado</label>
                        <select class="form-select" name="grupoimportado" id="grupoimportado">
                            <option value="">Seleccionar...</option>
                            <?php foreach ($grupos_importados as $grupo): ?>
                                <option value="<?php echo htmlspecialchars($grupo); ?>">
                                    <?php echo htmlspecialchars($grupo); ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                        <small class="form-text text-muted">Nombre del archivo CSV utilizado para la importación</small>
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Realiza Solicitud</label>
                        <select class="form-select" name="realiza_solicitud" id="realiza_solicitud">
                            <option value="">Seleccionar...</option>
                            <option value="SI">SI</option>
                            <option value="NO">NO</option>
                        </select>
                    </div>
                </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="submit" class="btn btn-primary">
                        <i class="fas fa-save"></i> Guardar
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal para Actualizar Realiza Solicitud -->
<div class="modal fade" id="modalActualizarRealizaSolicitud" tabindex="-1" aria-labelledby="modalActualizarRealizaSolicitudLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="modalActualizarRealizaSolicitudLabel">
                    <i class="fas fa-edit"></i> Actualizar Realiza Solicitud
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <input type="hidden" id="idsActualizar" value="">
                <div class="mb-3">
                    <label class="form-label">Seleccione el valor para "Realiza Solicitud" <span class="text-danger">*</span></label>
                    <select class="form-select" id="realizaSolicitudSelect" required>
                        <option value="">Seleccionar...</option>
                        <option value="SI">SI</option>
                        <option value="NO">NO</option>
                    </select>
                    <small class="form-text text-muted">Este valor se aplicará a todos los registros seleccionados</small>
                </div>
            </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-primary" onclick="confirmarActualizarRealizaSolicitud()">
                    <i class="fas fa-save"></i> Actualizar
                </button>
            </div>
        </div>
    </div>
</div>

<script>
// Función para abrir el modal de cliente (solo edición)
function abrirModalCliente(codprogramacion) {
    if (!codprogramacion) {
        alert('Error: Se requiere un ID de cliente para editar');
        return;
    }
    
    const modal = new bootstrap.Modal(document.getElementById('modalCliente'));
    const form = document.getElementById('formCliente');
    const titulo = document.getElementById('modalTitulo');
    
    // Limpiar formulario
    form.reset();
    document.getElementById('codprogramacion').value = '';
    titulo.textContent = 'Editar Cliente';
    
    // Cargar datos via AJAX
    fetch(`ajax/get_cliente_import.php?id=${codprogramacion}`)
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                const cliente = data.cliente;
                document.getElementById('codprogramacion').value = cliente.codprogramacion || '';
                document.getElementById('fecha').value = cliente.fecha || '';
                document.getElementById('cod').value = cliente.cod || '';
                document.getElementById('documento').value = cliente.documento || '';
                document.getElementById('nombre').value = cliente.nombre || '';
                document.getElementById('sot').value = cliente.sot || '';
                document.getElementById('direccion').value = cliente.direccion || '';
                document.getElementById('distrito').value = cliente.distrito || '';
                document.getElementById('plano').value = cliente.plano || '';
                document.getElementById('paquete').value = cliente.paquete || '';
                document.getElementById('contacto').value = cliente.contacto || '';
                document.getElementById('tipo_trabajo').value = cliente.tipo_trabajo || '';
                document.getElementById('estado').value = cliente.estado || '';
                document.getElementById('grupoimportado').value = cliente.grupoimportado || '';
                document.getElementById('realiza_solicitud').value = cliente.realiza_solicitud || '';
                modal.show();
            } else {
                alert('Error al cargar el cliente: ' + data.message);
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('Error al cargar el cliente');
        });
}

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

// Función para actualizar el contador de registros seleccionados
function updateSelectedCount() {
    const checkboxes = document.querySelectorAll('.cliente-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('.cliente-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('.cliente-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;
    }
    
    document.getElementById('formEliminarSeleccionados').submit();
}

// Función para exportar clientes a Excel
function exportarClientes() {
    const params = new URLSearchParams(window.location.search);
    params.delete('page');
    params.delete('per_page');
    const url = 'export_clientes_import.php?' + params.toString();
    window.location.href = url;
}

// Función para abrir el modal de actualización de Realiza Solicitud
function abrirModalActualizarRealizaSolicitud() {
    const checkboxes = document.querySelectorAll('.cliente-checkbox:checked');
    const ids = Array.from(checkboxes).map(cb => cb.value);
    
    if (ids.length === 0) {
        alert('Por favor seleccione al menos un registro para actualizar');
        return;
    }
    
    // Mostrar modal de Bootstrap o prompt
    const modalElement = document.getElementById('modalActualizarRealizaSolicitud');
    const modal = new bootstrap.Modal(modalElement);
    document.getElementById('idsActualizar').value = ids.join(',');
    document.getElementById('realizaSolicitudSelect').value = '';
    modal.show();
    
    // Resetear el modal cuando se cierre
    modalElement.addEventListener('hidden.bs.modal', function() {
        document.getElementById('realizaSolicitudSelect').value = '';
        document.getElementById('idsActualizar').value = '';
    }, { once: true });
}

// Función para confirmar y enviar la actualización
function confirmarActualizarRealizaSolicitud() {
    const realizaSolicitud = document.getElementById('realizaSolicitudSelect').value;
    const ids = document.getElementById('idsActualizar').value;
    
    if (!realizaSolicitud || (realizaSolicitud !== 'SI' && realizaSolicitud !== 'NO')) {
        alert('Por favor seleccione un valor válido (SI o NO)');
        return;
    }
    
    if (!ids) {
        alert('Error: No se encontraron registros seleccionados');
        return;
    }
    
    const idsArray = ids.split(',');
    if (!confirm(`¿Está seguro de actualizar "Realiza Solicitud" a "${realizaSolicitud}" para ${idsArray.length} registro(s) seleccionado(s)?`)) {
        return;
    }
    
    // Crear formulario dinámico y enviarlo
    const form = document.createElement('form');
    form.method = 'POST';
    form.action = 'cliente_import_crud.php';
    
    const inputAccion = document.createElement('input');
    inputAccion.type = 'hidden';
    inputAccion.name = 'actualizar_realiza_solicitud';
    inputAccion.value = '1';
    form.appendChild(inputAccion);
    
    const inputValor = document.createElement('input');
    inputValor.type = 'hidden';
    inputValor.name = 'realiza_solicitud';
    inputValor.value = realizaSolicitud;
    form.appendChild(inputValor);
    
    idsArray.forEach(id => {
        const input = document.createElement('input');
        input.type = 'hidden';
        input.name = 'ids[]';
        input.value = id;
        form.appendChild(input);
    });
    
    document.body.appendChild(form);
    form.submit();
}

// Si hay un cliente para editar (desde GET), abrir el modal automáticamente
<?php if ($cliente_edit): ?>
document.addEventListener('DOMContentLoaded', function() {
    abrirModalCliente(<?php echo $cliente_edit['codprogramacion']; ?>);
});
<?php endif; ?>
</script>

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

