Obtener la configuración de una etapa

Este endpoint devuelve la configuración definida para una etapa de una propuesta de necesidades: sus reglas de productividad, la distribución de empleados y los límites de plantilla.

GET /api/v1/businesses/{businessId}/products/{productId}/needs-config/seasons/{seasonId}/proposals/{proposalId}/steps/{stepId}

En la URL de la petición, deben especificarse los identificadores externos de las diferentes entidades (negocio, producto, temporada, propuesta y etapa). Si los datos incluidos en la URL son correctos, la respuesta contendrá la configuración definida para la etapa indicada.

Ejemplo de respuesta

{
    "id": "STP1",
    "name": "Productivity",
    "type": "PRODUCTIVITY",
    "order": 4,
    "simpleProductivity": true,
    "productivityBands": [
        {
            "dayType": "ALL",
            "dayTypeNode": null,
            "startMinute": 540,
            "duration": 300,
            "salesBrackets": [
                {
                    "minSales": 0.0,
                    "maxSales": 400.0,
                    "productivity": 1.0
                },
                {
                    "minSales": 400.0,
                    "maxSales": 1500.0,
                    "productivity": 2.0
                },
                {
                    "minSales": 1500.0,
                    "maxSales": 3000.0,
                    "productivity": 3.0
                }
            ]
        }
    ],
    "employeeDistributionBands": [
        {
            "dayType": "ALL",
            "dayTypeNode": null,
            "startMinute": 540,
            "duration": 660,
            "distributions": [
                {
                    "totalEmployees": 1,
                    "locations": [
                        {
                            "id": "03",
                            "zone": "General",
                            "employees": 1
                        }
                    ]
                },
                {
                    "totalEmployees": 2,
                    "locations": [
                        {
                            "id": "03",
                            "zone": "General",
                            "employees": 2
                        }
                    ]
                },
                {
                    "totalEmployees": 3,
                    "locations": [
                        {
                            "id": "03",
                            "zone": "General",
                            "employees": 3
                        }
                    ]
                }
            ]
        }
    ],
    "employeeLimits": [
        {
            "dayType": "ALL",
            "dayTypeNode": null,
            "bands": [
                {
                    "startMinute": 540,
                    "duration": 300,
                    "minPersons": 1,
                    "maxPersons": 4
                },
                {
                    "startMinute": 840,
                    "duration": 360,
                    "minPersons": 2,
                    "maxPersons": 5
                }
            ]
        }
    ]
}
Detalles
  • id: identificador externo de la etapa.

  • name: nombre de la etapa.

  • type: tipo de la etapa.

  • order: posición de la etapa dentro de la propuesta.

  • simpleProductivity: determina si el valor de productividad de cada tramo es un número fijo de empleados (true) o se define por la demanda que cubre un empleado (false). Se define a nivel de propuesta de negocio y puede ser null si no se ha configurado.

  • productivityBands: reglas de productividad de la etapa. Para cada regla, se incluye la siguiente información:

    • dayType: nombre del tipo de día al que se aplica la regla de productividad.

    • dayTypeNode: identificador externo del nodo en el que está definido el tipo de día. Puede ser null para un tipo de día del sistema.

    • startMinute: inicio del intervalo en minutos a partir de las 00:00 hora local. Por ejemplo, 540 para las 9:00.

    • duration: duración del intervalo en minutos.

    • salesBrackets: tramos definidos para la regla de productividad. Para cada tramo, se incluye la siguiente información:

      • minSales: límite inferior del tramo.

      • maxSales: límite superior del tramo. El motor elige el tramo por su límite inferior, por lo que el más alto se extiende hasta el infinito.

      • productivity: número de empleados cuando la etapa es de productividad simple y unidades de demanda por empleado cuando no lo es.

      • minVariable: límite inferior de las necesidades variables. Puede ser null si no se ha definido.

      • maxVariable: ímite superior de las necesidades variables. Puede ser null si no se ha definido.

  • employeeDistributionBands: franjas de distribución de empleados de la etapa. Para cada una, se incluye la siguiente información:

    • dayType: nombre del tipo de día al que se aplica la regla de distribución.

    • dayTypeNode: identificador externo del nodo en el que está definido el tipo de día. Puede ser null para un tipo de día del sistema.

    • startMinute: inicio del intervalo en minutos a partir de las 00:00 hora local. Por ejemplo, 540 para las 9:00.

    • duration: duración del intervalo en minutos.

    • distributions: distribución por número de empleados necesarios. Para cada tramo, se incluye la siguiente información:

      • totalEmployees: número total de empleados para el que se define el reparto.

      • locations: reparto de ese número de empleados entre las tareas. Para cada tarea se incluye la siguiente información:

        • id: identificador externo de la tarea.

        • zone: identificador externo de la zona de la tarea.

        • employees: empleados asignados a la tarea.

  • employeeLimits: límites de plantilla de la etapa. Para cada bloque, se incluye la siguiente información:

    • dayType: nombre del tipo de día al que se aplica el límite de empleados.

    • dayTypeNode: identificador externo del nodo en el que está definido el tipo de día. Puede ser null para un tipo de día del sistema.

    • bands: límites por franja horaria. Para cada tramo, se incluye la siguiente información:

      • startMinute: inicio del intervalo en minutos a partir de las 00:00 hora local. Por ejemplo, 540 para las 9:00.

      • duration: duración del intervalo en minutos.

      • minPersons: número mínimo de personas. null significa que no hay mínimo.

      • maxPersons: número máximo de personas. null significa que no hay máximo.

Consideraciones

Si no hay configuración definida, la respuesta devolverá un array vacío en esa entidad (productivityBands, employeeDistributionBands o employeeLimits)

Códigos de error

Además de los errores comunes, este endpoint puede devolver los siguientes códigos:

Código Mensaje Descripción

404 Not Found

The product has no season with that id

La temporada indicada en la URL no existe.

The proposal is not active in that season

La propuesta indicada en la URL no existe.

The proposal has no writable step with that id

La etapa indicada en la URL no existe en la propuesta o su tipo todavía no está soportado por esta petición.

Enlaces de interés