3.4.10. Programa formativo - diezMalena/api_FCTFiller GitHub Wiki

Objetivo

  • El objetivo del programa formativo es poder generar el Anexo 2 y 4 de manera automatica, teniendo que rellenar solo 1 anexo y rellenandose automaticamente ese anexo por cada alumno que tenga el tutor, ahorrando mucho trabajo.

Inicio

  • Al entrar por primera vez a programa-formativo, se enviará una petición desde cliente hasta el servidor enviando el dni del tutor como parametro a la función listarAnexosIIYIV()
  • Esta función hace una petición a la tabla Anexos de la base de datos, solicitando los anexos habilitados 2 y 4 que ese tutor haya generado.
  • Comprueba que el archivo en base de datos existe y que este haya generado algún anexo , finalmente se devuelve un array asociativo al cliente con la información que se espera para añadirla a la tabla de cliente.
  • Se envia, por cada anexo en el array asociativo:
    • tipo_anexo -> Es el tipo de anexo, por ejemplo: Anexo2
    • codigo -> Es el nombre completo del anexo, por ejemplo: Anexo2_12b_12_2022_.docx
    • alumno_dni -> Es el dni del alumno asociado al anexo
    • alumno_nombre -> Es el nombre del alumno asociado al anexo

Acciones

  • Al seleccionar un fichero y hacer click en este boton:
    Screenshot_1

    1. El input que contiene el fichero, envia un $event a una función llamada upload() que se encarga de interceptar el fichero y pasarlo a base64
    2. Después al presiónar el boton, se llama a la función subirAnexo() esta se asegura de que el nombre de anexo es correcto, obligando al usuario a poner Anexo2.docx o Anexo4.docx, asociandolo así con el tipo de Anexo y generando la variable según el tipo de archivo que se haya subido. Se genera un objeto AnexoUpload() que contiene: fichero, tipo de Anexo, el nombre del fichero y el dni del usuario. Se llama a la función subirAnexoEspecifico()del servidor pasandole el objeto generado.
      En esta función del servidor se encarga de subir el anexo, lo excluye de ninguna acción en base de datos, por que de ello ya se encarga otra función.
    3. Cuando lo anterior ha salido bien, el cliente llama a la función rellenarAnexo() esta se encarga de llamar a la función del servidor rellenarAnexoIIYIV() pasandole como parametro el nombre del archivo y el dni del tutor. En dicha función se capta el Anexo 2 o 4 subidos, usandose como plantilla para rellenar los siguientes, se le da un nombre de archivo correspondiente y se añade a la base de datos, en la tabla Anexos, finalmente, se monta un zip, se borra la plantilla que hemos subido inicialmente y se descarga automaticamente para el usuario.
  • Esta es la tabla mencionada anteriormente que lista los Anexos 2 y 4. Dicha tabla tiene dos acciones.
    Screenshot_2

    1. Descargar Anexo y Subir Anexo
    2. Descargar Anexo se encarga de llamar a la función cliente descargarAnexo() pasandole como parametro el dni del tutor y el codigo, que como he dicho antes, es el nombre del archivo que ha llegado desde el servidor al acceder a programa-formativo. Después se envia una petición al servidor, pasandole estos parametros a la función descargarAnexo que intercepta el archivo en las carpetas del servidor y lo descarga automaticamente en cliente.
    3. Subir Anexo se encarga de llamar a la función cliente abrirModalUpload() que almacena en dos sessionStorage en tipo de anexo y el nombre que se le ha asignado a este de la funcion listarAnexosIIYIV().Se abrirá un modal que nos permitira seleccionar un archivo y subirlo a servidor, llamando a la función subirAnexoEspecifico() tal y como se hace en lo anteriormente explicado, excepto con la diferencia de que en este caso, modifica el anexo en base de datos, ya que este existe y es necesario modificarlo, en este caso, en el que el archivo ya está generado, también puedes ponerle al anexo el nombre que quieras, por que se le asignará posteriormente el nombre correspondiente al archivo. La función está diseñada para poder subir el anexo firmado en .pdf , aunque se pueda subir en .docx, cambiando la extensión que se muestra del archivo en la base de datos.