conexion con api winsaai
This commit is contained in:
@@ -93,30 +93,31 @@ if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo_usuario'] !== 'importador
|
||||
</div>
|
||||
<!-- Proveedores -->
|
||||
<a
|
||||
class="nav-link px-3 py-2 d-flex justify-content-between align-items-center <?= str_contains($_SERVER['REQUEST_URI'], '/proveedores') ? 'active' : '' ?>"
|
||||
class="nav-link px-3 py-2 d-flex justify-content-between align-items-center
|
||||
<?= str_contains($_SERVER['REQUEST_URI'], '/IMPORTADORES/proveedores') ? 'active' : '' ?>"
|
||||
data-bs-toggle="collapse"
|
||||
href="#submenuProveedores"
|
||||
role="button"
|
||||
aria-expanded="<?= str_contains($_SERVER['REQUEST_URI'], '/proveedores') ? 'true' : 'false' ?>"
|
||||
aria-expanded="<?= str_contains($_SERVER['REQUEST_URI'], '/IMPORTADORES/proveedores') ? 'true' : 'false' ?>"
|
||||
aria-controls="submenuProveedores"
|
||||
>
|
||||
🏭 Proveedores
|
||||
🏭 Proveedores
|
||||
<span class="badge bg-secondary">2</span>
|
||||
</a>
|
||||
<div
|
||||
class="collapse <?= str_contains($_SERVER['REQUEST_URI'], '/proveedores') ? 'show' : '' ?>"
|
||||
class="collapse <?= str_contains($_SERVER['REQUEST_URI'], '/IMPORTADORES/proveedores') ? 'show' : '' ?>"
|
||||
id="submenuProveedores"
|
||||
>
|
||||
<nav class="nav flex-column ms-3">
|
||||
<a
|
||||
href="/importadores/proveedores"
|
||||
class="nav-link px-3 py-1 <?= $_SERVER['REQUEST_URI'] === '/importadores/proveedores' ? 'active' : '' ?>"
|
||||
href="/IMPORTADORES/proveedores"
|
||||
class="nav-link px-3 py-1 <?= $_SERVER['REQUEST_URI'] === '/IMPORTADORES/proveedores' ? 'active' : '' ?>"
|
||||
>
|
||||
• Lista de Proveedores
|
||||
</a>
|
||||
<a
|
||||
href="/importadores/proveedores/crear"
|
||||
class="nav-link px-3 py-1 <?= str_contains($_SERVER['REQUEST_URI'], '/proveedores/crear') ? 'active' : '' ?>"
|
||||
href="/IMPORTADORES/proveedores/crear"
|
||||
class="nav-link px-3 py-1 <?= str_contains($_SERVER['REQUEST_URI'], '/IMPORTADORES/proveedores/crear') ? 'active' : '' ?>"
|
||||
>
|
||||
• Registro de Proveedor
|
||||
</a>
|
||||
@@ -124,6 +125,7 @@ if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo_usuario'] !== 'importador
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- SOLICITUDES DE IMPORTACIÓN -->
|
||||
<a class="nav-link px-3 py-2 d-flex justify-content-between align-items-center
|
||||
<?= str_contains($_SERVER['REQUEST_URI'], '/solicitud_importacion') ? 'active' : '' ?>"
|
||||
|
||||
110
views/proveedores/lista.php
Normal file
110
views/proveedores/lista.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>📄 Listado de Proveedores</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- Bootstrap y DataTables CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css" rel="stylesheet">
|
||||
<style>
|
||||
body { background: #f4f6f9; font-family: 'Segoe UI', sans-serif; }
|
||||
.sidebar { width: 220px; position: fixed; height: 100vh; background: #343a40; padding-top: 60px; }
|
||||
.sidebar .nav-link { color: #ccc; padding: 12px 20px; }
|
||||
.sidebar .nav-link.active,
|
||||
.sidebar .nav-link:hover { background: #495057; color: #fff; }
|
||||
.content { margin-left: 220px; padding: 40px 20px; }
|
||||
.card { border-radius: 12px; }
|
||||
table.dataTable thead th { background: #343a40; color: #fff; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php include __DIR__ . '/../partials/sidebar_importador.php'; ?>
|
||||
|
||||
<div class="content">
|
||||
<br> <br>
|
||||
<h4 class="mb-4">📄 Listado de Proveedores</h4>
|
||||
<div class="card p-3 shadow-sm">
|
||||
<table id="proveedores-table" class="display nowrap" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Clave</th>
|
||||
<th>Nombre</th>
|
||||
<th>RFC</th>
|
||||
<th>Ciudad</th>
|
||||
<th>Teléfono</th>
|
||||
<th>Acciones</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- JS: jQuery, DataTables, Bootstrap, SweetAlert2 -->
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
<script>
|
||||
|
||||
$(function(){
|
||||
$('#proveedores-table').DataTable({
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
ajax: {
|
||||
url: '/IMPORTADORES/proveedores/ajax_lista',
|
||||
type: 'GET',
|
||||
dataSrc: function(json) {
|
||||
if (!json || !Array.isArray(json.data)) {
|
||||
console.error('Respuesta inválida de ajax_lista:', json);
|
||||
return [];
|
||||
}
|
||||
return json.data;
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error('Error Ajax:', status, error, '\nResponse:', xhr.responseText);
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Error al cargar proveedores',
|
||||
text: 'Revisa la consola para más detalles.',
|
||||
});
|
||||
}
|
||||
},
|
||||
columns: [
|
||||
{ data: 0 }, { data: 1 }, { data: 2 },
|
||||
{ data: 3 }, { data: 4 }, { data: 5 }
|
||||
],
|
||||
language: {
|
||||
url: '//cdn.datatables.net/plug-ins/1.13.4/i18n/es-ES.json'
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function confirmDelete(clave) {
|
||||
Swal.fire({
|
||||
title: '¿Desactivar proveedor?',
|
||||
text: 'No podrá volver a usarse hasta reactivarlo.',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Sí, desactivar',
|
||||
cancelButtonText: 'Cancelar',
|
||||
confirmButtonColor: '#d33'
|
||||
}).then(result => {
|
||||
if (result.isConfirmed) {
|
||||
window.location = `/IMPORTADORES/proveedores/eliminar?clave=${clave}`;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
<?php if (isset($_GET['deleted']) && $_GET['deleted']==='ok'): ?>
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Proveedor desactivado',
|
||||
confirmButtonColor: '#198754'
|
||||
});
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user