← Volver a InvoiceHeadController

📄 Gestión de Facturas

Endpoints para la gestión CRUD completa de cabeceras de facturas del restaurante

Descripción General

Los endpoints de Gestión de Facturas proporcionan las operaciones fundamentales para administrar las cabeceras de facturas del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de facturas, incluyendo información de clientes, importes, fechas y estados.

🎯 Características de la Gestión de Facturas

  • Identificación compuesta: Cada factura se identifica por tipo, serie y número
  • Información completa: Cliente, importes, fechas, empleado
  • Control de estados: Gestión del ciclo de vida de la factura
  • 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/InvoiceHead/{tipoDocumento}/{serie}/{factura}

Obtiene una factura específica por su tipo de documento, serie y número. Este endpoint permite recuperar la información completa de una factura en particular.
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:
  • 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 encontrada y devuelta
{ "tipoDocumento": "FACTURA", "serie": "A", "factura": 1001, "fecha": "2024-01-15T10:30:00Z", "cliente": "CLI001", "total": 45.50, "estado": "EMITIDA", "empleado": "EMP001" }
400 Bad Request
Error en la solicitud o factura no encontrada
{ "isSuccess": false, "error": "Factura no encontrada", "data": null }

POST /WorkingData/InvoiceHead

Crea una nueva factura en el sistema. Este endpoint permite registrar una nueva factura en la base de datos del restaurante.
Body (JSON):
{ "tipoDocumento": "FACTURA", "serie": "A", "factura": 1002, "fecha": "2024-01-15T14:20:00Z", "cliente": "CLI002", "total": 32.75, "estado": "BORRADOR", "empleado": "EMP001" }
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
Factura creada exitosamente
{ "isSuccess": true, "error": null, "data": true }
400 Bad Request
Error en la creación de la factura
{ "isSuccess": false, "error": "Error al crear la factura: Cliente no válido", "data": false }

PUT /WorkingData/InvoiceHead

Actualiza una factura existente en el sistema. Este endpoint permite modificar la información de una factura ya registrada.
Body (JSON):
{ "tipoDocumento": "FACTURA", "serie": "A", "factura": 1001, "fecha": "2024-01-15T10:30:00Z", "cliente": "CLI001", "total": 47.25, "estado": "EMITIDA", "empleado": "EMP001" }
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
Factura actualizada exitosamente
{ "isSuccess": true, "error": null, "data": true }
400 Bad Request
Error en la actualización de la factura
{ "isSuccess": false, "error": "Error al actualizar la factura: Factura no encontrada", "data": false }

DELETE /WorkingData/InvoiceHead/{tipoDocumento}/{serie}/{factura}

Elimina una factura del sistema. Este endpoint permite remover una factura de la base de datos del restaurante.
Parámetros de ruta:
  • tipoDocumento (string, requerido): Tipo de documento
  • serie (string, requerido): Serie del documento
  • factura (double, requerido): Número de factura
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
Factura eliminada exitosamente
{ "isSuccess": true, "error": null, "data": true }
400 Bad Request
Error en la eliminación de la factura
{ "isSuccess": false, "error": "Error al eliminar la factura: No se puede eliminar una factura pagada", "data": false }

Modelo de Datos - Factura

Propiedades del modelo Factura:
  • TipoDocumento (string): Tipo de documento (FACTURA, TICKET, etc.)
  • Serie (string): Serie del documento
  • Factura (double): Número de factura
  • Fecha (DateTime): Fecha de emisión de la factura
  • Cliente (string): Identificación del cliente
  • Total (decimal): Importe total de la factura
  • Estado (string): Estado actual de la factura
  • Empleado (string): Empleado que emitió la factura
  • Subtotal (decimal): Importe sin impuestos
  • IVA (decimal): Importe de impuestos
  • Descuento (decimal): Descuento aplicado

📝 Tipos de Documento Comunes

  • FACTURA: Factura completa con todos los datos
  • TICKET: Ticket simplificado para consumo inmediato
  • PEDIDO: Pedido para entrega a domicilio
  • RESERVA: Factura de reserva de mesa

Servicio Utilizado

IInvoiceHeadService - Servicio principal para la gestión de cabeceras de facturas
  • GetInvoice(): Obtiene una factura específica
  • CreateInvoice(): Crea una nueva factura
  • UpdateInvoice(): Actualiza una factura existente
  • DeleteInvoice(): Elimina una factura

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Emisión de facturas: Crear nuevas facturas para clientes
  • Consulta de facturas: Buscar facturas específicas por cliente o fecha
  • Modificación de facturas: Actualizar datos de facturas en borrador
  • Anulación de facturas: Eliminar facturas con errores
  • Auditoría: Consultar historial de facturas para auditoría
  • Reportes: Generar reportes de ventas por período

🔒 Consideraciones de Seguridad

⚠️ Protección de Datos Fiscales

  • Auditoría completa: Todas las operaciones deben ser auditadas
  • No modificación de facturas pagadas: Restricción de cambios en facturas finalizadas
  • Validación de permisos: Solo usuarios autorizados pueden modificar facturas
  • Integridad de datos: Verificar que los totales coincidan con las líneas
  • Backup automático: Respaldo de facturas antes de modificaciones