datos_alumnos_insert.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. require_once("../include/constantes.php");
  3. require_once("../include/bd_pdo.php");
  4. require_once("../include/util.php");
  5. //require_once("./classes/LogActividad.php");//die on error
  6. try {
  7. $pdo->beginTransaction();
  8. $stmt = $pdo->prepare("SELECT alumno_extraccion_id from alumno_extraccion_fecha where not actualizado");
  9. if(!$stmt->execute()){
  10. echo "Error al consultar las fechas de extracción de alumnos";
  11. exit();
  12. }
  13. $fechas_rs = $stmt->fetch();
  14. if(empty($fechas_rs) || $fechas_rs["alumno_extraccion_id"] == ""){
  15. echo "No hay fechas de extracción de alumnos para actualizar";
  16. exit();
  17. }
  18. $stmt = $pdo->prepare('SELECT ca."Carrera_clave", pe."PlanEstudio_clave", ca."Carrera_id", pe."PlanEstudio_id" from "Carrera" ca INNER JOIN "PlanEstudio" pe ON ca."Carrera_id" = pe."Carrera_id"');
  19. if(!$stmt->execute()){
  20. echo "Error al consultar planes de estudio";
  21. exit();
  22. }
  23. $planes_rs = $stmt->fetchAll();
  24. //función que recibe $planes_rs y $clave_carrera y $clave_plan y regresa el id de plan de estudio
  25. function getPlanId($planes_rs, $clave_carrera, $clave_plan){
  26. foreach($planes_rs as $plan){
  27. if($plan["Carrera_clave"] == $clave_carrera && $plan["PlanEstudio_clave"] == $clave_plan){
  28. return $plan["PlanEstudio_id"];
  29. }
  30. }
  31. return null;
  32. }
  33. $stmt = $pdo->prepare("SELECT * from alumno_detalles ");
  34. if(!$stmt->execute()){
  35. echo "Error al consultar los datos de alumnos";
  36. exit();
  37. }
  38. $total = 0;
  39. $alumnos_rs = $stmt->fetchAll();
  40. foreach($alumnos_rs as $alumno){
  41. if($alumno["estatus"] == 'R'){
  42. /*
  43. //Validar plan de estudio de alumno
  44. if($alumno["clave_carrera"] == "" || $alumno["clave_carrera"] == null){
  45. echo "Error al obtener plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  46. continue;
  47. }
  48. $stmt = $pdo->prepare('SELECT "Carrera_clave" FROM "Carrera" WHERE "Carrera_clave" = :carrera');
  49. $stmt->bindParam(":carrera", $alumno["clave_carrera"]);
  50. if(!$stmt->execute()){
  51. echo "Error al consultar los datos de alumnos";
  52. continue;
  53. }
  54. $carr_rs = $stmt->fetch();
  55. if($carr_rs["Carrera_clave"] == "" || $carr_rs["Carrera_clave"] == null){
  56. echo "Error al obtener plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  57. continue;
  58. }*/
  59. $stmt = $pdo->prepare("SELECT * from fi_alumno(:nombre, :apellidos, :curp, :clave)");
  60. $stmt->bindParam(":nombre", $alumno["nombre"]);
  61. $apellidos = $alumno["apellido_paterno"]." ".$alumno["apellido_materno"];
  62. $stmt->bindParam(":apellidos", $apellidos);
  63. $stmt->bindParam(":curp", $alumno["curp"]);
  64. $stmt->bindParam(":clave", $alumno["clave"]);
  65. if(!$stmt->execute()){
  66. echo "Error al insertar datos de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  67. continue;
  68. }
  69. $rs = $stmt->fetch();
  70. $id_alumno = $rs["Usuario_id"];
  71. $existe = $rs["Usuario_existe"];
  72. //Obtener Id de plan de alumno
  73. $planInt = intval($alumno["plan"]);
  74. $alumno_plan = getPlanId($planes_rs,$alumno["clave_carrera"], $planInt);
  75. if($alumno_plan == null){
  76. echo "Error al obtener plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  77. continue;
  78. }
  79. if($existe){
  80. //Actualiza el plan de estudio del alumno
  81. $stmt = $pdo->prepare("SELECT * FROM fu_alumno_cambiocarrera(:claveulsa)");
  82. $stmt->bindParam(":claveulsa", $alumno["clave"]);
  83. if(!$stmt->execute()){
  84. echo "Error al insertar cambio de carrera ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  85. continue;
  86. }
  87. }
  88. //Inserta el plan de estudio del alumno
  89. $stmt = $pdo->prepare("SELECT * FROM fi_alumno_planestudio(:id, :plan, :claveulsa, CURRENT_DATE, NULL, NULL, CURRENT_DATE)");
  90. $stmt->bindParam(":id", $id_alumno);
  91. $stmt->bindParam(":plan", $alumno_plan);//Calculado
  92. $stmt->bindParam(":claveulsa", $alumno["clave"]);
  93. if(!$stmt->execute()){
  94. echo "Error al insertar plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  95. continue;
  96. }
  97. //Actualiza adicionales de alumno
  98. $stmt = $pdo->prepare("SELECT * FROM fu_alumno_extras(:id, :clave, :servicio, :semestre, :sexo, :grupo)");
  99. $stmt->bindParam(":id", $id_alumno);
  100. $stmt->bindParam(":clave", $alumno["clave"]);
  101. $stmt->bindParam(":servicio", $alumno["servicio"]);
  102. $stmt->bindParam(":semestre", $alumno["semestre"]);
  103. $stmt->bindParam(":sexo", $alumno["sexo"]);
  104. $stmt->bindParam(":grupo", $alumno["grupo"]);
  105. if(!$stmt->execute()){
  106. echo "Error al actualizar datos adicionales de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  107. continue;
  108. }
  109. //---- Inserta historial de materias de alumno -----
  110. $stmt = $pdo->prepare('SELECT * from extract_fi_alumnomaterias_calif(:clave)');
  111. $stmt->bindParam(":clave", $alumno["clave"]);
  112. if(!$stmt->execute()){
  113. echo "Error al guardar calificaciones de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  114. continue;
  115. }
  116. //Actualiza alumno_extraccion para indicar que ya se procesó
  117. $stmt = $pdo->prepare('UPDATE alumno_extraccion set registrado = true where "Usuario_claveULSA" = :clave');
  118. $stmt->bindParam(":clave", $alumno["clave"]);
  119. if(!$stmt->execute()){
  120. echo "Error al actualizar el registro de extracción de alumno [".$alumno["clave"]."]".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."<br>";
  121. continue;
  122. }
  123. $total++;
  124. }
  125. }
  126. //Actualiza alumno_extraccion_fecha para indicar que ya se procesó
  127. $stmt = $pdo->prepare('UPDATE alumno_extraccion_fecha set actualizado = true where alumno_extraccion_id = :id');
  128. $stmt->bindParam(":id", $fechas_rs["alumno_extraccion_id"]);
  129. if(!$stmt->execute()){
  130. echo "Error al actualizar el registro de extracción de alumnos";
  131. }
  132. $pdo->commit();
  133. echo $total." datos de alumnos actualizados correctamente";
  134. } catch (Exception $e) {
  135. echo $e->getMessage();
  136. echo "Error al actualizar los datos de los alumnos";
  137. exit();
  138. }
  139. ?>