Files
MVE/views/patente/lista.php
2025-07-14 13:27:15 -06:00

161 lines
7.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
$tipoUsuario = $_SESSION['tipo_usuario'] ?? null;
if ($tipoUsuario === 'agente_aduanal') {
include __DIR__ . '/../partials/sidebar_agente.php';
} elseif ($tipoUsuario === 'admin_agencia') {
include __DIR__ . '/../partials/sidebar_agencia.php';
} else {
// Sidebar por defecto o error
echo "<!-- ⚠️ No se encontró sidebar para el tipo de usuario -->";
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>📑 Registro de Patentes Aduanales</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<!-- Animate.css para animaciones adicionales -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
<style>
body { font-family: 'Segoe UI', sans-serif; background-color: #f4f6f9; }
.sidebar { width: 220px; height: 100vh; background-color: #343a40; position: fixed; top: 0; left: 0; padding-top: 56px; z-index: 1040; }
.sidebar .nav-link { font-weight: bold; color: white; transition: all 0.3s ease; }
.sidebar .nav-link:hover,
.sidebar .nav-link.active { background-color: #495057; color: #fff; }
.content { margin-top: 56px; padding: 40px 20px; position: relative; z-index: 1; background-color: #f4f6f9; transition: margin-left 0.3s ease; }
.navbar { position: fixed; top: 0; width: 100%; z-index: 1050; }
.btn-indigo { background-color: #6610f2; color: white;}
.btn-indigo:hover { background-color: #520dc2; color: white;}
.text-indigo { color: orangeRed;}
.btn-orange { background-color: orangeRed; color: white;}
.btn-orange:hover { background-color: #ff3600; color: white;}
.text-orange { color: orangeRed;}
/* A partir de dispositivos medianos (>=768px), deja espacio lateral */
@media (min-width: 768px) { .content { margin-left: 250px; /* Ancho del sidebar */ } }
/* En móviles, sin margen lateral */
@media (max-width: 767.98px) {
.content { margin-left: 0; }
.sidebar .nav-link { font-weight: normal; color: #343a40; background-color: transparent; }
.sidebar .nav-link:hover,
.sidebar .nav-link.active { background-color: #e9ecef; color: #212529; }
}
.card { border-radius: 12px; }
/* Animaciones personalizadas */
.card-hover { transition: all 0.3s ease; cursor: pointer; }
.card-hover:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.15) !important; }
.btn-pulse { animation: pulse 2s infinite; }
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
.fade-in-up { animation: fadeInUp 0.8s ease-out; }
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
/* Responsive animations */
@media (max-width: 768px) { .card-hover:hover { transform: translateY(-4px) scale(1.01); } }
/* Efecto de glow para elementos activos */
.btn.active { box-shadow: 0 0 20px rgba(var(--bs-primary-rgb), 0.5); }
/* Animación para el título */
.title-glow { text-shadow: 0 0 10px rgba(0, 123, 255, 0.3); }
/* Efecto para botones */
.btn-animated { transition: all 0.3s ease; position: relative; overflow: hidden; }
.btn-animated:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); }
.btn-animated::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; }
.btn-animated:hover::before { left: 100%; }
</style>
</head>
<body>
<div class="content">
<h4 class="mb-4 animate__animated animate__fadeInDown title_glow">📑 Registro de Patentes Aduanales</h4>
<a href="/IMPORTADORES/patente/alta" class="btn btn-success mb-3 mt-auto w-auto btn-animated"> Nueva Patente</a>
<div class="card p-3 shadow-sm card-hover position-relative h-auto">
<div class="table-responsive">
<table class="table table-striped" id="tabla-patentes">
<thead class="table-dark">
<tr>
<th>#</th>
<th>Aduana</th>
<th>Patente</th>
<th>Agente Aduanal</th>
<th>RFC</th>
<th>CURP</th>
<th>Razón Social</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php foreach($agentes_aduanales as $aa): ?>
<tr>
<td><?= $aa['id_agente'] ?></td>
<td><?= htmlspecialchars($aa['aduana']) ?></td>
<td><?= htmlspecialchars($aa['patente']) ?></td>
<td><?= htmlspecialchars($aa['agente_aduanal']) ?></td>
<td><?= htmlspecialchars($aa['rfc']) ?></td>
<td><?= htmlspecialchars($aa['curp']) ?></td>
<td><?= htmlspecialchars($aa['razon_social']) ?></td>
<td>
<a href="/IMPORTADORES/patente/editar?id=<?= $aa['id_agente'] ?>" class="btn btn-sm btn-primary mt-auto w-auto btn-animated">✏️</a>
<button class="btn btn-sm btn-danger mt-auto w-auto btn-animated" onclick="confirmDeleteChofer(<?= $aa['id_agente'] ?>)">🗑️</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<script>
function confirmDeleteChofer(id) {
Swal.fire({
title: '¿Eliminar agente aduanal?',
text: 'Esto sólo lo marcara como inactivo.',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Sí, eliminar',
cancelButtonText: 'Cancelar',
confirmButtonColor: '#d33'
}).then(r => {
if (r.isConfirmed) {
window.location = `/IMPORTADORES/patente/eliminar?id=${id}`;
}
});
}
$(document).ready(function () {
$('#tabla-patentes').DataTable({
language: {
url: 'https://cdn.datatables.net/plug-ins/1.13.4/i18n/es-ES.json'
}
});
});
<?php if(isset($_GET['deleted'])): ?>
Swal.fire('¡Hecho!','Patente eliminada.','success');
<?php endif; ?>
<?php if(isset($_GET['created'])): ?>
Swal.fire('¡Listo!','Patente creado.','success');
<?php endif; ?>
<?php if(isset($_GET['updated'])): ?>
Swal.fire('¡Listo!','Patente actualizada.','success');
<?php endif; ?>
</script>
</body>
</html>