SGI.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. <?php
  2. class SGI {
  3. private static $sistema = 8;
  4. public static $foto_pefil = 'nico.jpg';
  5. /********* GENERALES **********/
  6. public static function periodoValido($pdo, $idnivel){
  7. $periodo = array();
  8. try {
  9. $stmt = $pdo->prepare('SELECT "Periodo_id", "Periodo_desc" from fs_periodo(null, 1, :nivel,null) WHERE "Periodo_calendario_activo" IS TRUE');
  10. $stmt->bindParam(':nivel', $idnivel);
  11. if(!$stmt->execute())
  12. print_r($stmt->errorInfo());
  13. else
  14. $periodo = $stmt->fetch();
  15. } catch (\PDOException $ex) {}
  16. $stmt->closeCursor();
  17. $stmt = null;
  18. return $periodo;
  19. }
  20. public static function claveEsSuperAdmin($pdo, $clave){
  21. $admin = false;
  22. try {
  23. $stmt = $pdo->prepare('SELECT * FROM fs_usuario_administradorxclave(:clave)');
  24. $stmt->bindParam(':clave', $clave);
  25. if($stmt->execute()){
  26. $temp = $stmt->fetch();
  27. if (is_bool($temp))
  28. $admin = $temp;
  29. else
  30. $admin = boolval($temp['SGI_administrador']);
  31. }
  32. } catch (\PDOException $ex) {}
  33. $stmt->closeCursor();
  34. $stmt = null;
  35. return $admin;
  36. }
  37. public static function esAdministrativo($pdo, $id){
  38. $admin = array();
  39. try {
  40. $stmt = $pdo->prepare('SELECT UPPER("UsuarioEstado_desc") AS "estatus" FROM fs_usuario(:id)');
  41. $stmt->bindParam(':id', $id);
  42. if($stmt->execute()){
  43. $temp = $stmt->fetch();
  44. if (!is_bool($temp))
  45. $admin = $temp;
  46. }
  47. } catch (\PDOException $ex) {}
  48. $stmt->closeCursor();
  49. $stmt = null;
  50. return $admin;
  51. }
  52. public static function usuarioTieneAcceso($pdo, $id){
  53. $admin = false;
  54. try {
  55. $stmt = $pdo->prepare('SELECT * FROM fs_validasistema(:id, :sistema)');
  56. $stmt->bindParam(':id', $id);
  57. $stmt->bindParam(':sistema', self::$sistema);
  58. if($stmt->execute()){
  59. $temp = $stmt->fetch();
  60. if (is_bool($temp))
  61. $admin = $temp;
  62. else
  63. $admin = boolval($temp['permiso']);
  64. }
  65. } catch (\PDOException $ex) {}
  66. $stmt->closeCursor();
  67. $stmt = null;
  68. return $admin;
  69. }
  70. public static function getRol($pdo, $nom_rol){
  71. $rol = '';
  72. try {
  73. $stmt = $pdo->prepare('SELECT "RolUsuario_id" FROM fs_rolusuario(:sistema,null) WHERE UPPER("RolUsuario_desc") = \'' . $nom_rol . '\'');
  74. $stmt->bindParam(':sistema', self::$sistema);
  75. if($stmt->execute()){
  76. $temp = $stmt->fetch();
  77. $rol = $temp['RolUsuario_id'];
  78. }
  79. } catch (\PDOException $ex) {}
  80. $stmt->closeCursor();
  81. $stmt = null;
  82. return $rol;
  83. }
  84. public static function getValidacion($pdo, $nom_rol){
  85. $rol = '';
  86. try {
  87. $stmt = $pdo->prepare('SELECT "RolUsuario_id" FROM fs_rolusuario(:sistema,null) WHERE UPPER("RolUsuario_desc") = \'' . $nom_rol . '\'');
  88. $stmt->bindParam(':sistema', self::$sistema);
  89. if($stmt->execute()){
  90. $temp = $stmt->fetch();
  91. $rol = $temp['RolUsuario_id'];
  92. }
  93. } catch (\PDOException $ex) {}
  94. $stmt->closeCursor();
  95. $stmt = null;
  96. return $rol;
  97. }
  98. /********* ALUMNOS **********/
  99. public static function getAlumnos($pdo){
  100. $alumnos = array();
  101. try {
  102. $stmt = $pdo->prepare('SELECT DISTINCT "Usuario_id" AS id, "Usuario_nombre" AS nombre, "Usuario_apellidos" AS apellidos FROM fs_alumno(null, null) ORDER BY apellidos, nombre');
  103. if($stmt->execute())
  104. $alumnos = $stmt->fetchAll();
  105. } catch (\PDOException $ex) {}
  106. $stmt->closeCursor();
  107. $stmt = null;
  108. return $alumnos;
  109. }
  110. public static function buscaAlumno($pdo, $idalumno, $clave){
  111. $alumno = array();
  112. try {
  113. if ($idalumno == 0){
  114. $stmt = $pdo->prepare('SELECT * FROM fs_alumno(NULL,:clave)');
  115. $stmt->bindParam(':clave', $clave);
  116. } else {
  117. $stmt = $pdo->prepare('SELECT * FROM fs_alumno(:id,null)');
  118. $stmt->bindParam(':id', $idalumno);
  119. }
  120. if($stmt->execute())
  121. $alumno = $stmt->fetch();
  122. } catch (\PDOException $ex) {}
  123. $stmt->closeCursor();
  124. $stmt = null;
  125. return $alumno;
  126. }
  127. public static function validacionDatosAlumno($pdo, $idalumno) {
  128. $validando = false;
  129. try {
  130. $stmt = $pdo->prepare('SELECT * FROM fs_checkusuario_estado(:Usuario_id)');
  131. $stmt->bindParam(':Usuario_id', $idalumno);
  132. if($stmt->execute()){
  133. $temp = $stmt->fetch();
  134. if (isset($temp['CheckUsuario_Estado_id']) && $temp['CheckUsuario_Estado_id'] == 1)
  135. $validando = true;
  136. }
  137. } catch (\PDOException $ex) {}
  138. $stmt->closeCursor();
  139. $stmt = null;
  140. return $validando;
  141. }
  142. public static function checkDatosAlumno($pdo, $idalumno) {
  143. $datos = array();
  144. try {
  145. $stmt = $pdo->prepare('SELECT "Usuario_nombre_new", "Usuario_apellidos_new", "Usuario_curp_new" FROM fs_checkusuario(1,null,null) WHERE "Usuario_id" = ' . $idalumno);
  146. if($stmt->execute())
  147. $datos = $stmt->fetch();
  148. } catch (\PDOException $ex) {}
  149. $stmt->closeCursor();
  150. $stmt = null;
  151. return $datos;
  152. }
  153. /*** Datos Personales ***/
  154. public static function nivelAlumno($pdo, $idalumno) {
  155. $nivel = array();
  156. try {
  157. $stmt = $pdo->prepare('SELECT "Nivel_id", "EstadoAlumno_id" from fs_alumno(:Usuario_id, NULL) ORDER BY "Usuario_claveULSA" DESC');
  158. $stmt->bindParam(':Usuario_id', $idalumno);
  159. if($stmt->execute())
  160. $nivel = $stmt->fetch();
  161. } catch (\PDOException $ex) {}
  162. $stmt->closeCursor();
  163. $stmt = null;
  164. return $nivel;
  165. }
  166. public static function clavesAlumno($pdo, $idalumno){
  167. $claves = array();
  168. try {
  169. $stmt = $pdo->prepare('SELECT "Usuario_nombre", "Usuario_apellidos", "Usuario_curp", "Usuario_claveULSA", "Carrera_desc", "EstadoAlumno_id" FROM fs_alumno(:Usuario_id, NULL) ORDER BY "Usuario_claveULSA" DESC');
  170. $stmt->bindParam(':Usuario_id', $idalumno);
  171. if($stmt->execute())
  172. $claves = $stmt->fetchAll();
  173. } catch (\PDOException $ex) {}
  174. $stmt->closeCursor();
  175. $stmt = null;
  176. return $claves;
  177. }
  178. public static function fotoAlumno($pdo, $idalumno) {
  179. $foto = self::$foto_pefil;
  180. try {
  181. $stmt = $pdo->prepare('SELECT "Usuario_foto" FROM fs_alumno(:Usuario_id, NULL) ORDER BY "Usuario_claveULSA" LIMIT 1');
  182. $stmt->bindParam(':Usuario_id', $idalumno);
  183. if($stmt->execute()){
  184. $temp = $stmt->fetch();
  185. if(isset($temp['Usuario_foto']) && !is_null($temp['Usuario_foto']))
  186. $foto = $temp['Usuario_foto'];
  187. }
  188. } catch (\PDOException $ex) {}
  189. $stmt->closeCursor();
  190. $stmt = null;
  191. return $foto;
  192. }
  193. public static function semblanzaAlumno($pdo, $idalumno) {
  194. $semblanza = '';
  195. try {
  196. $stmt = $pdo->prepare('SELECT * FROM fs_usuariosemblanza(:Usuario_id)');
  197. $stmt->bindParam(':Usuario_id', $idalumno);
  198. if($stmt->execute()){
  199. $temp = $stmt->fetch();
  200. if(isset($temp['Usuario_semblanza']))
  201. $semblanza = $temp['Usuario_semblanza'];
  202. }
  203. } catch (\PDOException $ex) {}
  204. $stmt->closeCursor();
  205. $stmt = null;
  206. return $semblanza;
  207. }
  208. public static function actualizaDatosAlumno($pdo, $nombre, $apellidos, $curp, $idalumno){
  209. $exito = false;
  210. try {
  211. $stmt = $pdo->prepare('SELECT * FROM fi_checkusuario(:Usuario_id,\'t\',null,:Nombre,:Apellidos,:CURP,null,null)');
  212. $stmt->bindParam(':Nombre', $nombre);
  213. $stmt->bindParam(':Apellidos', $apellidos);
  214. $stmt->bindParam(':CURP', $curp);
  215. $stmt->bindParam(':Usuario_id', $idalumno);
  216. if($stmt->execute())
  217. $exito = true;
  218. } catch (\PDOException $ex) {}
  219. $stmt->closeCursor();
  220. $stmt = null;
  221. return $exito;
  222. }
  223. public static function actualizaFotoAlumno($pdo, $idalumno, $foto=null){
  224. $exito = false;
  225. try {
  226. if (is_null($foto))
  227. $stmt = $pdo->prepare('SELECT * FROM fu_usuariofoto(:Usuario_id, NULL)');
  228. else {
  229. $stmt = $pdo->prepare('SELECT * FROM fu_usuariofoto(:Usuario_id, :foto)');
  230. $stmt->bindParam(':foto', $foto);
  231. }
  232. $stmt->bindParam(':Usuario_id', $idalumno);
  233. if($stmt->execute())
  234. $exito = true;
  235. } catch (\PDOException $ex) {}
  236. $stmt->closeCursor();
  237. $stmt = null;
  238. return $exito;
  239. }
  240. public static function actualizaSemblanzaAlumno($pdo, $acerca, $idalumno){
  241. $exito = false;
  242. try {
  243. $stmt = $pdo->prepare('SELECT * FROM fu_usuariosemblanza(:Usuario_id,:Acerca)');
  244. $stmt->bindParam(':Acerca', $acerca);
  245. $stmt->bindParam(':Usuario_id', $idalumno);
  246. if($stmt->execute())
  247. $exito = true;
  248. } catch (\PDOException $ex) {}
  249. $stmt->closeCursor();
  250. $stmt = null;
  251. return $exito;
  252. }
  253. /********* REDES **********/
  254. public static function contactosAlumno($pdo, $idalumno){
  255. $contactos = array();
  256. try {
  257. $stmt = $pdo->prepare('SELECT "Contacto_id", "Contacto_valor", "TipoContacto_id", "PerfilContacto_desc", "SubtipoContacto_desc" from fs_contacto(:Usuario_id, null, null) WHERE "Contacto_activo" IS TRUE ORDER BY "TipoContacto_id"');
  258. $stmt->bindParam(':Usuario_id', $idalumno);
  259. if($stmt->execute())
  260. $contactos = $stmt->fetchAll();
  261. } catch (\PDOException $ex) {}
  262. $stmt->closeCursor();
  263. $stmt = null;
  264. return $contactos;
  265. }
  266. public static function getSubTipoContacto($pdo, $idtipocontacto){
  267. $subtipo = array();
  268. try {
  269. $stmt = $pdo->prepare('SELECT * FROM fs_subtipocontacto(:TipoContacto,null) ORDER BY "SubtipoContacto_desc"');
  270. $stmt->bindParam(':TipoContacto', $idtipocontacto);
  271. if($stmt->execute())
  272. $subtipo = $stmt->fetchAll();
  273. } catch (\PDOException $ex) {}
  274. $stmt->closeCursor();
  275. $stmt = null;
  276. return $subtipo;
  277. }
  278. public static function emergenciaAlumno($pdo, $idalumno){
  279. $contactos = array();
  280. try {
  281. $stmt = $pdo->prepare('SELECT * from fs_contactoemergencia(:Usuario_id) ORDER BY "ContactoEmergencia_nombre"');
  282. $stmt->bindParam(':Usuario_id', $idalumno);
  283. if($stmt->execute())
  284. $contactos = $stmt->fetchAll();
  285. } catch (\PDOException $ex) {}
  286. $stmt->closeCursor();
  287. $stmt = null;
  288. return $contactos;
  289. }
  290. public static function getRedes($pdo){
  291. $redes = array();
  292. try {
  293. $stmt = $pdo->prepare('SELECT * FROM fs_tipocontacto(null) ORDER BY "TipoContacto_desc"');
  294. if($stmt->execute())
  295. $redes = $stmt->fetchAll();
  296. } catch (\PDOException $ex) {}
  297. $stmt->closeCursor();
  298. $stmt = null;
  299. return $redes;
  300. }
  301. public static function eliminaContacto($pdo, $idalumno, $idcontacto){
  302. $status = false;
  303. try {
  304. $stmt = $pdo->prepare('SELECT * FROM fd_contacto(:Usuario_id, :Red_id)');
  305. $stmt->bindParam(':Red_id', $idcontacto);
  306. $stmt->bindParam(':Usuario_id', $idalumno);
  307. if($stmt->execute())
  308. $status = true;
  309. } catch (\PDOException $ex) {}
  310. $stmt->closeCursor();
  311. $stmt = null;
  312. return $status;
  313. }
  314. public static function eliminaContactoEmergencia($pdo, $idalumno){
  315. $status = false;
  316. try {
  317. $stmt = $pdo->prepare('SELECT * FROM fd_contactoemergencia(:Usuario_id)');
  318. $stmt->bindParam(':Usuario_id', $idalumno);
  319. if($stmt->execute())
  320. $status = true;
  321. } catch (\PDOException $ex) {}
  322. $stmt->closeCursor();
  323. $stmt = null;
  324. return $status;
  325. }
  326. public static function agregaContacto($pdo, $red, $dato, $uso, $idalumno, $subtipostatus, $subtipo){
  327. $exito = false;
  328. try {
  329. if ($_POST['subtipostatus']) {
  330. $stmt = $pdo->prepare('SELECT * FROM fi_contacto(:Dato,:Red,:Usuario_id,:Uso,:Subtipo)');
  331. $stmt->bindParam(':Subtipo', $_POST['subtipo']);
  332. } else
  333. $stmt = $pdo->prepare('SELECT * FROM fi_contacto(:Dato,:Red,:Usuario_id,:Uso,null)');
  334. $stmt->bindParam(':Red', $_POST['red']);
  335. $stmt->bindParam(':Dato', $_POST['dato']);
  336. $stmt->bindParam(':Uso', $_POST['uso']);
  337. $stmt->bindParam(':Usuario_id', $idalumno);
  338. if($stmt->execute())
  339. $exito = true;
  340. } catch (\PDOException $ex) {}
  341. $stmt->closeCursor();
  342. $stmt = null;
  343. return $exito;
  344. }
  345. public static function agregaContactoEmergencia($pdo, $nombre, $dato, $idalumno){
  346. $exito = false;
  347. try {
  348. $stmt = $pdo->prepare('SELECT * FROM fi_contactoemergencia(:Usuario_id,:Nombre,:Dato)');
  349. $stmt->bindParam(':Dato', $dato);
  350. $stmt->bindParam(':Nombre', $nombre);
  351. $stmt->bindParam(':Usuario_id', $idalumno);
  352. if($stmt->execute())
  353. $exito = true;
  354. } catch (\PDOException $ex) {}
  355. $stmt->closeCursor();
  356. $stmt = null;
  357. return $exito;
  358. }
  359. /********* HORARIOS **********/
  360. public static function getDias($pdo){
  361. $dias = array();
  362. try {
  363. $stmt = $pdo->prepare('SELECT * from fs_dia(NULL)');
  364. if($stmt->execute())
  365. $dias = $stmt->fetchAll();
  366. } catch (\PDOException $ex) {}
  367. $stmt->closeCursor();
  368. $stmt = null;
  369. return $dias;
  370. }
  371. public static function getHorarioGrupo($pdo, $grupo){
  372. $horario = array();
  373. try {
  374. $stmt = $pdo->prepare('SELECT * from fs_horariogrupo(:gpo, NULL, false)');
  375. $stmt->bindParam(':gpo', $grupo);
  376. if($stmt->execute())
  377. $horario = $stmt->fetchAll();
  378. } catch (\PDOException $ex) {}
  379. $stmt->closeCursor();
  380. $stmt = null;
  381. return $horario;
  382. }
  383. public static function getProfesorHorarioGrupo($pdo, $grupo){
  384. $horario = array();
  385. try {
  386. $stmt = $pdo->prepare('SELECT * from fs_profesorhorariogrupo(:gpo)');
  387. $stmt->bindParam(':gpo', $grupo);
  388. if($stmt->execute())
  389. $horario = $stmt->fetchAll();
  390. } catch (\PDOException $ex) {}
  391. $stmt->closeCursor();
  392. $stmt = null;
  393. return $horario;
  394. }
  395. public static function getSubMateriaHorarioGrupo($pdo, $grupo){
  396. $horario = array();
  397. try {
  398. $stmt = $pdo->prepare('SELECT * from fs_submateriahorariogrupo(:gpo)');
  399. $stmt->bindParam(':gpo', $grupo);
  400. if($stmt->execute())
  401. $horario = $stmt->fetchAll();
  402. } catch (\PDOException $ex) {}
  403. $stmt->closeCursor();
  404. $stmt = null;
  405. return $horario;
  406. }
  407. public static function getSubMateriaHorarioGrupoProfesor($pdo, $grupo, $sub){
  408. $horario = array();
  409. try {
  410. $stmt = $pdo->prepare('SELECT * from fs_submateriahorariogrupoprofesor(:gpo,:sub)');
  411. $stmt->bindParam(':gpo', $grupo);
  412. $stmt->bindParam(':sub', $sub);
  413. if($stmt->execute())
  414. $horario = $stmt->fetchAll();
  415. } catch (\PDOException $ex) {}
  416. $stmt->closeCursor();
  417. $stmt = null;
  418. return $horario;
  419. }
  420. public static function getHorarioProfesor($pdo, $usr, $fecha){
  421. $horario = array();
  422. try {
  423. $stmt = $pdo->prepare('SELECT * from fs_mihorariofull(:user, :fecha, 3)');
  424. $stmt->bindParam(':user', $usr);
  425. $stmt->bindParam(':fecha', $fecha);
  426. if($stmt->execute())
  427. $horario = $stmt->fetchAll();
  428. } catch (\PDOException $ex) {}
  429. $stmt->closeCursor();
  430. $stmt = null;
  431. return $horario;
  432. }
  433. public static function getExtraordinarios($pdo, $periodo, $semestre, $plan){
  434. $horario = array();
  435. try {
  436. $stmt = $pdo->prepare('SELECT * FROM fs_examenextraordinario( NULL, :per, :semestre, :plan_estudio)');
  437. $stmt->bindParam(":per", $periodo);
  438. $stmt->bindParam(":semestre", $semestre);
  439. $stmt->bindParam(":plan_estudio", $plan);
  440. if($stmt->execute())
  441. $horario = $stmt->fetchAll();
  442. } catch (\PDOException $ex) {}
  443. $stmt->closeCursor();
  444. $stmt = null;
  445. return $horario;
  446. }
  447. public static function getGrupos($pdo, $periodo){
  448. $grupos = array();
  449. try {
  450. $stmt = $pdo->prepare('SELECT * from fs_grupo(NULL, :periodo)');
  451. $stmt->bindParam(':periodo', $periodo);
  452. if($stmt->execute())
  453. $grupos = $stmt->fetchAll();
  454. } catch (\PDOException $ex) {}
  455. $stmt->closeCursor();
  456. $stmt = null;
  457. return $grupos;
  458. }
  459. public static function getDocentes($pdo, $periodo){
  460. $docentes = array();
  461. try {
  462. $stmt = $pdo->prepare('SELECT * FROM fs_profesoresperiodo_busca(:periodo, null, null, 0, null)');
  463. $stmt->bindParam(':periodo', $periodo);
  464. if($stmt->execute())
  465. $docentes = $stmt->fetchAll();
  466. } catch (\PDOException $ex) {}
  467. $stmt->closeCursor();
  468. $stmt = null;
  469. return $docentes;
  470. }
  471. public static function getPlanes($pdo){
  472. $planes = array();
  473. try {
  474. $stmt = $pdo->prepare('SELECT * FROM fs_planestudio(1, NULL, NULL, true, 0, NULL)');
  475. if($stmt->execute())
  476. $planes = $stmt->fetchAll();
  477. } catch (\PDOException $ex) {}
  478. $stmt->closeCursor();
  479. $stmt = null;
  480. return $planes;
  481. }
  482. /********* INSIGNIAS **********/
  483. public static function getInsignias($pdo, $user){
  484. $insigias = array();
  485. try {
  486. $stmt = $pdo->prepare('SELECT * FROM fs_insigniareportealumno(:Usuario_id)');
  487. $stmt->bindParam(':Usuario_id', $user);
  488. if($stmt->execute())
  489. $insigias = $stmt->fetchAll();
  490. } catch (\PDOException $ex) {}
  491. $stmt->closeCursor();
  492. $stmt = null;
  493. return $insigias;
  494. }
  495. }