alumnos_importar_previo copy.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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 renglonVacio($data, $max){
  24. for($i = 0; $i<=$max; $i++){
  25. if(isset($data[$i]) && trim($data[$i]) != "")
  26. return false;
  27. }
  28. return true;
  29. }
  30. function valoresCompletos($data, $max){
  31. for($i = 0; $i<$max; $i++){
  32. if(!isset($data[$i]) || (trim($data[$i]) == "" || strlen(trim($data[$i])) <= 1))
  33. return false;
  34. }
  35. return true;
  36. }
  37. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  38. $objSesion = new ValidaSesion($pdo, 101, GEMA);
  39. if(!$objSesion->tieneAcceso()){
  40. $return["error"] = "Error! No tienes permisos para realizar esta acción.";
  41. }else if(!isset($_FILES['archivo']['name']) || $_FILES['archivo']['name'] == null){
  42. $return["error"] = "Error! No se recibió la información del archivo de alumnos.";
  43. }else{
  44. //$inputFileName =__DIR__. '/tmp/alumnos_tmp.xlsx';
  45. $archivo = $_FILES['archivo']['name'][0];
  46. // Check file size
  47. if ($_FILES["archivo"]["size"][0] > 10 * 1024 * 1024) {//en bytes
  48. $return["error"] = "Demasiado grande";
  49. $return["json"] = json_encode($return);
  50. echo json_encode($return);
  51. exit();
  52. }
  53. $exts_arr = array("xls","xlsx");
  54. $dot_arr = explode('.', $archivo);
  55. $ext = end($dot_arr);
  56. if(!in_array($ext, $exts_arr)){
  57. $return["error"] = "No es una extensión válida";
  58. $return["json"] = json_encode($return);
  59. echo json_encode($return);
  60. exit();
  61. }
  62. //$newfilename = "tmp_al_".$_SESSION["gpo_id"].".".$ext;
  63. $inputFileName = $_FILES["archivo"]["tmp_name"][0];
  64. $inputFileType = IOFactory::identify($inputFileName);
  65. $reader = IOFactory::createReader($inputFileType);
  66. $spreadsheet = $reader->load($inputFileName);
  67. $sheetData = $spreadsheet->getActiveSheet()->toArray();
  68. //$highestRow = $spreadsheet->getHighestRow();//1 a N
  69. $alumnoArr = array();
  70. $omitidoArr = array();
  71. $al = 0;
  72. $omitido = 0;
  73. $row = 1;
  74. foreach($sheetData as $data){
  75. if($row > 1){//ignora header
  76. //if(trim($data[0]) != "" && trim($data[1]) != "" && trim($data[2]) != "" && trim($data[3]) != ""){
  77. if(valoresCompletos($data, 6)){
  78. /*$alumnoArr[$al]["apellidos"] = (trim($data[0]));
  79. $alumnoArr[$al]["nombre"] = (trim($data[1]));*/
  80. $alumnoArr[$al]["apellidos"] = mb_convert_case(mb_strtolower(trim($data[0])), MB_CASE_TITLE, "UTF-8");
  81. $alumnoArr[$al]["nombre"] = mb_convert_case(mb_strtolower(trim($data[1])), MB_CASE_TITLE, "UTF-8");
  82. $alumnoArr[$al]["clave"] = $data[2];
  83. $alumnoArr[$al]["curp"] = mb_strtoupper(trim($data[3]));
  84. $fechaTmp = $spreadsheet->getActiveSheet()->getCell('E'.$row)->getValue();
  85. $alumnoArr[$al]["ingreso"] = fechaGuion(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
  86. $fechaTmp = $spreadsheet->getActiveSheet()->getCell('F'.$row)->getValue();
  87. $alumnoArr[$al]["generacion"] = fechaGuion(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
  88. $alumnoArr[$al]["correo"] = trim($data[6]);
  89. $alumnoArr[$al]["telcasa"] = isset($data[7])? trim($data[7]):"";
  90. $alumnoArr[$al]["telcel"] = isset($data[8])? trim($data[8]):"";
  91. $al++;
  92. }else{
  93. if(!renglonVacio($data, 9)){//si no están vacías las 9 celdas del rengón
  94. /*$omitidoArr[$omitido]["apellidos"] = (trim($data[0]));
  95. $omitidoArr[$omitido]["nombre"] = (trim($data[1]));*/
  96. $omitidoArr[$omitido]["apellidos"] = mb_convert_case(mb_strtolower(trim($data[0])), MB_CASE_TITLE, "UTF-8");
  97. $omitidoArr[$omitido]["nombre"] = mb_convert_case(mb_strtolower(trim($data[1])), MB_CASE_TITLE, "UTF-8");
  98. $omitidoArr[$omitido]["clave"] = $data[2];
  99. $omitidoArr[$omitido]["curp"] = mb_strtoupper(trim($data[3]));
  100. if(trim($data[4]) != ""){
  101. $fechaTmp = $spreadsheet->getActiveSheet()->getCell('E'.$row)->getValue();
  102. $omitidoArr[$omitido]["ingreso"] = fechaMonthPicker(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
  103. }else{
  104. $omitidoArr[$omitido]["ingreso"] = "";
  105. }
  106. if(trim($data[5]) != ""){
  107. $fechaTmp = $spreadsheet->getActiveSheet()->getCell('F'.$row)->getValue();
  108. $omitidoArr[$omitido]["generacion"] = fechaMonthPicker(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
  109. }else{
  110. $omitidoArr[$omitido]["generacion"] = "";
  111. }
  112. $omitidoArr[$omitido]["correo"] = trim($data[6]);
  113. $omitidoArr[$omitido]["telcasa"] = isset($data[7])? trim($data[7]):"";
  114. $omitidoArr[$omitido]["telcel"] = isset($data[8])? trim($data[8]):"";
  115. $omitido++;
  116. }
  117. }
  118. }
  119. $row++;
  120. }
  121. $return["alumnosArr"] = $alumnoArr;
  122. $return["omitidosArr"] = $omitidoArr;
  123. $return["omitidos"] = $omitido;
  124. }
  125. $return["json"] = json_encode($return);
  126. echo json_encode($return);
  127. ?>