Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
casos_medicos1
/
model
:
PacienteNuevo.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php require_once __DIR__ . '/conexion.php'; // Ruta correcta relativa al modelo class Paciente { private $conn; public function __construct() { // Instancia de la clase Conexion $db = new Conexion(); $this->conn = $db->getConexion(); } public function obtenerAFPs() { $r = $this->conn->query("SELECT id, nombre FROM afp ORDER BY nombre"); return $r ? $r->fetch_all(MYSQLI_ASSOC) : []; } public function obtenerEPS() { $r = $this->conn->query("SELECT id, nombre FROM eps ORDER BY nombre"); return $r ? $r->fetch_all(MYSQLI_ASSOC) : []; } public function obtenerARL() { $r = $this->conn->query("SELECT id, nombre FROM arl ORDER BY nombre"); return $r ? $r->fetch_all(MYSQLI_ASSOC) : []; } public function obtenerEmpresas() { $r = $this->conn->query("SELECT id, nombre FROM empresa ORDER BY nombre"); return $r ? $r->fetch_all(MYSQLI_ASSOC) : []; } public function obtenerPlantasPorEmpresa($empresaId) { $empresaId = intval($empresaId); $r = $this->conn->query("SELECT id, nombre FROM planta WHERE id_empresa = $empresaId ORDER BY nombre"); return $r ? $r->fetch_all(MYSQLI_ASSOC) : []; } public function obtenerEstados() { $r = $this->conn->query("SELECT id, nombre FROM estado ORDER BY nombre"); return $r ? $r->fetch_all(MYSQLI_ASSOC) : []; } public function guardarPaciente($data, $file) { // Sanitizar datos básicos $cedula = $this->conn->real_escape_string($data['cedula']); $nombre = $this->conn->real_escape_string($data['nombre']); $fecha_nac = $this->conn->real_escape_string($data['fecha_nacimiento']); $edad = intval($data['edad']); $tipo_contrato = $this->conn->real_escape_string($data['tipo_contrato']); // IDs $id_afp = intval($data['afp_id'] ?: 0); $id_eps = intval($data['eps_id'] ?: 0); $id_arl = intval($data['arl_id'] ?: 0); $id_empresa = intval($data['empresa_id'] ?: 0); $id_planta = intval($data['planta_id'] ?: 0); $id_estado = intval($data['estado_id'] ?: 0); // Otros $regional = $this->conn->real_escape_string($data['regional']); $centro_trabajo = $this->conn->real_escape_string($data['centro_trabajo']); $cargo_inicial = $this->conn->real_escape_string($data['cargo_inicial']); $fecha_inicio = $this->conn->real_escape_string($data['fecha_inicio']); $tipo_rehabilitacion = $this->conn->real_escape_string($data['tipo_rehabilitacion']); $cargo_reubicado = $this->conn->real_escape_string($data['cargo_reubicado']); $productividad = $data['productividad'] !== '' ? floatval($data['productividad']) : 'NULL'; $semanas_cotizacion = $data['semanas_cotizacion'] !== '' ? intval($data['semanas_cotizacion']) : 'NULL'; // Manejo de foto $foto_path = ''; if (!empty($file['foto']['name'])) { $uploads = __DIR__ . '/../uploads'; if (!is_dir($uploads)) mkdir($uploads, 0755, true); $name = time() . '_' . preg_replace('/[^a-zA-Z0-9._-]/', '_', basename($file['foto']['name'])); $destino = $uploads . '/' . $name; if (move_uploaded_file($file['foto']['tmp_name'], $destino)) { $foto_path = "uploads/$name"; } } // Revisar si existe la cédula $check = $this->conn->query("SELECT id, foto FROM hoja_vida WHERE cedula = '$cedula' LIMIT 1"); // Si existe → UPDATE if ($check->num_rows > 0) { $row = $check->fetch_assoc(); $foto_sql = !empty($foto_path) ? ", foto = '$foto_path'" : ""; $sql = " UPDATE hoja_vida SET nombre = '$nombre', fecha_nacimiento = '$fecha_nac', 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', tipo_rehabilitacion = '$tipo_rehabilitacion', cargo_reubicado = '$cargo_reubicado', productividad = $productividad, semanas_cotizacion = $semanas_cotizacion, id_estado = $id_estado $foto_sql WHERE cedula = '$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 ( '$cedula', '$nombre', " . (!empty($foto_path) ? "'$foto_path'" : "NULL") . ", '$fecha_nac', $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 ) "; } return $this->conn->query($sql); } }