123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?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 renglonVacio($data, $max){
- for($i = 0; $i<=$max; $i++){
- if(isset($data[$i]) && trim($data[$i]) != "")
- return false;
- }
- return true;
- }
- 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;
- }
- //--- 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);
- $sheetData = $spreadsheet->getActiveSheet()->toArray();
- //$highestRow = $spreadsheet->getHighestRow();//1 a N
- $alumnoArr = array();
- $omitidoArr = array();
- $al = 0;
- $omitido = 0;
- $row = 1;
- foreach($sheetData as $data){
- if($row > 1){//ignora header
- //if(trim($data[0]) != "" && trim($data[1]) != "" && trim($data[2]) != "" && trim($data[3]) != ""){
- if(valoresCompletos($data, 6)){
- /*$alumnoArr[$al]["apellidos"] = (trim($data[0]));
- $alumnoArr[$al]["nombre"] = (trim($data[1]));*/
- $alumnoArr[$al]["apellidos"] = mb_convert_case(mb_strtolower(trim($data[0])), MB_CASE_TITLE, "UTF-8");
- $alumnoArr[$al]["nombre"] = mb_convert_case(mb_strtolower(trim($data[1])), MB_CASE_TITLE, "UTF-8");
- $alumnoArr[$al]["clave"] = $data[2];
- $alumnoArr[$al]["curp"] = mb_strtoupper(trim($data[3]));
-
- $fechaTmp = $spreadsheet->getActiveSheet()->getCell('E'.$row)->getValue();
- $alumnoArr[$al]["ingreso"] = fechaGuion(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
- $fechaTmp = $spreadsheet->getActiveSheet()->getCell('F'.$row)->getValue();
- $alumnoArr[$al]["generacion"] = fechaGuion(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
-
-
- $alumnoArr[$al]["correo"] = trim($data[6]);
- $alumnoArr[$al]["telcasa"] = isset($data[7])? trim($data[7]):"";
- $alumnoArr[$al]["telcel"] = isset($data[8])? trim($data[8]):"";
-
- $al++;
- }else{
- if(!renglonVacio($data, 9)){//si no están vacías las 9 celdas del rengón
- /*$omitidoArr[$omitido]["apellidos"] = (trim($data[0]));
- $omitidoArr[$omitido]["nombre"] = (trim($data[1]));*/
- $omitidoArr[$omitido]["apellidos"] = mb_convert_case(mb_strtolower(trim($data[0])), MB_CASE_TITLE, "UTF-8");
- $omitidoArr[$omitido]["nombre"] = mb_convert_case(mb_strtolower(trim($data[1])), MB_CASE_TITLE, "UTF-8");
- $omitidoArr[$omitido]["clave"] = $data[2];
- $omitidoArr[$omitido]["curp"] = mb_strtoupper(trim($data[3]));
-
- if(trim($data[4]) != ""){
- $fechaTmp = $spreadsheet->getActiveSheet()->getCell('E'.$row)->getValue();
- $omitidoArr[$omitido]["ingreso"] = fechaMonthPicker(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
- }else{
- $omitidoArr[$omitido]["ingreso"] = "";
- }
- if(trim($data[5]) != ""){
- $fechaTmp = $spreadsheet->getActiveSheet()->getCell('F'.$row)->getValue();
- $omitidoArr[$omitido]["generacion"] = fechaMonthPicker(date_format(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($fechaTmp), "d/m/Y"), false);
- }else{
- $omitidoArr[$omitido]["generacion"] = "";
- }
- $omitidoArr[$omitido]["correo"] = trim($data[6]);
- $omitidoArr[$omitido]["telcasa"] = isset($data[7])? trim($data[7]):"";
- $omitidoArr[$omitido]["telcel"] = isset($data[8])? trim($data[8]):"";
- $omitido++;
- }
- }
- }
- $row++;
- }
- $return["alumnosArr"] = $alumnoArr;
- $return["omitidosArr"] = $omitidoArr;
- $return["omitidos"] = $omitido;
- }
- $return["json"] = json_encode($return);
- echo json_encode($return);
- ?>
|