<?php include("../conexion.php"); session_start(); if(!isset($_SESSION['usuario'])) header('Location: ../login.php'); if ($_SERVER['REQUEST_METHOD'] !== 'POST') { echo 'Método no permitido.'; exit; } // Recoger campos básicos $cedula = $conn->real_escape_string($_POST['cedula'] ?? ''); $nombre = $conn->real_escape_string($_POST['nombre'] ?? ''); $fecha_nac = $conn->real_escape_string($_POST['fecha_nacimiento'] ?? null); $edad = intval($_POST['edad'] ?? 0); $tipo_contrato = $conn->real_escape_string($_POST['tipo_contrato'] ?? ''); // IDs — acepta ambos formatos (id_afp o afp_id) function pick_id($conn, $key1, $key2) { if(isset($_POST[$key1]) && $_POST[$key1] !== '') return intval($_POST[$key1]); if(isset($_POST[$key2]) && $_POST[$key2] !== '') return intval($_POST[$key2]); return 'NULL'; } $id_afp = pick_id($conn, 'id_afp', 'afp_id'); $id_eps = pick_id($conn, 'id_eps', 'eps_id'); $id_arl = pick_id($conn, 'id_arl', 'arl_id'); $id_empresa = pick_id($conn, 'id_empresa', 'empresa_id'); $id_planta = pick_id($conn, 'id_planta', 'planta_id'); $id_estado = pick_id($conn, 'id_estado', 'estado_id'); // Otros campos $regional = $conn->real_escape_string($_POST['regional'] ?? ''); $centro_trabajo = $conn->real_escape_string($_POST['centro_trabajo'] ?? ''); $cargo_inicial = $conn->real_escape_string($_POST['cargo_inicial'] ?? ''); $fecha_inicio = $conn->real_escape_string($_POST['fecha_inicio'] ?? null); $tipo_rehabilitacion = $conn->real_escape_string($_POST['tipo_rehabilitacion'] ?? ''); $cargo_reubicado = $conn->real_escape_string($_POST['cargo_reubicado'] ?? ''); $productividad = $_POST['productividad'] !== '' ? floatval($_POST['productividad']) : 'NULL'; $semanas_cotizacion = $_POST['semanas_cotizacion'] !== '' ? intval($_POST['semanas_cotizacion']) : 'NULL'; // Manejo de foto $foto_path = ''; if (!empty($_FILES['foto']['name'])) { $uploads_dir = __DIR__ . '/../uploads'; if (!is_dir($uploads_dir)) mkdir($uploads_dir, 0755, true); $original = basename($_FILES['foto']['name']); $safe_name = time() . '_' . preg_replace('/[^a-zA-Z0-9._-]/', '_', $original); $target = $uploads_dir . '/' . $safe_name; if (move_uploaded_file($_FILES['foto']['tmp_name'], $target)) { $foto_path = 'uploads/' . $safe_name; } } // Escapado de fechas $fecha_nac_sql = !empty($fecha_nac) ? "'$fecha_nac'" : "NULL"; $fecha_inicio_sql = !empty($fecha_inicio) ? "'$fecha_inicio'" : "NULL"; // Verificar si ya existe la cédula $check = $conn->query("SELECT id FROM hoja_vida WHERE cedula = '$cedula' LIMIT 1"); if (!$check) { echo "Error verificando existencia: " . $conn->error; exit; } if ($check->num_rows > 0) { // UPDATE $update = " UPDATE hoja_vida SET nombre = '$nombre', fecha_nacimiento = $fecha_nac_sql, edad = $edad, id_afp = $id_afp, id_eps = $id_eps, id_arl = $id_arl, tipo_contrato = '$tipo_contrato', id_empresa = $id_empresa, id_planta = $id_planta, regional = '$regional', centro_trabajo = '$centro_trabajo', cargo_inicial = '$cargo_inicial', fecha_inicio = $fecha_inicio_sql, tipo_rehabilitacion = '$tipo_rehabilitacion', cargo_reubicado = '$cargo_reubicado', productividad = $productividad, semanas_cotizacion = $semanas_cotizacion, id_estado = $id_estado " . (!empty($foto_path) ? ", foto = '$foto_path'" : "") . " WHERE cedula = '$cedula' "; $sql = $update; } else { // INSERT $sql = " INSERT INTO hoja_vida ( cedula, nombre, foto, fecha_nacimiento, edad, id_afp, id_eps, id_arl, tipo_contrato, id_empresa, id_planta, regional, centro_trabajo, cargo_inicial, fecha_inicio, tipo_rehabilitacion, cargo_reubicado, productividad, semanas_cotizacion, id_estado ) VALUES ( '$cedula', '$nombre', " . (!empty($foto_path) ? "'$foto_path'" : "NULL") . ", $fecha_nac_sql, $edad, $id_afp, $id_eps, $id_arl, '$tipo_contrato', $id_empresa, $id_planta, '$regional', '$centro_trabajo', '$cargo_inicial', $fecha_inicio_sql, '$tipo_rehabilitacion', '$cargo_reubicado', $productividad, $semanas_cotizacion, $id_estado ) "; } // Ejecutar SQL if ($conn->query($sql)) { header("Location: ../ver_paciente.php?cedula=" . urlencode($cedula)); exit; } else { echo "<h3>Error al guardar:</h3><pre>" . htmlspecialchars($conn->error) . "</pre>"; echo "<h4>SQL ejecutado:</h4><pre>" . htmlspecialchars($sql) . "</pre>"; } ?>