File "guardar_paciente.php.bak"
Full Path: C:/wamp64/www/casos_medicos/pacientes/guardar_paciente.php.bak
File size: 7.25 KB
MIME-type: text/x-php
Charset: utf-8
<?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 y sanitizar campos
$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);
// IDs de maestras (permitir NULL)
$id_afp = isset($_POST['afp_id']) && $_POST['afp_id'] !== '' ? intval($_POST['afp_id']) : 'NULL';
$id_eps = isset($_POST['eps_id']) && $_POST['eps_id'] !== '' ? intval($_POST['eps_id']) : 'NULL';
$id_arl = isset($_POST['arl_id']) && $_POST['arl_id'] !== '' ? intval($_POST['arl_id']) : 'NULL';
$id_empresa = isset($_POST['empresa_id']) && $_POST['empresa_id'] !== '' ? intval($_POST['empresa_id']) : 'NULL';
$id_planta = isset($_POST['planta_id']) && $_POST['planta_id'] !== '' ? intval($_POST['planta_id']) : 'NULL';
$id_estado = isset($_POST['estado_id']) && $_POST['estado_id'] !== '' ? intval($_POST['estado_id']) : 'NULL';
// Otros campos de texto/numéricos
$tipo_contrato = $conn->real_escape_string($_POST['tipo_contrato'] ?? '');
$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 = is_numeric($_POST['productividad'] ?? null) ? $conn->real_escape_string($_POST['productividad']) : 'NULL';
$semanas_cotizacion = is_numeric($_POST['semanas_cotizacion'] ?? null) ? intval($_POST['semanas_cotizacion']) : 'NULL';
// Campos de contacto opcionales (si los tienes en la tabla)
$direccion = $conn->real_escape_string($_POST['direccion'] ?? '');
$telefono = $conn->real_escape_string($_POST['telefono'] ?? '');
$correo = $conn->real_escape_string($_POST['correo'] ?? '');
// Manejo de la 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)) {
// ruta relativa desde el proyecto (ajusta si tu app usa otra)
$foto_path = 'uploads/' . $safe_name;
// escapar para SQL cuando se use
$foto_path_sql = $conn->real_escape_string($foto_path);
} else {
$foto_path = '';
$foto_path_sql = "''";
}
} else {
$foto_path_sql = "NULL";
}
// Verificar existencia por cédula
$check = $conn->query("SELECT id FROM hoja_vida WHERE cedula = '".$conn->real_escape_string($cedula)."' LIMIT 1");
if ($check === false) {
echo "Error comprobando existencia: " . $conn->error;
exit;
}
// Preparar campos para construir SQL (manejo de NULLs)
$fecha_nac_sql = $fecha_nac !== '' ? "'".$conn->real_escape_string($fecha_nac)."'" : "NULL";
$fecha_inicio_sql = $fecha_inicio !== '' ? "'".$conn->real_escape_string($fecha_inicio)."'" : "NULL";
$productividad_sql = $productividad === 'NULL' ? "NULL" : $conn->real_escape_string($productividad);
$semanas_sql = $semanas_cotizacion === 'NULL' ? "NULL" : $semanas_cotizacion;
// Construir SQL de INSERT o UPDATE
if ($check->num_rows > 0) {
// UPDATE
$update_parts = [];
$update_parts[] = "nombre = '".$conn->real_escape_string($nombre)."'";
$update_parts[] = "fecha_nacimiento = $fecha_nac_sql";
$update_parts[] = "edad = ".intval($edad);
$update_parts[] = "id_afp = ".($id_afp === 'NULL' ? "NULL" : $id_afp);
$update_parts[] = "id_eps = ".($id_eps === 'NULL' ? "NULL" : $id_eps);
$update_parts[] = "id_arl = ".($id_arl === 'NULL' ? "NULL" : $id_arl);
$update_parts[] = "tipo_contrato = '".$conn->real_escape_string($tipo_contrato)."'";
$update_parts[] = "id_empresa = ".($id_empresa === 'NULL' ? "NULL" : $id_empresa);
$update_parts[] = "id_planta = ".($id_planta === 'NULL' ? "NULL" : $id_planta);
$update_parts[] = "regional = '".$conn->real_escape_string($regional)."'";
$update_parts[] = "centro_trabajo = '".$conn->real_escape_string($centro_trabajo)."'";
$update_parts[] = "cargo_inicial = '".$conn->real_escape_string($cargo_inicial)."'";
$update_parts[] = "fecha_inicio = $fecha_inicio_sql";
$update_parts[] = "tipo_rehabilitacion = '".$conn->real_escape_string($tipo_rehabilitacion)."'";
$update_parts[] = "cargo_reubicado = '".$conn->real_escape_string($cargo_reubicado)."'";
$update_parts[] = "productividad = ".($productividad_sql === "NULL" ? "NULL" : $productividad_sql);
$update_parts[] = "semanas_cotizacion = ".($semanas_sql === "NULL" ? "NULL" : $semanas_sql);
$update_parts[] = "id_estado = ".($id_estado === 'NULL' ? "NULL" : $id_estado);
if (!empty($foto_path)) {
$update_parts[] = "foto = '".$foto_path_sql."'";
}
$sql = "UPDATE hoja_vida SET " . implode(", ", $update_parts) . " WHERE cedula = '".$conn->real_escape_string($cedula)."'";
} 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 (
'".$conn->real_escape_string($cedula)."',
'".$conn->real_escape_string($nombre)."',
".(!empty($foto_path) ? "'".$foto_path_sql."'" : "NULL").",
$fecha_nac_sql,
".intval($edad).",
".($id_afp === 'NULL' ? "NULL" : $id_afp).",
".($id_eps === 'NULL' ? "NULL" : $id_eps).",
".($id_arl === 'NULL' ? "NULL" : $id_arl).",
'".$conn->real_escape_string($tipo_contrato)."',
".($id_empresa === 'NULL' ? "NULL" : $id_empresa).",
".($id_planta === 'NULL' ? "NULL" : $id_planta).",
'".$conn->real_escape_string($regional)."',
'".$conn->real_escape_string($centro_trabajo)."',
'".$conn->real_escape_string($cargo_inicial)."',
$fecha_inicio_sql,
'".$conn->real_escape_string($tipo_rehabilitacion)."',
'".$conn->real_escape_string($cargo_reubicado)."',
".($productividad_sql === "NULL" ? "NULL" : $productividad_sql).",
".($semanas_sql === "NULL" ? "NULL" : $semanas_sql).",
".($id_estado === 'NULL' ? "NULL" : $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>";
exit;
}
?>