Descripción General
El endpoint de Gestión de Estados proporciona la funcionalidad para actualizar el estado de las facturas del restaurante. Este endpoint permite controlar el ciclo de vida de las facturas, desde su creación hasta su finalización, pasando por diferentes estados que reflejan su situación actual.
🎯 Características de la Gestión de Estados
- Control de ciclo de vida: Gestión del flujo de estados de las facturas
- Identificación compuesta: Se accede por tipo, serie y número de factura
- Validación de transiciones: Verificación de que el cambio de estado sea válido
- Transacciones seguras: Uso de contexto de base de datos
- Resultados estructurados: ServiceResult para manejo de errores
- Auditoría automática: Registro de cambios de estado
Endpoint Disponible
PUT
/WorkingData/InvoiceHead/{tipoDocumento}/{serie}/{factura}/status
Actualiza el estado de una factura específica por su tipo de documento, serie y número. Este endpoint permite cambiar el estado de una factura a través de su ciclo de vida.
Parámetros de ruta:
- tipoDocumento (string, requerido): Tipo de documento (ej: "FACTURA", "TICKET")
- serie (string, requerido): Serie del documento
- factura (double, requerido): Número de factura
Parámetros de consulta:
- status (string, requerido): Nuevo estado de la factura
- initialCatalog (string, requerido): Nombre de la base de datos
- userID (string, opcional): ID de usuario de la base de datos
- password (string, opcional): Contraseña de la base de datos
200 OK
Estado de factura actualizado exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error en la actualización del estado
{
"isSuccess": false,
"error": "Error al actualizar estado: Transición de estado no válida",
"data": false
}
Servicio Utilizado
IInvoiceHeadService - Servicio principal para la gestión de cabeceras de facturas
- UpdateInvoiceStatus(): Actualiza el estado de una factura específica
- Parámetros: tipoDocumento (string), serie (string), factura (double), status (string), context (WorkingDataContext)
- Retorno: ServiceResult<bool> - Resultado de la operación
📝 Ejemplos de Uso
🌐 Uso en JavaScript
// Cambiar estado de factura a PAGADA
const response = await fetch(
`/WorkingData/InvoiceHead/FACTURA/A/1001/status?status=PAGADA&initialCatalog=${dbName}`,
{ method: 'PUT' }
);
const result = await response.json();
if (result.isSuccess) {
console.log('Estado actualizado correctamente');
} else {
console.error('Error:', result.error);
}
🔗 Uso en Aplicaciones Móviles
// Anular una factura
const updateStatus = async (tipoDoc, serie, factura, nuevoEstado) => {
const url = `/WorkingData/InvoiceHead/${tipoDoc}/${serie}/${factura}/status`;
const params = new URLSearchParams({
status: nuevoEstado,
initialCatalog: dbName
});
const response = await fetch(`${url}?${params}`, { method: 'PUT' });
return await response.json();
};