123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- /* AJAX
- * Selecciona los datos de la carrera
- * Recibe:
- * id - ID de la carrera
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/util.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../classes/ValidaSesion.php");
- require "../../include/phpSpreadsheet/autoload.php";
- /*
- $return["archivo"] = $_FILES['archivo']['name'];
- $return["inputFileName"] = $_FILES['archivo']['tmp_name'];
- $return["size"] = $_FILES['archivo']['size'];
- $return["json"] = json_encode($return);
- echo json_encode($return);
- exit();*/
- use PhpOffice\PhpSpreadsheet\IOFactory;
- function valoresCompletos($data, $max){
- for($i = 0; $i<$max; $i++){
- if(!isset($data[$i]) || (trim($data[$i]) == "" || strlen(trim($data[$i])) <= 1))
- return false;
- }
- return true;
- }
- function getPlanId($plan_rs, $texto){
- foreach($plan_rs as $plan){
- if(mb_stripos($texto, $plan["PlanEstudio_nombre"]) !== false){
- return $plan["PlanEstudio_id"];
- }
- }
- return false;
- }
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- $objSesion = new ValidaSesion($pdo, 101, GEMA);
- if(!$objSesion->tieneAcceso()){
- $return["error"] = "Error! No tienes permisos para realizar esta acción.";
- }else if(!isset($_FILES['archivo']['name']) || $_FILES['archivo']['name'] == null){
- $return["error"] = "Error! No se recibió la información del archivo de alumnos.";
- }else{
- //$inputFileName =__DIR__. '/tmp/alumnos_tmp.xlsx';
- $archivo = $_FILES['archivo']['name'][0];
- // Check file size
- if ($_FILES["archivo"]["size"][0] > 10 * 1024 * 1024) {//en bytes
- $return["error"] = "Demasiado grande";
- $return["json"] = json_encode($return);
- echo json_encode($return);
- exit();
- }
- $exts_arr = array("xls","xlsx");
- $dot_arr = explode('.', $archivo);
- $ext = end($dot_arr);
- if(!in_array($ext, $exts_arr)){
- $return["error"] = "No es una extensión válida";
- $return["json"] = json_encode($return);
- echo json_encode($return);
- exit();
- }
- //$newfilename = "tmp_al_".$_SESSION["gpo_id"].".".$ext;
- $inputFileName = $_FILES["archivo"]["tmp_name"][0];
- $inputFileType = IOFactory::identify($inputFileName);
- $reader = IOFactory::createReader($inputFileType);
- $spreadsheet = $reader->load($inputFileName);
- $spreadsheet->setActiveSheetIndex(0);
- $sheetData = $spreadsheet->getActiveSheet()->toArray();
- //$highestRow = $spreadsheet->getHighestRow();//1 a N
- $stmt = $pdo->prepare('Select * from fs_planestudio(NULL, NULL, NULL, true, 0, NULL) WHERE "PlanEstudio_altas" = true');
- if(!$stmt->execute()){
- $errorDesc = "Ocurrió un error al cargar los planes de estudios";
- }else{
- $plan_rs = $stmt->fetchAll();
- }
- $stmt->closeCursor();
- $alumnoArr = array();
- $omitidoArr = array();
- $al = 0;
- $omitido = 0;
- $row = 1;
- foreach($sheetData as $data){//Carrera / Clave / Nombre completo
- if($row > 1){//ignora header
- //if(trim($data[0]) != "" && trim($data[1]) != "" && trim($data[2]) != "" && trim($data[3]) != ""){
- if(valoresCompletos($data, 3)){
-
- $nombre = mb_convert_case(mb_strtolower(trim($data[2])), MB_CASE_TITLE, "UTF-8");
- $nombreArr = explode(" ",$nombre);
- $n_pal = count($nombreArr);
- $apeArr = [];
- for($i=0;$i<$n_pal-1;$i++){
- $apeArr[] = $nombreArr[$i];
- }
- $plan = getPlanId($plan_rs, $data[0]);
- if($plan !== false){
- $alumnoArr[$al]["plan"] = $plan;
- $alumnoArr[$al]["apellidos"] = implode(" ", $apeArr);
- $alumnoArr[$al]["nombre"] = $nombreArr[$n_pal-1];
- $alumnoArr[$al]["clave"] = $data[1];
- $alumnoArr[$al]["curp"] = "CURP".$data[1];
- $al++;
- }else{
- $omitido++;
- }
- }else{
- $omitido++;
- }
- }
- $row++;
- }
- $return["alumnosArr"] = $alumnoArr;
- //$return["omitidosArr"] = $omitidoArr;
- $return["omitidos"] = $omitido;
- }
- $return["json"] = json_encode($return);
- echo json_encode($return);
- ?>
|