File "validarAutoriza.php"
Full Path: C:/wamp64/www/INVENTAPP/controller/validarAutoriza.php
File size: 5.17 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// validarAutoriza.php (versi贸n de depuraci贸n y manejo correcto)
error_reporting(E_ALL);
ini_set('display_errors', 1);
header('Content-Type: application/json; charset=utf-8');
session_start();
header('Content-Type: application/json');
$requeridos = ['listItem', 'nprod', 'pesoNeto', 'empacado'];
$faltantes = [];
foreach ($requeridos as $key) {
if (!isset($_SESSION[$key])) {
$faltantes[] = $key;
}
}
if (!empty($faltantes)) {
echo json_encode([
"success" => false,
"error" => "Faltan datos en sesi贸n",
"faltantes" => $faltantes,
"session" => $_SESSION // 馃憟 imprime lo que s铆 lleg贸
]);
exit;
}
include_once('../models/modelo_conexion.php');
try {
$objeto = new Conexion();
$conexion = $objeto->Conectar();
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
error_log("DB connect error: " . $e->getMessage());
echo json_encode(['success' => false, 'error' => 'Error de conexi贸n a la base de datos']);
exit;
}
if (!isset($_POST['userAutoriza'], $_POST['passwAutoriza'])) {
echo json_encode(['success' => false, 'error' => 'Faltan credenciales POST']);
exit;
}
$userAutoriza = trim($_POST['userAutoriza']);
$passwAutoriza = trim($_POST['passwAutoriza']);
try {
// 1) verificar usuario con permiso != 1
$stmt = $conexion->prepare("SELECT * FROM `user` WHERE usuario = :usuario AND password = :password AND permiso != '1'");
$stmt->execute([':usuario' => $userAutoriza, ':password' => $passwAutoriza]);
if ($stmt->rowCount() < 1) {
echo json_encode(['success' => false, 'error' => 'Usuario sin permisos o credenciales inv谩lidas']);
exit;
}
// 2) comprobar que las variables de sesi贸n requeridas existan
$required = ['listItem', 'nprod', 'pesoNeto', 'empacado', 'nomUser'];
$missing = [];
foreach ($required as $k) {
if (!isset($_SESSION[$k]) || $_SESSION[$k] === '' || $_SESSION[$k] === null) {
$missing[] = $k;
}
}
if (!empty($missing)) {
error_log("validarAutoriza: faltan en session -> " . implode(',', $missing) . " | session_id=" . session_id());
echo json_encode(['success' => false, 'error' => 'Faltan datos en sesi贸n: ' . implode(', ', $missing)]);
exit;
}
// 3) asignar variables (con valores por defecto seguros)
$ubicacion = $_SESSION['ubicacion'] ?? '';
$usuario = $_SESSION['nomUser'] ?? '';
$planillador = $_SESSION['planilla'] ?? '';
$listItem = $_SESSION['listItem'];
$nprod = $_SESSION['nprod'];
$pesoNeto = $_SESSION['pesoNeto'];
$empacado = $_SESSION['empacado'] > 0 ? $_SESSION['empacado'] : 1;
$bultos = $_SESSION['bultos'] ?? 0;
$cajas = $_SESSION['cajas'] ?? 0;
$cnastaPll = $_SESSION['cnastaPll'] ?? null;
$cnastaPv = $_SESSION['cnastaPv'] ?? null;
$ctillaPll = $_SESSION['ctillaPll'] ?? null;
$ctillaPv = $_SESSION['ctillaPv'] ?? null;
$inpBase = $_SESSION['inpBase'] ?? null;
$inpLote = $_SESSION['inpLote'] ?? null;
$doc = $_SESSION['dcto'] ?? null;
$pesoProm = ($empacado > 0) ? ($pesoNeto / $empacado) : 0;
// 4) preparar INSERT con placeholders
$consul = "INSERT INTO mvdcto
(TPDCTO, CODUBI, FECHA, ESTADO, USUARIO, CODPROD, NPROD, CANTIDAD, CANTEMPAQ,
BULTOS, CAJAS, CNASTAPLL, CNASTAPV, CNASTILLAPLL, CNASTILLAPV, BASES,
RESPONSABLE, PLANILLADOR, LOTE, PESOPROM)
VALUES
(:doc, :ubicacion, CURRENT_DATE(), 'PESO PROMEDIO AUTORIZADO', :usuario, :listItem, :nprod,
:pesoNeto, :empacado, :bultos, :cajas, :cnastaPll, :cnastaPv, :ctillaPll,
:ctillaPv, :inpBase, UPPER(:userAutoriza), UPPER(:planillador), :inpLote, :pesoProm)";
$resul = $conexion->prepare($consul);
$ok = $resul->execute([
':doc' => $doc,
':ubicacion' => $ubicacion,
':usuario' => $usuario,
':listItem' => $listItem,
':nprod' => $nprod,
':pesoNeto' => $pesoNeto,
':empacado' => $empacado,
':bultos' => $bultos,
':cajas' => $cajas,
':cnastaPll' => $cnastaPll,
':cnastaPv' => $cnastaPv,
':ctillaPll' => $ctillaPll,
':ctillaPv' => $ctillaPv,
':inpBase' => $inpBase,
':userAutoriza' => $userAutoriza,
':planillador' => $planillador,
':inpLote' => $inpLote,
':pesoProm' => $pesoProm,
]);
if ($ok) {
echo json_encode(['success' => true, 'message' => 'Registro insertado correctamente']);
exit;
} else {
$err = $resul->errorInfo();
error_log("validarAutoriza INSERT error: " . print_r($err, true));
echo json_encode(['success' => false, 'error' => $err[2] ?? 'Error desconocido en INSERT']);
exit;
}
} catch (PDOException $e) {
error_log("validarAutoriza PDOException: " . $e->getMessage());
echo json_encode(['success' => false, 'error' => 'Exception: ' . $e->getMessage()]);
exit;
}