---
# System prepended metadata

title: Notificaciones Móvil

---

# Notificaciones Móvil

## Dudas Producto



## Dudas Back


- Nos tiene que llegar el companyId en todas las notificaciones para saber a que empresa redirigir.
- Quitar salto de linea en descripción de Tarea.
- Imagen dentro de notificación e icono con nombre por defecto.[no se hace por ahora]
- "tag": "my_notification_group" para agrupar comentarios de tareas [no se hace por ahora]





## Información [Excel con las notificaciones](https://areaseyssl.sharepoint.com/:x:/r/sites/Desarrollo/_layouts/15/Doc.aspx?sourcedoc=%7BC2A1A238-CE36-487B-ACE9-96BBD9365765%7D&file=ResumenNotificaciones.xlsx&action=default&mobileredirect=true&DefaultItemOpen=1)

## Comandos Back notificaciones

- curl --insecure 'https://demo.6conecta.com/index.php?option=com_seyscron&task=notificaciones.programar&frecuencia=diaria&a6key=spaGMTr59oAHH9g4eGOYDysSidS2RhL5sZMiFvlFOS1'
    - CAE

- php artisan information:create-daily-information-summary-notification 
    - 'Renovar el Certificado' y 'Documentos pendientes - Información'

- php artisan ppe:daily-summary
    - Crea la notificación 'Certificado de EPIs' y 'Documentos epis pendientes'

- php artisan task:push-notification-tasks-last-day-to-expire
    - Crea la notificación "Tarea por vencer"

- php artisan task:push-notification-tasks-last-day-to-expire-multiple 
    - Crea la notificación "'Números de tareas por vencer'"

- php artisan push-notification:send 
    - Envia las notificaciones push


## Estructura data notificación

message = {RemoteMessage} 
 senderId = null
 category = null
 collapseKey = "com.areaseys.seysconecta.appempleados"
 contentAvailable = false
 data = {_Map} size = 9
  0 = {map entry} "code" -> "PUSH_TASK_EXPIRATION_SINGLE_RESPONSIBLES"
  1 = {map entry} "taskDescription" -> "Test"
  2 = {map entry} "companyName" -> "Desarrollo S.A. 1"
  3 = {map entry} "subtaskId" -> ""
  4 = {map entry} "id" -> "7"
  5 = {map entry} "CURRENT_DATE" -> "23/05/2023"
  6 = {map entry} "taskReference" -> "Tarea Notificaciones 02"
  7 = {map entry} "userId" -> "12378"
  8 = {map entry} "taskId" -> "428758"
 from = "354023098942"
 messageId = "0:1684849327515972%8bad9f5c8bad9f5c"
 messageType = null
 mutableContent = false
 notification = {RemoteNotification} 
 sentTime = {DateTime} 2023-05-23 15:42:07.510
 threadId = null
 ttl = 2419200

## Tareas 

- Crear controlador [x]
- Navegación a notificaciones
    - Primer plano []
    - Segundo plano [x]
    - No en memoria [x]
    - Stack de navegación, posibilidad de inyectar pages?
    - Permisos de edición para listados, obtener de SessionController?
- Test IOS []
- Cambio de empresa []
- Repintar toolbar []
- Intranet [x]
- Navegar a Tareas y snackbar de comentario []
- Navegar a Tareas y filtrar por vencidas []
- Test deslogueo (Al desloguear llamar a putSession? Debería ser cosa del back) []

## Notificaciones

1. Tarea vencimientos: Hoy (de UNA tarea o subtarea) para responsables
    - Código: code: [PUSH_TASK_EXPIRATION_SINGLE_RESPONSIBLES]
    - Cuerpo:
        - code: el codigo de la notificación
        - taskId
        - subtaskId => opcional
    - Condiciones: Tareas o subtareas en estado en estado diferente a Desestimada, Verificada o Terminada
    - Cuándo: Diaria. A las 8h
    - Destinatarios: Responsables de las tareas que vencen
    - Texto: La tarea [Ref_tarea] de [Empresa] vence hoy y descripción los primeros 50 caracteres
    [Acción]: Navegar a la ficha de la tarea o subtarea.

2. Tarea vencimientos: Hoy (de UNA tarea o subtarea) para observadores
    - Código: [PUSH_TASK_EXPIRATION_SINGLE_OBSERVERS]
    - Cuerpo:
        - taskId
        - subtaskId => opcional
    - Condiciones: Tareas o subtareas en estado en estado diferente a Desestimada, Verificada o Terminada
    - Cuándo: Diaria. A las 8h
    - Destinatarios: Observadores de las tareas que vencen
     - Texto: La tarea [Ref_tarea] de [Empresa] vence hoy y descripción los primeros 50 caracteres
    [Acción]: Navegar a la ficha de la tarea o subtarea.

3. Tarea vencimientos múltipes: Hoy (de UNA tarea o subtarea) para responsables
    - Código: [PUSH_TASK_EXPIRATION_MULTIPLE_RESPONSIBLES]
    - Cuerpo:
    - Condiciones: Una notificación por empresa. Tareas o subtareas en estado en estado diferente a Desestimada, Verificada o Terminada
    - Cuándo: Diaria, tipo resumen (Si no hay, no se envía). A las 8h
    - Destinatarios: Responsables de las tareas que vencen
    - Texto:[N] tareas en [Empresa] vencen hoy
    [Acción]: Navegar al listado de tareas con el filtro de Mis Tareas (Producto dice de filtrar por responsable y plazo, pero esos filtros no existen en el móvil todavía).

4. Tarea vencimientos múltipes: Hoy (de UNA tarea o subtarea) para observadores
    - Código: [PUSH_TASK_EXPIRATION_MULTIPLE_OBSERVERS]
    - Cuerpo:
    - Condiciones: Una notificación por empresa. Tareas o subtareas en estado en estado diferente a Desestimada, Verificada o Terminada
    - Cuándo: 
    - Destinatarios: Observadores de las tareas que vencen
    - Texto: [N] tareas en [Empresa] vencen hoy
    [Acción]: Navegar al listado de tareas con el filtro de Mis Tareas (Producto dice de filtrar por observador y plazo, pero esos filtros no existen en el móvil todavía).

5. Tarea comentario: para responsables
    - Código: [PUSH_TASK_COMMENT_RESPONSIBLES]
    - Cuerpo:
        - taskId
        - subtaskId => opcional
    - Condiciones: 
    - Cuándo: Cuando se añade un nuevo comentario a una tarea 
    - Destinatarios: Responsables
    - Texto: [AUTOR] ha añadido un comentario a la tarea [REF_TAREA] de [EMPRESA]: [comentario]
    [Acción]: Navegar a ficha de la tarea o subtarea (Duda: Abrir pestaña de comentario?)

6. Tarea comentario: para observadores
    - Código: [PUSH_TASK_COMMENT_OBSERVERS]
    - Cuerpo:
        - taskId
        - subtaskId => opcional
    - Condiciones: 
    - Cuándo: Cuando se añade un nuevo comentario a una tarea
    - Destinatarios: Observadores 
    - Texto: [AUTOR] ha añadido un comentario a la tarea [REF_TAREA] de [EMPRESA]: [comentario]
    [Acción]: Navegar a ficha de la tarea o subtarea (Duda: Abrir pestaña de comentario?)

7. Evaluaciones: solicitud de aprobación
    - Código: [PUSH_EVALUATION_APPROVAL_REQUEST]
    - Cuerpo:
        - evaluationId
    - Condiciones: 
    - Cuándo: Cuando en una evaluación se pulsa sobre "Solicitar aprobación"
    - Destinatarios: al creador y responsable de aprobación de la evaluación
    - Texto: [Nombre y apellidos del usuario que solicita la aprobación] solicita la aprobación de la Evaluación [Ref] de [Empresa]
    [Acción]: Navegar a ficha de la evaluación (Duda: nos viene la referencia en data?)

8. Intranet: certificado de información
    - Código: [PUSH_INTRANET_INFORMATION_CERTIFICATE]
    - Cuerpo:
    - Condiciones: 
    - Cuándo: 24h antes del vencimiento del certificado, o 1 día antes
    - Destinatarios: Al usuario de intrantet que corresponda
    - Texto: Tienes que renovar el Certificado de Información
    [Acción]: Navegar a page intranet information y abrir pestaña de certificado (Pasar filterType Certificate para que abra la pestaña)

9. Intranet: documentos pendientes informacion
    - Código: [PUSH_INTRANET_PENDING_INFORMATION_DOCUMENTS]
    - Cuerpo:
    - Condiciones: 
    - Cuándo: Semanal. Como en el mail
    - Destinatarios: Al usuario de intrantet que corresponda
    - Texto: [N] Documento(s) requieren su confirmación de entrega
    [Acción]: Navegar a page intranet information y abrir pestaña de certificado (Pasar filterType PendingRequirement para que abra la pestaña Por Gestionar)
   
10. Intranet: certificado de epis
    - Código: [PUSH_INTRANET_PPE_CERTIFICATE]
    - Cuerpo:
    - Condiciones: 
    - Cuándo: 24h antes del vencimiento del certificado, o 1 día antes
    - Destinatarios: Al usuario de intrantet que corresponda
    - Texto: Tienes que renovar el Certificado de Entrega de EPIs
    [Acción]: Navegar a page intranet information y abrir pestaña de certificado (Pasar filterType Certificate para que abra la pestaña)

11. Intranet: documentos pendientes epis
    - Código: [PUSH_INTRANET_PENDING_PPE_DOCUMENTS]
    - Cuerpo:
    - Condiciones: 
    - Cuándo: Semanal. Como en el mail
    - Destinatarios: Al usuario de intrantet que corresponda
    - Texto: [N] EPI(s) requieren su confirmación de entrega
    [Acción]: Navegar a page intranet information y abrir pestaña de certificado (Pasar filterType PendingRequirement para que abra la pestaña Por Gestionar)

12. Cae documentos pendientes: Subir  (salientes)
    - Código: PUSH_BAC_UPLOAD_DOCUMENTS_PENDING
    - Cuerpo:
    - Condiciones: La cuenta debe coincidir con lo que el usuario ve en la vista de la web, sumando los pendientes de cargar y caducados
    - Cuándo: Diaria. A las 10,30h
    - Destinatarios: Usuario de clientes con permiso de Editar en la sección de intercambio de documentación
    - Texto: Hay [N] requisitos para subir y renovar
    [Acción]: abre listado de Salientes filtrado por "Pendiente de cargar" y "caducados"
        
13. Cae documentos revisar: Subir  (entrantes)
    - Código: PUSH_BAC_REVIEW_DOCUMENTS_PENDING
    - Cuerpo:
    - Condiciones: La cuenta debe coincidir con lo que el usuario ve en la vista de la web, sumando los pendientes de revisión y no aplica provisional
    - Cuándo: Diaria. A las 10,30h
    - Destinatarios: Usuario de clientes con permiso de Editar en la sección de intercambio de documentación
    - Texto: Hay [N] documentos para revisar 
    [Acción]: abre listado de Entrantes filtrado por "pendiente de revisión" y "no aplica provisional"

14. Control accesos: acceso no permitido
    - Código: PUSH_ACCESS_CONTROL_NOT_ALLOWED
    - Cuerpo:
        - assetId
        - assetType
        - contractId
    - Condiciones: 
    - Cuándo: Cuando un usuario pulsa sobre "Notificar acceso no permitido en la web"
    - Destinatarios: A los mismos destinatarios que se envía el correo electrónico
    - Texto: [Nombre y apellidos del usuario que notifica] ha rechazado el acceso de [detalle de empleado/maquina] - [Nombre Contrata] a las [fecha y hora] en el [Nombre centro] de [Nombre Empresa]
    [Acción]: abre ficha del activo en el Control de Accesos para ese centro

15. Control accesos: acceso forzado
    - Código: PUSH_ACCESS_CONTROL_FORCED_ACCESS
    - Cuerpo:
        - assetId
        - assetType
        - contractId
    - Condiciones: 
    - Cuándo: Cuando se da acceso forzado a un empleado
    - Destinatarios: al que está configurado en la pestaña notificaciones del control de accesos
    - Texto: [Nombre y apellidos del usuario que notifica] ha forzado el acceso de [detalle de empleado/maquina] - [Nombre Contrata] a las [fecha y hora] en el [Nombre centro] de [Nombre Empresa]
    [Acción]: abre ficha del activo en el Control de Accesos para ese centro

16. Accidentes: accidente declarado
    - Código: PUSH_PAC_ACCIDENT_DECLARED
    - Cuerpo:
        - pacId
    - Condiciones: 
    - Cuándo: Al pasar de la fase de inicio a la de análisis de causas en un pac tipo accidente o tipo incidente
    - Destinatarios: a los usuarios que están configurados en la pestaña notificaciones de incidentes en la primera notificación, la de gravedad
    - Texto: Declarado [Nombre PAC accidente]-[Código] con [Nombre de la regla] registrado por [Nombre Apellidos] en [Nombre empresa]
    [Acción]: abre la ficha detalle del accidente