' . $user['Usuario_claveULSA'] . '
' . $user['Carrera_desc'] . '
'; } $return['carreras'] = $carreras; $validando = SGI::validacionDatosAlumno($pdo, $_SESSION['usuario_id']); $return['validacion'] = $validando; if ($validando){ $datos = SGI::checkDatosAlumno($pdo, $_SESSION['usuario_id']); if(count($datos) == 0) $return['msg'] = ''; else { $return['msg'] = '
La actualización se encuentra en proceso de autorización con los siguientes datos:
' . $datos['Usuario_nombre_new'] . ' ' . $datos['Usuario_apellidos_new'] . '
CURP: ' . $datos['Usuario_curp_new'] . '
'; } } } break; case 2: //Update if(!SGI::actualizaDatosAlumno($pdo, filter_var($_POST['nombre'], FILTER_SANITIZE_STRING), filter_var($_POST['apellidos'], FILTER_SANITIZE_STRING), filter_var($_POST['curp'], FILTER_SANITIZE_STRING), $_SESSION['usuario_id'])) $return['error'] = 'No fue posible modificar tu información'; else $return['ok'] = 'Tus datos han sido envíados a validación
Aparecerá un signo , el cual desaparecerá una vez validada la información'; break; } break; case 2: //Semblanza switch ($_POST['accion']) { case 1: //Select $return['acerca'] = SGI::semblanzaAlumno($pdo, $_SESSION['usuario_id']); break; case 2: //Update if(SGI::actualizaSemblanzaAlumno($pdo, filter_var($_POST['acerca'], FILTER_SANITIZE_STRING), $_SESSION['usuario_id'])) $return['error'] = 'No fue posible actualizar tu semblanza'; else $return['ok'] = 'Se actualizó correctamente tu semblanza'; break; } break; case 3: //Redes switch ($_POST['accion']) { case 1: //Select $contactos = SGI::contactosAlumno($pdo, $_SESSION['usuario_id']); $emergencia = SGI::emergenciaAlumno($pdo, $_SESSION['usuario_id']); if(count($contactos) == 0 && count($emergencia) == 0){ $return['html'] = ''; } else { $redes = getRedes($pdo); $html = ''; foreach ($redes as $red){ $datos = ''; if ($red['TipoContacto_id'] == 0){ if (count($emergencia) > 0){ foreach ($emergencia as $emer){ $datos .= '
  • ' . $emer['ContactoEmergencia_nombre'] . '
  • '; } $html .= ''; } } else { if (!is_bool(array_search($red['TipoContacto_id'], array_column($contactos, 'TipoContacto_id')))) { $keys = array_keys(array_column($contactos, 'TipoContacto_id'), $red['TipoContacto_id']); $datos = ''; foreach ($keys as $key){ if ($red['TipoContacto_id'] == 2) { //Sólo Código Postal $datos .= '
  • '; } else { $datos .= '
  • '; if (!is_null($contactos[$key]['SubtipoContacto_desc'])) $datos .= $contactos[$key]['SubtipoContacto_desc'] . ' - '; $datos .= $contactos[$key]['PerfilContacto_desc'] . '
  • '; } } $html .= ''; } } } $return['html'] = $html; } break; case 2: //Add $agregado = false; $msg = ''; if ($_POST['red'] != 0) $agregado = SGI::agregaContacto($pdo, $_POST['red'], $_POST['dato'], $_POST['uso'], $_SESSION['usuario_id'], $_POST['subtipostatus'], $_POST['subtipo']); else { $existe = SGI::emergenciaAlumno($pdo, $_SESSION['usuario_id']); if (count($existe) == 0) $agregado = SGI::agregaContactoEmergencia($pdo, $_POST['dato'], filter_var($_POST['nombre'], FILTER_SANITIZE_STRING), $_SESSION['usuario_id']); else $msg = 'Únicamente puedes agregar un contacto de emergencia'; } if(!$agregado){ if (!empty ($msg)) $return['error'] = $msg; else $return['error'] = 'No fue posible agregar ' . $_POST['dato'] . ''; } else $return['ok'] = 'Se agregó correctamente ' . $_POST['dato'] . ''; break; case 3: //Sup $error = 0; foreach ($_POST['ids_redes'] as $red){ $red = filter_var($red, FILTER_SANITIZE_NUMBER_INT); if (intval($red) == 0){ if(!SGI::eliminaContactoEmergencia($pdo, $_SESSION['usuario_id'])) $error++; } else { if(!SGI::eliminaContacto($pdo, $_SESSION['usuario_id'], $red)) $error++; } } $total = count($_POST['ids_redes']); if ($error == 0) { if ($total == 1) $return['ok'] = 'Se eliminó de manera exitosa el dato o red'; else $return['ok'] = 'Se eliminaron de manera exitosa los ' . $total . ' datos y/o redes'; } else { if ($error == $total){ if ($error == 1) $return['error'] = 'No fue posible eliminar el dato o red'; else $return['error'] = 'No fue posible eliminar ningún dato o red'; } else { if ($error == 1) $return['error'] = 'No fue posible eliminar un dato o red'; else $return['error'] = 'No fue posible elimnar ' . $error . ' datos y/o redes'; } } break; case 4: //SubtiposContacto $_POST['tipo_contacto'] = filter_var($_POST['tipo_contacto'], FILTER_SANITIZE_NUMBER_INT); $subtipos = SGI::getSubTipoContacto($pdo, $_POST['tipo_contacto']); if(count($subtipos) == 0) $return['error'] = 'No fue posible obtener los subtipos de contacto'; else { $html = ''; foreach($subtipos as $subtipo){ $html .= '
  • ' . $subtipo['SubtipoContacto_desc'] . '
  • '; } $return['lista'] = $html; switch ($_POST['tipo_contacto']){ case 1: $return['titulo'] = 'Tipo de teléfono'; $return['msg'] = 'Elige el tipo de teléfono'; break; case 2: $return['titulo'] = 'País'; $return['msg'] = 'Elige el país del código postal'; break; default : $return['titulo'] = ''; $return['msg'] = ''; break; } } break; case 5: //Lista para eliminar $contactos = SGI::contactosAlumno($pdo, $_SESSION['usuario_id']); $emergencia = SGI::emergenciaAlumno($pdo, $_SESSION['usuario_id']); if(count($contactos) == 0 && count($emergencia) == 0){ $return['error'] = '
    No fue posible obtener los datos de contacto
    '; } else { $redes = getRedes($pdo); $html = ''; foreach ($redes as $red){ if ($red['TipoContacto_id'] == 0){ $datos = ''; foreach ($emergencia as $emer){ $datos .= '
  • ' . $emer['ContactoEmergencia_tel'] . ' (' . $emer['ContactoEmergencia_nombre'] . ')
  • '; } if (!empty($datos)){ $html .= '
    '; } } else { if (!is_bool(array_search($red['TipoContacto_id'], array_column($contactos, 'TipoContacto_id')))) { $keys = array_keys(array_column($contactos, 'TipoContacto_id'), $red['TipoContacto_id']); $datos = ''; foreach ($keys as $key){ if ($red['TipoContacto_id'] == 2) { //Sólo Código Postal $datos .= '
  • ' . $contactos[$key]['Contacto_valor'] . ', ' . $contactos[$key]['SubtipoContacto_desc'] . '
  • '; } else { $datos .= '
  • ' . $contactos[$key]['Contacto_valor'] . ' ('; if (!is_null($contactos[$key]['SubtipoContacto_desc'])) $datos .= $contactos[$key]['SubtipoContacto_desc'] . ' - '; $datos .= $contactos[$key]['PerfilContacto_desc'] . ')
  • '; } } if (!empty($datos)){ $html .= '
    '; } } } } if (!empty($html)) $html = '
    ' . $html . '
    '; $return['html'] = $html; } break; } break; case 4: //Intereses switch ($_POST['accion']) { case 1: //Select $stmt = $pdo->prepare('SELECT * FROM alu_fs_interes(:Usuario_id) ORDER BY "Interes_nombre"'); $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']); if(!$stmt->execute()){ print_r($stmt->errorInfo()); $return['error'] = 'No fue posible obtener la descripción del usuario'; } else { $intereses = $stmt->fetchAll(); $profesionales = ''; $personales = ''; foreach ($intereses as $interes){ if($interes['Interes_tipo']) $profesionales .= '
  • ' . $interes['Interes_nombre'] . '
  • '; else $personales .= '
  • ' . $interes['Interes_nombre'] . '
  • '; } $return['profesionales'] = $profesionales; $return['personales'] = $personales; } $stmt->closeCursor(); $stmt = null; break; case 2: //Add $_POST['interes'] = filter_var($_POST['interes'], FILTER_SANITIZE_STRING); $_POST['tipo_interes'] = filter_var($_POST['tipo_interes'], FILTER_SANITIZE_NUMBER_INT); $stmt = $pdo->prepare('SELECT * FROM alu_fi_interes(:Interes_tipo,:Interes,:Usuario_id)'); $stmt->bindParam(':Interes', $_POST['interes']); $stmt->bindParam(':Interes_tipo', $_POST['tipo_interes']); $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']); if(!$stmt->execute()){ print_r($stmt->errorInfo()); $return['error'] = 'No fue posible agregar el interés ' . $_POST['interes'] . ''; } else $return['ok'] = 'Se agregó correctamente el interés ' . $_POST['interes'] . ''; $stmt->closeCursor(); $stmt = null; break; case 3: //Sup $error = 0; foreach ($_POST['ids_intereses'] as $interes){ $interes = filter_var($interes, FILTER_SANITIZE_NUMBER_INT); $stmt = $pdo->prepare('SELECT * FROM alu_fd_interes(:Interes_id, :Usuario_id)'); $stmt->bindParam(':Interes_id', $interes); $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']); if(!$stmt->execute()){ print_r($stmt->errorInfo()); $error++; } $stmt->closeCursor(); $stmt = null; } $total = count($_POST['ids_intereses']); if ($error == 0) { if ($total == 1) $return['ok'] = 'Se eliminó de manera exitosa el interes'; else $return['ok'] = 'Se eliminaron de manera exitosa los ' . $total . ' intereses'; } else { if ($error == $total){ if ($error == 1) $return['error'] = 'No fue posible eliminar el interés'; else $return['error'] = 'No fue posible eliminar ningún interés'; } else { if ($error == 1) $return['error'] = 'No fue posible eliminar un interés'; else $return['error'] = 'No fue posible elimnar ' . $error . ' intereses'; } } break; } break; case 5: //Foto switch ($_POST['accion']) { case 1: //Select $foto = SGI::fotoAlumno($pdo, $_SESSION['usuario_id']); $es_admin = SGI::esAdministrativo($pdo, $_SESSION['usuario_id']); if (count($es_admin) == 0 || (isset($es_admin['estatus']) && $es_admin['estatus'] == 'BAJA')){ if (str_contains($foto, 'nico')) $return['foto'] = 'img/' . $foto; else $return['foto'] = 'archivos/alumnos/' . $idalumno . '/' . $foto; } else { if (str_contains($foto, 'nico')) $return['foto'] = 'img/' . $foto; else $return['foto'] = 'http://atenea.lci.ulsa.mx/img/fotos/'. $foto; } break; case 2: //Actualiza Foto $es_admin = SGI::esAdministrativo($pdo, $_SESSION['usuario_id']); if (count($es_admin) == 0 || (isset($es_admin['estatus']) && $es_admin['estatus'] == 'BAJA')){ $anterior = SGI::fotoAlumno($pdo, $_SESSION['usuario_id']); $cargada = true; $nombre = ''; if(!boolval($_POST['limpia'])) { $extension = substr($_FILES['archivo']['name'][0], strrpos($_FILES['archivo']['name'][0], '.')); $nombre = 'foto_' . $_SESSION['usuario_id'] . '_' . uniqid() . $extension; if (!Archivos::existeCapeta('archivos/alumnos/' . $_SESSION['usuario_id'])) Archivos::creaCarpeta('archivos/alumnos/' . $_SESSION['usuario_id']); if (!Archivos::agregaArchivo($_FILES['archivo']['tmp_name'][0], 'archivos/alumnos/' . $_SESSION['usuario_id'], $nombre)) $cargada = false; } if($cargada) { if ($anterior != SGI::$foto_pefil) Archivos::eliminaArchivo('', $anterior); if(boolval($_POST['limpia'])) $cargada = SGI::actualizaFotoAlumno($pdo, $_SESSION['usuario_id']); else $cargada = SGI::actualizaFotoAlumno($pdo, $_SESSION['usuario_id'], $nombre); if (!$cargada) $return['error'] = 'No fue posible actualizar la foto'; else $return['ok'] = 'Se cambió correctamente la foto'; } else $return['error'] = 'No fue posible subir la foto'; } else $return['error'] = 'Al ser colaborador de la facultad, tu foto deberás cambiarla en APSA'; break; } break; } } $return['json'] = json_encode($return); echo json_encode($return); function getRedes($pdo){ $redes = SGI::getRedes($pdo); if (count($redes) > 0){ array_push($redes, array('TipoContacto_id' => 0, 'TipoContacto_desc' => 'Contacto de Emergencia', 'TipoContacto_icono' => 'fa-solid fa-book-medical', 'SubtipoContacto' => false)); $temp = array(); $key = array_search(2, array_column($redes, 'TipoContacto_id')); $temp = $redes[$key]; unset($redes[$key]); array_unshift($redes, $temp); $key = array_search(3, array_column($redes, 'TipoContacto_id')); $temp = $redes[$key]; unset($redes[$key]); array_unshift($redes, $temp); $key = array_search(1, array_column($redes, 'TipoContacto_id')); $temp = $redes[$key]; unset($redes[$key]); array_unshift($redes, $temp); $key = array_search(0, array_column($redes, 'TipoContacto_id')); $temp = $redes[$key]; unset($redes[$key]); array_unshift($redes, $temp); } return $redes; }