123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600 |
- <?php
- /*
- SUBTIPO
- * 1 - Revisores
- * 2 - Proyectos
- */
- require_once '../classes/Concurso.php';
- require_once '../classes/Etapa.php';
- require_once '../classes/Proyecto.php';
- require_once '../classes/Usuario.php';
- require_once '../classes/Asignacion.php';
- require_once '../include/bd_pdo.php';;
- if(!isset($_POST['tipo'])){
- $return['error'] = 'Error! No se recibieron los datos.';
- } else {
- if (!is_null($pdo)){
- switch ($_POST['tipo']){
- case 1: //Despliega resumen de asignaciones
- $asignaciones = Etapa::getAsignacionesXEtapa($pdo, $_POST['concurso'], $_POST['etapa']);
- if (count($asignaciones) > 0) {
- $temp = array_column($asignaciones, 'idusuario');
- $temp = array_unique($temp, SORT_NUMERIC);
- $usuarios = array();
- foreach ($temp as $user){
- array_push($usuarios, array('idusuario' => $user) + Usuario::getNombreUsuario($pdo, $user));
- }
- array_multisort(array_column($usuarios, 'apellidos'),SORT_ASC,$usuarios);
- $proyectos = array();
- $temp = array_column($asignaciones, 'idproyecto');
- $temp = array_unique($temp, SORT_NUMERIC);
- foreach ($temp as $proy){
- array_push($proyectos, array('idproyecto' => $proy) + Proyecto::getProyectoXID($pdo, $proy));
- }
- array_multisort(array_column($proyectos, 'clave'),SORT_ASC,$proyectos);
- $html = '';
- switch ($_POST['subtipo']){
- case 1:
- $tipo = '';
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- switch($etapa){
- case 'REVISION': $tipo = 'revisor'; break;
- case 'EVALUACION': $tipo = 'evaluador'; break;
- }
- $html = generaTabPrincipal($tipo, $usuarios, $proyectos, $asignaciones);
- break;
- case 2:
- $html = generaTabPrincipal('proyecto', $proyectos, $usuarios, $asignaciones);
- break;
- }
- $return['main'] = $html;
- } else
- $return['error'] = 'No fue posible obtener los datos';
- break;
- case 2: //Genera dropdownlist de usuarios/proyectos principales
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- $asignaciones = Etapa::getAsignacionesXEtapa($pdo, $_POST['concurso'], $_POST['etapa']);
- $categorias = Concurso::getCategoriasConcurso($pdo, $_POST['concurso']);
- switch($etapa){
- case 'REVISION':
- switch ($_POST['subtipo']){
- case 1:
- if (count($categorias) > 0){
- $niveles = array_column($categorias, 'nivel');
- $niveles = array_unique($niveles);
- $usuarios = Asignacion::getUsuariosAsignables($pdo, $niveles);
- $usuariosAsignados = array();
- if (count($asignaciones) > 0) {
- $temp = array_column($asignaciones, 'idusuario');
- $usuariosAsignados = array_unique($temp, SORT_NUMERIC);
- }
- foreach ($usuariosAsignados as $user){
- reset($usuarios);
- while ($temp = current($usuarios)){
- if ($temp['idusuario'] == $user){
- $index = key($usuarios);
- unset($usuarios[$index]);
- end($usuarios);
- next($usuarios);
- } else
- next($usuarios);
- }
- }
- if (count($usuarios) > 0){
- $html = '';
- foreach ($usuarios as $user){
- $nombre = mb_convert_case(mb_strtolower($user['apellidos'] . ' ' . $user['nombre']), MB_CASE_TITLE, "UTF-8");
- $html .= '<li data-id="' . $user['idusuario'] . '-' . $user['idinterno'] . '" data-nivel="' . $user['niveles'] . '">' . $nombre . '</li>';
- }
- $return['lista'] = $html;
- } else
- if (count($usuariosAsignados) > 0)
- $return['error'] = 'Todos los profesores tienen al menos un proyecto asignado.<br>Modifica en la sección editar.';
- else
- $return['error'] = 'No fue posible obtener a los revisores';
- } else
- $return['error'] = 'No fue posible obtener a los revisores';
- break;
- case 2:
- $proyectosAsignados = array();
- if (count($asignaciones) > 0) {
- $temp = array_column($asignaciones, 'idproyecto');
- $proyectosAsignados = array_unique($temp, SORT_NUMERIC);
- }
- $rol = Usuario::getIdRol($pdo, 'REVISOR');
- $proyectos = Proyecto::getProyectosAutorizados($pdo, $_POST['concurso'], 0, 'clave');
- foreach ($proyectosAsignados as $proy){
- reset($proyectos);
- while ($temp = current($proyectos)){
- if ($temp['idproyecto'] == $proy){
- $index = key($proyectos);
- unset($proyectos[$index]);
- end($proyectos);
- next($proyectos);
- } else
- next($proyectos);
- }
- }
- if (count($proyectos) > 0){
- $html = '';
- foreach ($proyectos as $proy){
- $nivel = 0;
- reset($categorias);
- while ($temp = current($categorias)){
- if ($temp['idcategoria'] == $proy['categoria']){
- $nivel = $temp['nivel'];
- end($categorias);
- next($categorias);
- } else
- next($categorias);
- }
- $html .= '<li data-id="' . $proy['idproyecto'] . '" data-nivel="' . $nivel . '"><b>' . $proy['clave'] . '</b> - ' . $proy['proyecto'] . '</li>';
- }
- $return['lista'] = $html;
- } else
- if (count($proyectosAsignados) > 0)
- $return['error'] = 'Todos los proyectos autorizados tienen al menos un revisor asignado.<br>Modifica en la sección editar.';
- else
- $return['error'] = 'No se han autorizado aún los proyectos';
- break;
- }
- break;
- case 'EVALUACION':
- switch ($_POST['subtipo']){
- case 1:
- if (count($categorias) > 0){
- $niveles = array_column($categorias, 'nivel');
- $niveles = array_unique($niveles);
- $usuarios = Asignacion::getUsuariosAsignables($pdo, $niveles);
- $usuariosAsignados = array();
- if (count($asignaciones) > 0) {
- $temp = array_column($asignaciones, 'idusuario');
- $usuariosAsignados = array_unique($temp, SORT_NUMERIC);
- }
- foreach ($usuariosAsignados as $user){
- reset($usuarios);
- while ($temp = current($usuarios)){
- if ($temp['idusuario'] == $user){
- $index = key($usuarios);
- unset($usuarios[$index]);
- end($usuarios);
- next($usuarios);
- } else
- next($usuarios);
- }
- }
- if (count($usuarios) > 0){
- $html = '';
- foreach ($usuarios as $user){
- $nombre = mb_convert_case(mb_strtolower($user['apellidos'] . ' ' . $user['nombre']), MB_CASE_TITLE, "UTF-8");
- $html .= '<li data-id="' . $user['idusuario'] . '-' . $user['idinterno'] . '" data-nivel="' . $user['niveles'] . '">' . $nombre . '</li>';
- }
- $return['lista'] = $html;
- } else
- if (count($usuariosAsignados) > 0)
- $return['error'] = 'Todos los profesores tienen al menos un proyecto asignado.<br>Modifica en la sección editar.';
- else
- $return['error'] = 'No fue posible obtener a los evaluadores';
- } else
- $return['error'] = 'No fue posible obtener a los evaluadores';
- break;
- case 2:
- $proyectosAsignados = array();
- if (count($asignaciones) > 0) {
- $temp = array_column($asignaciones, 'idproyecto');
- $proyectosAsignados = array_unique($temp, SORT_NUMERIC);
- }
- $rol = Usuario::getIdRol($pdo, 'REVISOR');
- $proyectos = Proyecto::getProyectosAutorizados($pdo, $_POST['concurso'], 0, 'clave');
- foreach ($proyectosAsignados as $proy){
- reset($proyectos);
- while ($temp = current($proyectos)){
- if ($temp['idproyecto'] == $proy){
- $index = key($proyectos);
- unset($proyectos[$index]);
- end($proyectos);
- next($proyectos);
- } else
- next($proyectos);
- }
- }
- if (count($proyectos) > 0){
- $html = '';
- foreach ($proyectos as $proy){
- $nivel = 0;
- reset($categorias);
- while ($temp = current($categorias)){
- if ($temp['idcategoria'] == $proy['categoria']){
- $nivel = $temp['nivel'];
- end($categorias);
- next($categorias);
- } else
- next($categorias);
- }
- $html .= '<li data-id="' . $proy['idproyecto'] . '" data-nivel="' . $nivel . '"><b>' . $proy['clave'] . '</b> - ' . $proy['proyecto'] . '</li>';
- }
- $return['lista'] = $html;
- } else
- if (count($proyectosAsignados) > 0)
- $return['error'] = 'Todos los proyectos autorizados tienen al menos un evaluador asignado.<br>Modifica en la sección editar.';
- else
- $return['error'] = 'No se han publicado aún los proyectos finalistas';
- break;
- }
- break;
- }
- break;
- case 3: //Genera lista de usuarios/proyectos secundarios
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- $niveles = explode(',',$_POST['nivel']);
- switch ($_POST['subtipo']){
- case 1:
- $html = generaProyectos($pdo, $_POST['concurso'], $etapa, $niveles);
- if (empty($html))
- $return['error'] = 'No hay proyectos disponibles a mostrar';
- else
- $return['elegibles'] = $html;
- break;
- case 2:
- $html = generaUsuarios($pdo, $niveles);
- if (empty($html))
- $return['error'] = 'No hay usuarios disponibles a mostrar';
- else
- $return['elegibles'] = $html;
- break;
- default :
- $return['error'] = 'No ahy información disponible a mostrar';
- }
- break;
- case 4: //Asignar proyectos-asesor/evaluador
- $elegidos = explode(',',$_POST['elegidos']);
- switch ($_POST['subtipo']){
- case 1:
- $cont = 0;
- $asignado = true;
- $ids = explode('-',$_POST['princ']);
- if ($ids[0] != 0){
- $usr = $ids[0];
- $puesto = Usuario::getPuestoXClave($pdo, 'COMITE');
- if (count($puesto) > 0){
- if (!Usuario::tienePuesto($pdo, $usr,$puesto['idpuesto']))
- Usuario::agregaUsuarioPuesto($pdo,$usr,$puesto['idpuesto']);
- }
- } else
- $usr = Asignacion::agregaUsuario($pdo, $ids[1], mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa'])), $_POST['concurso']);
- if ($usr != 0) {
- while ($cont < count($elegidos) && $asignado){
- $asignado = Asignacion::agregaAsignacion($pdo, $_POST['etapa'], $elegidos[$cont], $usr);
- $cont++;
- }
- if (!$asignado){
- foreach ($elegidos as $elegido){
- Asignacion::eliminaAsignacionXDatos($pdo, $_POST['etapa'], $elegido, $usr);
- }
- if (count($elegidos) == 1)
- $return['error'] = 'No fue posible asignarle a <span class="text-azul1">' . $_POST['texto'] . '</span> el proyecto';
- else
- $return['error'] = 'No fue posible asignarle a <span class="text-azul1">' . $_POST['texto'] . '</span> los proyectos';
- } else {
- if (count($elegidos) == 1)
- $return['asigna'] = 'Se asignó exitosamente el proyecto a <span class="text-azul1">' . $_POST['texto'] . '</span>';
- else
- $return['asigna'] = 'Se asignaron exitosamente los proyectos a <span class="text-azul1">' . $_POST['texto'] . '</span>';
- }
- } else
- $return['error'] = 'No fue posible asignarle a <span class="text-azul1">' . $_POST['texto'] . '</span> los proyectos';
- break;
- case 2:
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- $tipo = '';
- switch($etapa){
- case 'REVISION': $tipo = 'revisor'; break;
- case 'EVALUACION': $tipo = 'evaluador'; break;
- }
- $cont = 0;
- $asignado = true;
- $todos = true;
- while($ele = current($elegidos)){
- $ids = explode('-',$ele);
- $index = key($elegidos);
- if ($ids[0] != 0){
- $puesto = Usuario::getPuestoXClave($pdo, 'COMITE');
- if (count($puesto) > 0){
- if (!Usuario::tienePuesto($pdo, $ids[0],$puesto['idpuesto']))
- Usuario::agregaUsuarioPuesto($pdo,$ids[0],$puesto['idpuesto']);
- }
- $elegidos[$index] = $ids[0];
- } else {
- $usr = Asignacion::agregaUsuario($pdo, $ids[1], mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa'])), $_POST['concurso']);
- if ($usr == 0) {
- unset($elegidos[$index]);
- $todos = false;
- } else {
- $elegidos[$index] = $usr;
- }
- }
- next($elegidos);
- }
- while ($cont < count($elegidos) && $asignado){
- $asignado = Asignacion::agregaAsignacion($pdo, $_POST['etapa'], $_POST['princ'], $elegidos[$cont]);
- $cont++;
- }
- if (!$asignado){
- foreach ($elegidos as $elegido){
- Asignacion::eliminaAsignacionXDatos($pdo, $_POST['etapa'], $_POST['princ'], $elegido);
- }
- if (count($elegidos) == 1)
- $return['error'] = 'No fue posible asignarle un ' . $tipo . ' al proyecto <span class="text-azul1">' . $_POST['texto'] . '</span>';
- else
- $return['error'] = 'No fue posible asignarle ' . $tipo . 'es al proyecto <span class="text-azul1">' . $_POST['texto'] . '</span>';
- } else {
- if (count($elegidos) == 1)
- if ($todos)
- $return['asigna'] = 'Se asignó exitosamente el ' . $tipo . ' al proyecto <span class="text-azul1">' . $_POST['texto'] . '</span>';
- else
- $return['error'] = 'No fue posible asignarle un ' . $tipo . ' al proyecto <span class="text-azul1">' . $_POST['texto'] . '</span>';
- else
- if ($todos)
- $return['asigna'] = 'Se asignaron exitosamente los ' . $tipo . 'es al proyecto <span class="text-azul1">' . $_POST['texto'] . '</span>';
- else
- $return['asigna'] = 'Se asignaron algunos de los ' . $tipo . 'es al proyecto <span class="text-azul1">' . $_POST['texto'] . '.<br>No fue posible asignarlos a todos.</span>';
- }
- break;
- }
-
- break;
- case 5: //Edita una asignación
- break;
- case 6: //Eliminar asignación
- $elegidos = explode(',',$_POST['elegidos']);
- $noBorrar = array();
- $asignacionesTotales = 0;
- foreach ($elegidos as $elegido) {
- $asignaciones = Asignacion::getAsignaciones($pdo, $_POST['subtipo'], $elegido, $_POST['etapa'], $_POST['concurso']);
- foreach($asignaciones as $asignado){
- if (Asignacion::tieneEvaluaciones($pdo, $asignado['idasignacion'])){
- array_push($noBorrar,array('enuso'=>$asignado['idasignacion'], 'elegido' => $elegido));
- } else
- if (!Asignacion::eliminaAsignacion ($pdo, $asignado['idasignacion']))
- array_push($noBorrar,array('enuso'=>$asignado['idasignacion'], 'elegido' => $elegido));
- $asignacionesTotales++;
- }
- }
- if (count($noBorrar) == 0){
- switch($_POST['subtipo']){
- case 1:
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- $tipo = '';
- switch($etapa){
- case 'REVISION': $tipo = 'revisor'; break;
- case 'EVALUACION': $tipo = 'evaluador'; break;
- }
- if (count($elegidos) == 1)
- $return['eliminados'] = 'Se borraron las asignaciones del ' . $tipo;
- else
- $return['eliminados'] = 'Se borraron las asignaciones de todos los ' . $tipo . 'es seleccionados';
- break;
- case 2:
- if (count($elegidos) == 1)
- $return['eliminados'] = 'Se borraron las asignaciones del proyecto';
- else
- $return['eliminados'] = 'Se borraron las asignaciones de todos los proyectos seleccionados';
- break;
- }
- } else {
- if (count($noBorrar) < $asignacionesTotales){
- switch($_POST['subtipo']){
- case 1:
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- $tipo = '';
- switch($etapa){
- case 'REVISION': $tipo = 'revisor'; break;
- case 'EVALUACION': $tipo = 'evaluador'; break;
- }
- if (count($elegidos) == 1)
- $return['faltan'] = 'No fue posible eliminar todas las asignaciones del ' . $tipo;
- else
- $return['faltan'] = 'No fue posible eliminar todas las asignaciones de todos los ' . $tipo . 'es seleccionados';
- break;
- case 2:
- if (count($elegidos) == 1)
- $return['faltan'] = 'No fue posible eliminar todas las asignaciones del proyecto';
- else
- $return['faltan'] = 'No fue posible eliminar todas las asignaciones de todos los proyectos seleccionados';
- break;
- }
- } else {
- switch($_POST['subtipo']){
- case 1:
- $etapa = mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']));
- $tipo = '';
- switch($etapa){
- case 'REVISION': $tipo = 'revisor'; break;
- case 'EVALUACION': $tipo = 'evaluador'; break;
- }
- if (count($elegidos) == 1)
- $return['error'] = 'No fue posible eliminar ninguna asignación del ' . $tipo;
- else
- $return['error'] = 'No fue posible eliminar ninguna asignación de los ' . $tipo . 'es seleccionados';
- break;
- case 2:
- if (count($elegidos) == 1)
- $return['error'] = 'No fue posible eliminar ninguna asignación del proyecto';
- else
- $return['error'] = 'No fue posible eliminar ninguna asignación de los proyectos seleccionados';
- break;
- }
- }
- }
- break;
- }
- } else
- $return['error'] = 'No fue posible obtener los datos';
- }
- $return['json'] = json_encode($return);
- echo json_encode($return);
-
- function generaTabPrincipal($tab, $principal, $secundario, $datos){
- $html = '';
- $html = '<div class="accordion" id="acordeon' . ucfirst($tab) . '">
- <div class="row w-100 justify-content-between align-items-start">';
- $cont = 1;
- foreach ($principal as $princ){
- $lista = '';
- $id = 0;
- switch (mb_strtoupper($tab)){
- case 'REVISOR':
- case 'EVALUADOR':
- $textoPrinc = mb_convert_case(mb_strtolower($princ['apellidos'] . ' ' . $princ['nombre']), MB_CASE_TITLE, "UTF-8");
- $respuesta = array_filter($datos, function($arreglo) use($princ) {
- return $arreglo['idusuario'] == $princ['idusuario'];
- });
- foreach ($respuesta as $resp){
- $temp = array_filter($secundario, function($arreglo) use($resp) {
- return $arreglo['idproyecto'] == $resp['idproyecto'];
- });
- $temp2 = current($temp);
- $lista .= '<div class="lista">' . $temp2['clave'] . ' - ' . $temp2['proyecto'] . '</div>';
- }
- $id = $princ['idusuario'];
- break;
- case 'PROYECTO':
- $textoPrinc = $princ['clave'] . ' - ' . $princ['proyecto'];
- $respuesta = array_filter($datos, function($arreglo) use($princ) {
- return $arreglo['idproyecto'] == $princ['idproyecto'];
- });
- foreach ($respuesta as $resp){
- $temp = array_filter($secundario, function($arreglo) use($resp) {
- return $arreglo['idusuario'] == $resp['idusuario'];
- });
- $temp2 = current($temp);
- $lista .= '<div class="lista">' . mb_convert_case(mb_strtolower($temp2['apellidos'] . ' ' . $temp2['nombre']), MB_CASE_TITLE, "UTF-8") . '</div>';
- }
- $id = $princ['idproyecto'];
- break;
- }
- $html .= '<div class="col-sm-6">
- <div class="titulo">
- <div class=" d-flex flex-column justify-content-between position-relative p-2" id="titulo' . ucfirst($tab) . $cont . '" data-id="' . $id . '">
- <span class="ing-cancelar text-danger position-absolute elimIcon"></span>
- <span class="ing-editar text-primary position-absolute editIcon"></span>
- <div class="dato">' . $textoPrinc . '</div>
- <div class="detalle"><span data-toggle="collapse" data-target="#texto' . ucfirst($tab) . $cont . '" class="small rounded ver btn-extra py-1 px-2"><span class="ing-ojo mr-1"></span><span class="msg">Ver Detalle</span></span></div>
- </div>
- <div id="texto' . ucfirst($tab) . $cont . '" class="collapse texto bg-light py-2 px-4" aria-labelledby="titulo' . ucfirst($tab) . $cont . '" data-parent="#acordeon' . ucfirst($tab) . '">'. $lista . '</div>
- </div>
- </div>';
- $cont++;
- }
- $html .= '</div>
- </div>';
- return $html;
- }
- function generaProyectos($pdo, $concurso, $etapa, $niveles){
- $html = '';
- $categorias = array();
- $tempCategorias = Concurso::getCategoriasConcurso($pdo, $concurso);
- foreach ($tempCategorias as $temp){
- reset($niveles);
- while ($nivel = current($niveles)){
- if ($temp['nivel'] == $nivel){
- array_push($categorias, $temp);
- end($niveles);
- next($niveles);
- } else
- next($niveles);
- }
- }
- if (count($categorias) > 0){
- $despliega = '';
- if (count($categorias) < 3)
- $despliega = 'd-flex flex-row';
- else
- $despliega = 'card-columns';
- $html = '<div class="' . $despliega . ' categorias">';
- foreach ($categorias as $categoria){
- switch($etapa){
- case 'REVISION':
- $proyectos = Proyecto::getProyectosAutorizados($pdo, $concurso, $categoria['idcategoria'], 'clave');
- break;
- case 'EVALUACION':
- $proyectos = Proyecto::getProyectosFinalistas($pdo, $concurso, $categoria['idcategoria'], 'clave');
- break;
- }
- $html .= '<div class="card">
- <div class="my-3 titulo p-2 text-center">' . $categoria['categoria'] . '</div>
- <div>';
- if (count($proyectos) > 0){
- foreach ($proyectos as $proyecto) {
- $html .= '<div class="renglon d-flex flex-row justify-content-start align-items-start my-2">
- <div class="text-center mr-2 mt-1">
- <input type="checkbox" id="op' . $proyecto['idproyecto'] . '" name="op' . $proyecto['idproyecto'] . '" value="' . $proyecto['idproyecto'] . '"/>
- <label for="op' . $proyecto['idproyecto'] . '" class="ing-revision-cartel final"></label>
- </div>
- <div class="flex-fill text-primary"><b>' . $proyecto['clave'] . '</b> - ' . $proyecto['proyecto'] . '</div>
- </div>';
- }
- } else
- $html .= '<div class="display-6 text-secondary text-center">No hay ningún proyecto aprobado</div>';
- $html .= '</div>
- </div>';
- }
- $html .= '</div>';
- } else
- $html = '';
- return $html;
- }
- function generaUsuarios($pdo, $niveles){
- $html = '';
- $usuarios = Asignacion::getUsuariosAsignables($pdo, $niveles);
- if (count($usuarios) > 0) {
- $colClass='';
- $num = count($usuarios);
- switch ($num){
- case $num <= 5:
- $numCol = $num;
- $colClass = 'col-sm-12';
- break;
- case $num > 5 && $num <= 10:
- $numCol = ceil(count($usuarios) / 2);
- $colClass = 'col-sm-6';
- break;
- case $num > 10:
- $numCol = ceil(count($usuarios) / 3);
- $colClass = 'col-sm-4';
- break;
- }
- $cont = 1;
- $cambiaColumna = true;
- $html = '<div class="row">';
- foreach ($usuarios as $usuario){
- if($cambiaColumna){
- $html .= '<div class="' . $colClass . '">';
- $cambiaColumna = false;
- }
- $nombre = mb_convert_case(mb_strtolower($usuario['apellidos'] . ' ' . $usuario['nombre']), MB_CASE_TITLE, "UTF-8");
- $html .= '<div class="renglon d-flex flex-row justify-content-start align-items-center my-2">
- <div class="text-center mr-2 mt-1">
- <input type="checkbox" id="op' . $usuario['idusuario'] . '-' . $usuario['idinterno'] . '" name="op' . $usuario['idusuario'] . '-' . $usuario['idinterno'] . '" value="' . $usuario['idusuario'] . '-' . $usuario['idinterno'] . '"/>
- <label for="op' . $usuario['idusuario'] . '-' . $usuario['idinterno'] . '" class="ing-revision-cartel final"></label>
- </div>
- <div class="flex-fill text-primary">' . $nombre . '</div>
- </div>';
- $cont++;
- if ($cont > $numCol){
- $cambiaColumna = true;
- $cont = 1;
- }
- if($cambiaColumna)
- $html .= '</div>';
- }
- if(!$cambiaColumna)
- $html .= '</div>';
- $html .= '</div>';
- } else
- $html = '';
- return $html;
- }
|