tieneAcceso()){
$return["error"] = "No tienes permisos para acceder a esa sección o la sesión caducó.";
}else if(!isset($_FILES['archivo']['name'][0])){
$return["error"] = "No se recibieron los datos de los 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"] = "El archivo supera los 10MB y no se puede cargar.";
$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. Solo se permiten archivos XLS o XLSX.";
$return["json"] = json_encode($return);
echo json_encode($return);
exit();
}
//--------
$stmt = $pdo->prepare('Select DISTINCT "Carrera_prefijo", "Carrera_id" from fs_planestudio(:nivel, NULL, NULL, true, 0, NULL) ORDER BY "Carrera_prefijo"');
$stmt->bindParam(":nivel", $_SESSION["nivel_id"]);
if(!$stmt->execute()){
$return["error"] = "Ocurrió un error al cargar los planes de estudios";
$return["json"] = json_encode($return);
echo json_encode($return);
exit();
}else{
$plan_rs = $stmt->fetchAll();
}
$stmt->closeCursor();
//---------
//$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();
try {
$pdo->beginTransaction();
$alumnoArr = array();
$row = 1;
$omitidoArr = array();
$insertada = 0;
$debug = "";
$i=0;
$al_old;
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, 2)){
if(strpos( $data[1], "ELECTIVA") ===false){
$clave = $data[0];//OK
$tmpArr = explode("-", $data[1]);
$shortname = $tmpArr[0];
$mat_id = $tmpArr[3];//OK
$grupo = quitaCarrera($plan_rs, $shortname );//OK
//echo "SELECT * from fi_alumnomaterias_excel($clave, ".$_SESSION["periodo_id"].", $grupo, $mat_id) ||";
$stmt = $pdo->prepare('SELECT * from fi_alumnomaterias_excel(:clave, :per, :gpo, :mat)');
$stmt->bindParam(":clave", $clave);
$stmt->bindParam(":per", $_SESSION["periodo_id"]);
$stmt->bindParam(":gpo", $grupo);
$stmt->bindParam(":mat", $mat_id);
if(!$stmt->execute()){
$pdo->rollBack();
$return["error"] = "Ocurrió un error al cargar los planes de estudios";
$return["json"] = json_encode($return);
echo json_encode($return);
exit();
}else{
$mat_rs = $stmt->fetch();
}
$stmt->closeCursor();
if($mat_rs["Materia_insertada"]){
$insertada++;
}else{
if($mat_rs["Materia_repetida"]){
$omitidoArr[] = array("clave"=>$clave, "shortname"=>$data[1], "desc"=> $row.". La materia $mat_id ya estaba asignada");
}else{
$omitidoArr[] = array("clave"=>$clave, "shortname"=>$data[1], "desc"=> $row.". Error al insertar la materia $mat_id para el alumno $clave en el grupo $grupo");
}
$debug .= 'SELECT * from fi_alumnomaterias_excel(\''.$clave.'\', '.$_SESSION["periodo_id"].', '.$grupo.', '.$mat_id.')'." |";
}
}
}else{
$omitidoArr[] = array("clave"=>$clave, "shortname"=>$data[1], "desc"=> $row.". El renglón no tiene los datos requeridos");
}
}
$row++;
}
//$pdo->commit();
/*$stmt = null; // cierra conexion
if($repetido == 0){
header("Location: ".$pag."?ok=0");
}else if($repetido < count($apellidos)){
header("Location: ".$pag."?ok=1&rep=".$repetido);
}else{
header("Location: ".$pag."?error=4");
}*/
//$alumnoArr;
$return["insertados"] = $insertada;
$return["omitidosArr"] = $omitidoArr;
//$return["debug"] = $debug;
} catch(PDOException $e) {
//$pdo->rollBack();
//header("Location:".$pag."?error=1");
print_r($e);
}
}
$return["json"] = json_encode($return);
echo json_encode($return);