Descripción General
Los endpoints de Gestión de Líneas proporcionan las operaciones fundamentales para administrar las líneas de factura del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de líneas de factura, incluyendo información de productos, cantidades, precios y cálculos automáticos.
🎯 Características de la Gestión de Líneas
- Identificación compuesta: Cada línea se identifica por tipo, serie, factura y número de línea
- Información de productos: Artículo, descripción, cantidad y precio
- Cálculos automáticos: Importes, descuentos e IVA
- Transacciones seguras: Uso de contexto de base de datos
- Resultados estructurados: ServiceResult para manejo de errores
- Validación de datos: Verificación de integridad de la información
Endpoints Disponibles
GET
/WorkingData/InvoiceLine/{tipoDocumento}/{serie}/{factura}
Obtiene todas las líneas de una factura específica por su tipo de documento, serie y número. Este endpoint permite recuperar la información completa de todas las líneas de una factura.
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 servicios:
- context (WorkingDataContext): Contexto de base de datos inyectado
200 OK
Líneas de factura devueltas exitosamente
[
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"linea": 1,
"articulo": "ART001",
"cantidad": 2,
"precio": 12.50,
"importe": 25.00,
"descuento": 0,
"iva": 5.25,
"descripcion": "Hamburguesa Clásica"
},
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"linea": 2,
"articulo": "ART002",
"cantidad": 1,
"precio": 8.00,
"importe": 8.00,
"descuento": 1.00,
"iva": 1.47,
"descripcion": "Refresco Cola"
}
]
400 Bad Request
Error en la solicitud o factura no encontrada
{
"isSuccess": false,
"error": "Factura no encontrada",
"data": null
}
POST
/WorkingData/InvoiceLine
Agrega una nueva línea a una factura existente. Este endpoint permite añadir productos a una factura ya creada.
Body (JSON):
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"linea": 3,
"articulo": "ART003",
"cantidad": 1,
"precio": 15.00,
"descuento": 0,
"descripcion": "Ensalada César"
}
Parámetros de servicios:
- context (WorkingDataContext): Contexto de base de datos inyectado
200 OK
Línea agregada exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al agregar la línea
{
"isSuccess": false,
"error": "Error al agregar línea: Artículo no válido",
"data": false
}
PUT
/WorkingData/InvoiceLine
Actualiza una línea existente de una factura. Este endpoint permite modificar la información de una línea ya registrada.
Body (JSON):
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"linea": 1,
"articulo": "ART001",
"cantidad": 3,
"precio": 12.50,
"descuento": 2.50,
"descripcion": "Hamburguesa Clásica"
}
Parámetros de servicios:
- context (WorkingDataContext): Contexto de base de datos inyectado
200 OK
Línea actualizada exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al actualizar la línea
{
"isSuccess": false,
"error": "Error al actualizar línea: Línea no encontrada",
"data": false
}
DELETE
/WorkingData/InvoiceLine/{tipoDocumento}/{serie}/{factura}/{linea}
Elimina una línea específica de una factura. Este endpoint permite remover un producto de una factura.
Parámetros de ruta:
- tipoDocumento (string, requerido): Tipo de documento
- serie (string, requerido): Serie del documento
- factura (double, requerido): Número de factura
- linea (int, requerido): Número de línea a eliminar
Parámetros de servicios:
- context (WorkingDataContext): Contexto de base de datos inyectado
200 OK
Línea eliminada exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al eliminar la línea
{
"isSuccess": false,
"error": "Error al eliminar línea: No se puede eliminar línea de factura pagada",
"data": false
}
Servicio Utilizado
IInvoiceLineService - Servicio principal para la gestión de líneas de factura
- GetInvoiceLines(): Obtiene todas las líneas de una factura
- AddInvoiceLine(): Agrega una nueva línea a una factura
- UpdateInvoiceLine(): Actualiza una línea existente
- DeleteInvoiceLine(): Elimina una línea específica