alumnos_importar_previo23.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /* AJAX
  3. * Selecciona los datos de la carrera
  4. * Recibe:
  5. * id - ID de la carrera
  6. * Return:
  7. * resultado o cadena de error
  8. */
  9. require_once("../../include/constantes.php");
  10. require_once("../../include/nocache.php");
  11. require_once("../../include/util.php");
  12. require_once("../../include/bd_pdo.php");
  13. require_once("../../classes/ValidaSesion.php");
  14. require "../../include/phpSpreadsheet/autoload.php";
  15. /*
  16. $return["archivo"] = $_FILES['archivo']['name'];
  17. $return["inputFileName"] = $_FILES['archivo']['tmp_name'];
  18. $return["size"] = $_FILES['archivo']['size'];
  19. $return["json"] = json_encode($return);
  20. echo json_encode($return);
  21. exit();*/
  22. use PhpOffice\PhpSpreadsheet\IOFactory;
  23. function valoresCompletos($data, $max){
  24. for($i = 0; $i<$max; $i++){
  25. if(!isset($data[$i]) || (trim($data[$i]) == "" || strlen(trim($data[$i])) <= 1))
  26. return false;
  27. }
  28. return true;
  29. }
  30. function getPlanId($plan_rs, $texto){
  31. foreach($plan_rs as $plan){
  32. if(mb_stripos($texto, $plan["PlanEstudio_nombre"]) !== false){
  33. return $plan["PlanEstudio_id"];
  34. }
  35. }
  36. return false;
  37. }
  38. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  39. $objSesion = new ValidaSesion($pdo, 101, GEMA);
  40. if(!$objSesion->tieneAcceso()){
  41. $return["error"] = "Error! No tienes permisos para realizar esta acción.";
  42. }else if(!isset($_FILES['archivo']['name']) || $_FILES['archivo']['name'] == null){
  43. $return["error"] = "Error! No se recibió la información del archivo de alumnos.";
  44. }else{
  45. //$inputFileName =__DIR__. '/tmp/alumnos_tmp.xlsx';
  46. $archivo = $_FILES['archivo']['name'][0];
  47. // Check file size
  48. if ($_FILES["archivo"]["size"][0] > 10 * 1024 * 1024) {//en bytes
  49. $return["error"] = "Demasiado grande";
  50. $return["json"] = json_encode($return);
  51. echo json_encode($return);
  52. exit();
  53. }
  54. $exts_arr = array("xls","xlsx");
  55. $dot_arr = explode('.', $archivo);
  56. $ext = end($dot_arr);
  57. if(!in_array($ext, $exts_arr)){
  58. $return["error"] = "No es una extensión válida";
  59. $return["json"] = json_encode($return);
  60. echo json_encode($return);
  61. exit();
  62. }
  63. //$newfilename = "tmp_al_".$_SESSION["gpo_id"].".".$ext;
  64. $inputFileName = $_FILES["archivo"]["tmp_name"][0];
  65. $inputFileType = IOFactory::identify($inputFileName);
  66. $reader = IOFactory::createReader($inputFileType);
  67. $spreadsheet = $reader->load($inputFileName);
  68. $spreadsheet->setActiveSheetIndex(0);
  69. $sheetData = $spreadsheet->getActiveSheet()->toArray();
  70. //$highestRow = $spreadsheet->getHighestRow();//1 a N
  71. $stmt = $pdo->prepare('Select * from fs_planestudio(NULL, NULL, NULL, true, 0, NULL) WHERE "PlanEstudio_altas" = true');
  72. if(!$stmt->execute()){
  73. $errorDesc = "Ocurrió un error al cargar los planes de estudios";
  74. }else{
  75. $plan_rs = $stmt->fetchAll();
  76. }
  77. $stmt->closeCursor();
  78. $alumnoArr = array();
  79. $omitidoArr = array();
  80. $al = 0;
  81. $omitido = 0;
  82. $row = 1;
  83. foreach($sheetData as $data){//Carrera / Clave / Nombre completo
  84. if($row > 1){//ignora header
  85. //if(trim($data[0]) != "" && trim($data[1]) != "" && trim($data[2]) != "" && trim($data[3]) != ""){
  86. if(valoresCompletos($data, 3)){
  87. $nombre = mb_convert_case(mb_strtolower(trim($data[2])), MB_CASE_TITLE, "UTF-8");
  88. $nombreArr = explode(" ",$nombre);
  89. $n_pal = count($nombreArr);
  90. $apeArr = [];
  91. for($i=0;$i<$n_pal-1;$i++){
  92. $apeArr[] = $nombreArr[$i];
  93. }
  94. $plan = getPlanId($plan_rs, $data[0]);
  95. if($plan !== false){
  96. $alumnoArr[$al]["plan"] = $plan;
  97. $alumnoArr[$al]["apellidos"] = implode(" ", $apeArr);
  98. $alumnoArr[$al]["nombre"] = $nombreArr[$n_pal-1];
  99. $alumnoArr[$al]["clave"] = $data[1];
  100. $alumnoArr[$al]["curp"] = "CURP".$data[1];
  101. $al++;
  102. }else{
  103. $omitido++;
  104. }
  105. }else{
  106. $omitido++;
  107. }
  108. }
  109. $row++;
  110. }
  111. $return["alumnosArr"] = $alumnoArr;
  112. //$return["omitidosArr"] = $omitidoArr;
  113. $return["omitidos"] = $omitido;
  114. }
  115. $return["json"] = json_encode($return);
  116. echo json_encode($return);
  117. ?>