Descripción General
Los endpoints de Creación de Facturas proporcionan las operaciones fundamentales para generar facturas en el sistema RestMaster. Estos endpoints permiten crear facturas desde diferentes fuentes de datos, incluyendo datos completos de mesa, números de mesa, y operaciones múltiples para división de cuentas.
🎯 Características de la Creación de Facturas
- Múltiples fuentes de datos: Desde datos completos o números de mesa
- Validación automática: Verificación de integridad de datos antes de crear
- Asignación automática de números: Sistema automático de numeración
- Soporte para múltiples facturas: División de cuentas y facturas múltiples
- Gestión de impuestos: Cálculo automático de IVAs
Endpoints Disponibles
POST
/WorkingData/Invoice/from-table
Crea una factura desde datos completos de mesa. Este endpoint transforma datos completos de mesa en una factura y asigna el número correspondiente. Incluye la creación de cabecera, líneas e impuestos.
Body (JSON):
{
"cabecera": {
"salon": 1,
"mesa": 1,
"fecha": "2024-01-15T10:30:00Z",
"total": 45.50
},
"lineas": [
{
"articulo": "ART001",
"cantidad": 2,
"precio": 12.50,
"total": 25.00
}
]
}
Parámetros de consulta:
- serie (string, requerido): Serie 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
Factura creada exitosamente
{
"serie": "A",
"factura": 123,
"fecha": "2024-01-15T10:30:00Z",
"total": 45.50,
"lineas": [...],
"ivas": [...]
}
400 Bad Request
Datos inválidos o error de validación
500 Internal Server Error
Error interno del servidor
POST
/WorkingData/Invoice/from-table-number
Crea una factura desde números de sala y mesa. Este endpoint encuentra la mesa en la sala especificada, recupera sus datos y crea la factura correspondiente.
Parámetros de consulta:
- salon (int, requerido): Número de sala donde está la mesa
- mesa (int, requerido): Número de mesa a facturar
- serie (string, requerido): Serie 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
Factura creada exitosamente
400 Bad Request
Mesa no encontrada o sin líneas
500 Internal Server Error
Error interno del servidor
POST
/WorkingData/Invoice/multiple
Crea múltiples facturas desde una mesa. Este endpoint permite dividir una cuenta en múltiples facturas. Valida que la suma de importes coincida con el total de la mesa.
Body (JSON):
[
{
"cabecera": {
"salon": 1,
"mesa": 1,
"fecha": "2024-01-15T10:30:00Z",
"total": 25.50
},
"lineas": [...]
},
{
"cabecera": {
"salon": 1,
"mesa": 1,
"fecha": "2024-01-15T10:30:00Z",
"total": 20.00
},
"lineas": [...]
}
]
Parámetros de consulta:
- serie (string, requerido): Serie de las facturas
- salon (int, requerido): Número de sala
- mesa (int, requerido): Número de mesa
- 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
Facturas múltiples creadas exitosamente
[
{
"serie": "A",
"factura": 123,
"total": 25.50
},
{
"serie": "A",
"factura": 124,
"total": 20.00
}
]
400 Bad Request
Lista vacía o totales no coinciden
500 Internal Server Error
Error interno del servidor
POST
/WorkingData/Invoice/multiple/table
Crea múltiples facturas con datos completos de mesa. Similar al endpoint 'multiple' pero recibe datos de mesa directamente. Útil cuando los datos de mesa ya están en memoria.
Body (JSON):
{
"invoices": [
{
"cabecera": {...},
"lineas": [...]
}
],
"tableDto": {
"cabecera": {...},
"lineas": [...]
}
}
Parámetros de consulta:
- serie (string, requerido): Serie de las facturas
- 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
Facturas múltiples creadas exitosamente
400 Bad Request
Lista vacía o datos de mesa faltantes
500 Internal Server Error
Error interno del servidor
Servicio Utilizado
IInvoiceService - Servicio principal para la gestión de facturas
- CreateInvoiceFromTable(): Crea factura desde datos completos
- CreateInvoiceFromTableNumber(): Crea factura desde números de mesa
- CreateMultipleInvoices(): Crea múltiples facturas
- CreateMultipleInvoicesWithTable(): Crea múltiples facturas con datos de mesa