687 lines
34 KiB
PHP
687 lines
34 KiB
PHP
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
<style>
|
|
/* Estilos inspirados en Tailwind */
|
|
.sidebar-container { background-color: #f9fafb; border-right: 1px solid #e5e7eb; }
|
|
.sidebar-dark { background-color: #1f2937; border-right: 1px solid #374151; }
|
|
.sidebar-nav .nav-link { color: #374151; font-weight: 500; padding: 0.5rem 0.75rem; margin-bottom: 0.125rem;
|
|
border-radius: 0.5rem; transition: all 0.15s ease-in-out; display: flex; align-items: center; }
|
|
.sidebar-nav .nav-link:hover { background-color: #f3f4f6; color: #111827; }
|
|
.sidebar-nav .nav-link.active { background-color: #f3f4f6; color: #111827; }
|
|
.sidebar-nav .nav-link .icon { width: 1.25rem; height: 1.25rem; margin-right: 0.75rem; color: #6b7280; transition: color 0.15s ease-in-out; flex-shrink: 0; }
|
|
.sidebar-nav .nav-link:hover .icon,
|
|
.sidebar-nav .nav-link.active .icon { color: #374151; }
|
|
.sidebar-nav .badge { background-color: #f3f4f6; color: #374151; font-size: 0.75rem; font-weight: 500; padding: 0.25rem 0.5rem; border-radius: 9999px; margin-left: auto; }
|
|
.sidebar-nav .badge.badge-primary { background-color: #dbeafe; color: #1e40af; }
|
|
.submenu .nav-link { padding-left: 2.75rem; color: #6b7280; font-weight: 400; }
|
|
.submenu .nav-link:hover { background-color: #f3f4f6; color: #374151; }
|
|
.submenu .nav-link.active { background-color: #f3f4f6; color: #374151; }
|
|
.collapse-icon { width: 0.75rem; height: 0.75rem; margin-left: auto; transition: transform 0.15s ease-in-out; }
|
|
.nav-link[aria-expanded="true"] .collapse-icon { transform: rotate(180deg); }
|
|
/* Estilos para modo oscuro */
|
|
.sidebar-dark .sidebar-nav .nav-link { color: #d1d5db; }
|
|
.sidebar-dark .sidebar-nav .nav-link:hover { background-color: #374151; color: #ffffff; }
|
|
.sidebar-dark .sidebar-nav .nav-link.active { background-color: #374151; color: #ffffff; }
|
|
.sidebar-dark .sidebar-nav .nav-link .icon { color: #9ca3af; }
|
|
.sidebar-dark .sidebar-nav .nav-link:hover .icon,
|
|
.sidebar-dark .sidebar-nav .nav-link.active .icon { color: #ffffff; }
|
|
.sidebar-dark .sidebar-nav .badge { background-color: #374151; color: #d1d5db; }
|
|
.sidebar-dark .sidebar-nav .badge.badge-primary { background-color: #1e3a8a; color: #93c5fd; }
|
|
.sidebar-dark .submenu .nav-link { color: #9ca3af; }
|
|
.sidebar-dark .submenu .nav-link:hover { background-color: #374151; color: #d1d5db; }
|
|
.sidebar-dark .submenu .nav-link.active { background-color: #374151; color: #d1d5db; }
|
|
/* Navbar */
|
|
.navbar-brand { font-weight: 600; font-size: 1.125rem; }
|
|
.menu-toggle { border: 1px solid #6b7280; border-radius: 0.5rem; padding: 0.5rem; transition: all 0.15s ease-in-out; }
|
|
.menu-toggle:hover { background-color: #f3f4f6; }
|
|
/* Offcanvas para móviles */
|
|
.offcanvas { background-color: #ffffff; }
|
|
.offcanvas-header { border-bottom: 1px solid #e5e7eb; padding: 1rem 1.5rem; }
|
|
.offcanvas-title { font-weight: 600; font-size: 1.125rem; color: #111827; }
|
|
.offcanvas-body { padding: 1rem 1.5rem; }
|
|
/* Responsive adjustments */
|
|
@media (max-width: 767.98px) {
|
|
.sidebar-nav .nav-link { color: #374151; }
|
|
.sidebar-nav .nav-link:hover { background-color: #f3f4f6; color: #111827; }
|
|
.sidebar-nav .nav-link.active { background-color: #f3f4f6; color: #111827; }
|
|
}
|
|
</style>
|
|
|
|
<!-- NAVBAR -->
|
|
<nav class="navbar navbar-dark bg-dark fixed-top">
|
|
<div class="container-fluid">
|
|
<!-- Botón de menú para móviles -->
|
|
<button class="menu-toggle d-md-none me-3" type="button" data-bs-toggle="offcanvas" data-bs-target="#sidebarMenu">
|
|
☰
|
|
</button>
|
|
<span class="navbar-brand">SIIH | Importador</span>
|
|
<div class="d-flex ms-auto text-white">
|
|
<div id="navbar-content">
|
|
<?php
|
|
// Verifica si estás en el dashboard principal del administrador
|
|
$esDashboard = str_contains($_SERVER['REQUEST_URI'], '/IMPORTADORES/importadores/dashboard');
|
|
|
|
if ($esDashboard): ?>
|
|
<span id="welcome-text">Bienvenido, <?= htmlspecialchars($_SESSION['usuario_nombre']) ?></span>
|
|
<?php else: ?>
|
|
<a href="/IMPORTADORES/sistemas/logout" class="btn btn-outline-light btn-sm ms-2 W-auto btn-animated" id="logout-btn">Cerrar Sesión</a>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- SIDEBAR FIJA (escritorio) -->
|
|
<div class="d-none d-md-block sidebar-container sidebar-dark position-fixed h-100" style="width: 250px; top: 0; padding-top: 4rem; z-index: 1000;">
|
|
<div class="px-3 py-4 h-100 overflow-y-auto">
|
|
<nav class="sidebar-nav">
|
|
<ul class="nav flex-column">
|
|
<!-- INICIO -->
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/importadores/dashboard" class="nav-link active">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 22 21">
|
|
<path d="M16.975 11H10V4.025a1 1 0 0 0-1.066-.998 8.5 8.5 0 1 0 9.039 9.039.999.999 0 0 0-1-1.066h.002Z"/>
|
|
<path d="M12.5 0c-.157 0-.311.01-.565.027A1 1 0 0 0 11 1.02V10h8.975a1 1 0 0 0 1-.935c.013-.188.028-.374.028-.565A8.51 8.51 0 0 0 12.5 0Z"/>
|
|
</svg>
|
|
<span>Inicio</span>
|
|
</a>
|
|
</li>
|
|
<!-- LOCACIONES -->
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/importadores/lista" class="nav-link">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M10 2C6.686 2 4 4.686 4 8c0 5.25 6 12 6 12s6-6.75 6-12c0-3.314-2.686-6-6-6zm0 8c-1.105 0-2-.895-2-2s.895-2 2-2 2 .895 2 2-.895 2-2 2z"/>
|
|
</svg>
|
|
<span>Locaciones</span>
|
|
</a>
|
|
</li>
|
|
<!-- VINCULACIONES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuVinculacionesDesktop" role="button" aria-expanded="false" aria-controls="submenuVinculacionesDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M12.586 4.586a2 2 0 112.828 2.828l-3 3a2 2 0 01-2.828 0 1 1 0 00-1.414 1.414 4 4 0 005.656 0l3-3a4 4 0 00-5.656-5.656l-1.5 1.5a1 1 0 101.414 1.414l1.5-1.5z"/>
|
|
<path d="M7.414 15.414a2 2 0 01-2.828-2.828l3-3a2 2 0 012.828 0 1 1 0 001.414-1.414 4 4 0 00-5.656 0l-3 3a4 4 0 105.656 5.656l1.5-1.5a1 1 0 10-1.414-1.414l-1.5 1.5z"/>
|
|
</svg>
|
|
<span>Vinculación</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuVinculacionesDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/vinculaciones/vinculacionesUsuario" class="nav-link">
|
|
Mis vinculaciones
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/vinculaciones/nuevaVinculacion" class="nav-link">
|
|
Nueva vinculación
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- TRANSPORTISTAS -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuTransportistasDesktop" role="button" aria-expanded="false" aria-controls="submenuTransportistasDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M10.18 9l-7.1-3.8a.5.5 0 01.2-.95l7.75.95 3.87-3.1a.5.5 0 01.8.4v5.3l3.1.77a.5.5 0 01.05.96l-3.15.73V14a.5.5 0 01-.8.4l-3.87-3.1-7.75.95a.5.5 0 01-.2-.95L10.18 11V9z"/>
|
|
</svg>
|
|
<span>Transportistas</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuTransportistasDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportistas/lista" class="nav-link">
|
|
Mis transportistas
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportistas/alta" class="nav-link">
|
|
Alta de transportista
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportistas/bulk_upload" class="nav-link">
|
|
Carga masiva
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- TRANSPORTES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuTransportesDesktop" role="button" aria-expanded="false" aria-controls="submenuTransportesDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M3 4a1 1 0 011-1h8a1 1 0 011 1v6h2.382a1 1 0 01.894.553l1.618 3.236A1 1 0 0117 15h-1a2 2 0 11-4 0H8a2 2 0 11-4 0H3a1 1 0 01-1-1V5a1 1 0 011-1z"/>
|
|
</svg>
|
|
<span>Transportes</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuTransportesDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportes/lista" class="nav-link">
|
|
Mis transportes
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportes/crear" class="nav-link">
|
|
Nuevo transporte
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportes/masivo" class="nav-link">
|
|
Carga masiva
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- CHOFERES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuChoferesDesktop" role="button" aria-expanded="false" aria-controls="submenuChoferesDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Choferes</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuChoferesDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/choferes/lista" class="nav-link">
|
|
Mis choferes
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/choferes/crear" class="nav-link">
|
|
Nuevo chofer
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- PROVEEDORES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuProveedoresDesktop" role="button" aria-expanded="false" aria-controls="submenuProveedoresDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M6 4a2 2 0 012-2h4a2 2 0 012 2v2h2a2 2 0 012 2v2H2V8a2 2 0 012-2h2V4zm2 0h4v2H8V4zm-6 8h16v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Proveedores</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuProveedoresDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/proveedores" class="nav-link">
|
|
Lista de Proveedores
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/proveedores/crear" class="nav-link">
|
|
Registro de Proveedor
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- PRODUCTOS FRECUENTES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuProductosFrecuentesDesktop" role="button" aria-expanded="false" aria-controls="submenuProductosFrecuentesDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
|
|
</svg>
|
|
<span>Productos Frecuentes</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuProductosFrecuentesDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/productos_frecuentes/editar" class="nav-link">
|
|
Mis productos
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/productos_frecuentes/alta" class="nav-link">
|
|
Alta de productos
|
|
</a>
|
|
</li>
|
|
<!--
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/productos_frecuentes/importacion_csv" class="nav-link">
|
|
Importación masiva
|
|
</a>
|
|
</li>
|
|
-->
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- SOLICITUDES DE IMPORTACIÓN -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuSolicitudesDesktop" role="button" aria-expanded="false" aria-controls="submenuSolicitudesDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Solicitudes Importación</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuSolicitudesDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/solicitud_importacion/lista" class="nav-link">
|
|
Mis solicitudes
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/solicitud_importacion/crear" class="nav-link">
|
|
Nueva solicitud
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- EXPEDIENTE ELECTRÓNICO -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuExpedienteDesktop" role="button" aria-expanded="false" aria-controls="submenuExpedienteDesktop">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M2 5a2 2 0 012-2h4l2 2h6a2 2 0 012 2v1H2V5z"/>
|
|
<path d="M2 9h16v6a2 2 0 01-2 2H4a2 2 0 01-2-2V9z"/>
|
|
</svg>
|
|
<span>Expediente Electrónico</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuExpedienteDesktop">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/expediente/index" class="nav-link">
|
|
Mi expediente
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- CONFIGURACIÓN -->
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/configuracion" class="nav-link">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M11.983 1.034a1 1 0 00-1.966 0l-.26 1.857a6.996 6.996 0 00-1.223.51l-1.7-1.04a1 1 0 00-1.366.366l-1 1.732a1 1 0 00.366 1.366l1.7 1.04a6.984 6.984 0 000 1.02l-1.7 1.04a1 1 0 00-.366 1.366l1 1.732a1 1 0 001.366.366l1.7-1.04c.392.212.803.386 1.223.51l.26 1.857a1 1 0 001.966 0l.26-1.857c.42-.124.831-.298 1.223-.51l1.7 1.04a1 1 0 001.366-.366l1-1.732a1 1 0 00-.366-1.366l-1.7-1.04a6.984 6.984 0 000-1.02l1.7-1.04a1 1 0 00.366-1.366l-1-1.732a1 1 0 00-1.366-.366l-1.7 1.04a6.996 6.996 0 00-1.223-.51l-.26-1.857zM10 13a3 3 0 100-6 3 3 0 000 6z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Configuración</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- OFFCANVAS PARA MÓVILES -->
|
|
<div class="offcanvas offcanvas-start d-md-none" tabindex="-1" id="sidebarMenu" style="top: 0; width: 250px;">
|
|
<div class="offcanvas-header">
|
|
<h5 class="offcanvas-title">Menú</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
|
|
</div>
|
|
<div class="offcanvas-body">
|
|
<nav class="sidebar-nav">
|
|
<ul class="nav flex-column">
|
|
<!-- INICIO -->
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/importadores/dashboard" class="nav-link active">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 22 21">
|
|
<path d="M16.975 11H10V4.025a1 1 0 0 0-1.066-.998 8.5 8.5 0 1 0 9.039 9.039.999.999 0 0 0-1-1.066h.002Z"/>
|
|
<path d="M12.5 0c-.157 0-.311.01-.565.027A1 1 0 0 0 11 1.02V10h8.975a1 1 0 0 0 1-.935c.013-.188.028-.374.028-.565A8.51 8.51 0 0 0 12.5 0Z"/>
|
|
</svg>
|
|
<span>Inicio</span>
|
|
</a>
|
|
</li>
|
|
<!-- LOCACIONES -->
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/importadores/lista" class="nav-link">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M10 2C6.686 2 4 4.686 4 8c0 5.25 6 12 6 12s6-6.75 6-12c0-3.314-2.686-6-6-6zm0 8c-1.105 0-2-.895-2-2s.895-2 2-2 2 .895 2 2-.895 2-2 2z"/>
|
|
</svg>
|
|
<span>Locaciones</span>
|
|
</a>
|
|
</li>
|
|
<!-- VINCULACIONES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuVinculacionesMobile" role="button" aria-expanded="false" aria-controls="submenuVinculacionesMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M12.586 4.586a2 2 0 112.828 2.828l-3 3a2 2 0 01-2.828 0 1 1 0 00-1.414 1.414 4 4 0 005.656 0l3-3a4 4 0 00-5.656-5.656l-1.5 1.5a1 1 0 101.414 1.414l1.5-1.5z"/>
|
|
<path d="M7.414 15.414a2 2 0 01-2.828-2.828l3-3a2 2 0 012.828 0 1 1 0 001.414-1.414 4 4 0 00-5.656 0l-3 3a4 4 0 105.656 5.656l1.5-1.5a1 1 0 10-1.414-1.414l-1.5 1.5z"/>
|
|
</svg>
|
|
<span>Vinculación</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuVinculacionesMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/vinculaciones/vinculacionesUsuario" class="nav-link">
|
|
Mis vinculaciones
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/vinculaciones/nuevaVinculacion" class="nav-link">
|
|
Nueva vinculación
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- TRANSPORTISTAS -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuTransportistasMobile" role="button" aria-expanded="false" aria-controls="submenuTransportistasMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M10.18 9l-7.1-3.8a.5.5 0 01.2-.95l7.75.95 3.87-3.1a.5.5 0 01.8.4v5.3l3.1.77a.5.5 0 01.05.96l-3.15.73V14a.5.5 0 01-.8.4l-3.87-3.1-7.75.95a.5.5 0 01-.2-.95L10.18 11V9z"/>
|
|
</svg>
|
|
<span>Transportistas</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuTransportistasMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportistas/lista" class="nav-link">
|
|
Mis transportistas
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportistas/alta" class="nav-link">
|
|
Alta de transportista
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportistas/bulk_upload" class="nav-link">
|
|
Carga masiva
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- TRANSPORTES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuTransportesMobile" role="button" aria-expanded="false" aria-controls="submenuTransportesMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M3 4a1 1 0 011-1h8a1 1 0 011 1v6h2.382a1 1 0 01.894.553l1.618 3.236A1 1 0 0117 15h-1a2 2 0 11-4 0H8a2 2 0 11-4 0H3a1 1 0 01-1-1V5a1 1 0 011-1z"/>
|
|
</svg>
|
|
<span>Transportes</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuTransportesMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportes/lista" class="nav-link">
|
|
Mis transportes
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportes/crear" class="nav-link">
|
|
Nuevo transporte
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/transportes/masivo" class="nav-link">
|
|
Carga masiva
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- CHOFERES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuChoferesMobile" role="button" aria-expanded="false" aria-controls="submenuChoferesMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Choferes</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuChoferesMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/choferes/lista" class="nav-link">
|
|
Mis choferes
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/choferes/crear" class="nav-link">
|
|
Nuevo chofer
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- PROVEEDORES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuProveedoresMobile" role="button" aria-expanded="false" aria-controls="submenuProveedoresMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M6 4a2 2 0 012-2h4a2 2 0 012 2v2h2a2 2 0 012 2v2H2V8a2 2 0 012-2h2V4zm2 0h4v2H8V4zm-6 8h16v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Proveedores</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuProveedoresMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/proveedores" class="nav-link">
|
|
Lista de Proveedores
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/proveedores/crear" class="nav-link">
|
|
Registro de Proveedor
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- PRODUCTOS FRECUENTES -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuProductosFrecuentesMobile" role="button" aria-expanded="false" aria-controls="submenuProductosFrecuentesMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
|
|
</svg>
|
|
<span>Productos Frecuentes</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuProductosFrecuentesMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/productos_frecuentes/editar" class="nav-link">
|
|
Mis productos
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/productos_frecuentes/alta" class="nav-link">
|
|
Alta de productos
|
|
</a>
|
|
</li>
|
|
<!--
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/productos_frecuentes/importacion_csv" class="nav-link">
|
|
Importación masiva
|
|
</a>
|
|
</li>
|
|
-->
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- SOLICITUDES DE IMPORTACIÓN -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuSolicitudesMobile" role="button" aria-expanded="false" aria-controls="submenuSolicitudesMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Solicitudes Importación</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuSolicitudesMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/solicitud_importacion/lista" class="nav-link">
|
|
Mis solicitudes
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/solicitud_importacion/crear" class="nav-link">
|
|
Nueva solicitud
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- EXPEDIENTE ELECTRÓNICO -->
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-bs-toggle="collapse" href="#submenuExpedienteMobile" role="button" aria-expanded="false" aria-controls="submenuExpedienteMobile">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path d="M2 5a2 2 0 012-2h4l2 2h6a2 2 0 012 2v1H2V5z"/>
|
|
<path d="M2 9h16v6a2 2 0 01-2 2H4a2 2 0 01-2-2V9z"/>
|
|
</svg>
|
|
<span>Expediente Electrónico</span>
|
|
<svg class="collapse-icon" fill="none" stroke="currentColor" viewBox="0 0 10 6">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
</svg>
|
|
</a>
|
|
<div class="collapse" id="submenuExpedienteMobile">
|
|
<ul class="nav flex-column submenu">
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/expediente/index" class="nav-link">
|
|
Mi expediente
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<!-- CONFIGURACIÓN -->
|
|
<li class="nav-item">
|
|
<a href="/IMPORTADORES/configuracion" class="nav-link">
|
|
<svg class="icon" fill="currentColor" viewBox="0 0 20 20">
|
|
<path fill-rule="evenodd" d="M11.983 1.034a1 1 0 00-1.966 0l-.26 1.857a6.996 6.996 0 00-1.223.51l-1.7-1.04a1 1 0 00-1.366.366l-1 1.732a1 1 0 00.366 1.366l1.7 1.04a6.984 6.984 0 000 1.02l-1.7 1.04a1 1 0 00-.366 1.366l1 1.732a1 1 0 001.366.366l1.7-1.04c.392.212.803.386 1.223.51l.26 1.857a1 1 0 001.966 0l.26-1.857c.42-.124.831-.298 1.223-.51l1.7 1.04a1 1 0 001.366-.366l1-1.732a1 1 0 00-.366-1.366l-1.7-1.04a6.984 6.984 0 000-1.02l1.7-1.04a1 1 0 00.366-1.366l-1-1.732a1 1 0 00-1.366-.366l-1.7 1.04a6.996 6.996 0 00-1.223-.51l-.26-1.857zM10 13a3 3 0 100-6 3 3 0 000 6z" clip-rule="evenodd"/>
|
|
</svg>
|
|
<span>Configuración</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const esDashboard = window.location.pathname.includes('/importadores/dashboard');
|
|
const welcomeText = document.getElementById('welcome-text');
|
|
const logoutBtn = document.getElementById('logout-btn');
|
|
|
|
if (!esDashboard) {
|
|
if (welcomeText) {
|
|
welcomeText.style.display = 'none';
|
|
}
|
|
if (logoutBtn) {
|
|
logoutBtn.style.display = 'inline-block';
|
|
}
|
|
}
|
|
|
|
// Manejar estados activos basados en URL actual
|
|
const currentPath = window.location.pathname;
|
|
const navLinks = document.querySelectorAll('.nav-link');
|
|
|
|
navLinks.forEach(link => {
|
|
const href = link.getAttribute('href');
|
|
if (href && currentPath.includes(href)) {
|
|
link.classList.add('active');
|
|
}
|
|
});
|
|
|
|
document.querySelectorAll('[data-bs-toggle="collapse"]').forEach(trigger => {
|
|
// Desactivar Bootstrap
|
|
trigger.removeAttribute('data-bs-toggle');
|
|
|
|
// Inicializar estado correcto
|
|
const target = document.querySelector(trigger.getAttribute('href'));
|
|
if (target) {
|
|
target.style.transition = 'height 0.3s ease, opacity 0.2s ease';
|
|
target.style.overflow = 'hidden';
|
|
|
|
if (!target.classList.contains('show')) {
|
|
target.style.height = '0';
|
|
target.style.opacity = '0';
|
|
}
|
|
}
|
|
|
|
trigger.addEventListener('click', function(e) {
|
|
e.preventDefault();
|
|
const target = document.querySelector(this.getAttribute('href'));
|
|
const icon = this.querySelector('.collapse-icon');
|
|
|
|
if (!target) return;
|
|
|
|
const isExpanding = this.getAttribute('aria-expanded') !== 'true';
|
|
|
|
if (isExpanding) {
|
|
// Abrir
|
|
target.classList.add('show');
|
|
target.style.height = '0';
|
|
target.style.opacity = '0';
|
|
target.style.display = 'block';
|
|
|
|
// Forzar reflow
|
|
void target.offsetHeight;
|
|
|
|
target.style.height = target.scrollHeight + 'px';
|
|
target.style.opacity = '1';
|
|
|
|
this.setAttribute('aria-expanded', 'true');
|
|
if (icon) icon.style.transform = 'rotate(180deg)';
|
|
} else {
|
|
// Cerrar
|
|
target.style.height = target.scrollHeight + 'px';
|
|
target.style.opacity = '1';
|
|
|
|
// Forzar reflow
|
|
void target.offsetHeight;
|
|
|
|
target.style.height = '0';
|
|
target.style.opacity = '0';
|
|
|
|
setTimeout(() => {
|
|
target.classList.remove('show');
|
|
target.style.display = '';
|
|
}, 300);
|
|
|
|
this.setAttribute('aria-expanded', 'false');
|
|
if (icon) icon.style.transform = 'rotate(0deg)';
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|