File "validarAutoriza.php"

Full Path: C:/wamp64/www/INVENTAPP/img/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;
}