Crear o modificar lista de empleados (complejo)
Este endpoint es uno de los más complejos de Orquest, pues permite no solo crear o modificar la lista de empleados como tal, sino también todos los datos vinculados a estos: usuarios, contratos, asociaciones a servicio, etc.
PUT /api/v2/businesses/{businessId}/employees
A continuación, se expone una explicación detallada de cada uno de los campos que pueden conformar el cuerpo de la petición, siendo algunos de ellos obligatorios para que esta se realice de manera exitosa.
|
Los campos obligatorios están marcados con un asterisco (*). |
Cuerpo de la petición
| Análisis del JSON |
|---|
Detalles
|
Objeto person* Incluye los datos personales del empleado identificado a través de su employeeId. |
Detalles
|
Objeto user Incluye los datos que vinculan al empleado con un usuario de la aplicación de Orquest. |
Detalles
|
Objeto serviceAssociations Incluye la información relativa a las asociaciones a servicio establecidas para el empleado. |
Detalles
|
Objeto contracts Incluye la información relativa a los contratos que se aplican al empleado, en términos de horas trabajadas, limitaciones laborales, etc. |
Detalles
|
Ejemplo de la petición
Una vez realizado el análisis de los distintos campos, se muestra un ejemplo del cuerpo de la petición:
[
{
"business": "BUSINESSID",
"lag": 0,
"partial": false,
"ignoreWithoutOuterId": false,
"ignoreServiceAssociations": false,
"ignoreContracts": false,
"person": {
"name": "Brian",
"surname": "Cohen",
"group": "01",
"email": "brian@orquest.com",
"birthday": "1987-12-01",
"employeeId": "021298521",
"metadata": {
"language": "english",
"nationality": "scottish"
},
"seniority": "2021-12-01",
"virtual": false
},
"user": {
"username": "brian",
"email": "brian@cohen.com",
"nodes": [
10, 14
],
"roles": [
"admin"
]
},
"serviceAssociations": [
{
"ownerProduct": "C14",
"product": "C14",
"from": "2024-04-11",
"to": null,
"splitPresence": true,
"unplannable": false,
"card": "C14A658",
"roles": [
"manager"
],
"disponibility": [
{
"from": "2024-04-11",
"to": null,
"ranges": [
{
"dayType": "ALL",
"startMinuteDay": 600,
"duration": 300
}
]
}
],
"regularCessions": [
{
"product": "C15",
"minutes": 60,
"days": [
"MONDAY"
]
}
],
"metadata": {
"restAllowed": true,
"time": 15,
"position": "free"
},
"id": "asb1415"
}
],
"contracts": [
{
"from": "2024-04-11",
"to": null,
"regularMinutes": 2400,
"weeklyContract": true,
"countingDays": "MONDAY_SUNDAY",
"additionalMinutes": 360,
"regularControlPeriod": "WEEKLY",
"regularPeriodMultiplier": 1,
"regularPeriodStartDate": "2024-04-11",
"additionalControlPeriod": "WEEKLY",
"additionalPeriodMultiplier": 1,
"additionalPeriodStartDate": "2024-04-11",
"calendarDaysOff": true,
"numberOfHolidays": 25,
"numberOfPublicHolidays": 7,
"weeklyDaysInvolved": "MONDAY_SUNDAY",
"metadata": {
"full": true,
"days": 215,
"taxProfit": "none"
},
"costPerHour": 200.34,
"personCategory": "DE125",
"id": "321abc654def",
"contractTypeId": "07H",
"completed": false
}
]
}
]
Aspectos que tener en cuenta
Cada entidad de la lista tiene su propio estado, es decir, cada elemento se actualiza de manera independiente.
No se permiten más de 30 elementos en el cuerpo de la petición.
Validación de usuario
Si se incluyen datos del objeto user, se valida la existencia de ese usuario en Orquest, de modo que se establecen los siguientes escenarios:
-
Si el usuario no existe, se crea y se vincula al empleado.
-
Si el usuario existe y ya está vinculado al empleado de la petición, se actualiza la información. El campo
usernameno se actualiza, soloemail,nodesyroles. -
Si el usuario existe y está vinculado a otro empleado, la operación se cancela y la petición devuelve un error
409 Conflict.
Si el formato de la dirección de correo electrónico no es válido, la petición devolverá un error 406 Not Acceptable indicando User email is not valid.
En roles, el nombre del rol debe coincidir exactamente con el que está configurado en el sistema: Configuración de negocio > Roles.
Si alguno de los roles no coincide con los que están definidos a nivel de negocio, la petición devolverá un error 409 Conflict indicando en el mensaje some role is not valid.
Tanto nodes como roles definidos previamente permanecen cuando se realiza la petición sin estos campos de usuario.
|
Un usuario de integraciones podrá asignar cualquier rol definido a nivel de negocio. |
|
Si la categoría de empleado ( |
Enlaces de interés
¿Qué es un empleado?
¿Qué es una asociación a servicio?
¿Qué es un contrato? ¿Y un tipo de contrato?