Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Descripción

Ejecuta el proceso de promoción para un colegio. Este proceso crea los registros del colegio en un nuevo ciclo escolar. Copiando las relaciones de colegio_nivel_ciclo, persona_rol, alumnos_grado y familiares de los alumnos del ciclo indicado como parámetro. Los alumnos activos del colegio son promovidos al siguiente grado escolar.

Referencia SIFExtensión de SIF 3.0.1
Tipo de PeticiónPUT
Parámetros o Campos
CamposDescripciónReglas de negocio
school
  • (Obligatorio) Id del Colegio correspondiente 
  • El identificador del colegio debe existir, en caso de no ser válido devuelve:
    •  <code>404</code>

      <message>No se encontraron datos con los parámetros especificados.</message>

  • Si no ese especifica el parámetro, como es obligatorio devuelve:
    •  <code>400</code>
      <message>Debe especificar el identificador del colegio.</message>
schoolYear
  • (Obligatorio) Año escolar actual que se desea promover.

  • El año escolar debe existir, en caso de no ser válido devuelve:
    •  <code>404</code>

      <message>No se encontraron datos con los parámetros especificados.</message>

  • Si no ese especifica el parámetro, como es obligatorio devuelve:
      •  <code>400</code>
        <message>Debe especificar un ciclo para consultar.</message>
  • Debe existir el siguiente ciclo escolar al que se promoverán el colegio y alumnos.
  • La fecha desde del siguiente ciclo debe ser mayor a la fecha hasta del ciclo escolar actual y pertenecer a la misma empresa del colegio.
level
  • (Opcional) - Id del Nivel correspondiente correspondiente. Ver maestro de niveles.

Si se especifica esta variable entonces solo se promociona el nivel correspondiente.

 

 

Ejemplo 1 de llamada

http://desenv.uno-internacional.com/sif/unoSchool/promote;contextId={"school":1135, "schoolYear":2014}

Respuesta

<updateResponse>

    <updates>

        <update id="00000000-0000-1000-0000-000000001135" statusCode="200" /> Se realizó exitosamente.

    </updates>

</updateResponse>

Ejemplo 2 de llamada

http://desenv.uno-internacional.com/sif/unoSchool/promote;contextId={"school":1074, "schoolYear":2014, "level":18}

Respuesta

<updateResponse>

    <updates>

        <update id="00000000-0000-1000-0000-000000001074" statusCode="200" /> Se realizó exitosamente.

    </updates>

</updateResponse>

¿Quién lo utiliza y cómo?

Proceso utilizado por SIS para la promoción anual de sus colegios y alumnos.

Procedimiento

Para la promoción se ejecuta el procedimiento promueve_colegio_nivel_ciclo para cada nivel del colegio. El cual procesa la promoción del nivel y los alumnos.

Promoción del nivel

Inserta registros en la tabla 'colegio_nivel_ciclo'

  • Recupera el valor 'colegio_nivel_ciclo.colegio_nivel_ciclo_id' que corresponde al colegio, ciclo_escolar y nivel dados en los parámetros y que además cumpla 'colegio_nivel_ciclo.baja = 0'.
  • Recupera el siguiente 'ciclo_escolar.ciclo_escolar_id' de la empresa. Validando que la fecha desde sea mayor a la fecha hasta del ciclo_escolar anterior y que las versiones sean iguales.
  • Verifica que no exista registro en la tabla 'colegio_nivel_ciclo' para el colegio, nivel_id y siguiente ciclo_escolar.
  • En caso de que no exista, se inserta un nuevo registro en la tabla 'colegio_nivel_ciclo' con los siguiente valores:
    • empresa_id – El dato se toma del registro anterior.
    • colegio_id – El dato se toma del registro anterior.
    • nivel_id – El dato se toma del registro anterior.
    • ciclo_escolar_id – siguiente ciclo_escolar_id
    • turno_id – El dato se toma del registro anterior.
    • persona_id – El dato se toma del registro anterior.
    • Clave –  El dato se toma del registro anterior y se le concatena “+” para evitar duplicados en BDC.
    • clave_oficial – El dato se toma del registro anterior.
    • fecha_adopcion– El dato se toma del registro anterior.
    • Observaciones – El dato se toma del registro anterior.
    • idioma_id – El dato se toma del registro anterior.
    • zona_horaria_id - – El dato se toma del registro anterior.
    • activo – El dato se toma del registro anterior.
    • paga_colegio – El dato se toma del registro anterior.
    • fecha_actualizacion – Fecha en la que se realiza la promoción.
    • persona_rol_id – Id del registro de persona_rol de quién realiza la promoción.
    • alias_ciclo_escolar - – El dato se toma del registro anterior.
    • alias_nivel – El dato se toma del registro anterior.
    • versión – El dato se toma del registro anterior.
    • alumno_consulta_boleta – El dato se toma del registro anterior.
    • familiar_consulta_boleta – El dato se toma del registro anterior.
    • colegio_sis – El dato se toma del registro anterior.
    • colegio_r4 - – El dato se toma del registro anterior.

Inserta registros en 'persona_rol'

  • Recupera de la tabla 'persona_rol' los registros relacionados al 'colegio_nivel_ciclo_id' anterior, que tengan activo = 1 y que tengan alguno de los siguientes roles administrativos: ADCOL-Administrador (Sólo para Colombia este rol no está considerado), COACH-Coach, CONS-Consultor, C_PRAL-Contacto principal, C_LOG-Contacto logística, RL-Representante Legal, CTU-Contacto telefónico, C_FAC-Contacto facturación, DG-Diseñador Gráfico, CCU-Centro de Contacto, SSU-Staff Sistema, ADMM-Administrador aplicación server colegio, VEN-Vendedor, C_TI-Contacto para Tecnologías de Información o DIST-Distribuidor.
  • Posteriormente verificando que no existan los registros en la tabla 'persona_rol' con el nuevo 'colegio_nivel_ciclo_id'. Se insertan y quedan con los siguientes valores:
    • sistema_id - Default envía 1
    • persona_id - Id de la persona que le corresponde en la tabla persona ( persona_id)
    • rol_id – Id que tiene en la tabla persona_rol del ciclo anterior
    • colegio_nivel_ciclo_id – nuevo colegio_nivel_ciclo_id
    • activo – ya que sólo se buscan roles activos este campo siempre va en 1
    • fecha_actualizacion – Fecha en la que se realiza la promoción.
    • persona_rol_actualizacion_id – Id del registro de persona_rol de quién realiza la promoción
    • version - Default envía 0

Inserta registros en 'empresa_persona_rol'

  • Por cuestiones de permisos para las app's los id's, los registros que se acaban de insertar en la tabla 'persona_rol' se insertan en la tabla 'empresa_persona_rol' con los siguientes valores.
    • empresa_id – Id del empresa a la que pertenece el nivel
    • persona_rol_id – ID del registro nuevo generado en el proceso anterior
    • activo – 1 por default ya que sólo se toman usuarios activos
    • fecha_actualizacion - – Fecha en la que se realiza la promoción.
    • persona_rol_actualizacion_id - Id del registro de persona_rol de quién realiza la promoción.


Promoción de alumnos

Inserta registros en 'colegio_grado_grupo' 

  • De la tabla 'colegio_grado_grupo'  se recuperan los grupos/grados activos para el colegio con colegio_nivel_ciclo_id anterior.
  • Para cada grado/grupo se valida que tenga alumnos activos en la tabla 'alumno' ('alumno.activo' = 1).
  • Se calcula el siguente grado que corresponde a cada grado/grupo. Se verifica que no exista y en caso de que no, lo inserta en la tabla 'colegio_grado_grupo' con los siguientes valores:
    • colegio_nivel_ciclo_id – El valor es el colegio_nivel_ciclo_id nuevo.
    • grado_id – El siguiente grado que le corresponde en el ciclo escolar nuevo.
    • grupo_id – El dato se toma del registro anterior.
    • fecha_actualizacion – Fecha en la que se realiza la promoción.
    • persona_rol_id – Id del registro de persona_rol de quién realiza la promoción.
    • alias_grado – El dato se manda en blanco para que pueda ser configurada.
    • alias_grupo – El dato se manda en blanco para que pueda ser configurada.
    • version – Se manda en 0.

Inserta registros en 'alumno'

  • Se recuperan los registros activos de la tabla 'alumno' relacionados al 'colegio_nivel_ciclo_id' anterior.
  • Verificando que no existan en la tabla 'alumno', se insertan con los siguientes valores:
    • empresa_id – El dato se toma del registro anterior.
    • persona_id – El dato se toma del registro anterior.
    • colegio_nivel_ciclo_id – El valor es el colegio_nivel_ciclo_id nuevo.
    • colegio_grado_grupo_id - El valor es el colegio_grado_grupo_id nuevo.
    • alumno_clave - El dato se toma del registro anterior en algunos países corresponde a la matrícula
    • id_responsable  - El dato se toma del registro anterior, en el caso de Brasil Id de la persona que paga.
    • fecha_desde – Fecha en que se realiza la promoción.
    • activo -  El valos es 1 ya que sólo se tomaron alumnos activos para la promoción.
    • no_cobrar - El dato se toma del registro anterior.
    • no_entregar - El dato se toma del registro anterior.
    • fecha_actualizacion – Fecha en la que se realiza la promoción.
    • persona_rol_id - Id del registro de persona_rol de quién realiza la promoción.
    • version - Se manda en 0 por default.

Inserta registros de alumnos en 'persona_rol'

  • Se recuperan los alumnos que se acaban de relacionar al nuevo colegio_nivel_ciclo_id en la tabla 'alumno'.
  • Verificando que no existan en la tabla 'persona_rol', se insertan con los siguientes valores:
    • sistema_id - Default envía 1
    • persona_id - El dato se toma del registro alumno.persona_id.
    • rol_id - El dato se toma de la tabla 'rol' donde el parámetro = '001' (Alumno)
    • colegio_nivel_ciclo_id - El valor es el colegio_nivel_ciclo_id nuevo.
    • colegio_grado_grupo_id - El valor es el colegio_grado_grupo_id nuevo.
    •               activo - El valor1 es 1 ya que sólo se tomaron alumnos activos para la promoción.
    • fecha_actualizacion - Fecha en la que se realiza la promoción.
    • persona_rol_actualizacion_id Id del registro de persona_rol de quién realiza la promoción.
    • version -  Se manda en 0 por default.

Para la promocion de usuarios se ejecuta el procedimiento promueve_usuario_colegio para cada nivel escolar del colegio.

Promoción de usuarios

Inserta registros en 'persona_rol'

  • Para poder ejecutar la promoción de usuarios, primero se debe ejecutar la promoción por nivel. Ya que si no existe el 'colegio_nivel_ciclo_id' para el siguiente ciclo_escolar_id no hace nada.
  • Se recuperan los registros de la tabla 'persona_rol' y con los roles: ADCOL - Administrador, ADMM - Administrador aplicación server colegio, AS - Asistente, COACH - Coach, CONS - Consultor, COOR - Coordinador, DIR - Director, GC - Gestor Censo, GG - Gestor Grade, PF - Familiar, PROF - Profesor, RL - Representante Legal, SOC - Socio, SSU - Staff Sistema, SUBD - Subdirector.
  • Verifica que no existan los registros relacionados al siguiente colegio_nivel_ciclo_id.Si no existen los inserta en la tabla 'persona_rol' con los siguiente valores:
    • sistema_id - El dato se toma del registro anterior, que por default es 1
    • persona_id - El dato se toma del registro anterior
    • rol_id- El dato se toma del registro anterior.
    • colegio_nivel_ciclo_id - valor del colegio_nivel_ciclo_id que insertó para el nuevo ciclo
    • colegio_grado_grupo_id - valor del colegio_nivel_ciclo_id que insertó para el nuevo ciclo
    • activo - ya que sólo se buscan roles activos este campo siempre va en 1
    • fecha_actualizacion– Fecha en la que se realiza la promoción.
    • persona_rol_actualizacion_id - – Id del registro de persona_rol de quién realiza la promoción.

Inserta registros en 'empresa_persona_rol'

  • Verifica si los 'persona_rol_id' recien insertados de los usuarios existen en 'empresa_persona_rol', si no existen los inserta con los siguientes valores:
    • persona_rol_id – ID del registro nuevo generado en el proceso anterior
    • activo – 1 por default, ya que sólo se toman usuarios activos
    • fecha_actualizacion - – Fecha en la que se realiza la promoción.
    • persona_rol_actualizacion_id - Id del registro de persona_rol de quién realiza la promoción.