← Volver a InvoiceTaxController

💰 Gestión de Impuestos

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

Descripción General

Los endpoints de Gestión de Impuestos proporcionan las operaciones fundamentales para administrar los impuestos de facturas del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de impuestos, incluyendo información de tipos de IVA, bases imponibles y cálculos de impuestos.

🎯 Características de la Gestión de Impuestos

  • Identificación compuesta: Cada impuesto se identifica por tipo, serie, factura y porcentaje de IVA
  • Múltiples tipos de IVA: General (21%), Reducido (10%), Superreducido (4%), etc.
  • Cálculos automáticos: Base imponible e importe de 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
  • Cumplimiento fiscal: Adherencia a normativas de IVA
  • Auditoría completa: Trazabilidad de cambios en impuestos

Endpoints Disponibles

GET /WorkingData/InvoiceTax/{tipoDocumento}/{serie}/{factura}

Obtiene todos los impuestos de una factura específica por su tipo de documento, serie y número. Este endpoint permite recuperar la información completa de todos los impuestos aplicados a 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 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
Impuestos de factura devueltos exitosamente
[ { "tipoDocumento": "FACTURA", "serie": "A", "factura": 1001, "iva": 21.0, "baseImponible": 100.00, "importeIva": 21.00, "descripcion": "IVA General", "fechaCreacion": "2024-01-15T14:30:00Z", "usuario": "CAJERO01" }, { "tipoDocumento": "FACTURA", "serie": "A", "factura": 1001, "iva": 10.0, "baseImponible": 50.00, "importeIva": 5.00, "descripcion": "IVA Reducido", "fechaCreacion": "2024-01-15T14:30:00Z", "usuario": "CAJERO01" } ]
400 Bad Request
Error en la solicitud o factura no encontrada
{ "isSuccess": false, "error": "Factura no encontrada", "data": null }

POST /WorkingData/InvoiceTax

Agrega un nuevo impuesto a una factura existente. Este endpoint permite añadir impuestos a una factura ya creada, calculando automáticamente el importe del IVA.
Body (JSON):
{ "tipoDocumento": "FACTURA", "serie": "A", "factura": 1001, "iva": 21.0, "baseImponible": 75.00, "descripcion": "IVA General", "usuario": "CAJERO01" }
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
Impuesto agregado exitosamente
{ "isSuccess": true, "error": null, "data": true }
400 Bad Request
Error al agregar el impuesto
{ "isSuccess": false, "error": "Error al agregar impuesto: Porcentaje de IVA no válido", "data": false }

PUT /WorkingData/InvoiceTax

Actualiza un impuesto existente de una factura. Este endpoint permite modificar la información de un impuesto ya registrado, recalculando automáticamente el importe del IVA.
Body (JSON):
{ "tipoDocumento": "FACTURA", "serie": "A", "factura": 1001, "iva": 21.0, "baseImponible": 80.00, "descripcion": "IVA General actualizado", "usuario": "CAJERO01" }
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
Impuesto actualizado exitosamente
{ "isSuccess": true, "error": null, "data": true }
400 Bad Request
Error al actualizar el impuesto
{ "isSuccess": false, "error": "Error al actualizar impuesto: Impuesto no encontrado", "data": false }

DELETE /WorkingData/InvoiceTax/{tipoDocumento}/{serie}/{factura}/{iva}

Elimina un impuesto específico de una factura. Este endpoint permite remover un impuesto de una factura, útil para corregir errores o eliminar impuestos incorrectos.
Parámetros de ruta:
  • tipoDocumento (string, requerido): Tipo de documento
  • serie (string, requerido): Serie del documento
  • factura (double, requerido): Número de factura
  • iva (double, requerido): Porcentaje de IVA del impuesto a eliminar
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
Impuesto eliminado exitosamente
{ "isSuccess": true, "error": null, "data": true }
400 Bad Request
Error al eliminar el impuesto
{ "isSuccess": false, "error": "Error al eliminar impuesto: No se puede eliminar impuesto de factura cerrada", "data": false }

Modelo de Datos - FacturaIva

Propiedades 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 del IVA
  • ImporteIva (decimal): Importe del IVA calculado (BaseImponible × IVA%)
  • 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 Disponibles

  • 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

⚠️ Cálculos Automáticos

  • ImporteIva: Se calcula automáticamente como BaseImponible × (IVA / 100)
  • Validación: Se verifica que el porcentaje de IVA sea válido
  • Redondeo: Se aplican reglas de redondeo estándar
  • Consistencia: Se valida que los totales coincidan

Servicio Utilizado

IInvoiceTaxService - Servicio principal para la gestión de impuestos de facturas
  • GetInvoiceTaxes(): Obtiene todos los impuestos de una factura
  • AddInvoiceTax(): Agrega un nuevo impuesto a una factura
  • UpdateInvoiceTax(): Actualiza un impuesto existente
  • DeleteInvoiceTax(): Elimina un impuesto específico

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Configuración inicial: Establecer tipos de IVA por factura
  • Corrección de errores: Modificar impuestos incorrectos
  • Eliminación de impuestos: Remover impuestos duplicados o erróneos
  • Consulta de impuestos: Ver todos los impuestos de una factura
  • Auditoría fiscal: Revisar impuestos para reportes
  • Validación de cálculos: Verificar que los impuestos sean correctos
  • Integración contable: Exportar datos de impuestos
  • Reportes de IVA: Generar reportes para Hacienda
  • Cumplimiento normativo: Verificar adherencia a normativas
  • Gestión de excepciones: Manejar productos exentos o con IVA especial

🔒 Consideraciones de Seguridad

⚠️ Protección de Datos Fiscales

  • Auditoría completa: Todas las operaciones de impuestos deben ser auditadas
  • No modificación de facturas cerradas: Restricción de cambios en facturas finalizadas
  • Validación de permisos: Solo usuarios autorizados pueden gestionar impuestos
  • Integridad de datos: Verificar que los totales coincidan con los impuestos
  • Validación de porcentajes: Verificar que los porcentajes de IVA sean válidos
  • Prevención de fraudes: Detectar cálculos incorrectos de impuestos
  • Encriptación de datos: Proteger información fiscal sensible
  • Logs de transacciones: Mantener registro completo de todas las operaciones
  • Validación de normativas: Verificar cumplimiento de leyes fiscales
  • Control de acceso: Restringir acceso según roles de usuario