function guardar_grupo($datosGrupo) { try { $idGrupo = str_replace(" ", "", $datosGrupo['idGrupo']); $nombre = $datosGrupo['nombre']; $min = $datosGrupo['min']; $max = $datosGrupo['max']; $conexion = null; $conexion = conectar(); $conexion->begin_transaction(); //Chequeo si existe el grupo if (existe_grupo($datosGrupo['idGrupo'])) { echo "<p style='padding: 5px;background-color: #FFC107;color: white;'>[guardar_curso]: El grupo {$idGrupo} ya existe.</p>"; return; } //Genero las consultas $success = $conexion->query("INSERT INTO grupos (idGrupo,nombre,min,max) VALUES ('{$idGrupo}', '{$nombre}', {$min}, {$max})"); foreach ($datosGrupo['cursos'] as $curso) { //Chequeo si el curso existe $idCurso = $curso['idCurso']; $puntaje = $curso['puntaje']; $actividad = $curso['actividad'] == "Examen aprobado" ? "EXAMEN" : "CURSO"; $existe = existe_curso($idCurso); if ($existe) { $success = $conexion->query("INSERT INTO curso_grupo (idGrupo,idCurso,puntaje,actividad) VALUES ('{$idGrupo}', '{$idCurso}', {$puntaje}, '{$actividad}')"); } } if (!$success) { throw new Exception("[guardar_grupo]: Error al almacenar el grupo {$idGrupo}."); } //Commit $success = $conexion->commit(); if (!$success) { throw new Exception("[guardar_grupo]: Error al hacer commit del grupo {$idGrupo}."); } echo "<p style='padding: 5px;background-color: green;color: white;'>[guardar_grupo]: El grupo {$idGrupo} ha sido almacenado correctamente.</p>"; } catch (Exception $e) { if ($conexion != null) { $conexion->rollback(); } throw $e; } finally { if ($conexion != null) { $conexion->close(); } } }
function guardar_datos_aprobacion($idCurso, $datos) { try { $conexion = null; $conexion = conectar(); $conexion->begin_transaction(); //Chequeo si existe el curso if (!existe_curso($idCurso)) { echo "<p style='padding: 5px;background-color: #FFC107;color: white;'>[guardar_datos_aprobacion]: El curso {$idCurso} no existe.</p>"; return; } //Nota promedio $success = $conexion->query("SELECT nota_promedio, total_cursantes, aprobados, exonerados, porcentaje_aprobacion FROM cursos WHERE idCurso = '{$idCurso}'"); if (!$success) { throw new Exception("[guardar_datos_aprobacion]: Error al almacenar datos de aprobacion del curso {$idCurso}."); } $query = $success->fetch_assoc(); if ($datos['nota_promedio'] != 'S/N') { $nota_promedio = number_format(((double) $query['nota_promedio'] + (double) $datos['nota_promedio']) / 2, 1, '.', ''); } else { $nota_promedio = 'S/N'; } //Total cursantes $total_cursantes = (int) $datos['total_cursantes'] + (int) $query['total_cursantes']; if (isset($datos['aprobados'])) { //Aprobados $aprobados = (int) $datos['aprobados'] + (int) $query['aprobados']; } //Exonerados $exonerados = (int) $datos['exonerados'] + (int) $query['exonerados']; //Porcentaje de aprobacion $porcentaje_aprobacion = number_format($exonerados / $total_cursantes * 100, 1, '.', ''); //Actualizo los datos if (isset($datos['aprobados'])) { $success = $conexion->query("UPDATE cursos SET nota_promedio = '{$nota_promedio}', total_cursantes = {$total_cursantes}, aprobados = {$aprobados}, exonerados = {$exonerados}, porcentaje_aprobacion = {$porcentaje_aprobacion} WHERE idCurso = '{$idCurso}'"); } else { $success = $conexion->query("UPDATE cursos SET nota_promedio = '{$nota_promedio}', total_cursantes = {$total_cursantes}, exonerados = {$exonerados}, porcentaje_aprobacion = {$porcentaje_aprobacion} WHERE idCurso = '{$idCurso}'"); } //Commit $success = $conexion->commit(); if (!$success) { throw new Exception("[guardar_datos_aprobacion]: Error al hacer commit curso {$idCurso}."); } echo "<p style='padding: 5px;background-color: green;color: white;'>[guardar_datos_aprobacion]: Datos aprobacion de {$idCurso} han sido actualizado correctamente.</p>"; } catch (Exception $e) { if ($conexion != null) { $conexion->rollback(); } throw $e; } finally { if ($conexion != null) { $conexion->close(); } } }