Cambio de Comision de Alumnos en Materia Anual. V3.10.2

Buenos días :slight_smile:
Les explico mi situación para ver que solucion podemos implementar.
Tenemos alumnos inscriptos en una materia que posee 11 subcomisiones:
1 Teoría.
Practica Nº1, Practica Nº2, Practica Nº3, … Practica Nº10.

Hay docentes que quieren pasar alumnos de la subcomision práctica 1 a la subcomisioón práctica 2.

¿Es esto posible de hacer manteniendo las notas de la cursadas de los alumnos?
¿Hay alguna posibilidad de recuperar sus asistencias para que posteriormente en el cálculo de regularidad el cálculo de porcentaje de asistencia resulte correcto?

Muchas gracias!!! Voy a jugar un poquito con la “Distribucion de Comisiones” :slight_smile:

EDITADO: Estamos en la versión 3.10.2.

No existe esta funcionalidad de mover alumnos de una subcomision a otra subcomision de la misma comision. Entrará en las proximas versiones.

Por el momento lo que pueden hacer es accediendo a la base y pasando los alumnos de una subcomision a otra. En cuanto a si tienen notas ya cargadas, no hay problema.
Las notas de cursadas, te referis a las notas del Acta de Regulares o a notas de Evaluaciones Parciales?

Respecto al tema del registro de asistencia a las clases relacionadas con la subcomisión “Practica 1” deben ser diferentes a las clases de la subcomision “Practica 2”. Deberán ver de cargar la asistencia a estos alumnos que van a cambiar de subcomision en las clases de la subcomision destino segun lo que tengan registrado para las clases de la subcomision origen. Hay que ver si se corresponde con la misma cantidad de clases.

Me refiero a las notas de parciales.
Gracias!! muy clara tu respuesta.
Ya tenia pensado acceder a la base pero no queria toquetear mucho no vaya a ser que genere inconsistencia de datos.

Pero ya que me confirmaste que lo puedo hacer te consulto antes de hacerlo:

SELECT * FROM sga_insc_subcomision
JOIN sga_insc_cursada ON sga_insc_subcomision.inscripcion = sga_insc_cursada.inscripcion
JOIN sga_subcomisiones ON sga_subcomisiones.subcomision = sga_insc_subcomision.subcomision
JOIN sga_comisiones ON sga_insc_cursada.comision = sga_comisiones.comision AND sga_subcomisiones.comision = sga_comisiones.comision

¿Esta seria las uniones entre las tablas involucradas?
¿Lo unico que tendria que hacer es cambiar en la tabla “sga_insc_subcomision” el valor de la columna “subcomision” apuntanto a la nueva subcomision de la inscripcion del alumno?

Quiero estar seguro de no generar inconsistencias ni errores futuros :slight_smile:

Gracias!!!

Si, lo unico que tenes que cambiar es la tabla sga_insc_subcomision el campo subcomision. Podes hacer lo siguiente:

/* Consulta para buscar la subcomisiones, comisiones…*/


SELECT  v.anio_academico, v.periodo_lectivo_nombre, v.elemento_codigo as actividad_codigo, v.elemento_nombre as actividad_nombre, v.comision, v.comision_nombre, s.*, ct.nombre as tipo_clase_nombre
  FROM sga_subcomisiones as s, sga_clases_tipos as ct, vw_comisiones as v
WHERE v.comision = s.comision AND ct.tipo_clase = s.tipo_clase
ORDER BY v.anio_academico, v.periodo_lectivo_nombre, v.elemento_nombre, v.comision_nombre


Una vez identificada la comision y las subcomisiones, buscas los alumnos inscriptos en la subcomision origen:


SELECT p.apellido, p.nombres, s.inscripcion 
FROM sga_insc_cursada as ic,
     sga_insc_subcomision as s,
     sga_alumnos as a,
     vw_personas as p
WHERE ic.comision = <ID comision>
  AND a.alumno = ic.alumno
  AND p.persona = a.persona
  AND s.inscripcion = ic.inscripcion
  AND s.subcomision = <ID subcomision origen>
ORDER BY p.apellido, p.nombres 

De aca sacas los datos de “inscripcion” (insc1, insc2, … inscn) para borrar esas inscripciones en la subcomision origen, e insertarlo en la subcomision destino:


BEGIN WORK;

-- Insertar las inscripciones en la subcomision destino
INSERT INTO sga_insc_subcomision (inscripcion, subcomision)
   SELECT s.inscripcion, <id subcomision destino>
       FROM sga_insc_subcomision as s
                 sga_insc_cursada as c
       WHERE s.inscripcion = c.inscripcion
             AND c.comision = <id comision>
             AND s.subcomision = <id subcomision origen>
             AND s.inscripcion IN (insc1, insc2, ... inscn) ;

-- Borrar las inscripciones a la subcomision origen
DELETE FROM sga_insc_subcomision
  WHERE inscripcion IN ( insc1, insc2, .... inscn)
      AND subcomision = <id subcomision origen> ;

COMMIT WORK;

Aplica estos cambios en una base de test, verifica los cambios y luego hacelo en la base de producción.
Saludos.

Buenisimo!!! Muchisimas Gracias!!!