Censo - Descuentos

Obtener configuración de descuentos

Método: GET

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/dashboard/empresas/8/ciclos/785/moduleConfig/CENSO.LISTADESCUENTOS

En la respuesta, está la configuración que se utiliza en el módulo de descuentos.

Obtener configuración de permisos

Instrucciones

Para obtener la configuración de permisos, se debe leer el campo data y buscar el item permisos, aquí se encuentran los permisos para las distintas secciones y/o acciones que se encuentran este módulo.

Obtener configuración de los reportes

Instrucciones

Para obtener la configuración de los reportes, se debe leer el campo data y buscar el objeto reportes, dentro del objeto reportes existe un array secciones, se debe recorrer este array y buscar el item donde la etiqueta sea “Reportes”: data.reportes.secciones[].etiqueta = 'Reportes', en este módulo de descuentos, el item correspondiente a la sección del reporte a descargar siempre es el index cero: data.reportes.secciones[0]

image-20240910-165511.png

Dentro del item del index cero en el array de secciones existe otro array items que contiene los reportes disponibles en el módulo, en el módulo de Descuentos solo tenemos un reporte, por lo tanto se debe obtener el item del index cero en items: data.reportes.secciones[0].items[0].

image-20240910-171637.png

Una vez que se obtuvo el objeto correspondiente a la configuración del reporte, dentro de este objeto existen los siguientes campos:

empaquetable: Es un boolean que indica si se debe generar el reporte por partes/paquetes

packConfig: Es la configuración que indica cómo generar el reporte, este objeto contiene los siguientes campos:

  • nombreReporte: Es el nombre que debe tener el archivo que se descargará.

  • tamanoPaquete: Es el total de registros permitidos por paquete.

  • tipoReporte: Es el identificador del reporte para utilizar en el llamado a la API de Pegasus.

  • colegioRequerido: Boolean que indica si el colegioId es requerido para la ejecución del reporte.

permisos: Es un string que contiene el nombre del campo a buscar dentro de la sección de permisos del módulo de descuentos

Obtener lista de descuentos

Método: GET

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/censo/empresas/76/ciclos/1188/colegios/17919/descuentos

Datos de los descuentos:

  • Nombre: data[].alumno.persona.nombreCompleto

  • Alumno ID: data[].alumno.alumnoId

  • Nivel / Segmento: data[].alumno.nivel.nivel

  • Grado / Ano: data[].alumno.grado.grado

  • Grupo / Turma: data[].alumno.grupo.grupo

  • Razón descuento: data[].razon.razon

  • Estatus: data[].activo

    • true: El descuento está activo / aprobado

    • false: El descuento está inactivo / pendiente de aprobación

  • Porcentaje descuento: data[].descuento

Actualizar estatus del descuento

Método: POST

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/censo/empresas/76/ciclos/1188/colegios/17919/descuentos/1069941?accion=validar

Parámetros en la URL

  • accion: indica si se quiere aprobar o cancelar un descuento

    • validar: cuando se aprueba un descuento

    • desvalidar: cuando se cancela un descuento

Validaciones

El estatus del descuento solo puede ser modificado si en la configuración se encuentra el permiso activo.

Se debe obtener la configuración de los permisos del módulo Censo - Descuentos | Obtener configuración de permisos y obtener el item ´data.permisos.validarDesvalidar.modificar´

  • si el valor es TRUE, entonces SI se puede realizar la acción de validar/desvalidar un descuento

  • si el valor es FALSE, entonces NO se puede modificar el estatus de un descuento y se debe solo mostrar su valor actual.

Reenviar correo para flujo de aprobación de descuentos

Método: POST

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/censo/empresas/8/ciclos/785/colegios/13244/alumnos/20885601/descuentos/1060967

Validaciones

Primero se debe obtener la configuración general de censo para el colegio y ciclo escolar: Censo - Alumnos | Configuración de Censo por colegio y ciclo escolar

Dentro de la configuración de censo en el elemento ‘settings’ está el objeto “descuentos”, y dentro de este objeto se encuentra el item ´porcentajeMinimoAutorizacion´

El flujo de aprobación se puede reenviar solo si se cumple la siguiente condición:

  • data[].descuento >= porcentajeMinimoAutorizacion

Descargar lista de descuentos

Para descargar cualquier reporte, debido a que la cantidad de registros dentro de un reporte puede ser excesiva, es necesario aplicar una lógica para calcular si se debe generar el reporte por partes (paquetes), para esto, se deben seguir los siguientes pasos:

1. Obtener total de registros a descargar

Método: GET

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/reportes/empresas/8/ciclos/785/alumnosDescuento?typeResponse=json&count=1&colegioId=13244

Instrucciones

De la respuesta obtenida, se debe tomar el valor en el campo ´data´ en el item ´totalRegistros´

2. Obtener el límite de registros por paquete en un reporte

Ver Censo - Descuentos | Obtener configuración de los reportes

3. Lógica para determinar el total de paquetes a generar en el reporte

Se debe comparar el total de registros en el reporte contra el tamaño del paquete en la configuración del módulo para el reporte

a) Si el total de registros es MENOR o IGUAL al tamaño de los paquetes en la configuración del reporte

Se realiza la descarga directa del reporte sin generar paquetes:

Método: GET

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/reportes/empresas/8/ciclos/785/alumnosDescuento?typeResponse=file&count=0&colegioId=13244&limit=10000&offset=0&contador=1

Parámetros en la URL

  • typeResponse: indica el formato esperado en la respuesta

    • file: la respuesta es un archivo

    • json: la respuesta es en formato JSON

    • packFiles: indica que se quiere generar una parte/paquete

    • packDownload: indica que se quiere descargar el reporte generador por partes/paquetes

  • count: indica si solo se requiere obtener el total de registros

    • 1: se requiere obtener solo el total de registros que tendrá el reporte

    • 0: no se requiere el total, se requieren los registros del reporte

  • colegioId: El ID del colegio para el cuál se quiere descargar el reporte

  • limit: Es el total de registros a obtener en el llamado

  • offset: Es el indice a partir del cuál se obtendrán los registros

  • contador: Es el indicador del paquete que se está generando

b) Si el total de registros es MAYOR al tamaño de los paquetes en la configuración del reporte

Se realiza un llamado por cada paquete que se va a generar

Escenario:

  • totalRegistros: 80

  • tamanoPaquete: 60

  • totalPaquetes = Math.ceil(totalRegistros / tamanoPaquete)

    • El resultado siempre se redondea hacia arriba

      • totalPaquetes = Math.ceil(80 / 60) = 2

Método: GET

Ejemplo:

Llamado para el paquete 1

https://homol.uno-internacional.com/pegasus-api/reportes/empresas/8/ciclos/785/alumnosDescuento?typeResponse=packFiles&count=0&colegioId=13244&limit=60&offset=0&contador=1

Llamado para el paquete 2

https://homol.uno-internacional.com/pegasus-api/reportes/empresas/8/ciclos/785/alumnosDescuento?typeResponse=packFiles&count=0&colegioId=13244&limit=60&offset=60&contador=2

Parámetros en la URL

  • typeResponse: indica el formato esperado en la respuesta

    • packFiles: indica que se quiere generar una parte/paquete

  • count: indica si solo se requiere obtener el total de registros

    • 0: no se requiere el total, se requieren los registros del reporte

  • colegioId: El ID del colegio para el cuál se quiere descargar el reporte

  • limit: Es el total de registros a obtener en el llamado, en este caso, siempre será el valor de tamanoPaquete

  • offset: Es el indice a partir del cuál se obtendrán los registros,

    • su valor inicial es cero

    • en cada llamado por paquete, se incrementa

      • offset = offset + tamanoPaquete

  • contador: Es el indicador del paquete que se está generando

    • es el número de paquete que se está generando

Cuando ya no hay más partes/paquetes por generar, se debe ejecutar el llamado que realiza la descarga del archivo ZIP que contiene todas las partes/paquetes generados.

Método: GET

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/reportes/empresas/8/ciclos/785/alumnosDescuento?typeResponse=packDownload&count=0&colegioId=13244&limit=1&offset=0&contador=1

Parámetros en la URL

  • typeResponse: indica el formato esperado en la respuesta

    • packDownload: indica que se quiere descargar el reporte generador por partes/paquetes

  • count: indica si solo se requiere obtener el total de registros

    • 0: no se requiere el total, se requieren los registros del reporte

  • colegioId: El ID del colegio para el cuál se quiere descargar el reporte

  • limit: Es el total de registros a obtener en el llamado

    • en este caso, siempre debe ir el valor 1

  • offset: Es el indice a partir del cuál se obtendrán los registros

    • en este caso, siempre debe ir el valor 0

  • contador: Es el indicador del paquete que se está generando

    • en este caso, siempre debe ir el valor 1

Instrucciones

La respuesta de este servicio es un archivo ZIP, el cual debe ser dado para descargar al usuario.

Obtener totales descuentos

Método: GET

Ejemplo:

https://homol.uno-internacional.com/pegasus-api/censo/empresas/8/ciclos/785/colegios/13244/alumnos/nivelesGradosGrupos

Respuesta

El servicio devuelve un array data.niveles que contiene todos los niveles de la empresa, por cada nivel, se tiene un objeto totales que contiene los siguientes datos:

  • data.niveles[].totales.alumnos: indica el total de alumnos en el nivel

  • data.niveles[].totales.alumnosConDescuento: indica el total de alumnos que tienen descuento en el nivel

 

 

Dudas/respuestas.

Dropdown de Todo el Colegio: ¿qué otras opciones debe tener?

Se tiver a lista de todos alunos com desconto e as funcionalidade de Pesquisa e Filtros Avançados já é o suficiente!!

 

Gráfica de alumnos con descuento: ¿cómo se visualizará cuando no hay alumnos con descuento?

Se não houver alunos com desconto o gráfico deve ficar de um só cor e a legenda indicará !Sem descontos!

 

Filtros avanzados: ¿son los mismos que en la lista general de alumnos o qué filtros aplicarán?

Sim, são os mesmo.

 

Descargar lista: ¿se descarga la lista con los filtros aplicados o la búsqueda total?

A planilha deve ser gerada com todos os alunos e não com o filtro.