tieneAcceso() || !$objSesion->puedeEditar()){ $return["error"] = "Error! No tienes permisos para realizar esta acción."; }else if(!isset($_POST["json"], $_POST["tipo"]) || !isset($_SESSION["periodo_id"])){ $return["error"] = "Error! No se recibió la información de los alumnos."; }else{ $clase = json_decode($_POST["json"], true); $tipo = filter_input(INPUT_POST, "tipo", FILTER_SANITIZE_NUMBER_INT);//tipo 2 ord, 3 extra $error = true; $return["error"] = ""; $sin_borrar = 0; try { $pdo->beginTransaction(); $error = false; $arregloQuery = array(); //---- Borrar todas las materias de alumnos actuales revalidadas---- $stmt = $pdo->prepare('Select * from fd_alumnomaterias_calif(:usr, :per, NULL, :tipo)');//solo del tipo indicado $stmt->bindParam(":per", $_SESSION["periodo_id"]); $stmt->bindParam(":tipo", $tipo); foreach($clase as $alumno){ $stmt->bindParam(":usr", $alumno["id"]); if(!$stmt->execute()){ $t = $stmt->errorInfo(); $return["error"] .= "Ocurrió un error al borrar las materias del alumno '".$alumno["id"]."'. ";//.$t[2]; $error = true; }else{ $res = $stmt->fetch(); } } $stmt->closeCursor(); //---- Inserta nuevas califiacciones ---------- if(!$error){ //alumnosObj.push({id: , nombre:"", plan:"", matArr:[{id, desc, clave, plan, sem, grupo_id, grupo, califArr{calif, fecha, calif_tipo, revalidada}}]}); $stmt = $pdo->prepare('Select * from fi_alumnomaterias_calif(:usr, :per, :mat, :tipo, :calif)'); $stmt->bindParam(":per", $_SESSION["periodo_id"]); foreach($clase as $alumno){ $stmt->bindParam(":usr", $alumno["id"]); foreach($alumno["matArr"] as $mat){ if(!$error && $mat["calif"] != NULL && $mat["calif"] != ""){ $stmt->bindParam(":mat", $mat["id"]); $stmt->bindParam(":calif", $mat["calif"]); $stmt->bindParam(":tipo", $tipo); if(!$stmt->execute()){ $t = $stmt->errorInfo(); $return["error"] .= "Ocurrió un error al guardar la calificación de la materia '".$mat["desc"]."' del alumno '".$alumno["id"]."'. ".$t[2]; $error = true; } } } } $stmt->closeCursor(); } if(!$error){ $pdo->commit(); unset($return["error"]); $return["ok"] = "Las calificaciones se guardaron correctamente"; }else $pdo->rollBack(); $stmt = null; // cierra conexion } catch(PDOException $e) { $pdo->rollBack(); $return["error"] = "Ocurrió un error al insertar las calificaciones de los alumnos."; } } $return["json"] = json_encode($return); echo json_encode($return); ?>