File "examenModel.php"
Full Path: C:/wamp64/www/Seleccion/node_modules/function-bind/test/examenModel.php
File size: 2.97 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// models/Examen.php
class Examen {
private $conn;
private $table = 'examenes';
public function __construct($db) {
$this->conn = $db;
}
public function crear($datos) {
$query = "INSERT INTO " . $this->table . "
(candidato_id, examenes_medicos, poligrafo, contratado,
fecha_contratacion, observaciones, motivo_rechazo_examen)
VALUES
(:candidato_id, :examenes_medicos, :poligrafo, :contratado,
:fecha_contratacion, :observaciones, :motivo_rechazo_examen)";
$stmt = $this->conn->prepare($query);
foreach($datos as $key => $value) {
$stmt->bindValue(':' . $key, $value);
}
if($stmt->execute()) {
return $this->conn->lastInsertId();
}
return false;
}
public function obtenerPorCandidato($candidato_id) {
$query = "SELECT * FROM " . $this->table . " WHERE candidato_id = :candidato_id";
$stmt = $this->conn->prepare($query);
$stmt->bindValue(':candidato_id', $candidato_id);
$stmt->execute();
return $stmt->fetch();
}
public function actualizar($id, $datos) {
$query = "UPDATE " . $this->table . " SET
examenes_medicos = :examenes_medicos,
poligrafo = :poligrafo,
contratado = :contratado,
fecha_contratacion = :fecha_contratacion,
observaciones = :observaciones,
motivo_rechazo_examen = :motivo_rechazo_examen
WHERE id = :id";
$stmt = $this->conn->prepare($query);
foreach($datos as $key => $value) {
$stmt->bindValue(':' . $key, $value);
}
$stmt->bindValue(':id', $id);
return $stmt->execute();
}
public function obtenerContratados($filtros = []) {
$query = "SELECT e.*, c.cedula, c.nombres_apellidos, c.celular,
r.codigo as requisicion_codigo, r.nombre_cargo, r.area
FROM " . $this->table . " e
INNER JOIN candidatos c ON e.candidato_id = c.id
INNER JOIN requisiciones r ON c.requisicion_id = r.id
WHERE e.contratado = 'Si'";
if(!empty($filtros['fecha_desde'])) {
$query .= " AND e.fecha_contratacion >= :fecha_desde";
}
if(!empty($filtros['fecha_hasta'])) {
$query .= " AND e.fecha_contratacion <= :fecha_hasta";
}
$query .= " ORDER BY e.fecha_contratacion DESC";
$stmt = $this->conn->prepare($query);
if(!empty($filtros['fecha_desde'])) {
$stmt->bindValue(':fecha_desde', $filtros['fecha_desde']);
}
if(!empty($filtros['fecha_hasta'])) {
$stmt->bindValue(':fecha_hasta', $filtros['fecha_hasta']);
}
$stmt->execute();
return $stmt->fetchAll();
}
}
?>