📊 Resumen del Controlador
CRUD
Operaciones Completas
El InvoiceHeadController es el controlador encargado de gestionar todos los aspectos relacionados con las cabeceras de facturas del restaurante. Proporciona una API RESTful completa con operaciones CRUD para la entidad Factura, incluyendo gestión de estados y control de transacciones.
🎯 Funcionalidades Principales
- Gestión CRUD completa de cabeceras de facturas (4 endpoints)
- Consulta de facturas específicas por tipo, serie y número
- Creación de nuevas facturas con validación de datos
- Actualización de facturas existentes en el sistema
- Eliminación de facturas con control de integridad
- Gestión de estados de facturas (1 endpoint específico)
- Manejo de transacciones con contexto de base de datos
- Resultados tipados con ServiceResult para mejor control de errores
🔧 Servicios Utilizados
Servicios Inyectados por Constructor:
- IInvoiceHeadService - Servicio principal de gestión de cabeceras de facturas
- DbWorkingContextHelper - Helper para configuración de contexto de base de datos
⚠️ Parámetros de Conexión
Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:
- initialCatalog (string): 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
🔗 Estructura de Rutas
Ruta Base: /WorkingData/InvoiceHead
Todos los endpoints del controlador están bajo la ruta /WorkingData/InvoiceHead, lo que indica que maneja datos de trabajo del sistema.
Patrones de URL por Categoría:
- Gestión de Facturas:
/{tipoDocumento}/{serie}/{factura} - GET, DELETE
/ - POST, PUT
- Gestión de Estados:
/{tipoDocumento}/{serie}/{factura}/status - PUT
⚠️ Identificación de Facturas
Las facturas se identifican mediante tres parámetros:
- tipoDocumento (string): Tipo de documento (ej: "FACTURA", "TICKET")
- serie (string): Serie del documento
- factura (double): Número de factura
📊 Códigos de Respuesta
✅ 200 - OK
Operación exitosa, datos devueltos correctamente
Usado en: GET, POST, PUT, DELETE exitosos
❌ 400 - Bad Request
Error en la solicitud o validación
Usado en: Errores de validación o lógica de negocio
📝 Nota sobre Códigos de Respuesta
Este controlador utiliza ServiceResult para manejar resultados, por lo que todos los endpoints devuelven 200 (éxito) o 400 (error), con la información detallada del resultado en el cuerpo de la respuesta.
📝 Nota sobre la validación automática de Fecha en cobros
Nota: En la creación de facturas con cobros, el campo Fecha de cada cobro es obligatorio. Si no se envía, el sistema asigna la fecha y hora actual del servidor.