Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
APPSST
/
Admin
/
inventario
/
inventarioUsa
:
insertInventario.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php session_start(); header("Cache-control: private"); include("../../../bd/conexion.php"); // Obtener usuario de sesión $userEntrega = ''; if(isset($_SESSION['DIGITA']) && !empty($_SESSION['DIGITA'])) { $userEntrega = mysqli_real_escape_string($conexion, $_SESSION['DIGITA']); error_log("Usuario obtenido de sesión: " . $userEntrega); } else { $userEntrega = 'USUARIO_DESCONOCIDO'; error_log("Usuario por defecto: " . $userEntrega); } // Verificar si hay elementos seleccionados if (!isset($_SESSION['elementos_seleccionados']) || empty($_SESSION['elementos_seleccionados'])) { $_SESSION['mensaje_error'] = 'No hay elementos para confirmar. Por favor, seleccione al menos un elemento.'; header("Location: VERNOEN.PHP"); exit(); } // Iniciar transacción $conexion->begin_transaction(); try { foreach ($_SESSION['elementos_seleccionados'] as $elemento) { $codigo = $conexion->real_escape_string($elemento['codigo']); $descripcion = $conexion->real_escape_string($elemento['descripcion']); $cantidad = intval($elemento['cantidad']); // 1. Actualizar o insertar en la tabla inventario $consulta = "SELECT CANTIDAD FROM inventariousado WHERE CODIGO = '$codigo' AND estado = 0 LIMIT 1"; $resultado = $conexion->query($consulta); if ($resultado && $resultado->num_rows > 0) { // Sumar a la cantidad existente $fila = $resultado->fetch_assoc(); $nueva_cantidad = $fila['CANTIDAD'] + $cantidad; $update = "UPDATE inventario SET CANTIDAD = $nueva_cantidad WHERE CODIGO = '$codigo' AND estado = 0"; if (!$conexion->query($update)) { throw new Exception("Error al actualizar el elemento $codigo en inventario: " . $conexion->error); } } else { // Insertar nuevo registro en inventario $insert_inventario = "INSERT INTO inventariousado (CODIGO, DESCRIPCION, CANTIDAD, ESTADO) VALUES ('$codigo', '$descripcion', $cantidad, 0)"; if (!$conexion->query($insert_inventario)) { throw new Exception("Error al insertar el elemento $codigo en inventario: " . $conexion->error); } } // 2. Insertar registro histórico en regInventario (siempre se inserta nuevo registro) $insert_registro = "INSERT INTO regUsado (CODIGO, DESCRIPCION, CANTIDAD, MOVIMIENTO, userEntrega, fechaIngreso) VALUES ('$codigo', '$descripcion', $cantidad, 'Entrada', '$userEntrega', NOW())"; if (!$conexion->query($insert_registro)) { throw new Exception("Error al insertar el elemento $codigo en regInventario: " . $conexion->error); } } // Confirmar transacción $conexion->commit(); // Limpiar sesión y redirigir unset($_SESSION['elementos_seleccionados']); $_SESSION['mensaje_exito'] = 'Inventario actualizado correctamente y registro histórico creado'; header("Location: ../../dotacion/MENUP.php"); exit(); } catch (Exception $e) { // Revertir transacción en caso de error $conexion->rollback(); $_SESSION['mensaje_error'] = $e->getMessage(); error_log("Error en transacción: " . $e->getMessage()); header("Location: VERNOEN.PHP"); exit(); } ?>