conexion con api winsaai

This commit is contained in:
2025-05-12 12:09:10 -06:00
parent 722f7fbb5f
commit 485e249dab
4 changed files with 288 additions and 8 deletions

View File

@@ -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
View 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>