---
# System prepended metadata

title: Untitled

---


## FIRMA DINÁMICA

* Duda sobre: **El usuario podrá añadir o borrar el fichero PDF que deberá ser un formulario** ==> En el caso de que no tenemos un formulario, ¿cómo se gestiona ?
R: Si, puede ser sin formulario. 

* Duda sobre **Paso 2: Habilitar botón “Firma documentos” en Biblioteca / Mis documentos** => va en una nueva sección o en la existente ?
R: Es una nueva

* En el select de "Vinculado a" qué aparecerá exactamente? (Actividad, Pac...etc), o aparecerá también información sobre el activo en caso de que sea Empleado, por ejemplo?
R: En la configuracion se vincula al tipo de documento. Pendiente de definir por producto la relacion con ACT/PACS.

* Listado de plantillas: columnas. No concuerda el diseño con las columnas que vienen redactadas R => lo que está en el texto, no en el diseño
    * Al clicar en crear, no entendemos el boton de seleccionar una simple. Podría ser confuso ya que ahora cada una lleva a la suya y además deberíamos añadir un boton en las básicas. Creemos que es mejor crear una pantalla específica de creación para las dinámicas
R: Lo analizará

* Configuración de plantilla dinámica:
    * **Crear plantilla**. 
    R: falta un campo. Queda pendiente que nos confirmen sobre los tipos
    * **Configurar documento**: 
        * Distinguir el tipo de campo que es ? 
        R: no necesario
        * Se puede leer el tema del campo obligatorio? ¿representación en el diseño? ¿Lo quieren?
        R: Añadimos asterisco para saber que es obligatorio. Lo tomamos desde la plantilla (no añadir nada más de lo que nos llega de la plantilla)
        * ¿Qué hace la x en el nombre del fichero? Lleva al paso anterior? ¿quizá un boton para borrar quedaría más claro?
        R: Lleva al paso anterior. El comentario sobre el diseño lo estudiará Elena.
    * **Configurar firmantes**:
        * ¿ Todos los firmantes tienen los mismos tipos de campos (cuadro firma, nif, nombre y apellidos..)?
        R: No. Se arrastran los campos que se deseen
        * ¿ Cómo funciona ?
        R: Arrastrar los campos y una vez lo soltemos aparece firmante x y tipo campo
        * ¿ Podemos poner múltiplos cuadros del mismo tipo para cada firmante ?
        R: Sí
        * Cuando clickamos en un firmante, ¿los campos de abajo se añadirán para el firmante seleccionado?
        R: Sí
        * Configurar campo (botón de rueda encima de cada campo). Cuando le damos a eliminar, ¿lo hará sólo para el firmante del campo en cuestión? Si es así, se le deberá indicar en el popup
        R: Mostrar el nombre del firmante tb. Las acciones serán por firmante, pero Elena dará una vuelta al popup (sólo 2, eliminar esa instancia o todas las de ese tipo)


* Firma de documentos:
    * Listado de documentos
        * No tenemos claras las acciones en la tabla  
        R: Clic en la fila completa lleva a la pantalla según estado. Enlace Vinculado a ==> lo pensarán
        * Vinculado a: Los textos de tipo de documento y actividad qué significa ?
        R: 
        * ¿Filtros?
        R: Sí, todos. El de vinculado a será un filtro de tipo (sin detalle)
    * Firma de documentos:
        * Desde plantilla - Dinámica
            * ¿ Salen todas las actividades y planes de acción ? ¿ Filtramos por algún tipo de estado o configuración?
            R: Salen todas, sin filtro
            * Si es un doc necesitamos el activo para poderlo vincular
            R: Saldrán los empleados (activos), máquinas o lo que sea en caso de ser del tipo doc
        * Firmar documento:
            * Pestaña Formulario
                * El mensaje azul que sale advirtiendo que hay que rellenar todos los campos antes de poder pasar al siguiente paso, ¿cambiará cuando se rellenen todos? ¿o no aparecerá? ¿La pestña de Documentos tendrá un estilo diferente indicando que está deshabilitada hasta que se rellenen todos los campos?
                R: Lo revisará
                * ¿ Cómo se llega a la vista de empleado, máquina, vehículo ?
                R: Pendiente, de momento lo dejamos en stand by
            * Pestaña Documento
                * ¿Los selects de arriba siguen estando habilitados? Si cambian estando en otra pestaña que no sea formulario, ¿te llevará al primer paso, al paso de formulario? 
                R: Si cambia el select de plantilla cambiarán las pestañas según el tipo de plantilla seleccionada (con formulario, sin él...)
                * Siempre que estemos en esta pestaña, podremos acceder al paso previo, al paso de formulario?
                R: Sí. Como el estado deshabilitado y no activo se podrían confundir, ese diseño se pensará (cuando una pestaña está deshabilitada)
            * Pestaña Firma Presencial
                * Presencial sólo para un firmante. Abre la url de viafirma directa para firmar.Abrir via firma: nueva ventana? salimos de 6Conecta para siempre ? 
                R: Embeber la url de viafirma en un modal pantalla completa? En la parte central de la web entre el menú izquierdo y superior?. Si viafirma devuelve una url como calback lo hacemos así ==> esto no
            * Resumen proceso firma
                * El botón de visualizar, que dice que se abrirá en otra pestaña, no debería abrirse de la misma manera que la vista previa de la pantalla anterior? O sino, al final será descargar y visualizar el pdf en otra pestaña, no?
                R: Abre en modal como el anterior caso de previsualización (a tope de pantalla el modal).
            * Popup ¿aún no han firmado todos los destinatarios?
                * Dónde aparece? Bajo qué condiciones?
                R: Si hay varios firmantes y alguno ha firmado en la pantalla resumen s emuestra
                R: Cuando estas rellenando todos los datos si sales, mostramos otro con otro texto (al salir de cualquiera de las 3 pestañas)
            * Firmar documento resumen con quienes han firmado y no cuando aun quedan ptes:
                * Bloquear todos los controles salvo los recordatorios ? 
                R: Sí


        * Desde plantilla básica: esta pantalla no tiene sentido, parece la misma que la configuración, estamos seguros de que queremos mostrar la misma pantalla ¿?
        R: Parece que no es necesaria dicha pantalla

        * Firma de documentos
            * Subir documentos:
                * Datos
                    * ¿ Orden de los campos ? Los campos están condicionados ?
                    R: Primero iría el campo de nivel, y, condicionado de ese, el campo de nombre de tipo de documento. Ya lo ha cambiado Elena en figma


## TAREAS
* Licencia para rellenar
* Probar librería
* Dudas viafirma:
    * ¿Se puede obtener el estado de los firmantes por separado cuando hay más de uno?
    * ¿Se puede enviar recordatorio a los firmantes cuándo son varios? ¿Se puede enviar a uno en concreto?

## NOTAS
* Para las zonas de los firmantes añadimos una para cada uno (CAJA_FIRMA_F{1}, CAJA_FIRMA_F{1})
* En las firmas subidas utilizamos lo mismo que tenemos ahora, guardamos una plantilla con un codigo temporal en el campo de tipo y la eliminamos cuando se firma el documento. (cron por si se quedan colgadas)
* Tener en cuenta que a la hora de firmar documentos, el select de vinculado a tiene que traer lo que corresponda según el tipo de plantilla (actividades, tipos de documento...etc) Verificar que existan todos los endpoints, y los que noe stén implementados en laravel, modificar el controlador de joomla para que lo devuelva según la respuesta de laravel bajo un input
* Estados del documento firmado:
    * Finalizado => cuando todos los firmantes tienen fecha de firma
    * En espera => cuando se ha enviado a firmar y no todos los firmantes tienen fecha de firma
    * Rechazado => cuando el firmante ha rechazado la firma (esto lo tenemos que obtener de viafirma, lo hara joomla?). ¿Qué pasa si hay varios firmantes? ¿Aparece rechazado con que lo rechaze uno o tienen que ser todos?

## DUDAS

### Para Manu
* Permisos para el menú de firma de documentos.
* * Se pueden cancelar las firmas? Qué pasa cuando cancelamos? Borramos de la tabla? Es un estado diferente? Dónde se haría la acción? En el listado? R:Añadir botón en las acciones de la tabla para cancelar (si finalizado botón descargar y si en progreso botón cancelar firmas enviadas). Nuevo estado? borrarla?


* Guardamos el nombre del vinculado a cuando firmamos o mostramos el actual R: guardamos el nombre
* ¿Es necesario ordenar las opciones de los campos cuando sean de tipo select? R: no
* ¿Los campos de los firmantes son todos los que están? R: si
* El botón de "Guardar plantillas" no hace nada R: fuera el botón
* En la pantalla de configuración de plantilla dinámica, los botones de navegación son clickables? R: si (ojo que en el 3r paso haya plantilla subida ==> si no hay plantilla, mítico estado vacío)
* Estilo del botón de eliminar archivo en configuración de plantilla dinamica. R: diseñado más abajo (quitar la x del nombre) ==> abrir el cargador de archivos
* Diseño de las zonas en las plantillas. R: como lo que hay, pero resaltar el del firmante seleccionado (la capitana dice que hagamos lo que podamos). Se podrá dragar cualquier campo aunque no esté un participante seleccionado (pero iluminarlo en verde)
* La x de borrado solo aparece en los firmantes cuando está seleccionado, ¿esto es correcto? R: No, ponerla en todos
* Acciones de la tabla del listado de documentos, columna "vinculado a" (documento, descarga documento). R: 2 enlaces: Enlace al listado filtrado y a la actividad
* Botón de firmar documento en el listado de solicitudes está pegado a la derecha, normalmente está pegado a la izquierda. R: izqda
* Al crear una plantilla para actividades o pacs hay que seleccionar el tipo? R: Si
* Estilo pestañas pantalla firma (diferencia entre deshabilitadas y sin seleccionar) R: empty state si el paso anterior no esté completo
* Popup de aviso "Ey", donde, cuando, cómo y porqué. R: En cualquiera de las 3 pestañas si el usuario está a medias. Si no podemos poner el popup bonico alert al canto. Sólo hay un modelo de popup
* Desplegable de Avanzada presencial (firma, firma + pin), confirmar si topaz/raton en presencial. R: Radio buttons con las opciones que se mostrarán cuando se seleccione el botón de presencial o remota (creo que van bajo los botones). En avanzada presencial todas las opciones y avanzada remota cuando sea un único firmante. Al seleccionar el radio button de la opción brinco al otro paso
* Diseño firma con viafirma embebido. R: a tope de espacio
* ¿Qué significa rechazado? Con que lo rechace uno de los firmantes se da por rechazado? Se refiere a rechazar en viafirma?. R: :purple_heart: (esto es un corazon para elena) Preguntar primero al señor via firma. Si sabemos que uno lo puede rechazar:
    * Uno lo rechaza y los demás en espera: estado en espera y en la pantalla de estado le ponemos al señor el estado rechazado (buuuuuuuu).
* Nombre del documento en la previsualización de firmar documento, ¿a qué se refiere? R: Al estar bloqueada la pestaña de documento, este boton sirve para comprobar que estamos usando el documento que queremos (abrimos la plantilla original en un popup a full) y el nombre es el nombre del fichero que se ha subido a la plantilla con extensión.
* Gestión de las firmas que tiene el cliente. R: 
    * Para que un cliente pueda usar firma remota debe tener via firma contratado. ¿ Ocultar las opciones de crear dinámicas si no ha pagado al señor via firma?
    * Cuando contratas via firma tienes x firmas contratadas. Nosotros sabemos cuántas le quedan... avisamos cuantas le quedan ? avisamos que no puede firmar ? ==> ¿cuantas firmas gasta una múltiple? ==> cuando sepamos Elena dictaminará 



## BBDD

* Añadir tres campos a jos_6c_plantilla
    * descripcion
    * id_tipo_documento (nullable)
    * id_tipo_actividad ?
    * id_tipo_pac ?
    * temporal (boolean) => default a false
    
* jos_6c_plantilla_formulario_campo
    * id
    * id_plantilla
    * nombre
    * tipo
    * orden (int)
    * requerido

* jos_6c_plantilla_formulario_campo_opcion
    * id
    * id_plantilla_formulario_campo
    * nombre
    * orden (int)

* jos_6c_plantilla_firmante
    * id
    * id_plantilla
    * rol
    * orden

* jos_6c_documento_firmado
    * id
    * id_plantilla (nullable)
    * tipo (TIPO_DOC/PAC/ACT)
    * codigo_firma_remota (codigo que devuelve viafirma)
    * estado (SIGNED|REJECTED|PENDING|TMP)
    * fecha_finalizacion
    * fichero
    * vinculado_a (texto)
    * id_actividad
    * id_pac
    * id_tipo_documento
    * id_activo


* jos_6c_documento_firmado_firmante
    * id
    * id_documento_firmado
    * nombre
    * apellidos
    * nif
    * email
    * rol
    * fecha_rechazo
    * fecha_firma

## ENDPOINTS

- ampliar SEARCH templates
    - filtro
        - tipo = document_type_dynamic | activiy_type_dynamic
    - includeDocumentType
    - includeActionPlan
    - includeActivity

- ampliar POST plantilla
    - tipo (dinamica_tipo_documento, dinamica_actividad...etc)
    - nuevos campos (por seguir con la manera en que lo hacemos hasta ahora con los tipos de documento y los epis, que también es múltiple)
        - linkedActivityType array ids
        - linkedDocumentType array ids
        - linkedActionPlanType array ids
    - descripcion
    - temporal

- ampliar PUT plantilla
    - descripcion
    - campos_formulario
        - array ids campo ordenados

- ampliar GET plantilla
    - descripcion
    - subtipo

- POST template/id/template-dynamic
    - Acciones:
        - Borrar el fichero de la bbdd y del disco si ya existiera
        - Borrar los campos del formulario de la bbdd si los tuviera 
        - Partir el pdf en imagenes y guardalas
        - Extraer los campos del formulario y guardarlos en la bbdd
    - request
        - File
    - response
        - array campos formulario
            - id
            - nombre
            - tipo
            - orden
            - required

- CRUD template/ID/signer
    - request
        - rol
    - response (get)
        - id
        - orden

- SEARCH document-signed
    - filtros
        - status
            - FINISHED, REJECTED, PENDING
        - type
            - DOCUMENT_TYPE, ACTIVITY, ACTION_PLAN
        - creationDate
        - endDate
        - linkedTo (texto)

- GET document-signed/{id}/attachment
    - response
        - File

- POST document-signed
    - request
        - id plantilla
        - linkedTo
            - tipo documento -> id_activo
            - actividad -> id_actividad
            - plan accion -> id_plan_accion
    - response
        - id de la tabla documento firmado

- GET document-signed/id
    - response
        - template
            - id
            - detail
        - linkedTo
            - id
            - detail
        - formFields: array objetos
            - id
            - tipo: text | checkbox | select
            - array opciones
                - id
                - nombre
            - nombre
            - requerido

- POST template/{id}/preview-with-fields
    - request
        - array objetos (opcional)
            - id campo
            - valor
    - response
        - File devuelto por seta pdf con los campos insertados

- POST document-signed/id/generate-and-sign-signers
    - request
        - signers_fields: array
            - codigo_campo
            - valor
        - form_fields: array objetos
            - id campo
            - valor
        - signatureType: presencial|remota
    - response
        - url (en caso de que sea presencial para embeber en el iframe
            - esta url nos la devolverá joomla)

- POST document-signed/id/resend
    - Llamará a joomla con el código de petición que nos ha devuelto viafirma
    - No se puede enviar por firmante como habíamos pensado, viafirma no lo permite

- GET document-signed/id/signature-info
    - response
        - document (nombre)
        - linkedTo: type
        - date
        - endDate
        - code
        - signatureSolicitant
        - signers: array objetos
            - rol
            - email
            - date
- POST /document-signed/{ID}/cancel (debe llamar a joomla)
    - reponse: true|false
- GET activity-type
    - response
        - id
        - name
- GET pac-type
    - response
        - id
        - name


## BACK

- I+D Investigar cómo mandarle el pdf generado a ViaFirma

- Callback de firma que setee la fecha firma en la tabla (joomla)
    - Si ya han firmado todos cambiar el estado en la tabla documento_firmado
- En caso de que se rechace en viafirma, se usa el mismo callback con un parámetro (joomla)
- Cron para borrar las plantillas tmp
- Devolver si un cliente tiene contratado viafirma en la sesion
- Añadir opción dentro de Biblioteca > Firmar documento
- Ampliar Search templates
    - request
        - filtros de clase y tipo múltiples
            - tipo = document_type_dynamic | activiy_type_dynamic
        - filtro descripcion texto
        - añadir paginado y ordenación
        - Añadir includes de los diferentes tipos de plantilla
    - response
        - clase
        - tipo
        - descripcion
- Ampliar post template para plantillas dinamicas
- Ampliar get template con subtipo, descripcion y campos dinámicos
- Ampliar PUT añadiendo la descripcion y los campos de formulario ordenados
- Subir fichero a template template-dynamic
- CUD firmantes 
    - POST no tendrá cuerpo
    - PUT rol
    - DELETE
- Listado solicitudes de firma (8h)
- Descarga de documento de solicitud de firma (4h)
- Descargar vista previa llamar al fill-form-fields sin campos (5h)
- Tarea para generar fichero y enviar a firmar. Llamará a joomla para que envíe a viafirma (8h)
    - Recibe:
        - campos de firmantes (incluyendo el email)
        - campos del formulario
        - tipo de firma (presencial|remota)
        - otp (pin o no, booleano)
    - Generar pdf rellenando los campos del formulario. Sustituir en las zonas los valores que nos lleguen de los firmantes.
    - Llamar a joomla pasando el pdf, el tipo de firma y otp.
    - Joomla nos devuelve un codigo que tenemos que guardar en documento_firmado
    - Insertar en la tabla documento firmado (incluyendo el código que nos dara joomla. El estado será pendiente por defecto)
    - Si la firma es presencial una url que tenemos que devolver al front.
    - Si la plantilla es temporal eliminarla
- Tarea para recordatorio de viafirma. Llamará a joomla (le pasa el código de viafirma) (3h)
- Tarea para modificar el queryManager de plantillas para que tenga un filtro por defecto que seleccione las no temporales. Campo temporal de la tabla plantillas (1h)
- Cancelar firma de documento (3h)
- Ampliar objeto sesion con viafirma (active:boolean|availableSignatures:int) (3h)
- Get document-signed/id (6h)
- Campo menu_nivel2 notificaciones (3h)

* Puesto -> lo hacemos en laravel, ya tenemos queryManager  (WorkplacePositionEloquentQueryManager)
* Máquinas -> lo hacemos en laravel, ya tenemos queryManager (EquipmentEloquentQueryManager). Añadir un filtro por permiso de centro. (si el usuario no tiene permiso de ver todos los centros). Solo si el usuario es un cliente y no de una invitada
* Vehículos -> lo hacemos en laravel, ya tenemos queryManager (VehicleEloquentQueryManager). Añadir un filtro por permiso de centro. (si el usuario no tiene permiso de ver todos los centros). Solo si el usuario es un cliente y no de una invitada
* Sustancias químicas -> lo hacemos en laravel, ya tenemos queryManager (ChemicalSubstanceEloquentQueryManager). Añadir un filtro por permiso de centro. (si el usuario no tiene permiso de ver todos los centros). Solo si el usuario es un cliente y no de una invitada
* Zonas -> lo hacemos en laravel (jos_6_zona_centro_trabajo)


## FRONT

* TAREAS: 
    *  Ampliar entidades de plantillas. (description, id_tipo_documento/actividad/pac).
    *  Pestaña dinamicas al componente de listado de plantillas y boton crear.
    *  Listado de plantillas dinamicas (habrá filtros -> tipo).
    *  Componente crear plantilla dinamica (no hay pildoras de arriba).
    *  Crear componente padre con estructura y navegacion. Componente edicion de plantilla (configuracion). Buscar componente navegacion.(similar al componente estudio fpsico).
        * Datos => Crear componente hijo.
        * Configurar documento => 
            * Crear modelo template-dynamic (id, nombre, orden).
            * Crear componente hijo, meter visor y subida de archivos. Detección de campos de archivo subido y permitir ordenarlos entre ellos. Guardar en cada item que ordenemos y al pasar a la pantalla anterior se eliminará el archivo junto a estos campos guardados.
            * Crear servicio con modelos para el POST template-dynamic. Completar tb el put de plantillas con descripcion y campos_formulario (array ids campo ordenados)
        * Configurar firmantes => 
            * Modelo, mapper y servicio de añadir firmantes (CRUD completo)
            * Cada campo tiene un codigo (consultar con back para tener los mismos códigos).
            * Añadir firmantes, eliminar, asignar rol. 
            * Visualizar documento, reutilizar campos de arrastrar al documento y adaptar diseño de los firmantes, estos campos serán relativos a cada uno de los firmantes.
            * Cambiar estilos popup Configurar campo (nombre) en el ya existente, añadir nombre del firmante (input).
    
    *  Listado de solicitudes de firma => 
        *  Crear servicio, mapper y modelo (documento_firmado) y servicio de descargar documento. 
            * id
            * id_plantilla (nullable)
            * tipo (TIPO_DOC/PAC/ACT)
            * codigo_firma_remota
            * estado
            * fecha_finalizacion
            * vinculado_a (texto) o id_documento/pac/activdad (int)
        *  Listado con filtros (tipo de documento, actividad, pac y filtro por fecha). Añadir acciones de la tabla.
        *  Añadir opcion en el sidebar.
    *  Firmar documento con plantilla dinamica =>
        *  Crear componente padre con las pildoras.
        *  Componente firma desde plantilla => Los datos para los selects no están en laravel, son servivios de Joomla (document-type) pero el datasource está hecho.
        *  Componente padre de firmar documento =>
            *  Crear servicio para visualizar el documento original (document-signed/{id}/attachment).
            *  Componente padre con selectores, vista previa (modal con el visor de pdf, coger el de evaluaciones fpsico) y las 3 pestañas (gestion de las pestañas si se cambia la plantilla, activar pestaña de documento cuando estén los campos del formulario completados).  ** UNA VEZ QUE SE FIRMA SE BLOQUEARAN TODOS LOS BOTONES **
            *  Modal del infierno EY! (canActivate + hostListener)
            *  Componente formulario. Campos de izquierda-derecha y de arriba-abajo, se obtendrán a través de un servicio (plantilla_formulario_campo y plantilla_formulario_campo_opcion que extenderá), habrá que distinguir por tipo de campo (select, radiobutton, input...), guardar estos campos mientras cambiemos entre pestañas.
            *  Componente documento => vista previa con los campos rellenos. (template/{id}/attachment-fill-fields)
            *  Componente firma => si tiene una sola firma seleccionar por defecto avanzada presencial y si no avanzada remota.
            *  Crear componente firmante, le pasaremos los campos que deberá de pintar y tendrá un output para saber el estado (los datos completados).
                *  (Presencial) Embeber iframe viafirma => escucha para detectar cuando se ha firmado, redirigir a la siguiente pantalla con el resumen de firma.
                *  (Remota) enviar email y resto de campos que tenga de los que firman y redirigir a pantalla con estado de cada firma (template/id/generate-and-sign-signers).
                *  Componente estado de cada firma (remota) ¿¿Ver si se puede hacer en viafirma para hacer esta pantalla?? 
                *  Componente resumen de firma => se mostrará desde el boton de firmar presencial o en remota cuando todas las firmas estén.
                *  En el paso firma llamar al proceso de mandar la firma debemos mandar al back (POST template/id/generate-and-sign-signers) los datos que amablemente ha rellenado el usuario:
                    * Los valores de los campos seleccionados en el paso del formulario
                    * Los datos de los firmantes como un array de objetos: código campo - valor
                    * Si es presencial o remota (signType)
* Componente para subir documento => Carga el fichero, lo guarda en un servicio y redirige a la pantalla de configuración del documento.
* Componente de configuración del documento. Creamos la plantilla pasandole el campo temporal a true y con los valores del formulario. Cuando recibimos el id de plantilla llamamos al servicio template-dynamic con el id de la plantilla recibida y redirigimos a la siguiente pantalla (componente de configurar documento)
* Componente de configurar firmantes (el mismo que en el caso normal)

## JOOMLA
* Callback viafirma (1d 4h)
    * Joomla tiene que actualizar la tabla de documento firmado, aparte del proceso de subir el documento, anexo de actividad... 
    * Gestionar tambien el rechazo y guardar la fecha de rechazo
* Enviar a firmar (1d)
    * Los métodos de envio de viafirma son distintos para presencial y remota
    * Envia
        * Parametro para distinguir entre presencial y remota
        * Si es remota enviamos los mail (array)
        * OTP (Booleano, es el pin)
        * Fichero en binario
    * Devuelve:
        * Url o el código. (llamar a joomla -> guardar el enviada en laravel -> en laravel guardar el código si es remota.)
* Reenviar (4h)
    * Recibe el código de viafirma
    * Devuelve ok|KO
* Cancelar (4h)
    * Recibe el codigo y devuelve un ok/ko
    * Laravel -> Guardar la fecha de cancelacion en la columna fecha de fin de la tabla de documento firmado
* Adaptar para angular los listados de tipos de actividad y pacs (2h)
* Adaptar para angular los listados de de actividad y pacs (2h)

## DUDAS++
* El botón de eliminar todas las zonas en el popup de configurar campos de firma, ya no está ¿Está bien? r: MOVERLO
* Firma remota R -> si es mas de uno no hay pin
* Obligatorios
* Servicios crear firma con tipo de documento
* Columna vinculado a en listado de firmas solicitadas. Filtramos por el tipo o por el detalle. ¿Podrían ser dos columnas? ¿El tipo es un texto fijo o el nombre real del tipo asociada a la plantilla) R: en 2 columnas, igual que en las plantillas
* En la pantalla de firmar documento que pasa si no tiene firmas disponibles
* Gestión de cambio de plantilla y firmas disponibles
* Selector de nivel al crear plantilla tipo de documento


## Servicios niveles
* Empleados -> en laravel GET /employeee
* Empresa -> solo la empresa de la sesión
* Contrato -> en laravel GET/company-contract
* Centro -> en laravel GET /workplace
* Puesto -> lo hacemos en laravel, ya tenemos queryManager  (WorkplacePositionEloquentQueryManager)
* Máquinas -> lo hacemos en laravel, ya tenemos queryManager (EquipmentEloquentQueryManager). Añadir un filtro por permiso de centro. (si el usuario no tiene permiso de ver todos los centros). Solo si el usuario es un cliente y no de una invitada
* Vehículos -> lo hacemos en laravel, ya tenemos queryManager (VehicleEloquentQueryManager). Añadir un filtro por permiso de centro. (si el usuario no tiene permiso de ver todos los centros). Solo si el usuario es un cliente y no de una invitada
* Sustancias químicas -> lo hacemos en laravel, ya tenemos queryManager (ChemicalSubstanceEloquentQueryManager). Añadir un filtro por permiso de centro. (si el usuario no tiene permiso de ver todos los centros). Solo si el usuario es un cliente y no de una invitada
* Zonas -> lo hacemos en laravel (jos_6_zona_centro_trabajo)


FIRMA_1
NOMAPE_1
NIF_1
FECHAFIRMA_1
EMAIL_1
