beginTransaction(); $stmt = $pdo->prepare("SELECT alumno_extraccion_id from alumno_extraccion_fecha where not actualizado"); if(!$stmt->execute()){ echo "Error al consultar las fechas de extracción de alumnos"; exit(); } $fechas_rs = $stmt->fetch(); if(empty($fechas_rs) || $fechas_rs["alumno_extraccion_id"] == ""){ echo "No hay fechas de extracción de alumnos para actualizar"; exit(); } $stmt = $pdo->prepare('SELECT ca."Carrera_clave", pe."PlanEstudio_clave", ca."Carrera_id", pe."PlanEstudio_id" from "Carrera" ca INNER JOIN "PlanEstudio" pe ON ca."Carrera_id" = pe."Carrera_id"'); if(!$stmt->execute()){ echo "Error al consultar planes de estudio"; exit(); } $planes_rs = $stmt->fetchAll(); //función que recibe $planes_rs y $clave_carrera y $clave_plan y regresa el id de plan de estudio function getPlanId($planes_rs, $clave_carrera, $clave_plan){ foreach($planes_rs as $plan){ if($plan["Carrera_clave"] == $clave_carrera && $plan["PlanEstudio_clave"] == $clave_plan){ return $plan["PlanEstudio_id"]; } } return null; } $stmt = $pdo->prepare("SELECT * from alumno_detalles "); if(!$stmt->execute()){ echo "Error al consultar los datos de alumnos"; exit(); } $total = 0; $alumnos_rs = $stmt->fetchAll(); foreach($alumnos_rs as $alumno){ if($alumno["estatus"] == 'R'){ /* //Validar plan de estudio de alumno if($alumno["clave_carrera"] == "" || $alumno["clave_carrera"] == null){ echo "Error al obtener plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } $stmt = $pdo->prepare('SELECT "Carrera_clave" FROM "Carrera" WHERE "Carrera_clave" = :carrera'); $stmt->bindParam(":carrera", $alumno["clave_carrera"]); if(!$stmt->execute()){ echo "Error al consultar los datos de alumnos"; continue; } $carr_rs = $stmt->fetch(); if($carr_rs["Carrera_clave"] == "" || $carr_rs["Carrera_clave"] == null){ echo "Error al obtener plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; }*/ $stmt = $pdo->prepare("SELECT * from fi_alumno(:nombre, :apellidos, :curp, :clave)"); $stmt->bindParam(":nombre", $alumno["nombre"]); $apellidos = $alumno["apellido_paterno"]." ".$alumno["apellido_materno"]; $stmt->bindParam(":apellidos", $apellidos); $stmt->bindParam(":curp", $alumno["curp"]); $stmt->bindParam(":clave", $alumno["clave"]); if(!$stmt->execute()){ echo "Error al insertar datos de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } $rs = $stmt->fetch(); $id_alumno = $rs["Usuario_id"]; $existe = $rs["Usuario_existe"]; //Obtener Id de plan de alumno $planInt = intval($alumno["plan"]); $alumno_plan = getPlanId($planes_rs,$alumno["clave_carrera"], $planInt); if($alumno_plan == null){ echo "Error al obtener plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } if($existe){ //Actualiza el plan de estudio del alumno $stmt = $pdo->prepare("SELECT * FROM fu_alumno_cambiocarrera(:claveulsa)"); $stmt->bindParam(":claveulsa", $alumno["clave"]); if(!$stmt->execute()){ echo "Error al insertar cambio de carrera ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } } //Inserta el plan de estudio del alumno $stmt = $pdo->prepare("SELECT * FROM fi_alumno_planestudio(:id, :plan, :claveulsa, CURRENT_DATE, NULL, NULL, CURRENT_DATE)"); $stmt->bindParam(":id", $id_alumno); $stmt->bindParam(":plan", $alumno_plan);//Calculado $stmt->bindParam(":claveulsa", $alumno["clave"]); if(!$stmt->execute()){ echo "Error al insertar plan de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } //Actualiza adicionales de alumno $stmt = $pdo->prepare("SELECT * FROM fu_alumno_extras(:id, :clave, :servicio, :semestre, :sexo, :grupo)"); $stmt->bindParam(":id", $id_alumno); $stmt->bindParam(":clave", $alumno["clave"]); $stmt->bindParam(":servicio", $alumno["servicio"]); $stmt->bindParam(":semestre", $alumno["semestre"]); $stmt->bindParam(":sexo", $alumno["sexo"]); $stmt->bindParam(":grupo", $alumno["grupo"]); if(!$stmt->execute()){ echo "Error al actualizar datos adicionales de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } //---- Inserta historial de materias de alumno ----- $stmt = $pdo->prepare('SELECT * from extract_fi_alumnomaterias_calif(:clave)'); $stmt->bindParam(":clave", $alumno["clave"]); if(!$stmt->execute()){ echo "Error al guardar calificaciones de alumno ".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } //Actualiza alumno_extraccion para indicar que ya se procesó $stmt = $pdo->prepare('UPDATE alumno_extraccion set registrado = true where "Usuario_claveULSA" = :clave'); $stmt->bindParam(":clave", $alumno["clave"]); if(!$stmt->execute()){ echo "Error al actualizar el registro de extracción de alumno [".$alumno["clave"]."]".$alumno["nombre"]." ".$alumno["apellido_paterno"]." ".$alumno["apellido_materno"]."
"; continue; } $total++; } } //Actualiza alumno_extraccion_fecha para indicar que ya se procesó $stmt = $pdo->prepare('UPDATE alumno_extraccion_fecha set actualizado = true where alumno_extraccion_id = :id'); $stmt->bindParam(":id", $fechas_rs["alumno_extraccion_id"]); if(!$stmt->execute()){ echo "Error al actualizar el registro de extracción de alumnos"; } $pdo->commit(); echo $total." datos de alumnos actualizados correctamente"; } catch (Exception $e) { echo $e->getMessage(); echo "Error al actualizar los datos de los alumnos"; exit(); } ?>