modelo y controlador de registroCandidato

This commit is contained in:
victor.monge 2025-04-27 15:41:06 -06:00
parent d4ed9ee1e1
commit ad88d5e6e5
8 changed files with 218 additions and 10 deletions

View File

@ -173,4 +173,11 @@ INSERT INTO examen (id_examen, nombre_examen) VALUES
(15, 'Otros');
-- Depues de importar la bd de inegi
insert into paises(nombre) values('Otro');
insert into paises(nombre) values('Otro');
-- Insercion de un candidato de prueba:
INSERT INTO candidato (nombres, primer_apellido, segundo_apellido, correo, telefono, id_examen, id_tipo_id, id_rango_edad, id_genero) VALUES
('Juan', 'Pérez', 'Gómez', 'correo@gmail.com', '1234567890', 1, 1, 2, 1);
INSERT INTO info_candidatos (id_candidato, id_pais, id_estado, id_municipio, id_colonia, id_nivel, id_giro, nombre_empresa_institucion, motivo_examen, calificacion_servicio, consentimiento_pub) VALUES
(1, 1, 1, 1001, 10011, 5, 1, 'Empresa de Prueba', 'Motivo de prueba', 5, 1);

View File

@ -0,0 +1,72 @@
<?php
require_once __DIR__ . '/../models/Candidato.php';
class CandidatoController {
private static $candidatoModel = null;
public static function inicializar() {
if (self::$candidatoModel === null) {
self::$candidatoModel = new Candidato();
}
}
public static function regitrarCandidato() {
$nombres = $_POST['nombres'];
$primer_apellido = $_POST['primer_apellido'];
$segundo_apellido = $_POST['segundo_apellido'];
$correo = $_POST['correo'];
$telefono = $_POST['telefono'];
$id_examen = $_POST['id_examen'];
$id_tipo_id = $_POST['id_tipo_id'];
$id_rango_edad = $_POST['id_rango_edad'];
$id_genero = $_POST['id_genero'];
self::$candidatoModel->registrarCandidato(
$nombres,
$primer_apellido,
$segundo_apellido,
$correo,
$telefono,
$id_examen,
$id_tipo_id,
$id_rango_edad,
$id_genero
);
}
public static function registrarInfoCandidato() {
$id_candidato = $_POST['id_candidato'];
$id_pais = $_POST['id_pais'];
$id_estado = $_POST['id_estado'];
$id_municipio = $_POST['id_municipio'];
$id_colonia = $_POST['id_colonia'];
$id_nivel = $_POST['id_nivel'];
$id_giro = $_POST['id_giro'];
$nombre_empresa_institucion = $_POST['nombre_empresa_institucion'];
$motivo_examen = $_POST['motivo_examen'];
$calificacion_servicio = $_POST['calificacion_servicio'];
$consentimiento_pub = $_POST['consentimiento_pub'];
self::$candidatoModel->registrarInfoCandidatos(
$id_candidato,
$id_pais,
$id_estado,
$id_municipio,
$id_colonia,
$id_nivel,
$id_giro,
$nombre_empresa_institucion,
$motivo_examen,
$calificacion_servicio,
$consentimiento_pub
);
}
}
// Instanciar el modelo al cargar el controlador
CandidatoController::inicializar();
?>

View File

@ -0,0 +1,13 @@
<?php
require_once __DIR__ . '/CandidatoController.php';
// Manejar la solicitud POST para registrar un candidato
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Llamar al controlador de candidatos para registrar un nuevo candidato
CandidadatoController::registrarCandidato();
// Redirigir a la página de inicio después de registrar el candidato
header('Location: inicio.html');
}
?>

View File

@ -0,0 +1,14 @@
<?php
require_once __DIR__ . '/CandidatoController.php';
// Manejar la solicitud POST para registrar información de un candidato
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Llamar al controlador de candidatos para registrar un nuevo candidato
CandidadatoController::registrarInfoCandidato();
// Redirigir a la página de inicio después de registrar el candidato
header('Location: inicio.html');
}
?>

View File

@ -24,7 +24,7 @@ class Candidato {
* @param int $calificacion_servicio Calificación del servicio.
* @param int $consentimiento_pub Consentimiento para la publicación de datos.
*/
public function insertarInfoCandidatos(
public function registrarInfoCandidatos(
$id_candidato,
$id_pais,
$id_estado,
@ -65,7 +65,74 @@ class Candidato {
$stmt->close();
}
public function registrarCandidato(
$nombres,
$primer_apellido,
$segundo_apellido,
$correo,
$telefono,
$id_examen,
$id_tipo_id,
$id_rango_edad,
$id_genero
) {
$sql = "INSERT INTO candidato (nombres, primer_apellido, segundo_apellido, correo, telefono, id_examen, id_tipo_id, id_rango_edad, id_genero) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $this->conn->prepare($sql);
if ($stmt === false) {
throw new Exception("Error en la preparación de la consulta: " . $this->conn->error);
}
$stmt->bind_param(
"sssssiiii",
$nombres,
$primer_apellido,
$segundo_apellido,
$correo,
$telefono,
$id_examen,
$id_tipo_id,
$id_rango_edad,
$id_genero
);
if (!$stmt->execute()) {
throw new Exception("Error al insertar candidato: " . $stmt->error);
}
//$insertId = $stmt->insert_id;
$stmt->close();
//return $insertId;
}
public function obtenerCandidatoPorId($id_candidato) {
$sql = "SELECT * FROM candidato WHERE id_candidato = ?";
$stmt = $this->conn->prepare($sql);
if ($stmt === false) {
throw new Exception("Error en la preparación de la consulta: " . $this->conn->error);
}
$stmt->bind_param("i", $id_candidato);
if (!$stmt->execute()) {
throw new Exception("Error al ejecutar la consulta: " . $stmt->error);
}
$result = $stmt->get_result();
$candidato = $result->fetch_assoc();
$stmt->close();
return $candidato;
}
public function obtenerInfoCandidatoPorId($id_candidato) {
$sql = "SELECT * FROM info_candidatos WHERE id_candidato = ?";
$stmt = $this->conn->prepare($sql);
if ($stmt === false) {
throw new Exception("Error en la preparación de la consulta: " . $this->conn->error);
}
$stmt->bind_param("i", $id_candidato);
if (!$stmt->execute()) {
throw new Exception("Error al ejecutar la consulta: " . $stmt->error);
}
$result = $stmt->get_result();
$info = $result->fetch_assoc();
$stmt->close();
return $info;
}
}
?>

View File

@ -93,6 +93,34 @@ class Catalogos{
return $paises;
}
public function obtenerInfoCodigoPostal($codigoPostal) {
$sql = "
SELECT
e.nombre AS id_estado,
m.nombre AS id_municipio,
c.nombre AS id_colonia
FROM colonias c
JOIN municipios m ON c.municipio = m.id
JOIN estados e ON m.estado = e.id
WHERE c.codigo_postal = ?
";
$stmt = $this->conn->prepare($sql);
if ($stmt === false) {
throw new Exception("Error en la preparación de la consulta: " . $this->conn->error);
}
$stmt->bind_param("i", $codigoPostal);
if (!$stmt->execute()) {
throw new Exception("Error al ejecutar la consulta CP: " . $stmt->error);
}
$result = $stmt->get_result();
$info = [];
while ($row = $result->fetch_assoc()) {
$info[] = $row;
}
$stmt->close();
return $info;
}
}
?>

14
test.php Normal file
View File

@ -0,0 +1,14 @@
<?php
//require_once __DIR__ . "/controllers/usuarioController.php";
// UsuarioController::registrarUsuario("root", "root");
require_once __DIR__ . '/models/Catalogos.php';
$catalogoModel = new Catalogos();
$array = $catalogoModel->obtenerGeneros();
// Pintar arraycompleto en bruto de la variable $arrayInfoCodigoPostal
print_r($array);
?>

View File

@ -1,7 +0,0 @@
<?php
require_once __DIR__ . "/controllers/usuarioController.php";
// UsuarioController::registrarUsuario("root", "root");
?>