File "registroComputadores-20260419173817.php"

Full Path: C:/wamp64/www/RegistroEquipos2/backend/computador/registroComputadores-20260419173817.php
File size: 4.73 KB
MIME-type: text/x-php
Charset: utf-8

<?php
session_start();
header('Content-Type: application/json');

// Configuración de conexión a la base de datos
$host = '192.200.100.40';
$db = 'sistemas';
$user = 'SANMARINO';
$pass = 'sanmarino2021*';
$charset = 'utf8mb4';

try {
  $usuario = $_SESSION['DIGITA'] ?? 'Desconocido';
  // Conectar a la base de datos usando PDO
  $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
  $pdo = new PDO($dsn, $user, $pass, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  ]);

  // Obtener los datos del formulario
  $marca = $_POST['marca'] ?? '';
  $referencia = $_POST['referencia'] ?? '';
  $tipoEquipo = $_POST['tipo'] ?? '';
  $serial = $_POST['serial'] ?? '';
  $ram = $_POST['ram'] ?? '';
  $tipo = $_POST['tipo_dd'] ?? '';
  $procesador = $_POST['procesador'] ?? '';
  $area = $_POST['area_trabajo'] ?? '';
  $nombre = $_POST['nombreRecibe'] ?? '';
  $cedula = $_POST['cedula'] ?? '';
  $observaciones = $_POST['observaciones'] ?? '';
  $firmaBase64 = $_POST['firmaComputadores'] ?? '';
  
  $regional = $_POST['regional'] ?? '';
  $windows = $_POST['windows'] ?? '';
  $Idproducto = $_POST['Idproducto'] ?? '';
  $office = $_POST['office'] ?? '';
  $usuario1 = $_POST['usuario1'] ?? '';
  $contrasena = $_POST['contrasena'] ?? '';  
  $software = $_POST['software'] ?? '';
  $red = $_POST['red'] ?? '';
  $telefono = $_POST['telefono'] ?? '';
  $cargo = $_POST['cargo'] ?? '';  
  $id_inventario = $_POST['id_inventario'] ?? '';
  $imagenBase64 = $_POST['base64Computadores'] ?? '';
  // NUEVO: recibir la segunda imagen
  $imagenBase64_2 = $_POST['base64pc'] ?? '';

  // Validación básica
  if (!$marca || !$referencia || !$tipoEquipo || !$serial || !$ram || !$tipo || !$procesador || !$area || !$nombre || !$cedula || !$observaciones || !$regional || !$windows || !$Idproducto || !$office || !$usuario1 || !$contrasena || !$software || !$red) {
    echo json_encode([
      'status' => 'warning',
      'mensaje' => 'Por favor, completa los campos obligatorios.',
    ]);
    exit();
  }

  // Procesar firma
  $firmaTexto = null;
  if (strpos($firmaBase64, 'data:image/') === 0) {
    $firmaTexto = $firmaBase64;
  }

  // Procesar primera imagen
  $imagen_a_guardar = null;
  if ($imagenBase64 && strpos($imagenBase64, 'data:image/') === 0) {
      $imagen_a_guardar = $imagenBase64;
  }

  // NUEVO: procesar segunda imagen
  $imagen_a_guardar_2 = null;
  if ($imagenBase64_2 && strpos($imagenBase64_2, 'data:image/') === 0) {
      $imagen_a_guardar_2 = $imagenBase64_2;
  }

  // MODIFICADO: se añade la columna imagen_2 y su marcador :imagen2
  $sql = "INSERT INTO registroComputers 
            (fecha, marca, referencia, tipo, serial, ram, tipoDD, procesador, areaTrabajo, nombreRecibe, cedula, quienEntrega, observaciones, firma, estado, regional, windows, idproducto, office, usuario1, contrasena, software, red, telefono, cargo, id_inventario, imagen, imagen_2)
            VALUES (CURRENT_DATE(), :marca, :referencia, :tipo, :serial, :ram, :tipoDD, :procesador, :areaTrabajo, :nombreRecibe, :cedula, :quienEntrega, :observaciones, :firma, 'entregado', :regional, :windows, :idproducto, :office, :usuario1, :contrasena, :software, :red, :telefono, :cargo, :id_inventario, :imagen, :imagen2)";

  $stmt = $pdo->prepare($sql);
  $stmt->execute([
    ':marca' => $marca,
    ':referencia' => $referencia,
    ':tipo' => $tipoEquipo,
    ':serial' => $serial,
    ':ram' => $ram,
    ':tipoDD' => $tipo,
    ':procesador' => $procesador,
    ':areaTrabajo' => $area,
    ':nombreRecibe' => $nombre,
    ':cedula' => $cedula,
    ':quienEntrega' => $usuario,
    ':observaciones' => $observaciones,
    ':firma' => $firmaTexto,
    ':regional' => $regional,
    ':windows' => $windows,
    ':idproducto' => $Idproducto,
    ':office' => $office,
    ':usuario1' => $usuario1,
    ':contrasena' => $contrasena,
    ':software' => $software,
    ':red' => $red,
    ':telefono' => $telefono,
    ':cargo' => $cargo,
    ':id_inventario' => $id_inventario,
    ':imagen' => $imagen_a_guardar,
    ':imagen2' => $imagen_a_guardar_2, // NUEVO
  ]);

  $idRegistro = $pdo->lastInsertId();

  // Si se usó un equipo de inventario, actualizamos su estado y contador
  if ($id_inventario) {
    $sqlUpdateLinea = "UPDATE inventario_computadores SET estado_inventario = 'asignado', veces_asignado = veces_asignado + 1 WHERE id = :id";
    $stmtUpdateLinea = $pdo->prepare($sqlUpdateLinea);
    $stmtUpdateLinea->execute([':id' => $id_inventario]);
  }

  echo json_encode([
    'status' => 'success',
    'mensaje' => 'Registro Guardado.',
  ]);

} catch (PDOException $e) {
  echo json_encode([
    'status' => 'error',
    'mensaje' => 'Error en base de datos: ' . $e->getMessage(),
  ]);
} catch (Exception $e) {
  echo json_encode([
    'status' => 'error',
    'mensaje' => 'Error general: ' . $e->getMessage(),
  ]);
}
?>