post
https://app.fracttal.com/api/group_tasks//tasks//resources
Agrega uno o varios recursos a una tarea existente de un plan de tareas. Se admiten tres tipos de recurso: inventario (herramientas y repuestos), recursos humanos y servicios. Cada recurso se crea con cantidad 1 y con el costo unitario predeterminado de su ficha de origen.
Parámetros de entrada
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
id_group_task | entero | Sí | Identificador del plan de tareas. Se envía en la ruta. |
id_task | entero | Sí | Identificador de la tarea a la que se agregan los recursos. Debe pertenecer al plan indicado en id_group_task. Se envía en la ruta. |
resources | array de objeto | Sí | Recursos a crear. Debe incluir entre 1 y 50 elementos. Ver estructura en la tabla siguiente. |
Estructura de cada elemento en resources:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
type_description | texto | Sí | Tipo de recurso. Valores permitidos: INVENTORY, HUMAN_RESOURCES, SERVICES. |
id_item | entero | Sí, si type_description es INVENTORY | Identificador del ítem de inventario. Debe ser una herramienta o un repuesto. |
id_hourly_rate | entero | Sí, si type_description es HUMAN_RESOURCES | Identificador de la tarifa horaria del recurso humano. |
id_service_type | entero | Sí, si type_description es SERVICES | Identificador del tipo de servicio. |
note | texto | No | Nota asociada al recurso. |
Reglas deresources
- La cantidad de cada recurso se fija siempre en
1, sin importar lo enviado en la petición.- El costo unitario se toma de la ficha de origen: costo promedio del ítem (
INVENTORY), valor de la tarifa horaria (HUMAN_RESOURCES) o costo del servicio (SERVICES). Si la ficha no tiene un costo configurado, el recurso se crea conunit_costigual a0.- No se puede agregar un recurso que ya existe en la tarea (mismo tipo y misma referencia), ni repetir el mismo recurso dentro de la misma petición.
- La operación es atómica: si algún recurso no supera las validaciones, no se crea ninguno y la respuesta indica, por cada recurso con error, su posición (
index) y el motivo.- El token debe tener permiso de edición sobre los planes de tareas, y la tarea debe pertenecer a la compañía del token utilizado.
Parámetros de salida
| Parámetro | Tipo | Descripción |
|---|---|---|
success | booleano | Indica si la operación fue exitosa. |
message | texto | Código de resultado ("201" si fue exitosa). |
data | array de objeto | Recursos creados. Ver estructura en la tabla siguiente. |
total | entero | Cantidad de recursos creados. |
Estructura de cada elemento en data:
| Parámetro | Tipo | Descripción |
|---|---|---|
id | entero | Identificador del recurso creado. |
type_description | texto | Tipo de recurso: INVENTORY, HUMAN_RESOURCES o SERVICES. |
quantity | entero | Cantidad del recurso. Siempre 1. |
unit_cost | número | Costo unitario aplicado, tomado de la ficha de origen. |
id_item | entero | Identificador del ítem. Solo se devuelve cuando el tipo es INVENTORY. |
id_hourly_rate | entero | Identificador de la tarifa horaria. Solo se devuelve cuando el tipo es HUMAN_RESOURCES. |
id_service_type | entero | Identificador del tipo de servicio. Solo se devuelve cuando el tipo es SERVICES. |
Errores
| Código | Causa |
|---|---|
401 | Token ausente o inválido. |
403 | El token no tiene permiso de edición sobre los planes de tareas, o la compañía no cuenta con el add-on APIS AVANZADAS. |
404 | La tarea indicada en id_task no existe. |
422 | Validación fallida: falta id_group_task o id_task, el plan no existe, la tarea no pertenece al plan, resources está ausente, vacío o tiene más de 50 elementos, o algún recurso es inválido (tipo no permitido, referencia ausente o inexistente, ítem que no es herramienta ni repuesto, recurso duplicado). |
Nota sobre los códigos de errorEste servicio informa el resultado en el campo
messagede la respuesta. Cuando uno o varios recursos no superan la validación (422), el campodataincluye un elemento por cada recurso con error, con su posiciónindex(a partir de0) y el detalle enerror. Los mensajes de error se devuelven en inglés.
Ejemplo
Request body
{
"resources": [
{
"type_description": "INVENTORY",
"id_item": 4521,
"note": "Llave de impacto para el ajuste de pernos"
},
{
"type_description": "HUMAN_RESOURCES",
"id_hourly_rate": 310
},
{
"type_description": "SERVICES",
"id_service_type": 87
}
]
}Response 201
201{
"success": true,
"message": "201",
"data": [
{
"id": 90211,
"type_description": "INVENTORY",
"quantity": 1,
"unit_cost": 45.5,
"id_item": 4521
},
{
"id": 90212,
"type_description": "HUMAN_RESOURCES",
"quantity": 1,
"unit_cost": 18,
"id_hourly_rate": 310
},
{
"id": 90213,
"type_description": "SERVICES",
"quantity": 1,
"unit_cost": 0,
"id_service_type": 87
}
],
"total": 3
}Response — Recurso inválido (422)
422){
"success": false,
"message": "422",
"data": [
{
"index": 1,
"error": "id_hourly_rate is required for HUMAN_RESOURCES"
},
{
"index": 2,
"error": "Resource SERVICES id_service_type 87 already exists for this task"
}
],
"total": 0
}Response — Tarea inexistente (404)
404){
"success": false,
"message": "404",
"data": [
{
"ERROR": "id_task not found"
}
],
"total": 0
}OpenAPI definition
{
"openapi": "3.1.0",
"info": {
"title": "group_tasks_resources",
"version": "1-Es"
},
"servers": [
{ "url": "https://app.fracttal.com/api/group_tasks" }
],
"security": [{}],
"paths": {
"/{id_group_task}/tasks/{id_task}/resources": {
"post": {
"summary": "Crear recursos en una tarea de un plan de tareas",
"description": "",
"operationId": "crear-recursos-en-una-tarea-de-un-plan-de-tareas",
"deprecated": false,
"security": []
}
}
},
"x-readme": {
"headers": [],
"explorer-enabled": false,
"proxy-enabled": true
},
"x-readme-fauxas": true
}