Obtener asignaciones por servicio

Este endpoint devuelve las asignaciones de un servicio dentro de un periodo de tiempo no superior a 31 días.

GET /api/v2/business/{businessId}/services/{serviceId}/assignments/from/{yyyy-MM-dd}/to/{yyyy-MM-dd}

Si los datos incluidos en la petición son correctos —tanto el businessId como el serviceId—, la respuesta contendrá las asignaciones del servicio para ese periodo.

Ejemplo de respuesta

[
    {
        "product": "0001-G",
        "blockedType": "NONE",
        "person": "1006355",
        "day": "2024-05-02",
        "presence": {
            "worked": false,
            "timeFrames": [
                {
                    "startMinuteDay": 0,
                    "duration": 1425,
                    "paid": false,
                    "worked": false
                }
            ]
        },
        "virtual": false
    },
    {
        "product": "0001-G",
        "blockedType": "NONE",
        "person": "1006355",
        "day": "2024-05-04",
        "presence": {
            "worked": true,
            "timeFrames": [
                {
                    "startMinuteDay": 450,
                    "duration": 240,
                    "paid": true,
                    "location": {
                        "color": "#fed46b",
                        "description": "Perform commercial tasks: customer service, collection, orders at the point of sale...",
                        "name": "Sales",
                        "shortName": "S",
                        "requiredLevel": 1,
                        "priority": 5,
                        "type": "VARIABLE",
                        "shouldAvoidOvercover": false,
                        "system": false,
                        "category": "Operational",
                        "product": "0001-G",
                        "id": "03",
                        "zone": "General"
                    },
                    "worked": true
                },
                {
                    "startMinuteDay": 780,
                    "duration": 300,
                    "paid": true,
                    "location": {
                        "color": "#7f7f7f",
                        "description": "Creation of the workshop opening checklist",
                        "name": "Opening",
                        "shortName": "OP",
                        "requiredLevel": 1,
                        "priority": 5,
                        "type": "FIXED",
                        "shouldAvoidOvercover": false,
                        "system": false,
                        "category": "Operational",
                        "product": "0001-G",
                        "id": "01",
                        "zone": "General"
                    },
                    "worked": true
                }
            ]
        },
        "virtual": false
    }
]
Detalles
  • product: identificador externo del producto (sección) al que pertenece la asignación.

  • blockedType: si la asignación está bloqueada y cómo (NONE, EXTENSIBLE_WORK, NON_EXTENSIBLE_WORK, EXTENSIBLE_TIME, NON_EXTENSIBLE_TIME, DAILY_WORKED).

  • person: identificador externo del empleado.

  • day: día de la asignación en formato yyyy-MM-dd.

  • presence: tipo de asignación que contiene los periodos de trabajo (timeFrames) con sus ubicaciones. Contiene los siguientes campos:

    • startTime: la hora de inicio de la presencia en minutos desde el comienzo del día (00:00). Puede ser null, ya que la hora de inicio real se puede calcular como la suma de las duraciones de sus periodos de tiempo (timeFrames).

    • duration: la duración en minutos de toda la presencia. Puede ser null, ya que la duración real se puede calcular como la suma de las duraciones de sus periodos de tiempo (timeFrames).

    • worked: si el tipo de asignación o presencia es trabajada (true) o si es un día de descanso (false).

    • timeFrames: conjunto de intervalos de tiempo que contiene las tareas que se van a realizar. Para cada intervalo, se incluye la siguiente información:

      • startMinuteDay: comienzo del intervalo en minutos transcurridos desde el inicio del día (00:00).

      • duration: duración del intervalo en minutos.

      • paid: si el intervalo, sea de trabajo o descanso, es pagado (true) o no (false).

      • worked: determina si el timeFrame tiene tarea asignada (true) o no (false).

      • location: tarea que se va a realizar en el intervalo definido. Por cada tarea, se incluye la siguiente información:

        • color: color configurado en Orquest para la tarea.

        • description: descripción de la tarea definida en Orquest.

        • name: nombre de la tarea en Orquest.

        • shortName: abreviatura de la tarea en Orquest.

        • requiredLevel: nivel de aptitud requerido para realizar la tarea. Va de 0 (sin necesidad de formación) a 3 (nivel máximo de formación) y debe ser previamente configurado en Orquest.

        • priority: prioridad de cobertura de la tarea. Va de 0 (baja) a 5 (alta) y debe ser previamente configurada en Orquest.

        • maxResources: límite de personas para la tarea.

        • type: tipo de tarea, si es fija, variable o no planificable (FIXED, VARIABLE, NON_PLANIFIABLE).

        • shouldAvoidOvercover: si este parámetro es true, la tarea no se sobrecubrirá.

        • system: determina si la tarea ha sido creada por el sistema (true) o por el usuario (false).

        • category: categoría de la tarea previamente configurada en Orquest.

        • product: identificador externo del producto o sección.

        • id: identificador externo de la tarea.

        • metadata: cualquier dato adicional que se haya configurado previamente para la tarea en Orquest. La estructura de los metadatos debe configurarse previamente.

        • zone: lugar físico del servicio (tienda, restaurante, etc.) donde se realiza la tarea.

  • virtual: indica si el empleado es virtual (true) o real (false).

La primera asignación del ejemplo se corresponde con un día de descanso, ya que el campo worked de la presencia es false. Además, solo tiene un timeFrame sin tarea asociada, cuya duración es del día completo y tanto el campo paid como el campo worked también aparecen como false.

En la segunda asignación del ejemplo, el campo worked de la presencia es true y se indican las características de las tareas desempeñadas por el empleado en cada timeFrame. El nivel de detalle de la respuesta dependerá de la configuración que se haya establecido en el negocio para las diferentes tareas.

Aspectos que tener en cuenta

Si no hay asignaciones para el periodo de tiempo indicado, la petición devolverá un array vacío [].

Si el servicio indicado en la URL no existe en el negocio, la petición devolverá un error 404 Not Found, especificando en el mensaje not exits.

Si el intervalo indicado en la URL es superior a 31 días, la petición devolverá un error 406 Not Acceptable, especificando en el mensaje The request exceded the maximum number of days allowed.

Enlaces de interés

¿Qué es una asignación?

¿Qué es una tarea?