Crear o modificar empleado (complejo)
Este endpoint permite añadir un empleado o modificar sus datos utilizando su identificador (employeeId). Se pueden añadir o modificar todos los datos del empleado, incluyendo usuario vinculado, contratos, asociaciones a servicio, etc.
PUT /api/v2/businesses/{businessId}/employees/{employeeId}
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",
"aptitudes": [
{
"productId": "C14",
"aptitudes": [
{
"locationId": "101",
"level": 3
},
{
"locationId": "102",
"level": 2
}
]
}
],
"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
Esta petición generará una operación atómica que se puede revertir de forma automática si hay errores: el error se mostrará en la respuesta de la petición.
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.
-
Si el usuario existe y está vinculado a otro empleado, la operación se cancela y devuelve
HTTP 409 - Conflict
, señalando el conflicto con los detalles del error en el cuerpo de la respuesta.
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?