Endpoints / Stock

GET

Listar stocks

Lista stocks de forma paginada para una sucursal específica dentro de la empresa del usuario autenticado, con búsqueda por código o nombre de producto y filtro por estado.

GET/stocks

Caso de Uso

Se usa cuando la aplicación necesita consultar el inventario de una sucursal concreta, buscar productos por código o nombre, o filtrar por estado. Al usarlo, el usuario obtiene una página de resultados con el conteo total de stocks de la sucursal indicada.

Autenticación

Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol jefe o empleado.

Parámetros de ruta

Este endpoint no recibe parámetros de ruta.

Query params

pagestringobligatorio

Número de página. Debe ser un entero positivo.

pageSizestringobligatorio

Cantidad de registros por página. Debe ser un entero positivo.

stcksuidstring opcional

ID directo de la sucursal. Prioridad sobre suidentificador.

suidentificadorstring opcional

Identificador de sucursal (3 dígitos).

searchstring opcional

Texto para buscar por código o nombre de producto.

statusstring opcional

Estado del stock. Solo acepta activo o inactivo.

Body

No aplica.

Reglas de negocio

1

Solo un usuario con rol jefe o empleado puede listar stock.

2

Solo permite listar stock de la empresa del usuario autenticado.

3

La empresa del usuario autenticado debe estar activa.

4

El usuario autenticado debe estar activo.

5

page y pageSize son obligatorios y deben ser enteros positivos.

6

Se requiere stcksuid o suidentificador para filtrar por sucursal.

7

Si se envían ambos, stcksuid tiene prioridad.

8

La sucursal debe existir en la empresa.

9

Si no se envía status, se excluyen los registros con estado eliminado.

10

search busca en prdtocodigo y prdtonombre.

11

La respuesta incluye relaciones de sucursal y producto.

Errores esperados

401No autorizado

No se envió un token JWT válido o el token no contiene información válida del usuario.

400La búsqueda debe ser un texto

El query param search fue enviado como arreglo en lugar de texto.

400El estado debe ser un texto

El query param status fue enviado como arreglo en lugar de texto.

400El estado debe ser activo o inactivo

El query param status tiene un valor distinto de activo o inactivo.

400El id de sucursal o identificador de sucursal es requerido

No se envió stcksuid ni suidentificador, o ambos fueron enviados vacíos.

404Sucursal no encontrada

El suidentificador enviado no corresponde a una sucursal existente en la empresa.

500La página debe ser un entero positivo

page no es un entero positivo o no fue enviado.

500El tamaño de página debe ser un entero positivo

pageSize no es un entero positivo o no fue enviado.

500La empresa no existe

La empresa asociada al usuario autenticado no fue encontrada.

500La empresa no está activa

La empresa asociada al usuario autenticado está inactiva.

500El usuario no existe

El usuario autenticado no fue encontrado dentro de su empresa.

500El usuario no pertenece a la empresa

El usuario autenticado no pertenece a la empresa indicada por su sesión.

500El usuario no puede acceder a otra empresa

El usuario autenticado intentó acceder a una empresa distinta a la suya.

500El usuario no es jefe, empleado o administrador

El rol del usuario no está permitido para acceder al módulo de stock.

500El usuario no es jefe o empleado

El usuario autenticado no tiene un rol permitido para listar stock.

500El usuario no está activo

El usuario autenticado está inactivo y no puede usar el sistema.

500La sucursal de stock no existe

El stcksuid enviado no corresponde a una sucursal existente en la empresa.

Notas de uso

1

search y status son opcionales.

2

Si se envían ambos stcksuid y suidentificador, stcksuid tiene prioridad.

3

Para listar stocks de todas las sucursales, usa GET /stocks/all.

4

La respuesta incluye relaciones anidadas de sucursal y producto.