diff --git a/controllers/graficosController.php b/controllers/graficosController.php
new file mode 100644
index 0000000..734b851
--- /dev/null
+++ b/controllers/graficosController.php
@@ -0,0 +1,59 @@
+ $cantidad]);
+ }
+
+?>
\ No newline at end of file
diff --git a/js/funcionesGraficos.js b/js/funcionesGraficos.js
index 1b7cc66..33138c4 100644
--- a/js/funcionesGraficos.js
+++ b/js/funcionesGraficos.js
@@ -1,6 +1,6 @@
async function recuperarCantidadGenero(tipoConsulta) {
try {
- const response = await fetch("../controllers/graficos.php", {
+ const response = await fetch("../controllers/graficosController.php", {
method: "POST",
headers: {
"Content-Type": "application/json",
@@ -18,7 +18,7 @@ async function recuperarCantidadGenero(tipoConsulta) {
async function recuperarCantidadEdad(tipoConsulta) {
try {
- const response = await fetch("../controllers/graficos.php", {
+ const response = await fetch("../controllers/graficosController.php", {
method: "POST",
headers: {
"Content-Type": "application/json",
@@ -36,7 +36,7 @@ async function recuperarCantidadEdad(tipoConsulta) {
async function recuperarCantidadEstado(tipoConsulta) {
try {
- const response = await fetch("../controllers/graficos.php", {
+ const response = await fetch("../controllers/graficosController.php", {
method: "POST",
headers: {
"Content-Type": "application/json",
@@ -59,7 +59,7 @@ async function recuperarCantidadEstado(tipoConsulta) {
async function recuperarCantidadExamen(tipoConsulta) {
try {
- const response = await fetch("../controllers/graficos.php", {
+ const response = await fetch("../controllers/graficosController.php", {
method: "POST",
headers: {
"Content-Type": "application/json",
@@ -80,29 +80,6 @@ async function recuperarCantidadExamen(tipoConsulta) {
}
}
-async function recuperarCantidadFecha(tipoConsulta) {
- try {
- const response = await fetch("../controllers/graficos.php", {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify({ tipoConsulta }),
- });
-
- const data = await response.json();
-
- if (!Array.isArray(data)) {
- throw new Error("La respuesta del backend no es un array.");
- }
-
- return data;
- } catch (error) {
- console.error("Error al recuperar datos de fechas:", error);
- return [];
- }
-}
-
async function obtenerDatosEdades() {
const edad1 = await recuperarCantidadEdad("Menor de 18 años");
@@ -161,24 +138,6 @@ async function obtenerDatosExamenes() {
}
}
-async function obtenerDatosFechas() {
- try {
- const fechas = await recuperarCantidadFecha("Fechas");
-
- if (!Array.isArray(fechas)) {
- console.error("Error: 'fechas' no es un array. Verifica la respuesta del backend");
- return [];
- }
-
- const fechasValidas = fechas.filter(fecha => fecha.fecha && fecha.cantidad !== undefined);
-
- return fechasValidas;
- } catch (error) {
- console.error("Error al obtener datos de fechas:", error);
- return [];
- }
-}
-
-export { obtenerDatosGeneros, obtenerDatosEdades, obtenerDatosEstados, obtenerDatosExamenes, obtenerDatosFechas };
\ No newline at end of file
+export { obtenerDatosGeneros, obtenerDatosEdades, obtenerDatosEstados, obtenerDatosExamenes };
\ No newline at end of file
diff --git a/js/inicio.js b/js/inicio.js
index 28a7d30..6f76de7 100644
--- a/js/inicio.js
+++ b/js/inicio.js
@@ -163,10 +163,10 @@ allProgress.forEach(item=> {
-import { obtenerDatosGeneros, obtenerDatosEdades, obtenerDatosEstados,obtenerDatosExamenes } from './funcionesGraficos.js';
+import { obtenerDatosGeneros, obtenerDatosEdades, obtenerDatosEstados,obtenerDatosExamenes } from '../js/funcionesGraficos.js';
async function inicializarGrafico() {
- const [femenino, masculino, noDefinido] = await obtenerDatosGeneros();
+ const [femenino, masculino, noDefinido] = await obtenerDatosGeneros("");
const options = {
series: [
@@ -353,88 +353,4 @@ async function inicializarGrafico4() {
}
-inicializarGrafico4();
-
-
-document.addEventListener('DOMContentLoaded', () => {
- const btnbuscar = document.getElementById('buscar');
- btnbuscar.addEventListener('click', async function () {
- const fechaInicioInput = document.getElementById('date1').value;
- const fechaFinInput = document.getElementById('date2').value;
-
- if (fechaInicioInput === "" || fechaFinInput === "") {
- alert("Por favor, ingrese ambas fechas.");
- return;
- }
-
- // Convertir las fechas al formato YYYY-MM-DD
- const fechaInicio = convertirFechaAFormatoISO(fechaInicioInput);
- const fechaFin = convertirFechaAFormatoISO(fechaFinInput);
-
- try {
- const response = await fetch('../controllers/graficos.php', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- tipoConsulta: 'Fechas',
- fechaInicio: fechaInicio,
- fechaFin: fechaFin,
- }),
- });
-
- const data = await response.json();
- console.log("Respuesta del servidor:", data);
-
- if (Array.isArray(data) && data.length > 0) {
- const seriesData = data.map(fecha => fecha.total);
- const categories = data.map((_, index) => `Registro ${index + 1}`);
-
- const options5 = {
- series: [{
- name: 'Cantidad de registros',
- data: seriesData,
- }],
- chart: {
- height: 350,
- type: 'bar',
- },
- plotOptions: {
- bar: {
- horizontal: false,
- columnWidth: '55%',
- borderRadius: 5,
- },
- },
- dataLabels: {
- enabled: false,
- },
- xaxis: {
- categories: categories,
- },
- tooltip: {
- y: {
- formatter: function (val) {
- return val + " registros";
- },
- },
- },
- };
-
- const chart5 = new ApexCharts(document.querySelector("#chart5"), options5);
- chart5.render();
- } else {
- alert("No se encontraron datos para las fechas seleccionadas.");
- }
- } catch (error) {
- console.error("Error al obtener los datos:", error);
- }
-});
-});
-
-// Función para convertir fechas al formato YYYY-MM-DD
-function convertirFechaAFormatoISO(fecha) {
- const partes = fecha.split('-'); // Suponiendo que el input usa el formato DD-MM-YYYY
- return `${partes[0]}-${partes[1]}-${partes[2]}`; // Retorna YYYY-MM-DD
-}
\ No newline at end of file
+inicializarGrafico4();
\ No newline at end of file
diff --git a/controllers/graficos.php b/models/GraficoModel.php
similarity index 57%
rename from controllers/graficos.php
rename to models/GraficoModel.php
index 69904b5..a2c12d3 100644
--- a/controllers/graficos.php
+++ b/models/GraficoModel.php
@@ -2,76 +2,16 @@
require_once '../config/Database.php';
-if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- $input = json_decode(file_get_contents('php://input'), true);
- $tipoConsulta = $input['tipoConsulta'] ?? '';
+class GraficoModel{
+ private $db;
- $graficos = new Graficos();
-
- switch ($tipoConsulta) {
- case 'Femenino':
- $cantidad = $graficos->obtenerGeneroFemenino();
- break;
- case 'Masculino':
- $cantidad = $graficos->obtenerGeneroMasculino();
- break;
- case 'Prefiero no decirlo':
- $cantidad = $graficos->obtenerGeneroNoDefinido();
- break;
- case 'Menor de 18 años':
- $cantidad = $graficos->obtenerEdadMenor18();
- break;
- case '18 a 24 años':
- $cantidad = $graficos->obtenerEdad1824();
- break;
- case '25 a 34 años':
- $cantidad = $graficos->obtenerEdad2434();
- break;
- case '35 a 44 años':
- $cantidad = $graficos->obtenerEdad3544();
- break;
- case '45 a 54 años':
- $cantidad = $graficos->obtenerEdad4554();
- break;
- case '55 a 64 años':
- $cantidad = $graficos->obtenerEdad5564();
- break;
- case '65 años o más':
- $cantidad = $graficos->obtenerEdad65oMas();
- break;
- case 'Estados':
- $cantidad = $graficos->obtenerEstados();
- echo json_encode($cantidad); // Devolver directamente el array de estados
- exit; // Terminar la ejecucion aqui
- case 'Examenes':
- $cantidad = $graficos->obtenerExamenes();
- echo json_encode($cantidad); // Devolver directamente el array de examenes
- exit; // Terminar la ejecucion aqui
- case 'Fechas':
- $fechaInicio = $input['fechaInicio'] ?? '';
- $fechaFin = $input['fechaFin'] ?? '';
- $cantidad = $graficos->obtenerFecha($fechaInicio, $fechaFin);
- echo json_encode($cantidad);
- exit;
- default:
- $cantidad = 0;
- }
-
- echo json_encode(['cantidad' => $cantidad]);
-}
-
-class Graficos{
- private $Database;
- protected $db;
-
- public function __construct() {
- $this->Database = new Database();
- $this->db = $this->Database->getInstance();
- }
+ public function __construct() {
+ $db = DataBase::getInstance();
+ }
- public function obtenerGeneroFemenino() {
- $query = $this->db->prepare("SELECT COUNT(*) AS Femenino FROM candidato WHERE id_genero = 2 ");
+ public static function obtenerGeneroFemenino() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS Femenino FROM candidato WHERE id_genero = 2 ");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -82,13 +22,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerGeneroMasculino() {
- $query = $this->db->prepare("SELECT COUNT(*) AS Maculino FROM candidato WHERE id_genero = 1 ");
+ public static function obtenerGeneroMasculino() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS Maculino FROM candidato WHERE id_genero = 1 ");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -99,13 +39,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerGeneroNoDefinido() {
- $query = $this->db->prepare("SELECT COUNT(*) AS NoDefinido FROM candidato WHERE id_genero = 3 ");
+ public static function obtenerGeneroNoDefinido() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS NoDefinido FROM candidato WHERE id_genero = 3 ");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -116,13 +56,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdadMenor18() {
- $query = $this->db->prepare("SELECT COUNT(*) AS menorEdad FROM candidato WHERE id_rango_edad = 1");
+ public static function obtenerEdadMenor18() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS menorEdad FROM candidato WHERE id_rango_edad = 1");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -133,13 +73,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdad1824() {
- $query = $this->db->prepare("SELECT COUNT(*) AS edad1824 FROM candidato WHERE id_rango_edad = 2");
+ public static function obtenerEdad1824() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS edad1824 FROM candidato WHERE id_rango_edad = 2");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -150,13 +90,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdad2434() {
- $query = $this->db->prepare("SELECT COUNT(*) AS edad2434 FROM candidato WHERE id_rango_edad = 3");
+ public static function obtenerEdad2434() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS edad2434 FROM candidato WHERE id_rango_edad = 3");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -167,13 +107,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdad3544() {
- $query = $this->db->prepare("SELECT COUNT(*) AS edad3544 FROM candidato WHERE id_rango_edad = 4");
+ public static function obtenerEdad3544() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS edad3544 FROM candidato WHERE id_rango_edad = 4");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -184,14 +124,14 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdad4554() {
- $query = $this->db->prepare("SELECT COUNT(*) AS edad4554 FROM candidato WHERE id_rango_edad = 5");
+ public static function obtenerEdad4554() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS edad4554 FROM candidato WHERE id_rango_edad = 5");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -202,14 +142,14 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdad5564() {
- $query = $this->db->prepare("SELECT COUNT(*) AS edad5564 FROM candidato WHERE id_rango_edad = 6");
+ public static function obtenerEdad5564() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS edad5564 FROM candidato WHERE id_rango_edad = 6");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -220,13 +160,13 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEdad65oMas() {
- $query = $this->db->prepare("SELECT COUNT(*) AS edad65oMas FROM candidato WHERE id_rango_edad = 7");
+ public static function obtenerEdad65oMas() {
+ $query = self::$db->prepare("SELECT COUNT(*) AS edad65oMas FROM candidato WHERE id_rango_edad = 7");
$query->execute();
$resultado = $query->get_result();
$output = "0";
@@ -237,14 +177,14 @@ class Graficos{
}
}
$query->close();
- $this->db->close();
+ self::$db->close();
return $output;
}
- public function obtenerEstados() {
+ public static function obtenerEstados() {
try {
- $query = $this->db->prepare("SELECT estados.nombre AS estado, COUNT(*) AS cantidad
+ $query = self::$db->prepare("SELECT estados.nombre AS estado, COUNT(*) AS cantidad
FROM estados
INNER JOIN info_candidatos ON info_candidatos.id_estado = estados.id
GROUP BY estados.nombre
@@ -268,9 +208,9 @@ class Graficos{
}
}
-public function obtenerExamenes() {
+public static function obtenerExamenes() {
try {
- $query = $this->db->prepare("SELECT nombre_examen AS examen , COUNT(*) AS cantidad
+ $query = self::$db->prepare("SELECT nombre_examen AS examen , COUNT(*) AS cantidad
FROM examen
INNER JOIN candidato ON candidato.id_examen = examen.id_examen
GROUP BY nombre_examen
@@ -295,9 +235,9 @@ public function obtenerExamenes() {
}
-public function obtenerFecha($fechaInicio, $fechaFin) {
+public static function obtenerFecha($fechaInicio, $fechaFin) {
try {
- $query = $this->db->prepare("SELECT COUNT(*) AS total
+ $query = self::$db->prepare("SELECT COUNT(*) AS total
FROM candidato
WHERE DATE(fecha_entrada) = ?
AND DATE(fecha_salida) = ?;
diff --git a/views/inicio.html b/views/inicio.html
index a26c1ba..f3d5fd5 100644
--- a/views/inicio.html
+++ b/views/inicio.html
@@ -230,7 +230,7 @@
-
-
+
+