ALTA PROVEEDORES
LISTADO Y ALTA DE PROVEEDORES
This commit is contained in:
@@ -180,3 +180,92 @@ function eliminar()
|
||||
header('Location: /IMPORTADORES/proveedores?deleted=' . ($status===200||$status===204 ? 'ok':'error'));
|
||||
exit;
|
||||
}
|
||||
|
||||
function crear()
|
||||
{
|
||||
// 1) Aseguramos que el usuario esté logueado
|
||||
if (empty($_SESSION['usuario_id'])) {
|
||||
header('Location: /IMPORTADORES/login');
|
||||
exit;
|
||||
}
|
||||
|
||||
// 2) Cargamos la vista
|
||||
include __DIR__ . '/../../views/proveedores/crear.php';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* POST /IMPORTADORES/proveedores/guardar
|
||||
* Procesa el alta de un nuevo proveedor contra la API WinSAAI.
|
||||
*/
|
||||
function guardar()
|
||||
{
|
||||
// 1) Validar sesión
|
||||
if (empty($_SESSION['usuario_id'])) {
|
||||
header('Location: /IMPORTADORES/login');
|
||||
exit;
|
||||
}
|
||||
|
||||
// 2) Recoger datos del formulario
|
||||
$payload = [
|
||||
'Clave' => trim($_POST['Clave'] ?? ''),
|
||||
'Nombre' => trim($_POST['Nombre'] ?? ''),
|
||||
'RFC' => trim($_POST['RFC'] ?? ''),
|
||||
'Ciudad' => trim($_POST['Ciudad'] ?? ''),
|
||||
'Telefono' => trim($_POST['Telefono'] ?? ''),
|
||||
'Pais' => trim($_POST['Pais'] ?? ''),
|
||||
'Colonia' => trim($_POST['Colonia'] ?? ''),
|
||||
'Municipio' => trim($_POST['Municipio'] ?? ''),
|
||||
'CodigoPostal' => trim($_POST['CodigoPostal'] ?? ''),
|
||||
'EntidadFederativa' => trim($_POST['EntidadFederativa'] ?? ''),
|
||||
];
|
||||
|
||||
// 3) Validar campos obligatorios
|
||||
if ($payload['Clave']==='' || $payload['Nombre']==='' || $payload['RFC']==='' || $payload['Ciudad']==='') {
|
||||
$_SESSION['flash_error'] = 'Clave, Nombre, RFC y Ciudad son obligatorios.';
|
||||
header('Location: /IMPORTADORES/proveedores/crear');
|
||||
exit;
|
||||
}
|
||||
|
||||
// 4) Obtener JWT
|
||||
$token = getApiToken();
|
||||
if (!$token) {
|
||||
$_SESSION['flash_error'] = 'No fue posible autenticar contra la API.';
|
||||
header('Location: /IMPORTADORES/proveedores/crear');
|
||||
exit;
|
||||
}
|
||||
|
||||
// 5) Llamada a la API para crear el proveedor
|
||||
$url = rtrim($_ENV['API_URL'] ?? '', '/') . '/api/proveedores';
|
||||
$ch = curl_init($url);
|
||||
curl_setopt_array($ch, [
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
"Authorization: Bearer $token",
|
||||
'Content-Type: application/json'
|
||||
],
|
||||
CURLOPT_POSTFIELDS => json_encode($payload),
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_TIMEOUT => 10,
|
||||
]);
|
||||
$resp = curl_exec($ch);
|
||||
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
// 6) Manejar respuesta
|
||||
if ($status === 201) {
|
||||
// Éxito
|
||||
header('Location: /IMPORTADORES/proveedores?created=ok');
|
||||
exit;
|
||||
} else {
|
||||
// Error, opcionalmente parsear mensaje
|
||||
$msg = '';
|
||||
if ($json = json_decode($resp, true)) {
|
||||
$msg = $json['mensaje'] ?? $json['error'] ?? '';
|
||||
}
|
||||
$_SESSION['flash_error'] = "Error al crear proveedor (HTTP $status) $msg";
|
||||
header('Location: /IMPORTADORES/proveedores/crear');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user