TURNOS
para desarrollar la aplicación con la funcionalidad de equilibrar la asignación de tipos de solicitud entre jueces, podríamos agregar una lógica que determine cuál juez tiene menos solicitudes de cada tipo y sugerirlo para la siguiente asignación. A continuación, incluyo el código ajustado que muestra tanto el reporte actual como la sugerencia de juez para el próximo turno de cada tipo de solicitud.
<?php
require_once "models/conexion.php";
$pdo = Conexion::conectar();
// Consulta para obtener el total de solicitudes por juez y tipo de solicitud
$query = "SELECT tipo_solicitud, juez, COUNT(*) AS total_solicitudes
FROM carpetas
GROUP BY tipo_solicitud, juez
ORDER BY tipo_solicitud, juez";
$stmt = $pdo->prepare($query);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Organizar los datos para la tabla
$data = [];
$minJuez = [];
foreach ($results as $row) {
$tipoSolicitud = $row['tipo_solicitud'];
$juez = $row['juez'];
$total = $row['total_solicitudes'];
// Crear arreglo de datos por tipo de solicitud y juez
$data[$tipoSolicitud][$juez] = $total;
// Identificar el juez con menos solicitudes para cada tipo de solicitud
if (!isset($minJuez[$tipoSolicitud]) || $total < $minJuez[$tipoSolicitud]['total']) {
$minJuez[$tipoSolicitud] = ['juez' => $juez, 'total' => $total];
}
}
// Obtener lista de jueces
$jueces = array_keys(array_reduce($results, function ($carry, $item) {
$carry[$item['juez']] = true;
return $carry;
}, []));
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Reporte de Solicitudes por Juez</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h2 class="mb-4">Reporte de Solicitudes por Juez y Tipo de Solicitud</h2>
<table class="table table-bordered">
<thead>
<tr>
<th>Tipo de Solicitud</th>
<?php foreach ($jueces as $juez): ?>
<th><?php echo htmlspecialchars($juez); ?></th>
<?php endforeach; ?>
<th>Sugerencia de Turno</th>
</tr>
</thead>
<tbody>
<?php foreach ($data as $tipo_solicitud => $solicitudes): ?>
<tr>
<td><?php echo htmlspecialchars($tipo_solicitud); ?></td>
<?php foreach ($jueces as $juez): ?>
<td><?php echo isset($solicitudes[$juez]) ? $solicitudes[$juez] : 0; ?></td>
<?php endforeach; ?>
<!-- Columna para sugerir el juez al que debe asignarse la próxima solicitud de este tipo -->
<td>
<?php
$sugerencia = $minJuez[$tipo_solicitud]['juez'];
echo "Sugerido: " . htmlspecialchars($sugerencia);
?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</body>
</html>
Comentarios
Publicar un comentario