tieneAcceso() || !$objSesion->puedeEditar()){ $return["error"] = "Error! No tienes permisos para realizar esta acción."; }else if(!isset($_POST["json"]) || !isset($_SESSION["periodo_id"])){ $return["error"] = "Error! No se recibió la información de los alumnos."; }else{ $clase = json_decode($_POST["json"], true); $error = true; $return["error"] = ""; $sin_borrar = 0; $aprobadas = 0; $aprobadasArr = array(); try { $pdo->beginTransaction(); $error = false; $arregloQuery = array(); //---- Borrar todas las materias de alumnos actuales no revalidadas---- $stmt = $pdo->prepare('Select * from fd_alumnomaterias_nuevas(:usr, :per, NULL)');// $stmt->bindParam(":per", $_SESSION["periodo_id"]); 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(); $sin_borrar+= $res["fd_alumnomaterias_nuevas"]; } } $stmt->closeCursor(); //---- Insertar nueva información ---------- if(!$error){ $stmt = $pdo->prepare('Select * from fi_alumnomaterias(:usr, :per, :mat, :gpo)'); $stmt->bindParam(":per", $_SESSION["periodo_id"]); foreach($clase as $alumno){ $stmt->bindParam(":usr", $alumno["id"]); foreach($alumno["matArr"] as $mat){ //if(!isset($mat["califArr"]) || (isset($mat["califArr"]) && count($mat["califArr"]) == 0)){ $stmt->bindParam(":mat", $mat["id"]); $stmt->bindParam(":gpo", $mat["grupo_id"]); if(!$stmt->execute()){ $t = $stmt->errorInfo(); $return["error"] .= "Ocurrió un error al guardar la materia '".$mat["desc"]."' del alumno '".$alumno["id"]."'. ";//.$t[2]; $error = true; } $rs_tmp = $stmt->fetch(); if($rs_tmp["Materia_aprobada"]){ $aprobadas++; $aprobadasArr[] = array("usr"=>$alumno["id"], "mat"=>$mat["id"]); } //} } } $stmt->closeCursor(); } $return["sin_borrar"] = $sin_borrar; $return["aprobadas"] = $aprobadas; $return["aprobadasArr"] = $aprobadasArr; if(!$error){ $pdo->commit(); unset($return["error"]); $return["ok"] = "Las materias se guardaron correctamente"; }else $pdo->rollBack(); $stmt = null; // cierra conexion } catch(PDOException $e) { $pdo->rollBack(); $return["error"] = "Ocurrió un error al insertar las materias de los alumnos."; } } $return["json"] = json_encode($return); echo json_encode($return); ?>