← Volver a Back.API

TipoIvaController

Controlador para la gestión de tipos de IVA y tasas impositivas del restaurante

📊 Resumen del Controlador

2
Servicios Inyectados
6
Endpoints Totales
1
Categoría Principal
CRUD
Operaciones Completas

El TipoIvaController es el controlador encargado de gestionar los tipos de IVA y tasas impositivas del sistema RestMaster. Proporciona una API RESTful completa para administrar las diferentes tasas de impuestos aplicables a los productos y servicios del restaurante, incluyendo la integración con sistemas contables externos.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de tipos de IVA (5 endpoints)
  • Configuración de tasas impositivas para diferentes productos
  • Integración con Sage para sincronización contable
  • Validación de tipos de IVA en transacciones
  • Cálculo automático de impuestos en facturación
  • Gestión de enlaces contables para exportación
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • ITipoIvaService - Servicio principal de gestión de tipos de IVA
  • ILogger<TipoIvaController> - Logging de errores y eventos

⚠️ 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

📋 Categorías de Endpoints

💰 Gestión de Tipos de IVA

Gestión CRUD completa de tipos de IVA y tasas impositivas
CRUD
Tax

Endpoints: 5 métodos

  • GET /GetTiposIva
  • GET /GetTipoIva/{tipoIva}
  • POST /AddTipoIva
  • PUT /UpdateTipoIva/{tipoIva}
  • DELETE /DeleteTipoIva/{tipoIva}
Ver detalles →

🔧 Información del Sistema

Información sobre métodos HTTP permitidos
System
Info

Endpoints: 1 método

  • OPTIONS /
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/TipoIva

Todos los endpoints del controlador están bajo la ruta /Master/TipoIva, lo que indica que maneja datos maestros del sistema relacionados con tipos de IVA.

Patrones de URL por Categoría:

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE, OPTIONS exitosos

✅ 201 - Created

Tipo de IVA creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Tipo de IVA no encontrado

Usado en: GET, PUT, DELETE cuando el recurso no existe

❌ 500 - Internal Server Error

Error interno del servidor

Usado en: Errores de excepción no controlados

🔍 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
  • Error Handling: Manejo centralizado de excepciones con logging
  • Dependency Injection: Inyección de servicios + logger
  • 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
  • Logging: Logging estructurado de errores y eventos
  • CreatedAtAction: Respuestas 201 con ubicación del recurso creado
  • XML Documentation: Documentación XML completa en todos los métodos

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores internos se loguean pero no exponen información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints POST/PUT
  • Control de acceso a información fiscal y contable
  • Validación de permisos para modificar tipos de IVA
  • Auditoría de cambios en configuración fiscal

📝 Patrones de Diseño Utilizados

  • 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
  • Error Handling Pattern: Manejo centralizado de errores
  • RESTful API Design: Diseño de API REST estándar
  • Service Layer Pattern: Lógica de negocio en servicios
  • Documentation Pattern: Documentación XML y Swagger

📈 Estadísticas Detalladas

183
Líneas de Código
1
Región de Código
6
Métodos Públicos
5
Verbos HTTP

Distribución de Métodos HTTP:

📋 Modelo de Datos - TipoIva

Propiedades del modelo TipoIva:
  • TipoIvaId (string): Identificador único del tipo de IVA (clave primaria)
  • Iva (double?): Porcentaje de IVA aplicable
  • EnlaceSage (string): Código de enlace para integración con Sage

🔑 Características del Modelo

  • Clave primaria: TipoIvaId es la clave primaria de la tabla TIPO_IVA
  • Longitud máxima: 15 caracteres para el ID de tipo de IVA
  • Tipo de datos: String no Unicode para optimización
  • Porcentaje de IVA: Tipo double nullable para flexibilidad
  • Integración Sage: Campo EnlaceSage para sincronización contable
  • Restricciones: No permite valores nulos en la clave
  • Índice: Clave primaria con índice I_TIPO_IVA

⚠️ Consideraciones de Configuración

  • Los tipos de IVA deben tener identificadores únicos
  • Los porcentajes de IVA deben ser valores válidos (0-100)
  • La integración con Sage requiere códigos de enlace válidos
  • Se recomienda mantener consistencia en la nomenclatura
  • Los cambios en tipos de IVA pueden afectar facturación existente

💰 Tipos de IVA Estándar

🎯 Tipos de IVA Comunes en España

  • 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

🔗 Integración con Sistemas Contables

  • Sage: Sincronización automática de tipos de IVA
  • Enlaces contables: Códigos específicos para cada sistema
  • Exportación de datos: Transferencia de información fiscal
  • Validación cruzada: Verificación de consistencia