Descripción General
Los endpoints de Gestión de Cabeceras proporcionan las operaciones fundamentales para administrar las cabeceras de mesas del restaurante. Estos endpoints manejan la creación, actualización y eliminación de comandas, incluyendo gestión de estados de mesa, división de mesas y asignación de clientes.
🎯 Características de la Gestión de Cabeceras
- Creación completa: Crear cabeceras con todos los datos necesarios
- Creación simplificada: Crear cabeceras con valores por defecto
- Actualización controlada: Modificar cabeceras existentes
- Eliminación segura: Eliminar cabeceras con validación
- Identificación compuesta: Cada cabecera se identifica por salón, mesa y relación
- Estados de mesa: Control de ocupación y división
- Manejo de errores: Respuestas apropiadas para casos de error
- Logging estructurado: Registro de errores y eventos
- Validación de datos: Verificación de integridad de la información
- Respuestas tipadas: Uso de ServiceResult para manejo de resultados
Endpoints Disponibles
POST
/WorkingData/MesasCabecera/Add
Crea una nueva cabecera de mesa con todos los datos proporcionados. Este endpoint permite crear una comanda completa con información detallada del cliente, repartidor, comisiones, etc.
Body (JSON):
{
"salon": 1,
"mesa": 5,
"relacion": 1,
"fecha": "2024-01-15T00:00:00",
"hora": "2024-01-15T14:30:00",
"dividida": "N",
"tipoDocumento": "F",
"serie": "",
"factura": 0,
"comisionista": 2,
"valorComision": 5.00,
"cliente": 123,
"repartidor": 0,
"horaReparto": "2024-01-15T14:30:00",
"pedido": 0,
"propina": "S",
"porcentajePropina": 10.0
}
Parámetros de consulta:
- 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
201 Created
Cabecera creada exitosamente
{
"salon": 1,
"mesa": 5,
"relacion": 1,
"fecha": "2024-01-15T00:00:00",
"hora": "2024-01-15T14:30:00",
"dividida": "N",
"tipoDocumento": "F",
"serie": "",
"factura": 0,
"comisionista": 2,
"valorComision": 5.00,
"cliente": 123,
"repartidor": 0,
"horaReparto": "2024-01-15T14:30:00",
"pedido": 0,
"propina": "S",
"porcentajePropina": 10.0
}
400 Bad Request
Error al crear la cabecera
{
"message": "The MesasCabecera object cannot be null."
}
500 Internal Server Error
Error interno del servidor
{
"message": "Internal server error",
"error": "Error details..."
}
POST
/WorkingData/MesasCabecera/AddSimplified
Crea una nueva cabecera simplificada con valores por defecto. Este endpoint permite crear una comanda básica automáticamente asignando valores por defecto para campos no proporcionados.
Body (JSON):
{
"salon": 1,
"mesa": 5
}
Parámetros de consulta:
- 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
201 Created
Cabecera simplificada creada exitosamente
{
"salon": 1,
"mesa": 5,
"relacion": 1,
"fecha": "2024-01-15T00:00:00",
"hora": "2024-01-15T14:30:00",
"dividida": "N",
"tipoDocumento": "F",
"serie": "",
"factura": 0,
"comisionista": 0,
"valorComision": 0,
"cliente": 0,
"repartidor": 0,
"horaReparto": "2024-01-15T14:30:00",
"pedido": 0,
"propina": "N",
"porcentajePropina": 0
}
400 Bad Request
Error al crear la cabecera simplificada
{
"message": "The MesasCabecera object cannot be null."
}
500 Internal Server Error
Error interno del servidor
PUT
/WorkingData/MesasCabecera/Update/{salon}/{mesa}/{relacion}
Actualiza una cabecera existente por salón, mesa y relación. Este endpoint permite modificar la información de una comanda ya creada.
Parámetros de ruta:
- salon (double, requerido): ID del salón
- mesa (double, requerido): ID de la mesa
- relacion (double, requerido): ID de relación
Body (JSON):
{
"salon": 1,
"mesa": 5,
"relacion": 1,
"fecha": "2024-01-15T00:00:00",
"hora": "2024-01-15T14:30:00",
"dividida": "S",
"tipoDocumento": "F",
"serie": "",
"factura": 0,
"comisionista": 2,
"valorComision": 5.00,
"cliente": 123,
"repartidor": 0,
"horaReparto": "2024-01-15T14:30:00",
"pedido": 0,
"propina": "S",
"porcentajePropina": 10.0
}
Parámetros de consulta:
- 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
Cabecera actualizada exitosamente
{
"salon": 1,
"mesa": 5,
"relacion": 1,
"fecha": "2024-01-15T00:00:00",
"hora": "2024-01-15T14:30:00",
"dividida": "S",
"tipoDocumento": "F",
"serie": "",
"factura": 0,
"comisionista": 2,
"valorComision": 5.00,
"cliente": 123,
"repartidor": 0,
"horaReparto": "2024-01-15T14:30:00",
"pedido": 0,
"propina": "S",
"porcentajePropina": 10.0
}
400 Bad Request
Error al actualizar la cabecera
500 Internal Server Error
Error interno del servidor
DELETE
/WorkingData/MesasCabecera/Delete/{salon}/{mesa}/{relacion}
Elimina una cabecera específica por salón, mesa y relación. Este endpoint permite eliminar una comanda, útil para cancelar comandas o corregir errores.
Parámetros de ruta:
- salon (double, requerido): ID del salón
- mesa (double, requerido): ID de la mesa
- relacion (double, requerido): ID de relación
Parámetros de consulta:
- 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
Cabecera eliminada exitosamente
{
"message": "Table header deleted successfully.",
"data": {
"salon": 1,
"mesa": 5,
"relacion": 1,
"fecha": "2024-01-15T00:00:00",
"hora": "2024-01-15T14:30:00",
"dividida": "N",
"tipoDocumento": "F",
"serie": "",
"factura": 0,
"comisionista": 0,
"valorComision": 0,
"cliente": 0,
"repartidor": 0,
"horaReparto": "2024-01-15T14:30:00",
"pedido": 0,
"propina": "N",
"porcentajePropina": 0
}
}
400 Bad Request
Error al eliminar la cabecera
500 Internal Server Error
Error interno del servidor
Servicio Utilizado
IMesasCabeceraService - Servicio principal para la gestión de cabeceras de mesas
- Add(): Crea una nueva cabecera completa
- GetMaxRelacion(): Obtiene el máximo relación para una mesa
- Update(): Actualiza una cabecera existente
- Delete(): Elimina una cabecera específica