← Volver a Back.API

InvoiceTaxController

Controlador para la gestión completa de impuestos de facturas del restaurante

📊 Resumen del Controlador

2
Servicios Inyectados
7
Endpoints Totales
3
Categorías de Funcionalidad
CRUD
Operaciones Completas

El InvoiceTaxController es el controlador encargado de gestionar todos los aspectos relacionados con los impuestos de facturas del restaurante. Proporciona una API RESTful completa con operaciones CRUD para la entidad FacturaIva, incluyendo gestión de tipos de IVA, cálculos automáticos y recálculos de impuestos.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de impuestos de facturas (4 endpoints)
  • Consulta de impuestos por factura específica
  • Agregar impuestos a facturas existentes
  • Actualizar impuestos con validación de datos
  • Eliminar impuestos de facturas
  • Recálculo automático de impuestos (1 endpoint específico)
  • Cálculo de totales de factura (1 endpoint específico)
  • Cálculo de impuestos por líneas (1 endpoint específico)
  • Múltiples tipos de IVA (general, reducido, superreducido, etc.)
  • Manejo de transacciones con contexto de base de datos
  • Resultados tipados con ServiceResult para mejor control de errores

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IInvoiceTaxService - Servicio principal de gestión de impuestos 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, 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

📋 Categorías de Endpoints

💰 Gestión de Impuestos

Operaciones CRUD completas para la gestión de impuestos de facturas
CRUD
Taxes

Endpoints: 4 métodos

  • GET /{tipoDocumento}/{serie}/{factura}
  • POST /
  • PUT /
  • DELETE /{tipoDocumento}/{serie}/{factura}/{iva}
Ver detalles →

🧮 Recálculo de Impuestos

Recálculo automático de impuestos de factura
Calculation
Automation

Endpoints: 1 método

  • POST /{tipoDocumento}/{serie}/{factura}/recalculate
Ver detalles →

📊 Cálculos Específicos

Cálculos de totales e impuestos por líneas
Calculation
Totals

Endpoints: 2 métodos

  • POST /calculate-total
  • POST /calculate-taxes
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /WorkingData/InvoiceTax

Todos los endpoints del controlador están bajo la ruta /WorkingData/InvoiceTax, lo que indica que maneja datos de trabajo del sistema.

Patrones de URL por Categoría:

⚠️ Identificación de Impuestos

Los impuestos de factura se identifican mediante cuatro parámetros:

  • tipoDocumento (string): Tipo de documento (ej: "FACTURA", "TICKET")
  • serie (string): Serie del documento
  • factura (double): Número de factura
  • iva (double): Porcentaje de IVA del impuesto

📊 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.

🔍 Características Técnicas

🎯 Características del Controlador

  • Async/Await: Todos los métodos son asíncronos para mejor rendimiento
  • Swagger Documentation: Documentación completa con Swagger/OpenAPI
  • ServiceResult Pattern: Manejo estructurado de resultados y errores
  • Dependency Injection: Inyección de servicios + helper de contexto
  • RESTful Design: Diseño REST completo con verbos HTTP apropiados
  • Type Safety: Uso de tipos fuertemente tipados para respuestas
  • Constructor Injection: Inyección de dependencias por constructor
  • Context Management: Gestión automática de contexto de base de datos
  • FromQuery Parameters: Parámetros de conexión por query string
  • FromBody Parameters: Datos complejos en el cuerpo de la petición

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores se manejan a través de ServiceResult sin exponer información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints POST/PUT
  • Los impuestos son datos fiscales críticos, requiere auditoría completa
  • Verificación de integridad referencial con facturas
  • Validación de porcentajes de IVA según normativa vigente
  • Prevención de cálculos incorrectos de impuestos
  • Validación de totales y subtotales

📝 Patrones de Diseño Utilizados

  • ServiceResult Pattern: Manejo estructurado de resultados
  • Repository Pattern: Acceso a datos a través de servicios
  • Dependency Injection: Inversión de control para servicios
  • Async/Await Pattern: Programación asíncrona
  • Context Pattern: Gestión de contexto de base de datos
  • FromQuery Pattern: Parámetros de conexión por query
  • FromBody Pattern: Datos complejos en el cuerpo
  • RESTful API Design: Diseño de API REST estándar

📈 Estadísticas Detalladas

204
Líneas de Código
1
Región de Código
7
Métodos Públicos
3
Verbos HTTP

Distribución de Métodos HTTP:

📋 Modelo de Datos - FacturaIva

Propiedades principales del modelo FacturaIva:
  • TipoDocumento (string): Tipo de documento (FACTURA, TICKET, etc.)
  • Serie (string): Serie del documento
  • Factura (double): Número de factura
  • Iva (double): Porcentaje de IVA aplicado
  • BaseImponible (decimal): Base imponible para el cálculo
  • ImporteIva (decimal): Importe del IVA calculado
  • Descripcion (string): Descripción del tipo de IVA
  • FechaCreacion (DateTime): Fecha de creación del registro
  • Usuario (string): Usuario que creó el registro

💰 Tipos de IVA Soportados

  • 21%: IVA General (productos y servicios estándar)
  • 10%: IVA Reducido (alimentos, transporte, etc.)
  • 4%: IVA Superreducido (productos de primera necesidad)
  • 0%: IVA Cero (exportaciones, servicios internacionales)
  • Exento: Productos exentos de IVA
  • Otros: Otros tipos de impuestos específicos

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Configuración de impuestos: Establecer tipos de IVA por factura
  • Cálculo automático: Calcular impuestos basados en líneas
  • Recálculo de impuestos: Actualizar impuestos tras cambios
  • Corrección de errores: Modificar impuestos incorrectos
  • Consulta de impuestos: Ver todos los impuestos de una factura
  • Cálculo de totales: Calcular totales incluyendo impuestos
  • Auditoría fiscal: Revisar impuestos para reportes
  • Integración contable: Exportar datos de impuestos
  • Validación fiscal: Verificar cumplimiento normativo
  • Reportes de IVA: Generar reportes para Hacienda