Centros de Gestión
GET: Obtener centros de gestión
Descripción del API
Este endpoint permite listar los centros de gestión de una compañía. Si el usuario no tiene permisos para acceder a la compañía, se devolverá un error.
Método HTTP
GET /api/management-centers
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
Sin parámetros de entrada |
JSON de ejemplo (entrada)
{}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
id | integer | Identificador único del centro de gestión | 101 |
code | string | Código del centro de gestión | "MAT001" |
name | string | Nombre del centro de gestión | "Centro de Logística ABC" |
team_id | integer | ID del equipo asociado | 2021 |
created_at | timestamp | Fecha y hora de creación | "2024-01-15T09:00:00.000Z" |
updated_at | timestamp | Fecha y hora de última actualización | "2024-01-20T11:15:30.000Z" |
deleted_at | timestamp | Fecha y hora de eliminación | null |
JSON de ejemplo (salida)
- Respuesta 200 OK:
[
{
"id": 101,
"code": "MAT001",
"name": "Centro de Logística ABC",
"team_id": 2021,
"created_at": "2024-01-15T09:00:00.000Z",
"updated_at": "2024-01-20T11:15:30.000Z",
"deleted_at": null
},
{
"id": 102,
"code": "MAT002",
"name": "Almacén de Productos XYZ",
"team_id": 2022,
"created_at": "2024-02-10T14:30:00.000Z",
"updated_at": "2024-02-15T16:45:00.000Z",
"deleted_at": null
},
{
"id": 103,
"code": "MAT003",
"name": "Centro de Distribución DEF",
"team_id": 2023,
"created_at": "2024-03-01T08:00:00.000Z",
"updated_at": "2024-03-05T10:10:00.000Z",
"deleted_at": null
}
]
POST: Crear un nuevo centro de costo
Descripción del API
Este endpoint permite crear un nuevo centro de costo en el sistema. Se debe enviar la información completa del centro de costo, como su nombre y código único (code
). El sistema valida que el código (code
) no esté ya registrado en otro centro de costo. Si el código ya existe, se devolverá un mensaje de error. Si la creación es exitosa, se devuelve un mensaje de éxito con el ID del centro de costo recién creado.
Método HTTP
POST /api/management-centers
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
code | Sí | String | Código único que identifica el centro de costo. | "0001" |
name | Sí | String | Nombre del centro de costo. | "Prueba" |
subcompany_id | Sí | Integer | ID de la subcompañía asociada. | 1 |
JSON de ejemplo
{
"code": "0001",
"name": "Prueba",
"subcompany_id": 1
}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
status | String | Estado de la operación, puede ser 'success' o 'error' . | 'success' |
message | String | Mensaje descriptivo del resultado de la operación. | 'Centro de costo creado exitosamente.' |
id | Number | ID del centro de costo creado si la operación fue exitosa. | 1 |
JSON de ejemplo: Caso de éxito
{
"status": "success",
"message": "Centro de costo creado exitosamente.",
"id": 123
}
JSON de ejemplo: Caso de error (Código ya registrado)
{
"status": "error",
"message": "El código 0001 ya existe en este equipo.",
"id": 456
}
JSON de ejemplo: Caso de error (Subcompañía no encontrada)
{
"status": "error",
"message": "La subcompañía con ID 1 no existe para este equipo.",
"id": null
}
PUT: Actualizar un centro de costo existente
Descripción del API
Este endpoint permite actualizar un centro de costo existente en el sistema. Se debe enviar la información que se desea modificar, como el nombre y el código (code
). El sistema valida que el código proporcionado no esté ya registrado en otro centro de costo dentro del mismo equipo. Si el código ya está siendo utilizado por otro centro de costo (y no es el mismo centro que se está actualizando), se devolverá un mensaje de error. Si la actualización es exitosa, se devuelve un mensaje de éxito con el ID del centro de costo actualizado.
Método HTTP
PUT /api/management-centers/{id}
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
team_id | Sí | Número | ID del equipo al que pertenece el centro de costo. | 1 |
id | Sí | Número | ID del centro de costo a actualizar. | 1 |
code | No | String | Código único del centro de costo (solo si se desea modificarlo). | "0001" |
name | No | String | Nombre del centro de costo (solo si se desea modificarlo). | "Prueba Actualizado" |
subcompany_id | No | Número | ID de la subcompañía asociada al centro de costo. | 2 |
JSON de ejemplo
{
"code": "0001",
"name": "Prueba Actualizado",
"subcompany_id": 1
}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
status | String | Indica el estado de la respuesta, puede ser success o error . | "success" |
message | String | Mensaje que proporciona información sobre el resultado. | "Centro de costo actualizado exitosamente." |
id | Número | ID del centro de costo actualizado. | 1 |
JSON de ejemplo (caso de éxito)
{
"status": "success",
"message": "Centro de costo actualizado exitosamente.",
"id": 1
}
Casos de error
1. El centro de costo no fue encontrado para el equipo
Descripción
Este error ocurre cuando no se encuentra un centro de costo con el ID proporcionado para el equipo especificado.
JSON de ejemplo:
{
"status": "error",
"message": "Centro de gestión con ID 1 no encontrado para el equipo 1.",
"id": 1
}
2. El código del centro de costo ya existe en el equipo
Descripción
Este error ocurre cuando el código (code
) enviado en la solicitud ya está registrado para otro centro de costo dentro del mismo equipo. Esto asegura que los códigos de los centros de costo sean únicos dentro de un equipo, para evitar duplicados.
JSON de ejemplo:
{
"status": "error",
"message": "El código 0001 ya existe en este equipo.",
"id": 1
}
3. La subcompañía con el ID proporcionado no existe en el equipo
Descripción
Este error ocurre cuando el subcompany_id
enviado en la solicitud no está registrado en las compañías del equipo especificado. Esto asegura que solo se asocien centros de costo a subcompañías válidas dentro del mismo equipo.
JSON de ejemplo:
{
"status": "error",
"message": "La subcompañía con ID 2 no existe en este equipo.",
"id": null
}
DELETE: Eliminar un centro de costo
Este endpoint permite eliminar un centro de costo del sistema. Se debe proporcionar el id del centro de costo y el team_id correspondiente. El sistema valida que el centro de costo con el id proporcionado exista para el equipo. Si el centro de costo no existe, se devuelve un mensaje de error. Si la eliminación es exitosa, se devuelve un mensaje de éxito con el id del centro de costo eliminado.
Método HTTP
DELETE /api/management-centers/{id}
Parámetros de Entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
id | Sí | Número | ID de la empresa que se desea eliminar. | 123 |
JSON de Ejemplo
{}
Parámetros de Salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
status | Cadena | Estado de la operación (success o error). | "success" |
message | Cadena | Mensaje que describe el resultado de la operación. | "Empresa eliminada exitosamente." |
id | Número | ID del centro de cost que fue eliminada o null en caso de error. | 123 |
JSON de Ejemplo (caso de exito)
{
"status": "success",
"message": "Centro de gestión con ID 1 no encontrado para el equipo 2",
"id": 123
}
Caso de error: Centro de costo no encontrado
Descripción
Si el centro de costo no se encuentra para el equipo proporcionado, se devuelve un mensaje de error con los detalles correspondientes:
JSON de ejemplo:
{
"status": "error",
"message": "Centro de gestión con ID 1 no encontrado para el equipo 2",
"id": 1
}