alumno_insert.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. include_once("../../include/constantes.php");//continue on error
  3. include_once("../../include/nocache.php");//continue on error
  4. require_once("../../include/util.php");//die on error
  5. require_once("../../include/bd_pdo.php");
  6. require_once("../../classes/ValidaSesion.php");
  7. require_once("../classes/LogActividad.php");//die on error
  8. $pag = "../alumnos_crear.php";
  9. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  10. $objSesion = new ValidaSesion($pdo, 101, GEMA);
  11. if(!$objSesion->tieneAcceso() || !$objSesion->puedeEditar()){
  12. header("Location: ".$pag."?error=2");
  13. exit();
  14. }
  15. unset($objValida);
  16. try {
  17. $pdo->beginTransaction();
  18. if(!isset($_POST["nombre"]) || !isset($_POST["apellidos"]) || !isset($_POST["clave"]) || !isset($_POST["ingreso"])){
  19. header("Location:".$pag."?error=0");
  20. exit();
  21. }
  22. $nombre = (trim(filter_input(INPUT_POST, "nombre", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  23. $apellidos = (trim(filter_input(INPUT_POST, "apellidos", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  24. $curp = mb_strtoupper(trim(filter_input(INPUT_POST, "curp", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  25. $fechaingreso = fechaGuion(trim(filter_input(INPUT_POST, "ingreso")));//limpia texto
  26. //$clave = mb_strtoupper(trim(filter_input(INPUT_POST, "clave", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto
  27. $clave = filter_input(INPUT_POST, "clave", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  28. $sub = 3;
  29. if(empty($_POST["sub"]))
  30. $sub = filter_input(INPUT_POST, "sub", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  31. if(isset($_POST["revalida"]) && intval($_POST["revalida"]) == 1){
  32. $procedencia = filter_input(INPUT_POST, "procedencia", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  33. $gen = fechaGuion(trim(filter_input(INPUT_POST, "generacion")));//limpia texto
  34. }else{
  35. $gen = $fechaingreso;
  36. }
  37. //Valida que no esté solo en mayúsculas
  38. if($nombre == mb_strtoupper($nombre, "UTF-8")){
  39. $nombre = mb_convert_case(mb_strtolower($nombre), MB_CASE_TITLE, "UTF-8");
  40. }
  41. if($apellidos == mb_strtoupper($apellidos, "UTF-8")){
  42. $apellidos = mb_convert_case(mb_strtolower($apellidos), MB_CASE_TITLE, "UTF-8");
  43. }
  44. $plan = filter_input(INPUT_POST, "plan", FILTER_SANITIZE_NUMBER_INT);//limpia texto
  45. //Inserta usuario
  46. $stmt = $pdo->prepare('Select * from fi_usuario(:nom, :ape, :curp)');//devuelve: Usuario_id
  47. $stmt->bindParam(":nom", $nombre);
  48. $stmt->bindParam(":ape", $apellidos);
  49. $stmt->bindParam(":curp", $curp);
  50. if(!$stmt->execute()){
  51. $pdo->rollBack();
  52. //echo "Error fi_usuario [".$nombre."] [".$apellidos."][".$clave."] [".$user."]";
  53. //print_r($stmt->errorInfo());
  54. header("Location:".$pag."?error=1");
  55. exit();
  56. }
  57. $usr_rs = $stmt->fetch();
  58. $usr_id = $usr_rs["Usuario_id"];
  59. $stmt->closeCursor(); // cierra conexion de resultado
  60. $usr_rs = null;
  61. //unset($usr_rs);
  62. if(!empty($procedencia) ){
  63. $stmt = $pdo->prepare('Select * from fi_alumno_planestudio(:id, :plan, :claveulsa, :fechai, :sub, :procedencia, :gen)');
  64. $stmt->bindParam(":procedencia", $procedencia);
  65. }else{
  66. $stmt = $pdo->prepare('Select * from fi_alumno_planestudio(:id, :plan, :claveulsa, :fechai, :sub, NULL, :gen)');
  67. }
  68. $stmt->bindParam(":id", $usr_id);
  69. $stmt->bindParam(":plan", $plan);
  70. $stmt->bindParam(":claveulsa", $clave);
  71. $stmt->bindParam(":fechai", $fechaingreso);
  72. $stmt->bindParam(":sub", $sub);
  73. $stmt->bindParam(":gen", $gen);
  74. if(!$stmt->execute()){
  75. $stmt->closeCursor();
  76. $pdo->rollBack();
  77. header("Location:".$pag."?error=7");
  78. exit();
  79. }
  80. $usr_rs = $stmt->fetch();
  81. $usr_insertado = $usr_rs["fi_alumno_planestudio"];
  82. $stmt->closeCursor();
  83. $usr_rs = null;
  84. unset($usr_rs);
  85. if($usr_insertado == 1){
  86. //Inserta datos de contacto
  87. if(!empty($_POST["contacto_tipo"]) ){
  88. $tipoArr = $_POST["contacto_tipo"];
  89. $valorArr = $_POST["contacto_valor"];
  90. $perfilArr = $_POST["contacto_perfil"];
  91. $subtipoArr = $_POST["contacto_subtipo"];
  92. for($i=0; $i< count($tipoArr); $i++){
  93. if(trim($valorArr[$i]) != ""){
  94. if($subtipoArr[$i] != 0){
  95. $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr, :perf, :subt)');//inserta contactos
  96. $stmt->bindParam(":subt", $subtipoArr[$i]);
  97. }else{
  98. $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr, :perf, NULL)');//inserta contactos
  99. }
  100. $stmt->bindParam(":usr", $usr_id);
  101. $stmt->bindParam(":valor", $valorArr[$i]);
  102. $stmt->bindParam(":tipo", $tipoArr[$i]);
  103. $stmt->bindParam(":perf", $perfilArr[$i]);
  104. if(!$stmt->execute()){
  105. $pdo->rollBack();
  106. //echo "Error fi_contacto [".$valorArr[$i]."] [".$tipoArr[$i]."] [".$usr_id."]<br>";
  107. //print_r($stmt->errorInfo());
  108. header("Location:".$pag."?error=6");
  109. exit();
  110. }
  111. }
  112. }
  113. $stmt->closeCursor(); // cierra conexion de resultado
  114. }
  115. $log = new LogActividad();
  116. $desc_log = "Inserta alumno nuevo ID[".$usr_id."] Nombre[".($nombre." ".$paterno." ".$materno)."] ClaveULSA[".$clave."] CURP[".$curp."]";
  117. $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log);
  118. $pdo->commit();
  119. }else{
  120. $pdo->rollBack();
  121. //echo "no insertado";
  122. header("Location:".$pag."?error=1&insertado=false");
  123. exit();
  124. }
  125. $stmt = null; // cierra conexion
  126. header("Location: ../alumnos.php?ok=0");
  127. } catch(PDOException $e) {
  128. $pdo->rollBack();
  129. header("Location:".$pag."?error=1");
  130. //print_r($e);
  131. }
  132. ?>