Endpoints / Proformas

PATCH

Pagar proforma

Marca una proforma como pagada, descuenta el stock de los items inventariables y regenera el documento PDF con el nuevo estado.

PATCH/proformas/:id/pay

Caso de Uso

Se usa cuando la venta asociada a una proforma ya fue cobrada y se debe consolidar el descuento real del inventario. Al usarlo, el usuario obtiene la proforma actualizada con estado pagada, el PDF regenerado y una tarea de envío automática.

Autenticación

Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol jefe o empleado. La empresa y el usuario autenticado deben estar activos.

Parámetros de ruta

idstringobligatorio

Identificador de la proforma a pagar.

Reglas de negocio

1

Solo un usuario con rol jefe o empleado puede pagar proformas.

2

Solo permite pagar proformas de la empresa del usuario autenticado.

3

La empresa del usuario autenticado debe estar activa.

4

El usuario autenticado debe estar activo.

5

Solo una proforma en estado emitida puede pagarse.

6

La proforma debe contener al menos un item.

7

Para cada item inventariable se descuenta stock de la sucursal emisora de la proforma.

8

El stock debe existir en la sucursal indicada, estar activo y tener cantidad suficiente.

9

Los items no inventariables no afectan el stock.

10

Al completar el pago se regenera el PDF con el nuevo estado pagada.

11

Se crea automáticamente una tarea de envío de la proforma para procesamiento posterior.

Errores esperados

401No autorizado

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

400El id de proforma es requerido

No se envió el parámetro id en la ruta.

404Proforma no encontrada

No existe una proforma con el id indicado dentro de la empresa del usuario autenticado.

409Solo las proformas emitidas pueden pagarse

La proforma no está en estado emitida; solo puede pagarse una proforma emitida.

409La proforma debe contener al menos un item

La proforma no tiene items en su detalle.

409El stock no existe para esta sucursal y producto

No hay un registro de stock para un item inventariable en la sucursal emisora.

409El stock no está activo

El stock asociado a un item inventariable no está en estado activo.

409Cantidad de stock insuficiente

La cantidad disponible en stock es menor a la cantidad requerida por el item.

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 está activo

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

500El usuario no es jefe o empleado

El usuario autenticado no tiene un rol permitido para pagar proformas.

Notas de uso

1

Este endpoint no recibe body ni query params.

2

Solo los items inventariables descuentan stock; los items manuales no afectan el inventario.

3

Al completar el pago, el PDF se regenera automáticamente con el nuevo estado pagada.

4

Se crea una tarea de envío en segundo plano para notificar o distribuir el documento.