alumnospromocion_update.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /*
  3. * Actualiza datos de usuario en BD.
  4. * Se divide en 3 partes: datos generales, datos administrativos (opcional), datos de profesor (opcional).
  5. * No quita tipo de usuario sólo lo actualiza. Para quitar tipos se debe usar usuario_delete
  6. * Recibe:
  7. * id
  8. * nombre
  9. * apellidos
  10. * curp
  11. * contacto * opcional
  12. *
  13. */
  14. require_once("../../include/constantes.php");
  15. include_once("../../include/nocache.php");//continue on error
  16. require_once("../../include/util.php");//die on error
  17. require_once("../../include/bd_pdo.php");
  18. require_once("../../classes/ValidaSesion.php");
  19. require_once("../classes/LogActividad.php");//die on error
  20. $pag = "../alumnospromocion_editar.php";
  21. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  22. $objSesion = new ValidaSesion($pdo, 101, GEMA);
  23. if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
  24. header("Location: ".$pag."?error=2&id=".$_POST["id"]);
  25. exit();
  26. }
  27. unset($objValida);
  28. try {
  29. $pdo->beginTransaction();
  30. if(!isset($_POST["id"]) || !isset($_POST["nombre"]) || !isset($_POST["apellidos"])){
  31. header("Location:".$pag."?error=0");
  32. exit();
  33. }
  34. $usr_id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  35. $nombre = (trim(filter_input(INPUT_POST, "nombre", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  36. $apellidos = (trim(filter_input(INPUT_POST, "apellidos", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  37. $curp = mb_strtoupper(trim(filter_input(INPUT_POST, "curp", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  38. //Valida que no esté solo en mayúsculas
  39. if($nombre == mb_strtoupper($nombre, "UTF-8")){
  40. $nombre = mb_convert_case(mb_strtolower($nombre), MB_CASE_TITLE, "UTF-8");
  41. }
  42. if($apellidos == mb_strtoupper($apellidos, "UTF-8")){
  43. $apellidos = mb_convert_case(mb_strtolower($apellidos), MB_CASE_TITLE, "UTF-8");
  44. }
  45. //---- Actualiza alumno ---
  46. $stmt = $pdo->prepare('Select * from fu_alumno(:id, :nombre, :apellidos, :curp)');//devuelve: Usuario_id
  47. $stmt->bindParam(":id", $usr_id);
  48. $stmt->bindParam(":nombre", $nombre);
  49. $stmt->bindParam(":apellidos", $apellidos);
  50. $stmt->bindParam(":curp", $curp);
  51. if(!$stmt->execute()){
  52. $pdo->rollBack();
  53. //print_r($stmt->errorInfo());
  54. header("Location:".$pag."?id=".$usr_id."&error=1");
  55. exit();
  56. }
  57. $stmt->closeCursor(); // cierra conexion de resultado
  58. //---- Actualiza datos de contacto ----
  59. $stmt = $pdo->prepare('Select * from fd_contacto(:usr, NULL)');//borra contacto actual
  60. $stmt->bindParam(":usr", $usr_id);
  61. if(!$stmt->execute()){
  62. $pdo->rollBack();
  63. //print_r($stmt->errorInfo());
  64. header("Location:".$pag."?error=1");
  65. exit();
  66. }
  67. if(isset($_POST["contacto_tipo"]) ){
  68. $tipoArr = $_POST["contacto_tipo"];
  69. $valorArr = $_POST["contacto_valor"];
  70. $perfilArr = $_POST["contacto_perfil"];
  71. $subtipoArr = $_POST["contacto_subtipo"];
  72. for($i=0; $i< count($tipoArr); $i++){
  73. if(trim($valorArr[$i]) != ""){
  74. if($subtipoArr[$i] != 0){
  75. $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr, :perf, :subt)');//inserta contactos
  76. $stmt->bindParam(":subt", $subtipoArr[$i]);
  77. }else{
  78. $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr, :perf, NULL)');//inserta contactos
  79. }
  80. $stmt->bindParam(":usr", $usr_id);
  81. $stmt->bindParam(":valor", $valorArr[$i]);
  82. $stmt->bindParam(":tipo", $tipoArr[$i]);
  83. $stmt->bindParam(":perf", $perfilArr[$i]);
  84. if(!$stmt->execute()){
  85. $pdo->rollBack();
  86. //echo "Error fi_contacto [".$valorArr[$i]."] [".$tipoArr[$i]."] [".$usr_id."]<br>";
  87. //print_r($stmt->errorInfo());
  88. header("Location:".$pag."?error=6");
  89. exit();
  90. }
  91. }
  92. }
  93. $stmt->closeCursor(); // cierra conexion de resultado
  94. }
  95. $log = new LogActividad();
  96. $desc_log = "Actualiza alumno promocion ID[".$usr_id."] Nombre[".$nombre." ".$apellidos."] CURP[".$curp."]";
  97. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  98. $pdo->commit();
  99. $stmt = null; // cierra conexion
  100. header("Location: ../alumnospromocion.php?ok=1");
  101. } catch(PDOException $e) {
  102. $pdo->rollBack();
  103. header("Location:".$pag."?id=".$usr_id."&error=1");
  104. }
  105. ?>